Rimozione co_preventivi_interventi

This commit is contained in:
Thomas Zilio 2018-09-03 15:29:55 +02:00
parent b3f59df958
commit 39094589ec
12 changed files with 42 additions and 50 deletions

View File

@ -586,7 +586,7 @@ switch (post('op')) {
$rs2 = $dbo->fetchArray($query2); $rs2 = $dbo->fetchArray($query2);
for ($j = 0; $j < sizeof($rs2); ++$j) { for ($j = 0; $j < sizeof($rs2); ++$j) {
$dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Fatturato') WHERE id IN (SELECT idintervento FROM co_preventivi_interventi WHERE idpreventivo=".prepare($rs2[$j]['idpreventivo']).')'); $dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Fatturato') WHERE id_preventivo=".prepare($rs2[$j]['idpreventivo']));
} }
flash()->info(tr('Preventivo _NUM_ aggiunto!', [ flash()->info(tr('Preventivo _NUM_ aggiunto!', [
@ -974,7 +974,9 @@ switch (post('op')) {
// Aggiornamento seriali dalla riga dell'ordine // Aggiornamento seriali dalla riga dell'ordine
$serials = is_array(post('serial')[$i]) ? post('serial')[$i] : []; $serials = is_array(post('serial')[$i]) ? post('serial')[$i] : [];
$serials = array_filter($serials, function ($value) { return !empty($value); }); $serials = array_filter($serials, function ($value) {
return !empty($value);
});
$dbo->sync('mg_prodotti', ['id_riga_documento' => $idriga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => $serials]); $dbo->sync('mg_prodotti', ['id_riga_documento' => $idriga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => $serials]);
} }
@ -1055,7 +1057,9 @@ switch (post('op')) {
// Aggiornamento seriali dalla riga dell'ordine // Aggiornamento seriali dalla riga dell'ordine
$serials = is_array(post('serial')[$i]) ? post('serial')[$i] : []; $serials = is_array(post('serial')[$i]) ? post('serial')[$i] : [];
$serials = array_filter($serials, function ($value) { return !empty($value); }); $serials = array_filter($serials, function ($value) {
return !empty($value);
});
$dbo->sync('mg_prodotti', ['id_riga_documento' => $riga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => $serials]); $dbo->sync('mg_prodotti', ['id_riga_documento' => $riga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => $serials]);
@ -1279,16 +1283,16 @@ switch (post('op')) {
$dbo->query("UPDATE co_preventivi SET idstato=(SELECT id FROM co_statipreventivi WHERE descrizione='In lavorazione') WHERE id=".prepare($rsp[$i]['idpreventivo'])); $dbo->query("UPDATE co_preventivi SET idstato=(SELECT id FROM co_statipreventivi WHERE descrizione='In lavorazione') WHERE id=".prepare($rsp[$i]['idpreventivo']));
// Aggiorno anche lo stato degli interventi collegati ai preventivi // Aggiorno anche lo stato degli interventi collegati ai preventivi
$dbo->query("UPDATE in_interventi SET idstatointervento='OK' WHERE id IN (SELECT idintervento FROM co_preventivi_interventi WHERE idpreventivo=".prepare($rsp[$i]['idpreventivo']).')'); $dbo->query("UPDATE in_interventi SET idstatointervento='OK' WHERE id_preventivo=".prepare($rsp[$i]['idpreventivo']));
} }
/* /*
Rimuovo tutti gli articoli dalla fattura collegati agli interventi di questo preventivo Rimuovo tutti gli articoli dalla fattura collegati agli interventi di questo preventivo
*/ */
$rs2 = $dbo->fetchArray('SELECT idintervento FROM co_preventivi_interventi WHERE idpreventivo != 0 AND idpreventivo='.prepare($idpreventivo)); $rs2 = $dbo->fetchArray('SELECT id FROM in_interventi WHERE id_preventivo = '.prepare($idpreventivo));
for ($i = 0; $i < sizeof($rs2); ++$i) { for ($i = 0; $i < sizeof($rs2); ++$i) {
// Leggo gli articoli usati in questo intervento // Leggo gli articoli usati in questo intervento
$rs3 = $dbo->fetchArray('SELECT idarticolo FROM mg_articoli_interventi WHERE idintervento='.prepare($rs2[$i]['idintervento'])); $rs3 = $dbo->fetchArray('SELECT idarticolo FROM mg_articoli_interventi WHERE idintervento='.prepare($rs2[$i]['id']));
for ($j = 0; $j < sizeof($rs3); ++$j) { for ($j = 0; $j < sizeof($rs3); ++$j) {
// Leggo l'id della riga in fattura di questo articolo // Leggo l'id della riga in fattura di questo articolo
$rs4 = $dbo->fetchArray('SELECT id FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idarticolo='.prepare($rs3[$j]['idarticolo'])); $rs4 = $dbo->fetchArray('SELECT id FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idarticolo='.prepare($rs3[$j]['idarticolo']));
@ -1541,7 +1545,9 @@ switch (post('op')) {
// Aggiornamento seriali dalla riga dell'ordine // Aggiornamento seriali dalla riga dell'ordine
$serials = is_array(post('serial')[$i]) ? post('serial')[$i] : []; $serials = is_array(post('serial')[$i]) ? post('serial')[$i] : [];
$serials = array_filter($serials, function ($value) { return !empty($value); }); $serials = array_filter($serials, function ($value) {
return !empty($value);
});
$dbo->sync('mg_prodotti', ['id_riga_documento' => $riga, 'dir' => 'uscita', 'id_articolo' => $idarticolo], ['serial' => $serials]); $dbo->sync('mg_prodotti', ['id_riga_documento' => $riga, 'dir' => 'uscita', 'id_articolo' => $idarticolo], ['serial' => $serials]);
$dbo->detach('mg_prodotti', ['id_riga_documento' => $idriga, 'dir' => 'entrata', 'id_articolo' => $idarticolo], ['serial' => $serials]); $dbo->detach('mg_prodotti', ['id_riga_documento' => $idriga, 'dir' => 'entrata', 'id_articolo' => $idarticolo], ['serial' => $serials]);

View File

@ -45,7 +45,7 @@ $rs = $dbo->fetchArray('SELECT
(in_interventi.idanagrafica='.prepare($idanagrafica).' OR in_interventi.idclientefinale='.prepare($idanagrafica).') (in_interventi.idanagrafica='.prepare($idanagrafica).' OR in_interventi.idclientefinale='.prepare($idanagrafica).')
AND in_statiintervento.completato=1 AND in_statiintervento.completato=1
AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL)
AND NOT in_interventi.id IN (SELECT idintervento FROM co_preventivi_interventi WHERE idintervento IS NOT NULL) AND in_interventi.id_preventivo IS NULL
AND NOT in_interventi.id IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL)'); AND NOT in_interventi.id IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL)');
foreach ($rs as $key => $value) { foreach ($rs as $key => $value) {
$rs[$key]['prezzo'] = get_costi_intervento($value['id'])['totale']; $rs[$key]['prezzo'] = get_costi_intervento($value['id'])['totale'];

View File

@ -268,13 +268,13 @@ if ($record['stato'] != 'Pagato' && $record['stato'] != 'Emessa') {
if (empty($record['ref_documento'])) { if (empty($record['ref_documento'])) {
if ($dir == 'entrata') { if ($dir == 'entrata') {
// Lettura interventi non rifiutati, non fatturati e non collegati a preventivi o contratti // Lettura interventi non rifiutati, non fatturati e non collegati a preventivi o contratti
$int_query = 'SELECT COUNT(*) AS tot FROM in_interventi INNER JOIN in_statiintervento ON in_interventi.idstatointervento=in_statiintervento.idstatointervento WHERE idanagrafica='.prepare($record['idanagrafica']).' AND in_statiintervento.completato=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id NOT IN (SELECT idintervento FROM co_preventivi_interventi WHERE idintervento IS NOT NULL) AND in_interventi.id NOT IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL)'; $int_query = 'SELECT COUNT(*) AS tot FROM in_interventi INNER JOIN in_statiintervento ON in_interventi.idstatointervento=in_statiintervento.idstatointervento WHERE idanagrafica='.prepare($record['idanagrafica']).' AND in_statiintervento.completato=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id_preventivo IS NULL AND in_interventi.id NOT IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL)';
$interventi = $dbo->fetchArray($int_query)[0]['tot']; $interventi = $dbo->fetchArray($int_query)[0]['tot'];
// Se non trovo niente provo a vedere se ce ne sono per clienti terzi // Se non trovo niente provo a vedere se ce ne sono per clienti terzi
if (empty($interventi)) { if (empty($interventi)) {
// Lettura interventi non rifiutati, non fatturati e non collegati a preventivi o contratti (clienti terzi) // Lettura interventi non rifiutati, non fatturati e non collegati a preventivi o contratti (clienti terzi)
$int_query = 'SELECT COUNT(*) AS tot FROM in_interventi INNER JOIN in_statiintervento ON in_interventi.idstatointervento=in_statiintervento.idstatointervento WHERE idclientefinale='.prepare($record['idanagrafica']).' AND in_statiintervento.completato=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id NOT IN (SELECT idintervento FROM co_preventivi_interventi WHERE idintervento IS NOT NULL) AND in_interventi.id NOT IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL)'; $int_query = 'SELECT COUNT(*) AS tot FROM in_interventi INNER JOIN in_statiintervento ON in_interventi.idstatointervento=in_statiintervento.idstatointervento WHERE idclientefinale='.prepare($record['idanagrafica']).' AND in_statiintervento.completato=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id_preventivo IS NULL AND in_interventi.id NOT IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL)';
$interventi = $dbo->fetchArray($int_query)[0]['tot']; $interventi = $dbo->fetchArray($int_query)[0]['tot'];
} }

View File

@ -20,18 +20,6 @@ switch (post('op')) {
$richiesta = post('richiesta'); $richiesta = post('richiesta');
$idsede = post('idsede'); $idsede = post('idsede');
/*
Collegamento intervento a preventivo (se impostato)
*/
// Elimino il collegamento attuale
$dbo->query('DELETE FROM co_preventivi_interventi WHERE idintervento='.prepare($id_record));
if (!empty($idpreventivo)) {
$dbo->insert('co_preventivi_interventi', [
'idintervento' => $id_record,
'idpreventivo' => $idpreventivo,
]);
}
/* /*
Collegamento intervento a contratto (se impostato). Collegamento intervento a contratto (se impostato).
Oltre al collegamento al contratto, l'intervento è collegato ad una riga di pianificazione, perciò è importante considerarla se è impostata Oltre al collegamento al contratto, l'intervento è collegato ad una riga di pianificazione, perciò è importante considerarla se è impostata
@ -194,6 +182,7 @@ switch (post('op')) {
'idstatointervento' => post('idstatointervento'), 'idstatointervento' => post('idstatointervento'),
'idsede' => $idsede, 'idsede' => $idsede,
'idautomezzo' => post('idautomezzo'), 'idautomezzo' => post('idautomezzo'),
'id_preventivo' => $idpreventivo,
'sconto_globale' => $sconto, 'sconto_globale' => $sconto,
'tipo_sconto_globale' => $tipo_sconto, 'tipo_sconto_globale' => $tipo_sconto,
@ -236,6 +225,7 @@ switch (post('op')) {
'idtipointervento' => $idtipointervento, 'idtipointervento' => $idtipointervento,
'idsede' => $idsede ?: 0, 'idsede' => $idsede ?: 0,
'idautomezzo' => $idautomezzo ?: 0, 'idautomezzo' => $idautomezzo ?: 0,
'id_preventivo' => $idpreventivo,
'codice' => $codice, 'codice' => $codice,
'data_richiesta' => $data_richiesta, 'data_richiesta' => $data_richiesta,
@ -247,14 +237,6 @@ switch (post('op')) {
flash()->info(tr('Aggiunto nuovo intervento!')); flash()->info(tr('Aggiunto nuovo intervento!'));
} }
// Collego l'intervento al preventivo
if (!empty($idpreventivo)) {
$dbo->insert('co_preventivi_interventi', [
'idintervento' => $id_record,
'idpreventivo' => $idpreventivo,
]);
}
// Collego l'intervento al contratto // Collego l'intervento al contratto
if (!empty($idcontratto)) { if (!empty($idcontratto)) {
$array = [ $array = [
@ -388,10 +370,6 @@ switch (post('op')) {
$query = 'DELETE FROM in_interventi_tecnici WHERE idintervento='.prepare($id_record); $query = 'DELETE FROM in_interventi_tecnici WHERE idintervento='.prepare($id_record);
$dbo->query($query); $dbo->query($query);
// Eliminazione associazioni tra interventi e preventivi
$query = 'DELETE FROM co_preventivi_interventi WHERE idintervento='.prepare($id_record);
$dbo->query($query);
// Eliminazione righe aggiuntive dell'intervento // Eliminazione righe aggiuntive dell'intervento
$query = 'DELETE FROM in_righe_interventi WHERE idintervento='.prepare($id_record); $query = 'DELETE FROM in_righe_interventi WHERE idintervento='.prepare($id_record);
$dbo->query($query); $dbo->query($query);

View File

@ -3,7 +3,7 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (isset($id_record)) { if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT *, (SELECT completato FROM in_statiintervento WHERE idstatointervento=in_interventi.idstatointervento) AS flag_completato, IF((in_interventi.idsede = 0), (SELECT idzona FROM an_anagrafiche WHERE idanagrafica = in_interventi.idanagrafica), (SELECT idzona FROM an_sedi WHERE id = in_interventi.idsede)) AS idzona, (SELECT colore FROM in_statiintervento WHERE idstatointervento=in_interventi.idstatointervento) AS colore, (SELECT idcontratto FROM co_promemoria WHERE idintervento=in_interventi.id LIMIT 0,1) AS idcontratto, (SELECT idpreventivo FROM co_preventivi_interventi WHERE idintervento=in_interventi.id LIMIT 0,1) AS idpreventivo FROM in_interventi WHERE id='.prepare($id_record).Modules::getAdditionalsQuery($id_module)); $record = $dbo->fetchOne('SELECT *, (SELECT completato FROM in_statiintervento WHERE idstatointervento=in_interventi.idstatointervento) AS flag_completato, IF((in_interventi.idsede = 0), (SELECT idzona FROM an_anagrafiche WHERE idanagrafica = in_interventi.idanagrafica), (SELECT idzona FROM an_sedi WHERE id = in_interventi.idsede)) AS idzona, (SELECT colore FROM in_statiintervento WHERE idstatointervento=in_interventi.idstatointervento) AS colore, (SELECT idcontratto FROM co_promemoria WHERE idintervento=in_interventi.id LIMIT 0,1) AS idcontratto, in_interventi.id_preventivo as idpreventivo FROM in_interventi WHERE id='.prepare($id_record).Modules::getAdditionalsQuery($id_module));
} }
$jscript_modules[] = $rootdir.'/modules/interventi/js/interventi_helperjs.js'; $jscript_modules[] = $rootdir.'/modules/interventi/js/interventi_helperjs.js';

View File

@ -143,9 +143,9 @@ switch (post('op')) {
$costo_km = $rs[0]['prezzo_km_unitario']; $costo_km = $rs[0]['prezzo_km_unitario'];
$costo_orario = $rs[0]['prezzo_ore_unitario']; $costo_orario = $rs[0]['prezzo_ore_unitario'];
$query = 'INSERT INTO co_preventivi_interventi(idpreventivo, idintervento) VALUES('.prepare($id_record).', '.prepare($idintervento).')'; $dbo->update('in_interventi', [
'id_preventivo' => $id_record,
$dbo->query($query); ], ['id' => $idintervento]);
// Imposto il preventivo nello stato "In lavorazione" se inizio ad aggiungere interventi // Imposto il preventivo nello stato "In lavorazione" se inizio ad aggiungere interventi
$dbo->query("UPDATE `co_preventivi` SET idstato=(SELECT `id` FROM `co_statipreventivi` WHERE `descrizione`='In lavorazione') WHERE `id`=".prepare($id_record)); $dbo->query("UPDATE `co_preventivi` SET idstato=(SELECT `id` FROM `co_statipreventivi` WHERE `descrizione`='In lavorazione') WHERE `id`=".prepare($id_record));
@ -180,8 +180,9 @@ switch (post('op')) {
if (isset($_GET['idpreventivo']) && isset($_GET['idintervento'])) { if (isset($_GET['idpreventivo']) && isset($_GET['idintervento'])) {
$idintervento = get('idintervento'); $idintervento = get('idintervento');
$query = 'DELETE FROM `co_preventivi_interventi` WHERE idpreventivo='.prepare($id_record).' AND idintervento='.prepare($idintervento); $dbo->update('in_interventi', [
$dbo->query($query); 'id_preventivo' => null,
], ['id' => $idintervento]);
flash()->info(tr('Intervento _NUM_ rimosso!', [ flash()->info(tr('Intervento _NUM_ rimosso!', [
'_NUM_' => $idintervento, '_NUM_' => $idintervento,
@ -192,7 +193,10 @@ switch (post('op')) {
// eliminazione preventivo // eliminazione preventivo
case 'delete': case 'delete':
$dbo->query('DELETE FROM co_preventivi WHERE id='.prepare($id_record)); $dbo->query('DELETE FROM co_preventivi WHERE id='.prepare($id_record));
$dbo->query('DELETE FROM co_preventivi_interventi WHERE idpreventivo='.prepare($id_record));
$dbo->update('in_interventi', [
'id_preventivo' => null,
], ['id_preventivo' => $id_record]);
flash()->info(tr('Preventivo eliminato!')); flash()->info(tr('Preventivo eliminato!'));

View File

@ -27,7 +27,7 @@ $totale = 0;
$totale_stato = []; $totale_stato = [];
// Tabella con riepilogo interventi // Tabella con riepilogo interventi
$rsi = $dbo->fetchArray('SELECT *, in_interventi.id, in_interventi.codice, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS inizio, (SELECT SUM(ore) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS ore, (SELECT MIN(km) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS km FROM co_preventivi_interventi INNER JOIN in_interventi ON co_preventivi_interventi.idintervento=in_interventi.id WHERE co_preventivi_interventi.idpreventivo='.prepare($id_record).' ORDER BY co_preventivi_interventi.idintervento DESC'); $rsi = $dbo->fetchArray('SELECT *, in_interventi.id, in_interventi.codice, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS inizio, (SELECT SUM(ore) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS ore, (SELECT MIN(km) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS km FROM in_interventi WHERE in_interventi.id_preventivo='.prepare($id_record).' ORDER BY in_interventi.id DESC');
if (!empty($rsi)) { if (!empty($rsi)) {
echo ' echo '
<table class="table table-bordered table-condensed"> <table class="table table-bordered table-condensed">
@ -309,7 +309,7 @@ if (in_array($record['stato'], ['Accettato', 'In lavorazione', 'Pagato'])) {
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "'.tr('Aggiungi un altro intervento a questo preventivo').'", "name": "idintervento", "values": "query=SELECT id, CONCAT(\'Intervento \', codice, \' del \', DATE_FORMAT(IFNULL((SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento=in_interventi.id), data_richiesta), \'%d/%m/%Y\')) AS descrizione FROM in_interventi WHERE id NOT IN( SELECT idintervento FROM co_preventivi_interventi WHERE idintervento IS NOT NULL) AND id NOT IN( SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND id NOT IN( SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL) AND idanagrafica='.prepare($record['idanagrafica']).'" ]} {[ "type": "select", "label": "'.tr('Aggiungi un altro intervento a questo preventivo').'", "name": "idintervento", "values": "query=SELECT id, CONCAT(\'Intervento \', codice, \' del \', DATE_FORMAT(IFNULL((SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento=in_interventi.id), data_richiesta), \'%d/%m/%Y\')) AS descrizione FROM in_interventi WHERE id_preventivo IS NULL AND id NOT IN( SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND id NOT IN( SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL) AND idanagrafica='.prepare($record['idanagrafica']).'" ]}
</div> </div>
</div> </div>

View File

@ -87,7 +87,7 @@ switch (post('op')) {
$rs2 = $dbo->fetchArray($query2); $rs2 = $dbo->fetchArray($query2);
for ($j = 0; $j < sizeof($rs2); ++$j) { for ($j = 0; $j < sizeof($rs2); ++$j) {
$dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Fatturato') WHERE id IN (SELECT idintervento FROM co_preventivi_interventi WHERE idpreventivo=".prepare($rs2[$j]['idpreventivo']).')'); $dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Fatturato') WHERE id_preventivo=".prepare($rs2[$j]['idpreventivo']));
} }
} }
@ -178,7 +178,7 @@ switch (post('op')) {
$dbo->query("UPDATE co_preventivi SET idstato=(SELECT id FROM co_statipreventivi WHERE descrizione='In attesa di pagamento') WHERE id=".prepare($rs3[$j]['idpreventivo'])); $dbo->query("UPDATE co_preventivi SET idstato=(SELECT id FROM co_statipreventivi WHERE descrizione='In attesa di pagamento') WHERE id=".prepare($rs3[$j]['idpreventivo']));
// Aggiorno anche lo stato degli interventi collegati ai preventivi // Aggiorno anche lo stato degli interventi collegati ai preventivi
$dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Completato') WHERE id IN(SELECT idintervento FROM co_preventivi_interventi WHERE idpreventivo=".prepare($rs3[$j]['idpreventivo']).')'); $dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Completato') WHERE id_preventivo=".prepare($rs3[$j]['idpreventivo']));
} }
// Aggiorno lo stato degli interventi collegati alla fattura se ce ne sono // Aggiorno lo stato degli interventi collegati alla fattura se ce ne sono
@ -222,7 +222,7 @@ switch (post('op')) {
$dbo->query("UPDATE co_preventivi SET idstato=(SELECT id FROM co_statipreventivi WHERE descrizione='Pagato') WHERE id=".prepare($rs2[$j]['idpreventivo'])); $dbo->query("UPDATE co_preventivi SET idstato=(SELECT id FROM co_statipreventivi WHERE descrizione='Pagato') WHERE id=".prepare($rs2[$j]['idpreventivo']));
// Aggiorno anche lo stato degli interventi collegati ai preventivi // Aggiorno anche lo stato degli interventi collegati ai preventivi
$dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Fatturato') WHERE id IN (SELECT idintervento FROM co_preventivi_interventi WHERE idpreventivo=".prepare($rs2[$j]['idpreventivo']).')'); $dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Fatturato') WHERE id_preventivo=".prepare($rs2[$j]['idpreventivo']));
} }
// Aggiorno lo stato degli interventi collegati alla fattura se ce ne sono // Aggiorno lo stato degli interventi collegati alla fattura se ce ne sono
@ -230,7 +230,7 @@ switch (post('op')) {
$rs2 = $dbo->fetchArray($query2); $rs2 = $dbo->fetchArray($query2);
for ($j = 0; $j < sizeof($rs2); ++$j) { for ($j = 0; $j < sizeof($rs2); ++$j) {
$dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Fatturato') WHERE id IN (SELECT idintervento FROM co_preventivi_interventi WHERE idpreventivo=".prepare($rs2[$j]['idpreventivo']).')'); $dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Fatturato') WHERE id_preventivo=".prepare($rs2[$j]['idpreventivo']));
} }
} }
break; break;

View File

@ -7,7 +7,7 @@ include_once Modules::filepath('Interventi', 'modutil.php');
$module_name = 'Interventi'; $module_name = 'Interventi';
// carica intervento // carica intervento
$query = 'SELECT in_interventi.*, (SELECT numero FROM co_contratti WHERE id=(SELECT idcontratto FROM co_promemoria WHERE idintervento=in_interventi.id)) AS numero_contratto, (SELECT numero FROM co_preventivi WHERE id=(SELECT idpreventivo FROM co_preventivi_interventi WHERE idintervento=in_interventi.id ORDER BY idpreventivo DESC LIMIT 0,1)) AS numero_preventivo, (SELECT SUM(prezzo_dirittochiamata) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_dirittochiamata`, (SELECT SUM(km) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_km`, (SELECT SUM(ore*prezzo_ore_unitario) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_ore_consuntivo`, (SELECT SUM(prezzo_km_consuntivo) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_km_consuntivo`, in_interventi.descrizione AS `descrizione_intervento`, richiesta, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=in_interventi.idtipointervento) AS tipointervento FROM in_interventi INNER JOIN in_tipiintervento ON in_interventi.idtipointervento=in_tipiintervento.idtipointervento WHERE id='.prepare($id_record).' '.Modules::getAdditionalsQuery('Interventi'); $query = 'SELECT in_interventi.*, (SELECT numero FROM co_contratti WHERE id=(SELECT idcontratto FROM co_promemoria WHERE idintervento=in_interventi.id)) AS numero_contratto, (SELECT numero FROM co_preventivi WHERE id=in_interventi.id_preventivo) AS numero_preventivo, (SELECT SUM(prezzo_dirittochiamata) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_dirittochiamata`, (SELECT SUM(km) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_km`, (SELECT SUM(ore*prezzo_ore_unitario) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_ore_consuntivo`, (SELECT SUM(prezzo_km_consuntivo) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_km_consuntivo`, in_interventi.descrizione AS `descrizione_intervento`, richiesta, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=in_interventi.idtipointervento) AS tipointervento FROM in_interventi INNER JOIN in_tipiintervento ON in_interventi.idtipointervento=in_tipiintervento.idtipointervento WHERE id='.prepare($id_record).' '.Modules::getAdditionalsQuery('Interventi');
$records = $dbo->fetchArray($query); $records = $dbo->fetchArray($query);
$costi_intervento = get_costi_intervento($id_record); $costi_intervento = get_costi_intervento($id_record);

View File

@ -60,7 +60,7 @@ if (!empty($records[0]['descrizione'])) {
$sconto = []; $sconto = [];
$imponibile = []; $imponibile = [];
$interventi = $dbo->fetchArray('SELECT *, in_interventi.id, in_interventi.codice, (SELECT GROUP_CONCAT(DISTINCT ragione_sociale) FROM in_interventi_tecnici JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = in_interventi_tecnici.idtecnico WHERE idintervento=in_interventi.id) AS tecnici, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS inizio, (SELECT SUM(ore) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS ore, (SELECT SUM(km) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS km FROM co_preventivi_interventi JOIN in_interventi ON co_preventivi_interventi.idintervento=in_interventi.id WHERE co_preventivi_interventi.idpreventivo='.prepare($id_record).' ORDER BY inizio DESC'); $interventi = $dbo->fetchArray('SELECT *, in_interventi.id, in_interventi.codice, (SELECT GROUP_CONCAT(DISTINCT ragione_sociale) FROM in_interventi_tecnici JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = in_interventi_tecnici.idtecnico WHERE idintervento=in_interventi.id) AS tecnici, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS inizio, (SELECT SUM(ore) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS ore, (SELECT SUM(km) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS km FROM in_interventi WHERE in_interventi.idpreventivo='.prepare($id_record).' ORDER BY inizio DESC');
if (!empty($interventi)) { if (!empty($interventi)) {
// Interventi // Interventi

View File

@ -285,3 +285,8 @@ UPDATE `zz_group_module` SET `clause` = REPLACE(`clause`, '|idagente|', '|id_ana
-- Adeguamento variabili di filtraggio per i plugin Sedi e Referenti in Anagrafiche -- Adeguamento variabili di filtraggio per i plugin Sedi e Referenti in Anagrafiche
UPDATE `zz_plugins` SET `script` = '', `options` = ' { "main_query": [ { "type": "table", "fields": "Nome, Indirizzo, Città, CAP, Provincia, Referente", "query": "SELECT an_sedi.id, an_sedi.nomesede AS Nome, an_sedi.indirizzo AS Indirizzo, an_sedi.citta AS Città, an_sedi.cap AS CAP, an_sedi.provincia AS Provincia, an_referenti.nome AS Referente FROM an_sedi LEFT OUTER JOIN an_referenti ON idsede = an_sedi.id WHERE 1=1 AND an_sedi.idanagrafica=|id_parent| HAVING 2=2 ORDER BY an_sedi.id DESC"} ]}', `directory` = 'sedi', `version` = '2.3', `compatibility` = '2.*' WHERE `name` = 'Sedi'; UPDATE `zz_plugins` SET `script` = '', `options` = ' { "main_query": [ { "type": "table", "fields": "Nome, Indirizzo, Città, CAP, Provincia, Referente", "query": "SELECT an_sedi.id, an_sedi.nomesede AS Nome, an_sedi.indirizzo AS Indirizzo, an_sedi.citta AS Città, an_sedi.cap AS CAP, an_sedi.provincia AS Provincia, an_referenti.nome AS Referente FROM an_sedi LEFT OUTER JOIN an_referenti ON idsede = an_sedi.id WHERE 1=1 AND an_sedi.idanagrafica=|id_parent| HAVING 2=2 ORDER BY an_sedi.id DESC"} ]}', `directory` = 'sedi', `version` = '2.3', `compatibility` = '2.*' WHERE `name` = 'Sedi';
UPDATE `zz_plugins` SET `script` = '', `options` = ' { "main_query": [ { "type": "table", "fields": "Nominativo, Mansione, Telefono, Indirizzo email, Sede", "query": "SELECT an_referenti.id, an_referenti.nome AS Nominativo, mansione AS Mansione, an_referenti.telefono AS Telefono, an_referenti.email AS ''Indirizzo email'', an_sedi.nomesede AS Sede FROM an_referenti LEFT OUTER JOIN an_sedi ON idsede = an_sedi.id WHERE 1=1 AND an_referenti.idanagrafica=|id_parent| HAVING 2=2 ORDER BY an_referenti.id DESC"} ]}', `directory` = 'referenti', `version` = '2.3', `compatibility` = '2.*' WHERE `name` = 'Referenti'; UPDATE `zz_plugins` SET `script` = '', `options` = ' { "main_query": [ { "type": "table", "fields": "Nominativo, Mansione, Telefono, Indirizzo email, Sede", "query": "SELECT an_referenti.id, an_referenti.nome AS Nominativo, mansione AS Mansione, an_referenti.telefono AS Telefono, an_referenti.email AS ''Indirizzo email'', an_sedi.nomesede AS Sede FROM an_referenti LEFT OUTER JOIN an_sedi ON idsede = an_sedi.id WHERE 1=1 AND an_referenti.idanagrafica=|id_parent| HAVING 2=2 ORDER BY an_referenti.id DESC"} ]}', `directory` = 'referenti', `version` = '2.3', `compatibility` = '2.*' WHERE `name` = 'Referenti';
-- Rimozione co_preventivi_interventi
ALTER TABLE `in_interventi` ADD `id_preventivo` int(11), ADD FOREIGN KEY (`id_preventivo`) REFERENCES `co_preventivi`(`id`) ON DELETE CASCADE, ADD `id_contratto` int(11), ADD FOREIGN KEY (`id_contratto`) REFERENCES `co_contratti`(`id`) ON DELETE CASCADE;
UPDATE `in_interventi` SET `id_preventivo` = (SELECT `idpreventivo` FROM `co_preventivi_interventi` WHERE `co_preventivi_interventi`.`idintervento` = `in_interventi`.`id` LIMIT 1)
DROP TABLE `co_preventivi_interventi`;

View File

@ -31,7 +31,6 @@ $tables = [
'co_pianodeiconti2', 'co_pianodeiconti2',
'co_pianodeiconti3', 'co_pianodeiconti3',
'co_preventivi', 'co_preventivi',
'co_preventivi_interventi',
'co_righe_contratti', 'co_righe_contratti',
'co_promemoria_articoli', 'co_promemoria_articoli',
'co_promemoria_righe', 'co_promemoria_righe',