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 | |||
85 | /** |
||
86 | * template user-defined |
||
87 | * @var string |
||
88 | */ |
||
89 | public $template; |
||
90 | /** |
||
91 | * Type from xml document NFe, CTe or CCe |
||
92 | * @var string |
||
93 | */ |
||
94 | protected $type; |
||
95 | /** |
||
96 | * Addresses to send mail |
||
97 | * This array should be repeated fields removed |
||
98 | * @var array |
||
99 | */ |
||
100 | protected $addresses = []; |
||
101 | /** |
||
102 | * Fields from xml |
||
103 | * @var \stdClass |
||
104 | */ |
||
105 | public $fields; |
||
106 | /** |
||
107 | * PHPMailer class |
||
108 | * @var \PHPMailer |
||
109 | */ |
||
110 | protected $mail; |
||
111 | /** |
||
112 | * Xml content |
||
113 | * @var string |
||
114 | */ |
||
115 | public $xml; |
||
116 | /** |
||
117 | * PDF content |
||
118 | * @var string |
||
119 | */ |
||
120 | public $pdf; |
||
121 | /** |
||
122 | * config |
||
123 | * @var \stdClass |
||
124 | */ |
||
125 | protected $config; |
||
126 | |||
127 | |||
128 | /** |
||
129 | * Search xml for data |
||
130 | * @param string $xml |
||
131 | * @throws \InvalidArgumentException |
||
132 | */ |
||
133 | protected function getXmlData($xml) |
||
215 | |||
216 | /** |
||
217 | * Set all addresses including those that exists in the xml document |
||
218 | * Send email only to listed addresses ignoring all email addresses in xml |
||
219 | * @param array $addresses |
||
220 | * @param bool $include |
||
221 | */ |
||
222 | protected function setAddresses(array $addresses = [], $include = true) |
||
233 | |||
234 | /** |
||
235 | * Render a template with valid data |
||
236 | * @param string $template |
||
237 | * @param string $destinatario |
||
238 | * @param string $data |
||
239 | * @param string $numero |
||
240 | * @param string $valor |
||
241 | * @param string $chave |
||
242 | * @param string $correcao |
||
243 | * @param string $conduso |
||
244 | * @return string |
||
245 | */ |
||
246 | protected function renderTemplate( |
||
280 | |||
281 | /** |
||
282 | * Remove all invalid addresses |
||
283 | */ |
||
284 | protected function removeInvalidAdresses() |
||
292 | |||
293 | /** |
||
294 | * Build Message |
||
295 | * @return string |
||
296 | */ |
||
297 | protected function render() |
||
316 | |||
317 | /** |
||
318 | * Attach all documents to message |
||
319 | */ |
||
320 | protected function attach() |
||
335 | |||
336 | /** |
||
337 | * Returns only valid email string |
||
338 | * @param string $email |
||
339 | * @return boolean |
||
340 | */ |
||
341 | protected function checkEmailAddress($email) |
||
345 | |||
346 | /** |
||
347 | * Format email address string removing garbage and |
||
348 | * set to lower characters |
||
349 | * @param string $email |
||
350 | * @return string |
||
351 | */ |
||
352 | protected function clearAddressString($email) |
||
356 | } |
||
357 |
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: