nfe_reader 1.0.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 +7 -0
 - data/.gitignore +23 -0
 - data/Gemfile +4 -0
 - data/LICENSE.txt +22 -0
 - data/README.md +38 -0
 - data/Rakefile +13 -0
 - data/lib/nfe_reader/authorization.rb +12 -0
 - data/lib/nfe_reader/carrier.rb +16 -0
 - data/lib/nfe_reader/collection/duplicate.rb +12 -0
 - data/lib/nfe_reader/collection.rb +34 -0
 - data/lib/nfe_reader/customer.rb +62 -0
 - data/lib/nfe_reader/delivery.rb +20 -0
 - data/lib/nfe_reader/document.rb +73 -0
 - data/lib/nfe_reader/export.rb +12 -0
 - data/lib/nfe_reader/fiscal.rb +33 -0
 - data/lib/nfe_reader/header.rb +129 -0
 - data/lib/nfe_reader/information.rb +38 -0
 - data/lib/nfe_reader/product/armament.rb +22 -0
 - data/lib/nfe_reader/product/cane.rb +42 -0
 - data/lib/nfe_reader/product/exportation.rb +20 -0
 - data/lib/nfe_reader/product/fuel.rb +18 -0
 - data/lib/nfe_reader/product/importation.rb +49 -0
 - data/lib/nfe_reader/product/medicament.rb +19 -0
 - data/lib/nfe_reader/product/vehicle.rb +117 -0
 - data/lib/nfe_reader/product.rb +90 -0
 - data/lib/nfe_reader/provider.rb +43 -0
 - data/lib/nfe_reader/purchase.rb +14 -0
 - data/lib/nfe_reader/removal.rb +20 -0
 - data/lib/nfe_reader/taxation/cofins.rb +43 -0
 - data/lib/nfe_reader/taxation/cofins_st.rb +19 -0
 - data/lib/nfe_reader/taxation/icms.rb +86 -0
 - data/lib/nfe_reader/taxation/importation_tax.rb +17 -0
 - data/lib/nfe_reader/taxation/ipi.rb +41 -0
 - data/lib/nfe_reader/taxation/issqn.rb +22 -0
 - data/lib/nfe_reader/taxation/pis.rb +42 -0
 - data/lib/nfe_reader/taxation/pis_st.rb +19 -0
 - data/lib/nfe_reader/total.rb +76 -0
 - data/lib/nfe_reader/transport.rb +97 -0
 - data/lib/nfe_reader/version.rb +5 -0
 - data/lib/nfe_reader.rb +129 -0
 - data/lib/nokogiri_hash.rb +60 -0
 - data/nfe-reader.gemspec +24 -0
 - data/test/files/sample-nfe.xml +234 -0
 - data/test/files/sample2-nfe.xml +192 -0
 - data/test/nfe_reader/authorization_test.rb +22 -0
 - data/test/nfe_reader/cane_test.rb +71 -0
 - data/test/nfe_reader/carrier_test.rb +46 -0
 - data/test/nfe_reader/collection/duplicate_test.rb +27 -0
 - data/test/nfe_reader/collection_test.rb +78 -0
 - data/test/nfe_reader/customer_test.rb +133 -0
 - data/test/nfe_reader/delivery_test.rb +57 -0
 - data/test/nfe_reader/document_test.rb +113 -0
 - data/test/nfe_reader/export_test.rb +22 -0
 - data/test/nfe_reader/fiscal_test.rb +67 -0
 - data/test/nfe_reader/header_test.rb +135 -0
 - data/test/nfe_reader/information_test.rb +37 -0
 - data/test/nfe_reader/product/armament_test.rb +32 -0
 - data/test/nfe_reader/product/exportation_test.rb +34 -0
 - data/test/nfe_reader/product/fuel_test.rb +44 -0
 - data/test/nfe_reader/product/importation_test.rb +64 -0
 - data/test/nfe_reader/product/medicament_test.rb +37 -0
 - data/test/nfe_reader/product/vehicle_test.rb +133 -0
 - data/test/nfe_reader/product_test.rb +125 -0
 - data/test/nfe_reader/provider_test.rb +155 -0
 - data/test/nfe_reader/purchase_test.rb +27 -0
 - data/test/nfe_reader/removal_test.rb +57 -0
 - data/test/nfe_reader/taxation/cofins_st_test.rb +37 -0
 - data/test/nfe_reader/taxation/cofins_test.rb +42 -0
 - data/test/nfe_reader/taxation/icms_test.rb +122 -0
 - data/test/nfe_reader/taxation/importation_tax_test.rb +32 -0
 - data/test/nfe_reader/taxation/ipi_test.rb +78 -0
 - data/test/nfe_reader/taxation/issqn_test.rb +42 -0
 - data/test/nfe_reader/taxation/pis_st_test.rb +37 -0
 - data/test/nfe_reader/taxation/pis_test.rb +42 -0
 - data/test/nfe_reader/total_test.rb +148 -0
 - data/test/nfe_reader/transport_test.rb +172 -0
 - data/test/nfe_reader_test.rb +125 -0
 - data/test/nokogiri_test.rb +27 -0
 - data/test/test_helper.rb +13 -0
 - metadata +201 -0
 
| 
         @@ -0,0 +1,192 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <?xml version="1.0" encoding="UTF-8"?>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
         
     | 
| 
      
 3 
     | 
    
         
            +
              <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
         
     | 
| 
      
 4 
     | 
    
         
            +
                <infNFe versao="2.00" Id="NFe12300384950081649000148500001000001310002342">
         
     | 
| 
      
 5 
     | 
    
         
            +
                  <ide>
         
     | 
| 
      
 6 
     | 
    
         
            +
                    <cUF>42</cUF>
         
     | 
| 
      
 7 
     | 
    
         
            +
                    <cNF>00000000</cNF>
         
     | 
| 
      
 8 
     | 
    
         
            +
                    <natOp>Venda de Merc. Recebida ou Adq. De Terc.</natOp>
         
     | 
| 
      
 9 
     | 
    
         
            +
                    <indPag>1</indPag>
         
     | 
| 
      
 10 
     | 
    
         
            +
                    <mod>55</mod>
         
     | 
| 
      
 11 
     | 
    
         
            +
                    <serie>1</serie>
         
     | 
| 
      
 12 
     | 
    
         
            +
                    <nNF>1000</nNF>
         
     | 
| 
      
 13 
     | 
    
         
            +
                    <dEmi>2000-01-01</dEmi>
         
     | 
| 
      
 14 
     | 
    
         
            +
                    <dSaiEnt>2000-01-01</dSaiEnt>
         
     | 
| 
      
 15 
     | 
    
         
            +
                    <hSaiEnt>12:00:00</hSaiEnt>
         
     | 
| 
      
 16 
     | 
    
         
            +
                    <tpNF>1</tpNF>
         
     | 
| 
      
 17 
     | 
    
         
            +
                    <cMunFG>4218202</cMunFG>
         
     | 
| 
      
 18 
     | 
    
         
            +
                    <tpImp>1</tpImp>
         
     | 
| 
      
 19 
     | 
    
         
            +
                    <tpEmis>1</tpEmis>
         
     | 
