|
41 | 41 |
|
42 | 42 | break; |
43 | 43 |
|
| 44 | + case 'get_local_files': |
| 45 | + // Ottiene solo i file locali per l'importazione in sequenza |
| 46 | + $list = Interaction::getFileList(); |
| 47 | + |
| 48 | + echo json_encode($list); |
| 49 | + |
| 50 | + break; |
| 51 | + |
44 | 52 | case 'save': |
45 | 53 | $temp_name = $_FILES['blob']['tmp_name']; |
46 | 54 | $name = $_FILES['blob']['name']; |
|
189 | 197 | $process_result = Interaction::processInvoice($filename); |
190 | 198 | if ($process_result != '') { |
191 | 199 | flash()->error($process_result); |
192 | | - redirect(base_path().'/controller.php?id_module='.$id_module); |
| 200 | + |
| 201 | + // Se siamo in modalità sequenza, continua con il prossimo file |
| 202 | + if (get('sequence') == 1) { |
| 203 | + // Usa la lista appropriata in base alle API |
| 204 | + if (Interaction::isEnabled()) { |
| 205 | + $files = Interaction::getInvoiceList(); |
| 206 | + } else { |
| 207 | + $files = Interaction::getFileList(); |
| 208 | + } |
| 209 | + $next_record = $id_record + 1; |
| 210 | + $next_file = $files[$next_record - 1] ?? null; |
| 211 | + |
| 212 | + if (!empty($next_file)) { |
| 213 | + redirect(base_path().'/editor.php?id_module='.$id_module.'&id_plugin='.$id_plugin.'&id_record='.$next_record.'&sequence=1'); |
| 214 | + } else { |
| 215 | + flash()->info(tr('Tutte le fatture salvate sono state importate!')); |
| 216 | + redirect(base_path().'/controller.php?id_module='.$id_module); |
| 217 | + } |
| 218 | + } else { |
| 219 | + redirect(base_path().'/controller.php?id_module='.$id_module); |
| 220 | + } |
193 | 221 |
|
194 | 222 | return; |
195 | 223 | } |
196 | 224 | } |
197 | 225 |
|
198 | | - $files = Interaction::getFileList(); |
199 | | - $file = $files[$id_record - 1]; |
| 226 | + // Usa la lista appropriata in base alle API |
| 227 | + if (Interaction::isEnabled()) { |
| 228 | + $files = Interaction::getInvoiceList(); |
| 229 | + } else { |
| 230 | + $files = Interaction::getFileList(); |
| 231 | + } |
| 232 | + $file = $files[$id_record - 1] ?? null; |
| 233 | + |
| 234 | + |
200 | 235 |
|
201 | 236 | if (get('sequence') == null) { |
202 | 237 | redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_fattura); |
203 | 238 | } elseif (!empty($file)) { |
204 | | - redirect(base_path().'/editor.php?id_module='.$id_module.'&id_plugin='.$id_plugin.'&id_record='.$id_record.'&sequence=1'); |
205 | | - flash()->info(tr('La fattura numero _NUM_ del _DATA_ (_ANAGRAFICA_) è stata importata correttamente', [ |
206 | | - '_NUM_' => $fattura->numero, |
207 | | - '_DATA_' => dateFormat($fattura->data), |
208 | | - '_ANAGRAFICA_' => $fattura->anagrafica->ragione_sociale, |
209 | | - ])); |
| 239 | + // Calcola il prossimo record per l'importazione in sequenza |
| 240 | + $next_record = $id_record + 1; |
| 241 | + $next_file = $files[$next_record - 1] ?? null; |
| 242 | + |
| 243 | + if (!empty($next_file)) { |
| 244 | + redirect(base_path().'/editor.php?id_module='.$id_module.'&id_plugin='.$id_plugin.'&id_record='.$next_record.'&sequence=1'); |
| 245 | + flash()->info(tr('La fattura numero _NUM_ del _DATA_ (_ANAGRAFICA_) è stata importata correttamente', [ |
| 246 | + '_NUM_' => $fattura->numero, |
| 247 | + '_DATA_' => dateFormat($fattura->data), |
| 248 | + '_ANAGRAFICA_' => $fattura->anagrafica->ragione_sociale, |
| 249 | + ])); |
| 250 | + } else { |
| 251 | + flash()->info(tr('Tutte le fatture salvate sono state importate!')); |
| 252 | + redirect(base_path().'/controller.php?id_module='.$id_module); |
| 253 | + } |
210 | 254 | } else { |
211 | 255 | flash()->info(tr('Tutte le fatture salvate sono state importate!')); |
212 | 256 | redirect(base_path().'/controller.php?id_module='.$id_module); |
|
441 | 485 |
|
442 | 486 | // Se nella fattura elettronica è indicato un DDT cerco quel documento specifico |
443 | 487 | $ddt = $dati_ddt[$numero_linea]; |
444 | | - $query = "SELECT |
445 | | - `dt_righe_ddt`.`id`, |
446 | | - `dt_righe_ddt`.`idddt` AS id_documento, |
447 | | - `dt_righe_ddt`.`is_descrizione`, |
448 | | - `dt_righe_ddt`.`idarticolo`, |
| 488 | + $query = "SELECT |
| 489 | + `dt_righe_ddt`.`id`, |
| 490 | + `dt_righe_ddt`.`idddt` AS id_documento, |
| 491 | + `dt_righe_ddt`.`is_descrizione`, |
| 492 | + `dt_righe_ddt`.`idarticolo`, |
449 | 493 | `dt_righe_ddt`.`is_sconto`, 'ddt' AS ref, |
450 | 494 | CONCAT('DDT num. ', IF(`numero_esterno` != '', `numero_esterno`, `numero`), ' del ', DATE_FORMAT(`data`, '%d/%m/%Y'), ' [', `dt_statiddt_lang`.`title`, ']') AS opzione |
451 | | - FROM |
| 495 | + FROM |
452 | 496 | `dt_righe_ddt` |
453 | 497 | INNER JOIN `dt_ddt` ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt` |
454 | 498 | INNER JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt` |
|
482 | 526 | // cerco per quell'ordine |
483 | 527 | if (empty($collegamento)) { |
484 | 528 | $ordine = $dati_ordini[$numero_linea]; |
485 | | - $query = "SELECT |
486 | | - `or_righe_ordini`.`id`, |
487 | | - `or_righe_ordini`.`idordine` AS id_documento, |
488 | | - `or_righe_ordini`.`is_descrizione`, |
489 | | - `or_righe_ordini`.`idarticolo`, |
490 | | - `or_righe_ordini`.`is_sconto`, |
| 529 | + $query = "SELECT |
| 530 | + `or_righe_ordini`.`id`, |
| 531 | + `or_righe_ordini`.`idordine` AS id_documento, |
| 532 | + `or_righe_ordini`.`is_descrizione`, |
| 533 | + `or_righe_ordini`.`idarticolo`, |
| 534 | + `or_righe_ordini`.`is_sconto`, |
491 | 535 | 'ordine' AS ref, |
492 | 536 | CONCAT('Ordine num. ', IF(`numero_esterno` != '', `numero_esterno`, `numero`), ' del ', DATE_FORMAT(`data`, '%d/%m/%Y'), ' [', `or_statiordine_lang`.`title` , ']') AS opzione |
493 | 537 | FROM `or_righe_ordini` |
|
527 | 571 | // Se non ci sono Ordini o DDT cerco per contenuto |
528 | 572 | if (empty($collegamento)) { |
529 | 573 | $match_documento_da_fe = false; |
530 | | - $query = "SELECT |
531 | | - `dt_righe_ddt`.`id`, |
532 | | - `dt_righe_ddt`.`idddt` AS id_documento, |
533 | | - `dt_righe_ddt`.`is_descrizione`, |
534 | | - `dt_righe_ddt`.`idarticolo`, |
535 | | - `dt_righe_ddt`.`is_sconto`, |
| 574 | + $query = "SELECT |
| 575 | + `dt_righe_ddt`.`id`, |
| 576 | + `dt_righe_ddt`.`idddt` AS id_documento, |
| 577 | + `dt_righe_ddt`.`is_descrizione`, |
| 578 | + `dt_righe_ddt`.`idarticolo`, |
| 579 | + `dt_righe_ddt`.`is_sconto`, |
536 | 580 | 'ddt' AS ref, |
537 | 581 | CONCAT('DDT num. ', IF(`numero_esterno` != '', `numero_esterno`, `numero`), ' del ', DATE_FORMAT(`data`, '%d/%m/%Y'), ' [', `dt_statiddt_lang`.`title`, ']') AS opzione |
538 | | - FROM |
| 582 | + FROM |
539 | 583 | `dt_righe_ddt` |
540 | 584 | INNER JOIN `dt_ddt` ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt` |
541 | 585 | INNER JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt` |
542 | 586 | LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt_lang`.`id_record` = `dt_statiddt`.`id` AND `dt_statiddt_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).') |
543 | 587 | INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id` |
544 | | - WHERE |
545 | | - `dt_ddt`.`idanagrafica` = '.prepare($anagrafica->id)." AND |
546 | | - |where_ddt| AND |
547 | | - `dt_righe_ddt`.`qta` > `dt_righe_ddt`.`qta_evasa` AND |
| 588 | + WHERE |
| 589 | + `dt_ddt`.`idanagrafica` = '.prepare($anagrafica->id)." AND |
| 590 | + |where_ddt| AND |
| 591 | + `dt_righe_ddt`.`qta` > `dt_righe_ddt`.`qta_evasa` AND |
548 | 592 | `dt_statiddt_lang`.`title` != 'Fatturato' AND |
549 | 593 | `dt_tipiddt`.`dir` = 'uscita' |
550 | | - UNION |
551 | | - SELECT |
| 594 | + UNION |
| 595 | + SELECT |
552 | 596 | `or_righe_ordini`.`id`, |
553 | 597 | `or_righe_ordini`.`idordine` AS id_documento, |
554 | | - `or_righe_ordini`.`is_descrizione`, |
555 | | - `or_righe_ordini`.`idarticolo`, |
556 | | - `or_righe_ordini`.`is_sconto`, |
| 598 | + `or_righe_ordini`.`is_descrizione`, |
| 599 | + `or_righe_ordini`.`idarticolo`, |
| 600 | + `or_righe_ordini`.`is_sconto`, |
557 | 601 | 'ordine' AS ref, |
558 | 602 | CONCAT('Ordine num. ', IF(`numero_esterno` != '', `numero_esterno`, `numero`), ' del ', DATE_FORMAT(`data`, '%d/%m/%Y'), ' [', (SELECT `descrizione` FROM `or_statiordine` WHERE `id` = `idstatoordine`) , ']') AS opzione |
559 | | - FROM |
| 603 | + FROM |
560 | 604 | `or_righe_ordini` |
561 | 605 | INNER JOIN `or_ordini` ON `or_ordini`.`id` = `or_righe_ordini`.`idordine` |
562 | 606 | INNER JOIN `or_statiordine` ON `or_statiordine`.`id` = `or_ordini`.`idstatoordine` |
563 | 607 | LEFT JOIN `or_statiordine_lang` ON (`or_statiordine_lang`.`id_record` = `or_statiordine`.`id` AND `or_statiordine_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).') |
564 | 608 | INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine` = `or_tipiordine`.`id` |
565 | | - WHERE |
566 | | - `or_ordini`.`idanagrafica` = '.prepare($anagrafica->id)." AND |
567 | | - |where_ordini| AND |
568 | | - `or_righe_ordini`.`qta` > `or_righe_ordini`.`qta_evasa` AND |
| 609 | + WHERE |
| 610 | + `or_ordini`.`idanagrafica` = '.prepare($anagrafica->id)." AND |
| 611 | + |where_ordini| AND |
| 612 | + `or_righe_ordini`.`qta` > `or_righe_ordini`.`qta_evasa` AND |
569 | 613 | `or_statiordine_lang`.`title` != 'Fatturato' AND |
570 | 614 | `or_tipiordine`.`dir` ='uscita'"; |
571 | 615 |
|
|
0 commit comments