Destruir um Objeto

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Garoto de Programa
Usuário Nível 1
Usuário Nível 1
Mensagens: 37
Registrado em: 23 Nov 2005 14:34
Localização: Belo Horizonte/MG
Contato:

Destruir um Objeto

Mensagem por Garoto de Programa »

Pessoal,

Estou gerando um xml para a bendita NFe, mas acontece que eu não achei como eu destruo o objeto depois de gerar o arquivo, eu já tentei utilizar um DESTRUCTOR, criar um Metodo Destroy que setava tudo para Nil, tentem no programa setar o objeto para nil e nada.
O que acontece é que quando vou rodar o processo para emitir uma segunda NFe, o arquivo é gerado contendo toda a primeira NFe mais a segunda NFe, como se o arquivo fosse concatenado, mas não é isso porque é gerado um arquivo com nome diferente do primeiro. É como se os dados da primeira NFe ficassem armazenados e não fossem limpos, ai ao gerar a segunda NFe e criado uma nova estrutura de um arquivo xml mas e jogado tudo no mesmo arquivo.

Abaixo vai um exemplo do que estou falando, alterei os dados como CNPJ's para não ficarem expostos.

Código: Selecionar todos

<?xml version="1.0" encoding="UTF-8"?>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
   <infNFe Id="NFe31090700394452005083U10010000004531222838880" versao="1.10">
      <ide>
         <cUF>XX</cUF>
         <cNF>122283888</cNF>
         <natOp>NACIONAL ICMS COBRADO ANTERIORMENTE POR SUBST. TRIBUTARIA</natOp>
         <mod>U1</mod>
         <serie>001</serie>
         <nNF>000000453</nNF>
         <dEmi>2009-07-10</dEmi>
         <dSaiEnt>2009-07-10</dSaiEnt>
         <tpNF>1</tpNF>
         <cMunFG>9999999</cMunFG>
         <tpImp>3</tpImp>
         <tpEmis>1</tpEmis>
         <cDV>0</cDV>
         <tpAmb>1</tpAmb>
         <finNFe>1</finNFe>
         <procEmi>0</procEmi>
         <verProc>1.10</verProc>
      </ide>
      <emit>
         <CNPJ>02746151000119</CNPJ>
         <xNome>Lesma Papelaria</xNome>
         <xFant>Lesma</xFant>
         <enderEmit>
            <xLgr>PADRE EUSTAQUIO</xLgr>
            <nro>999</nro>
            <xBairro>PADRE EUSTAQUIO</xBairro>
            <cMun>3106200</cMun>
            <xMun>BELO HORIZONTE</xMun>
            <UF>MG</UF>
            <CEP>30720100</CEP>
            <cPais>1058</cPais>
            <xPais>BRASIL</xPais>
            <fone>(  )    -</fone>
         </enderEmit>
         <IE>MU.542480/151-1</IE>
      </emit>
      <dest>
         <CNPJ>04513454504583</CNPJ>
         <xNome>10 BATALHAO DE INFANTARIA</xNome>
         <enderDest>
            <xLgr>COMMAND COUNQUER</xLgr>
            <nro>878</nro>
            <xCpl>lj 101</xCpl>
            <xBairro>WARFACTORY</xBairro>
            <cMun>3136702</cMun>
            <xMun>TESLA</xMun>
            <UF>MG</UF>
            <cPais>1058</cPais>
            <xPais>BRASIL</xPais>
         </enderDest>
      </dest>
      <det nItem="  1">
         <prod>
            <cProd>1000</cProd>
            <xProd>PAPEL VERGE A4 180G C/100 VERDE GRIFFE PAPER</xProd>
            <CFOP>5401</CFOP>
            <uCom>PC</uCom>
            <qCom>1.0000</qCom>
            <vUnCom>400.0400</vUnCom>
            <vProd>400.04</vProd>
            <uTrib>PC</uTrib>
            <qTrib>1.0000</qTrib>
            <vUnTrib>400.0400</vUnTrib>
            <vFrete>0.34</vFrete>
            <vSeg>0.68</vSeg>
         </prod>
         <imposto>
            <ICMS>
               <ICMS10>
                  <CST>10</CST>
                  <modBC>3</modBC>
                  <modBCST>4</modBCST>
                  <pMVAST>41.75</pMVAST>
                  <vBCST>517.47</vBCST>
               </ICMS10>
            </ICMS>
         </imposto>
      </det>
      <det nItem="  2">
         <prod>
            <cProd>1001</cProd>
            <xProd>PINCEL QUADRO BRANCO VERMELHO C/12 PILOT</xProd>
            <CFOP>5101</CFOP>
            <uCom>PC</uCom>
            <qCom>1.0000</qCom>
            <vUnCom>2879.8231</vUnCom>
            <vProd>2879.82</vProd>
            <uTrib>PC</uTrib>
            <qTrib>1.0000</qTrib>
            <vUnTrib>2879.8231</vUnTrib>
            <vFrete>2.44</vFrete>
            <vSeg>4.89</vSeg>
         </prod>
         <imposto>
            <ICMS>
               <ICMS00>
                  <CST>00</CST>
                  <modBC>3</modBC>
                  <vBC>2590.33</vBC>
                  <pICMS>18.00</pICMS>
                  <vICMS>466.26</vICMS>
               </ICMS00>
            </ICMS>
         </imposto>
      </det>
      <det nItem="  3">
         <prod>
            <cProd>1002</cProd>
            <xProd>QUADRO AVISO CORTIÈA 60X120 INDUSQUADRO</xProd>
            <CFOP>5101</CFOP>
            <uCom>PC</uCom>
            <qCom>1.0000</qCom>
            <vUnCom>2879.8231</vUnCom>
            <vProd>2879.82</vProd>
            <uTrib>PC</uTrib>
            <qTrib>1.0000</qTrib>
            <vUnTrib>2879.8231</vUnTrib>
            <vFrete>2.44</vFrete>
            <vSeg>4.89</vSeg>
         </prod>
         <imposto>
            <ICMS>
               <ICMS00>
                  <CST>00</CST>
                  <modBC>3</modBC>
                  <vBC>2590.33</vBC>
                  <pICMS>18.00</pICMS>
                  <vICMS>466.26</vICMS>
               </ICMS00>
            </ICMS>
         </imposto>
      </det>
      <det nItem="  4">
         <prod>
            <cProd>1003</cProd>
            <xProd>CARTUCHO NOVO HP 6615 MULTILASER</xProd>
            <CFOP>5101</CFOP>
            <uCom>UN</uCom>
            <qCom>1.0000</qCom>
            <vUnCom>2722.0409</vUnCom>
            <vProd>2722.04</vProd>
            <uTrib>UN</uTrib>
            <qTrib>1.0000</qTrib>
            <vUnTrib>2722.0409</vUnTrib>
            <vFrete>2.31</vFrete>
            <vSeg>4.62</vSeg>
         </prod>
         <imposto>
            <ICMS>
               <ICMS00>
                  <CST>00</CST>
                  <modBC>3</modBC>
                  <vBC>2448.41</vBC>
                  <pICMS>18.00</pICMS>
                  <vICMS>440.71</vICMS>
               </ICMS00>
            </ICMS>
         </imposto>
      </det>
      <det nItem="  5">
         <prod>
            <cProd>1004</cProd>
            <xProd>FICHA CARTOLINA PAUTADA 4X6</xProd>
            <CFOP>5101</CFOP>
            <uCom>UN</uCom>
            <qCom>1.0000</qCom>
            <vUnCom>2879.8231</vUnCom>
            <vProd>2879.82</vProd>
            <uTrib>UN</uTrib>
            <qTrib>1.0000</qTrib>
            <vUnTrib>2879.8231</vUnTrib>
            <vFrete>2.44</vFrete>
            <vSeg>4.89</vSeg>
         </prod>
         <imposto>
            <ICMS>
               <ICMS00>
                  <CST>00</CST>
                  <modBC>3</modBC>
                  <vBC>2590.33</vBC>
                  <pICMS>18.00</pICMS>
                  <vICMS>466.26</vICMS>
               </ICMS00>
            </ICMS>
         </imposto>
      </det>
      <det nItem="  6">
         <prod>
            <cProd>1005</cProd>
            <xProd>CESTO DE LIXO PLASTICA C/TAMPA JUNDIAIR</xProd>
            <CFOP>5401</CFOP>
            <uCom>PC</uCom>
            <qCom>1.0000</qCom>
            <vUnCom>23.0000</vUnCom>
            <vProd>23.00</vProd>
            <uTrib>PC</uTrib>
            <qTrib>1.0000</qTrib>
            <vUnTrib>23.0000</vUnTrib>
            <vFrete>0.02</vFrete>
            <vSeg>0.04</vSeg>
         </prod>
         <imposto>
            <ICMS>
               <ICMS60>
                  <CST>60</CST>
                  <vBCST>29.50</vBCST>
                  <vICMSST>1.59</vICMSST>
               </ICMS60>
            </ICMS>
         </imposto>
      </det>
      <total>
         <ICMSTot>
            <vBC>10240.09</vBC>
            <vICMS>1843.21</vICMS>
            <vBCST>546.97</vBCST>
            <vST>1.59</vST>
            <vProd>11784.54</vProd>
            <vFrete>10.00</vFrete>
            <vSeg>20.00</vSeg>
            <vDesc>0.00</vDesc>
            <vIPI>0.00</vIPI>
            <vOutro>30.00</vOutro>
            <vNF>11786.14</vNF>
         </ICMSTot>
      </total>
      <transp>
         <modFrete>0</modFrete>
         <transporta>
            <CNPJ>00000000000000</CNPJ>
            <CPF>00000000000</CPF>
            <xNome>M.W. TRANSPORTES LTDA</xNome>
            <xEnder>RUA: PADRE , 1234 SAO FRANCISCO</xEnder>
            <xMun>BELO HORIZONTE</xMun>
            <UF>MG</UF>
         </transporta>
         <retTransp>
            <vServ>60.00</vServ>
            <vBCRet>60.00</vBCRet>
            <pICMSRet>18.00</pICMSRet>
            <vICMSRet>1080.00</vICMSRet>
            <cMunFG>9999999</cMunFG>
         </retTransp>
         <veicTransp>
            <UF>MG</UF>
         </veicTransp>
         <vol>
            <qVol>50</qVol>
            <esp>CAIXA</esp>
            <marca>LESMA</marca>
            <nVol>1</nVol>
            <pesoL>400.000</pesoL>
            <pesoB>350.000</pesoB>
         </vol>
      </transp>
   </infNFe>