| 
      
 20 
     | 
    
         
            +
                    <cDV>2</cDV>
         
     | 
| 
      
 21 
     | 
    
         
            +
                    <tpAmb>1</tpAmb>
         
     | 
| 
      
 22 
     | 
    
         
            +
                    <finNFe>1</finNFe>
         
     | 
| 
      
 23 
     | 
    
         
            +
                    <procEmi>0</procEmi>
         
     | 
| 
      
 24 
     | 
    
         
            +
                    <verProc>Software 1.0</verProc>
         
     | 
| 
      
 25 
     | 
    
         
            +
                  </ide>
         
     | 
| 
      
 26 
     | 
    
         
            +
                  <emit>
         
     | 
| 
      
 27 
     | 
    
         
            +
                    <CNPJ>10302227000145</CNPJ>
         
     | 
| 
      
 28 
     | 
    
         
            +
                    <xNome>FORNECEDOR</xNome>
         
     | 
| 
      
 29 
     | 
    
         
            +
                    <enderEmit>
         
     | 
| 
      
 30 
     | 
    
         
            +
                      <xLgr>RUA, 51</xLgr>
         
     | 
| 
      
 31 
     | 
    
         
            +
                      <nro>0</nro>
         
     | 
| 
      
 32 
     | 
    
         
            +
                      <xBairro>BAIRRO</xBairro>
         
     | 
| 
      
 33 
     | 
    
         
            +
                      <cMun>4218202</cMun>
         
     | 
| 
      
 34 
     | 
    
         
            +
                      <xMun>TIMBÓ</xMun>
         
     | 
| 
      
 35 
     | 
    
         
            +
                      <UF>SC</UF>
         
     | 
| 
      
 36 
     | 
    
         
            +
                      <CEP>89120000</CEP>
         
     | 
| 
      
 37 
     | 
    
         
            +
                      <cPais>1058</cPais>
         
     | 
| 
      
 38 
     | 
    
         
            +
                      <fone>4755555555</fone>
         
     | 
| 
      
 39 
     | 
    
         
            +
                    </enderEmit>
         
     | 
| 
      
 40 
     | 
    
         
            +
                    <IE>111111111</IE>
         
     | 
| 
      
 41 
     | 
    
         
            +
                    <CRT>1</CRT>
         
     | 
| 
      
 42 
     | 
    
         
            +
                  </emit>
         
     | 
| 
      
 43 
     | 
    
         
            +
                  <dest>
         
     | 
| 
      
 44 
     | 
    
         
            +
                    <CNPJ>35718645000149</CNPJ>
         
     | 
| 
      
 45 
     | 
    
         
            +
                    <xNome>CLIENTE</xNome>
         
     | 
| 
      
 46 
     | 
    
         
            +
                    <enderDest>
         
     | 
| 
      
 47 
     | 
    
         
            +
                      <xLgr>RUA</xLgr>
         
     | 
| 
      
 48 
     | 
    
         
            +
                      <nro>0</nro>
         
     | 
| 
      
 49 
     | 
    
         
            +
                      <xBairro>BAIRRO</xBairro>
         
     | 
| 
      
 50 
     | 
    
         
            +
                      <cMun>4214805</cMun>
         
     | 
| 
      
 51 
     | 
    
         
            +
                      <xMun>RIO DO SUL</xMun>
         
     | 
| 
      
 52 
     | 
    
         
            +
                      <UF>SC</UF>
         
     | 
| 
      
 53 
     | 
    
         
            +
                      <CEP>89160000</CEP>
         
     | 
| 
      
 54 
     | 
    
         
            +
                      <cPais>1058</cPais>
         
     | 
| 
      
 55 
     | 
    
         
            +
                      <xPais>BRASIL</xPais>
         
     | 
| 
      
 56 
     | 
    
         
            +
                      <fone>4700000000</fone>
         
     | 
| 
      
 57 
     | 
    
         
            +
                    </enderDest>
         
     | 
| 
      
 58 
     | 
    
         
            +
                    <IE>252322746</IE>
         
     | 
| 
      
 59 
     | 
    
         
            +
                    <email>email@cliente.com.br</email>
         
     | 
| 
      
 60 
     | 
    
         
            +
                  </dest>
         
     | 
| 
      
 61 
     | 
    
         
            +
                  <det nItem="1">
         
     | 
| 
      
 62 
     | 
    
         
            +
                    <prod>
         
     | 
| 
      
 63 
     | 
    
         
            +
                      <cProd>000001</cProd>
         
     | 
| 
      
 64 
     | 
    
         
            +
                      <cEAN />
         
     | 
| 
      
 65 
     | 
    
         
            +
                      <xProd>Produto 1</xProd>
         
     | 
| 
      
 66 
     | 
    
         
            +
                      <NCM>00000000</NCM>
         
     | 
| 
      
 67 
     | 
    
         
            +
                      <CFOP>5102</CFOP>
         
     | 
| 
      
 68 
     | 
    
         
            +
                      <uCom>Pr</uCom>
         
     | 
| 
      
 69 
     | 
    
         
            +
                      <qCom>2.0000</qCom>
         
     | 
| 
      
 70 
     | 
    
         
            +
                      <vUnCom>34.7000000000</vUnCom>
         
     | 
| 
      
 71 
     | 
    
         
            +
                      <vProd>138.80</vProd>
         
     | 
| 
      
 72 
     | 
    
         
            +
                      <cEANTrib />
         
     | 
| 
      
 73 
     | 
    
         
            +
                      <uTrib>Pr</uTrib>
         
     | 
| 
      
 74 
     | 
    
         
            +
                      <qTrib>4.0000</qTrib>
         
     | 
| 
      
 75 
     | 
    
         
            +
                      <vUnTrib>34.7000000000</vUnTrib>
         
     | 
| 
      
 76 
     | 
    
         
            +
                      <indTot>1</indTot>
         
     | 
| 
      
 77 
     | 
    
         
            +
                    </prod>
         
     | 
| 
      
 78 
     | 
    
         
            +
                    <imposto>
         
     | 
| 
      
 79 
     | 
    
         
            +
                      <ICMS>
         
     | 
| 
      
 80 
     | 
    
         
            +
                        <ICMSSN102>
         
     | 
| 
      
 81 
     | 
    
         
            +
                          <orig>0</orig>
         
     | 
| 
      
 82 
     | 
    
         
            +
                          <CSOSN>102</CSOSN>
         
     | 
| 
      
 83 
     | 
    
         
            +
                        </ICMSSN102>
         
     | 
| 
      
 84 
     | 
    
         
            +
                      </ICMS>
         
     | 
| 
      
 85 
     | 
    
         
            +
                      <PIS>
         
     | 
| 
      
 86 
     | 
    
         
            +
                        <PISOutr>
         
     | 
| 
      
 87 
     | 
    
         
            +
                          <CST>99</CST>
         
     | 
| 
      
 88 
     | 
    
         
            +
                          <vBC>0.00</vBC>
         
     | 
| 
      
 89 
     | 
    
         
            +
                          <pPIS>0.00</pPIS>
         
     | 
