Skip to content

Commit

Permalink
Merge pull request #25 from robmachado/master
Browse files Browse the repository at this point in the history
[UPD] Correções de BUG na inclusão de emails
  • Loading branch information
robmachado authored Nov 21, 2016
2 parents e0c65eb + 49d337e commit 447f657
Show file tree
Hide file tree
Showing 6 changed files with 200 additions and 22 deletions.
167 changes: 167 additions & 0 deletions examples/nfce.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
<?xml version="1.0" encoding="utf-8"?>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe Id="NFe43151006102712000106650010000001751090504746" versao="3.10">
<ide>
<cUF>43</cUF>
<cNF>09050474</cNF>
<natOp>Venda</natOp>
<indPag>0</indPag>
<mod>65</mod>
<serie>1</serie>
<nNF>175</nNF>
<dhEmi>2015-10-02T17:04:47-03:00</dhEmi>
<tpNF>1</tpNF>
<idDest>1</idDest>
<cMunFG>4314902</cMunFG>
<tpImp>4</tpImp>
<tpEmis>1</tpEmis>
<cDV>6</cDV>
<tpAmb>2</tpAmb>
<finNFe>1</finNFe>
<indFinal>1</indFinal>
<indPres>1</indPres>
<procEmi>0</procEmi>
<verProc>1.0.0</verProc>
</ide>
<emit>
<CNPJ>06102712000106</CNPJ>
<xNome>YOMACAMA EMPREENDIMENTOS LTDA</xNome>
<xFant>YOMACAMA EMPREENDIMENTOS LTDA</xFant>
<enderEmit>
<xLgr>RUA DOUTOR JOAO INACIO</xLgr>
<nro>1316</nro>
<xBairro>NAVEGANTES</xBairro>
<cMun>4314902</cMun>
<xMun>Porto Alegre</xMun>
<UF>RS</UF>
<CEP>90230181</CEP>
<cPais>1058</cPais>
<xPais>BRASIL</xPais>
<fone>4199007993</fone>
</enderEmit>
<IE>0963026119</IE>
<CRT>3</CRT>
</emit>
<dest>
<CPF>60362219591</CPF>
<xNome>NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xNome>
<enderDest>
<xLgr>R. Tobias da Silva</xLgr>
<nro>287</nro>
<xBairro>Centro</xBairro>
<cMun>4314902</cMun>
<xMun>Porto Alegre</xMun>
<UF>RS</UF>
<CEP>90570020</CEP>
<cPais>1058</cPais>
<xPais>BRASIL</xPais>
<fone>4199007993</fone>
</enderDest>
<indIEDest>9</indIEDest>
<email>[email protected]</email>
</dest>
<det nItem="1">
<prod>
<cProd>YOMA7LIRIO</cProd>
<cEAN/>
<xProd>NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xProd>
<NCM>90328911</NCM>
<CFOP>5102</CFOP>
<uCom>Kg</uCom>
<qCom>1.0000</qCom>
<vUnCom>10.0000000000</vUnCom>
<vProd>10.00</vProd>
<cEANTrib/>
<uTrib>Kg</uTrib>
<qTrib>1.0000</qTrib>
<vUnTrib>10.0000000000</vUnTrib>
<indTot>1</indTot>
<xPed>506</xPed>
<nItemPed>1</nItemPed>
</prod>
<imposto>
<vTotTrib>3.29</vTotTrib>
<ICMS>
<ICMS00>
<orig>1</orig>
<CST>00</CST>
<modBC>3</modBC>
<vBC>10.00</vBC>
<pICMS>18.00</pICMS>
<vICMS>1.80</vICMS>
</ICMS00>
</ICMS>
<PIS>
<PISAliq>
<CST>01</CST>
<vBC>10.00</vBC>
<pPIS>0.65</pPIS>
<vPIS>0.07</vPIS>
</PISAliq>
</PIS>
<COFINS>
<COFINSAliq>
<CST>01</CST>
<vBC>10.00</vBC>
<pCOFINS>3.00</pCOFINS>
<vCOFINS>0.30</vCOFINS>
</COFINSAliq>
</COFINS>
</imposto>
</det>
<total>
<ICMSTot>
<vBC>10.00</vBC>
<vICMS>1.80</vICMS>
<vICMSDeson>0.00</vICMSDeson>
<vBCST>0.00</vBCST>
<vST>0.00</vST>
<vProd>10.00</vProd>
<vFrete>0.00</vFrete>
<vSeg>0.00</vSeg>
<vDesc>0.00</vDesc>
<vII>0.00</vII>
<vIPI>0.00</vIPI>
<vPIS>0.07</vPIS>
<vCOFINS>0.30</vCOFINS>
<vOutro>0.00</vOutro>
<vNF>10.00</vNF>
<vTotTrib>3.29</vTotTrib>
</ICMSTot>
</total>
<transp>
<modFrete>9</modFrete>
</transp>
<pag>
<tPag>01</tPag>
<vPag>10.00</vPag>
</pag>
<infAdic>
<infCpl>Trib aprox R$: 2,09 Federal e R$: 1,20 Estadual Fonte: IBPT 5oi7eW 15.2.A.</infCpl>
</infAdic>
</infNFe>
<infNFeSupl>
<qrCode>
<![CDATA[https://www.sefaz.rs.gov.br/NFE/NFE-NFC.aspx?chNFe=43151006102712000106650010000001751090504746&nVersao=100&tpAmb=2&cDest=60362219591&dhEmi=323031352d31302d30325431373a30343a34372d30333a3030&vNF=10.00&vICMS=1.80&digVal=7154726f5958412f66732b4c5a45764d4264722f374d71585734773d&cIdToken=000001&cHashQRCode=CB5CDE57881EF3F8CB3D359BFD9545D5F48988BD]]></qrCode>
</infNFeSupl>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<Reference URI="#NFe43151006102712000106650010000001751090504746">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>qTroYXA/fs+LZEvMBdr/7MqXW4w=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>KvNJLv3AUlhHNCYqPnw1GcOgkDC5D4QZg6DXkW1vH/iYi/WDUMhtWFHYLns83g1/T0aRLJ4RW8nIctBW6JXevAk7vE8Rndh+0ZYlgkGnkDXNUIj0Gmphc+gD/XWTFiet0iyx/PyWwz0a+kwdcU/5U/cMRriE15Wq2UhRl1GfFB1lQMPZLJC0vatT/tCRAwFWJuV/aEdat7pHHEifs12n7Uoo5p4gzOIy4VeS5Au/NRgOP+ySc0RR98KpTj5W/a/5sxgxBPHU/TA0Er9GVf5n5fzXa4fbs05guz1PEdwQ4/ccKeP6P/hDusLAyzrWmo7mYulwqkfbO2LyIyPMFk7yBA==</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>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</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</NFe>
2 changes: 1 addition & 1 deletion examples/nfe.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
<fone>33933501</fone>
</enderDest>
<indIEDest>9</indIEDest>
<email>gui_calabria@yahoo.com.br</email>
<email>linux.rlm@gmail.com</email>
</dest>
<det nItem="1">
<prod>
Expand Down
6 changes: 4 additions & 2 deletions examples/testEnvioEmail.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,11 @@
//envia emails
$mail->send($addresses);

} catch (InvalidArgumentException $e) {
} catch (\InvalidArgumentException $e) {
echo "Falha: " . $e->getMessage();
} catch (RuntimeException $e) {
} catch (\RuntimeException $e) {
echo "Falha: " . $e->getMessage();
} catch (\Exception $e) {
echo "Falha: " . $e->getMessage();
}

Expand Down
18 changes: 15 additions & 3 deletions examples/testStaticEnvioMail.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,18 @@

use NFePHP\Mail\Mail;

//$mail = new Mail($config);

$resp = Mail::sendMail($config, 'nfe.xml', '', ['[email protected]'], '');
try {
//paramtros:
//config - (obrigatório) vide acima
//xml - (obrigatório) documento a ser enviado NFe, NFCe, CTe, ou CCe, pode ser um path ou o arquivo em string
//pdf - (opcional) documento a ser enviado DANFE, DANFCE, DACTE, ou DACCE, pode ser um path ou o arquivo em string
//enderecos - (opcional) array com os endereços de email adicionais para envio
//template = (opcional) template HTML a ser usado
$resp = Mail::sendMail($config, 'nfe.xml', '', ['[email protected]'], '');
} catch (\InvalidArgumentException $e) {
echo "Falha: " . $e->getMessage();
} catch (\RuntimeException $e) {
echo "Falha: " . $e->getMessage();
} catch (\Exception $e) {
echo "Falha: " . $e->getMessage();
}
2 changes: 1 addition & 1 deletion src/Base.php
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class Base
* This array should be repeated fields removed
* @var array
*/
protected $addresses;
protected $addresses = [];
/**
* Fields from xml
* @var \stdClass
Expand Down
27 changes: 12 additions & 15 deletions src/Mail.php
Original file line number Diff line number Diff line change
Expand Up @@ -118,29 +118,23 @@ protected function getXmlData($xml)
$dom->loadXML($xml);
$root = $dom->documentElement;
$name = $root->tagName;
$dest = $dom->getElementsByTagName('dest')->item(0);
$ide = $dom->getElementsByTagName('ide')->item(0);
switch ($name) {
case 'nfeProc':
case 'NFe':
$type = 'NFe';
$this->fields->destinatario = $dom->getElementsByTagName('dest')->item(0)
->getElementsByTagName('xNome')->item(0)->nodeValue;
$this->fields->data = $dom->getElementsByTagName('ide')->item(0)
->getElementsByTagName('dhEmi')->item(0)->nodeValue;
$this->fields->numero = $dom->getElementsByTagName('ide')->item(0)
->getElementsByTagName('nNF')->item(0)->nodeValue;
$this->fields->numero = $ide->getElementsByTagName('nNF')->item(0)->nodeValue;
$this->fields->valor = $dom->getElementsByTagName('vNF')->item(0)->nodeValue;
$this->fields->data = $ide->getElementsByTagName('dhEmi')->item(0)->nodeValue;
$this->subject = "NFe n. " . $this->fields->numero . " - " . $this->config->fantasy;
break;
case 'cteProc':
case 'CTe':
$type = 'CTe';
$this->fields->destinatario = $dom->getElementsByTagName('dest')->item(0)
->getElementsByTagName('xNome')->item(0)->nodeValue;
$this->fields->data = $dom->getElementsByTagName('ide')->item(0)
->getElementsByTagName('dhEmi')->item(0)->nodeValue;
$this->fields->numero = $dom->getElementsByTagName('ide')->item(0)
->getElementsByTagName('nCT')->item(0)->nodeValue;
$this->fields->numero = $ide->getElementsByTagName('nCT')->item(0)->nodeValue;
$this->fields->valor = $dom->getElementsByTagName('vRec')->item(0)->nodeValue;
$this->fields->data = $ide->getElementsByTagName('dhEmi')->item(0)->nodeValue;
$this->subject = "CTe n. " . $this->fields->numero . " - " . $this->config->fantasy;
break;
case 'procEventoNFe':
Expand All @@ -160,8 +154,11 @@ protected function getXmlData($xml)
}
//get email adresses from xml, if exists
//may have one address in <dest><email>
$email = !empty($dom->getElementsByTagName('email')->item(0)->nodeValue) ?
$dom->getElementsByTagName('email')->item(0)->nodeValue : '';
if (!empty($dest)) {
$this->fields->destinatario = $dest->getElementsByTagName('xNome')->item(0)->nodeValue;
$email = !empty($dest->getElementsByTagName('email')->item(0)->nodeValue) ?
$dest->getElementsByTagName('email')->item(0)->nodeValue : '';
}
if (!empty($email)) {
$this->addresses[] = $email;
}
Expand Down Expand Up @@ -190,7 +187,7 @@ protected function getXmlData($xml)
protected function setAddresses(array $addresses = [])
{
if (!empty($addresses)) {
$this->addresses = $addresses;
$this->addresses = array_merge($this->addresses, $addresses);
}
$this->removeInvalidAdresses();
}
Expand Down

0 comments on commit 447f657

Please sign in to comment.