diff --git a/pynfe/processamento/serializacao.py b/pynfe/processamento/serializacao.py index c87074a..0208f43 100644 --- a/pynfe/processamento/serializacao.py +++ b/pynfe/processamento/serializacao.py @@ -264,8 +264,7 @@ class SerializacaoXML(Serializacao): ### ICMS icms = etree.SubElement(imposto, 'ICMS') - icms_csosn = ('102', '103', '300', '400') - if produto_servico.icms_modalidade in icms_csosn: + if produto_servico.icms_modalidade in ('102', '103', '300', '400'): icms_item = etree.SubElement(icms, 'ICMSSN102') etree.SubElement(icms_item, 'orig').text = str(produto_servico.icms_origem) etree.SubElement(icms_item, 'CSOSN').text = produto_servico.icms_csosn @@ -275,6 +274,20 @@ class SerializacaoXML(Serializacao): etree.SubElement(icms_item, 'CSOSN').text = produto_servico.icms_csosn etree.SubElement(icms_item, 'pCredSN').text = str(produto_servico.icms_aliquota) # Alíquota aplicável de cálculo do crédito (Simples Nacional). etree.SubElement(icms_item, 'vCredICMSSN').text = str(produto_servico.icms_credito) # Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (Simples Nacional) + elif produto_servico.icms_modalidade == '201': + icms_item = etree.SubElement(icms, 'ICMSSN' + produto_servico.icms_modalidade) + etree.SubElement(icms_item, 'orig').text = str(produto_servico.icms_origem) # Origem da mercadoria + etree.SubElement(icms_item, 'CSOSN').text = produto_servico.icms_csosn # Código de Situação da Operação – Simples Nacional + etree.SubElement(icms_item, 'modBCST').text = str(produto_servico.icms_st_modalidade_determinacao_bc) # Modalidade de determinação da BC do ICMS ST + if produto_servico.icms_st_percentual_adicional > 0: + etree.SubElement(icms_item, 'pMVAST').text = '{:.4f}'.format(produto_servico.icms_st_percentual_adicional) # Percentual da margem de valor Adicionado do ICMS ST + if produto_servico.icms_st_percentual_reducao_bc > 0: + etree.SubElement(icms_item, 'pRedBCST').text = '{:.4f}'.format(produto_servico.icms_st_percentual_reducao_bc) # APercentual da Redução de BC do ICMS ST + etree.SubElement(icms_item, 'vBCST').text = '{:.2f}'.format(produto_servico.icms_st_valor_base_calculo) # Valor da BC do ICMS ST + etree.SubElement(icms_item, 'pICMSST').text = '{:.4f}'.format(produto_servico.icms_st_aliquota) # Alíquota do imposto do ICMS ST + etree.SubElement(icms_item, 'vICMSST').text = '{:.2f}'.format(produto_servico.icms_st_valor) # Valor do ICMS ST + etree.SubElement(icms_item, 'pCredSN').text = '{:.4f}'.format(produto_servico.icms_aliquota) # Alíquota aplicável de cálculo do crédito (Simples Nacional). + etree.SubElement(icms_item, 'vCredICMSSN').text = '{:.2f}'.format(produto_servico.icms_credito) # Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (Simples Nacional) elif produto_servico.icms_modalidade == 'ST': icms_item = etree.SubElement(icms, 'ICMS'+produto_servico.icms_modalidade) etree.SubElement(icms_item, 'orig').text = str(produto_servico.icms_origem)