| 
      
 90 
     | 
    
         
            +
                          <vPIS>0.00</vPIS>
         
     | 
| 
      
 91 
     | 
    
         
            +
                        </PISOutr>
         
     | 
| 
      
 92 
     | 
    
         
            +
                      </PIS>
         
     | 
| 
      
 93 
     | 
    
         
            +
                      <COFINS>
         
     | 
| 
      
 94 
     | 
    
         
            +
                        <COFINSOutr>
         
     | 
| 
      
 95 
     | 
    
         
            +
                          <CST>99</CST>
         
     | 
| 
      
 96 
     | 
    
         
            +
                          <vBC>0.00</vBC>
         
     | 
| 
      
 97 
     | 
    
         
            +
                          <pCOFINS>0.00</pCOFINS>
         
     | 
| 
      
 98 
     | 
    
         
            +
                          <vCOFINS>0.00</vCOFINS>
         
     | 
| 
      
 99 
     | 
    
         
            +
                        </COFINSOutr>
         
     | 
| 
      
 100 
     | 
    
         
            +
                      </COFINS>
         
     | 
| 
      
 101 
     | 
    
         
            +
                    </imposto>
         
     | 
| 
      
 102 
     | 
    
         
            +
                  </det>
         
     | 
| 
      
 103 
     | 
    
         
            +
                  <total>
         
     | 
| 
      
 104 
     | 
    
         
            +
                    <ICMSTot>
         
     | 
| 
      
 105 
     | 
    
         
            +
                      <vBC>0.00</vBC>
         
     | 
| 
      
 106 
     | 
    
         
            +
                      <vICMS>0.00</vICMS>
         
     | 
| 
      
 107 
     | 
    
         
            +
                      <vBCST>0.00</vBCST>
         
     | 
| 
      
 108 
     | 
    
         
            +
                      <vST>0.00</vST>
         
     | 
| 
      
 109 
     | 
    
         
            +
                      <vProd>138.80</vProd>
         
     | 
| 
      
 110 
     | 
    
         
            +
                      <vFrete>0.00</vFrete>
         
     | 
| 
      
 111 
     | 
    
         
            +
                      <vSeg>0.00</vSeg>
         
     | 
| 
      
 112 
     | 
    
         
            +
                      <vDesc>0.00</vDesc>
         
     | 
| 
      
 113 
     | 
    
         
            +
                      <vII>0.00</vII>
         
     | 
| 
      
 114 
     | 
    
         
            +
                      <vIPI>0.00</vIPI>
         
     | 
| 
      
 115 
     | 
    
         
            +
                      <vPIS>0.00</vPIS>
         
     | 
| 
      
 116 
     | 
    
         
            +
                      <vCOFINS>0.00</vCOFINS>
         
     | 
| 
      
 117 
     | 
    
         
            +
                      <vOutro>0.00</vOutro>
         
     | 
| 
      
 118 
     | 
    
         
            +
                      <vNF>138.80</vNF>
         
     | 
| 
      
 119 
     | 
    
         
            +
                    </ICMSTot>
         
     | 
| 
      
 120 
     | 
    
         
            +
                    <retTrib />
         
     | 
| 
      
 121 
     | 
    
         
            +
                  </total>
         
     | 
| 
      
 122 
     | 
    
         
            +
                  <transp>
         
     | 
| 
      
 123 
     | 
    
         
            +
                    <modFrete>0</modFrete>
         
     | 
| 
      
 124 
     | 
    
         
            +
                    <transporta>
         
     | 
| 
      
 125 
     | 
    
         
            +
                      <CNPJ>74793624000140</CNPJ>
         
     | 
| 
      
 126 
     | 
    
         
            +
                      <xNome>TRANSPORTADORA</xNome>
         
     | 
| 
      
 127 
     | 
    
         
            +
                      <IE>111111111</IE>
         
     | 
| 
      
 128 
     | 
    
         
            +
                      <xEnder>RUA</xEnder>
         
     | 
| 
      
 129 
     | 
    
         
            +
                      <xMun>TIMBÓ</xMun>
         
     | 
| 
      
 130 
     | 
    
         
            +
                      <UF>SC</UF>
         
     | 
| 
      
 131 
     | 
    
         
            +
                    </transporta>
         
     | 
| 
      
 132 
     | 
    
         
            +
                    <veicTransp>
         
     | 
| 
      
 133 
     | 
    
         
            +
                      <placa>AAA0000</placa>
         
     | 
| 
      
 134 
     | 
    
         
            +
                      <UF>SC</UF>
         
     | 
| 
      
 135 
     | 
    
         
            +
                    </veicTransp>
         
     | 
| 
      
 136 
     | 
    
         
            +
                  </transp>
         
     | 
| 
      
 137 
     | 
    
         
            +
                  <cobr>
         
     | 
| 
      
 138 
     | 
    
         
            +
                    <fat>
         
     | 
| 
      
 139 
     | 
    
         
            +
                      <nFat>0001</nFat>
         
     | 
| 
      
 140 
     | 
    
         
            +
                      <vOrig>138.80</vOrig>
         
     | 
| 
      
 141 
     | 
    
         
            +
                      <vLiq>138.80.17</vLiq>
         
     | 
| 
      
 142 
     | 
    
         
            +
                    </fat>
         
     | 
| 
      
 143 
     | 
    
         
            +
                    <dup>
         
     | 
| 
      
 144 
     | 
    
         
            +
                      <nDup>001</nDup>
         
     | 
| 
      
 145 
     | 
    
         
            +
                      <dVenc>2000-02-01</dVenc>
         
     | 
| 
      
 146 
     | 
    
         
            +
                      <vDup>138.80</vDup>
         
     | 
| 
      
 147 
     | 
    
         
            +
                    </dup>
         
     | 
| 
      
 148 
     | 
    
         
            +
                  </cobr>
         
     | 
| 
      
 149 
     | 
    
         
            +
                  <infAdic>
         
     | 
| 
      
 150 
     | 
    
         
            +
                    <infAdFisco>
         
     | 
| 
      
 151 
     | 
    
         
            +
                      INFORMACAO ADICIONAL
         
     | 
| 
      
 152 
     | 
    
         
            +
                    </infAdFisco>
         
     | 
| 
      
 153 
     | 
    
         
            +
                  </infAdic>
         
     | 
| 
      
 154 
     | 
    
         
            +
                </infNFe>
         
     | 
| 
      
 155 
     | 
    
         
            +
                <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
         
     | 
| 
      
 156 
     | 
    
         
            +
                  <SignedInfo>
         
     | 
| 
      
 157 
     | 
    
         
            +
                    <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
         
     | 
| 
      
 158 
     | 
    
         
            +
                    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
         
     | 
| 
      
 159 
     | 
    
         
            +
                    <Reference URI="#NFe12300384950081649000148500001000001310002342">
         
     | 
| 
      
 160 
     | 
    
         
            +
                      <Transforms>
         
     | 
| 
      
 161 
     | 
    
         
            +
                        <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
         
     | 
| 
      
 162 
     | 
    
         
            +
                        <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
         
     | 
| 
      
 163 
     | 
    
         
            +
                      </Transforms>
         
     | 
