|
78 | 78 | $template = Template::where('name', 'Sollecito di pagamento raggruppato per anagrafica')->first(); |
79 | 79 |
|
80 | 80 | $list = []; |
| 81 | + $id_records_inviati = []; |
81 | 82 | $anagrafiche = []; |
82 | 83 | $id_anagrafica = 0; |
83 | 84 |
|
84 | | - foreach ($id_records as $id) { |
85 | | - $scadenze = $database->FetchArray('SELECT * FROM co_scadenziario LEFT JOIN (SELECT id as id_nota, ref_documento FROM co_documenti)as nota ON co_scadenziario.iddocumento = nota.ref_documento WHERE co_scadenziario.id = '.$id.' AND pagato < da_pagare AND nota.id_nota IS NULL ORDER BY idanagrafica, iddocumento'); |
86 | | - foreach ($scadenze as $key => $scadenza) { |
87 | | - $scadenza = Scadenza::find($scadenza['id']); |
88 | | - $documento = Fattura::find($scadenza['iddocumento']); |
| 85 | + $scadenze = $database->FetchArray('SELECT * FROM co_scadenziario LEFT JOIN (SELECT id as id_nota, ref_documento FROM co_documenti)as nota ON co_scadenziario.iddocumento = nota.ref_documento WHERE co_scadenziario.id IN ('.implode(',', $id_records).') AND pagato < da_pagare AND nota.id_nota IS NULL ORDER BY idanagrafica, iddocumento'); |
| 86 | + foreach ($scadenze as $key => $scadenza) { |
| 87 | + $scadenza = Scadenza::find($scadenza['id']); |
| 88 | + $documento = Fattura::find($scadenza['iddocumento']); |
89 | 89 |
|
90 | | - // Controllo se è una fattura di vendita |
91 | | - if ($documento->direzione == 'entrata' && $scadenza->scadenza <= date('Y-m-d')) { |
92 | | - $id_documento = $documento->id; |
93 | | - $id_anagrafica = $documento->idanagrafica; |
| 90 | + // Controllo se è una fattura di vendita |
| 91 | + if ($documento->direzione == 'entrata' && $scadenza->scadenza <= date('Y-m-d')) { |
| 92 | + $id_documento = $documento->id; |
| 93 | + $id_anagrafica = $documento->idanagrafica; |
94 | 94 |
|
95 | | - $fattura_allegata = $dbo->selectOne('zz_files', 'id', ['id_module' => $id_module, 'id_record' => $scadenza->id, 'original' => $scadenza->descrizione.'.pdf'])['id']; |
| 95 | + $fattura_allegata = $dbo->selectOne('zz_files', 'id', ['id_module' => $id_module, 'id_record' => $scadenza->id, 'original' => $scadenza->descrizione.'.pdf'])['id']; |
96 | 96 |
|
97 | | - // Allego stampa della fattura se non presente |
98 | | - if (empty($fattura_allegata)) { |
99 | | - $print_predefined = PrintTemplate::where('predefined', 1)->where('id_module', Module::where('name', 'Fatture di vendita')->first()->id)->first(); |
| 97 | + // Allego stampa della fattura se non presente |
| 98 | + if (empty($fattura_allegata)) { |
| 99 | + $print_predefined = PrintTemplate::where('predefined', 1)->where('id_module', Module::where('name', 'Fatture di vendita')->first()->id)->first(); |
100 | 100 |
|
101 | | - $print = Prints::render($print_predefined->id, $id_documento, null, true); |
102 | | - $upload = Uploads::upload($print['pdf'], [ |
103 | | - 'name' => $scadenza->descrizione, |
104 | | - 'original_name' => $scadenza->descrizione.'.pdf', |
105 | | - 'category' => 'Generale', |
106 | | - 'id_module' => $id_module, |
107 | | - 'id_record' => $scadenza->id, |
108 | | - ]); |
| 101 | + $print = Prints::render($print_predefined->id, $id_documento, null, true); |
| 102 | + $upload = Uploads::upload($print['pdf'], [ |
| 103 | + 'name' => $scadenza->descrizione, |
| 104 | + 'original_name' => $scadenza->descrizione.'.pdf', |
| 105 | + 'category' => 'Generale', |
| 106 | + 'id_module' => $id_module, |
| 107 | + 'id_record' => $scadenza->id, |
| 108 | + ]); |
109 | 109 |
|
110 | | - $fattura_allegata = $dbo->selectOne('zz_files', 'id', ['id_module' => $id_module, 'id_record' => $scadenza->id, 'original' => $scadenza->descrizione.'.pdf'])['id']; |
111 | | - } |
| 110 | + $fattura_allegata = $dbo->selectOne('zz_files', 'id', ['id_module' => $id_module, 'id_record' => $scadenza->id, 'original' => $scadenza->descrizione.'.pdf'])['id']; |
| 111 | + } |
| 112 | + |
| 113 | + // Selezione destinatari e invio mail |
| 114 | + if (!empty($template)) { |
| 115 | + // Invio unico per scadenze della stessa anagrafica |
| 116 | + if (!in_array($documento->idanagrafica, $anagrafiche)) { |
| 117 | + $creata_mail = false; |
| 118 | + $emails = []; |
| 119 | + |
| 120 | + // Aggiungo email anagrafica |
| 121 | + if (!empty($documento->anagrafica->email)) { |
| 122 | + $emails[] = $documento->anagrafica->email; |
| 123 | + $mail = Mail::build(auth()->getUser(), $template, $scadenza->id); |
| 124 | + $mail->addReceiver($documento->anagrafica->email); |
| 125 | + $creata_mail = true; |
| 126 | + } |
112 | 127 |
|
113 | | - // Selezione destinatari e invio mail |
114 | | - if (!empty($template)) { |
115 | | - // Invio unico per scadenze della stessa anagrafica |
116 | | - if (!in_array($documento->idanagrafica, $anagrafiche)) { |
117 | | - $creata_mail = false; |
118 | | - $emails = []; |
119 | | - |
120 | | - // Aggiungo email anagrafica |
121 | | - if (!empty($documento->anagrafica->email)) { |
122 | | - $emails[] = $documento->anagrafica->email; |
123 | | - $mail = Mail::build(auth()->getUser(), $template, $scadenza->id); |
124 | | - $mail->addReceiver($documento->anagrafica->email); |
| 128 | + // Aggiungo email referenti in base alla mansione impostata nel template |
| 129 | + $mansioni = $dbo->select('em_mansioni_template', 'idmansione', [], ['id_template' => $template->id]); |
| 130 | + foreach ($mansioni as $mansione) { |
| 131 | + $referenti = $dbo->table('an_referenti')->where('idmansione', $mansione['idmansione'])->where('idanagrafica', $id_anagrafica)->where('email', '!=', '')->get(); |
| 132 | + if (!$referenti->isEmpty() && $creata_mail == false) { |
| 133 | + $mail = Mail::build(auth()->getUser(), $template, $id); |
125 | 134 | $creata_mail = true; |
126 | 135 | } |
127 | 136 |
|
128 | | - // Aggiungo email referenti in base alla mansione impostata nel template |
129 | | - $mansioni = $dbo->select('em_mansioni_template', 'idmansione', [], ['id_template' => $template->id]); |
130 | | - foreach ($mansioni as $mansione) { |
131 | | - $referenti = $dbo->table('an_referenti')->where('idmansione', $mansione['idmansione'])->where('idanagrafica', $id_anagrafica)->where('email', '!=', '')->get(); |
132 | | - if (!$referenti->isEmpty() && $creata_mail == false) { |
133 | | - $mail = Mail::build(auth()->getUser(), $template, $id); |
134 | | - $creata_mail = true; |
135 | | - } |
136 | | - |
137 | | - foreach ($referenti as $referente) { |
138 | | - if (!in_array($referente->email, $emails)) { |
139 | | - $emails[] = $referente->email; |
140 | | - $mail->addReceiver($referente->email); |
141 | | - } |
| 137 | + foreach ($referenti as $referente) { |
| 138 | + if (!in_array($referente->email, $emails)) { |
| 139 | + $emails[] = $referente->email; |
| 140 | + $mail->addReceiver($referente->email); |
142 | 141 | } |
143 | 142 | } |
144 | 143 | } |
145 | 144 | } |
| 145 | + } |
146 | 146 |
|
147 | | - if (!empty($emails)) { |
148 | | - OperationLog::setInfo('id_email', $mail->id); |
149 | | - OperationLog::setInfo('id_module', $id_module); |
150 | | - OperationLog::setInfo('id_record', $scadenza->id); |
151 | | - OperationLog::build('send-email'); |
| 147 | + if (!empty($emails)) { |
| 148 | + OperationLog::setInfo('id_email', $mail->id); |
| 149 | + OperationLog::setInfo('id_module', $id_module); |
| 150 | + OperationLog::setInfo('id_record', $scadenza->id); |
| 151 | + OperationLog::build('send-email'); |
152 | 152 |
|
153 | | - array_push($list, $documento->numero_esterno); |
154 | | - array_push($anagrafiche, $scadenza->idanagrafica); |
| 153 | + array_push($list, $documento->numero_esterno); |
| 154 | + array_push($id_records_inviati, $scadenza->id); |
| 155 | + array_push($anagrafiche, $scadenza->idanagrafica); |
155 | 156 |
|
156 | | - $next_scadenza = $scadenze[$key + 1]; |
157 | | - // Allego unica fattura per più scadenze collegate |
158 | | - if (!empty($fattura_allegata) && $scadenza->iddocumento != $next_scadenza->iddocumento) { |
159 | | - $mail->addUpload($fattura_allegata); |
160 | | - } |
161 | | - // Invio unico per scadenze della stessa anagrafica |
162 | | - if ($scadenza->idanagrafica != $next_scadenza->idanagrafica) { |
163 | | - $mail->save(); |
164 | | - } |
| 157 | + $next_scadenza = $scadenze[$key + 1]; |
| 158 | + // Allego unica fattura per più scadenze collegate |
| 159 | + if (!empty($fattura_allegata) && $scadenza->iddocumento != $next_scadenza['iddocumento']) { |
| 160 | + $mail->addUpload($fattura_allegata); |
| 161 | + } |
| 162 | + // Invio unico per scadenze della stessa anagrafica |
| 163 | + if ($scadenza->idanagrafica != $next_scadenza['idanagrafica']) { |
| 164 | + $mail->save(); |
165 | 165 | } |
166 | 166 | } |
167 | 167 | } |
|
174 | 174 | } |
175 | 175 |
|
176 | 176 | // Se non sono stati inviati alcuni i solleciti, mostro un messaggio di avviso |
177 | | - if (!empty(array_diff($id_records, $list))) { |
| 177 | + if (!empty(array_diff($id_records, $id_records_inviati))) { |
178 | 178 | flash()->warning(tr('_NUM_ solleciti non sono stati inviati.', [ |
179 | | - '_NUM_' => sizeof(array_diff($id_records, $list)), |
| 179 | + '_NUM_' => sizeof(array_diff($id_records, $id_records_inviati)), |
180 | 180 | ])); |
181 | 181 | } |
182 | 182 |
|
|
0 commit comments