1 | <?php |
||
5 | class Base |
||
6 | { |
||
7 | /** |
||
8 | * Html Templates |
||
9 | * @var array |
||
10 | */ |
||
11 | protected $templates = [ |
||
12 | 'NFe'=> "<p><b>Prezados {destinatario},</b></p>" |
||
13 | . "<p>Você está recebendo a Nota Fiscal Eletrônica emitida em {data} com o número " |
||
14 | . "{numero}, de {emitente}, no valor de R$ {valor}. " |
||
15 | . "Junto com a mercadoria, você receberá também um DANFE (Documento " |
||
16 | . "Auxiliar da Nota Fiscal Eletrônica), que acompanha o trânsito das mercadorias.</p>" |
||
17 | . "<p><i>Podemos conceituar a Nota Fiscal Eletrônica como um documento " |
||
18 | . "de existência apenas digital, emitido e armazenado eletronicamente, " |
||
19 | . "com o intuito de documentar, para fins fiscais, uma operação de " |
||
20 | . "circulação de mercadorias, ocorrida entre as partes. Sua validade " |
||
21 | . "jurídica garantida pela assinatura digital do remetente (garantia " |
||
22 | . "de autoria e de integridade) e recepção, pelo Fisco, do documento " |
||
23 | . "eletrônico, antes da ocorrência do Fato Gerador.</i></p>" |
||
24 | . "<p><i>Os registros fiscais e contábeis devem ser feitos, a partir " |
||
25 | . "do próprio arquivo da NF-e, anexo neste e-mail, ou utilizando o " |
||
26 | . "DANFE, que representa graficamente a Nota Fiscal Eletrônica. " |
||
27 | . "A validade e autenticidade deste documento eletrônico pode ser " |
||
28 | . "verificada no site nacional do projeto (www.nfe.fazenda.gov.br), " |
||
29 | . "através da chave de acesso contida no DANFE.</i></p>" |
||
30 | . "<p><i>Para poder utilizar os dados descritos do DANFE na " |
||
31 | . "escrituração da NF-e, tanto o contribuinte destinatário, " |
||
32 | . "como o contribuinte emitente, terão de verificar a validade da NF-e. " |
||
33 | . "Esta validade está vinculada à efetiva existência da NF-e nos " |
||
34 | . "arquivos da SEFAZ, e comprovada através da emissão da Autorização de Uso.</i></p>" |
||
35 | . "<p><b>O DANFE não é uma nota fiscal, nem substitui uma nota fiscal, " |
||
36 | . "servindo apenas como instrumento auxiliar para consulta da NF-e no " |
||
37 | . "Ambiente Nacional.</b></p>" |
||
38 | . "<p>Para mais detalhes, consulte: <a href=\"http://www.nfe.fazenda.gov.br/\">" |
||
39 | . "www.nfe.fazenda.gov.br</a></p>" |
||
40 | . "<br>" |
||
41 | . "<p>Atenciosamente,</p>" |
||
42 | . "<p>{emitente}</p>", |
||
43 | |||
44 | 'CTe'=> "<p><b>Prezados {destinatario},</b></p>" |
||
45 | . "<p>Você está recebendo um Conhecimento de Transporte Eletrônico emitido em {data} com o número " |
||
46 | . "{numero}, de {emitente}, no valor de R$ {valor}. " |
||
47 | . "Junto com a mercadoria, você receberá também um DACTE (Documento " |
||
48 | . "Auxiliar do Conhecimento de Transporte Eletrônico), que acompanha o trânsito das mercadorias.</p>" |
||
49 | . "<p><i>Podemos conceituar o CTe como um documento " |
||
50 | . "de existência apenas digital, emitido e armazenado eletronicamente, " |
||
51 | . "com o intuito de documentar, para fins fiscais, uma operação de " |
||
52 | . "circulação de mercadorias, ocorrida entre as partes. Sua validade " |
||
53 | . "jurídica garantida pela assinatura digital do remetente (garantia " |
||
54 | . "de autoria e de integridade) e recepção, pelo Fisco, do documento " |
||
55 | . "eletrônico, antes da ocorrência do Fato Gerador.</i></p>" |
||
56 | . "<p><i>Os registros fiscais e contábeis devem ser feitos, a partir " |
||
57 | . "do próprio arquivo da NF-e, anexo neste e-mail, ou utilizando o " |
||
58 | . "DACTE, que representa graficamente o Conhecimento de Transporte Eletrônico. " |
||
59 | . "A validade e autenticidade deste documento eletrônico pode ser " |
||
60 | . "verificada no site nacional do projeto (www.cte.fazenda.gov.br), " |
||
61 | . "através da chave de acesso contida no DACTE.</i></p>" |
||
62 | . "<p><i>Para poder utilizar os dados descritos do DACTE na " |
||
63 | . "escrituração do CT-e, tanto o contribuinte destinatário, " |
||
64 | . "como o contribuinte emitente, terão de verificar a validade do CT-e. " |
||
65 | . "Esta validade está vinculada à efetiva existência do CT-e nos " |
||
66 | . "arquivos da SEFAZ, e comprovada através da emissão da Autorização de Uso.</i></p>" |
||
67 | . "<p><b>O DACTE não é um Conhecimento de transporte, nem o substitui, " |
||
68 | . "servindo apenas como instrumento auxiliar para consulta do CT-e no " |
||
69 | . "Ambiente Nacional.</b></p>" |
||
70 | . "<p>Para mais detalhes, consulte: <a href=\"http://www.cte.fazenda.gov.br/\">" |
||
71 | . "www.cte.fazenda.gov.br</a></p>" |
||
72 | . "<br>" |
||
73 | . "<p>Atenciosamente,</p>" |
||
74 | . "<p>{emitente}</p>", |
||
75 | |||
76 | 'CCe'=> "<p><b>Prezados,</b></p>" |
||
77 | . "<p>Você está recebendo uma Carta de Correção referente ao nosso documento " |
||
78 | . "{chave}.</p><p>Essa carta de correção datada de {data} procura corrigir:</p> " |
||
79 | . "<p><b>{correcao}</b></p>" |
||
80 | . "<p><i>{conduso}</i></p>" |
||
81 | . "<p>Atenciosamente,</p>" |
||
82 | . "<p>{emitente}</p>", |
||
83 | |||
84 | 'CTeOS' => "<p><b>Prezados {destinatario},</b></p>" |
||
85 | . "<p>Você está recebendo um Conhecimentode Transporte Eletrônico " |
||
86 | . "para Outros Serviços emitido em {data} com o número " |
||
87 | . "{numero}, de {emitente}, no valor de R$ {valor}. " |
||
88 | . "Junto com a mercadoria, você receberá também um DACTEOS (Documento " |
||
89 | . "Auxiliar do Conhecimentode Transporte Eletrônico para Outros " |
||
90 | . "Serviços), que acompanha o trânsito das mercadorias.</p>" |
||
91 | . "<p><i>Podemos conceituar o CTe-OS como um documento " |
||
92 | . "de existência apenas digital, emitido e armazenado eletronicamente, " |
||
93 | . "com o intuito de documentar, para fins fiscais, uma operação de " |
||
94 | . "circulação de mercadorias, ocorrida entre as partes. Sua validade " |
||
95 | . "jurídica garantida pela assinatura digital do remetente (garantia " |
||
96 | . "de autoria e de integridade) e recepção, pelo Fisco, do documento " |
||
97 | . "eletrônico, antes da ocorrência do Fato Gerador.</i></p>" |
||
98 | . "<p><i>Os registros fiscais e contábeis devem ser feitos, a partir " |
||
99 | . "do próprio arquivo da CTe-OS, anexo neste e-mail, ou utilizando o " |
||
100 | . "DACTEOS, que representa graficamente o Conhecimentode Transporte Eletrônico para Outros Serviços. " |
||
101 | . "A validade e autenticidade deste documento eletrônico pode ser " |
||
102 | . "verificada no site nacional do projeto (www.cte.fazenda.gov.br), " |
||
103 | . "através da chave de acesso contida no DACTEOS.</i></p>" |
||
104 | . "<p><i>Para poder utilizar os dados descritos do DACTEOS na " |
||
105 | . "escrituração do CTe-OS, tanto o contribuinte destinatário, " |
||
106 | . "como o contribuinte emitente, terão de verificar a validade do CT-e. " |
||
107 | . "Esta validade está vinculada à efetiva existência do CTe-OS nos " |
||
108 | . "arquivos da SEFAZ, e comprovada através da emissão da Autorização de Uso.</i></p>" |
||
109 | . "<p><b>O DACTEOS não é um Conhecimento de transporte, nem o substitui, " |
||
110 | . "servindo apenas como instrumento auxiliar para consulta do CTe-OS no " |
||
111 | . "Ambiente Nacional.</b></p>" |
||
112 | . "<p>Para mais detalhes, consulte: <a href=\"http://www.cte.fazenda.gov.br/\">" |
||
113 | . "www.cte.fazenda.gov.br</a></p>" |
||
114 | . "<br>" |
||
115 | . "<p>Atenciosamente,</p>" |
||
116 | . "<p>{emitente}</p>", |
||
117 | ]; |
||
118 | |||
119 | /** |
||
120 | * template user-defined |
||
121 | * @var string |
||
122 | */ |
||
123 | public $template; |
||
124 | /** |
||
125 | * Type from xml document NFe, CTe or CCe |
||
126 | * @var string |
||
127 | */ |
||
128 | protected $type; |
||
129 | /** |
||
130 | * Addresses to send mail |
||
131 | * This array should be repeated fields removed |
||
132 | * @var array |
||
133 | */ |
||
134 | protected $addresses = []; |
||
135 | /** |
||
136 | * Assunto do email |
||
137 | * @var string |
||
138 | */ |
||
139 | protected $subject; |
||
140 | /** |
||
141 | * Fields from xml |
||
142 | * @var \stdClass |
||
143 | */ |
||
144 | public $fields; |
||
145 | /** |
||
146 | * PHPMailer class |
||
147 | * @var \PHPMailer |
||
148 | */ |
||
149 | protected $mail; |
||
150 | /** |
||
151 | * Xml content |
||
152 | * @var string |
||
153 | */ |
||
154 | public $xml; |
||
155 | /** |
||
156 | * PDF content |
||
157 | * @var string |
||
158 | */ |
||
159 | public $pdf; |
||
160 | /** |
||
161 | * config |
||
162 | * @var \stdClass |
||
163 | */ |
||
164 | protected $config; |
||
165 | |||
166 | /** |
||
167 | * Search xml for data |
||
168 | * @param string $xml |
||
169 | * @throws \InvalidArgumentException |
||
170 | */ |
||
171 | protected function getXmlData($xml) |
||
263 | |||
264 | /** |
||
265 | * Set all addresses including those that exists in the xml document |
||
266 | * Send email only to listed addresses ignoring all email addresses in xml |
||
267 | * @param array $addresses |
||
268 | * @param bool $include |
||
269 | */ |
||
270 | protected function setAddresses(array $addresses = [], $include = true) |
||
281 | |||
282 | /** |
||
283 | * Render a template with valid data |
||
284 | * @param string $template |
||
285 | * @param string $destinatario |
||
286 | * @param string $data |
||
287 | * @param string $numero |
||
288 | * @param string $valor |
||
289 | * @param string $chave |
||
290 | * @param string $correcao |
||
291 | * @param string $conduso |
||
292 | * @return string |
||
293 | */ |
||
294 | protected function renderTemplate( |
||
328 | |||
329 | /** |
||
330 | * Remove all invalid addresses |
||
331 | */ |
||
332 | protected function removeInvalidAdresses() |
||
340 | |||
341 | /** |
||
342 | * Build Message |
||
343 | * @return string |
||
344 | */ |
||
345 | protected function render() |
||
364 | |||
365 | /** |
||
366 | * Attach all documents to message |
||
367 | */ |
||
368 | protected function attach() |
||
383 | |||
384 | /** |
||
385 | * Returns only valid email string |
||
386 | * @param string $email |
||
387 | * @return boolean |
||
388 | */ |
||
389 | protected function checkEmailAddress($email) |
||
393 | |||
394 | /** |
||
395 | * Format email address string removing garbage and |
||
396 | * set to lower characters |
||
397 | * @param string $email |
||
398 | * @return string |
||
399 | */ |
||
400 | protected function clearAddressString($email) |
||
404 | } |
||
405 |