def ProcessButton(Barra_Progesso): Barra_Progesso.setValue(0) TXTStatus.setText('') connection = dabaseRepository.createConection() origem = TXTOrigem.text() destino = TXTDestino.text() CompanyName = ActiveCNPJ.text() Params = { 'conn': connection, 'origem': origem, 'destino': destino, 'Barra_Progesso': Barra_Progesso, 'CompanyName': CompanyName } if CompanyName: if not origem or not destino: TXTStatus.setText('Caminho(s) não definidos') return response = CalcularICMSRessarcimento(Params) if response: TXTStatus.setText('Processo concluido') else: TXTStatus.setText('Nenhuma empresa foi ativada') connection.close()
def ReturnCadastroProdutos(params): Barra_Progesso = params['Barra_Progresso'] CompanyName = params['CompanyName'] Cadastro_Produtos = [] connection = dabaseRepository.createConection() produtos = DBRepository.FindCadastroProdutos(connection, CompanyName) if type(produtos)== list: for produto in produtos: if produto[6] != "": Cadastro_Produtos.append({ "COD_ITEM": produto[0], "DESCR_ITEM":produto[1], "COD_BARRA":produto[2], "UNID_INV":produto[3], "COD_NCM":produto[4], "ALIQ_ICMS":produto[5], "CEST":produto[6], }) return Cadastro_Produtos
def listButtonChanges(TXTListEmpresa, listButton, TXTEditEmpresa, TXTEditCNPJ): conection = dabaseRepository.createConection() cnpj = listButton.currentText() companyName = EditarRepository.OneCompany(conection, cnpj) TXTListEmpresa.setText(companyName[0][1]) TXTEditEmpresa.setText(companyName[0][1]) TXTEditCNPJ.setText(companyName[0][0]) conection.close()
def listCompanyName(listButton): conection = dabaseRepository.createConection() listOfCompany = EditarRepository.AllCompany(conection) arrListOfCompany = [] for company in listOfCompany: arrListOfCompany.append(company[0]) listButton.addItems(arrListOfCompany) conection.close()
def SaveButtonClicked(Barra_Progesso): Barra_Progesso.setValue(0) connection = dabaseRepository.createConection() path = TXTOrigem.text() Params = { 'conn': connection, 'caminho': path, 'cnpj': ActiveCNPJ, 'barra': Barra_Progesso, 'Screen': Screen } response = saveXML(Params)
def RemoveButtonClicked(LabelStatus, listButton): cnpj = listButton.currentText() conection = dabaseRepository.createConection() if cnpj: Result = EditarRepository.Remove(conection, cnpj) if Result: LabelStatus.setText('Processo concluido') else: LabelStatus.setText('Dados invalidos')
def SaveButtonClicked(Barra_Progesso): Barra_Progesso.setValue(0) connection = dabaseRepository.createConection() path = TXTOrigem.text() Params = { 'Origem': path, 'CompanyName': ActiveCNPJ, 'Barra_Progesso': Barra_Progesso, 'Screen': Screen } response = ReadRegistroH010(Params) print('processo terminado') connection.close()
def SaveButtonClicked(Barra_Progesso): Barra_Progesso.setValue(0) connection = dabaseRepository.createConection() Origem = TXTOrigem.text() Destino = TXTDestino.text() cnpj = ActiveCNPJ.text() Params = { 'conn': connection, 'Origem': Origem, 'Destino': Destino, 'CompanyName': cnpj, 'Barra_Progresso': Barra_Progesso, 'Screen': Screen } response = ProcessarSaldoInicial(Params) print('processo concluido')
def ReadCodigoRelacionamento(params): origem = params['Origem'] Barra_Progesso = params['Barra_Progesso'] CompanyName = params['CompanyName'].text() Arquivos = os.listdir(origem) connection = dabaseRepository.createConection() for SPED in Arquivos: with open(os.path.join(origem, SPED), mode='r', encoding='utf-8') as F: totalLinhas = len(F.readlines()) linha = 0 with open(os.path.join(origem, SPED), mode='r', encoding='utf-8') as File: for lineItem in File: if len(lineItem) > 1: CodItem, CNPJ, CodForn = lineItem.split(';') ExistentRegister = Repository.FindOne( conn=connection, companyName=CompanyName, Item=CodItem, CNPJ=CNPJ) if not ExistentRegister: txt = [CodItem, CNPJ, CodForn.strip('0')] print(txt) Repository.Save(conn=connection, companyName=CompanyName, relation=txt) linha += 1 valor = (linha / totalLinhas) * 100 Barra_Progesso.setValue(valor)
def ProcessButton(Barra_Progesso): Barra_Progesso.setValue(0) connection = dabaseRepository.createConection() cnpj = ActiveCNPJ.text() origem = TXTOrigem.text() destino = TXTDestino.text() Params = { 'conn': connection, 'origem': origem, 'destino': destino, 'cnpj': cnpj, 'barra': Barra_Progesso, 'Screen': Screen } response = corrgirCest(Params) if response: print('processo terminado') connection.close()
def ProcessButton(Barra_Progesso): Barra_Progesso.setValue(0) connection = dabaseRepository.createConection() cnpj = ActiveCNPJ.text() origem = TXTOrigem.text() destino = TXTDestino.text() ComapanyName = ActiveCNPJ.text() Params = { 'conn': connection, 'origem': origem, 'destino': destino, 'cnpj': cnpj, 'barra': Barra_Progesso, 'ComapanyName': ComapanyName } response = Adicionar0220Feature(Params) if response: print('processo terminado') connection.close()
def ProcessarSaldoInicial(params): origem = params['Origem'] Destino = params['Destino'] Barra_Progresso = params['Barra_Progresso'] CompanyName = params['CompanyName'] Params_registroH010 = { "Origem": origem, "Destino": Destino, "Barra_Progresso": Barra_Progresso, "CompanyName": CompanyName } Connection = dabaseRepository.createConection() produtos = ReturnCadastroProdutos(params) for produto in produtos: ItemInH010 = ReturnItemInH010(Connection, CompanyName, produto['COD_ITEM']) if ItemInH010: XMLInC170 = ReturnRegistroC170(Connection, CompanyName, produto['COD_ITEM']) if XMLInC170: dados = { 'Connection': Connection, 'CompanyName': CompanyName, 'XMLInC170': XMLInC170, 'EAN': produto['COD_BARRA'], 'Item': ItemInH010 } productsWithStOrNot = ProcessarSaldo(dados) print(productsWithStOrNot) if productsWithStOrNot[0]['wasFound']: if productsWithStOrNot[0]['isST']: # Corrigir produto.update({"QTD": ItemInH010[0]['QTD']}) produto.update(productsWithStOrNot[0]) print(produto) with open(os.path.join( Destino, f"{CompanyName}-Buscar NFs anteriores"), mode='a') as FWork: FWork.write(f"{produto}\n") else: print('Produto não e ST') FileName = f"{CompanyName}- Itens não st" txt = f"{produto['COD_ITEM']}|{produto['DESCR_ITEM']}|{produto['COD_BARRA']}|{produto['CEST']}" with open(os.path.join(Destino, FileName), mode='a') as FWork: FWork.write(f"{txt}\n") else: FileName = f"{CompanyName}-Nenhum Arquivo XML de entrada encontrado" txt = f"{produto['COD_ITEM']}|{produto['DESCR_ITEM']}|{produto['COD_BARRA']}|{produto['CEST']}" with open(os.path.join(Destino, FileName), mode='a') as FWork: FWork.write(f"{txt}\n") else: FileName = f"{CompanyName}-Nenhum RegistroC170 foi encontrado" txt = f"{produto['COD_ITEM']}|{produto['DESCR_ITEM']}|{produto['COD_BARRA']}|{produto['CEST']}" with open(os.path.join(Destino, FileName), mode='a') as FWork: FWork.write(f"{txt}\n") else: print('Produto não encontrado') return True
def SalvarRegistroH010(params): origem = params['Origem'] Barra_Progesso = params['Barra_Progesso'] CompanyName = params['CompanyName'].text() Arquivos = os.listdir(origem) connection = dabaseRepository.createConection() for SPED in Arquivos: with open(os.path.join(origem, SPED), mode='r', encoding='utf-8') as F: totalLinhas = len(F.readlines()) linha = 0 with open(os.path.join(origem, SPED), mode='r', encoding='utf-8') as File: for lineItem in File: arrLine = lineItem.split('|') if arrLine[1] == 'H010': COD_ITEM = arrLine[2] UNID = arrLine[3] if ',' in arrLine[4]: arrQTD = arrLine[4].split(',') convertedQTD = arrQTD[0] + '.' + arrQTD[1] QTD = float(convertedQTD) else: QTD = float(arrLine[4]) VL_UNIT = arrLine[5] VL_ITEM = arrLine[6] dt_Emissao = '31032019' EDay = int(dt_Emissao[0:2]) EMout = int(dt_Emissao[2:4]) EYear = int(dt_Emissao[4:]) date_Emissao = date(EYear, EMout, EDay).isoformat() ExistentRegister = Repository.FindItemInH010( connection, COD_ITEM, date_Emissao, CompanyName) if not ExistentRegister: txt = [ COD_ITEM, UNID, QTD, VL_UNIT, VL_ITEM, date_Emissao ] Response = Repository.Save(connection, CompanyName, txt) linha += 1 valor = (linha / totalLinhas) * 100 Barra_Progesso.setValue(valor)