| 
      
 164 
     | 
    
         
            +
                      <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
         
     | 
| 
      
 165 
     | 
    
         
            +
                      <DigestValue>ait7e07Xf0nkqcQTCIcOIVVZCrw=</DigestValue>
         
     | 
| 
      
 166 
     | 
    
         
            +
                    </Reference>
         
     | 
| 
      
 167 
     | 
    
         
            +
                  </SignedInfo>
         
     | 
| 
      
 168 
     | 
    
         
            +
                  <SignatureValue>
         
     | 
| 
      
 169 
     | 
    
         
            +
                    rDoxl0n4MhfLwAJq4pmfnb4Il+USPndfz0v+6vxyQhZEORlXoBgst7GneJ550M9gBDHuKlitn8TE28wE7bPS3ttAvcEtqHfN6iIiBYVXR3RqoRVFOEVPhxZwYAs4M3rlzYiCMBzQ8iJPAv2+2OORlJ5foYCDmIHOCvOFc/aFOms2fHoR8O/uUXfHB0ElN55jorqLZom2MSgnMwd0iblKVqndnEMnCM2zvpm4lL9HGFm+lkzWvjy96zO/HKkZ5FBWWdDsUThevpUVOHRHQ48MqsExvUjiFIMZeZDRS7Y/RS/cVGNknuoZ8x3NX/RtMkRsTOuQ4OnkmcU2nvturCXPdg==
         
     | 
| 
      
 170 
     | 
    
         
            +
                  </SignatureValue>
         
     | 
| 
      
 171 
     | 
    
         
            +
                  <KeyInfo>
         
     | 
| 
      
 172 
     | 
    
         
            +
                    <X509Data>
         
     | 
| 
      
 173 
     | 
    
         
            +
                      <X509Certificate>
         
     | 
| 
      
 174 
     | 
    
         
            +
                        MIIIPjCCBiagAwIBAgIQdamExIOY/iVppDltpM5cDDANBgkqhkiG9w0BAQsFADB4MQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDE2MDQGA1UECxMtU2VjcmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwgZG8gQnJhc2lsIC0gUkZCMRwwGgYDVQQDExNBQyBDZXJ0aXNpZ24gUkZCIEc0MB4XDTEzMDcwNTAwMDAwMFoXDTE0MDcwNDIzNTk1OVowgecxCzAJBgNVBAYTAkJSMRMwEQYDVQQKFApJQ1AtQnJhc2lsMQswCQYDVQQIEwJTQzEOMAwGA1UEBxQFVElNQk8xNjA0BgNVBAsULVNlY3JldGFyaWEgZGEgUmVjZWl0YSBGZWRlcmFsIGRvIEJyYXNpbCAtIFJGQjEWMBQGA1UECxQNUkZCIGUtQ05QSiBBMTEiMCAGA1UECxQZQXV0ZW50aWNhZG8gcG9yIEFSIENOQiBDRjEyMDAGA1UEAxMpUkVOQVRBIFJPRURFUiBKQUNPQlNFTiBFUFA6MTgxOTk1OTkwMDAxMDgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0n+JyIw7aHE0ZBVQOU+bpSv7Rvd5Iyd9buSYcBd8Qa5EYdWs5I7koUT0fdawh7y54Ud2GZl6TkY8hh61jelxkV+VTJ+okcN6kDeAQ5myGITmwLhly81rtodtdXfwe345IChIx2iMNI4sAJ2R4HNInmVpYBmItqcGCVv95GSQxbo/dRkOOEXkffQa93liFTQqmb6oKv8WeEmOZPcLZ4iVh6J3gdrK8ju4jLw310fjOqrel4yArhKk0ehkbJjvF9J4ZvWj1Ln2+1QgF3PpDMFPU8NqOF0jWi6BQ7oJdC4sLkGenyQ8IUhQkZ0v2UGjQogk1NcTLBNlZI7q3vwh1aSHXAgMBAAGjggNSMIIDTjCBtwYDVR0RBIGvMIGsoD0GBWBMAQMEoDQEMjEyMDExOTM3MDQ5NjAzMzU5MDQwMDAwMDAwMDAwMDAwMDAwMDAwMjQ4NzExMFNTUFNDoCEGBWBMAQMCoBgEFlJFTkFUQSBST0VERVIgSkFDT0JTRU6gGQYFYEwBAwOgEAQOMTgxOTk1OTkwMDAxMDigFwYFYEwBAwegDgQMMDAwMDAwMDAwMDAwgRRtYXJjZWxvQGtsdWtlLmNvbS5icjAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFC6R6tZt5bJZgtw4hSl2NBZWPNA+MA4GA1UdDwEB/wQEAwIF4DB/BgNVHSAEeDB2MHQGBmBMAQIBDDBqMGgGCCsGAQUFBwIBFlxodHRwOi8vaWNwLWJyYXNpbC5jZXJ0aXNpZ24uY29tLmJyL3JlcG9zaXRvcmlvL2RwYy9BQ19DZXJ0aXNpZ25fUkZCL0RQQ19BQ19DZXJ0aXNpZ25fUkZCLnBkZjCCARYGA1UdHwSCAQ0wggEJMFegVaBThlFodHRwOi8vaWNwLWJyYXNpbC5jZXJ0aXNpZ24uY29tLmJyL3JlcG9zaXRvcmlvL2xjci9BQ0NlcnRpc2lnblJGQkc0L0xhdGVzdENSTC5jcmwwVqBUoFKGUGh0dHA6Ly9pY3AtYnJhc2lsLm91dHJhbGNyLmNvbS5ici9yZXBvc2l0b3Jpby9sY3IvQUNDZXJ0aXNpZ25SRkJHNC9MYXRlc3RDUkwuY3JsMFagVKBShlBodHRwOi8vcmVwb3NpdG9yaW8uaWNwYnJhc2lsLmdvdi5ici9sY3IvQ2VydGlzaWduL0FDQ2VydGlzaWduUkZCRzQvTGF0ZXN0Q1JMLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwgZsGCCsGAQUFBwEBBIGOMIGLMF8GCCsGAQUFBzAChlNodHRwOi8vaWNwLWJyYXNpbC5jZXJ0aXNpZ24uY29tLmJyL3JlcG9zaXRvcmlvL2NlcnRpZmljYWRvcy9BQ19DZXJ0aXNpZ25fUkZCX0c0LnA3YzAoBggrBgEFBQcwAYYcaHR0cDovL29jc3AuY2VydGlzaWduLmNvbS5icjANBgkqhkiG9w0BAQsFAAOCAgEAQh6TbzE+sevT7T3/wy7oKlhoiNy/Asz1mUXK2pc/ClrZewE4UtW2enjFzQln0Gpy8/y4+rZKtnv0iuLAQg8NwrhCoA//JbUsaD1a9XMH7E/vDKAjghLBZJoBq5Z10SxW/9V+JRaUbCb3AiFWKoyceMjWfXxTqgnXQZU9HeO72rqWEV7oA19IpW3c/mKbTNDAt5JyvcD3qCS7r4KyxBuJ2KfHFzhMa6FODZPC0v21+TdabkQLrEQT8cGp9YNBq0Hu4IXKT6eMPSZq0PTqUB+heN9b+Hv7WEvTIZycGJ/ooz2auJjsiTnVWGDU7cMKriZk06C1x1xFs0rpcCvLJPnOUDFqludijrVsCK8mpPv6xQv/73mN/HQQf/eVF+9NaQ6mkdn0MyVdqnxJmiH5DV5DT+VdtYYBT1VGQYAZjh/jO3eUO6sjwabKyrb+xr1SP74dp70vt6d26s+X5h2HWbSdR3X2eQNT/BF/ZSV5VY0dad3pQPW/VJHfxUBJ4ZP4+ySC/D4VH4U+Pkux+z8wlDorGrzzC/oOYtt3T1ETvEXo4iPIZ7dwVkCv8Rs5IGbTGrJoRnaV/PGHLIlrFaKfOtat51n4HX+ebAFK+ZvabbHNsnwpnZJbuNBV/P7BLttNV0M2BC/WNtTsxor0mTho2Kiz5VOqUpqnyBWqfJApMFJnuF0=
         
     | 
