def isPaymentsLysPorMoeda(self, file): dataFile = leXls_Xlsx(file) for data in dataFile: identificationField = funcoesUteis.treatTextFieldInVector(data, 5) if identificationField.count('NMPESSOACREDORA') > 0: return True
def getSettingsFromToOfAccounts(self): dataFile = leXls_Xlsx(self._wayFileSettings, 'DeParaPlanoContas') for data in dataFile: try: fieldHeader = funcoesUteis.treatTextFieldInVector(data, 1) if fieldHeader.count('CODIGO CONTA SISTEMA CLIENTE') > 0: self._posionsOfHeaderFromToAccounts.clear() for keyField, nameField in enumerate(data): nameField = funcoesUteis.treatTextField(nameField) self._posionsOfHeaderFromToAccounts[ nameField] = keyField continue valueComparation = funcoesUteis.treatTextFieldInVector( data, 1, self._posionsOfHeaderFromToAccounts, "Código Conta Sistema Cliente") accountDominio = int( funcoesUteis.treatNumberFieldInVector( data, 4, self._posionsOfHeaderFromToAccounts, "Conta Contábil Domínio")) if valueComparation != "" and accountDominio != "": self._valuesFromToAccounts[ valueComparation] = accountDominio except Exception as e: pass return self._valuesFromToAccounts
def process(self): try: companiesDominio = self._geempre.getCompanies() companiesExcel = leXls_Xlsx( 'C:/Programming/baymax/backend/extract/data/empresas_grupo.xlsm', 'EMPRESAS') print('- Exportando dados de movimentação geral empresas:') for companie in companiesExcel: codi_emp = funcoesUteis.treatNumberField(companie[0], isInt=True) nome_emp = funcoesUteis.treatTextField(companie[1]) group = funcoesUteis.treatTextField(companie[2]) dataCompanie = {'codi_emp': codi_emp, 'groupCompanie': group} existCompanieDominio = list( filter( lambda companieDominio: companieDominio['codi_emp'] == codi_emp, companiesDominio)) if len(existCompanieDominio) > 0: self._collection.update_one({"codi_emp": codi_emp}, {"$set": dataCompanie}, upsert=True) print(f"\t - {codi_emp} - {nome_emp}") except Exception as e: print(f"O erro é: {e}") finally: self._connectionMongo.closeConnection()
def __init__(self): self._namesProductsBase = leXls_Xlsx(os.path.join('C:/Programming/baymax/backend/extract/data/bkp', 'produtos_comparar.xlsx')) self._namesProductsBase = funcoesUteis.removeAnArrayFromWithinAnother(self._namesProductsBase) self._geempre = ExtractGeempre() self._today = datetime.date.today() self._currentMonth = self._today.month self._currentYear = self._today.year self._connectionMongo = ConnectMongo() self._dbMongo = self._connectionMongo.getConnetion() self._collection = self._dbMongo['ExtractEntryNoteProducts']
def getSettingsProviderOrExpense(self): dataFile = leXls_Xlsx(self._wayFileSettings, 'FornecedorOuDespesa') for data in dataFile: try: if str(data[0]).upper().count('QUANDO NO CAMPO') > 0: self._posionsOfHeaderProviderOrExpense.clear() for keyField, nameField in enumerate(data): nameField = funcoesUteis.treatTextField(nameField) self._posionsOfHeaderProviderOrExpense[ nameField] = keyField continue fieldComparation = funcoesUteis.treatTextFieldInVector( data, 1, self._posionsOfHeaderProviderOrExpense, "Quando no Campo") fieldComparation = self._settingsFieldComparation[ fieldComparation] typeComparation = funcoesUteis.treatTextFieldInVector( data, 2, self._posionsOfHeaderProviderOrExpense, "Tipo comparação") typeComparation = self._settingsTypeComparation[ typeComparation] valueComparation = funcoesUteis.treatTextFieldInVector( data, 3, self._posionsOfHeaderProviderOrExpense, "Valor") accountDominio = int( funcoesUteis.treatNumberFieldInVector( data, 4, self._posionsOfHeaderProviderOrExpense, "Conta Contábil Domínio")) overwriteAccount = funcoesUteis.treatTextFieldInVector( data, 5, self._posionsOfHeaderProviderOrExpense, "Sobrescrever a Conta na Planilha Processada?") if fieldComparation != "" and valueComparation != "" and accountDominio > 0: self._valuesOfLineProviderOrExpense = { "fieldComparation": fieldComparation, "typeComparation": typeComparation, "valueComparation": valueComparation, "accountDominio": accountDominio, "overwriteAccount": overwriteAccount } self._valuesOfFileProviderOrExpense.append( self._valuesOfLineProviderOrExpense.copy()) except Exception as e: pass return self._valuesOfFileProviderOrExpense
def getSettingsAccountAndHistoricOthers(self): dataFile = leXls_Xlsx(self._wayFileSettings, 'ContasEHistoricoOutros') for data in dataFile: try: fieldHeader = funcoesUteis.treatTextFieldInVector(data, 1) if fieldHeader.count('QUANDO HOUVER') > 0: self._posionsOfHeaderAccountAndHistoricOthers.clear() for keyField, nameField in enumerate(data): nameField = funcoesUteis.treatTextField(nameField) self._posionsOfHeaderAccountAndHistoricOthers[ nameField] = keyField continue # juros, multa, desconto fieldComparation = funcoesUteis.treatTextFieldInVector( data, 1, self._posionsOfHeaderAccountAndHistoricOthers, "Quando houver") if fieldComparation == "": continue # historico ou conta contabil fieldOthers = funcoesUteis.treatTextFieldInVector( data, 2, self._posionsOfHeaderAccountAndHistoricOthers, "na Domínio o código do(a)") valueDominio = funcoesUteis.treatNumberFieldInVector( data, 3, self._posionsOfHeaderAccountAndHistoricOthers, "Será o") if fieldComparation != "" and fieldOthers != "" and valueDominio != "": self._valuesAccountAndHistoricOthers[ fieldComparation, fieldOthers] = valueDominio whenColumnDocumento = funcoesUteis.treatTextFieldInVector( data, 7, self._posionsOfHeaderAccountAndHistoricOthers, "Quando na Coluna Documento") compositionHistoric = funcoesUteis.treatTextFieldInVector( data, 8, self._posionsOfHeaderAccountAndHistoricOthers, "Composição Histórico", keepTextOriginal=False) if whenColumnDocumento != "" and compositionHistoric != "": self._valuesAccountAndHistoricOthers[ whenColumnDocumento] = compositionHistoric except Exception as e: pass
def getSettingsExtract(self): dataFile = leXls_Xlsx(self._wayFileSettings, 'ExtratoBancario') for data in dataFile: try: if str(data[0]).upper().count('QUANDO NO CAMPO') > 0: self._posionsOfHeaderExtracts.clear() for keyField, nameField in enumerate(data): nameField = funcoesUteis.treatTextField(nameField) self._posionsOfHeaderExtracts[nameField] = keyField continue fieldComparation = funcoesUteis.treatTextFieldInVector( data, 1, self._posionsOfHeaderExtracts, "Quando no Campo") fieldComparation = self._settingsFieldComparationExtract[ fieldComparation] operationComparation = funcoesUteis.treatTextFieldInVector( data, 2, self._posionsOfHeaderExtracts, "Operação for") operationComparation = self._settingsOperationComparation[ operationComparation] typeComparation = funcoesUteis.treatTextFieldInVector( data, 3, self._posionsOfHeaderExtracts, "Tipo comparação") typeComparation = self._settingsTypeComparation[ typeComparation] valueComparation = funcoesUteis.treatTextFieldInVector( data, 4, self._posionsOfHeaderExtracts, "Valor") accountDominio = int( funcoesUteis.treatNumberFieldInVector( data, 5, self._posionsOfHeaderExtracts, "Conta Contábil Domínio")) if fieldComparation != "" and valueComparation != "" and accountDominio > 0: self._valuesOfLineExtracts = { "fieldComparation": fieldComparation, "operationComparation": operationComparation, "typeComparation": typeComparation, "valueComparation": valueComparation, "accountDominio": accountDominio } self._valuesOfFileExtracts.append( self._valuesOfLineExtracts.copy()) except Exception as e: pass return self._valuesOfFileExtracts
def getLivroCaixa(self): dataFile = leXls_Xlsx(self._file, 'Lancamentos') for data in dataFile: if str(data[0]).upper().count('DOCUMENTO') > 0: self._posionsOfHeader.clear() for keyField, nameField in enumerate(data): nameField = funcoesUteis.treatTextField(nameField) self._posionsOfHeader[nameField] = keyField continue dateLivro = funcoesUteis.treatDateFieldInVector( data, 1, self._posionsOfHeader, "Data") movementType = funcoesUteis.treatTextFieldInVector( data, 2, self._posionsOfHeader, "Tipo Movimento") account = funcoesUteis.treatTextFieldInVector( data, 3, self._posionsOfHeader, "Conta Contábil") nameAccount = funcoesUteis.treatTextFieldInVector( data, 4, self._posionsOfHeader, "Nome Conta") amount = funcoesUteis.treatDecimalFieldInVector( data, 5, self._posionsOfHeader, "Valor") document = funcoesUteis.treatTextFieldInVector( data, 6, self._posionsOfHeader, "Documento") documentType = funcoesUteis.treatTextFieldInVector( data, 7, self._posionsOfHeader, "Tipo Documento") participante = funcoesUteis.treatTextFieldInVector( data, 8, self._posionsOfHeader, "Participante") imovelRural = funcoesUteis.treatTextFieldInVector( data, 9, self._posionsOfHeader, "Imóvel Rural") historic = funcoesUteis.treatTextFieldInVector( data, 10, self._posionsOfHeader, "Histórico") if amount != 0: self._dataOfLine = { 'dateLivro': dateLivro, 'movementType': movementType, 'account': account, 'nameAccount': nameAccount, 'amount': amount, 'document': document, 'documentType': documentType, 'participante': participante, 'imovelRural': imovelRural, 'historic': historic } self._dataOfFile.append(self._dataOfLine.copy()) return self._dataOfFile
def process(self): try: companiesDominio = self._geempre.getCompanies() companiesExcel = leXls_Xlsx( 'C:/Programming/baymax/backend/extract/data/empresas_integrattion_old.xlsx', 'Já Avaliadas - Hist') print('- Lendo dados das integrações antigas:') for companie in companiesExcel: codi_emp = funcoesUteis.treatNumberField(companie[0], isInt=True) nome_emp = funcoesUteis.treatTextField(companie[1]) responsibleFinancialClientOld = funcoesUteis.treatTextField( companie[4]) obsAccountPaidOld = funcoesUteis.treatTextField(companie[8]) dateAccountPaidOld = funcoesUteis.treatTextField(companie[7]) layoutsAccountPaidOld = funcoesUteis.treatTextField( companie[9]) hasIntegrated = funcoesUteis.treatTextField(companie[10]) dataCompanie = { 'codi_emp': codi_emp, 'responsibleFinancialClientOld': responsibleFinancialClientOld, 'obsAccountPaidOld': obsAccountPaidOld, 'dateAccountPaidOld': dateAccountPaidOld, 'layoutsAccountPaidOld': layoutsAccountPaidOld } existCompanieDominio = list( filter( lambda companieDominio: companieDominio['codi_emp'] == codi_emp, companiesDominio)) if len(existCompanieDominio) > 0 and hasIntegrated == "SIM": self._collection.update_one({"codi_emp": codi_emp}, {"$set": dataCompanie}, upsert=True) print(f"\t - {codi_emp} - {nome_emp}") except Exception as e: print(f"O erro é: {e}") finally: self._connectionMongo.closeConnection()
def __init__(self): self._wayCompanies = os.path.join(wayDefault['wayDefaultToSaveFiles'], 'empresas.json') self._namesProductsBase = leXls_Xlsx( os.path.join(wayDefault['wayDefaultToSaveFiles'], 'produtos_comparar.xlsx')) with open(self._wayCompanies) as companies: self._companies = json.load(companies) self._exportNotas = os.path.join(wayDefault['wayDefaultToSaveFiles'], 'analise_imobilizado.csv') self._exportNotas = open(self._exportNotas, 'w', encoding='utf-8') self._exportNotas.write( f"Codigo Empresa;Nome Empresa;CNPJ;Codigo Nota;Numero Nota;Codigo Fornecedor;Nome Fornecedor;Emissao;Entrada" f"Especie;Serie;Acumulador;Valor Contabil;Codigo Produto;Descricao;CFOP;Quantidade;Valor Unitario;Valor Total;Base ICMS;" f"Aliquota ICMS;Valor ICMS;Base ICMS ST;Valor ICMS ST\n")
def getSettingsBanks(self): dataFile = leXls_Xlsx(self._wayFileSettings, 'Bancos') for data in dataFile: try: if str(data[0]).upper().count('COMPARAR COM') > 0 or str( data[0]).upper().count('BANCO') > 0: self._posionsOfHeaderBanks.clear() for keyField, nameField in enumerate(data): nameField = funcoesUteis.treatTextField(nameField) self._posionsOfHeaderBanks[nameField] = keyField continue compareWith = funcoesUteis.treatTextFieldInVector( data, 1, self._posionsOfHeaderBanks, "Comparar Com") compareWith = "" if compareWith != "EXTRATO BANCARIO" and compareWith != "FINANCEIRO DO CLIENTE" else compareWith nameBank = funcoesUteis.treatTextFieldInVector( data, 2, self._posionsOfHeaderBanks, "Banco") account = funcoesUteis.treatTextFieldInVector( data, 3, self._posionsOfHeaderBanks, "Conta Corrente (Sem o Dígito Verificador)") # account = account[:-1] # o -1 é pra tirar o digíto verificador caso o pessoal preencha na configuração, então pega sempre um char a menos evitando este problema accountDominio = int( funcoesUteis.treatNumberFieldInVector( data, 4, self._posionsOfHeaderBanks, "Conta Contábil Banco na Domínio")) if nameBank != "" and accountDominio > 0: self._valuesOfLineBanks = { "compareWith": compareWith, "nameBankComparation": nameBank, "accountComparation": account, "accountDominio": accountDominio } self._valuesOfFileBanks.append( self._valuesOfLineBanks.copy()) except Exception as e: pass return self._valuesOfFileBanks
def getAccountPlan(self): dataFile = leXls_Xlsx(self._file, 'PlanoContas') for data in dataFile: if str(data[0]).upper().count('CONTA') > 0: self._posionsOfHeaderAccountPlan.clear() for keyField, nameField in enumerate(data): nameField = funcoesUteis.treatTextField(nameField) self._posionsOfHeaderAccountPlan[nameField] = keyField continue account = funcoesUteis.treatTextFieldInVector( data, 1, self._posionsOfHeaderAccountPlan, "Conta") # nameAccount = funcoesUteis.treatTextFieldInVector(data, 2, self._posionsOfHeaderAccountPlan, "Nome") # nameAccountMain = funcoesUteis.treatTextFieldInVector(data, 3, self._posionsOfHeaderAccountPlan, "Grupo Principal") # nameAccountSubMain = funcoesUteis.treatTextFieldInVector(data, 4, self._posionsOfHeaderAccountPlan, "Subgrupo") accountDominio = funcoesUteis.treatNumberFieldInVector( data, 5, self._posionsOfHeaderAccountPlan, "Código Conta Domínio") self._dataOfLineAccountPlan[account] = accountDominio return self._dataOfLineAccountPlan
def process(self): try: companiesDominio = list(self._collection.find({})) companiesExcel = leXls_Xlsx( 'C:/Programming/baymax/backend/extract/data/empresas_externos.xlsx', 'GERAL') print('- Processando empresas dos externos:') for companie in companiesExcel: codi_emp = funcoesUteis.treatNumberField(companie[0], isInt=True) nome_emp = funcoesUteis.treatTextField(companie[1]) existCompanieDominio = list( filter( lambda companieDominio: companieDominio['codi_emp'] == codi_emp, companiesDominio)) if len(existCompanieDominio) > 0: dataCompanie = { 'codi_emp': codi_emp, 'grupos_contabil': f"{existCompanieDominio[0]['grupos_contabil']},EXTERNOS", 'grupos_fiscal': f"{existCompanieDominio[0]['grupos_fiscal']},EXTERNOS" } self._collection.update_one({"codi_emp": codi_emp}, {"$set": dataCompanie}, upsert=True) print(f"\t - {codi_emp} - {nome_emp}") except Exception as e: print(f"O erro é: {e}") finally: self._connectionMongo.closeConnection()
import entities.models.LayoutContasPagarReceber as mcpr import tools.funcoes as tf import tools.leArquivos as tLerArq caminho_teste = "C:\\Users\\Elder Vivot Dias\\Downloads\\ARQUIVOS TESTE FRANCESINHA\\BANCO BRADESCO GOLDMAQ" #caminho_teste = "D:\\temp" col_nota = -1 for linha in tLerArq.leXls_Xlsx( tLerArq.buscaArquivosEmPasta(caminho_teste, "xls")): # este for vai pegar o cabeçalho pelo nome das colunas for k, value in enumerate(linha): value = tf.trataCampoTexto(value) if value == tf.trataCampoTexto("Seu Número"): col_nota = k print(mcpr.trataNota(linha[col_nota]))
def process(self, file): if self.isPaymentsLysPorMoeda(file) is not True: return [] valuesOfLine = {} valuesOfFile = [] posionsOfHeader = {} dataFile = leXls_Xlsx(file) for data in dataFile: try: headerField = funcoesUteis.treatTextFieldInVector(data, 5) if headerField.count('NMPESSOACREDORA') > 0: posionsOfHeader.clear() for keyField, nameField in enumerate(data): nameField = funcoesUteis.treatTextField(nameField) posionsOfHeader[nameField] = keyField continue idAccountPaid = funcoesUteis.treatTextFieldInVector( data, 1, posionsOfHeader, "idsContaPagar") paymentDate = funcoesUteis.treatDateFieldInVector( data, 14, posionsOfHeader, "dtPagamento") accountCode = funcoesUteis.treatNumberFieldInVector( data, 23, posionsOfHeader, "nrContaContabil") bankAndAccount = funcoesUteis.treatTextFieldInVector( data, 20, posionsOfHeader, "idFonte") idCentroCusto = funcoesUteis.treatTextFieldInVector( data, 17, posionsOfHeader, "idCentroDeCustoPagamento") positionWordBank = bankAndAccount.find('BANCO') if positionWordBank >= 0: positionPlusSign = bankAndAccount[positionWordBank:].find( '>') + positionWordBank bank = funcoesUteis.returnBankForName( funcoesUteis.treatTextField( bankAndAccount[positionWordBank + 6:positionPlusSign])) positionWordAccount = bankAndAccount.find('CONTA') positionSplitSign = bankAndAccount[ positionWordAccount:].find( '/') + positionWordAccount + 1 accountBank = funcoesUteis.treatTextField( bankAndAccount[positionSplitSign:]) else: bank = "DINHEIRO" accountBank = "" bank = f'{bank} {idCentroCusto}' if paymentDate is not None: valuesOfLine = { "idAccountPaid": idAccountPaid, "paymentDate": paymentDate, "bank": bank, "accountBank": accountBank, "accountCode": accountCode } valuesOfFile.append(valuesOfLine.copy()) except Exception: pass return valuesOfFile
def getExtracts(self): dataFile = leXls_Xlsx(self._file, 'ExtratosBancarios') for key, data in enumerate(dataFile): if str(data[0]).upper().count('DATA') > 0: self._posionsOfHeaderExtracts.clear() for keyField, nameField in enumerate(data): nameField = funcoesUteis.treatTextField(nameField) self._posionsOfHeaderExtracts[nameField] = keyField continue dateExtract = funcoesUteis.treatDateFieldInVector(data, 1) accountCodeDebit = funcoesUteis.treatNumberFieldInVector( data, 2, self._posionsOfHeaderExtracts, "Debito") accountCodeCredit = funcoesUteis.treatNumberFieldInVector( data, 3, self._posionsOfHeaderExtracts, "Credito") amount = funcoesUteis.treatDecimalFieldInVector( data, 4, self._posionsOfHeaderExtracts, "Valor") historicCode = funcoesUteis.treatNumberFieldInVector( data, 5, self._posionsOfHeaderExtracts, "Cod. Hist") historic = funcoesUteis.treatTextFieldInVector( data, 6, self._posionsOfHeaderExtracts, "Historico") foundProofInPayments = funcoesUteis.treatTextFieldInVector( data, 7, self._posionsOfHeaderExtracts, "Encontrou no Financeiro?") if foundProofInPayments == "1": foundProofInPayments = True elif foundProofInPayments == "0": foundProofInPayments = False else: foundProofInPayments = "" bank = funcoesUteis.treatTextFieldInVector( data, 10, self._posionsOfHeaderExtracts, "Banco") account = funcoesUteis.treatTextFieldInVector( data, 11, self._posionsOfHeaderExtracts, "Conta Corrente") typeTransaction = funcoesUteis.treatTextFieldInVector( data, 13, self._posionsOfHeaderExtracts, "Tipo Transacao") operation = funcoesUteis.treatTextFieldInVector( data, 14, self._posionsOfHeaderExtracts, "Operacao") document = funcoesUteis.treatTextFieldInVector( data, 16, self._posionsOfHeaderExtracts, "Documento") if dateExtract is not None and amount > 0: self._extractsOfLine = { "dateTransaction": dateExtract, "accountCodeDebit": accountCodeDebit, "accountCodeCredit": accountCodeCredit, "amount": amount, "historicCode": historicCode, "historic": historic, "foundProofInPayments": foundProofInPayments, "bank": bank, "account": account, "typeTransaction": typeTransaction, "operation": operation, "document": document } self._extractsOfFile.append(self._extractsOfLine.copy()) self._extractsOfLine.clear() return self._extractsOfFile
def getPayments(self): dataFile = leXls_Xlsx(self._file, 'Pagamentos') for data in dataFile: if str(data[0]).upper().count('LOTE') > 0: self._posionsOfHeaderPayments.clear() for keyField, nameField in enumerate(data): nameField = funcoesUteis.treatTextField(nameField) self._posionsOfHeaderPayments[nameField] = keyField continue numberLote = int( funcoesUteis.treatDecimalFieldInVector( data, 1, self._posionsOfHeaderPayments, "Lote")) document = funcoesUteis.treatTextFieldInVector( data, 2, self._posionsOfHeaderPayments, "Documento") findNote = funcoesUteis.treatTextFieldInVector( data, 3, self._posionsOfHeaderPayments, "NF na Domínio?") if findNote == "1": findNote = True elif findNote == "0": findNote = False else: findNote = "" parcelNumber = funcoesUteis.treatTextFieldInVector( data, 4, self._posionsOfHeaderPayments, "Parcela") nameProvider = funcoesUteis.treatTextFieldInVector( data, 5, self._posionsOfHeaderPayments, "Fornecedor") cgceProvider = funcoesUteis.treatTextFieldInVector( data, 6, self._posionsOfHeaderPayments, "CNPJ Fornecedor") bankAndAccount = funcoesUteis.treatTextFieldInVector( data, 7, self._posionsOfHeaderPayments, "Banco Financeiro").split('-') if len(bankAndAccount) == 2: bank = bankAndAccount[0] account = bankAndAccount[1] elif len(bankAndAccount) == 1: bank = bankAndAccount[0] account = "" else: bank = "" account = "" bankAndAccountExtract = funcoesUteis.treatTextFieldInVector( data, 8, self._posionsOfHeaderPayments, "Banco Extrato").split('-') if len(bankAndAccountExtract) == 2: bankExtract = bankAndAccountExtract[0] accountExtract = bankAndAccountExtract[1] elif len(bankAndAccountExtract) == 1: bankExtract = bankAndAccountExtract[0] accountExtract = "" else: bankExtract = "" accountExtract = "" foundProof = funcoesUteis.treatTextFieldInVector( data, 9, self._posionsOfHeaderPayments, "Comprovante Pagto?") if foundProof == "1": foundProof = True elif foundProof == "0": foundProof = False else: foundProof = "" paymentDate = funcoesUteis.treatDateFieldInVector( data, 10, self._posionsOfHeaderPayments, "Data Financeiro") extractDate = funcoesUteis.treatDateFieldInVector( data, 11, self._posionsOfHeaderPayments, "Data Extrato") dateOfImport = funcoesUteis.treatDateFieldInVector( data, 12, self._posionsOfHeaderPayments, "Importação Domínio") dueDate = funcoesUteis.treatTextFieldInVector( data, 13, self._posionsOfHeaderPayments, "Vencimento") issueDate = funcoesUteis.treatTextFieldInVector( data, 14, self._posionsOfHeaderPayments, "Emissão") amountPaid = funcoesUteis.treatDecimalFieldInVector( data, 15, self._posionsOfHeaderPayments, "Valor Pago") amountDiscount = funcoesUteis.treatDecimalFieldInVector( data, 16, self._posionsOfHeaderPayments, "Desconto") amountInterest = funcoesUteis.treatDecimalFieldInVector( data, 17, self._posionsOfHeaderPayments, "Juros") amountFine = funcoesUteis.treatDecimalFieldInVector( data, 18, self._posionsOfHeaderPayments, "Multa") amountOriginal = funcoesUteis.treatDecimalFieldInVector( data, 19, self._posionsOfHeaderPayments, "Valor Original") accountCode = funcoesUteis.treatNumberFieldInVector( data, 20, self._posionsOfHeaderPayments, "Conta Contabil Domínio") codiEmp = funcoesUteis.treatTextFieldInVector( data, 21, self._posionsOfHeaderPayments, "Codigo Empresa") historic = funcoesUteis.treatTextFieldInVector( data, 22, self._posionsOfHeaderPayments, "Historico Financeiro") category = funcoesUteis.treatTextFieldInVector( data, 23, self._posionsOfHeaderPayments, "Categoria") accountPlan = funcoesUteis.treatTextFieldInVector( data, 24, self._posionsOfHeaderPayments, "Plano de Contas") cgcePaying = funcoesUteis.treatTextFieldInVector( data, 25, self._posionsOfHeaderPayments, "CNPJ Pagador") historicExtract = funcoesUteis.treatTextFieldInVector( data, 26, self._posionsOfHeaderPayments, "Historico Extrato Bancário") accountCodeOld = funcoesUteis.treatTextFieldInVector( data, 27, self._posionsOfHeaderPayments, "Conta Contabil Sistema Cliente") if amountPaid != 0: self._paymentsOfLine = { "numberLote": numberLote, "document": document, "findNote": findNote, "parcelNumber": parcelNumber, "nameProvider": nameProvider, "cgceProvider": cgceProvider, "bank": bank, "account": account, "bankExtract": bankExtract, "accountExtract": accountExtract, "foundProof": foundProof, "paymentDate": paymentDate, "dateExtract": extractDate, "dateOfImport": dateOfImport, "dueDate": dueDate, "issueDate": issueDate, "amountPaid": amountPaid, "amountDiscount": amountDiscount, "amountInterest": amountInterest, "amountFine": amountFine, "amountOriginal": amountOriginal, "accountCode": accountCode, "companyBranch": codiEmp, "historic": historic, "category": category, "accountPlan": accountPlan, "cgcePaying": cgcePaying, "historicExtract": historicExtract, "accountCodeOld": accountCodeOld } self._paymentsOfFile.append(self._paymentsOfLine.copy()) return self._paymentsOfFile
def process(self, file): if self.isPaymentsLysPorData(file) is not True: return [] dataFile = leXls_Xlsx(file) valuesOfLine = {} valuesOfFile = [] posionsOfHeader = {} for data in dataFile: try: headerField = funcoesUteis.treatTextFieldInVector(data, 5) if headerField.count('IDPESSOACREDORA') > 0: posionsOfHeader.clear() for keyField, nameField in enumerate(data): nameField = funcoesUteis.treatTextField(nameField) posionsOfHeader[nameField] = keyField continue idAccountPaid = funcoesUteis.treatTextFieldInVector( data, 1, posionsOfHeader, "idsContaPagar") parcelNumber = funcoesUteis.treatTextFieldInVector( data, 2, posionsOfHeader, "cdParcela") dueDate = funcoesUteis.transformaCampoDataParaFormatoBrasileiro( funcoesUteis.treatDateFieldInVector( data, 4, posionsOfHeader, "dtVencimento")) nameProvider = funcoesUteis.treatTextFieldInVector( data, 6, posionsOfHeader, "nmPessoaCredora") document = funcoesUteis.treatTextFieldInVector( data, 11, posionsOfHeader, "nrDocFiscalOriginal") issueDate = funcoesUteis.transformaCampoDataParaFormatoBrasileiro( funcoesUteis.treatDateFieldInVector( data, 12, posionsOfHeader, "dtEmissao")) amountPaid = funcoesUteis.treatDecimalFieldInVector( data, 36, posionsOfHeader, "valorLiquido") amountDiscount = funcoesUteis.treatDecimalFieldInVector( data, 19, posionsOfHeader, "valordesconto") amountInterest = funcoesUteis.treatDecimalFieldInVector( data, 20, posionsOfHeader, "valormulta") amountFine = funcoesUteis.treatDecimalFieldInVector( data, 30, posionsOfHeader, "valorjuro") amountOriginal = funcoesUteis.treatDecimalFieldInVector( data, 10) historic = funcoesUteis.treatTextFieldInVector( data, 34, posionsOfHeader, "justificaticaDaConta") paymentsMoeda = self.returnDataPaymentsPorMoeda(idAccountPaid) paymentDate = funcoesUteis.analyzeIfFieldIsValid( paymentsMoeda, "paymentDate", None) bank = funcoesUteis.analyzeIfFieldIsValid( paymentsMoeda, "bank") accountBank = funcoesUteis.analyzeIfFieldIsValid( paymentsMoeda, "accountBank") accountCode = funcoesUteis.analyzeIfFieldIsValid( paymentsMoeda, "accountCode") if paymentDate is not None and amountPaid > 0: valuesOfLine = { "document": document, "parcelNumber": parcelNumber, "nameProvider": nameProvider, "paymentDate": paymentDate, "dueDate": dueDate, "issueDate": issueDate, "bank": bank, "account": accountBank, "amountPaid": amountPaid, "amountDiscount": amountDiscount, "amountInterest": amountInterest, "amountFine": amountFine, "amountOriginal": amountOriginal, "accountCodeOld": accountCode, "historic": historic } valuesOfFile.append(valuesOfLine.copy()) except Exception: pass return valuesOfFile