mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-16 19:40:44 +01:00
Rimozione plugin P.I. precedente
This commit is contained in:
parent
1101c80006
commit
318779c01a
@ -1,206 +0,0 @@
|
||||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
include_once Modules::filepath('Fatture di vendita', 'modutil.php');
|
||||
|
||||
switch (post('op')) {
|
||||
/*
|
||||
GESTIONE ARTICOLI
|
||||
*/
|
||||
|
||||
case 'editarticolo':
|
||||
|
||||
$idriga = post('idriga');
|
||||
$idarticolo = post('idarticolo');
|
||||
$idimpianto = post('idimpianto');
|
||||
//$idautomezzo = post('idautomezzo');
|
||||
|
||||
//$idarticolo_originale = post('idarticolo_originale');
|
||||
|
||||
// Leggo la quantità attuale nell'intervento
|
||||
$q = 'SELECT qta, idautomezzo, idimpianto FROM co_righe_contratti_articoli WHERE id='.prepare($idriga);
|
||||
$rs = $dbo->fetchArray($q);
|
||||
$old_qta = $rs[0]['qta'];
|
||||
$idimpianto = $rs[0]['idimpianto'];
|
||||
//$idautomezzo = $rs[0]['idautomezzo'];
|
||||
|
||||
//$serials = array_column($dbo->select('mg_prodotti', 'serial', ['id_riga_intervento' => $idriga]), 'serial');
|
||||
|
||||
//add_movimento_magazzino($idarticolo_originale, $old_qta, ['idautomezzo' => $idautomezzo, 'idintervento' => $id_record]);
|
||||
|
||||
// Elimino questo articolo dall'intervento
|
||||
$dbo->query('DELETE FROM co_righe_contratti_articoli WHERE id='.prepare($idriga));
|
||||
|
||||
// Elimino il collegamento al componente
|
||||
//$dbo->query('DELETE FROM my_impianto_componenti WHERE idimpianto='.prepare($idimpianto).' AND idintervento='.prepare($id_record));
|
||||
|
||||
/* Ricollego l'articolo modificato all'intervento */
|
||||
/* ci può essere il caso in cui cambio idarticolo e anche qta */
|
||||
|
||||
//no break;
|
||||
|
||||
case 'addarticolo':
|
||||
|
||||
$idarticolo = post('idarticolo');
|
||||
//$idautomezzo = post('idautomezzo');
|
||||
$descrizione = post('descrizione');
|
||||
$idimpianto = post('idimpianto');
|
||||
$qta = post('qta');
|
||||
$um = post('um');
|
||||
$prezzo_vendita = post('prezzo_vendita');
|
||||
$idiva = post('idiva');
|
||||
|
||||
$sconto_unitario = post('sconto');
|
||||
$tipo_sconto = post('tipo_sconto');
|
||||
$sconto = calcola_sconto([
|
||||
'sconto' => $sconto_unitario,
|
||||
'prezzo' => $prezzo_vendita,
|
||||
'tipo' => $tipo_sconto,
|
||||
'qta' => $qta,
|
||||
]);
|
||||
|
||||
$idcontratto_riga = post('idcontratto_riga');
|
||||
|
||||
// Decremento la quantità
|
||||
//add_movimento_magazzino($idarticolo, -$qta, ['idautomezzo' => $idautomezzo, 'idintervento' => $id_record]);
|
||||
|
||||
// Aggiorno l'automezzo dell'intervento
|
||||
//$dbo->query('UPDATE in_interventi SET idautomezzo='.prepare($idautomezzo).' WHERE id='.prepare($id_record).' '.Modules::getAdditionalsQuery($id_module));
|
||||
|
||||
//$rsart = $dbo->fetchArray('SELECT abilita_serial, prezzo_acquisto FROM mg_articoli WHERE id='.prepare($idarticolo));
|
||||
//$prezzo_acquisto = $rsart[0]['prezzo_acquisto'];
|
||||
|
||||
//Calcolo iva
|
||||
$rs_iva = $dbo->fetchArray('SELECT * FROM co_iva WHERE id='.prepare($idiva));
|
||||
$desc_iva = $rs_iva[0]['descrizione'];
|
||||
|
||||
$iva = (($prezzo_vendita * $qta) - $sconto) * $rs_iva[0]['percentuale'] / 100;
|
||||
|
||||
// Aggiunto il collegamento fra l'articolo e l'intervento
|
||||
$idriga = $dbo->query('INSERT INTO co_righe_contratti_articoli(idarticolo, id_riga_contratto, idimpianto, idautomezzo, descrizione, prezzo_vendita, prezzo_acquisto, sconto, sconto_unitario, tipo_sconto, idiva, desc_iva, iva, qta, um, abilita_serial) VALUES ('.prepare($idarticolo).', '.prepare($idcontratto_riga).', '.(empty($idimpianto) ? 'NULL' : prepare($idimpianto)).', '.prepare($idautomezzo).', '.prepare($descrizione).', '.prepare($prezzo_vendita).', '.prepare($prezzo_acquisto).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($qta).', '.prepare($um).', '.prepare($rsart[0]['abilita_serial']).')');
|
||||
|
||||
/*if (!empty($serials)) {
|
||||
if ($old_qta > $qta) {
|
||||
$serials = array_slice($serials, 0, $qta);
|
||||
}
|
||||
|
||||
$dbo->sync('mg_prodotti', ['id_riga_intervento' => $idriga, 'dir' => 'entrata', 'id_articolo' => $idarticolo], ['serial' => $serials]);
|
||||
}*/
|
||||
|
||||
//link_componente_to_articolo($id_record, $idimpianto, $idarticolo, $qta);
|
||||
|
||||
break;
|
||||
|
||||
case 'unlink_articolo':
|
||||
|
||||
$idriga = post('idriga');
|
||||
//$idarticolo = post('idarticolo');
|
||||
|
||||
$dbo->query('DELETE FROM co_righe_contratti_articoli WHERE id='.prepare($idriga).' '.Modules::getAdditionalsQuery($id_module));
|
||||
|
||||
// Riporto la merce nel magazzino
|
||||
if (!empty($idriga) && !empty($id_record)) {
|
||||
// Leggo la quantità attuale nell'intervento
|
||||
//$q = 'SELECT qta, idautomezzo, idarticolo, idimpianto FROM co_righe_contratti_articoli WHERE id='.prepare($idriga);
|
||||
//$rs = $dbo->fetchArray($q);
|
||||
//$qta = $rs[0]['qta'];
|
||||
//$idarticolo = $rs[0]['idarticolo'];
|
||||
//$idimpianto = $rs[0]['idimpianto'];
|
||||
//$idautomezzo = $rs[0]['idautomezzo'];
|
||||
|
||||
// add_movimento_magazzino($idarticolo, $qta, ['idautomezzo' => $idautomezzo, 'idintervento' => $id_record]);
|
||||
|
||||
// Elimino questo articolo dall'intervento
|
||||
//$dbo->query('DELETE FROM mg_articoli_interventi WHERE id='.prepare($idriga).' AND idintervento='.prepare($id_record));
|
||||
|
||||
// Elimino il collegamento al componente
|
||||
//$dbo->query('DELETE FROM my_impianto_componenti WHERE idimpianto='.prepare($idimpianto).' AND idintervento='.prepare($id_record));
|
||||
|
||||
// Elimino i seriali utilizzati dalla riga
|
||||
//$dbo->query('DELETE FROM `mg_prodotti` WHERE id_articolo = '.prepare($idarticolo).' AND id_riga_intervento = '.prepare($id_record));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
/*
|
||||
Gestione righe generiche
|
||||
*/
|
||||
case 'addriga':
|
||||
|
||||
$descrizione = post('descrizione');
|
||||
$qta = post('qta');
|
||||
$um = post('um');
|
||||
$idiva = post('idiva');
|
||||
$prezzo_vendita = post('prezzo_vendita');
|
||||
$prezzo_acquisto = post('prezzo_acquisto');
|
||||
|
||||
$sconto_unitario = post('sconto');
|
||||
$tipo_sconto = post('tipo_sconto');
|
||||
$sconto = calcola_sconto([
|
||||
'sconto' => $sconto_unitario,
|
||||
'prezzo' => $prezzo_vendita,
|
||||
'tipo' => $tipo_sconto,
|
||||
'qta' => $qta,
|
||||
]);
|
||||
|
||||
//Calcolo iva
|
||||
$rs_iva = $dbo->fetchArray('SELECT * FROM co_iva WHERE id='.prepare($idiva));
|
||||
$desc_iva = $rs_iva[0]['descrizione'];
|
||||
|
||||
$iva = (($prezzo_vendita * $qta) - $sconto) * $rs_iva[0]['percentuale'] / 100;
|
||||
|
||||
$idcontratto_riga = post('idcontratto_riga');
|
||||
|
||||
$dbo->query('INSERT INTO co_righe_contratti_materiali(descrizione, qta, um, prezzo_vendita, prezzo_acquisto, idiva, desc_iva, iva, sconto, sconto_unitario, tipo_sconto, id_riga_contratto) VALUES ('.prepare($descrizione).', '.prepare($qta).', '.prepare($um).', '.prepare($prezzo_vendita).', '.prepare($prezzo_acquisto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($idcontratto_riga).')');
|
||||
|
||||
break;
|
||||
|
||||
case 'editriga':
|
||||
|
||||
$idriga = post('idriga');
|
||||
$descrizione = post('descrizione');
|
||||
$qta = post('qta');
|
||||
$um = post('um');
|
||||
$idiva = post('idiva');
|
||||
$prezzo_vendita = post('prezzo_vendita');
|
||||
$prezzo_acquisto = post('prezzo_acquisto');
|
||||
|
||||
$sconto_unitario = post('sconto');
|
||||
$tipo_sconto = post('tipo_sconto');
|
||||
$sconto = calcola_sconto([
|
||||
'sconto' => $sconto_unitario,
|
||||
'prezzo' => $prezzo_vendita,
|
||||
'tipo' => $tipo_sconto,
|
||||
'qta' => $qta,
|
||||
]);
|
||||
|
||||
//Calcolo iva
|
||||
$rs_iva = $dbo->fetchArray('SELECT * FROM co_iva WHERE id='.prepare($idiva));
|
||||
$desc_iva = $rs_iva[0]['descrizione'];
|
||||
|
||||
$iva = (($prezzo_vendita * $qta) - $sconto) * $rs_iva[0]['percentuale'] / 100;
|
||||
|
||||
$dbo->query('UPDATE co_righe_contratti_materiali SET '.
|
||||
' descrizione='.prepare($descrizione).','.
|
||||
' qta='.prepare($qta).','.
|
||||
' um='.prepare($um).','.
|
||||
' prezzo_vendita='.prepare($prezzo_vendita).','.
|
||||
' prezzo_acquisto='.prepare($prezzo_acquisto).','.
|
||||
' idiva='.prepare($idiva).','.
|
||||
' desc_iva='.prepare($desc_iva).','.
|
||||
' iva='.prepare($iva).','.
|
||||
' sconto='.prepare($sconto).','.
|
||||
' sconto_unitario='.prepare($sconto_unitario).','.
|
||||
' tipo_sconto='.prepare($tipo_sconto).
|
||||
' WHERE id='.prepare($idriga));
|
||||
|
||||
break;
|
||||
|
||||
case 'delriga':
|
||||
|
||||
$idriga = post('idriga');
|
||||
$dbo->query('DELETE FROM co_righe_contratti_materiali WHERE id='.prepare($idriga).' '.Modules::getAdditionalsQuery($id_module));
|
||||
|
||||
break;
|
||||
}
|
@ -1,218 +0,0 @@
|
||||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
// Prezzo modificabile solo se l'utente loggato è un tecnico (+ può vedere i prezzi) o se è amministratore
|
||||
$gruppi = Auth::user()['gruppo'];
|
||||
//$can_edit_prezzi = (in_array('Amministratori', $gruppi)) || (setting('Mostra i prezzi al tecnico') == 1 && (in_array('Tecnici', $gruppi)));
|
||||
|
||||
$idriga = get('idriga');
|
||||
//$idautomezzo = (get('idautomezzo') == 'undefined') ? '' : get('idautomezzo');
|
||||
|
||||
// Lettura idanagrafica cliente e percentuale di sconto/rincaro in base al listino
|
||||
$rs = $dbo->fetchArray('SELECT idanagrafica FROM co_contratti WHERE id='.prepare($id_record));
|
||||
|
||||
$idanagrafica = $rs[0]['idanagrafica'];
|
||||
|
||||
if (empty($idriga)) {
|
||||
$op = 'addarticolo';
|
||||
$button = '<i class="fa fa-plus"></i> '.tr('Aggiungi');
|
||||
|
||||
// valori default
|
||||
$idarticolo = '';
|
||||
$descrizione = '';
|
||||
$qta = 1;
|
||||
$um = '';
|
||||
|
||||
$prezzo_vendita = '0';
|
||||
$sconto_unitario = 0;
|
||||
|
||||
$idimpianto = 0;
|
||||
|
||||
$listino = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id = (SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica = '.prepare($idanagrafica).')');
|
||||
if (!empty($listino[0]['prc_guadagno'])) {
|
||||
$sconto_unitario = $listino[0]['prc_guadagno'];
|
||||
$tipo_sconto = 'PRC';
|
||||
}
|
||||
|
||||
(empty($idcontratto_riga)) ? $idcontratto_riga = $dbo->fetchArray('SELECT MAX(id) AS max_idcontratto_riga FROM `co_contratti_promemoria`')[0]['max_idcontratto_riga'] : '';
|
||||
} else {
|
||||
$op = 'editarticolo';
|
||||
$button = '<i class="fa fa-edit"></i> '.tr('Modifica');
|
||||
|
||||
// carico record da modificare
|
||||
$q = "SELECT *, (SELECT codice FROM mg_articoli WHERE id=co_righe_contratti_articoli.idarticolo) AS codice_articolo, (SELECT CONCAT(codice, ' - ', descrizione) FROM mg_articoli WHERE id=co_righe_contratti_articoli.idarticolo) AS descrizione_articolo FROM co_righe_contratti_articoli WHERE id=".prepare($idriga);
|
||||
$rsr = $dbo->fetchArray($q);
|
||||
|
||||
$idarticolo = $rsr[0]['idarticolo'];
|
||||
$codice_articolo = $rsr[0]['codice_articolo'];
|
||||
$descrizione = $rsr[0]['descrizione'];
|
||||
$qta = $rsr[0]['qta'];
|
||||
$um = $rsr[0]['um'];
|
||||
$idiva = $rsr[0]['idiva'];
|
||||
|
||||
$prezzo_vendita = $rsr[0]['prezzo_vendita'];
|
||||
|
||||
$sconto_unitario = $rsr[0]['sconto_unitario'];
|
||||
$tipo_sconto = $rsr[0]['tipo_sconto'];
|
||||
|
||||
$idautomezzo = $rsr[0]['idautomezzo'];
|
||||
|
||||
$idimpianto = $rsr[0]['idimpianto'];
|
||||
$idcontratto_riga = $rsr[0]['id_riga_contratto'];
|
||||
}
|
||||
|
||||
/*
|
||||
Form di inserimento
|
||||
*/
|
||||
echo '
|
||||
|
||||
<form id="add-articoli" action="'.$rootdir.'/modules/contratti/plugins/actions.php" method="post">
|
||||
<input type="hidden" name="op" value="'.$op.'">
|
||||
<input type="hidden" name="idriga" value="'.$idriga.'">
|
||||
|
||||
<input type="hidden" name="idcontratto_riga" value="'.$idcontratto_riga.'">';
|
||||
|
||||
if (!empty($idarticolo)) {
|
||||
echo '
|
||||
<input type="hidden" id="idarticolo_originale" name="idarticolo_originale" value="'.$idarticolo.'">';
|
||||
}
|
||||
|
||||
// Articolo
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "idarticolo", "required": 1, "value": "'.$idarticolo.'", "ajax-source": "articoli" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Descrizione
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "id": "descrizione_articolo", "required": 1, "value": '.json_encode($descrizione).' ]}
|
||||
</div>
|
||||
</div>
|
||||
<br>';
|
||||
|
||||
// Quantità
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "required": 1, "value": "'.$qta.'", "decimals": "qta" ]}
|
||||
</div>';
|
||||
|
||||
// Unità di misura
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Unità di misura').'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
|
||||
</div>';
|
||||
|
||||
// Impianto
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "multiple": "0", "label": "'.tr('Impianto').'", "name": "idimpianto", "values": "query=SELECT my_impianti.id AS id, my_impianti.nome AS descrizione FROM my_impianti_contratti INNER JOIN my_impianti ON my_impianti_contratti.idimpianto = my_impianti.id WHERE my_impianti_contratti.idcontratto = '.$id_record.' ORDER BY descrizione", "value": "'.$matricoleimpianti.'", "extra":"'.$readonly.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Iva
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$idiva.'", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC" ]}
|
||||
</div>';
|
||||
|
||||
// Prezzo di vendita
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo_vendita", "required": 1, "value": "'.$prezzo_vendita.'", "icon-after": "€" ]}
|
||||
</div>';
|
||||
|
||||
// Sconto
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "icon-after": "choice|untprc|'.$tipo_sconto.'", "value": "'.$sconto_unitario.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Informazioni aggiuntive
|
||||
/*echo '
|
||||
<div class="row" id="prezzi_articolo">
|
||||
<div class="col-md-4 text-center">
|
||||
<button type="button" class="btn btn-sm btn-info btn-block disabled" onclick="$(\'#prezzi\').toggleClass(\'hide\'); $(\'#prezzi\').load(\''.$rootdir."/ajax_complete.php?module=Articoli&op=getprezzi&idarticolo=' + $('#idarticolo option:selected').val() + '&idanagrafica=".$idanagrafica.'\');" disabled>
|
||||
<i class="fa fa-search"></i> '.tr('Visualizza ultimi prezzi (cliente)').'
|
||||
</button>
|
||||
<div id="prezzi" class="hide"></div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 text-center">
|
||||
<button type="button" class="btn btn-sm btn-info btn-block disabled" onclick="$(\'#prezziacquisto\').toggleClass(\'hide\'); $(\'#prezziacquisto\').load(\''.$rootdir."/ajax_complete.php?module=Articoli&op=getprezziacquisto&idarticolo=' + $('#idarticolo option:selected').val() + '&idanagrafica=".$idanagrafica.'\');" disabled>
|
||||
<i class="fa fa-search"></i> '.tr('Visualizza ultimi prezzi (acquisto)').'
|
||||
</button>
|
||||
<div id="prezziacquisto" class="hide"></div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 text-center">
|
||||
<button type="button" class="btn btn-sm btn-info btn-block disabled" onclick="$(\'#prezzivendita\').toggleClass(\'hide\'); $(\'#prezzivendita\').load(\''.$rootdir."/ajax_complete.php?module=Articoli&op=getprezzivendita&idarticolo=' + $('#idarticolo option:selected').val() + '&idanagrafica=".$idanagrafica.'\');" disabled>
|
||||
<i class="fa fa-search"></i> '.tr('Visualizza ultimi prezzi (vendita)').'
|
||||
</button>
|
||||
<div id="prezzivendita" class="hide"></div>
|
||||
</div>
|
||||
</div>
|
||||
<br>';*/
|
||||
|
||||
echo '
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$("#idarticolo").on("change", function(){
|
||||
$("#prezzi_articolo button").attr("disabled", !$(this).val());
|
||||
if($(this).val()){
|
||||
$("#prezzi_articolo button").removeClass("disabled");
|
||||
|
||||
session_set("superselect,idarticolo", $(this).val(), 0);
|
||||
$data = $(this).selectData();
|
||||
|
||||
$("#prezzo_vendita").val($data.prezzo_vendita);
|
||||
$("#descrizione_articolo").val($data.descrizione);
|
||||
$("#idiva").selectSet($data.idiva_vendita, $data.iva_vendita);
|
||||
$("#um").selectSetNew($data.um, $data.um);
|
||||
}else{
|
||||
$("#prezzi_articolo button").addClass("disabled");
|
||||
}
|
||||
|
||||
$("#prezzi").html("");
|
||||
$("#prezzivendita").html("");
|
||||
$("#prezziacquisto").html("");
|
||||
});
|
||||
});
|
||||
</script>';
|
||||
|
||||
echo '
|
||||
|
||||
<!-- PULSANTI -->
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-right">
|
||||
<button type="submit" class="btn btn-primary pull-right">'.$button.'</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>';
|
||||
|
||||
echo '
|
||||
<script src="'.$rootdir.'/lib/init.js"></script>';
|
||||
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#add-articoli').ajaxForm({
|
||||
success: function(){
|
||||
$('#bs-popup2').modal('hide');
|
||||
|
||||
// Ricarico gli articoli
|
||||
$('#articoli').load(globals.rootdir + '/modules/contratti/plugins/ajax_articoli.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&idcontratto_riga=<?php echo $idcontratto_riga; ?>');
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
@ -1,135 +0,0 @@
|
||||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
$idriga = filter('idriga');
|
||||
|
||||
//Lettura idanagrafica cliente e percentuale di sconto/rincaro in base al listino
|
||||
//$rs = $dbo->fetchArray('SELECT idanagrafica, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=.in_interventi.idanagrafica)) AS prc_sconto FROM in_interventi WHERE id='.prepare($id_record));
|
||||
//$idanagrafica = $rs[0]['idanagrafica'];
|
||||
//$prc_sconto = $rs[0]['prc_sconto'];
|
||||
|
||||
if (empty($idriga)) {
|
||||
$op = 'addriga';
|
||||
$button = '<i class="fa fa-plus"></i> '.tr('Aggiungi');
|
||||
|
||||
// valori default
|
||||
$descrizione = '';
|
||||
$qta = 1;
|
||||
$um = '';
|
||||
$prezzo_vendita = '0';
|
||||
$prezzo_acquisto = '0';
|
||||
|
||||
if (!empty($rs[0]['prc_guadagno'])) {
|
||||
$sconto_unitario = $rs[0]['prc_guadagno'];
|
||||
$tipo_sconto = 'PRC';
|
||||
}
|
||||
|
||||
(empty($idcontratto_riga)) ? $idcontratto_riga = $dbo->fetchArray('SELECT MAX(id) AS max_idcontratto_riga FROM `co_contratti_promemoria`')[0]['max_idcontratto_riga'] : '';
|
||||
} else {
|
||||
$op = 'editriga';
|
||||
$button = '<i class="fa fa-edit"></i> '.tr('Modifica');
|
||||
|
||||
// carico record da modificare
|
||||
$q = 'SELECT * FROM co_righe_contratti_materiali WHERE id='.prepare($idriga);
|
||||
$rsr = $dbo->fetchArray($q);
|
||||
|
||||
$descrizione = $rsr[0]['descrizione'];
|
||||
$qta = $rsr[0]['qta'];
|
||||
$um = $rsr[0]['um'];
|
||||
$idiva = $rsr[0]['idiva'];
|
||||
$prezzo_vendita = $rsr[0]['prezzo_vendita'];
|
||||
$prezzo_acquisto = $rsr[0]['prezzo_acquisto'];
|
||||
$idcontratto_riga = $rsr[0]['id_riga_contratto'];
|
||||
|
||||
$sconto_unitario = $rsr[0]['sconto_unitario'];
|
||||
$tipo_sconto = $rsr[0]['tipo_sconto'];
|
||||
}
|
||||
|
||||
/*
|
||||
Form di inserimento
|
||||
<form id="add-righe" action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'&idcontratto_riga='.$idcontratto_riga.'" method="post">
|
||||
*/
|
||||
echo '
|
||||
<form id="add-righe" action="'.$rootdir.'/modules/contratti/plugins/actions.php" method="post">
|
||||
<input type="hidden" name="op" value="'.$op.'">
|
||||
<input type="hidden" name="idriga" value="'.$idriga.'">
|
||||
|
||||
|
||||
<input type="hidden" name="idcontratto_riga" value="'.$idcontratto_riga.'">';
|
||||
|
||||
// Descrizione
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "id": "descrizione_riga", "name": "descrizione", "required": 1, "value": '.json_encode($descrizione).' ]}
|
||||
</div>
|
||||
</div>
|
||||
<br>';
|
||||
|
||||
// Quantità
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "required": 1, "value": "'.$qta.'", "decimals": "qta" ]}
|
||||
</div>';
|
||||
|
||||
// Unità di misura
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Unità di misura').'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
|
||||
</div>';
|
||||
|
||||
// Iva
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$idiva.'", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Prezzo di acquisto
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "'.tr('Prezzo di acquisto (un.)').'", "name": "prezzo_acquisto", "required": 1, "value": "'.$prezzo_acquisto.'", "icon-after": "€" ]}
|
||||
</div>';
|
||||
|
||||
// Prezzo di vendita
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "'.tr('Prezzo di vendita (un.)').'", "name": "prezzo_vendita", "required": 1, "value": "'.$prezzo_vendita.'", "icon-after": "€" ]}
|
||||
</div>';
|
||||
|
||||
// Sconto unitario
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "icon-after": "choice|untprc|'.$tipo_sconto.'", "value": "'.$sconto_unitario.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
echo '
|
||||
<!-- PULSANTI -->
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-right">
|
||||
<button type="submit" class="btn btn-primary pull-right">'.$button.'</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>';
|
||||
|
||||
echo '
|
||||
<script src="'.$rootdir.'/lib/init.js"></script>';
|
||||
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#add-righe').ajaxForm({
|
||||
success: function(){
|
||||
$('#bs-popup2').modal('hide');
|
||||
|
||||
// Ricarico le righe
|
||||
$('#righe').load(globals.rootdir + '/modules/contratti/plugins/ajax_righe.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&idcontratto_riga=<?php echo $idcontratto_riga; ?>');
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
@ -1,290 +0,0 @@
|
||||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
//nuovo promemoria
|
||||
$data_richiesta = date('d/m/Y');
|
||||
$disabled = '';
|
||||
$hide = 'hide';
|
||||
$op = 'edit-pianifica';
|
||||
|
||||
//mi ricavo informazioni del contratto
|
||||
$data_conclusione = $dbo->fetchArray('SELECT `data_conclusione` FROM `co_contratti` WHERE `id` = '.prepare($id_record))[0]['data_conclusione'];
|
||||
$idanagrafica = $dbo->fetchArray('SELECT `idanagrafica` FROM `co_contratti` WHERE `id` = '.prepare($id_record))[0]['idanagrafica'];
|
||||
|
||||
//tutti gli impianti a contratto
|
||||
$idimpianti = $dbo->fetchArray('SELECT GROUP_CONCAT(`idimpianto`) AS idimpianti FROM `my_impianti_contratti` WHERE `idcontratto` = '.prepare($id_record))[0]['idimpianti'];
|
||||
|
||||
$idimpianto = explode(',', $idimpianti);
|
||||
//solo se ho selezionato un solo impianto nel contratto, altrimenti non so quale sede e tecnico prendere
|
||||
if (count($idimpianto) < 2) {
|
||||
$idsede = $dbo->fetchArray('SELECT idsede FROM my_impianti WHERE id = '.prepare($idimpianto[0]))[0]['idsede'];
|
||||
$idtecnico = $dbo->fetchArray('SELECT idtecnico FROM my_impianti WHERE id = '.prepare($idimpianto[0]))[0]['idtecnico'];
|
||||
}
|
||||
|
||||
$list = '\"1\":\"'.tr('Pianificare a partire da oggi ').date('d/m/Y').'\"';
|
||||
|
||||
//promemoria esistente
|
||||
if (!empty(get('idcontratto_riga'))) {
|
||||
$idcontratto_riga = get('idcontratto_riga');
|
||||
$qp = 'SELECT *, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_contratti_promemoria.idtipointervento) AS tipointervento, (SELECT tempo_standard FROM in_tipiintervento WHERE idtipointervento = co_contratti_promemoria.idtipointervento) AS tempo_standard FROM co_contratti_promemoria WHERE id = '.$idcontratto_riga;
|
||||
$rsp = $dbo->fetchArray($qp);
|
||||
|
||||
$data_richiesta = Translator::dateToLocale($rsp[0]['data_richiesta']);
|
||||
|
||||
//sede nel promemoria
|
||||
$idsede = $rsp[0]['idsede'];
|
||||
|
||||
$tempo_standard = $rsp[0]['tempo_standard'];
|
||||
|
||||
$idtipointervento = $rsp[0]['idtipointervento'];
|
||||
|
||||
if (!empty($idsede)) {
|
||||
//if (!empty($rsp[0]['idimpianti']))
|
||||
$idimpianti = trim($rsp[0]['idimpianti']);
|
||||
$readonly = 'readonly';
|
||||
}
|
||||
|
||||
$hide = '';
|
||||
$list .= ', \"0\":\"'.tr('Pianificare a partire da questo promemoria ').$data_richiesta.'\"';
|
||||
|
||||
$op = 'pianificazione';
|
||||
}
|
||||
|
||||
// se non è impostata idcontratto_riga allora sono in fase di inserimento di nuovo promemoria e mi calcolo il prossimo id per co_contratti_promemoria
|
||||
$idcontratto_riga = empty($idcontratto_riga) ? $dbo->fetchArray('SELECT MAX(id) AS max_idcontratto_riga FROM `co_contratti_promemoria`')[0]['max_idcontratto_riga'] : '';
|
||||
$idcontratto_riga = empty($idcontratto_riga) ? 1 : '';
|
||||
|
||||
//orari inizio fine interventi (8h standard)
|
||||
$orario_inizio = '09:00';
|
||||
$orario_fine = (!empty($tempo_standard)) ? date('H:i', strtotime($orario_inizio) + ((60 * 60) * $tempo_standard)) : '17:00';
|
||||
|
||||
echo '
|
||||
<form id="add_form" action="'.$rootdir.'/editor.php?id_module='.Modules::get('Contratti')['id'].'&id_record='.$id_record.'&idcontratto_riga='.$idcontratto_riga.'" method="post">
|
||||
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
<input type="hidden" name="op" value="'.$op.'">';
|
||||
|
||||
echo '
|
||||
<!-- DATI PROMEMORIA -->
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">'.tr('Dati').'</h3>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "date", "label": "'.tr('Data promemoria').'", "name": "data_richiesta", "required": 1, "value": "'.$data_richiesta.'", "extra":"'.$readonly.'" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Tipo intervento').'", "name": "idtipointervento", "required": 1, "id": "idtipointervento_", "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC", "value": "'.$rsp[0]['idtipointervento'].'", "extra": "'.$readonly.'", "ajax-source": "tipiintervento", "value": "'.$idtipointervento.'" ]}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Sede').'", "name": "idsede_c", "values": "query=SELECT 0 AS id, \'Sede legale\' AS descrizione UNION SELECT id, CONCAT( CONCAT_WS( \' (\', CONCAT_WS(\', \', `nomesede`, `citta`), `indirizzo` ), \')\') AS descrizione FROM an_sedi WHERE idanagrafica='.$idanagrafica.'", "value": "'.$idsede.'", "extra":"'.$readonly.'", "required" : "1" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "multiple": "1", "label": "'.tr('Impianti a contratto').'", "name": "idimpianti[]", "help": "'.tr('Impianti sede selezionata').'", "values": "query=SELECT my_impianti.id AS id, my_impianti.nome AS descrizione FROM my_impianti_contratti INNER JOIN my_impianti ON my_impianti_contratti.idimpianto = my_impianti.id WHERE my_impianti_contratti.idcontratto = '.$id_record.' ORDER BY descrizione", "value": "'.$idimpianti.'", "extra":"'.$readonly.'" ]}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "richiesta", "id": "richiesta_", "extra": "'.$readonly.'", "value": "'.$rsp[0]['richiesta'].'" ]}
|
||||
</div>
|
||||
|
||||
</div>';
|
||||
|
||||
?>
|
||||
|
||||
<!-- ARTICOLI -->
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><?php echo tr('Materiale da utilizzare'); ?></h3>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="articoli">
|
||||
<?php include $docroot.'/modules/contratti/plugins/ajax_articoli.php'; ?>
|
||||
</div>
|
||||
|
||||
<?php if (empty($readonly)) {
|
||||
?>
|
||||
<button type="button" class="btn btn-primary" data-title="<?php echo tr('Aggiungi articolo'); ?>" data-target="#bs-popup2" data-toggle="modal" data-href="<?php echo $rootdir; ?>/modules/contratti/plugins/add_articolo.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&idcontratto_riga=<?php echo $idcontratto_riga; ?>" ><i class="fa fa-plus"></i> <?php echo tr('Aggiungi articolo'); ?>...</button>
|
||||
<?php
|
||||
} ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- SPESE AGGIUNTIVE -->
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><?php echo tr('Altre spese previste'); ?></h3>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="righe">
|
||||
<?php include $docroot.'/modules/contratti/plugins/ajax_righe.php'; ?>
|
||||
</div>
|
||||
|
||||
<?php if (empty($readonly)) {
|
||||
?>
|
||||
<button type="button" class="btn btn-primary" data-title="<?php echo tr('Aggiungi altre spese'); ?>" data-target="#bs-popup2" data-toggle="modal" data-href="<?php echo $rootdir; ?>/modules/contratti/plugins/add_righe.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&idcontratto_riga=<?php echo $idcontratto_riga; ?>"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi altre spese'); ?>...</button>
|
||||
<?php
|
||||
} ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
||||
echo '
|
||||
|
||||
{( "name": "filelist_and_upload", "id_record": "'.$idcontratto_riga.'", "id_module": "'.$id_module.'", "id_plugin": "'.$id_plugin.'", '.((!empty($readonly)) ? '"readonly": 1' : '"readonly": 0').' )}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--div class="col-md-8">
|
||||
{[ "type": "checkbox", "label": "'.tr('Pianifica anche date passate').'", "name": "date_passate", "value": "0", "placeholder": "'.tr('Pianificare promemoria anche con date precedenti ad oggi: ').date('d/m/Y').'" ]}
|
||||
</div-->
|
||||
|
||||
';
|
||||
|
||||
echo '
|
||||
<!-- PIANIFICAZIONE CICLICA? -->
|
||||
<div class="panel panel-primary '.$hide.'">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">'.tr('Promemoria ciclico?').'</h3>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">';
|
||||
|
||||
echo '<div class="row">
|
||||
<div class="col-md-2">
|
||||
{[ "type": "number", "label": "'.tr('Intervallo').'", "name": "intervallo", "decimals": 0, "required": 1, "icon-after": "GG", "min-value": "1" ]}
|
||||
</div>';
|
||||
|
||||
?>
|
||||
|
||||
<div class="col-md-7">
|
||||
{[ "type": "select", "label": "<?php echo tr('Inizio pianificazione'); ?>", "name": "parti_da_oggi", "values": "list=<?php echo $list; ?>" ]}
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
||||
echo '
|
||||
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "date", "label": "'.tr('Fine pianificazione').'", "help": "'.tr('Data conclusione contratto').'", "name": "data_conclusione", "id": "data_conclusione_", "extra": "readonly", "value": "'.$data_conclusione.'" ]}
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
echo '
|
||||
<!-- PIANIFICARE INTERVENTI? -->
|
||||
<div class="panel panel-primary '.$hide.'">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">'.tr('Pianificare interventi?').'</h3>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "checkbox", "label": "'.tr('Pianifica anche l\'intervento').'", "name": "pianifica_intervento", "value": "0", "placeholder": "'.tr('Pianificare già l\'intervento ').'" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Tecnici').'", "multiple": "1", "name": "idtecnico[]", "ajax-source": "tecnici", "extra": "disabled", "value": "'.$idtecnico.'" ]}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-xs-6 col-md-2">
|
||||
{[ "type": "time", "label": "'.tr('Orario inizio').'", "name": "orario_inizio", "value": "'.$orario_inizio.'", "extra": "disabled" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-xs-6 col-md-2">
|
||||
{[ "type": "time", "label": "'.tr('Orario fine').'", "name": "orario_fine", "value": "'.$orario_fine.'", "extra": "disabled" ]}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- PULSANTI -->
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-right">
|
||||
<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> '.tr('Pianifica').'</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</form>';
|
||||
|
||||
echo '
|
||||
<script src="'.$rootdir.'/lib/init.js"></script>';
|
||||
|
||||
echo '
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
if (!$("#idtipointervento_").val()){
|
||||
$("#add_form .panel-primary .panel-primary").hide();
|
||||
$("#bs-popup .btn-primary").hide();
|
||||
};
|
||||
|
||||
$("#idtipointervento_").change(function(){
|
||||
if (($(this).val()!="")){
|
||||
$("#add_form .panel-primary .panel-primary").show();
|
||||
$("#bs-popup .btn-primary").show();
|
||||
}else{
|
||||
$("#add_form .panel-primary .panel-primary").hide();
|
||||
$("#bs-popup .btn-primary").hide();
|
||||
}
|
||||
});
|
||||
|
||||
$("#pianifica_intervento").click(function() {
|
||||
|
||||
if ($(this).is(":checked")){
|
||||
$("#idtecnico").removeAttr("disabled");
|
||||
$("#idtecnico").prop("required", true);
|
||||
$("#orario_inizio").removeAttr("disabled");
|
||||
$("#orario_fine").removeAttr("disabled");
|
||||
$("#orario_inizio").prop("required", true);
|
||||
$("#orario_fine").prop("required", true);
|
||||
}else{
|
||||
$("#idtecnico").prop("disabled", true);
|
||||
$("#idtecnico").removeAttr("required");
|
||||
$("#orario_inizio").prop("disabled", true);
|
||||
$("#orario_fine").prop("disabled", true);
|
||||
$("#orario_inizio").removeAttr("required");
|
||||
$("#orario_fine").removeAttr("required");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
</script>';
|
@ -1,157 +0,0 @@
|
||||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
include_once Modules::filepath('Articoli', 'modutil.php');
|
||||
|
||||
if (!empty(get('idcontratto_riga'))) {
|
||||
$id_record = get('idcontratto_riga');
|
||||
}
|
||||
|
||||
$query = 'SELECT * FROM co_righe_contratti_articoli WHERE id_riga_contratto='.prepare($id_record).' '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY id ASC';
|
||||
$rs = $dbo->fetchArray($query);
|
||||
|
||||
if (!empty($rs)) {
|
||||
echo '
|
||||
<table class="table table-striped table-condensed table-hover table-bordered">
|
||||
<tr>
|
||||
<th>'.tr('Articolo').'</th>
|
||||
<th width="8%">'.tr('Q.tà').'</th>';
|
||||
|
||||
if (Auth::admin() || Auth::user()['gruppo'] != 'Tecnici') {
|
||||
echo '
|
||||
<th width="15%">'.tr('Prezzo di acquisto').'</th>';
|
||||
}
|
||||
|
||||
if (Auth::admin() || Auth::user()['gruppo'] != 'Tecnici') {
|
||||
echo '
|
||||
<th width="15%">'.tr('Prezzo di vendita').'</th>
|
||||
<th width="10%">'.tr('Iva').'</th>
|
||||
<th width="15%">'.tr('Imponibile').'</th>';
|
||||
}
|
||||
|
||||
if (!$record['flag_completato']) {
|
||||
echo '
|
||||
<th width="80"></th>';
|
||||
}
|
||||
echo '
|
||||
</tr>';
|
||||
|
||||
foreach ($rs as $r) {
|
||||
$extra = '';
|
||||
$mancanti = 0;
|
||||
|
||||
// Individuazione dei seriali
|
||||
if (!empty($r['idarticolo']) && !empty($r['abilita_serial'])) {
|
||||
$serials = array_column($dbo->fetchArray('SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND id_riga_intervento='.prepare($r['id'])), 'serial');
|
||||
$mancanti = $r['qta'] - count($serials);
|
||||
|
||||
if ($mancanti > 0) {
|
||||
$extra = 'class="warning"';
|
||||
} else {
|
||||
$mancanti = 0;
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
<tr '.$extra.'>
|
||||
<td>
|
||||
<input type="hidden" name="id" value="'.$r['id'].'">
|
||||
'.Modules::link('Articoli', $r['idarticolo'], (!empty($r['codice']) ? $r['codice'].' - ' : '').$r['descrizione']);
|
||||
|
||||
// Info extra (lotto, serial, altro)
|
||||
if (!empty($r['abilita_serial'])) {
|
||||
if (!empty($mancanti)) {
|
||||
echo '
|
||||
<br><b><small class="text-danger">'.tr('_NUM_ serial mancanti', [
|
||||
'_NUM_' => $mancanti,
|
||||
]).'</small></b>';
|
||||
}
|
||||
if (!empty($serials)) {
|
||||
echo '
|
||||
<br>'.tr('SN').': '.implode(', ', $serials);
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Quantità
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['qta'], 'qta').' '.$r['um'].'
|
||||
</td>';
|
||||
|
||||
if (Auth::admin() || Auth::user()['gruppo'] != 'Tecnici') {
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['prezzo_acquisto']).' €
|
||||
</td>';
|
||||
}
|
||||
|
||||
if (Auth::admin() || Auth::user()['gruppo'] != 'Tecnici') {
|
||||
// Prezzo unitario
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['prezzo_vendita']).' €';
|
||||
|
||||
if ($r['sconto_unitario'] > 0) {
|
||||
echo '
|
||||
<br><span class="label label-danger">
|
||||
- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'
|
||||
</span>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
echo '
|
||||
<td class="text-right">
|
||||
<span>'.Translator::numberToLocale($r['iva']).'</span> €';
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Prezzo di vendita
|
||||
echo '
|
||||
<td class="text-right">
|
||||
<span class="prezzo_articolo">'.Translator::numberToLocale(sum($r['prezzo_vendita'] * $r['qta'], -$r['sconto'])).'</span> €
|
||||
</td>';
|
||||
}
|
||||
|
||||
// Pulsante per riportare nel magazzino centrale.
|
||||
// Visibile solo se l'intervento non è stato nè fatturato nè completato.
|
||||
if (!$record['flag_completato']) {
|
||||
echo '
|
||||
<td>';
|
||||
|
||||
if (empty($readonly)) {
|
||||
echo '
|
||||
<button type="button" class="btn btn-warning btn-xs" data-title="'.tr('Modifica spesa').'" onclick="launch_modal(\'Modifica spesa\', \''.$rootdir.'/modules/contratti/plugins/add_articolo.php?id_module='.$id_module.'&id_record='.$id_parent.'&idriga='.$r['id'].'\', 1, \'#bs-popup2\');" >
|
||||
<i class="fa fa-edit"></i></button>
|
||||
<button type="button" class="btn btn-danger btn-xs" data-toggle="tooltip" title="'.tr('Elimina materiale').'" onclick="if(confirm(\''.tr('Eliminare questo materiale?').'\') ){ ritorna_al_magazzino(\''.$r['id'].'\'); }"><i class="fa fa-angle-double-left"></i> <i class="fa fa-truck"></i></button>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
}
|
||||
echo '
|
||||
</tr>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</table>';
|
||||
}
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
function ritorna_al_magazzino( id ){
|
||||
$.post(globals.rootdir + '/modules/contratti/plugins/actions.php', {op: 'unlink_articolo', idriga: id, id_record: '<?php echo $id_parent; ?>', id_module: '<?php echo $id_module; ?>' }, function(data, result){
|
||||
if( result == 'success' ){
|
||||
// ricarico l'elenco degli articoli
|
||||
$('#articoli').load(globals.rootdir + '/modules/contratti/plugins/ajax_articoli.php?id_module=<?php echo $id_module; ?>&id_parent=<?php echo $id_parent; ?>&id_record=<?php echo $id_record; ?>');
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
@ -1,121 +0,0 @@
|
||||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
if (!empty(get('idcontratto_riga'))) {
|
||||
$id_record = get('idcontratto_riga');
|
||||
}
|
||||
|
||||
$query = 'SELECT * FROM co_righe_contratti_materiali WHERE id_riga_contratto='.prepare($id_record).' '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY id ASC';
|
||||
$rs2 = $dbo->fetchArray($query);
|
||||
|
||||
if (count($rs2) > 0) {
|
||||
echo '
|
||||
<table class="table table-striped table-condensed table-hover table-bordered">
|
||||
<tr>
|
||||
<th>'.tr('Descrizione').'</th>
|
||||
<th width="8%">'.tr('Q.tà').'</th>
|
||||
<th width="15%">'.tr('Prezzo di acquisto').'</th>';
|
||||
|
||||
if (Auth::admin() || Auth::user()['gruppo'] != 'Tecnici') {
|
||||
echo '
|
||||
<th width="15%">'.tr('Prezzo di vendita').'</th>
|
||||
<th width="10%">'.tr('Iva').'</th>
|
||||
<th width="15%">'.tr('Subtotale').'</th>';
|
||||
}
|
||||
|
||||
if (!$record['flag_completato']) {
|
||||
echo '
|
||||
<th width="80"></th>';
|
||||
}
|
||||
echo '
|
||||
</tr>';
|
||||
|
||||
foreach ($rs2 as $r) {
|
||||
echo '
|
||||
<tr>
|
||||
<td>
|
||||
<input type="hidden" name="id" value="'.$r['id'].'">
|
||||
'.nl2br($r['descrizione']).'
|
||||
</td>';
|
||||
|
||||
// Quantità
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['qta'], 'qta').' '.$r['um'].'
|
||||
</td>';
|
||||
|
||||
//Costo unitario
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['prezzo_acquisto']).' €
|
||||
</td>';
|
||||
|
||||
if (Auth::admin() || Auth::user()['gruppo'] != 'Tecnici') {
|
||||
// Prezzo unitario
|
||||
$netto = $r['prezzo_vendita'] - $r['sconto_unitario'];
|
||||
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['prezzo_vendita']).' €';
|
||||
|
||||
if ($r['sconto_unitario'] > 0) {
|
||||
echo '
|
||||
<br><span class="label label-danger">
|
||||
- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'
|
||||
</span>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
echo '
|
||||
<td class="text-right">
|
||||
<span>'.Translator::numberToLocale($r['iva']).'</span> €';
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Prezzo di vendita
|
||||
echo '
|
||||
<td class="text-right">
|
||||
<span class="prezzo_articolo">'.Translator::numberToLocale(sum($r['prezzo_vendita'] * $r['qta'], -$r['sconto'])).'</span> €
|
||||
</td>';
|
||||
}
|
||||
|
||||
// Pulsante per riportare nel magazzino centrale.
|
||||
// Visibile solo se l'intervento non è stato nè fatturato nè completato.
|
||||
if (empty($readonly)) {
|
||||
echo '
|
||||
<td>
|
||||
|
||||
<button type="button" class="btn btn-warning btn-xs" data-title="'.tr('Modifica spesa').'" onclick="launch_modal(\'Modifica spesa\', \''.$rootdir.'/modules/contratti/plugins/add_righe.php?id_module='.$id_module.'&id_record='.$id_parent.'&idriga='.$r['id'].'\', 1, \'#bs-popup2\');" >
|
||||
<i class="fa fa-edit"></i></button>
|
||||
|
||||
|
||||
<button type="button" class="btn btn-danger btn-xs" data-toggle="tooltip" onclick="if(confirm(\''.tr('Eliminare questa spesa?').'\')){ elimina_riga( \''.$r['id'].'\' ); }"><i class="fa fa-trash"></i></button>
|
||||
</td>';
|
||||
}
|
||||
echo '
|
||||
</tr>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</table>';
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
function elimina_riga( id ){
|
||||
$.post(globals.rootdir + '/modules/contratti/plugins/actions.php', { op: 'delriga', idriga: id }, function(data, result){
|
||||
if( result=='success' ){
|
||||
//ricarico l'elenco delle righe
|
||||
$('#righe').load( globals.rootdir + '/modules/contratti/plugins/ajax_righe.php?id_module=<?php echo $id_module; ?>&id_parent=<?php echo $id_parent; ?>&id_record=<?php echo $id_record; ?>');
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
@ -1,531 +0,0 @@
|
||||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
include_once Modules::filepath('Articoli', 'modutil.php');
|
||||
|
||||
// Pianificazione intervento
|
||||
switch (filter('op')) {
|
||||
case 'add-pianifica':
|
||||
|
||||
$data_richiesta = filter('data_richiesta');
|
||||
$idtipointervento = filter('idtipointervento');
|
||||
$query = 'INSERT INTO `co_contratti_promemoria` ( `idcontratto`, `data_richiesta`, idtipointervento ) VALUES ('.prepare($id_record).', '.prepare($data_richiesta).', '.prepare($idtipointervento).' )';
|
||||
|
||||
//$are_duplicated = $dbo->fetchNum('SELECT id FROM co_contratti_promemoria WHERE data_richiesta = '.prepare($data_richiesta).' AND idtipointervento = '.prepare($idtipointervento).' AND idcontratto = '.prepare($id_record) );
|
||||
|
||||
//if (empty($are_duplicated)){
|
||||
if ($dbo->query($query)) {
|
||||
} else {
|
||||
flash()->error(tr("Errore durante l'aggiunta del promemoria!"));
|
||||
}
|
||||
//}else{
|
||||
//$_SESSION['warnings'][] = tr('Promemoria non inserito perché esiste già per questa data e per questo tipo intervento.');
|
||||
//}
|
||||
break;
|
||||
|
||||
case 'edit-pianifica':
|
||||
|
||||
$idcontratto_riga = filter('idcontratto_riga');
|
||||
|
||||
$data_richiesta = filter('data_richiesta');
|
||||
|
||||
$idtipointervento = filter('idtipointervento');
|
||||
$richiesta = filter('richiesta');
|
||||
$idsede = filter('idsede_c');
|
||||
$idimpianti = implode(',', post('idimpianti'));
|
||||
|
||||
$query = 'UPDATE co_contratti_promemoria SET idtipointervento='.prepare($idtipointervento).', data_richiesta='.prepare($data_richiesta).', richiesta='.prepare($richiesta).', idsede='.prepare($idsede).', idimpianti='.prepare($idimpianti).' WHERE id = '.prepare($idcontratto_riga);
|
||||
|
||||
if (isset($id_record)) {
|
||||
if ($dbo->query($query)) {
|
||||
flash()->info(tr('Promemoria inserito!'));
|
||||
} else {
|
||||
flash()->error(tr('Errore durante la modifica del promemoria!'));
|
||||
}
|
||||
}
|
||||
|
||||
redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin);
|
||||
|
||||
break;
|
||||
|
||||
// Eliminazione pianificazione
|
||||
case 'depianifica':
|
||||
|
||||
$id = filter('id');
|
||||
|
||||
$dbo->query('DELETE FROM `co_contratti_promemoria` WHERE id='.prepare($id));
|
||||
$dbo->query('DELETE FROM `co_righe_contratti_materiali` WHERE id_riga_contratto='.prepare($id));
|
||||
$dbo->query('DELETE FROM `co_righe_contratti_articoli` WHERE id_riga_contratto='.prepare($id));
|
||||
|
||||
flash()->info(tr('Pianificazione eliminata!'));
|
||||
|
||||
redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin);
|
||||
|
||||
break;
|
||||
|
||||
//Eliminazione tutti i promemoria di questo contratto con non hanno l'intervento associato
|
||||
case 'delete-promemoria':
|
||||
|
||||
$dbo->query('DELETE FROM `co_contratti_promemoria` WHERE idcontratto = '.$id_record.' AND idintervento IS NULL');
|
||||
$dbo->query('DELETE FROM `co_righe_contratti_materiali` WHERE id_riga_contratto IN (SELECT id FROM `co_contratti_promemoria` WHERE idcontratto = '.$id_record.' AND idintervento IS NULL ) ');
|
||||
$dbo->query('DELETE FROM `co_righe_contratti_articoli` WHERE id_riga_contratto IN (SELECT id FROM `co_contratti_promemoria` WHERE idcontratto = '.$id_record.' AND idintervento IS NULL ) ');
|
||||
|
||||
flash()->error(tr('Tutti i promemoria non associati sono stati eliminati!'));
|
||||
|
||||
redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin);
|
||||
|
||||
break;
|
||||
|
||||
//pianificazione ciclica
|
||||
case 'pianificazione':
|
||||
|
||||
$idcontratto_riga = filter('idcontratto_riga');
|
||||
$intervallo = filter('intervallo');
|
||||
$parti_da_oggi = post('parti_da_oggi');
|
||||
|
||||
//if principale
|
||||
if (!empty($idcontratto_riga) && !empty($intervallo)) {
|
||||
$qp = 'SELECT *, (SELECT idanagrafica FROM co_contratti WHERE id = '.$id_record.' ) AS idanagrafica, (SELECT data_conclusione FROM co_contratti WHERE id = '.$id_record.' ) AS data_conclusione, '.
|
||||
'(SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_contratti_promemoria.idtipointervento) AS tipointervento FROM co_contratti_promemoria '.
|
||||
'WHERE co_contratti_promemoria.id = '.$idcontratto_riga;
|
||||
$rsp = $dbo->fetchArray($qp);
|
||||
|
||||
$idtipointervento = $rsp[0]['idtipointervento'];
|
||||
$idsede = $rsp[0]['idsede'];
|
||||
$richiesta = $rsp[0]['richiesta'];
|
||||
|
||||
$data_richiesta = $rsp[0]['data_richiesta'];
|
||||
$idimpianti = $rsp[0]['idimpianti'];
|
||||
|
||||
//mi serve per la pianificazione dei promemoria
|
||||
$data_conclusione = $rsp[0]['data_conclusione'];
|
||||
|
||||
//mi serve per la pianificazione interventi
|
||||
$idanagrafica = $rsp[0]['idanagrafica'];
|
||||
|
||||
//se voglio pianificare anche le date precedenti ad oggi (parto da questo promemoria)
|
||||
if ($parti_da_oggi) {
|
||||
//oggi
|
||||
$min_date = date('Y-m-d');
|
||||
} else {
|
||||
$min_date = date('Y-m-d', strtotime($data_richiesta));
|
||||
}
|
||||
|
||||
//inizio controllo data_conclusione, data valida e maggiore della $min_date
|
||||
if ((date('Y', strtotime($data_conclusione)) > 1970) && (date('Y-m-d', strtotime($min_date)) <= date('Y-m-d', strtotime($data_conclusione)))) {
|
||||
//$_SESSION['errors'][] = '1';
|
||||
|
||||
$i = 0;
|
||||
//Ciclo partendo dalla data_richiesta fino all data conclusione del contratto
|
||||
while (date('Y-m-d', strtotime($data_richiesta)) <= date('Y-m-d', strtotime($data_conclusione))) {
|
||||
//$_SESSION['errors'][] = '2';
|
||||
|
||||
//calcolo nuova data richiesta, non considero l'intervallo al primo ciclo
|
||||
$data_richiesta = date('Y-m-d', strtotime($data_richiesta.' + '.(($i == 0) ? 0 : $intervallo).' days'));
|
||||
++$i;
|
||||
|
||||
//$_SESSION['errors'][] = 'data_richiesta: '.date('Y-m-d', strtotime($data_richiesta));
|
||||
//$_SESSION['errors'][] = 'data_conclusione: '.date('Y-m-d', strtotime($data_conclusione));
|
||||
//$_SESSION['errors'][] = 'min_date: '.$min_date;
|
||||
|
||||
//controllo nuova data richiesta --> solo date maggiori o uguali di [oggi o data richiesta iniziale] ma che non superano la data di fine del contratto
|
||||
if ((date('Y-m-d', strtotime($data_richiesta)) >= $min_date) && (date('Y-m-d', strtotime($data_richiesta)) <= date('Y-m-d', strtotime($data_conclusione)))) {
|
||||
//$_SESSION['errors'][] = '3';
|
||||
//Controllo che non esista già un promemoria idcontratto, idtipointervento e data_richiesta.
|
||||
if (count($dbo->fetchArray("SELECT id FROM co_contratti_promemoria WHERE data_richiesta = '".$data_richiesta."' AND idtipointervento = '".$idtipointervento."' AND idcontratto = '".$id_record."' ")) == 0) {
|
||||
//inserisco il nuovo promemoria
|
||||
$query = 'INSERT INTO `co_contratti_promemoria`(`idcontratto`, `idtipointervento`, `data_richiesta`, `richiesta`, `idsede`, `idimpianti` ) VALUES('.prepare($id_record).', '.prepare($idtipointervento).', '.prepare($data_richiesta).', '.prepare($richiesta).', '.prepare($idsede).', '.prepare($idimpianti).')';
|
||||
|
||||
if ($dbo->query($query)) {
|
||||
$idriga = $dbo->lastInsertedID();
|
||||
|
||||
//copio anche righe materiali nel nuovo promemoria
|
||||
$dbo->query('INSERT INTO co_righe_contratti_materiali (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva, desc_iva,iva,id_riga_contratto,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva, desc_iva,iva,'.$idriga.',sconto,sconto_unitario,tipo_sconto FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
|
||||
//copio righe articoli nel nuovo promemoria
|
||||
$dbo->query('INSERT INTO co_righe_contratti_articoli (idarticolo, id_riga_contratto,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idriga.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
|
||||
flash()->info(tr('Promemoria intervento pianificato!'));
|
||||
}
|
||||
} else {
|
||||
flash()->warning(tr('Esiste già un promemoria pianificato per il '.Translator::dateToLocale($data_richiesta).'.'));
|
||||
}
|
||||
|
||||
//Controllo che non esista già un intervento collegato a questo promemoria e, se ho spuntato di creare l'intervento, creo già anche quello
|
||||
if ((empty($dbo->fetchArray("SELECT idintervento FROM co_contratti_promemoria WHERE id = '".((empty($idriga)) ? $idcontratto_riga : $idriga)."'")[0]['idintervento'])) && (post('pianifica_intervento'))) {
|
||||
//pianificare anche l' intervento?
|
||||
//if (post('pianifica_intervento')) {
|
||||
/*$orario_inizio = post('orario_inizio');
|
||||
$orario_fine = post('orario_fine');*/
|
||||
|
||||
//$idanagrafica = 2;
|
||||
|
||||
//intervento sempre nello stato "In programmazione"
|
||||
$idstatointervento = 'WIP';
|
||||
|
||||
//calcolo codice intervento
|
||||
$formato = setting('Formato codice intervento');
|
||||
$template = str_replace('#', '%', $formato);
|
||||
|
||||
$rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice=(SELECT MAX(CAST(codice AS SIGNED)) FROM in_interventi) AND codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1');
|
||||
if (!empty($rs[0]['codice'])) {
|
||||
$codice = Util\Generator::generate($formato, $rs[0]['codice']);
|
||||
}
|
||||
|
||||
if (empty($codice)) {
|
||||
$rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1');
|
||||
$codice = Util\Generator::generate($formato, $rs[0]['codice']);
|
||||
}
|
||||
|
||||
// Creo intervento
|
||||
$dbo->insert('in_interventi', [
|
||||
'idanagrafica' => $idanagrafica,
|
||||
'idclientefinale' => post('idclientefinale') ?: 0,
|
||||
'idstatointervento' => $idstatointervento,
|
||||
'idtipointervento' => $idtipointervento,
|
||||
'idsede' => $idsede ?: 0,
|
||||
'idautomezzo' => $idautomezzo ?: 0,
|
||||
|
||||
'codice' => $codice,
|
||||
'data_richiesta' => $data_richiesta,
|
||||
'richiesta' => $richiesta,
|
||||
]);
|
||||
|
||||
$idintervento = $dbo->lastInsertedID();
|
||||
|
||||
$idtecnici = post('idtecnico');
|
||||
|
||||
//aggiungo i tecnici
|
||||
foreach ($idtecnici as $idtecnico) {
|
||||
add_tecnico($idintervento, $idtecnico, $data_richiesta.' '.post('orario_inizio'), $data_richiesta.' '.post('orario_fine'), $id_record);
|
||||
}
|
||||
|
||||
//collego l'intervento ai promemoria
|
||||
$dbo->query('UPDATE co_contratti_promemoria SET idintervento='.prepare($idintervento).' WHERE id='.prepare(((empty($idriga)) ? $idcontratto_riga : $idriga)));
|
||||
|
||||
//copio le righe dal promemoria all'intervento
|
||||
$dbo->query('INSERT INTO in_righe_interventi (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,idintervento,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,'.$idintervento.',sconto,sconto_unitario,tipo_sconto FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
|
||||
//copio gli articoli dal promemoria all'intervento
|
||||
$dbo->query('INSERT INTO mg_articoli_interventi (idarticolo, idintervento,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idintervento.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
|
||||
//copio gli allegati dal promemoria all'intervento
|
||||
$dbo->query('INSERT INTO zz_files (nome,filename,original,category,id_module,id_record) SELECT t.nome, t.filename, t.original, t.category, '.Modules::get('Interventi')['id'].', '.$idintervento.' FROM zz_files t WHERE t.id_record = '.$idcontratto_riga.' AND t.id_plugin = '.$id_plugin.'');
|
||||
|
||||
// Decremento la quantità per ogni articolo copiato
|
||||
$rs_articoli = $dbo->fetchArray('SELECT * FROM mg_articoli_interventi WHERE idintervento = '.$idintervento.' ');
|
||||
foreach ($rs_articoli as $rs_articolo) {
|
||||
add_movimento_magazzino($rs_articolo['idarticolo'], -force_decimal($rs_articolo['qta']), ['idautomezzo' => $rs_articolo['idautomezzo'], 'idintervento' => $idintervento]);
|
||||
}
|
||||
|
||||
// Collego gli impianti del promemoria all' intervento appena inserito
|
||||
if (!empty($idimpianti)) {
|
||||
$rs_idimpianti = explode(',', $idimpianti);
|
||||
foreach ($rs_idimpianti as $idimpianto) {
|
||||
$dbo->query('INSERT INTO my_impianti_interventi (idintervento, idimpianto) VALUES ('.$idintervento.', '.prepare($idimpianto).' )');
|
||||
}
|
||||
}
|
||||
|
||||
// $_SESSION['infos'][] = tr('Intervento '.$codice.' pianificato correttamente.');
|
||||
|
||||
flash()->info(tr('Interventi pianificati correttamente'));
|
||||
//fine if pianificazione intervento
|
||||
|
||||
//}
|
||||
} elseif (post('pianifica_intervento')) {
|
||||
flash()->warning(tr('Esiste già un intervento pianificato per il '.Translator::dateToLocale($data_richiesta).'.'));
|
||||
}
|
||||
}
|
||||
//fine controllo nuova data richiesta
|
||||
|
||||
/*}else {
|
||||
$_SESSION['errors'][] = tr('Errore durante esecuzione query di pianificazione. #'.$idcontratto_riga);
|
||||
}*/
|
||||
}
|
||||
//fine ciclo while
|
||||
} else {
|
||||
flash()->error(tr('Nessuna data di conclusione del contratto oppure quest\'ultima è già trascorsa, impossibile pianificare nuovi promemoria'));
|
||||
}
|
||||
//fine controllo data_conclusione
|
||||
} else {
|
||||
flash()->error(tr('Errore durante la pianificazione. #'.$idcontratto_riga));
|
||||
}
|
||||
//fine if principale
|
||||
|
||||
redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin);
|
||||
break;
|
||||
}
|
||||
|
||||
// Righe già inserite
|
||||
$qp = 'SELECT *, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_contratti_promemoria.idtipointervento) AS tipointervento FROM co_contratti_promemoria WHERE idcontratto='.prepare($id_record).' ORDER BY data_richiesta ASC';
|
||||
$rsp = $dbo->fetchArray($qp);
|
||||
|
||||
//intervento/promemoria pianificabile
|
||||
$pianificabile = $dbo->fetchNum('SELECT id FROM co_staticontratti WHERE pianificabile = 1 AND descrizione = '.prepare($record['stato']));
|
||||
|
||||
$stati_pianificabili = $dbo->fetchArray('SELECT GROUP_CONCAT(`descrizione`) AS stati_pianificabili FROM `co_staticontratti` WHERE `pianificabile` = 1')[0]['stati_pianificabili'];
|
||||
|
||||
echo '
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title"><span class="tip" title="'.tr('I promemoria verranno visualizzati sulla \'Dashboard\' e serviranno per semplificare la pianificazione del giorno dell\'intervento, ad esempio nel caso di interventi con cadenza mensile.').'"" >'.tr('Pianificazione interventi').' <i class="fa fa-question-circle-o"></i></span> </h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>'.tr('Puoi <b>pianificare dei "promemoria" o direttamente gli interventi</b> da effettuare entro determinate scadenze. Per poter pianificare i promemoria il contratto deve essere in uno dei seguenti stati: <b>'.$stati_pianificabili.'</b> e la <b>data di conclusione</b> definita').'.</p>';
|
||||
|
||||
// Nessun intervento pianificato
|
||||
if (count($rsp) != 0) {
|
||||
echo '<br><h5>'.tr('Lista promemoria ed eventuali interventi associati').':</h5>';
|
||||
echo '
|
||||
<table class="table table-condensed table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>'.tr('Data').'</th>
|
||||
<th>'.tr('Tipo intervento').'</th>
|
||||
<th>'.tr('Descrizione').'</th>
|
||||
<th>'.tr('Intervento').'</th>
|
||||
<th>'.tr('Sede').'</th>
|
||||
<th>'.tr('Impianti').'</th>
|
||||
<th>'.tr('Materiali').'</th>
|
||||
<th>'.tr('Allegati').'</th>
|
||||
<th class="text-right" >'.tr('Opzioni').'</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
|
||||
// Elenco promemoria
|
||||
for ($i = 0; $i < sizeof($rsp); ++$i) {
|
||||
// Sede
|
||||
if ($rsp[$i]['idsede'] == '-1') {
|
||||
echo '- '.('Nessuna').' -';
|
||||
} elseif (empty($rsp[$i]['idsede'])) {
|
||||
$info_sede = tr('Sede legale');
|
||||
} else {
|
||||
$rsp2 = $dbo->fetchArray("SELECT id, CONCAT( CONCAT_WS( ' (', CONCAT_WS(', ', nomesede, citta), indirizzo ), ')') AS descrizione FROM an_sedi WHERE id=".prepare($rsp[$i]['idsede']));
|
||||
|
||||
$info_sede = $rsp2[0]['descrizione'];
|
||||
}
|
||||
|
||||
// Intervento svolto
|
||||
if (!empty($rsp[$i]['idintervento'])) {
|
||||
$rsp2 = $dbo->fetchArray('SELECT id, codice, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS data FROM in_interventi WHERE id='.prepare($rsp[$i]['idintervento']));
|
||||
|
||||
$info_intervento = Modules::link('Interventi', $rsp2[0]['id'], tr('Intervento num. _NUM_ del _DATE_', [
|
||||
'_NUM_' => $rsp2[0]['codice'],
|
||||
'_DATE_' => Translator::dateToLocale($rsp2[0]['data']),
|
||||
]));
|
||||
|
||||
$disabled = 'disabled';
|
||||
$title = 'Per eliminare il promemoria, eliminare prima l\'intervento associato.';
|
||||
} else {
|
||||
$info_intervento = '- '.('Nessuno').' -';
|
||||
$disabled = '';
|
||||
$title = 'Elimina promemoria...';
|
||||
}
|
||||
|
||||
//data_conclusione contratto
|
||||
if (date('Y', strtotime($record['data_conclusione'])) < 1971) {
|
||||
$record['data_conclusione'] = '';
|
||||
}
|
||||
|
||||
//info impianti
|
||||
$info_impianti = '';
|
||||
if (!empty($rsp[$i]['idimpianti'])) {
|
||||
$rsp3 = $dbo->fetchArray('SELECT id, matricola, nome FROM my_impianti WHERE id IN ('.($rsp[$i]['idimpianti']).')');
|
||||
if (!empty($rsp3)) {
|
||||
for ($a = 0; $a < count($rsp3); ++$a) {
|
||||
$info_impianti .= Modules::link('MyImpianti', $rsp3[$a]['id'], tr('_NOME_ (_MATRICOLA_)', [
|
||||
'_NOME_' => $rsp3[$a]['nome'],
|
||||
'_MATRICOLA_' => $rsp3[$a]['matricola'],
|
||||
])).'<br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//info materiali/articoli
|
||||
$rsp4 = $dbo->fetchArray('SELECT id, descrizione,qta,um,prezzo_vendita, \'\' AS idarticolo FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.prepare($rsp[$i]['id']).'
|
||||
UNION SELECT id, descrizione,qta,um,prezzo_vendita, idarticolo FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.prepare($rsp[$i]['id']));
|
||||
|
||||
$info_materiali = '';
|
||||
if (!empty($rsp4)) {
|
||||
for ($b = 0; $b < count($rsp4); ++$b) {
|
||||
$info_materiali .= tr(' _QTA_ _UM_ x _DESC_', [
|
||||
'_DESC_' => ((!empty($rsp4[$b]['idarticolo'])) ? Modules::link('Articoli', $rsp4[$b]['idarticolo'], $rsp4[$b]['descrizione']) : $rsp4[$b]['descrizione']),
|
||||
'_QTA_' => Translator::numberToLocale($rsp4[$b]['qta']),
|
||||
'_UM_' => $rsp4[$b]['um'],
|
||||
'_PREZZO_' => $rsp4[$b]['prezzo_vendita'],
|
||||
]).'<br>';
|
||||
}
|
||||
}
|
||||
|
||||
//info allegati
|
||||
$rsp5 = $dbo->fetchArray('SELECT nome, original FROM zz_files WHERE id_record = '.prepare($rsp[$i]['id']).' AND id_plugin = '.$id_plugin);
|
||||
|
||||
$info_allegati = '';
|
||||
if (!empty($rsp5)) {
|
||||
for ($b = 0; $b < count($rsp5); ++$b) {
|
||||
$info_allegati .= tr(' _NOME_ (_ORIGINAL_)', [
|
||||
'_ORIGINAL_' => $rsp5[$b]['original'],
|
||||
'_NOME_' => $rsp5[$b]['nome'],
|
||||
]).'<br>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
<tr>
|
||||
<td>'.Translator::dateToLocale($rsp[$i]['data_richiesta']).'<!--br><small>'.Translator::dateToLocale($record['data_conclusione']).'</small--></td>
|
||||
<td>'.$rsp[$i]['tipointervento'].'</td>
|
||||
<td>'.nl2br($rsp[$i]['richiesta']).'</td>
|
||||
<td>'.$info_intervento.'</td>
|
||||
<td>'.$info_sede.'</td>
|
||||
<td>'.$info_impianti.'</td>
|
||||
<td>'.$info_materiali.'</td>
|
||||
<td>'.$info_allegati.'</td>
|
||||
<td align="right">';
|
||||
|
||||
echo '
|
||||
<button type="button" class="btn btn-warning btn-sm" title="Pianifica..." data-toggle="tooltip" onclick="launch_modal(\'Pianifica\', \''.$rootdir.'/modules/contratti/plugins/addpianficazione.php?id_module='.Modules::get('Contratti')['id'].'&id_plugin='.Plugins::get('Pianificazione interventi')['id'].'&ref=interventi_contratti&id_record='.$id_record.'&idcontratto_riga='.$rsp[$i]['id'].'\');"'.((!empty($pianificabile) && strtotime($record['data_conclusione'])) ? '' : ' disabled').'><i class="fa fa-clock-o"></i></button>';
|
||||
|
||||
echo '
|
||||
<button type="button" '.$disabled.' class="btn btn-primary btn-sm '.$disabled.' " title="Pianifica intervento ora..." data-toggle="tooltip" onclick="launch_modal(\'Pianifica intervento\', \''.$rootdir.'/add.php?id_module='.Modules::get('Interventi')['id'].'&ref=interventi_contratti&idcontratto='.$id_record.'&idcontratto_riga='.$rsp[$i]['id'].'\');"'.(!empty($pianificabile) ? '' : ' disabled').'><i class="fa fa-calendar"></i></button>';
|
||||
|
||||
echo '
|
||||
<button type="button" '.$disabled.' title="'.$title.'" class="btn btn-danger btn-sm ask '.$disabled.' " data-op="depianifica" data-id="'.$rsp[$i]['id'].'">
|
||||
<i class="fa fa-trash"></i>
|
||||
</button>';
|
||||
|
||||
echo '
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
echo '
|
||||
</tbody>
|
||||
</table>';
|
||||
|
||||
echo '<br><div class="pull-right">';
|
||||
|
||||
if (count($rsp) > 0) {
|
||||
echo ' <button type="button" title="Elimina tutti i promemoria non associati ad intervento." class="btn btn-danger ask tip" data-op="delete-promemoria" >
|
||||
<i class="fa fa-trash"></i> '.tr('Elimina promemoria').'
|
||||
</button>';
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
echo ' <button type="button" title="Aggiungi un nuovo promemoria da pianificare." data-toggle="tooltip" class="btn btn-primary" id="add_promemoria">
|
||||
<i class="fa fa-plus"></i> '.tr('Nuovo promemoria').'
|
||||
</button>';
|
||||
|
||||
/*
|
||||
Nuovo intervento
|
||||
*/
|
||||
/*echo '
|
||||
<br><h5>'.tr('Pianifica un nuovo promemoria per un intervento').':</h5>
|
||||
<form action="" method="post">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
<input type="hidden" name="op" value="pianifica">
|
||||
|
||||
<table class="table table-condensed table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>'.tr('Entro il').'*</th>
|
||||
<th>'.tr('Tipo intervento').'*</th>
|
||||
<th>'.tr('Descrizione').'</th>
|
||||
<th>'.tr('Sede').'</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
{[ "type": "date", "placeholder": "'.tr('Entro il').'", "name": "data_richiesta", "required": 1 ]}
|
||||
</td>
|
||||
<td>
|
||||
{[ "type": "select", "placeholder": "'.tr('Tipo intervento').'", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC", "value": "'.$rsp[0]['idtipointervento'].'" ]}
|
||||
</td>
|
||||
<td>
|
||||
{[ "type": "textarea", "placeholder": "'.tr('Descrizione').'", "name": "richiesta" ]}
|
||||
</td>
|
||||
<td>
|
||||
{[ "type": "select", "placeholder": "'.tr('Sede').'", "name": "idsede_c", "values": "query=SELECT 0 AS id, \'Sede legale\' AS descrizione UNION SELECT id, CONCAT( CONCAT_WS( \' (\', CONCAT_WS(\', \', `nomesede`, `citta`), `indirizzo` ), \')\') AS descrizione FROM an_sedi WHERE idanagrafica='.$record['idanagrafica'].'", "value": "0" ]}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="pull-right">
|
||||
<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> '.tr('Aggiungi').'</button>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</form>';*/
|
||||
|
||||
echo '
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
$inputOptions = $dbo->fetchArray('SELECT GROUP_CONCAT(CONCAT(\'"\', idtipointervento, \'"\',\':\', \'"\', descrizione, \'"\')) AS inputOptions FROM `in_tipiintervento`')[0]['inputOptions'];
|
||||
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
function askTipoIntervento () {
|
||||
|
||||
swal({
|
||||
|
||||
title: '<?php echo tr('Aggiungere un nuovo promemoria?'); ?>',
|
||||
type: "info",
|
||||
showCancelButton: true,
|
||||
confirmButtonText: '<?php echo tr('Aggiungi'); ?>',
|
||||
confirmButtonClass: 'btn btn-lg btn-success',
|
||||
input: 'select',
|
||||
inputOptions: {<?php echo $inputOptions; ?>},
|
||||
inputPlaceholder: '<?php echo tr('Tipo intervento'); ?>',
|
||||
inputValidator: (value) => {
|
||||
return new Promise((resolve) => {
|
||||
if (value === '') {
|
||||
|
||||
alert ('Seleziona un tipo intervento');
|
||||
$('.swal2-select').attr('disabled', false);
|
||||
$('.swal2-confirm').attr('disabled', false);
|
||||
$('.swal2-cancel').attr('disabled', false);
|
||||
|
||||
} else {
|
||||
resolve()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
}).then(
|
||||
function (result) {
|
||||
prev_html = $("#add_promemoria").html();
|
||||
$("#add_promemoria").html("<i class='fa fa-spinner fa-pulse fa-fw'></i> <?php echo tr('Attendere...'); ?>");
|
||||
$("#add_promemoria").prop('disabled', true);
|
||||
|
||||
$.post( "<?php echo $rootdir; ?>/editor.php?id_module=<?php echo Modules::get('Contratti')['id']; ?>&id_record=<?php echo $id_record; ?>", { backto: "record-edit", op: "add-pianifica", data_richiesta: '<?php echo date('Y-m-d'); ?>', idtipointervento: $('.swal2-select').val() })
|
||||
.done(function( data ) {
|
||||
|
||||
launch_modal('Nuovo promemoria', '<?php echo $rootdir; ?>/modules/contratti/plugins/addpianficazione.php?id_module=<?php echo Modules::get('Contratti')['id']; ?>&id_plugin=<?php echo Plugins::get('Pianificazione interventi')['id']; ?>&ref=interventi_contratti&id_record=<?php echo $id_record; ?>&idcontratto_riga='+data+'', 1, '#bs-popup');
|
||||
|
||||
$("#add_promemoria").html(prev_html);
|
||||
$("#add_promemoria").prop('disabled', false);
|
||||
|
||||
});
|
||||
},
|
||||
function (dismiss) {}
|
||||
);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
$( "#add_promemoria" ).click(function() {
|
||||
|
||||
askTipoIntervento();
|
||||
|
||||
});
|
||||
</script>
|
Loading…
x
Reference in New Issue
Block a user