| 
      
 175 
     | 
    
         
            +
                      </X509Certificate>
         
     | 
| 
      
 176 
     | 
    
         
            +
                    </X509Data>
         
     | 
| 
      
 177 
     | 
    
         
            +
                  </KeyInfo>
         
     | 
| 
      
 178 
     | 
    
         
            +
                </Signature>
         
     | 
| 
      
 179 
     | 
    
         
            +
              </NFe>
         
     | 
| 
      
 180 
     | 
    
         
            +
              <protNFe versao="2.00">
         
     | 
| 
      
 181 
     | 
    
         
            +
                <infProt Id="ID100000481241129" xmlns="http://www.portalfiscal.inf.br/nfe">
         
     | 
| 
      
 182 
     | 
    
         
            +
                  <tpAmb>1</tpAmb>
         
     | 
| 
      
 183 
     | 
    
         
            +
                  <verAplic>SVRS2000101120000</verAplic>
         
     | 
| 
      
 184 
     | 
    
         
            +
                  <chNFe>12300384950081649000148500001000001310002342</chNFe>
         
     | 
| 
      
 185 
     | 
    
         
            +
                  <dhRecbto>2000-01-01T12:00:00</dhRecbto>
         
     | 
| 
      
 186 
     | 
    
         
            +
                  <nProt>100000481241129</nProt>
         
     | 
| 
      
 187 
     | 
    
         
            +
                  <digVal>aklOQ0184NjoeaqCIRT01927Crf=</digVal>
         
     | 
| 
      
 188 
     | 
    
         
            +
                  <cStat>100</cStat>
         
     | 
| 
      
 189 
     | 
    
         
            +
                  <xMotivo>Autorizado o uso da NF-e</xMotivo>
         
     | 
| 
      
 190 
     | 
    
         
            +
                </infProt>
         
     | 
| 
      
 191 
     | 
    
         
            +
              </protNFe>
         
     | 
| 
      
 192 
     | 
    
         
            +
            </nfeProc>
         
     | 
| 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path("../../test_helper", __FILE__)
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Nfe::Authorization do
         
     | 
| 
      
 4 
     | 
    
         
            +
              def nfe_hash
         
     | 
| 
      
 5 
     | 
    
         
            +
                {
         
     | 
| 
      
 6 
     | 
    
         
            +
                  autXML: {
         
     | 
| 
      
 7 
     | 
    
         
            +
                    CNPJ: '99819146000120',
         
     | 
| 
      
 8 
     | 
    
         
            +
                    CPF: '64046757655'
         
     | 
| 
      
 9 
     | 
    
         
            +
                  }
         
     | 
| 
      
 10 
     | 
    
         
            +
                }
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
              let(:authorization) { Nfe::Authorization.new(nfe_hash[:autXML]) }
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              it '#cnpj' do
         
     | 
| 
      
 16 
     | 
    
         
            +
                authorization.cnpj.must_equal '99819146000120'
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
              
         
     | 
| 
      
 19 
     | 
    
         
            +
              it '#cpf' do
         
     | 
| 
      
 20 
     | 
    
         
            +
                authorization.cpf.must_equal '64046757655'
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,71 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path("../../test_helper", __FILE__)
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Nfe::Cane do
         
     | 
| 
      
 4 
     | 
    
         
            +
              def nfe_hash
         
     | 
| 
      
 5 
     | 
    
         
            +
                {
         
     | 
| 
      
 6 
     | 
    
         
            +
                  cana: {
         
     | 
| 
      
 7 
     | 
    
         
            +
                    safra: '2000',
         
     | 
| 
      
 8 
     | 
    
         
            +
                    ref: '01/2000',
         
     | 
| 
      
 9 
     | 
    
         
            +
                    qTotMes: '100000',
         
     | 
| 
      
 10 
     | 
    
         
            +
                    qTotAnt: '90000',
         
     | 
| 
      
 11 
     | 
    
         
            +
                    qTotGer: '110000',
         
     | 
| 
      
 12 
     | 
    
         
            +
                    vFor: '5000',
         
     | 
| 
      
 13 
     | 
    
         
            +
                    vTotDed: '2000',
         
     | 
| 
      
 14 
     | 
    
         
            +
                    vLiqFor: '3000',
         
     | 
| 
      
 15 
     | 
    
         
            +
                    
         
     | 
| 
      
 16 
     | 
    
         
            +
                    forDia: [ 
         
     | 
| 
      
 17 
     | 
    
         
            +
                        { dia: '01', qtde: '1000' },
         
     | 
| 
      
 18 
     | 
    
         
            +
                        { dia: '10', qtde: '3000' }
         
     | 
| 
      
 19 
     | 
    
         
            +
                    ],
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                    deduc: [
         
     | 
| 
      
 22 
     | 
    
         
            +
                      { xDed: "Deduction 1", vDed: '10.00' },
         
     | 
| 
      
 23 
     | 
    
         
            +
                      { xDed: "Deduction 2", vDed: '300.00' }
         
     | 
| 
      
 24 
     | 
    
         
            +
                    ],
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  }
         
     | 
| 
      
 27 
     | 
    
         
            +
                }
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
              let(:cane) { Nfe::Cane.new(nfe_hash[:cana]) }
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
              it '#harvest' do
         
     | 
| 
      
 33 
     | 
    
         
            +
                cane.harvest.must_equal '2000'
         
     | 
| 
      
 34 
     | 
    
         
            +
              end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                it '#month' do
         
     | 
| 
      
 37 
     | 
    
         
            +
                cane.month.must_equal '01/2000'
         
     | 
| 
      
 38 
     | 
    
         
            +
              end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
              it '#month_amount' do
         
     | 
| 
      
 41 
     | 
    
         
            +
                cane.month_amount.must_equal '100000'
         
     | 
| 
      
 42 
     | 
    
         
            +
              end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
              it '#previous_amount' do
         
     | 
| 
      
 45 
     | 
    
         
            +
                cane.previous_amount.must_equal '90000'
         
     | 
| 
      
 46 
     | 
    
         
            +
              end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
              it '#amount' do
         
     | 
