br_nfe 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +0 -1
- data/Gemfile.lock +1 -1
- data/README.markdown +264 -106
- data/lib/br_nfe/{helper → association}/have_address.rb +1 -1
- data/lib/br_nfe/{helper → association}/have_condicao_pagamento.rb +1 -1
- data/lib/br_nfe/association/have_destinatario.rb +22 -0
- data/lib/br_nfe/association/have_emitente.rb +24 -0
- data/lib/br_nfe/base.rb +37 -27
- data/lib/br_nfe/condicao_pagamento.rb +2 -0
- data/lib/br_nfe/constants.rb +33 -0
- data/lib/br_nfe/endereco.rb +10 -0
- data/lib/br_nfe/helper/string_methods.rb +4 -0
- data/lib/br_nfe/{emitente.rb → person.rb} +11 -7
- data/lib/br_nfe/product/base.rb +82 -0
- data/lib/br_nfe/product/consulta_status_servico.rb +35 -0
- data/lib/br_nfe/product/emitente.rb +8 -0
- data/lib/br_nfe/product/gateway/base.rb +62 -0
- data/lib/br_nfe/product/gateway/web_service_svrs.rb +39 -0
- data/lib/br_nfe/product/value_nf.rb +9 -0
- data/lib/br_nfe/product/xml/soap_env.xml.slim +8 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/consReciNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/consSitNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/consStatServ_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/enviNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/inutNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/leiauteConsSitNFe_v3.10.xsd +502 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/leiauteConsStatServ_v3.10.xsd +98 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/leiauteInutNFe_v3.10.xsd +193 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/leiauteNFe_v3.10.xsd +6060 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/nfe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/procInutNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/procNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retConsReciNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retConsSitNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retConsStatServ_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retEnviNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retInutNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/tiposBasico_v3.10.xsd +571 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/xmldsig-core-schema_v1.01.xsd +98 -0
- data/lib/br_nfe/product/xml/v3_10/consulta_status_servico.xml.slim +4 -0
- data/lib/br_nfe/service/association/have_intermediario.rb +26 -0
- data/lib/br_nfe/service/association/have_rps.rb +36 -0
- data/lib/br_nfe/service/base.rb +24 -20
- data/lib/br_nfe/service/betha/v1/cancela_nfse.rb +43 -0
- data/lib/br_nfe/service/betha/v1/consulta_lote_rps.rb +20 -6
- data/lib/br_nfe/service/betha/v1/consulta_nfs_por_rps.rb +17 -6
- data/lib/br_nfe/service/betha/v1/consulta_nfse.rb +16 -5
- data/lib/br_nfe/service/betha/v1/consulta_situacao_lote_rps.rb +15 -6
- data/lib/br_nfe/service/betha/v1/gateway.rb +4 -0
- data/lib/br_nfe/service/betha/v1/recepcao_lote_rps.rb +13 -5
- data/lib/br_nfe/service/betha/v1/xml/_tc_identificacao_prestador.xml.slim +3 -0
- data/lib/br_nfe/service/betha/v1/xml/_tc_pedido_cancelamento.xml.slim +4 -0
- data/lib/br_nfe/service/concerns/rules/cancelamento_nfs.rb +8 -0
- data/lib/br_nfe/service/concerns/rules/consulta_nfs_por_rps.rb +1 -1
- data/lib/br_nfe/service/concerns/rules/consulta_nfse.rb +5 -2
- data/lib/br_nfe/service/concerns/values_ts/service_v1.rb +319 -0
- data/lib/br_nfe/service/destinatario.rb +7 -0
- data/lib/br_nfe/service/emitente.rb +8 -0
- data/lib/br_nfe/service/intermediario.rb +1 -12
- data/lib/br_nfe/service/item.rb +7 -7
- data/lib/br_nfe/service/response/build/base.rb +166 -0
- data/lib/br_nfe/service/response/build/cancelamento.rb +62 -0
- data/lib/br_nfe/service/response/build/consulta_lote_rps.rb +25 -0
- data/lib/br_nfe/service/response/build/consulta_nfs_por_rps.rb +25 -0
- data/lib/br_nfe/service/response/build/consulta_nfse.rb +24 -0
- data/lib/br_nfe/service/response/build/consulta_situacao_lote_rps.rb +56 -0
- data/lib/br_nfe/service/response/build/invoice_build.rb +359 -0
- data/lib/br_nfe/service/response/build/recepcao_lote_rps.rb +69 -0
- data/lib/br_nfe/service/response/cancelamento.rb +22 -0
- data/lib/br_nfe/service/response/consulta_lote_rps.rb +18 -0
- data/lib/br_nfe/service/response/consulta_nfs_por_rps.rb +10 -0
- data/lib/br_nfe/service/response/consulta_nfse.rb +10 -0
- data/lib/br_nfe/service/response/consulta_situacao_lote_rps.rb +74 -0
- data/lib/br_nfe/service/response/default.rb +93 -0
- data/lib/br_nfe/{response/service → service/response}/nota_fiscal.rb +19 -12
- data/lib/br_nfe/service/response/paths/v1/tc_nfse.rb +275 -0
- data/lib/br_nfe/service/response/recepcao_lote_rps.rb +35 -0
- data/lib/br_nfe/service/rps.rb +30 -27
- data/lib/br_nfe/service/sc/florianopolis/xml/_service_item.xml.slim +4 -4
- data/lib/br_nfe/service/sc/florianopolis/xml/inf_requisicao.xml.slim +4 -4
- data/lib/br_nfe/service/simpliss/v1/cancela_nfse.rb +16 -6
- data/lib/br_nfe/service/simpliss/v1/consulta_lote_rps.rb +20 -12
- data/lib/br_nfe/service/simpliss/v1/consulta_nfs_por_rps.rb +21 -6
- data/lib/br_nfe/service/simpliss/v1/consulta_nfse.rb +20 -6
- data/lib/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps.rb +17 -6
- data/lib/br_nfe/service/simpliss/v1/recepcao_lote_rps.rb +16 -4
- data/lib/br_nfe/service/simpliss/v1/xml/_tc_item_servico.xml.slim +2 -2
- data/lib/br_nfe/service/thema/v1/cancela_nfse.rb +21 -19
- data/lib/br_nfe/service/thema/v1/consulta_lote_rps.rb +21 -19
- data/lib/br_nfe/service/thema/v1/consulta_nfs_por_rps.rb +25 -18
- data/lib/br_nfe/service/thema/v1/consulta_nfse.rb +20 -20
- data/lib/br_nfe/service/thema/v1/consulta_situacao_lote_rps.rb +14 -20
- data/lib/br_nfe/service/thema/v1/recepcao_lote_rps.rb +11 -16
- data/lib/br_nfe/service/thema/v1/recepcao_lote_rps_limitado.rb +8 -6
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_nfse.xml.slim +1 -1
- data/lib/br_nfe/service/xml/v1/_tc_pedido_cancelamento.xml.slim +1 -1
- data/lib/br_nfe/service/xml/v1/_tc_valores.xml.slim +11 -11
- data/lib/br_nfe/version.rb +1 -1
- data/lib/br_nfe.rb +62 -62
- data/test/br_nfe/association/have_address_test.rb +64 -0
- data/test/br_nfe/association/have_condicao_pagamento_test.rb +75 -0
- data/test/br_nfe/association/have_destinatario_test.rb +76 -0
- data/test/br_nfe/association/have_emitente_test.rb +80 -0
- data/test/br_nfe/base_test.rb +96 -61
- data/test/br_nfe/endereco_test.rb +21 -0
- data/test/br_nfe/person_test.rb +55 -0
- data/test/br_nfe/product/base_test.rb +150 -0
- data/test/br_nfe/product/consulta_status_servico_test.rb +59 -0
- data/test/br_nfe/product/emitente_test.rb +29 -0
- data/test/br_nfe/product/gateway/base_test.rb +16 -0
- data/test/br_nfe/product/gateway/web_service_svrs_test.rb +36 -0
- data/test/br_nfe/service/association/have_intermediario_test.rb +80 -0
- data/test/br_nfe/service/association/have_rps_test.rb +62 -0
- data/test/br_nfe/service/base_test.rb +42 -42
- data/test/br_nfe/service/betha/v1/cancela_nfse_test.rb +90 -0
- data/test/br_nfe/service/betha/v1/consulta_lote_rps_test.rb +105 -5
- data/test/br_nfe/service/betha/v1/consulta_nfs_por_rps_test.rb +103 -5
- data/test/br_nfe/service/betha/v1/consulta_nfse_test.rb +114 -5
- data/test/br_nfe/service/betha/v1/consulta_situacao_lote_rps_test.rb +118 -5
- data/test/br_nfe/service/betha/v1/gateway_test.rb +1 -1
- data/test/br_nfe/service/betha/v1/recepcao_lote_rps_test.rb +51 -5
- data/test/br_nfe/service/concerns/rules/cancelamento_nfs_test.rb +2 -2
- data/test/br_nfe/service/concerns/rules/consulta_nfs_por_rps_test.rb +2 -7
- data/test/br_nfe/service/concerns/rules/consulta_nfse_test.rb +24 -3
- data/test/br_nfe/service/concerns/rules/recepcao_lote_rps_test.rb +1 -1
- data/test/br_nfe/{helper → service/concerns}/values_ts/service_v1_test.rb +2 -2
- data/test/br_nfe/{destinatario_test.rb → service/destinatario_test.rb} +3 -4
- data/test/br_nfe/service/emitente_test.rb +29 -0
- data/test/br_nfe/service/item_test.rb +14 -14
- data/test/br_nfe/service/response/build/base_test.rb +80 -0
- data/test/br_nfe/{response/service → service/response}/default_test.rb +1 -82
- data/test/br_nfe/service/response/nota_fiscal_test.rb +59 -0
- data/test/br_nfe/{response/service → service/response}/paths/v1/tc_nfse_test.rb +10 -10
- data/test/br_nfe/service/rps_test.rb +107 -138
- data/test/br_nfe/service/sc/florianopolis/emission_rps_test.rb +9 -9
- data/test/br_nfe/service/simpliss/v1/base_test.rb +1 -1
- data/test/br_nfe/service/simpliss/v1/cancela_nfse_test.rb +7 -10
- data/test/br_nfe/service/simpliss/v1/consulta_lote_rps_test.rb +11 -18
- data/test/br_nfe/service/simpliss/v1/consulta_nfs_por_rps_test.rb +11 -18
- data/test/br_nfe/service/simpliss/v1/consulta_nfse_test.rb +11 -18
- data/test/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps_test.rb +7 -11
- data/test/br_nfe/service/simpliss/v1/recepcao_lote_rps_test.rb +3 -9
- data/test/br_nfe/service/thema/v1/base_test.rb +1 -1
- data/test/br_nfe/service/thema/v1/cancela_nfse_test.rb +7 -14
- data/test/br_nfe/service/thema/v1/consulta_lote_rps_test.rb +6 -17
- data/test/br_nfe/service/thema/v1/consulta_nfs_por_rps_test.rb +6 -13
- data/test/br_nfe/service/thema/v1/consulta_nfse_test.rb +11 -18
- data/test/br_nfe/service/thema/v1/consulta_situacao_lote_rps_test.rb +7 -11
- data/test/br_nfe/service/thema/v1/recepcao_lote_rps_limitado_test.rb +1 -5
- data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test.rb +3 -9
- data/test/factories/base.rb +0 -1
- data/test/factories/{emitente.rb → person.rb} +1 -1
- data/test/factories/product/base.rb +12 -0
- data/test/factories/product/consulta_status_servico.rb +12 -0
- data/test/factories/product/emitente.rb +15 -0
- data/test/factories/product/gateway/base.rb +5 -0
- data/test/factories/product/gateway/web_service_svrs.rb +5 -0
- data/test/factories/service/betha/v1/{cancelamento_nfs.rb → cancela_nfse.rb} +2 -1
- data/test/factories/service/betha/v1/consulta_lote_rps.rb +1 -1
- data/test/factories/service/betha/v1/consulta_nfs_por_rps.rb +1 -1
- data/test/factories/service/betha/v1/consulta_nfse.rb +1 -1
- data/test/factories/service/betha/v1/consulta_situacao_lote_rps.rb +1 -1
- data/test/factories/{destinatario.rb → service/destinatario.rb} +1 -1
- data/test/factories/service/emitente.rb +15 -0
- data/test/factories/service/item.rb +4 -4
- data/test/factories/service/response/build_response.rb +5 -0
- data/test/factories/service/response/default.rb +6 -0
- data/test/factories/{response/service → service/response}/nota_fiscal.rb +8 -8
- data/test/factories/service/rps.rb +11 -11
- data/test/factories/service/sc/florianopolis/base.rb +1 -1
- data/test/factories/service/sc/florianopolis/cancellation.rb +1 -1
- data/test/factories/service/sc/florianopolis/emission_rps.rb +1 -1
- data/test/factories/service/simpliss/v1/base.rb +1 -1
- data/test/factories/service/simpliss/v1/cancela_nfse.rb +1 -1
- data/test/factories/service/simpliss/v1/consulta_lote_rps.rb +1 -1
- data/test/factories/service/simpliss/v1/consulta_nfs_por_rps.rb +1 -1
- data/test/factories/service/simpliss/v1/consulta_nfse.rb +1 -1
- data/test/factories/service/simpliss/v1/consulta_situacao_lote_rps.rb +1 -1
- data/test/factories/service/simpliss/v1/recepcao_lote_rps.rb +1 -1
- data/test/factories/service/thema/v1/base.rb +1 -1
- data/test/factories/service/thema/v1/cancela_nfse.rb +1 -1
- data/test/factories/service/thema/v1/consulta_lote_rps.rb +1 -1
- data/test/factories/service/thema/v1/consulta_nfs_por_rps.rb +1 -1
- data/test/factories/service/thema/v1/consulta_nfse.rb +1 -1
- data/test/factories/service/thema/v1/consulta_situacao_lote_rps.rb +1 -1
- data/test/factories/service/thema/v1/recepcao_lote_rps.rb +1 -1
- data/test/fixtures/service/response/betha/v1/cancela_nfse/fault.xml +17 -0
- data/test/fixtures/service/response/betha/v1/cancela_nfse/success.xml +48 -0
- data/test/fixtures/service/response/betha/v1/consulta_lote_rps/fault.xml +18 -0
- data/test/fixtures/service/response/betha/v1/consulta_lote_rps/success.xml +108 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse/fault.xml +18 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse/nfs_empty.xml +12 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse/success.xml +115 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse_por_rps/fault.xml +18 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse_por_rps/success.xml +103 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/error.xml +13 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/fault.xml +17 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/success.xml +13 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unprocessed.xml +13 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unprocessed_by_code_error.xml +17 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unreceived.xml +13 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unreceived_by_code_error.xml +17 -0
- data/test/fixtures/service/response/betha/v1/recepcao_lote_rps/error.xml +17 -0
- data/test/fixtures/service/response/betha/v1/recepcao_lote_rps/success.xml +14 -0
- metadata +160 -94
- data/lib/br_nfe/destinatario.rb +0 -26
- data/lib/br_nfe/helper/have_destinatario.rb +0 -18
- data/lib/br_nfe/helper/have_emitente.rb +0 -20
- data/lib/br_nfe/helper/have_intermediario.rb +0 -24
- data/lib/br_nfe/helper/have_rps.rb +0 -34
- data/lib/br_nfe/helper/values_ts/service_v1.rb +0 -317
- data/lib/br_nfe/response/service/build_response.rb +0 -463
- data/lib/br_nfe/response/service/default.rb +0 -185
- data/lib/br_nfe/response/service/paths/base.rb +0 -127
- data/lib/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta.rb +0 -22
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta.rb +0 -25
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta.rb +0 -25
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta.rb +0 -25
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta.rb +0 -31
- data/lib/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta.rb +0 -36
- data/lib/br_nfe/response/service/paths/v1/tc_nfse.rb +0 -271
- data/lib/br_nfe/service/betha/v1/cancelamento_nfs.rb +0 -36
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta.rb +0 -23
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta.rb +0 -21
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +0 -21
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_cancelar_nfse_resposta.rb +0 -22
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_lote_rps_resposta.rb +0 -25
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_nfse_resposta.rb +0 -25
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +0 -25
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_situacao_lote_rps_resposta.rb +0 -31
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_enviar_lote_rps_resposta.rb +0 -36
- data/lib/br_nfe/service/thema/v1/response_paths/servico_cancelar_nfse_resposta.rb +0 -17
- data/lib/br_nfe/service/thema/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +0 -19
- data/test/br_nfe/emitente_test.rb +0 -46
- data/test/br_nfe/helper/have_address_test.rb +0 -62
- data/test/br_nfe/helper/have_condicao_pagamento_test.rb +0 -71
- data/test/br_nfe/helper/have_destinatario_test.rb +0 -64
- data/test/br_nfe/helper/have_emitente_test.rb +0 -63
- data/test/br_nfe/helper/have_intermediario_test.rb +0 -77
- data/test/br_nfe/helper/have_rps_test.rb +0 -59
- data/test/br_nfe/response/service/build_response_test.rb +0 -205
- data/test/br_nfe/response/service/nota_fiscal_test.rb +0 -41
- data/test/br_nfe/response/service/paths/base_test.rb +0 -196
- data/test/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta_test.rb +0 -25
- data/test/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta_test.rb +0 -30
- data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta_test.rb +0 -30
- data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta_test.rb +0 -30
- data/test/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta_test.rb +0 -30
- data/test/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta_test.rb +0 -34
- data/test/br_nfe/service/betha/v1/cancelamento_nfs_test.rb +0 -54
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta_test.rb +0 -16
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta_test.rb +0 -16
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta_test.rb +0 -16
- data/test/factories/response/service/build_response.rb +0 -5
- data/test/factories/response/service/default.rb +0 -10
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
|
-
describe BrNfe::Response::
|
|
3
|
+
describe BrNfe::Service::Response::Default do
|
|
4
4
|
subject { FactoryGirl.build(:response_service_default) }
|
|
5
5
|
|
|
6
6
|
|
|
@@ -133,86 +133,5 @@ describe BrNfe::Response::Service::Default do
|
|
|
133
133
|
end
|
|
134
134
|
end
|
|
135
135
|
|
|
136
|
-
describe 'array de erros que correspondem a determinadas situações do estado do RPS' do
|
|
137
|
-
describe '#situation_unreceived_code_errors' do
|
|
138
|
-
let(:default_codes) { ['E4'] }
|
|
139
|
-
it 'por padrão deve retornar os codigos padrões correspondente a sutiação unreceived' do
|
|
140
|
-
subject.situation_unreceived_code_errors.must_equal( default_codes )
|
|
141
|
-
end
|
|
142
|
-
it 'ao setar um valor deve acrescentar o valor padrão e não sobrescrever' do
|
|
143
|
-
subject.situation_unreceived_code_errors = [['code2','code3'],'code4']
|
|
144
|
-
subject.situation_unreceived_code_errors.must_equal( ['code2','code3','code4']+default_codes )
|
|
145
|
-
end
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
describe '#situation_unprocessed_code_errors' do
|
|
149
|
-
let(:default_codes) { ['E92'] }
|
|
150
|
-
it 'por padrão deve retornar os codigos padrões correspondente a sutiação unprocessed' do
|
|
151
|
-
subject.situation_unprocessed_code_errors.must_equal( default_codes )
|
|
152
|
-
end
|
|
153
|
-
it 'ao setar um valor deve acrescentar o valor padrão e não sobrescrever' do
|
|
154
|
-
subject.situation_unprocessed_code_errors = [['code2','code3'],'code4']
|
|
155
|
-
subject.situation_unprocessed_code_errors.must_equal( ['code2','code3','code4']+default_codes )
|
|
156
|
-
end
|
|
157
|
-
end
|
|
158
|
-
|
|
159
|
-
describe '#situation_success_code_errors' do
|
|
160
|
-
let(:default_codes) { [] }
|
|
161
|
-
it 'por padrão deve retornar os codigos padrões correspondente a sutiação success' do
|
|
162
|
-
subject.situation_success_code_errors.must_equal( default_codes )
|
|
163
|
-
end
|
|
164
|
-
it 'ao setar um valor deve acrescentar o valor padrão e não sobrescrever' do
|
|
165
|
-
subject.situation_success_code_errors = [['code2','code3'],'code4']
|
|
166
|
-
subject.situation_success_code_errors.must_equal( ['code2','code3','code4']+default_codes )
|
|
167
|
-
end
|
|
168
|
-
end
|
|
169
|
-
end
|
|
170
|
-
|
|
171
|
-
describe '#get_situation_by_message_codes' do
|
|
172
|
-
before do
|
|
173
|
-
subject.stubs(:message_codes).returns(['ERR1','ERR2'])
|
|
174
|
-
end
|
|
175
|
-
it "deve retornar :unreceived se alguma mensagem de erro estiver entre as mensagens do metodo situation_unreceived_code_errors" do
|
|
176
|
-
subject.situation_unreceived_code_errors = 'ERR1'
|
|
177
|
-
subject.get_situation_by_message_codes.must_equal :unreceived
|
|
178
|
-
end
|
|
179
|
-
it "deve retornar :unprocessed se alguma mensagem de erro estiver entre as mensagens do metodo situation_unprocessed_code_errors" do
|
|
180
|
-
subject.situation_unprocessed_code_errors = 'ERR1'
|
|
181
|
-
subject.get_situation_by_message_codes.must_equal :unprocessed
|
|
182
|
-
end
|
|
183
|
-
it "deve retornar :success se alguma mensagem de erro estiver entre as mensagens do metodo situation_success_code_errors" do
|
|
184
|
-
subject.situation_success_code_errors = 'ERR1'
|
|
185
|
-
subject.get_situation_by_message_codes.must_equal :success
|
|
186
|
-
end
|
|
187
|
-
it "deve retornar :error se o codigo não estiver presente em nenhum dos metodos com os codigos padrões" do
|
|
188
|
-
subject.get_situation_by_message_codes.must_equal :error
|
|
189
|
-
end
|
|
190
|
-
it "se não houver nenhuma mensagem de erro deve retornar nil" do
|
|
191
|
-
subject.unstub(:message_codes)
|
|
192
|
-
subject.get_situation_by_message_codes.must_be_nil
|
|
193
|
-
end
|
|
194
|
-
end
|
|
195
|
-
|
|
196
|
-
describe '#situation' do
|
|
197
|
-
it "se não houver setado uma situação e tiver alguma mensagem de erro deve buscar o valor da situação no metodo #get_situation_by_message_codes" do
|
|
198
|
-
subject.situation = nil
|
|
199
|
-
subject.stubs(:error_messages).returns(['a error'])
|
|
200
|
-
subject.expects(:get_situation_by_message_codes).returns(:sit)
|
|
201
|
-
subject.situation.must_equal :sit
|
|
202
|
-
subject.instance_variable_get(:@situation).must_equal :sit
|
|
203
|
-
end
|
|
204
|
-
it "se não houver setado uma situação e também não tiver mensagem de erro deve retornar nil" do
|
|
205
|
-
subject.situation = nil
|
|
206
|
-
subject.stubs(:error_messages).returns([])
|
|
207
|
-
subject.expects(:get_situation_by_message_codes).never
|
|
208
|
-
subject.situation.must_be_nil
|
|
209
|
-
end
|
|
210
|
-
it "mesmo com mensagem de erro se tiver algum valor na situação não deve tentar buscar a situação pelos codigos de erros" do
|
|
211
|
-
subject.situation = :some_value
|
|
212
|
-
subject.stubs(:error_messages).returns(['a error'])
|
|
213
|
-
subject.expects(:get_situation_by_message_codes).never
|
|
214
|
-
subject.situation.must_equal :some_value
|
|
215
|
-
end
|
|
216
|
-
end
|
|
217
136
|
|
|
218
137
|
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
describe BrNfe::Service::Response::NotaFiscal do
|
|
4
|
+
subject { FactoryGirl.build(:response_service_nota_fiscal, emitente: emitente) }
|
|
5
|
+
let(:emitente) { FactoryGirl.build(:service_emitente) }
|
|
6
|
+
let(:destinatario) { subject.destinatario }
|
|
7
|
+
let(:intermediario) { subject.intermediario }
|
|
8
|
+
let(:condicao_pagamento) { subject.condicao_pagamento }
|
|
9
|
+
|
|
10
|
+
describe "#emitente" do
|
|
11
|
+
it "deve conter o module HaveEmitente" do
|
|
12
|
+
subject.class.included_modules.must_include BrNfe::Association::HaveEmitente
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
describe "#destinatario" do
|
|
17
|
+
class OtherClassDestinatario < BrNfe::ActiveModelBase
|
|
18
|
+
end
|
|
19
|
+
it "deve ter incluso o module HaveDestinatario" do
|
|
20
|
+
subject.class.included_modules.must_include BrNfe::Association::HaveDestinatario
|
|
21
|
+
end
|
|
22
|
+
it "o método #destinatario_class deve ter por padrão a class BrNfe::Service::Destinatario" do
|
|
23
|
+
subject.destinatario.must_be_kind_of BrNfe::Service::Destinatario
|
|
24
|
+
subject.send(:destinatario_class).must_equal BrNfe::Service::Destinatario
|
|
25
|
+
end
|
|
26
|
+
it "a class do destinatario pode ser modificada através da configuração destinatario_service_class" do
|
|
27
|
+
BrNfe.destinatario_service_class = OtherClassDestinatario
|
|
28
|
+
subject.destinatario.must_be_kind_of OtherClassDestinatario
|
|
29
|
+
subject.send(:destinatario_class).must_equal OtherClassDestinatario
|
|
30
|
+
|
|
31
|
+
# É necessário voltar a configuração original para não falhar outros testes
|
|
32
|
+
BrNfe.destinatario_service_class = BrNfe::Service::Destinatario
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe "#intermediario" do
|
|
37
|
+
it "deve ter incluso o module BrNfe::Association::HaveIntermediario" do
|
|
38
|
+
subject.class.included_modules.must_include BrNfe::Service::Association::HaveIntermediario
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe "#condicao_pagamento" do
|
|
43
|
+
it "deve ter incluso o module BrNfe::Association::HaveCondicaoPagamento" do
|
|
44
|
+
subject.class.included_modules.must_include BrNfe::Association::HaveCondicaoPagamento
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
describe "#substituida?" do
|
|
49
|
+
it "quando tem valor em nfe_substituidora" do
|
|
50
|
+
subject.nfe_substituidora = '666'
|
|
51
|
+
subject.substituida?.must_equal true
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "quando não tem valor na nfe_substituidora" do
|
|
55
|
+
subject.nfe_substituidora = ''
|
|
56
|
+
subject.substituida?.must_equal false
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -55,12 +55,12 @@ describe BrNfe::Service::Response::Paths::V1::TcNfse do
|
|
|
55
55
|
subject.response_invoice_codigo_municipio_path.must_equal( [:nfse, :inf_nfse, :servico, :codigo_municipio] )
|
|
56
56
|
end
|
|
57
57
|
|
|
58
|
-
it 'valor padrão para o método
|
|
59
|
-
subject.
|
|
58
|
+
it 'valor padrão para o método invoice_valor_total_servicos_path' do
|
|
59
|
+
subject.response_invoice_valor_total_servicos_path.must_equal( [:nfse, :inf_nfse, :servico, :valores, :valor_servicos] )
|
|
60
60
|
end
|
|
61
61
|
|
|
62
|
-
it 'valor padrão para o método
|
|
63
|
-
subject.
|
|
62
|
+
it 'valor padrão para o método invoice_deducoes_path' do
|
|
63
|
+
subject.response_invoice_deducoes_path.must_equal( [:nfse, :inf_nfse, :servico, :valores, :valor_deducoes] )
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
it 'valor padrão para o método invoice_valor_pis_path' do
|
|
@@ -83,8 +83,8 @@ describe BrNfe::Service::Response::Paths::V1::TcNfse do
|
|
|
83
83
|
subject.response_invoice_valor_csll_path.must_equal( [:nfse, :inf_nfse, :servico, :valores, :valor_csll] )
|
|
84
84
|
end
|
|
85
85
|
|
|
86
|
-
it 'valor padrão para o método
|
|
87
|
-
subject.
|
|
86
|
+
it 'valor padrão para o método invoice_iss_retido_path' do
|
|
87
|
+
subject.response_invoice_iss_retido_path.must_equal( [:nfse, :inf_nfse, :servico, :valores, :iss_retido] )
|
|
88
88
|
end
|
|
89
89
|
|
|
90
90
|
it 'valor padrão para o método invoice_outras_retencoes_path' do
|
|
@@ -95,12 +95,12 @@ describe BrNfe::Service::Response::Paths::V1::TcNfse do
|
|
|
95
95
|
subject.response_invoice_total_iss_path.must_equal( [:nfse, :inf_nfse, :servico, :valores, :valor_iss] )
|
|
96
96
|
end
|
|
97
97
|
|
|
98
|
-
it 'valor padrão para o método
|
|
99
|
-
subject.
|
|
98
|
+
it 'valor padrão para o método invoice_base_calculo_path' do
|
|
99
|
+
subject.response_invoice_base_calculo_path.must_equal( [:nfse, :inf_nfse, :servico, :valores, :base_calculo] )
|
|
100
100
|
end
|
|
101
101
|
|
|
102
|
-
it 'valor padrão para o método
|
|
103
|
-
subject.
|
|
102
|
+
it 'valor padrão para o método invoice_iss_aliquota_path' do
|
|
103
|
+
subject.response_invoice_iss_aliquota_path.must_equal( [:nfse, :inf_nfse, :servico, :valores, :aliquota] )
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
it 'valor padrão para o método invoice_valor_liquido_path' do
|
|
@@ -2,7 +2,7 @@ require 'test_helper'
|
|
|
2
2
|
|
|
3
3
|
describe BrNfe::Service::Rps do
|
|
4
4
|
subject { FactoryGirl.build(:br_nfe_rps) }
|
|
5
|
-
let(:destinatario) { FactoryGirl.build(:
|
|
5
|
+
let(:destinatario) { FactoryGirl.build(:service_destinatario) }
|
|
6
6
|
let(:intermediario) { FactoryGirl.build(:intermediario) }
|
|
7
7
|
let(:condicao_pagamento) { FactoryGirl.build(:condicao_pagamento) }
|
|
8
8
|
let(:item_1) { FactoryGirl.build(:service_item) }
|
|
@@ -26,11 +26,11 @@ describe BrNfe::Service::Rps do
|
|
|
26
26
|
it { must validate_presence_of(:item_lista_servico) }
|
|
27
27
|
it { must validate_presence_of(:description) }
|
|
28
28
|
it { must validate_presence_of(:codigo_municipio) }
|
|
29
|
-
it { must validate_numericality_of(:
|
|
30
|
-
it { must validate_numericality_of(:
|
|
29
|
+
it { must validate_numericality_of(:valor_total_servicos).is_greater_than(0) }
|
|
30
|
+
it { must validate_numericality_of(:base_calculo).is_greater_than(0) }
|
|
31
31
|
|
|
32
|
-
it { must validate_numericality_of(:
|
|
33
|
-
it { must validate_numericality_of(:
|
|
32
|
+
it { must validate_numericality_of(:valor_total_servicos) }
|
|
33
|
+
it { must validate_numericality_of(:deducoes) }
|
|
34
34
|
it { must validate_numericality_of(:valor_pis) }
|
|
35
35
|
it { must validate_numericality_of(:valor_cofins) }
|
|
36
36
|
it { must validate_numericality_of(:valor_inss) }
|
|
@@ -38,8 +38,8 @@ describe BrNfe::Service::Rps do
|
|
|
38
38
|
it { must validate_numericality_of(:valor_csll) }
|
|
39
39
|
it { must validate_numericality_of(:outras_retencoes) }
|
|
40
40
|
it { must validate_numericality_of(:total_iss) }
|
|
41
|
-
it { must validate_numericality_of(:
|
|
42
|
-
it { must validate_numericality_of(:
|
|
41
|
+
it { must validate_numericality_of(:iss_aliquota) }
|
|
42
|
+
it { must validate_numericality_of(:base_calculo) }
|
|
43
43
|
it { must validate_numericality_of(:desconto_incondicionado) }
|
|
44
44
|
it { must validate_numericality_of(:desconto_condicionado) }
|
|
45
45
|
|
|
@@ -53,19 +53,19 @@ describe BrNfe::Service::Rps do
|
|
|
53
53
|
subject.valid?
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
-
describe "option
|
|
56
|
+
describe "option iss_retido?" do
|
|
57
57
|
context "quando for true" do
|
|
58
|
-
before { subject.stubs(:
|
|
58
|
+
before { subject.stubs(:iss_retido?).returns(true) }
|
|
59
59
|
it { wont validate_presence_of(:total_iss) }
|
|
60
|
-
it { wont validate_presence_of(:
|
|
60
|
+
it { wont validate_presence_of(:iss_aliquota) }
|
|
61
61
|
end
|
|
62
62
|
context "quando for false" do
|
|
63
63
|
before do
|
|
64
64
|
subject.items = []
|
|
65
|
-
subject.stubs(:
|
|
65
|
+
subject.stubs(:iss_retido?).returns(false)
|
|
66
66
|
end
|
|
67
67
|
it { must validate_presence_of(:total_iss) }
|
|
68
|
-
it { must validate_presence_of(:
|
|
68
|
+
it { must validate_presence_of(:iss_aliquota) }
|
|
69
69
|
end
|
|
70
70
|
end
|
|
71
71
|
end
|
|
@@ -76,11 +76,11 @@ describe BrNfe::Service::Rps do
|
|
|
76
76
|
it { wont validate_presence_of(:item_lista_servico) }
|
|
77
77
|
it { wont validate_presence_of(:description) }
|
|
78
78
|
it { wont validate_presence_of(:codigo_municipio) }
|
|
79
|
-
it { wont validate_numericality_of(:
|
|
80
|
-
it { wont validate_numericality_of(:
|
|
79
|
+
it { wont validate_numericality_of(:valor_total_servicos).is_greater_than(0) }
|
|
80
|
+
it { wont validate_numericality_of(:base_calculo).is_greater_than(0) }
|
|
81
81
|
|
|
82
|
-
it { wont validate_numericality_of(:
|
|
83
|
-
it { wont validate_numericality_of(:
|
|
82
|
+
it { wont validate_numericality_of(:valor_total_servicos) }
|
|
83
|
+
it { wont validate_numericality_of(:deducoes) }
|
|
84
84
|
it { wont validate_numericality_of(:valor_pis) }
|
|
85
85
|
it { wont validate_numericality_of(:valor_cofins) }
|
|
86
86
|
it { wont validate_numericality_of(:valor_inss) }
|
|
@@ -88,8 +88,8 @@ describe BrNfe::Service::Rps do
|
|
|
88
88
|
it { wont validate_numericality_of(:valor_csll) }
|
|
89
89
|
it { wont validate_numericality_of(:outras_retencoes) }
|
|
90
90
|
it { wont validate_numericality_of(:total_iss) }
|
|
91
|
-
it { wont validate_numericality_of(:
|
|
92
|
-
it { wont validate_numericality_of(:
|
|
91
|
+
it { wont validate_numericality_of(:iss_aliquota) }
|
|
92
|
+
it { wont validate_numericality_of(:base_calculo) }
|
|
93
93
|
it { wont validate_numericality_of(:desconto_incondicionado) }
|
|
94
94
|
it { wont validate_numericality_of(:desconto_condicionado) }
|
|
95
95
|
|
|
@@ -103,21 +103,26 @@ describe BrNfe::Service::Rps do
|
|
|
103
103
|
subject.valid?
|
|
104
104
|
end
|
|
105
105
|
|
|
106
|
-
describe "option
|
|
106
|
+
describe "option iss_retido?" do
|
|
107
107
|
context "quando for true" do
|
|
108
|
-
before { subject.stubs(:
|
|
108
|
+
before { subject.stubs(:iss_retido?).returns(true) }
|
|
109
109
|
it { wont validate_presence_of(:total_iss) }
|
|
110
|
-
it { wont validate_presence_of(:
|
|
110
|
+
it { wont validate_presence_of(:iss_aliquota) }
|
|
111
111
|
end
|
|
112
112
|
context "quando for false" do
|
|
113
|
-
before { subject.stubs(:
|
|
113
|
+
before { subject.stubs(:iss_retido?).returns(false) }
|
|
114
114
|
it { wont validate_presence_of(:total_iss) }
|
|
115
|
-
it { wont validate_presence_of(:
|
|
115
|
+
it { wont validate_presence_of(:iss_aliquota) }
|
|
116
116
|
end
|
|
117
117
|
end
|
|
118
118
|
end
|
|
119
119
|
end
|
|
120
|
-
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
describe "#condicao_pagamento" do
|
|
123
|
+
it "deve ter incluso o module BrNfe::Association::HaveCondicaoPagamento" do
|
|
124
|
+
subject.class.included_modules.must_include BrNfe::Association::HaveCondicaoPagamento
|
|
125
|
+
end
|
|
121
126
|
end
|
|
122
127
|
|
|
123
128
|
describe "#replace_invoice?" do
|
|
@@ -142,58 +147,22 @@ describe BrNfe::Service::Rps do
|
|
|
142
147
|
end
|
|
143
148
|
|
|
144
149
|
describe "#destinatario" do
|
|
145
|
-
|
|
146
|
-
novo = BrNfe::Service::Rps.new
|
|
147
|
-
novo.destinatario.class.must_equal BrNfe::Destinatario
|
|
148
|
-
novo.destinatario = nil
|
|
149
|
-
novo.destinatario.class.must_equal BrNfe::Destinatario
|
|
150
|
-
novo.destinatario = 'outro valor qualquer'
|
|
151
|
-
novo.destinatario.class.must_equal BrNfe::Destinatario
|
|
152
|
-
end
|
|
153
|
-
|
|
154
|
-
it "a classe do destinatario deve segir a configuração de BrNfe.destinatario_class" do
|
|
155
|
-
BrNfe.destinatario_class = BrNfe::Emitente
|
|
156
|
-
|
|
157
|
-
novo = BrNfe::Service::Rps.new
|
|
158
|
-
novo.destinatario.class.must_equal BrNfe::Emitente
|
|
159
|
-
novo.destinatario = nil
|
|
160
|
-
novo.destinatario.class.must_equal BrNfe::Emitente
|
|
161
|
-
novo.destinatario = 'outro valor qualquer'
|
|
162
|
-
novo.destinatario.class.must_equal BrNfe::Emitente
|
|
163
|
-
|
|
164
|
-
BrNfe.destinatario_class = BrNfe::Destinatario
|
|
150
|
+
class OtherClassDestinatario < BrNfe::ActiveModelBase
|
|
165
151
|
end
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
subject.destinatario do |dest|
|
|
169
|
-
dest.cpf_cnpj = '12345678901234'
|
|
170
|
-
dest.telefone = '33666633'
|
|
171
|
-
dest.email = 'mail@teste.com'
|
|
172
|
-
end
|
|
173
|
-
subject.destinatario.cpf_cnpj.must_equal '12345678901234'
|
|
174
|
-
subject.destinatario.telefone.must_equal '33666633'
|
|
175
|
-
subject.destinatario.email.must_equal 'mail@teste.com'
|
|
152
|
+
it "deve ter incluso o module HaveDestinatario" do
|
|
153
|
+
subject.class.included_modules.must_include BrNfe::Association::HaveDestinatario
|
|
176
154
|
end
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
subject.
|
|
180
|
-
cpf_cnpj: '999879879',
|
|
181
|
-
telefone: '99999999',
|
|
182
|
-
email: 'mail@teste.com'
|
|
183
|
-
}
|
|
184
|
-
subject.destinatario.cpf_cnpj.must_equal '999879879'
|
|
185
|
-
subject.destinatario.telefone.must_equal '99999999'
|
|
186
|
-
subject.destinatario.email.must_equal 'mail@teste.com'
|
|
155
|
+
it "o método #destinatario_class deve ter por padrão a class BrNfe::Service::Destinatario" do
|
|
156
|
+
subject.destinatario.must_be_kind_of BrNfe::Service::Destinatario
|
|
157
|
+
subject.send(:destinatario_class).must_equal BrNfe::Service::Destinatario
|
|
187
158
|
end
|
|
159
|
+
it "a class do destinatario pode ser modificada através da configuração destinatario_service_class" do
|
|
160
|
+
BrNfe.destinatario_service_class = OtherClassDestinatario
|
|
161
|
+
subject.destinatario.must_be_kind_of OtherClassDestinatario
|
|
162
|
+
subject.send(:destinatario_class).must_equal OtherClassDestinatario
|
|
188
163
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
subject.destinatario.must_equal destinatario_old
|
|
192
|
-
subject.destinatario.wont_equal destinatario
|
|
193
|
-
|
|
194
|
-
subject.destinatario = destinatario
|
|
195
|
-
subject.destinatario.wont_equal destinatario_old
|
|
196
|
-
subject.destinatario.must_equal destinatario
|
|
164
|
+
# É necessário voltar a configuração original para não falhar outros testes
|
|
165
|
+
BrNfe.destinatario_service_class = BrNfe::Service::Destinatario
|
|
197
166
|
end
|
|
198
167
|
end
|
|
199
168
|
|
|
@@ -205,11 +174,11 @@ describe BrNfe::Service::Rps do
|
|
|
205
174
|
novo.intermediario.must_be_nil
|
|
206
175
|
end
|
|
207
176
|
|
|
208
|
-
it "a classe do intermediario deve segir a configuração de BrNfe.
|
|
209
|
-
BrNfe.
|
|
177
|
+
it "a classe do intermediario deve segir a configuração de BrNfe.intermediario_service_class" do
|
|
178
|
+
BrNfe.intermediario_service_class = BrNfe::Service::Emitente
|
|
210
179
|
|
|
211
|
-
novo = BrNfe::Service::Rps.new(intermediario: BrNfe::Emitente.new)
|
|
212
|
-
novo.intermediario.class.must_equal BrNfe::Emitente
|
|
180
|
+
novo = BrNfe::Service::Rps.new(intermediario: BrNfe::Service::Emitente.new)
|
|
181
|
+
novo.intermediario.class.must_equal BrNfe::Service::Emitente
|
|
213
182
|
|
|
214
183
|
novo.intermediario = nil
|
|
215
184
|
novo.intermediario.must_be_nil
|
|
@@ -217,7 +186,7 @@ describe BrNfe::Service::Rps do
|
|
|
217
186
|
novo.intermediario = 'outro valor qualquer'
|
|
218
187
|
novo.intermediario.must_be_nil
|
|
219
188
|
|
|
220
|
-
BrNfe.
|
|
189
|
+
BrNfe.intermediario_service_class = BrNfe::Service::Intermediario
|
|
221
190
|
end
|
|
222
191
|
|
|
223
192
|
it "atributos pode ser atribuidos em forma de bloco" do
|
|
@@ -274,10 +243,10 @@ describe BrNfe::Service::Rps do
|
|
|
274
243
|
end
|
|
275
244
|
|
|
276
245
|
it "a classe do condicao_pagamento deve segir a configuração de BrNfe.condicao_pagamento_class" do
|
|
277
|
-
BrNfe.condicao_pagamento_class = BrNfe::Emitente
|
|
246
|
+
BrNfe.condicao_pagamento_class = BrNfe::Service::Emitente
|
|
278
247
|
|
|
279
|
-
novo = BrNfe::Service::Rps.new(condicao_pagamento: BrNfe::Emitente.new)
|
|
280
|
-
novo.condicao_pagamento.class.must_equal BrNfe::Emitente
|
|
248
|
+
novo = BrNfe::Service::Rps.new(condicao_pagamento: BrNfe::Service::Emitente.new)
|
|
249
|
+
novo.condicao_pagamento.class.must_equal BrNfe::Service::Emitente
|
|
281
250
|
|
|
282
251
|
novo.condicao_pagamento = nil
|
|
283
252
|
novo.condicao_pagamento.must_be_nil
|
|
@@ -395,84 +364,84 @@ describe BrNfe::Service::Rps do
|
|
|
395
364
|
end
|
|
396
365
|
end
|
|
397
366
|
|
|
398
|
-
describe "#
|
|
399
|
-
it "se não setar valor em
|
|
400
|
-
subject.
|
|
401
|
-
item_1.
|
|
402
|
-
item_2.
|
|
367
|
+
describe "#valor_total_servicos" do
|
|
368
|
+
it "se não setar valor em valor_total_servicos deve somar o valor_total de todos os items" do
|
|
369
|
+
subject.valor_total_servicos = nil
|
|
370
|
+
item_1.valor_total = 55.70
|
|
371
|
+
item_2.valor_total = 40.35
|
|
403
372
|
subject.items = [item_1, item_2]
|
|
404
373
|
|
|
405
|
-
subject.
|
|
374
|
+
subject.valor_total_servicos.must_equal 96.05
|
|
406
375
|
end
|
|
407
376
|
it "se não houver itens e nem um valor setado deve retornar zero" do
|
|
408
|
-
subject.
|
|
377
|
+
subject.valor_total_servicos = nil
|
|
409
378
|
subject.items = []
|
|
410
379
|
|
|
411
|
-
subject.
|
|
380
|
+
subject.valor_total_servicos.must_equal 0.0
|
|
412
381
|
end
|
|
413
382
|
it "se setar um valor deve retornar esse valor e não pode somar dos itens" do
|
|
414
|
-
subject.
|
|
415
|
-
item_1.
|
|
416
|
-
item_2.
|
|
383
|
+
subject.valor_total_servicos = 47.0
|
|
384
|
+
item_1.valor_total = 55.70
|
|
385
|
+
item_2.valor_total = 40.35
|
|
417
386
|
subject.items = [item_1, item_2]
|
|
418
387
|
|
|
419
|
-
subject.
|
|
388
|
+
subject.valor_total_servicos.must_equal 47.0
|
|
420
389
|
end
|
|
421
390
|
end
|
|
422
391
|
|
|
423
|
-
describe "#
|
|
424
|
-
it "se não setar valor em
|
|
392
|
+
describe "#base_calculo" do
|
|
393
|
+
it "se não setar valor em base_calculo deve subtratir o valor_total_servicos com deducoes" do
|
|
425
394
|
subject.assign_attributes({
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
395
|
+
base_calculo: nil,
|
|
396
|
+
valor_total_servicos: 100.0,
|
|
397
|
+
deducoes: 4.500000555
|
|
429
398
|
})
|
|
430
399
|
|
|
431
|
-
subject.
|
|
400
|
+
subject.base_calculo.must_equal 95.5
|
|
432
401
|
end
|
|
433
|
-
it "deve retornar zero se não houver valor em
|
|
402
|
+
it "deve retornar zero se não houver valor em base_calculo e nem em valor_total_servicos ou deducoes" do
|
|
434
403
|
subject.assign_attributes({
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
404
|
+
base_calculo: nil,
|
|
405
|
+
valor_total_servicos: nil,
|
|
406
|
+
deducoes: nil,
|
|
438
407
|
items: []
|
|
439
408
|
})
|
|
440
409
|
|
|
441
|
-
subject.
|
|
410
|
+
subject.base_calculo.must_equal 0.0
|
|
442
411
|
end
|
|
443
|
-
it "se setar um valor deve retornar esse valor e não pode celcular o
|
|
412
|
+
it "se setar um valor deve retornar esse valor e não pode celcular o valor_total_servicos subtraindo as deducoes" do
|
|
444
413
|
subject.assign_attributes({
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
414
|
+
base_calculo: 200,
|
|
415
|
+
valor_total_servicos: 100,
|
|
416
|
+
deducoes: 50
|
|
448
417
|
})
|
|
449
418
|
|
|
450
|
-
subject.
|
|
419
|
+
subject.base_calculo.must_equal 200
|
|
451
420
|
end
|
|
452
421
|
end
|
|
453
422
|
|
|
454
|
-
describe "#
|
|
455
|
-
it "deve pegar o valor de
|
|
456
|
-
subject.
|
|
457
|
-
item_1.
|
|
458
|
-
item_2.
|
|
423
|
+
describe "#iss_aliquota" do
|
|
424
|
+
it "deve pegar o valor de iss_aliquota do primeiro item se não houver valor setado em iss_aliquota do RPS" do
|
|
425
|
+
subject.iss_aliquota = nil
|
|
426
|
+
item_1.iss_aliquota = 0.3
|
|
427
|
+
item_2.iss_aliquota = 0.4
|
|
459
428
|
subject.items = [item_2, item_1]
|
|
460
429
|
|
|
461
|
-
subject.
|
|
430
|
+
subject.iss_aliquota.must_equal 0.4
|
|
462
431
|
end
|
|
463
432
|
it "Deve retornar nil se não houver itens e nem um valor setado" do
|
|
464
|
-
subject.
|
|
433
|
+
subject.iss_aliquota = nil
|
|
465
434
|
subject.items = []
|
|
466
435
|
|
|
467
|
-
subject.
|
|
436
|
+
subject.iss_aliquota.must_be_nil
|
|
468
437
|
end
|
|
469
438
|
it "se setar um valor deve retornar esse valor e não pode pegar dos itens" do
|
|
470
|
-
subject.
|
|
471
|
-
item_1.
|
|
472
|
-
item_2.
|
|
439
|
+
subject.iss_aliquota = 0.4
|
|
440
|
+
item_1.valor_total = 0.1
|
|
441
|
+
item_2.valor_total = 0.2
|
|
473
442
|
subject.items = [item_1, item_2]
|
|
474
443
|
|
|
475
|
-
subject.
|
|
444
|
+
subject.iss_aliquota.must_equal 0.4
|
|
476
445
|
end
|
|
477
446
|
end
|
|
478
447
|
|
|
@@ -493,43 +462,43 @@ describe BrNfe::Service::Rps do
|
|
|
493
462
|
end
|
|
494
463
|
it "se setar um valor deve retornar esse valor e não pode pegar dos itens" do
|
|
495
464
|
subject.cnae_code = '2'
|
|
496
|
-
item_1.
|
|
497
|
-
item_2.
|
|
465
|
+
item_1.valor_total = '3'
|
|
466
|
+
item_2.valor_total = '4'
|
|
498
467
|
subject.items = [item_1, item_2]
|
|
499
468
|
|
|
500
469
|
subject.cnae_code.must_equal '2'
|
|
501
470
|
end
|
|
502
471
|
end
|
|
503
472
|
|
|
504
|
-
describe "#
|
|
473
|
+
describe "#valor_liquido" do
|
|
505
474
|
it "Se setar um valor deve retornar o valor setado" do
|
|
506
|
-
subject.assign_attributes(
|
|
507
|
-
subject.
|
|
475
|
+
subject.assign_attributes(valor_total_servicos: 10.00, valor_liquido: 9_999.55)
|
|
476
|
+
subject.valor_liquido.must_equal 9_999.55
|
|
508
477
|
end
|
|
509
|
-
it "se não tiver valor setado manualmente em
|
|
510
|
-
subject.assign_attributes({
|
|
478
|
+
it "se não tiver valor setado manualmente em valor_liquido deve realizar o calcula automaticamente" do
|
|
479
|
+
subject.assign_attributes({valor_total_servicos: 100.00, valor_pis: 1.5, valor_cofins: 1.0,
|
|
511
480
|
valor_inss: 0.5, valor_ir: 0.0, valor_csll: 2.0, outras_retencoes: 3.0,
|
|
512
|
-
|
|
513
|
-
|
|
481
|
+
total_iss_retido: 4.0, desconto_incondicionado: 5.0, desconto_condicionado: 6.0,
|
|
482
|
+
valor_liquido: nil
|
|
514
483
|
})
|
|
515
|
-
subject.
|
|
484
|
+
subject.valor_liquido.must_equal 77.00
|
|
516
485
|
end
|
|
517
486
|
it "se todos os valores para o calculo estiverem nil não deve dar erro e retorna zero" do
|
|
518
487
|
subject.items = []
|
|
519
|
-
subject.assign_attributes({
|
|
488
|
+
subject.assign_attributes({valor_total_servicos: nil, valor_pis: nil, valor_cofins: nil,
|
|
520
489
|
valor_inss: nil, valor_ir: nil, valor_csll: nil, outras_retencoes: nil,
|
|
521
|
-
|
|
522
|
-
|
|
490
|
+
total_iss_retido: nil, desconto_incondicionado: nil, desconto_condicionado: nil,
|
|
491
|
+
valor_liquido: nil
|
|
523
492
|
})
|
|
524
|
-
subject.
|
|
493
|
+
subject.valor_liquido.must_equal 0.0
|
|
525
494
|
end
|
|
526
495
|
it "se alguns dos valores para o calculo estiverem nil não deve dar erro e considera esse valor como zero" do
|
|
527
|
-
subject.assign_attributes({
|
|
496
|
+
subject.assign_attributes({valor_total_servicos: 100.00, valor_pis: nil, valor_cofins: nil,
|
|
528
497
|
valor_inss: nil, valor_ir: 0.0, valor_csll: 2.0, outras_retencoes: 3.0,
|
|
529
|
-
|
|
530
|
-
|
|
498
|
+
total_iss_retido: 4.0, desconto_incondicionado: 5.0, desconto_condicionado: 6.0,
|
|
499
|
+
valor_liquido: nil
|
|
531
500
|
})
|
|
532
|
-
subject.
|
|
501
|
+
subject.valor_liquido.must_equal 80.0
|
|
533
502
|
end
|
|
534
503
|
end
|
|
535
504
|
|
|
@@ -74,7 +74,7 @@ describe BrNfe::Service::SC::Florianopolis::EmissionRPS do
|
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
context "atributos de DadosServico" do
|
|
77
|
-
let(:item_2) { FactoryGirl.build(:service_item, cnae_code: '666', description: 'DESC',
|
|
77
|
+
let(:item_2) { FactoryGirl.build(:service_item, cnae_code: '666', description: 'DESC', valor_total: 547.8888) }
|
|
78
78
|
it "o deve ter um atributo ItemServico para cada item de serviço com suas respectivas informações" do
|
|
79
79
|
rps.items << item_2
|
|
80
80
|
items = xml.at('InfRequisicao/DadosServico').search('ItemServico')
|
|
@@ -98,25 +98,25 @@ describe BrNfe::Service::SC::Florianopolis::EmissionRPS do
|
|
|
98
98
|
items[1].at('ValorTotal').text.must_equal '547.89'
|
|
99
99
|
end
|
|
100
100
|
|
|
101
|
-
it "atributo BaseCalculo deve ter o valor monetário do
|
|
102
|
-
rps.
|
|
101
|
+
it "atributo BaseCalculo deve ter o valor monetário do base_calculo do RPS" do
|
|
102
|
+
rps.base_calculo = '31.1111'
|
|
103
103
|
items = xml.at('InfRequisicao/DadosServico/BaseCalculo').text.must_equal '31.11'
|
|
104
104
|
end
|
|
105
105
|
it "atributo ValorISSQN deve ter o valor monetário do total_iss do RPS" do
|
|
106
106
|
rps.total_iss = '7.666'
|
|
107
107
|
items = xml.at('InfRequisicao/DadosServico/ValorISSQN').text.must_equal '7.67'
|
|
108
108
|
end
|
|
109
|
-
it "atributo ValorTotalServicos deve ter o valor monetário do
|
|
110
|
-
rps.
|
|
109
|
+
it "atributo ValorTotalServicos deve ter o valor monetário do valor_total_servicos do RPS" do
|
|
110
|
+
rps.valor_total_servicos = 28_731.664
|
|
111
111
|
items = xml.at('InfRequisicao/DadosServico/ValorTotalServicos').text.must_equal '28731.66'
|
|
112
112
|
end
|
|
113
113
|
context "BaseCalculoSubstituicao" do
|
|
114
|
-
it "se houver valor no atributo
|
|
115
|
-
rps.
|
|
114
|
+
it "se houver valor no atributo total_base_calculo_st do RPS deve exibir o atribudo do XML" do
|
|
115
|
+
rps.total_base_calculo_st = 778
|
|
116
116
|
items = xml.at('InfRequisicao/DadosServico/BaseCalculoSubstituicao').text.must_equal '778.0'
|
|
117
117
|
end
|
|
118
|
-
it "se não houver valor no atributo
|
|
119
|
-
rps.
|
|
118
|
+
it "se não houver valor no atributo total_base_calculo_st do RPS não irá exibir o atribudo do XML" do
|
|
119
|
+
rps.total_base_calculo_st = nil
|
|
120
120
|
items = xml.at('InfRequisicao/DadosServico/BaseCalculoSubstituicao').must_be_nil
|
|
121
121
|
end
|
|
122
122
|
end
|