</NFe>
<?xml version="1.0" encoding="UTF-8"?>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
   <infNFe Id="NFe31090716695025009658U10010000004535496528594" versao="1.10">
      <ide>
         <cUF>XX</cUF>
         <cNF>549652859</cNF>
         <natOp>NACIONAL TRIBUTADA E COM COBRANCA DO ICMS POR SUBST. TRIBUTARIA</natOp>
         <mod>U1</mod>
         <serie>001</serie>
         <nNF>000000453</nNF>
         <dEmi>2009-07-10</dEmi>
         <dSaiEnt>2009-07-10</dSaiEnt>
         <tpNF>1</tpNF>
         <cMunFG>9999999</cMunFG>
         <tpImp>3</tpImp>
         <tpEmis>1</tpEmis>
         <cDV>4</cDV>
         <tpAmb>1</tpAmb>
         <finNFe>1</finNFe>
         <procEmi>0</procEmi>
         <verProc>1.10</verProc>
      </ide>
      <emit>
         <CNPJ>02746151000119</CNPJ>
         <xNome>Lesma Papelaria</xNome>
         <xFant>Lesma</xFant>
         <enderEmit>
            <xLgr>PADRE EUSTAQUIO</xLgr>
            <nro>999</nro>
            <xBairro>PADRE EUSTAQUIO</xBairro>
            <cMun>3106200</cMun>
            <xMun>BELO HORIZONTE</xMun>
            <UF>MG</UF>
            <CEP>30720100</CEP>
            <cPais>1058</cPais>
            <xPais>BRASIL</xPais>
            <fone>(  )    -</fone>
         </enderEmit>
         <IE>MU.548520/541-1</IE>
      </emit>
      <dest>
         <CNPJ>54605045486548</CNPJ>
         <xNome>22 BATALHAO DE POLICIA MILITAR</xNome>
         <enderDest>
            <xLgr>AV. RED ALERT</xLgr>
            <nro>548</nro>
            <xBairro>TANIA</xBairro>
            <cMun>3106200</cMun>
            <xMun>AIRFIELD</xMun>
            <UF>MG</UF>
            <cPais>1058</cPais>
            <xPais>BRASIL</xPais>
         </enderDest>
      </dest>
      <det nItem="  1">
         <prod>
            <cProd>1000</cProd>
            <xProd>PAPEL VERGE A4 180G C/100 VERDE GRIFFE PAPER</xProd>
            <CFOP>5401</CFOP>
            <uCom>PC</uCom>
            <qCom>1.0000</qCom>
            <vUnCom>400.0400</vUnCom>
            <vProd>400.04</vProd>
            <uTrib>PC</uTrib>
            <qTrib>1.0000</qTrib>
            <vUnTrib>400.0400</vUnTrib>
         </prod>
         <imposto>
            <ICMS>
               <ICMS10>
                  <CST>10</CST>
                  <modBC>3</modBC>
                  <modBCST>4</modBCST>
                  <pMVAST>43.00</pMVAST>
                  <vBCST>572.06</vBCST>
               </ICMS10>
            </ICMS>
         </imposto>
      </det>
      <total>
         <ICMSTot>
            <vBC>0.00</vBC>
            <vICMS>0.00</vICMS>
            <vBCST>572.06</vBCST>
            <vST>0.00</vST>
            <vProd>400.04</vProd>
            <vFrete>0.00</vFrete>
            <vSeg>0.00</vSeg>
            <vDesc>0.00</vDesc>
            <vIPI>0.00</vIPI>
            <vOutro>0.00</vOutro>
            <vNF>400.04</vNF>
         </ICMSTot>
      </total>
      <transp>
         <modFrete>1</modFrete>
         <transporta>
            <CNPJ>00000000000000</CNPJ>
            <CPF>00000000000</CPF>
            <xNome>M.W. TRANSPORTES LTDA</xNome>
            <xEnder>RUA: PADRE, 1234 SAO FRANCISCO</xEnder>
            <xMun>BELO HORIZONTE</xMun>
            <UF>MG</UF>
         </transporta>
         <retTransp>
            <vServ>0.00</vServ>
            <vBCRet>0.00</vBCRet>
            <pICMSRet>0.00</pICMSRet>
            <vICMSRet>0.00</vICMSRet>
            <cMunFG>9999999</cMunFG>
         </retTransp>
         <veicTransp>
            <UF>MG</UF>
         </veicTransp>
         <vol>
            <qVol>1</qVol>
            <esp>CAIXA</esp>
            <marca>LESMA</marca>
            <nVol>5</nVol>
            <pesoL>10.000</pesoL>
            <pesoB>10.000</pesoB>
         </vol>
      </transp>
   </infNFe>
</NFe>

Agradecimentos antecipados a quem se interessar.
Christiano Ribeiro Soares
Desenvolvedor
http://www.chrissoares.com.br
rodrmigu
Usuário Nível 3
Usuário Nível 3
Mensagens: 150
Registrado em: 27 Nov 2007 15:13
Localização: Indaiatuba SP

Re: Destruir um Objeto

Mensagem por rodrmigu »

Olá

Já tive muitos problemas com destructor, principalmente no xharbour, então desisti... O melhor seria criar um método, tipo Clean() e roda-lo antes de destrui-lo. Outro detalhe, a clausula INIT é estática, então cuidado com ela..., se for iniciar um mesmo valor de uma variável, faça-o dentro do m'todo contrutor... e mais uma dica, para destruir e liberar memoria da classe, basta um "classe := NIL já resolve.

[]'s
Rodrigo
Responder