br_nfe 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|