| 
      
 49 
     | 
    
         
            +
                cane.amount.must_equal '110000'
         
     | 
| 
      
 50 
     | 
    
         
            +
              end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
              it '#value' do
         
     | 
| 
      
 53 
     | 
    
         
            +
                cane.value.must_equal '5000'
         
     | 
| 
      
 54 
     | 
    
         
            +
              end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
              it '#deduction_value' do
         
     | 
| 
      
 57 
     | 
    
         
            +
                cane.deduction_value.must_equal '2000'
         
     | 
| 
      
 58 
     | 
    
         
            +
              end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
              it '#net_value' do
         
     | 
| 
      
 61 
     | 
    
         
            +
                cane.net_value.must_equal '3000'
         
     | 
| 
      
 62 
     | 
    
         
            +
              end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
              it '#days' do
         
     | 
| 
      
 65 
     | 
    
         
            +
                cane.days.must_equal [['01', '1000'], ['10', '3000']]
         
     | 
| 
      
 66 
     | 
    
         
            +
              end
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
              it '#deductions' do
         
     | 
| 
      
 69 
     | 
    
         
            +
                cane.deductions.must_equal [['Deduction 1', '10.00'], ['Deduction 2', '300.00']]
         
     | 
| 
      
 70 
     | 
    
         
            +
              end
         
     | 
| 
      
 71 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,46 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path("../../test_helper", __FILE__)
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Nfe::Carrier do
         
     | 
| 
      
 4 
     | 
    
         
            +
              def nfe_hash
         
     | 
| 
      
 5 
     | 
    
         
            +
                {
         
     | 
| 
      
 6 
     | 
    
         
            +
                  transp: {
         
     | 
| 
      
 7 
     | 
    
         
            +
                    CNPJ: '99819146000120',
         
     | 
| 
      
 8 
     | 
    
         
            +
                    xNome: 'Carrier',
         
     | 
| 
      
 9 
     | 
    
         
            +
                    IE: '15786913',
         
     | 
| 
      
 10 
     | 
    
         
            +
                    xEnder: 'Address',
         
     | 
| 
      
 11 
     | 
    
         
            +
                    xMun: 'City',
         
     | 
| 
      
 12 
     | 
    
         
            +
                    UF: 'ST'
         
     | 
| 
      
 13 
     | 
    
         
            +
                  }
         
     | 
| 
      
 14 
     | 
    
         
            +
                }
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              let(:carrier) { Nfe::Carrier.new(nfe_hash[:transp]) }
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              it '#cnpj' do
         
     | 
| 
      
 20 
     | 
    
         
            +
                carrier.cnpj.must_equal '99819146000120'
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
              
         
     | 
| 
      
 23 
     | 
    
         
            +
              it '#cpf' do
         
     | 
| 
      
 24 
     | 
    
         
            +
                carrier.cpf.must_be_nil
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
              it '#name' do
         
     | 
| 
      
 28 
     | 
    
         
            +
                carrier.name.must_equal 'Carrier'
         
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
              it '#ie' do
         
     | 
| 
      
 32 
     | 
    
         
            +
                carrier.ie.must_equal '15786913'
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
              it '#address' do
         
     | 
| 
      
 36 
     | 
    
         
            +
                carrier.address.must_equal 'Address'
         
     | 
| 
      
 37 
     | 
    
         
            +
              end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
              it '#city' do
         
     | 
| 
      
 40 
     | 
    
         
            +
                carrier.city.must_equal 'City'
         
     | 
| 
      
 41 
     | 
    
         
            +
              end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
              it '#state' do
         
     | 
| 
      
 44 
     | 
    
         
            +
                carrier.state.must_equal 'ST'
         
     | 
| 
      
 45 
     | 
    
         
            +
              end
         
     | 
| 
      
 46 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path("../../../test_helper", __FILE__)
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Nfe::Duplicate do
         
     | 
| 
      
 4 
     | 
    
         
            +
              def nfe_hash
         
     | 
| 
      
 5 
     | 
    
         
            +
                {
         
     | 
| 
      
 6 
     | 
    
         
            +
                  duplicate: {
         
     | 
| 
      
 7 
     | 
    
         
            +
                    nDup: '1',
         
     | 
| 
      
 8 
     | 
    
         
            +
                    dVenc: '01/01/2000',
         
     | 
| 
      
 9 
     | 
    
         
            +
                    vDup: '50.00'
         
     | 
| 
      
 10 
     | 
    
         
            +
                  }
         
     | 
| 
      
 11 
     | 
    
         
            +
                }
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              let(:duplicate) { Nfe::Duplicate.new(nfe_hash[:duplicate]) }
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              it '#number' do
         
     | 
| 
      
 17 
     | 
    
         
            +
                duplicate.number.must_equal '1'
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              it '#expiration' do
         
     | 
| 
      
 21 
     | 
    
         
            +
                duplicate.expiration.must_equal '01/01/2000'
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              it '#value' do
         
     | 
| 
      
 25 
     | 
    
         
            +
                duplicate.value.must_equal '50.00'
         
     | 
| 
      
 26 
     | 
    
         
            +
              end
         
     | 
| 
      
 27 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,78 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path("../../test_helper", __FILE__)
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Nfe::Collection do
         
     | 
| 
      
 4 
     | 
    
         
            +
              def nfe_hash
         
     | 
| 
      
 5 
     | 
    
         
            +
                {
         
     | 
| 
      
 6 
     | 
    
         
            +
                  collection: {
         
     | 
| 
      
 7 
     | 
    
         
            +
                    fat:{
         
     | 
| 
      
 8 
     | 
    
         
            +
                      nFat: '1000',
         
     | 
| 
      
 9 
     | 
    
         
            +
                      vOrig: '1500.00',
         
     | 
| 
      
 10 
     | 
    
         
            +
                      vDesc: '0.00',
         
     | 
| 
      
 11 
     | 
    
         
            +
                      vLiq: '1500.00'
         
     | 
| 
      
 12 
     | 
    
         
            +
                    },
         
     | 
| 
      
 13 
     | 
    
         
            +
                    dup: {
         
     | 
| 
      
 14 
     | 
    
         
            +
                        nDup: '1',
         
     | 
| 
      
 15 
     | 
    
         
            +
                        dVenc: '01/01/2000',
         
     | 
| 
      
 16 
     | 
    
         
            +
                        vDup: '1500.00' 
         
     | 
| 
      
 17 
     | 
    
         
            +
                    }
         
     | 
| 
      
 18 
     | 
    
         
            +
                  }
         
     | 
| 
      
 19 
     | 
    
         
            +
                }
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              def collection_hash
         
     | 
