def _getCnpjOrCpf(self): cnpj = returnDataInDictOrArray(self._dataTagDest, ['CNPJ']) cpf = returnDataInDictOrArray(self._dataTagDest, ['CPF']) self._idEstrangeiro = returnDataInDictOrArray(self._dataTagDest, ['idEstrangeiro'], '') if self._idEstrangeiro == '' or self._idEstrangeiro is None: self._inscricaoFederal = cnpj if cnpj != '' else cpf self._tipoInscricaoFederal = 'CNPJ' if cnpj != '' else 'CPF' else: self._inscricaoFederal = '' self._tipoInscricaoFederal = ''
def getData(self) -> dict: self._getCnpjOrCpf() self._objEmitente['inscricao_federal'] = self._inscricaoFederal self._objEmitente['tipo_inscricao_federal'] = self._tipoInscricaoFederal self._objEmitente['razao_social'] = treatsFieldAsText(returnDataInDictOrArray(self._dataTagEmit, ['xNome'])) self._objEmitente['nome_fantasia'] = treatsFieldAsText(returnDataInDictOrArray(self._dataTagEmit, ['xFant'])) self._objEmitente['inscricao_estadual'] = returnDataInDictOrArray(self._dataTagEmit, ['IE']) self._objEmitente['regime_empresa'] = treatsFieldAsNumber(returnDataInDictOrArray(self._dataTagEmit, ['CRT']), True) self._objEmitente['endereco'] = self._getAddress() return self._objEmitente
def process(self) -> Union[Dict[str, str], None]: ncm = self._dataNcm['ncm'] nameNcm = treatsFieldAsText( returnDataInDictOrArray(self._dataNcm, ['exportacao', ncm])) if nameNcm != "": return {"ncm": ncm, "nameNcm": nameNcm} else: nameNcm = treatsFieldAsText( returnDataInDictOrArray(self._dataNcm, ['importacao', ncm])) if nameNcm != "": return {"ncm": ncm, "nameNcm": nameNcm} return None
def bebidaFria(self): tagsNecessaries = ['bebidas_frias'] ncm = self._dataNcm['ncm'] nameNcm = treatsFieldAsText(returnDataInDictOrArray(self._dataNcm, ['bebidas_frias', ncm])) dataTagsNecessaries = returnDataInDictOrArray(self._dataNcm, tagsNecessaries, None) if dataTagsNecessaries is not None: if self._returnOnlyValueNcm is False: return { "ncm": ncm, "nameNcm": nameNcm, "tag": 'BebidaFria', "dataTag": "" } else: return ncm
def cstSNVendaVarejista(self): tagsNecessaries = ['bebidas_frias', 'codigo_da_situacao_tributaria_cst', 'simples_nacional', 'saida_(venda_pelo_comercio_varejista)'] ncm = self._dataNcm['ncm'] nameNcm = treatsFieldAsText(returnDataInDictOrArray(self._dataNcm, ['bebidas_frias', ncm])) dataTagsNecessaries = returnDataInDictOrArray(self._dataNcm, tagsNecessaries, None) if dataTagsNecessaries is not None: if self._returnOnlyValueNcm is False: return { "ncm": ncm, "nameNcm": nameNcm, "tag": 'BebidaFria_CST_SN_SaidaVendaComercioVarejista', "dataTag": dataTagsNecessaries } else: return ncm
def getData(self): self._objIde['numero_nf'] = treatsFieldAsNumber(returnDataInDictOrArray(self._dataTagIde, ['nNF'])) self._objIde['modelo_nf'] = treatsFieldAsNumber(returnDataInDictOrArray(self._dataTagIde, ['mod'])) self._objIde['serie_nf'] = returnDataInDictOrArray(self._dataTagIde, ['serie']) self._objIde['data_emissao'] = returnDataInDictOrArray(self._dataTagIde, ['dhEmi']) self._objIde['data_saida_entrada'] = returnDataInDictOrArray(self._dataTagIde, ['dhSaiEnt']) self._objIde['tipo_documento'] = treatsFieldAsNumber(returnDataInDictOrArray(self._dataTagIde, 'tpNF')) self._objIde['identificador_local_destino_operacao'] = treatsFieldAsNumber( returnDataInDictOrArray(self._dataTagIde, ['idDest'])) self._objIde['municipio_ocorrencia_fato'] = treatsFieldAsNumber( returnDataInDictOrArray(self._dataTagIde, ['cMunFG'])) self._objIde['finalidade_nf'] = treatsFieldAsNumber(returnDataInDictOrArray(self._dataTagIde, ['finNFe'])) return self._objIde
def getData(self) -> dict: self._getCnpjOrCpf() self._objDestinatario['inscricao_federal'] = self._inscricaoFederal self._objDestinatario[ 'tipo_inscricao_federal'] = self._tipoInscricaoFederal self._objDestinatario['id_estrangeiro'] = self._idEstrangeiro self._objDestinatario['razao_social'] = treatsFieldAsText( returnDataInDictOrArray(self._dataTagDest, ['xNome'])) self._objDestinatario[ 'indicador_inscricao_estadual'] = treatsFieldAsNumber( returnDataInDictOrArray(self._dataTagDest, ['indIEDest']), True) self._objDestinatario['inscricao_estadual'] = returnDataInDictOrArray( self._dataTagDest, ['IE']) self._objDestinatario['inscricao_municipal'] = returnDataInDictOrArray( self._dataTagDest, ['IM']) self._objDestinatario['endereco'] = self._getAddress() return self._objDestinatario
def _tagDet(self): listTagsDet = [] dataTagDet = returnDataInDictOrArray( self._dataXml, ['nfeProc', 'NFe', 'infNFe', 'det']) if type(dataTagDet) == list: listTagsDet = dataTagDet else: listTagsDet.append(dataTagDet) tagDet = TagDet(listTagsDet) self._objNf['dados_produtos'] = tagDet.getData()
def process(self) -> Union[dict, None]: isNfe = self._isNfe() if isNfe is False: return None self._objNf['chave_nota'] = returnDataInDictOrArray( self._dataXml, ['nfeProc', 'NFe', 'infNFe', '@Id'])[3:] self._tagIde() self._tagEmit() self._tagDest() self._tagDet() self._tagTotal() return self._objNf
def _tagDest(self): dataTagDest = returnDataInDictOrArray( self._dataXml, ['nfeProc', 'NFe', 'infNFe', 'dest']) tagDest = TagDest(dataTagDest) self._objNf['destinatario'] = tagDest.getData()
def _tagEmit(self): dataTagEmit = returnDataInDictOrArray( self._dataXml, ['nfeProc', 'NFe', 'infNFe', 'emit']) tagEmit = TagEmit(dataTagEmit) self._objNf['emitente'] = tagEmit.getData()
def _tagIde(self): dataTagIde = returnDataInDictOrArray( self._dataXml, ['nfeProc', 'NFe', 'infNFe', 'ide']) tagIde = TagIde(dataTagIde) self._objNf['identificao_nfe'] = tagIde.getData()
def _isNfe(self): keyNf = returnDataInDictOrArray(self._dataXml, ['nfeProc', 'NFe', 'infNFe', '@Id']) return True if keyNf != '' else False
def _getNcmName(self, ncm): return returnDataInDictOrArray(self._listNcmName, [ncm])
def _getNcmRule(self, ncm, cfop): if cfop not in self._listCfopTributado: return 'CFOPNaoTributado' return returnDataInDictOrArray(self._listNcm, [ncm])
def getData(self): for key, dataTagDet in enumerate(self._listDataTagDet): self._objDet['numero_item'] = key + 1 self._objDet['codigo_produto'] = returnDataInDictOrArray( dataTagDet, ['prod', 'cProd']) self._objDet['nome_produto'] = treatsFieldAsText( returnDataInDictOrArray(dataTagDet, ['prod', 'xProd'])) self._objDet['global_trade_item_number'] = returnDataInDictOrArray( dataTagDet, ['prod', 'cEAN']) self._objDet['ncm'] = returnDataInDictOrArray( dataTagDet, ['prod', 'NCM']) self._objDet['cfop'] = treatsFieldAsNumber(returnDataInDictOrArray( dataTagDet, ['prod', 'CFOP']), isInt=True) self._objDet['unidade'] = returnDataInDictOrArray( dataTagDet, ['prod', 'uCom']) self._objDet['quantidade'] = treatsFieldAsDecimal( returnDataInDictOrArray(dataTagDet, ['prod', 'qCom']), 4) self._objDet['valor_unitario'] = treatsFieldAsDecimal( returnDataInDictOrArray(dataTagDet, ['prod', 'vUnCom']), 10) self._objDet['valor_produto'] = treatsFieldAsDecimal( returnDataInDictOrArray(dataTagDet, ['prod', 'vProd']), 10) self._objDet['valor_frete'] = treatsFieldAsDecimal( returnDataInDictOrArray(dataTagDet, ['prod', 'vFrete']), 10) self._objDet['vseg'] = treatsFieldAsDecimal( returnDataInDictOrArray(dataTagDet, ['prod', 'vSeg']), 10) self._objDet['valor_outros'] = treatsFieldAsDecimal( returnDataInDictOrArray(dataTagDet, ['prod', 'vOutro']), 10) self._objDet['valor_desconto'] = treatsFieldAsDecimal( returnDataInDictOrArray(dataTagDet, ['prod', 'vDesc']), 10) self._objDet['valor_total'] = self.__amountValorContabil() self._objDet['informacao_adicionais'] = treatsFieldAsText( returnDataInDictOrArray(dataTagDet, ['infAdProd'])) self._objListTagDet.append(self._objDet.copy()) self._objDet.clear() return self._objListTagDet
def _getCnpjOrCpf(self): cnpj = returnDataInDictOrArray(self._dataTagEmit, ['CNPJ']) cpf = returnDataInDictOrArray(self._dataTagEmit, ['CPF']) self._inscricaoFederal = cnpj if cnpj != '' else cpf self._tipoInscricaoFederal = 'CNPJ' if cnpj != '' else 'CPF'