diff --git a/ajax_dataload.php b/ajax_dataload.php index 895df331d..d9026951b 100755 --- a/ajax_dataload.php +++ b/ajax_dataload.php @@ -17,7 +17,7 @@ $total = Util\Query::readQuery($structure); // Ricerca $search = []; for ($i = 0; $i < count($columns); ++$i) { - if (!empty($columns[$i]['search']['value']) || $columns[$i]['search']['value']=='0') { + if (!empty($columns[$i]['search']['value']) || $columns[$i]['search']['value'] == '0') { $search[$total['fields'][$i]] = $columns[$i]['search']['value']; } } diff --git a/assets/src/js/functions/functions.js b/assets/src/js/functions/functions.js index 0971c5bdd..9c2d7783b 100755 --- a/assets/src/js/functions/functions.js +++ b/assets/src/js/functions/functions.js @@ -213,6 +213,7 @@ function message(element) { onOpen: function () { start_superselect(); start_inputmask(); + start_datepickers(); }, preConfirm: function () { $form = $('#swal-form'); diff --git a/modules/anagrafiche/import.php b/modules/anagrafiche/import.php index ce5773530..aa54e6a5e 100755 --- a/modules/anagrafiche/import.php +++ b/modules/anagrafiche/import.php @@ -30,9 +30,9 @@ switch (post('op')) { case 'import': $sede_fields = [ - 'piva', - 'codice_fiscale', - 'codice_destinatario', + //'piva', + //'codice_fiscale', + //'codice_destinatario', 'indirizzo', 'indirizzo2', 'citta', @@ -139,6 +139,7 @@ return [ 'Citt_', 'Città', 'Città', + 'Citta', ], ], [ @@ -208,6 +209,7 @@ return [ 'P.IVA', 'P.IVA/TAX ID', 'TAX ID', + 'Partita IVA', ], ], [ diff --git a/modules/anagrafiche/src/Anagrafica.php b/modules/anagrafiche/src/Anagrafica.php index b1dd5a585..e79968081 100755 --- a/modules/anagrafiche/src/Anagrafica.php +++ b/modules/anagrafiche/src/Anagrafica.php @@ -250,8 +250,10 @@ class Anagrafica extends Model public function setCodiceDestinatarioAttribute($value) { - if ($this->sedeLegale->nazione->iso2 != 'IT') { + if (!empty($this->sedeLegale->nazione) && $this->sedeLegale->nazione->iso2 != 'IT') { $value = ''; + dump('tes'); + exit(); } $this->attributes['codice_destinatario'] = trim(strtoupper($value)); diff --git a/modules/articoli/bulk.php b/modules/articoli/bulk.php index 844f6efe0..83d3b2382 100644 --- a/modules/articoli/bulk.php +++ b/modules/articoli/bulk.php @@ -5,9 +5,7 @@ include_once __DIR__.'/../../core.php'; switch (post('op')) { case 'delete-bulk': - foreach ($id_records as $id) { - $elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idarticolo` = '.prepare($id).') UNION SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt`.`descrizione` AS tipo_documento, `dt_tipiddt`.`dir` FROM `dt_ddt` JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` WHERE `dt_ddt`.`id` IN (SELECT `idddt` FROM `dt_righe_ddt` WHERE `idarticolo` = '.prepare($id).') @@ -16,10 +14,9 @@ switch (post('op')) { if (!empty($elementi)) { $dbo->query('UPDATE mg_articoli SET deleted_at = NOW() WHERE id = '.prepare($id).Modules::getAdditionalsQuery($id_module)); - }else{ + } else { $dbo->query('DELETE FROM `mg_articoli` WHERE id = '.prepare($id).Modules::getAdditionalsQuery($id_module)); } - } flash()->info(tr('Articoli eliminati!')); diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php index 329666617..9ec27f5f2 100644 --- a/modules/contratti/actions.php +++ b/modules/contratti/actions.php @@ -391,7 +391,6 @@ $riga = $contratto->getRiga($type, $id_riga); // Creazione del contratto al volo if (post('create_document') == 'on') { - $contratto = Contratto::build($preventivo->anagrafica, $preventivo->nome); $contratto->idpagamento = $preventivo->idpagamento; diff --git a/modules/contratti/row-list.php b/modules/contratti/row-list.php index 85d9a9152..5100104f9 100755 --- a/modules/contratti/row-list.php +++ b/modules/contratti/row-list.php @@ -23,10 +23,9 @@ foreach ($righe as $riga) { echo ' '; - echo ' - '.(($riga->order)+1).' + '.(($riga->order) + 1).' '; // Descrizione @@ -237,4 +236,4 @@ $(document).ready(function(){ }); }); }); -'; \ No newline at end of file +'; diff --git a/modules/dashboard/actions.php b/modules/dashboard/actions.php index ba5d4f7b0..5ed26f92a 100755 --- a/modules/dashboard/actions.php +++ b/modules/dashboard/actions.php @@ -179,7 +179,7 @@ switch (get('op')) {
'.(($r['ref'] == 'intervento') ? '' : '').' '.$r['ragione_sociale'].'
'.Translator::dateToLocale($r['data_richiesta']).' ('.$r['tipointervento'].')
'.(!empty($r['richiesta']) ? ' - '.$r['richiesta'] : '').'
'.(!empty($r['nomecontratto']) ? '
Contratto: '.$r['nomecontratto'] : ''). (!empty($r['data_scadenza'] and $r['data_scadenza'] != '0000-00-00 00:00:00') ? '
'.tr('entro il: ').Translator::dateToLocale($r['data_scadenza']).'' : ''). - (($r['ref'] == 'intervento') ? (Modules::link('Interventi', $r['id'], '', null, 'title="'.tr("Visualizza scheda").'" class="btn btn-primary btn-xs pull-right"')) : (Modules::link('Contratti', $r['idcontratto'], '', null, 'title="'.tr("Visualizza scheda").'" class="btn btn-primary btn-xs pull-right"'))). + (($r['ref'] == 'intervento') ? (Modules::link('Interventi', $r['id'], '', null, 'title="'.tr('Visualizza scheda').'" class="btn btn-primary btn-xs pull-right"')) : (Modules::link('Contratti', $r['idcontratto'], '', null, 'title="'.tr('Visualizza scheda').'" class="btn btn-primary btn-xs pull-right"'))). '
'; } } ?> diff --git a/modules/ddt/row-list.php b/modules/ddt/row-list.php index 9e5e98325..940855925 100755 --- a/modules/ddt/row-list.php +++ b/modules/ddt/row-list.php @@ -41,7 +41,7 @@ foreach ($righe as $riga) { echo ' - '.(($riga->order)+1).' + '.(($riga->order) + 1).' '; echo ' @@ -279,4 +279,4 @@ $(document).ready(function(){ }); }); }); -'; \ No newline at end of file +'; diff --git a/modules/fatture/row-list.php b/modules/fatture/row-list.php index f5564ae23..b1005fca7 100755 --- a/modules/fatture/row-list.php +++ b/modules/fatture/row-list.php @@ -74,7 +74,7 @@ foreach ($righe as $riga) { echo ' - '.(($riga->order)+1).' + '.(($riga->order) + 1).' '; echo ' @@ -397,4 +397,4 @@ $(document).ready(function(){ }); }); }); -'; \ No newline at end of file +'; diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index afb179ece..398443ff4 100755 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -421,6 +421,10 @@ $riga = $intervento->getRiga($type, $id_riga); $new = $intervento->replicate(); $new->idstatointervento = $idstatointervento; + + //calcolo il nuovo codice + $new->codice = Intervento::getNextCodice($data_richiesta); + $new->save(); $id_record = $new->id; @@ -431,12 +435,12 @@ $riga = $intervento->getRiga($type, $id_riga); $new_riga->setParent($new); //Copio le righe - if( $copia_righe==1 ){ + if ($copia_righe == 1) { $righe = $intervento->getRighe(); foreach ($righe as $riga) { $new_riga = $riga->replicate(); $new_riga->setParent($new); - + $new_riga->qta_evasa = 0; $new_riga->save(); } @@ -446,29 +450,28 @@ $riga = $intervento->getRiga($type, $id_riga); $i = 0; //Copio le sessioni - if( $copia_sessioni==1 ){ + if ($copia_sessioni == 1) { $sessioni = $intervento->sessioni; foreach ($sessioni as $sessione) { - //Se è la prima sessione che copio importo la data con quella della richiesta - if( $i == 0 ){ - $orario_inizio = date("Y-m-d", strtotime($data_richiesta)).' '.date("H:i:s", strtotime($sessione->orario_inizio)); - }else{ + if ($i == 0) { + $orario_inizio = date('Y-m-d', strtotime($data_richiesta)).' '.date('H:i:s', strtotime($sessione->orario_inizio)); + } else { $diff = strtotime($sessione->orario_inizio) - strtotime($inizio_old); - $orario_inizio = date("Y-m-d H:i:s", (strtotime($orario_inizio)+$diff)); + $orario_inizio = date('Y-m-d H:i:s', (strtotime($orario_inizio) + $diff)); } $diff_fine = strtotime($sessione->orario_fine) - strtotime($sessione->orario_inizio); - $orario_fine = date("Y-m-d H:i:s", (strtotime($orario_inizio)+$diff_fine)); + $orario_fine = date('Y-m-d H:i:s', (strtotime($orario_inizio) + $diff_fine)); $new_sessione = $sessione->replicate(); $new_sessione->idintervento = $new->id; - + $new_sessione->orario_inizio = $orario_inizio; $new_sessione->orario_fine = $orario_fine; $new_sessione->save(); - $i++; + ++$i; $inizio_old = $sessione->orario_inizio; } } @@ -476,5 +479,4 @@ $riga = $intervento->getRiga($type, $id_riga); flash()->info(tr('Attività duplicata correttamente!')); break; - } diff --git a/modules/interventi/bulk.php b/modules/interventi/bulk.php index 80802e599..539daedf4 100755 --- a/modules/interventi/bulk.php +++ b/modules/interventi/bulk.php @@ -141,6 +141,78 @@ switch (post('op')) { flash()->warning(tr('Nessuna attività modificata!')); } + break; + + case 'copy': + + $idstatointervento = post('idstatointervento'); + $data_richiesta = post('data_richiesta'); + $copia_sessioni = post('sessioni'); + $copia_righe = post('righe'); + + foreach ($id_records as $idintervento) { + $intervento = Intervento::find($idintervento); + + $new = $intervento->replicate(); + $new->idstatointervento = $idstatointervento; + + //calcolo il nuovo codice + $new->codice = Intervento::getNextCodice($data_richiesta); + + $new->save(); + + $id_record = $new->id; + + $righe = $intervento->getRighe(); + foreach ($righe as $riga) { + $new_riga = $riga->replicate(); + $new_riga->setParent($new); + + //Copio le righe + if ($copia_righe == 1) { + $righe = $intervento->getRighe(); + foreach ($righe as $riga) { + $new_riga = $riga->replicate(); + $new_riga->setParent($new); + + $new_riga->qta_evasa = 0; + $new_riga->save(); + } + } + } + + $i = 0; + + //Copio le sessioni + if ($copia_sessioni == 1) { + $sessioni = $intervento->sessioni; + foreach ($sessioni as $sessione) { + //Se è la prima sessione che copio importo la data con quella della richiesta + if ($i == 0) { + $orario_inizio = date('Y-m-d', strtotime($data_richiesta)).' '.date('H:i:s', strtotime($sessione->orario_inizio)); + } else { + $diff = strtotime($sessione->orario_inizio) - strtotime($inizio_old); + $orario_inizio = date('Y-m-d H:i:s', (strtotime($orario_inizio) + $diff)); + } + + $diff_fine = strtotime($sessione->orario_fine) - strtotime($sessione->orario_inizio); + $orario_fine = date('Y-m-d H:i:s', (strtotime($orario_inizio) + $diff_fine)); + + $new_sessione = $sessione->replicate(); + $new_sessione->idintervento = $new->id; + + $new_sessione->orario_inizio = $orario_inizio; + $new_sessione->orario_fine = $orario_fine; + $new_sessione->save(); + + ++$i; + $inizio_old = $sessione->orario_inizio; + } + } + } + + flash()->info(tr('Attività duplicate correttamente!')); + break; } @@ -179,4 +251,18 @@ return [ 'blank' => false, ], ], + + 'copy' => [ + 'text' => tr('Duplica attività'), + 'data' => [ + 'title' => tr('Vuoi davvero fare una copia degli interventi selezionati?'), + 'msg' => '
{[ "type": "timestamp", "label": "'.tr('Data/ora richiesta').'", "name": "data_richiesta", "required": 0, "value": "-now-", "required":1 ]} +
{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL", "value": "" ]} +
{[ "type":"checkbox", "label":"'.tr('Duplica righe').'", "name":"righe", "value":"" ]} +
{[ "type":"checkbox", "label":"'.tr('Duplica sessioni').'", "name":"sessioni", "value":"" ]}', + 'button' => tr('Duplica attività'), + 'class' => 'btn btn-lg btn-warning', + 'blank' => false, + ], + ], ]; diff --git a/modules/interventi/buttons.php b/modules/interventi/buttons.php index 83a5728c2..d249dc40d 100755 --- a/modules/interventi/buttons.php +++ b/modules/interventi/buttons.php @@ -28,4 +28,4 @@ echo ' '; \ No newline at end of file +'; diff --git a/modules/interventi/copia_attivita.php b/modules/interventi/copia_attivita.php index 4e16ff3d7..1915635df 100644 --- a/modules/interventi/copia_attivita.php +++ b/modules/interventi/copia_attivita.php @@ -34,4 +34,4 @@ echo ' '; \ No newline at end of file +'; diff --git a/modules/interventi/src/API/v1/Articoli.php b/modules/interventi/src/API/v1/Articoli.php index 243bba3e0..52a22fcd6 100755 --- a/modules/interventi/src/API/v1/Articoli.php +++ b/modules/interventi/src/API/v1/Articoli.php @@ -35,6 +35,9 @@ class Articoli extends Resource implements RetrieveInterface, CreateInterface $articolo->qta = $data['qta']; $articolo->um = $data['um']; + + $articolo->prezzo_unitario = $originale->prezzo_vendita; + $articolo->costo_unitario = $originale->prezzo_acquisto; $articolo->save(); } diff --git a/modules/ordini/row-list.php b/modules/ordini/row-list.php index f2545a000..b88b76ec4 100755 --- a/modules/ordini/row-list.php +++ b/modules/ordini/row-list.php @@ -41,10 +41,9 @@ foreach ($righe as $riga) { echo ' - '.(($riga->order)+1).' + '.(($riga->order) + 1).' '; - echo ' '; @@ -270,4 +269,4 @@ $(document).ready(function(){ }); }); }); -'; \ No newline at end of file +'; diff --git a/modules/preventivi/actions.php b/modules/preventivi/actions.php index 3de6a6a12..3ade90b26 100755 --- a/modules/preventivi/actions.php +++ b/modules/preventivi/actions.php @@ -69,7 +69,7 @@ switch (post('op')) { case 'copy': // Copia del preventivo $new = $preventivo->replicate(); - $new->numero = Preventivo::getNextNumero( Carbon::now() ); + $new->numero = Preventivo::getNextNumero(Carbon::now()); $new->data_bozza = Carbon::now(); $new->data_conclusione = Carbon::now()->addMonth(); $new->stato = 'Bozza'; diff --git a/modules/preventivi/row-list.php b/modules/preventivi/row-list.php index 9fdc25bf9..27b6d46f4 100755 --- a/modules/preventivi/row-list.php +++ b/modules/preventivi/row-list.php @@ -23,9 +23,9 @@ foreach ($righe as $riga) { echo ' '; - echo ' + echo ' - '.(($riga->order)+1).' + '.(($riga->order) + 1).' '; // Descrizione @@ -263,4 +263,4 @@ $(document).ready(function(){ }); }); }); -'; \ No newline at end of file +'; diff --git a/modules/utenti/src/API/v1/Login.php b/modules/utenti/src/API/v1/Login.php index 352528310..3790458e4 100755 --- a/modules/utenti/src/API/v1/Login.php +++ b/modules/utenti/src/API/v1/Login.php @@ -27,6 +27,7 @@ class Login extends Resource implements CreateInterface $response['token'] = $token; $response['group'] = $user['gruppo']; $response['google_maps_token'] = setting('Google Maps API key'); + $response['prezzi_al_tecnico'] = setting('Mostra i prezzi al tecnico'); $response['version'] = Update::getVersion(); } else { diff --git a/plugins/pianificazione_fatturazione/widgets/rate_contrattuali.php b/plugins/pianificazione_fatturazione/widgets/rate_contrattuali.php index a7cd024dd..9c5ef3367 100644 --- a/plugins/pianificazione_fatturazione/widgets/rate_contrattuali.php +++ b/plugins/pianificazione_fatturazione/widgets/rate_contrattuali.php @@ -55,7 +55,8 @@ foreach ($raggruppamenti as $mese => $raggruppamento) { $contratto = $pianificazione->contratto; $anagrafica = $contratto->anagrafica; - echo ' + if (strtolower($pianificazione->data_scadenza->formatLocalized('%B %Y')) == strtolower($mese)) { + echo ' '.dateFormat($pianificazione->data_scadenza).' @@ -74,14 +75,15 @@ foreach ($raggruppamenti as $mese => $raggruppamento) { ]).' '; - // Pulsanti - echo ' + // Pulsanti + echo ' '; + } } echo ' diff --git a/plugins/receiptFE/edit.php b/plugins/receiptFE/edit.php index 19f582885..eea6c322f 100755 --- a/plugins/receiptFE/edit.php +++ b/plugins/receiptFE/edit.php @@ -7,24 +7,22 @@ use Plugins\ReceiptFE\Interaction; echo '

'.tr('Le ricevute delle Fatture Elettroniche permettono di individuare se una determinata fattura tramessa è stata accettata dal Sistema Di Interscambio').'.

'; if (Interaction::isEnabled()) { - echo '

'.tr('Tramite il pulsante _BTN_ è possibile procedere al recupero delle ricevute, aggiornando automaticamente lo stato delle relative fatture e allegandole ad esse', [ '_BTN_' => ' '.tr('Ricerca ricevute').'', ]).'.

'; -//controllo se ci sono fatture in elaborazione da più di 7 giorni per le quali non ho ancora una ricevuta -$fatture_generate = $dbo->fetchArray('SELECT `co_documenti`.`numero_esterno`, `co_documenti`.`data`, `co_documenti`.`data_stato_fe` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_tipidocumento`.`dir` = \'entrata\' AND `co_documenti`.`codice_stato_fe` = \'WAIT\' AND `co_documenti`.`data_stato_fe` >= "'.$_SESSION['period_start'].'" AND `co_documenti`.`data_stato_fe`<(NOW() - INTERVAL 7 DAY) ORDER BY `co_documenti`.`data_stato_fe`'); + //controllo se ci sono fatture in elaborazione da più di 7 giorni per le quali non ho ancora una ricevuta + $fatture_generate = $dbo->fetchArray('SELECT `co_documenti`.`numero_esterno`, `co_documenti`.`data`, `co_documenti`.`data_stato_fe` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_tipidocumento`.`dir` = \'entrata\' AND `co_documenti`.`codice_stato_fe` = \'WAIT\' AND `co_documenti`.`data_stato_fe` >= "'.$_SESSION['period_start'].'" AND `co_documenti`.`data_stato_fe`<(NOW() - INTERVAL 7 DAY) ORDER BY `co_documenti`.`data_stato_fe`'); -foreach ($fatture_generate as $fattura_generata) { - echo ' + foreach ($fatture_generate as $fattura_generata) { + echo '
'.tr('Attenzione: la fattura _NUM_ del _DATA_ è in attesa di una ricevuta dal _DATA_STATO_FE.', [ '_NUM_' => $fattura_generata['numero_esterno'], '_DATA_' => Translator::dateToLocale($fattura_generata['data']), - '_DATA_STATO_FE' => Translator::timestampToLocale($fattura_generata['data_stato_fe']) + '_DATA_STATO_FE' => Translator::timestampToLocale($fattura_generata['data_stato_fe']), ]).'
'; -} - + } } echo '
diff --git a/plugins/receiptFE/src/Ricevuta.php b/plugins/receiptFE/src/Ricevuta.php index eca512553..a16e71bdb 100755 --- a/plugins/receiptFE/src/Ricevuta.php +++ b/plugins/receiptFE/src/Ricevuta.php @@ -135,7 +135,7 @@ class Ricevuta $this->saveAllegato($codice); //In caso di Notifica Esito il codice è definito dal nodo della ricevuta - if ($codice == 'NE'){ + if ($codice == 'NE') { $this->xml = XML::readFile($this->file); $codice = $this->xml['EsitoCommittente']['Esito']; } diff --git a/templates/ddt/body.php b/templates/ddt/body.php index 9e29c1eb4..1216443f2 100755 --- a/templates/ddt/body.php +++ b/templates/ddt/body.php @@ -44,8 +44,7 @@ foreach ($righe as $riga) { echo' - '.($r['order']+1).''; - + '.($r['order'] + 1).''; echo' diff --git a/templates/fatture/body.php b/templates/fatture/body.php index 095fa3b36..3edb0c5b8 100755 --- a/templates/fatture/body.php +++ b/templates/fatture/body.php @@ -42,12 +42,10 @@ foreach ($righe as $riga) { echo ' '; - echo' - '.($r['order']+1).''; + '.($r['order'] + 1).''; - echo ' '.nl2br($r['descrizione']); diff --git a/templates/preventivi/body.php b/templates/preventivi/body.php index 522c3f3d3..8fd4272a9 100755 --- a/templates/preventivi/body.php +++ b/templates/preventivi/body.php @@ -89,9 +89,11 @@ foreach ($righe as $riga) { '; echo ''; - if (!empty($riga->articolo->immagine)) {echo '';} + if (!empty($riga->articolo->immagine)) { + echo ''; + } echo ''; - + echo ' '.nl2br($r['descrizione']);