| 
      
 23 
     | 
    
         
            +
                {
         
     | 
| 
      
 24 
     | 
    
         
            +
                  collection: {
         
     | 
| 
      
 25 
     | 
    
         
            +
                    fat:{
         
     | 
| 
      
 26 
     | 
    
         
            +
                      nFat: '1000',
         
     | 
| 
      
 27 
     | 
    
         
            +
                      vOrig: '1500.00',
         
     | 
| 
      
 28 
     | 
    
         
            +
                      vDesc: '0.00',
         
     | 
| 
      
 29 
     | 
    
         
            +
                      vLiq: '1500.00'
         
     | 
| 
      
 30 
     | 
    
         
            +
                    },
         
     | 
| 
      
 31 
     | 
    
         
            +
                    dup: [
         
     | 
| 
      
 32 
     | 
    
         
            +
                      {
         
     | 
| 
      
 33 
     | 
    
         
            +
                        nDup: '1',
         
     | 
| 
      
 34 
     | 
    
         
            +
                        dVenc: '01/01/2000',
         
     | 
| 
      
 35 
     | 
    
         
            +
                        vDup: '750.00' 
         
     | 
| 
      
 36 
     | 
    
         
            +
                      },
         
     | 
| 
      
 37 
     | 
    
         
            +
                      {
         
     | 
| 
      
 38 
     | 
    
         
            +
                        nDup: '2',
         
     | 
| 
      
 39 
     | 
    
         
            +
                        dVenc: '01/01/2000',
         
     | 
| 
      
 40 
     | 
    
         
            +
                        vDup: '750.00' 
         
     | 
| 
      
 41 
     | 
    
         
            +
                      }
         
     | 
| 
      
 42 
     | 
    
         
            +
                    ]
         
     | 
| 
      
 43 
     | 
    
         
            +
                  }
         
     | 
| 
      
 44 
     | 
    
         
            +
                }
         
     | 
| 
      
 45 
     | 
    
         
            +
              end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
              let(:collection) { Nfe::Collection.new(nfe_hash[:collection]) }
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
              describe 'One duplicate' do
         
     | 
| 
      
 50 
     | 
    
         
            +
                it '#number' do
         
     | 
| 
      
 51 
     | 
    
         
            +
                  collection.number.must_equal '1000'
         
     | 
| 
      
 52 
     | 
    
         
            +
                end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                it '#value' do
         
     | 
| 
      
 55 
     | 
    
         
            +
                  collection.value.must_equal '1500.00'
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                it '#descont' do
         
     | 
| 
      
 59 
     | 
    
         
            +
                  collection.descont.must_equal '0.00'
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                it '#value_net' do
         
     | 
| 
      
 63 
     | 
    
         
            +
                  collection.value_net.must_equal '1500.00'
         
     | 
| 
      
 64 
     | 
    
         
            +
                end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                it '#duplicates' do
         
     | 
| 
      
 67 
     | 
    
         
            +
                  collection.duplicates.size.must_equal 1
         
     | 
| 
      
 68 
     | 
    
         
            +
                end
         
     | 
| 
      
 69 
     | 
    
         
            +
              end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
              describe 'Two duplicate' do
         
     | 
| 
      
 72 
     | 
    
         
            +
                  let(:collection) { Nfe::Collection.new(collection_hash[:collection]) }
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                it '#duplicates' do
         
     | 
| 
      
 75 
     | 
    
         
            +
                  collection.duplicates.size.must_equal 2
         
     | 
| 
      
 76 
     | 
    
         
            +
                end
         
     | 
| 
      
 77 
     | 
    
         
            +
              end
         
     | 
| 
      
 78 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,133 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path("../../test_helper", __FILE__)
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Nfe::Customer do
         
     | 
| 
      
 4 
     | 
    
         
            +
              def customer_hash
         
     | 
| 
      
 5 
     | 
    
         
            +
                {
         
     | 
| 
      
 6 
     | 
    
         
            +
                  dest: {
         
     | 
| 
      
 7 
     | 
    
         
            +
                    CNPJ: '99819146000120',
         
     | 
| 
      
 8 
     | 
    
         
            +
                    CPF: '64046757655',
         
     | 
| 
      
 9 
     | 
    
         
            +
                    xNome: 'Customer',
         
     | 
| 
      
 10 
     | 
    
         
            +
                    IE: '15786913',
         
     | 
| 
      
 11 
     | 
    
         
            +
                    email: 'customer@test.mail',
         
     | 
| 
      
 12 
     | 
    
         
            +
                    ISUF: '1234567890',
         
     | 
| 
      
 13 
     | 
    
         
            +
                    idEstrangeiro: '10021312198423',
         
     | 
| 
      
 14 
     | 
    
         
            +
                    enderDest: {
         
     | 
| 
      
 15 
     | 
    
         
            +
                      fone: '55 5555-5555',
         
     | 
| 
      
 16 
     | 
    
         
            +
                      xLgr: 'Green Street',
         
     | 
| 
      
 17 
     | 
    
         
            +
                      nro: '123',
         
     | 
| 
      
 18 
     | 
    
         
            +
                      xBairro: 'Neighborhood',
         
     | 
| 
      
 19 
     | 
    
         
            +
                      cMun: '1246',
         
     | 
| 
      
 20 
     | 
    
         
            +
                      xMun: 'City',
         
     | 
| 
      
 21 
     | 
    
         
            +
                      UF: 'ST',
         
     | 
| 
      
 22 
     | 
    
         
            +
                      cPais: '1058',
         
     | 
| 
      
 23 
     | 
    
         
            +
                      xPais: 'Brazil'
         
     | 
| 
      
 24 
     | 
    
         
            +
                    }
         
     | 
| 
      
 25 
     | 
    
         
            +
                  }
         
     | 
| 
      
 26 
     | 
    
         
            +
                }
         
     | 
| 
      
 27 
     | 
    
         
            +
              end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              describe 'with address' do
         
     | 
| 
      
 30 
     | 
    
         
            +
                let(:customer) { Nfe::Customer.new(customer_hash[:dest]) }
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                it '#foreign_code' do
         
     | 
| 
      
 33 
     | 
    
         
            +
                  customer.foreign_code.must_equal '10021312198423'
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                it '#cnpj' do
         
     | 
| 
      
 37 
     | 
    
         
            +
                  customer.cnpj.must_equal '99819146000120'
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
                
         
     | 
| 
      
 40 
     | 
    
         
            +
                it '#cpf' do
         
     | 
| 
      
 41 
     | 
    
         
            +
                  customer.cpf.must_equal '64046757655'
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                it '#name' do
         
     | 
| 
      
 45 
     | 
    
         
            +
                  customer.name.must_equal 'Customer'
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                it '#state_registration' do
         
     | 
| 
      
 49 
     | 
    
         
            +
                  customer.state_registration.must_equal '15786913'
         
     | 
| 
      
 50 
     | 
    
         
            +
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                it '#email' do
         
     | 
| 
      
 53 
     | 
    
         
            +
                  customer.email.must_equal 'customer@test.mail'
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                it '#suframa' do
         
     | 
| 
      
 57 
     | 
    
         
            +
                  customer.suframa.must_equal '1234567890'
         
     | 
| 
      
 58 
     | 
    
         
            +
                end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                it '#phone' do
         
     | 
| 
      
 61 
     | 
    
         
            +
                  customer.phone.must_equal '55 5555-5555'
         
     | 
| 
      
 62 
     | 
    
         
            +
                end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                it '#number' do
         
     | 
| 
      
 65 
     | 
    
         
            +
                  customer.number.must_equal '123'
         
     | 
