openstamanager/modules/fatture/bulk.php

325 lines
15 KiB
PHP
Raw Normal View History

2017-09-06 11:59:47 +02:00
<?php
include_once __DIR__.'/../../core.php';
Export massivo XML (#517) * Merge master (#3) * Correzione duplica fattura Corretta la funzione di duplicazione fattura che precedentemente non copiava correttamente le righe "Descrizione" * Aggiunta estensione al file allegato alle email (correzione) * Corretto inserimento metodo di pagamento nei preventivi * Migliorie minori * Aggiunti campi nome e cognome + Fix vari FE * Correzione codice intervento Il codice non veniva trovato se presentava nel formato uno dei modificatori come 'yy' perché mancava la conversione di questi modificatori nel template da cercare * Corretto codice intervento Aggiunta correzione per inserire correttamente i modificatori al codice intervento per la ricerca ed elaborazione corretta della sequenza codici * Completamento blocchi denominazione e nome-cognome * Migliorata visualizzazione XML da importare con dati sede * Aggiunta preview XML acquisto + migliorie minori * Migliorie grafiche su pulsanti * Completamento integrazione cassa previdenziale in fattura elettronica * Ulteriori correzioni su calcolo totale fattura * Risolto calcolo statistiche fatturato per cliente, issue #400 * Fix grafiche minori * Correzioni strutturali @loviuz Ho corretto alcune modifiche degli ultimi commit. Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi). * Fix #415 * Corretta stampa filtro riepilogo interventi * Fix minori * Fix minori * Aumento percentuali rate pagamenti a 2 * Bugfix formattazione numeri con decimali al salvataggio con "Invio" * Fix riferimenti in fattura per contratti, preventivi e interventi * Fix minori * Update 2_4_5.sql * Bugfix: non inseriva in XML le rate pagamento complete ma solo l'ultima * Fix minori * Update edit.php * Modifica stati fatturabili dagli ordini * Fix minori * Aggiunta eccezione per XML * Aggiunti pagamenti mancanti + Fix DatiPagamento import FE * Export XML massivo * Miglioramento codice
2019-03-07 17:16:42 +01:00
use Modules\Fatture\Fattura;
2018-09-19 16:51:37 +02:00
use Util\Zip;
2017-09-06 11:59:47 +02:00
switch (post('op')) {
case 'export-bulk':
$dir = DOCROOT.'/files/export_fatture/';
directory($dir.'tmp/');
2017-09-06 11:59:47 +02:00
Export massivo XML (#517) * Merge master (#3) * Correzione duplica fattura Corretta la funzione di duplicazione fattura che precedentemente non copiava correttamente le righe "Descrizione" * Aggiunta estensione al file allegato alle email (correzione) * Corretto inserimento metodo di pagamento nei preventivi * Migliorie minori * Aggiunti campi nome e cognome + Fix vari FE * Correzione codice intervento Il codice non veniva trovato se presentava nel formato uno dei modificatori come 'yy' perché mancava la conversione di questi modificatori nel template da cercare * Corretto codice intervento Aggiunta correzione per inserire correttamente i modificatori al codice intervento per la ricerca ed elaborazione corretta della sequenza codici * Completamento blocchi denominazione e nome-cognome * Migliorata visualizzazione XML da importare con dati sede * Aggiunta preview XML acquisto + migliorie minori * Migliorie grafiche su pulsanti * Completamento integrazione cassa previdenziale in fattura elettronica * Ulteriori correzioni su calcolo totale fattura * Risolto calcolo statistiche fatturato per cliente, issue #400 * Fix grafiche minori * Correzioni strutturali @loviuz Ho corretto alcune modifiche degli ultimi commit. Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi). * Fix #415 * Corretta stampa filtro riepilogo interventi * Fix minori * Fix minori * Aumento percentuali rate pagamenti a 2 * Bugfix formattazione numeri con decimali al salvataggio con "Invio" * Fix riferimenti in fattura per contratti, preventivi e interventi * Fix minori * Update 2_4_5.sql * Bugfix: non inseriva in XML le rate pagamento complete ma solo l'ultima * Fix minori * Update edit.php * Modifica stati fatturabili dagli ordini * Fix minori * Aggiunta eccezione per XML * Aggiunti pagamenti mancanti + Fix DatiPagamento import FE * Export XML massivo * Miglioramento codice
2019-03-07 17:16:42 +01:00
$dir = slashes($dir);
$zip = slashes($dir.'fatture_'.time().'.zip');
// Rimozione dei contenuti precedenti
$files = glob($dir.'/*.zip');
foreach ($files as $file) {
delete($file);
}
2017-09-06 11:59:47 +02:00
// Selezione delle fatture da stampare
2018-07-18 15:20:10 +02:00
$fatture = $dbo->fetchArray('SELECT co_documenti.id, numero_esterno, data, ragione_sociale, co_tipidocumento.descrizione FROM co_documenti INNER JOIN an_anagrafiche ON co_documenti.idanagrafica=an_anagrafiche.idanagrafica INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_documenti.id IN('.implode(',', $id_records).')');
2017-09-06 11:59:47 +02:00
2018-07-18 15:20:10 +02:00
if (!empty($fatture)) {
foreach ($fatture as $r) {
$numero = !empty($r['numero_esterno']) ? $r['numero_esterno'] : $r['numero'];
$numero = str_replace(['/', '\\'], '-', $numero);
2017-09-06 11:59:47 +02:00
// Gestione della stampa
$rapportino_nome = sanitizeFilename($numero.' '.$r['data'].' '.$r['ragione_sociale'].'.pdf');
$filename = slashes($dir.'tmp/'.$rapportino_nome);
2017-09-06 11:59:47 +02:00
2018-09-26 10:49:38 +02:00
$print = Prints::getModulePredefinedPrint($id_module);
2018-06-26 14:30:26 +02:00
2018-06-29 15:57:12 +02:00
Prints::render($print['id'], $r['id'], $filename);
}
2017-09-06 11:59:47 +02:00
// Creazione zip
if (extension_loaded('zip')) {
Export massivo XML (#517) * Merge master (#3) * Correzione duplica fattura Corretta la funzione di duplicazione fattura che precedentemente non copiava correttamente le righe "Descrizione" * Aggiunta estensione al file allegato alle email (correzione) * Corretto inserimento metodo di pagamento nei preventivi * Migliorie minori * Aggiunti campi nome e cognome + Fix vari FE * Correzione codice intervento Il codice non veniva trovato se presentava nel formato uno dei modificatori come 'yy' perché mancava la conversione di questi modificatori nel template da cercare * Corretto codice intervento Aggiunta correzione per inserire correttamente i modificatori al codice intervento per la ricerca ed elaborazione corretta della sequenza codici * Completamento blocchi denominazione e nome-cognome * Migliorata visualizzazione XML da importare con dati sede * Aggiunta preview XML acquisto + migliorie minori * Migliorie grafiche su pulsanti * Completamento integrazione cassa previdenziale in fattura elettronica * Ulteriori correzioni su calcolo totale fattura * Risolto calcolo statistiche fatturato per cliente, issue #400 * Fix grafiche minori * Correzioni strutturali @loviuz Ho corretto alcune modifiche degli ultimi commit. Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi). * Fix #415 * Corretta stampa filtro riepilogo interventi * Fix minori * Fix minori * Aumento percentuali rate pagamenti a 2 * Bugfix formattazione numeri con decimali al salvataggio con "Invio" * Fix riferimenti in fattura per contratti, preventivi e interventi * Fix minori * Update 2_4_5.sql * Bugfix: non inseriva in XML le rate pagamento complete ma solo l'ultima * Fix minori * Update edit.php * Modifica stati fatturabili dagli ordini * Fix minori * Aggiunta eccezione per XML * Aggiunti pagamenti mancanti + Fix DatiPagamento import FE * Export XML massivo * Miglioramento codice
2019-03-07 17:16:42 +01:00
Zip::create($dir.'tmp/', $zip);
2017-09-06 11:59:47 +02:00
// Invio al browser dello zip
Export massivo XML (#517) * Merge master (#3) * Correzione duplica fattura Corretta la funzione di duplicazione fattura che precedentemente non copiava correttamente le righe "Descrizione" * Aggiunta estensione al file allegato alle email (correzione) * Corretto inserimento metodo di pagamento nei preventivi * Migliorie minori * Aggiunti campi nome e cognome + Fix vari FE * Correzione codice intervento Il codice non veniva trovato se presentava nel formato uno dei modificatori come 'yy' perché mancava la conversione di questi modificatori nel template da cercare * Corretto codice intervento Aggiunta correzione per inserire correttamente i modificatori al codice intervento per la ricerca ed elaborazione corretta della sequenza codici * Completamento blocchi denominazione e nome-cognome * Migliorata visualizzazione XML da importare con dati sede * Aggiunta preview XML acquisto + migliorie minori * Migliorie grafiche su pulsanti * Completamento integrazione cassa previdenziale in fattura elettronica * Ulteriori correzioni su calcolo totale fattura * Risolto calcolo statistiche fatturato per cliente, issue #400 * Fix grafiche minori * Correzioni strutturali @loviuz Ho corretto alcune modifiche degli ultimi commit. Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi). * Fix #415 * Corretta stampa filtro riepilogo interventi * Fix minori * Fix minori * Aumento percentuali rate pagamenti a 2 * Bugfix formattazione numeri con decimali al salvataggio con "Invio" * Fix riferimenti in fattura per contratti, preventivi e interventi * Fix minori * Update 2_4_5.sql * Bugfix: non inseriva in XML le rate pagamento complete ma solo l'ultima * Fix minori * Update edit.php * Modifica stati fatturabili dagli ordini * Fix minori * Aggiunta eccezione per XML * Aggiunti pagamenti mancanti + Fix DatiPagamento import FE * Export XML massivo * Miglioramento codice
2019-03-07 17:16:42 +01:00
download($zip);
2017-09-06 11:59:47 +02:00
// Rimozione dei contenuti
delete($dir.'tmp/');
}
2017-09-06 12:50:44 +02:00
}
2017-09-06 11:59:47 +02:00
break;
2018-03-19 19:07:32 +01:00
Export massivo XML (#517) * Merge master (#3) * Correzione duplica fattura Corretta la funzione di duplicazione fattura che precedentemente non copiava correttamente le righe "Descrizione" * Aggiunta estensione al file allegato alle email (correzione) * Corretto inserimento metodo di pagamento nei preventivi * Migliorie minori * Aggiunti campi nome e cognome + Fix vari FE * Correzione codice intervento Il codice non veniva trovato se presentava nel formato uno dei modificatori come 'yy' perché mancava la conversione di questi modificatori nel template da cercare * Corretto codice intervento Aggiunta correzione per inserire correttamente i modificatori al codice intervento per la ricerca ed elaborazione corretta della sequenza codici * Completamento blocchi denominazione e nome-cognome * Migliorata visualizzazione XML da importare con dati sede * Aggiunta preview XML acquisto + migliorie minori * Migliorie grafiche su pulsanti * Completamento integrazione cassa previdenziale in fattura elettronica * Ulteriori correzioni su calcolo totale fattura * Risolto calcolo statistiche fatturato per cliente, issue #400 * Fix grafiche minori * Correzioni strutturali @loviuz Ho corretto alcune modifiche degli ultimi commit. Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi). * Fix #415 * Corretta stampa filtro riepilogo interventi * Fix minori * Fix minori * Aumento percentuali rate pagamenti a 2 * Bugfix formattazione numeri con decimali al salvataggio con "Invio" * Fix riferimenti in fattura per contratti, preventivi e interventi * Fix minori * Update 2_4_5.sql * Bugfix: non inseriva in XML le rate pagamento complete ma solo l'ultima * Fix minori * Update edit.php * Modifica stati fatturabili dagli ordini * Fix minori * Aggiunta eccezione per XML * Aggiunti pagamenti mancanti + Fix DatiPagamento import FE * Export XML massivo * Miglioramento codice
2019-03-07 17:16:42 +01:00
case 'delete-bulk':
2019-05-13 17:01:43 +02:00
foreach ($id_records as $id) {
$dbo->query('DELETE FROM co_documenti WHERE id = '.prepare($id).Modules::getAdditionalsQuery($id_module));
$dbo->query('DELETE FROM co_righe_documenti WHERE iddocumento='.prepare($id).Modules::getAdditionalsQuery($id_module));
$dbo->query('DELETE FROM co_scadenziario WHERE iddocumento='.prepare($id).Modules::getAdditionalsQuery($id_module));
$dbo->query('DELETE FROM mg_movimenti WHERE iddocumento='.prepare($id).Modules::getAdditionalsQuery($id_module));
}
flash()->info(tr('Fatture eliminate!'));
Export massivo XML (#517) * Merge master (#3) * Correzione duplica fattura Corretta la funzione di duplicazione fattura che precedentemente non copiava correttamente le righe "Descrizione" * Aggiunta estensione al file allegato alle email (correzione) * Corretto inserimento metodo di pagamento nei preventivi * Migliorie minori * Aggiunti campi nome e cognome + Fix vari FE * Correzione codice intervento Il codice non veniva trovato se presentava nel formato uno dei modificatori come 'yy' perché mancava la conversione di questi modificatori nel template da cercare * Corretto codice intervento Aggiunta correzione per inserire correttamente i modificatori al codice intervento per la ricerca ed elaborazione corretta della sequenza codici * Completamento blocchi denominazione e nome-cognome * Migliorata visualizzazione XML da importare con dati sede * Aggiunta preview XML acquisto + migliorie minori * Migliorie grafiche su pulsanti * Completamento integrazione cassa previdenziale in fattura elettronica * Ulteriori correzioni su calcolo totale fattura * Risolto calcolo statistiche fatturato per cliente, issue #400 * Fix grafiche minori * Correzioni strutturali @loviuz Ho corretto alcune modifiche degli ultimi commit. Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi). * Fix #415 * Corretta stampa filtro riepilogo interventi * Fix minori * Fix minori * Aumento percentuali rate pagamenti a 2 * Bugfix formattazione numeri con decimali al salvataggio con "Invio" * Fix riferimenti in fattura per contratti, preventivi e interventi * Fix minori * Update 2_4_5.sql * Bugfix: non inseriva in XML le rate pagamento complete ma solo l'ultima * Fix minori * Update edit.php * Modifica stati fatturabili dagli ordini * Fix minori * Aggiunta eccezione per XML * Aggiunti pagamenti mancanti + Fix DatiPagamento import FE * Export XML massivo * Miglioramento codice
2019-03-07 17:16:42 +01:00
break;
case 'export-xml-bulk':
$dir = DOCROOT.'/files/export_fatture/';
directory($dir.'tmp/');
$dir = slashes($dir);
$zip = slashes($dir.'fatture_'.time().'.zip');
// Rimozione dei contenuti precedenti
$files = glob($dir.'/*.zip');
foreach ($files as $file) {
delete($file);
}
// Selezione delle fatture da stampare
$fatture = $dbo->fetchArray('SELECT co_documenti.id, numero_esterno, data, ragione_sociale, co_tipidocumento.descrizione, co_tipidocumento.dir FROM co_documenti INNER JOIN an_anagrafiche ON co_documenti.idanagrafica=an_anagrafiche.idanagrafica INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_statidocumento ON co_documenti.idstatodocumento=co_statidocumento.id WHERE co_documenti.id IN('.implode(',', $id_records).')');
Export massivo XML (#517) * Merge master (#3) * Correzione duplica fattura Corretta la funzione di duplicazione fattura che precedentemente non copiava correttamente le righe "Descrizione" * Aggiunta estensione al file allegato alle email (correzione) * Corretto inserimento metodo di pagamento nei preventivi * Migliorie minori * Aggiunti campi nome e cognome + Fix vari FE * Correzione codice intervento Il codice non veniva trovato se presentava nel formato uno dei modificatori come 'yy' perché mancava la conversione di questi modificatori nel template da cercare * Corretto codice intervento Aggiunta correzione per inserire correttamente i modificatori al codice intervento per la ricerca ed elaborazione corretta della sequenza codici * Completamento blocchi denominazione e nome-cognome * Migliorata visualizzazione XML da importare con dati sede * Aggiunta preview XML acquisto + migliorie minori * Migliorie grafiche su pulsanti * Completamento integrazione cassa previdenziale in fattura elettronica * Ulteriori correzioni su calcolo totale fattura * Risolto calcolo statistiche fatturato per cliente, issue #400 * Fix grafiche minori * Correzioni strutturali @loviuz Ho corretto alcune modifiche degli ultimi commit. Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi). * Fix #415 * Corretta stampa filtro riepilogo interventi * Fix minori * Fix minori * Aumento percentuali rate pagamenti a 2 * Bugfix formattazione numeri con decimali al salvataggio con "Invio" * Fix riferimenti in fattura per contratti, preventivi e interventi * Fix minori * Update 2_4_5.sql * Bugfix: non inseriva in XML le rate pagamento complete ma solo l'ultima * Fix minori * Update edit.php * Modifica stati fatturabili dagli ordini * Fix minori * Aggiunta eccezione per XML * Aggiunti pagamenti mancanti + Fix DatiPagamento import FE * Export XML massivo * Miglioramento codice
2019-03-07 17:16:42 +01:00
$failed = [];
if (!empty($fatture)) {
foreach ($fatture as $r) {
$fattura = Fattura::find($r['id']);
$include = true;
try {
if ($r['dir'] == 'entrata') {
$fe = new \Plugins\ExportFE\FatturaElettronica($fattura->id);
$include = $fe->isGenerated();
} else {
$include = $fattura->isFE();
}
Export massivo XML (#517) * Merge master (#3) * Correzione duplica fattura Corretta la funzione di duplicazione fattura che precedentemente non copiava correttamente le righe "Descrizione" * Aggiunta estensione al file allegato alle email (correzione) * Corretto inserimento metodo di pagamento nei preventivi * Migliorie minori * Aggiunti campi nome e cognome + Fix vari FE * Correzione codice intervento Il codice non veniva trovato se presentava nel formato uno dei modificatori come 'yy' perché mancava la conversione di questi modificatori nel template da cercare * Corretto codice intervento Aggiunta correzione per inserire correttamente i modificatori al codice intervento per la ricerca ed elaborazione corretta della sequenza codici * Completamento blocchi denominazione e nome-cognome * Migliorata visualizzazione XML da importare con dati sede * Aggiunta preview XML acquisto + migliorie minori * Migliorie grafiche su pulsanti * Completamento integrazione cassa previdenziale in fattura elettronica * Ulteriori correzioni su calcolo totale fattura * Risolto calcolo statistiche fatturato per cliente, issue #400 * Fix grafiche minori * Correzioni strutturali @loviuz Ho corretto alcune modifiche degli ultimi commit. Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi). * Fix #415 * Corretta stampa filtro riepilogo interventi * Fix minori * Fix minori * Aumento percentuali rate pagamenti a 2 * Bugfix formattazione numeri con decimali al salvataggio con "Invio" * Fix riferimenti in fattura per contratti, preventivi e interventi * Fix minori * Update 2_4_5.sql * Bugfix: non inseriva in XML le rate pagamento complete ma solo l'ultima * Fix minori * Update edit.php * Modifica stati fatturabili dagli ordini * Fix minori * Aggiunta eccezione per XML * Aggiunti pagamenti mancanti + Fix DatiPagamento import FE * Export XML massivo * Miglioramento codice
2019-03-07 17:16:42 +01:00
} catch (UnexpectedValueException $e) {
$include = false;
2018-06-26 14:30:26 +02:00
}
Export massivo XML (#517) * Merge master (#3) * Correzione duplica fattura Corretta la funzione di duplicazione fattura che precedentemente non copiava correttamente le righe "Descrizione" * Aggiunta estensione al file allegato alle email (correzione) * Corretto inserimento metodo di pagamento nei preventivi * Migliorie minori * Aggiunti campi nome e cognome + Fix vari FE * Correzione codice intervento Il codice non veniva trovato se presentava nel formato uno dei modificatori come 'yy' perché mancava la conversione di questi modificatori nel template da cercare * Corretto codice intervento Aggiunta correzione per inserire correttamente i modificatori al codice intervento per la ricerca ed elaborazione corretta della sequenza codici * Completamento blocchi denominazione e nome-cognome * Migliorata visualizzazione XML da importare con dati sede * Aggiunta preview XML acquisto + migliorie minori * Migliorie grafiche su pulsanti * Completamento integrazione cassa previdenziale in fattura elettronica * Ulteriori correzioni su calcolo totale fattura * Risolto calcolo statistiche fatturato per cliente, issue #400 * Fix grafiche minori * Correzioni strutturali @loviuz Ho corretto alcune modifiche degli ultimi commit. Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi). * Fix #415 * Corretta stampa filtro riepilogo interventi * Fix minori * Fix minori * Aumento percentuali rate pagamenti a 2 * Bugfix formattazione numeri con decimali al salvataggio con "Invio" * Fix riferimenti in fattura per contratti, preventivi e interventi * Fix minori * Update 2_4_5.sql * Bugfix: non inseriva in XML le rate pagamento complete ma solo l'ultima * Fix minori * Update edit.php * Modifica stati fatturabili dagli ordini * Fix minori * Aggiunta eccezione per XML * Aggiunti pagamenti mancanti + Fix DatiPagamento import FE * Export XML massivo * Miglioramento codice
2019-03-07 17:16:42 +01:00
if (!$include) {
$failed[] = $fattura->numero_esterno;
} else {
if ($r['dir'] == 'entrata') {
$src = $fe->getFilename();
$dst = $src;
} else {
2019-04-04 17:30:58 +02:00
$src = basename($fattura->uploads()->where('name', 'Fattura Elettronica')->first()->filepath);
$dst = basename($fattura->uploads()->where('name', 'Fattura Elettronica')->first()->original);
}
Export massivo XML (#517) * Merge master (#3) * Correzione duplica fattura Corretta la funzione di duplicazione fattura che precedentemente non copiava correttamente le righe "Descrizione" * Aggiunta estensione al file allegato alle email (correzione) * Corretto inserimento metodo di pagamento nei preventivi * Migliorie minori * Aggiunti campi nome e cognome + Fix vari FE * Correzione codice intervento Il codice non veniva trovato se presentava nel formato uno dei modificatori come 'yy' perché mancava la conversione di questi modificatori nel template da cercare * Corretto codice intervento Aggiunta correzione per inserire correttamente i modificatori al codice intervento per la ricerca ed elaborazione corretta della sequenza codici * Completamento blocchi denominazione e nome-cognome * Migliorata visualizzazione XML da importare con dati sede * Aggiunta preview XML acquisto + migliorie minori * Migliorie grafiche su pulsanti * Completamento integrazione cassa previdenziale in fattura elettronica * Ulteriori correzioni su calcolo totale fattura * Risolto calcolo statistiche fatturato per cliente, issue #400 * Fix grafiche minori * Correzioni strutturali @loviuz Ho corretto alcune modifiche degli ultimi commit. Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi). * Fix #415 * Corretta stampa filtro riepilogo interventi * Fix minori * Fix minori * Aumento percentuali rate pagamenti a 2 * Bugfix formattazione numeri con decimali al salvataggio con "Invio" * Fix riferimenti in fattura per contratti, preventivi e interventi * Fix minori * Update 2_4_5.sql * Bugfix: non inseriva in XML le rate pagamento complete ma solo l'ultima * Fix minori * Update edit.php * Modifica stati fatturabili dagli ordini * Fix minori * Aggiunta eccezione per XML * Aggiunti pagamenti mancanti + Fix DatiPagamento import FE * Export XML massivo * Miglioramento codice
2019-03-07 17:16:42 +01:00
$file = slashes($module->upload_directory.'/'.$src);
$dest = slashes($dir.'/tmp/'.$dst);
Export massivo XML (#517) * Merge master (#3) * Correzione duplica fattura Corretta la funzione di duplicazione fattura che precedentemente non copiava correttamente le righe "Descrizione" * Aggiunta estensione al file allegato alle email (correzione) * Corretto inserimento metodo di pagamento nei preventivi * Migliorie minori * Aggiunti campi nome e cognome + Fix vari FE * Correzione codice intervento Il codice non veniva trovato se presentava nel formato uno dei modificatori come 'yy' perché mancava la conversione di questi modificatori nel template da cercare * Corretto codice intervento Aggiunta correzione per inserire correttamente i modificatori al codice intervento per la ricerca ed elaborazione corretta della sequenza codici * Completamento blocchi denominazione e nome-cognome * Migliorata visualizzazione XML da importare con dati sede * Aggiunta preview XML acquisto + migliorie minori * Migliorie grafiche su pulsanti * Completamento integrazione cassa previdenziale in fattura elettronica * Ulteriori correzioni su calcolo totale fattura * Risolto calcolo statistiche fatturato per cliente, issue #400 * Fix grafiche minori * Correzioni strutturali @loviuz Ho corretto alcune modifiche degli ultimi commit. Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi). * Fix #415 * Corretta stampa filtro riepilogo interventi * Fix minori * Fix minori * Aumento percentuali rate pagamenti a 2 * Bugfix formattazione numeri con decimali al salvataggio con "Invio" * Fix riferimenti in fattura per contratti, preventivi e interventi * Fix minori * Update 2_4_5.sql * Bugfix: non inseriva in XML le rate pagamento complete ma solo l'ultima * Fix minori * Update edit.php * Modifica stati fatturabili dagli ordini * Fix minori * Aggiunta eccezione per XML * Aggiunti pagamenti mancanti + Fix DatiPagamento import FE * Export XML massivo * Miglioramento codice
2019-03-07 17:16:42 +01:00
$result = copy($file, $dest);
if ($result) {
operationLog('export-xml-bulk', ['id_record' => $r['id']]);
} else {
$failed[] = $fattura->numero_esterno;
}
}
}
// Creazione zip
if (extension_loaded('zip')) {
Zip::create($dir.'tmp/', $zip);
// Invio al browser il file zip
download($zip);
// Rimozione dei contenuti
delete($dir.'tmp/');
2018-06-26 14:30:26 +02:00
}
Export massivo XML (#517) * Merge master (#3) * Correzione duplica fattura Corretta la funzione di duplicazione fattura che precedentemente non copiava correttamente le righe "Descrizione" * Aggiunta estensione al file allegato alle email (correzione) * Corretto inserimento metodo di pagamento nei preventivi * Migliorie minori * Aggiunti campi nome e cognome + Fix vari FE * Correzione codice intervento Il codice non veniva trovato se presentava nel formato uno dei modificatori come 'yy' perché mancava la conversione di questi modificatori nel template da cercare * Corretto codice intervento Aggiunta correzione per inserire correttamente i modificatori al codice intervento per la ricerca ed elaborazione corretta della sequenza codici * Completamento blocchi denominazione e nome-cognome * Migliorata visualizzazione XML da importare con dati sede * Aggiunta preview XML acquisto + migliorie minori * Migliorie grafiche su pulsanti * Completamento integrazione cassa previdenziale in fattura elettronica * Ulteriori correzioni su calcolo totale fattura * Risolto calcolo statistiche fatturato per cliente, issue #400 * Fix grafiche minori * Correzioni strutturali @loviuz Ho corretto alcune modifiche degli ultimi commit. Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi). * Fix #415 * Corretta stampa filtro riepilogo interventi * Fix minori * Fix minori * Aumento percentuali rate pagamenti a 2 * Bugfix formattazione numeri con decimali al salvataggio con "Invio" * Fix riferimenti in fattura per contratti, preventivi e interventi * Fix minori * Update 2_4_5.sql * Bugfix: non inseriva in XML le rate pagamento complete ma solo l'ultima * Fix minori * Update edit.php * Modifica stati fatturabili dagli ordini * Fix minori * Aggiunta eccezione per XML * Aggiunti pagamenti mancanti + Fix DatiPagamento import FE * Export XML massivo * Miglioramento codice
2019-03-07 17:16:42 +01:00
if (!empty($failed)) {
flash()->warning(tr('Le fatture elettroniche _LIST_ non sono state incluse poichè non ancora generate', [
'_LIST_' => implode(', ', $failed),
]));
}
}
2018-03-22 15:40:20 +01:00
break;
case 'registra-contabile':
2019-04-12 09:20:23 +02:00
//Generazione della descrizione del movimento
$rs_fatture = $dbo->fetchArray('SELECT *, co_documenti.id AS id, co_documenti.data AS data_doc FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_documenti.id IN('.implode(',', $id_records).')');
2019-04-12 09:20:23 +02:00
//calcolo della descrizione
$descrizione_movimento = 'Pag. fatture num. ';
for ($i = 0; $i < sizeof($rs_fatture); ++$i) {
if ($rs_fatture[$i]['numero_esterno'] != '') {
$descrizione_movimento .= $rs_fatture[$i]['numero_esterno'].' ';
} else {
$descrizione_movimento .= $rs_fatture[$i]['numero'].' ';
2019-04-12 09:20:23 +02:00
}
}
$idmastrino = get_new_idmastrino();
2019-04-15 09:57:38 +02:00
$importo_conto_aziendale = 0;
for ($i = 0; $i < sizeof($rs_fatture); ++$i) {
2019-04-12 09:20:23 +02:00
//Inserimento righe cliente
if ($rs_fatture[$i]['dir'] == 'entrata') {
$dir = 'entrata';
} else {
$dir = 'uscita';
2019-04-12 09:20:23 +02:00
}
$field = 'idconto_'.($dir == 'entrata' ? 'vendite' : 'acquisti');
$idconto_aziendale = $dbo->fetchArray('SELECT '.$field.' FROM co_pagamenti WHERE id = (SELECT idpagamento FROM co_documenti WHERE id='.prepare($rs_fatture[$i]['id']).') GROUP BY descrizione')[0][$field];
2019-04-12 09:20:23 +02:00
// Lettura conto di default
$idconto_aziendale = !empty($idconto_aziendale) ? $idconto_aziendale : setting('Conto aziendale predefinito');
$query = 'SELECT SUM(ABS(da_pagare-pagato)) AS rata FROM co_scadenziario WHERE iddocumento='.prepare($rs_fatture[$i]['id']).' GROUP BY iddocumento';
2019-04-12 09:20:23 +02:00
$rs = $dbo->fetchArray($query);
$totale_pagato = $rs[0]['rata'];
2019-04-15 09:57:38 +02:00
$importo_conto_aziendale += $totale_pagato;
}
//Inserimento riga unica per conto aziendale
if ($dir == 'entrata') {
$dbo->query('INSERT INTO co_movimenti(idmastrino, data, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', NOW(), '.prepare($descrizione_movimento).', '.prepare($idconto_aziendale).', '.prepare($importo_conto_aziendale).', 1)');
} else {
$dbo->query('INSERT INTO co_movimenti(idmastrino, data, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', NOW(), '.prepare($descrizione_movimento).', '.prepare($idconto_aziendale).', '.prepare(-$importo_conto_aziendale).', 1)');
}
for ($i = 0; $i < sizeof($rs_fatture); ++$i) {
//Inserimento righe cliente
if ($rs_fatture[$i]['dir'] == 'entrata') {
$dir = 'entrata';
} else {
$dir = 'uscita';
}
$query = 'SELECT SUM(ABS(da_pagare-pagato)) AS rata FROM co_scadenziario WHERE iddocumento='.prepare($rs_fatture[$i]['id']).' GROUP BY iddocumento';
$rs = $dbo->fetchArray($query);
$totale_pagato = $rs[0]['rata'];
2019-04-12 09:20:23 +02:00
// conto crediti clienti
if ($dir == 'entrata') {
// Se è la prima nota di una fattura leggo il conto del cliente
if ($rs_fatture[$i]['id'] != '') {
$query = 'SELECT idconto_cliente FROM an_anagrafiche INNER JOIN co_documenti ON an_anagrafiche.idanagrafica=co_documenti.idanagrafica WHERE co_documenti.id='.prepare($rs_fatture[$i]['id']);
$rs = $dbo->fetchArray($query);
$idconto_controparte = $rs[0]['idconto_cliente'];
} else {
$query = "SELECT id FROM co_pianodeiconti3 WHERE descrizione='Riepilogativo clienti'";
$rs = $dbo->fetchArray($query);
$idconto_controparte = $rs[0]['id'];
}
}
// conto debiti fornitori
else {
// Se è la prima nota di una fattura leggo il conto del fornitore
if ($rs_fatture[$i]['id'] != '') {
$query = 'SELECT idconto_fornitore FROM an_anagrafiche INNER JOIN co_documenti ON an_anagrafiche.idanagrafica=co_documenti.idanagrafica WHERE co_documenti.id='.prepare($rs_fatture[$i]['id']);
$rs = $dbo->fetchArray($query);
$idconto_controparte = $rs[0]['idconto_fornitore'];
} else {
$query = "SELECT id FROM co_pianodeiconti3 WHERE descrizione='Riepilogativo fornitori'";
$rs = $dbo->fetchArray($query);
$idconto_controparte = $rs[0]['id'];
}
}
// Lettura causale movimento (documento e ragione sociale)
2019-04-15 09:57:38 +02:00
$importo_conto_controparte = $totale_pagato;
2019-04-12 09:20:23 +02:00
if ($dir == 'entrata') {
$dbo->query('INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', NOW(), '.prepare($rs_fatture[$i]['data_doc']).', '.prepare($rs_fatture[$i]['id']).', '.prepare($rs_fatture[$i]['idanagrafica']).', '.prepare($descrizione_movimento).', '.prepare($idconto_controparte).', '.prepare(-$importo_conto_controparte).', 1)');
2019-04-12 09:20:23 +02:00
} else {
$dbo->query('INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', NOW(), '.prepare($rs_fatture[$i]['data_doc']).', '.prepare($rs_fatture[$i]['id']).', '.prepare($rs_fatture[$i]['idanagrafica']).', '.prepare($descrizione_movimento).', '.prepare($idconto_controparte).', '.prepare($importo_conto_controparte).', 1)');
2019-04-12 09:20:23 +02:00
}
aggiorna_scadenziario($rs_fatture[$i]['id'], abs($totale_pagato), date('d/m/Y'));
// Verifico se la fattura è stata pagata tutta, così imposto lo stato a "Pagato"
$query = 'SELECT SUM(pagato) AS tot_pagato, SUM(da_pagare) AS tot_da_pagare FROM co_scadenziario GROUP BY iddocumento HAVING iddocumento='.prepare($rs_fatture[$i]['id']);
$rs = $dbo->fetchArray($query);
// Aggiorno lo stato della fattura
if (abs($rs[0]['tot_pagato']) == abs($rs[0]['tot_da_pagare'])) {
$dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Pagato') WHERE id=".prepare($rs_fatture[$i]['id']));
} elseif (abs($rs[0]['tot_pagato']) != abs($rs[0]['tot_da_pagare']) && abs($rs[0]['tot_pagato']) != '0') {
$dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Parzialmente pagato') WHERE id=".prepare($rs_fatture[$i]['id']));
} else {
$dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Emessa') WHERE id=".prepare($rs_fatture[$i]['id']));
}
// Aggiorno lo stato dei preventivi collegati alla fattura se ce ne sono
$query2 = 'SELECT idpreventivo FROM co_righe_documenti WHERE iddocumento='.prepare($rs_fatture[$i]['id']).' AND NOT idpreventivo=0 AND idpreventivo IS NOT NULL';
$rs2 = $dbo->fetchArray($query2);
for ($j = 0; $j < sizeof($rs2); ++$j) {
$dbo->query("UPDATE co_preventivi SET idstato=(SELECT id FROM co_statipreventivi WHERE descrizione='Pagato') WHERE id=".prepare($rs2[$j]['idpreventivo']));
}
// Aggiorno lo stato dei contratti collegati alla fattura se ce ne sono
$query2 = 'SELECT idcontratto FROM co_righe_documenti WHERE iddocumento='.prepare($rs_fatture[$i]['id']).' AND NOT idcontratto=0 AND idcontratto IS NOT NULL';
$rs2 = $dbo->fetchArray($query2);
for ($j = 0; $j < sizeof($rs2); ++$j) {
$dbo->query("UPDATE co_contratti SET idstato=(SELECT id FROM co_staticontratti WHERE descrizione='Pagato') WHERE id=".prepare($rs2[$j]['idcontratto']));
}
// Aggiorno lo stato degli interventi collegati alla fattura se ce ne sono
$query2 = 'SELECT idintervento FROM co_righe_documenti WHERE iddocumento='.prepare($rs_fatture[$i]['id']).' AND idintervento IS NOT NULL';
$rs2 = $dbo->fetchArray($query2);
for ($j = 0; $j < sizeof($rs2); ++$j) {
$dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Fatturato') WHERE id_preventivo=".prepare($rs2[$j]['idpreventivo']));
}
}
$database->commitTransaction();
header('location:'.$rootdir.'/editor.php?id_module='.Modules::get('Prima nota')['id'].'&id_record='.$idmastrino);
exit;
2019-04-12 01:11:32 +02:00
break;
2017-09-06 11:59:47 +02:00
}
2019-05-13 17:01:43 +02:00
if (App::debug()) {
$operations = [
'delete-bulk' => tr('Elimina selezionati'),
];
}
2018-03-19 19:07:32 +01:00
2019-05-13 17:01:43 +02:00
$operations['registra-contabile'] = [
'text' => tr('Registra contabile pagamento'),
'data' => [
2019-04-12 09:20:23 +02:00
'msg' => tr('Vuoi aggiungere un movimento contabile per le fatture selezionate? (le fatture dovranno essere in stato emessa altrimenti non verranno elaborate)'),
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => true,
],
];
Export massivo XML (#517) * Merge master (#3) * Correzione duplica fattura Corretta la funzione di duplicazione fattura che precedentemente non copiava correttamente le righe "Descrizione" * Aggiunta estensione al file allegato alle email (correzione) * Corretto inserimento metodo di pagamento nei preventivi * Migliorie minori * Aggiunti campi nome e cognome + Fix vari FE * Correzione codice intervento Il codice non veniva trovato se presentava nel formato uno dei modificatori come 'yy' perché mancava la conversione di questi modificatori nel template da cercare * Corretto codice intervento Aggiunta correzione per inserire correttamente i modificatori al codice intervento per la ricerca ed elaborazione corretta della sequenza codici * Completamento blocchi denominazione e nome-cognome * Migliorata visualizzazione XML da importare con dati sede * Aggiunta preview XML acquisto + migliorie minori * Migliorie grafiche su pulsanti * Completamento integrazione cassa previdenziale in fattura elettronica * Ulteriori correzioni su calcolo totale fattura * Risolto calcolo statistiche fatturato per cliente, issue #400 * Fix grafiche minori * Correzioni strutturali @loviuz Ho corretto alcune modifiche degli ultimi commit. Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi). * Fix #415 * Corretta stampa filtro riepilogo interventi * Fix minori * Fix minori * Aumento percentuali rate pagamenti a 2 * Bugfix formattazione numeri con decimali al salvataggio con "Invio" * Fix riferimenti in fattura per contratti, preventivi e interventi * Fix minori * Update 2_4_5.sql * Bugfix: non inseriva in XML le rate pagamento complete ma solo l'ultima * Fix minori * Update edit.php * Modifica stati fatturabili dagli ordini * Fix minori * Aggiunta eccezione per XML * Aggiunti pagamenti mancanti + Fix DatiPagamento import FE * Export XML massivo * Miglioramento codice
2019-03-07 17:16:42 +01:00
if ($module->name == 'Fatture di vendita') {
2019-05-13 17:01:43 +02:00
$operations['export-bulk'] = [
2017-09-06 11:59:47 +02:00
'text' => tr('Esporta stampe'),
'data' => [
'msg' => tr('Vuoi davvero esportare tutte le stampe in un archivio?'),
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => true,
2017-09-06 11:59:47 +02:00
],
Export massivo XML (#517) * Merge master (#3) * Correzione duplica fattura Corretta la funzione di duplicazione fattura che precedentemente non copiava correttamente le righe "Descrizione" * Aggiunta estensione al file allegato alle email (correzione) * Corretto inserimento metodo di pagamento nei preventivi * Migliorie minori * Aggiunti campi nome e cognome + Fix vari FE * Correzione codice intervento Il codice non veniva trovato se presentava nel formato uno dei modificatori come 'yy' perché mancava la conversione di questi modificatori nel template da cercare * Corretto codice intervento Aggiunta correzione per inserire correttamente i modificatori al codice intervento per la ricerca ed elaborazione corretta della sequenza codici * Completamento blocchi denominazione e nome-cognome * Migliorata visualizzazione XML da importare con dati sede * Aggiunta preview XML acquisto + migliorie minori * Migliorie grafiche su pulsanti * Completamento integrazione cassa previdenziale in fattura elettronica * Ulteriori correzioni su calcolo totale fattura * Risolto calcolo statistiche fatturato per cliente, issue #400 * Fix grafiche minori * Correzioni strutturali @loviuz Ho corretto alcune modifiche degli ultimi commit. Il metodo calcola è esclusivamente interno e deve essere utilizzato come tale (per le modifiche di comportamento ci sono gli attributi appositi). * Fix #415 * Corretta stampa filtro riepilogo interventi * Fix minori * Fix minori * Aumento percentuali rate pagamenti a 2 * Bugfix formattazione numeri con decimali al salvataggio con "Invio" * Fix riferimenti in fattura per contratti, preventivi e interventi * Fix minori * Update 2_4_5.sql * Bugfix: non inseriva in XML le rate pagamento complete ma solo l'ultima * Fix minori * Update edit.php * Modifica stati fatturabili dagli ordini * Fix minori * Aggiunta eccezione per XML * Aggiunti pagamenti mancanti + Fix DatiPagamento import FE * Export XML massivo * Miglioramento codice
2019-03-07 17:16:42 +01:00
];
}
2019-05-13 17:01:43 +02:00
$operations['export-xml-bulk'] = [
'text' => tr('Esporta XML'),
'data' => [
'msg' => tr('Vuoi davvero esportare tutte le fatture elettroniche in un archivio?'),
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => true,
],
];
2019-05-13 17:01:43 +02:00
return $operations;