| 
      
 66 
     | 
    
         
            +
                end
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                it '#address' do
         
     | 
| 
      
 69 
     | 
    
         
            +
                  customer.address.must_equal 'Green Street'
         
     | 
| 
      
 70 
     | 
    
         
            +
                end
         
     | 
| 
      
 71 
     | 
    
         
            +
                it '#neighborhood' do
         
     | 
| 
      
 72 
     | 
    
         
            +
                  customer.neighborhood.must_equal 'Neighborhood'
         
     | 
| 
      
 73 
     | 
    
         
            +
                end
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                it '#city_code' do
         
     | 
| 
      
 76 
     | 
    
         
            +
                  customer.city_code.must_equal '1246'
         
     | 
| 
      
 77 
     | 
    
         
            +
                end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
                it '#city' do
         
     | 
| 
      
 80 
     | 
    
         
            +
                  customer.city.must_equal 'City'
         
     | 
| 
      
 81 
     | 
    
         
            +
                end
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
                it '#state' do
         
     | 
| 
      
 84 
     | 
    
         
            +
                  customer.state.must_equal 'ST'
         
     | 
| 
      
 85 
     | 
    
         
            +
                end
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
                it '#country_code' do
         
     | 
| 
      
 88 
     | 
    
         
            +
                  customer.country_code.must_equal '1058'
         
     | 
| 
      
 89 
     | 
    
         
            +
                end
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
                it '#country' do
         
     | 
| 
      
 92 
     | 
    
         
            +
                  customer.country.must_equal 'Brazil'
         
     | 
| 
      
 93 
     | 
    
         
            +
                end
         
     | 
| 
      
 94 
     | 
    
         
            +
              end
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
              describe 'without address' do
         
     | 
| 
      
 97 
     | 
    
         
            +
                let(:customer) { Nfe::Customer.new }
         
     | 
| 
      
 98 
     | 
    
         
            +
                it '#phone' do
         
     | 
| 
      
 99 
     | 
    
         
            +
                  customer.number.must_be_nil
         
     | 
| 
      
 100 
     | 
    
         
            +
                end
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
                it '#number' do
         
     | 
| 
      
 103 
     | 
    
         
            +
                  customer.number.must_be_nil
         
     | 
| 
      
 104 
     | 
    
         
            +
                end
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
                it '#address' do
         
     | 
| 
      
 107 
     | 
    
         
            +
                  customer.address.must_be_nil
         
     | 
| 
      
 108 
     | 
    
         
            +
                end
         
     | 
| 
      
 109 
     | 
    
         
            +
                it '#neighborhood' do
         
     | 
| 
      
 110 
     | 
    
         
            +
                  customer.neighborhood.must_be_nil
         
     | 
| 
      
 111 
     | 
    
         
            +
                end
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
                it '#city_code' do
         
     | 
| 
      
 114 
     | 
    
         
            +
                  customer.city_code.must_be_nil
         
     | 
| 
      
 115 
     | 
    
         
            +
                end
         
     | 
| 
      
 116 
     | 
    
         
            +
             
     | 
| 
      
 117 
     | 
    
         
            +
                it '#city' do
         
     | 
| 
      
 118 
     | 
    
         
            +
                  customer.city.must_be_nil
         
     | 
| 
      
 119 
     | 
    
         
            +
                end
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
                it '#state' do
         
     | 
| 
      
 122 
     | 
    
         
            +
                  customer.state.must_be_nil
         
     | 
| 
      
 123 
     | 
    
         
            +
                end
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
                it '#country_code' do
         
     | 
| 
      
 126 
     | 
    
         
            +
                  customer.country_code.must_be_nil
         
     | 
| 
      
 127 
     | 
    
         
            +
                end
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
      
 129 
     | 
    
         
            +
                it '#country' do
         
     | 
| 
      
 130 
     | 
    
         
            +
                  customer.country.must_be_nil
         
     | 
| 
      
 131 
     | 
    
         
            +
                end
         
     | 
| 
      
 132 
     | 
    
         
            +
              end
         
     | 
| 
      
 133 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,57 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path("../../test_helper", __FILE__)
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Nfe::Delivery do
         
     | 
| 
      
 4 
     | 
    
         
            +
              def nfe_hash
         
     | 
| 
      
 5 
     | 
    
         
            +
                {
         
     | 
| 
      
 6 
     | 
    
         
            +
                  entrega: {
         
     | 
| 
      
 7 
     | 
    
         
            +
                    CNPJ: '99819146000120',
         
     | 
| 
      
 8 
     | 
    
         
            +
                    CPF: '64046757655',
         
     | 
| 
      
 9 
     | 
    
         
            +
                    xLgr: 'Street',
         
     | 
| 
      
 10 
     | 
    
         
            +
                    nro: '157',
         
     | 
| 
      
 11 
     | 
    
         
            +
                    xCpl: 'Address',
         
     | 
| 
      
 12 
     | 
    
         
            +
                    xBairro: 'Neighborhood',
         
     | 
| 
      
 13 
     | 
    
         
            +
                    xMun: 'City',
         
     | 
| 
      
 14 
     | 
    
         
            +
                    cMun: '1234',
         
     | 
| 
      
 15 
     | 
    
         
            +
                    UF: 'ST',
         
     | 
| 
      
 16 
     | 
    
         
            +
                  }
         
     | 
| 
      
 17 
     | 
    
         
            +
                }
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              let(:delivery) { Nfe::Delivery.new(nfe_hash[:entrega]) }
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              it '#cnpj' do
         
     | 
| 
      
 23 
     | 
    
         
            +
                delivery.cnpj.must_equal '99819146000120'
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
              
         
     | 
| 
      
 26 
     | 
    
         
            +
              it '#cpf' do
         
     | 
| 
      
 27 
     | 
    
         
            +
                delivery.cpf.must_equal '64046757655'
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
              it '#address' do
         
     | 
| 
      
 31 
     | 
    
         
            +
                delivery.address.must_equal 'Street'
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
              it '#number' do
         
     | 
| 
      
 35 
     | 
    
         
            +
                delivery.number.must_equal '157'
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
              it '#complement' do
         
     | 
| 
      
 39 
     | 
    
         
            +
                delivery.complement.must_equal 'Address'
         
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
              it '#neighborhood' do
         
     | 
| 
      
 43 
     | 
    
         
            +
                delivery.neighborhood.must_equal 'Neighborhood'
         
     | 
| 
      
 44 
     | 
    
         
            +
              end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
              it '#city_code' do
         
     | 
| 
      
 47 
     | 
    
         
            +
                delivery.city_code.must_equal '1234'
         
     | 
| 
      
 48 
     | 
    
         
            +
              end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              it '#city' do
         
     | 
| 
      
 51 
     | 
    
         
            +
                delivery.city.must_equal 'City'
         
     | 
| 
      
 52 
     | 
    
         
            +
              end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
              it '#state' do
         
     | 
| 
      
 55 
     | 
    
         
            +
                delivery.state.must_equal 'ST'
         
     | 
| 
      
 56 
     | 
    
         
            +
              end
         
     | 
| 
      
 57 
     | 
    
         
            +
            end
         
     |