1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-07 23:28:50 +01:00

Potenziamento plugin Pianificazione interventi da contratto

This commit is contained in:
Luca 2018-05-09 18:36:32 +02:00
parent a961e57b99
commit b2120044d3
7 changed files with 816 additions and 26 deletions

View File

@ -0,0 +1,219 @@
<?php
include_once __DIR__.'/../../../core.php';
// Prezzo modificabile solo se l'utente loggato è un tecnico (+ può vedere i prezzi) o se è amministratore
$rs = $dbo->fetchArray('SELECT nome FROM zz_groups WHERE id IN(SELECT idgruppo FROM zz_users WHERE id='.prepare($_SESSION['id_utente']).')');
for ($i = 0; $i < count($rs); ++$i) {
$gruppi[$i] = $rs[$i]['nome'];
}
$can_edit_prezzi = (in_array('Amministratori', $gruppi)) || (get_var('Mostra i prezzi al tecnico') == 1 && (in_array('Tecnici', $gruppi)));
$idriga = get('idriga');
$idautomezzo = (get('idautomezzo') == 'undefined') ? '' : get('idautomezzo');
$_SESSION['superselect']['idintervento'] = get('id_record');
// Lettura idanagrafica cliente e percentuale di sconto/rincaro in base al listino
$rs = $dbo->fetchArray('SELECT idanagrafica FROM in_interventi 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';
}
} 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=mg_articoli_interventi.idarticolo) AS codice_articolo, (SELECT CONCAT(codice, ' - ', descrizione) FROM mg_articoli WHERE id=mg_articoli_interventi.idarticolo) AS descrizione_articolo FROM mg_articoli_interventi 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'];
}
/*
Form di inserimento
*/
echo '
<form id="add_form" action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'" method="post">
<input type="hidden" name="op" value="'.$op.'">
<input type="hidden" id="idautomezzo" name="idautomezzo" value="'.$idautomezzo.'">
<input type="hidden" name="idriga" value="'.$idriga.'">';
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').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
</div>';
// Impianto
echo '
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Impianto su cui installare').'", "name": "idimpianto", "value": "'.$idimpianto.'", "ajax-source": "impianti" ]}
</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": "&euro;" ]}
</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"><i class="fa fa-plus"></i> '.tr('Aggiungi').'</button>
</div>
</div>
</form>';
echo '
<script src="'.$rootdir.'/lib/init.js"></script>';
?>
<script type="text/javascript">
$(document).ready(function() {
$('#add_form').ajaxForm({
success: function(){
$('#bs-popup').modal('hide');
// Ricarico gli articoli
$('#articoli').load(globals.rootdir + '/modules/interventi/ajax_articoli.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
// Ricarico la tabella dei costi
$('#costi').load(globals.rootdir + '/modules/interventi/ajax_costi.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
}
});
});
</script>

View File

@ -0,0 +1,131 @@
<?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';
}
} else {
$op = 'editriga';
$button = '<i class="fa fa-edit"></i> '.tr('Modifica');
// carico record da modificare
$q = 'SELECT * FROM in_righe_interventi 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'];
$sconto_unitario = $rsr[0]['sconto_unitario'];
$tipo_sconto = $rsr[0]['tipo_sconto'];
}
/*
Form di inserimento
*/
echo '
<form id="add-righe" action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'" method="post">
<input type="hidden" name="op" value="'.$op.'">
<input type="hidden" name="idriga" value="'.$idriga.'">';
// 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').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "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": "&euro;" ]}
</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": "&euro;" ]}
</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-popup').modal('hide');
// Ricarico le righe
$('#righe').load(globals.rootdir + '/modules/interventi/ajax_righe.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
// Ricarico la tabella dei costi
$('#costi').load(globals.rootdir + '/modules/interventi/ajax_costi.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
}
});
});
</script>

View File

@ -4,46 +4,144 @@ include_once __DIR__.'/../../../core.php';
//<form action="plugin_editor.php?id_plugin=$id_plugin$&id_module=$id_module$&id_parent=$id_parent$" method="post" role="form">
$idcontratto_riga = $get['idcontratto_riga'];
$qp = 'SELECT *, (SELECT data_conclusione FROM co_contratti WHERE id = '.$id_record.' ) AS data_conclusione, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_righe_contratti.idtipointervento) AS tipointervento FROM co_righe_contratti WHERE id = '.$idcontratto_riga;
$rsp = $dbo->fetchArray($qp);
$data_richiesta = readDate($rsp[0]['data_richiesta']);
$data_richiesta = date('d/m/Y');
$disabled = '';
$hide = 'hide';
//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'];
$list = '\"1\":\"'.tr('Pianificare a partire da oggi ').date('d/m/Y').'\"';
if (!empty($get['idcontratto_riga'])){
$idcontratto_riga = $get['idcontratto_riga'];
$qp = 'SELECT *, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_righe_contratti.idtipointervento) AS tipointervento FROM co_righe_contratti WHERE id = '.$idcontratto_riga;
$rsp = $dbo->fetchArray($qp);
$data_richiesta = readDate($rsp[0]['data_richiesta']);
$matricoleimpianti = trim($rsp[0]['idimpianti']);
$idsede = $rsp[0]['idsede'];
$readonly = 'readonly';
$hide = '';
$list .= ', \"0\":\"'.tr('Pianificare a partire da questo promemoria ').$data_richiesta.'\"';
}
//orari inizio fine interventi
$orario_inizio = '09:00';
$orario_fine = '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="pianificazione">
<input type="hidden" name="op" value="pianificazione">';
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-7">
{[ "type": "select", "label": "'.tr('Tipo intervento').'", "name": "idtipointervento", "id": "idtipointervento_", "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC", "value": "'.$rsp[0]['idtipointervento'].'", "extra": "disabled" ]}
<div class="col-md-6">
{[ "type": "date", "label": "'.tr('Entro il').'", "name": "data_richiesta", "required": 1, "value": "'.$data_richiesta.'", "extra":"'.$readonly.'" ]}
</div>
<div class="col-md-5">
{[ "type": "number", "label": "'.tr('Intervallo').'", "name": "intervallo", "class": "", "decimals": 0, "required": 1, "icon-after": "GG", "min-value": "1" ]}
<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.'" ]}
</div>
</div>
<div class="row">
<div class="col-md-6">
{[ "type": "select", "multiple": "1", "label": "'.tr('Impianti').'", "name": "matricolaimpianto_[]", "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 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.'" ]}
</div>
</div>
<div class="row">
<div class="col-md-12">
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "placeholder": "'.tr('Descrizione').'", "name": "richiesta", "id": "richiesta_", "extra": "readonly", "value": "'.$rsp[0]['richiesta'].'" ]}
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "richiesta", "id": "richiesta_", "extra": "'.$readonly.'", "value": "'.$rsp[0]['richiesta'].'" ]}
</div>
</div>
</div>';
?>
<!-- ARTICOLI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Materiale utilizzato'); ?></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-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; ?>&idriga=0" ><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'); ?></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-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; ?>"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi altre spese'); ?>...</button>
<?php
} ?>
</div>
</div>
<?php
echo '</div>
</div>
<div class="row">
@ -53,10 +151,26 @@ echo '
';
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", "class": "", "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= \"0\":\"<?php echo tr('Pianificare a partire da questo promemoria ').$data_richiesta; ?>\", \"1\":\"<?php echo tr('Pianificare a partire da oggi ').date('d/m/Y'); ?>\"", "value": "" ]}
{[ "type": "select", "label": "<?php echo tr('Inizio pianificazione'); ?>", "name": "parti_da_oggi", "values": "list=<?php echo $list ?>", "value": "" ]}
</div>
<?php
@ -64,12 +178,28 @@ echo '
echo '
<div class="col-md-5">
{[ "type": "date", "label": "'.tr('Fine pianificazione <small>(Data conclusione contratto)</small>').'", "name": "data_conclusione", "id": "data_conclusione_", "extra": "readonly", "value": "'.$rsp[0]['data_conclusione'].'" ]}
<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">
@ -91,6 +221,9 @@ echo '
</div>
</div>
</div>
</div>
<!-- PULSANTI -->
<div class="row">

View File

@ -0,0 +1,157 @@
<?php
include_once __DIR__.'/../../../core.php';
include_once $docroot.'/modules/articoli/modutil.php';
$query = 'SELECT *, (SELECT codice FROM mg_articoli WHERE id=mg_articoli_interventi.idarticolo) AS codice, mg_articoli_interventi.id AS idriga, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=(SELECT idanagrafica FROM in_interventi WHERE id=mg_articoli_interventi.idintervento) ) ) AS prc_guadagno FROM mg_articoli_interventi WHERE idintervento='.prepare($id_record).' '.Modules::getAdditionalsQuery('Magazzino');
$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.').'</th>';
if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') {
echo '
<th width="15%">'.tr('Prezzo di acquisto').'</th>';
}
if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') {
echo '
<th width="15%">'.tr('Prezzo di vendita').'</th>
<th width="10%">'.tr('Iva').'</th>
<th width="15%">'.tr('Imponibile').'</th>';
}
if (!$records[0]['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']).' '.$r['um'].'
</td>';
if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') {
echo '
<td class="text-right">
'.Translator::numberToLocale($r['prezzo_acquisto']).' &euro;
</td>';
}
if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') {
// Prezzo unitario
echo '
<td class="text-right">
'.Translator::numberToLocale($r['prezzo_vendita']).' &euro;';
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' ? '%' : '&euro;'),
]).'
</span>';
}
echo '
</td>';
echo '
<td class="text-right">
<span>'.Translator::numberToLocale($r['iva']).'</span> &euro;';
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> &euro;
</td>';
}
// Pulsante per riportare nel magazzino centrale.
// Visibile solo se l'intervento non è stato nè fatturato nè completato.
if (!$records[0]['flag_completato']) {
echo '
<td>';
if ($r['abilita_serial']) {
echo '
<button type="button" class="btn btn-info btn-xs" data-toggle="tooltip" onclick="launch_modal(\''.tr('Modifica articoli').'\', \''.$rootdir.'/modules/fatture/add_serial.php?id_module='.$id_module.'&id_record='.$id_record.'&idarticolo='.$r['idriga'].'&idriga='.$r['id'].'\', 1);"><i class="fa fa-barcode"></i></button>';
}
echo '
<button type="button" class="btn btn-warning btn-xs" data-toggle="tooltip" onclick="launch_modal(\''.tr('Modifica articoli').'\', \''.$rootdir.'/modules/interventi/add_articolo.php?id_module='.$id_module.'&id_record='.$id_record.'&idriga='.$r['idriga'].'\', 1);"><i class="fa fa-edit"></i></button>
<button type="button" class="btn btn-danger btn-xs" data-toggle="tooltip" title="Riporta in magazzino" onclick="if(confirm(\''.tr('Riportare questo articolo in magazzino?').'\') ){ ritorna_al_magazzino(\''.$r['id'].'\'); }"><i class="fa fa-angle-double-left"></i> <i class="fa fa-truck"></i></button>
</td>';
}
echo '
</tr>';
}
echo '
</table>';
}
?>
<script type="text/javascript">
function ritorna_al_magazzino( id ){
$.post(globals.rootdir + '/modules/interventi/actions.php', {op: 'unlink_articolo', idriga: id, id_record: '<?php echo $id_record; ?>', id_module: '<?php echo $id_module; ?>' }, function(data, result){
if( result == 'success' ){
// ricarico l'elenco degli articoli
$('#articoli').load(globals.rootdir + '/modules/interventi/ajax_articoli.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
$('#costi').load(globals.rootdir + '/modules/interventi/ajax_costi.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
}
});
}
</script>

View File

@ -0,0 +1,114 @@
<?php
include_once __DIR__.'/../../../core.php';
$query = 'SELECT * FROM in_righe_interventi WHERE idintervento='.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.').'</th>
<th width="15%">'.tr('Prezzo di acquisto').'</th>';
if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') {
echo '
<th width="15%">'.tr('Prezzo di vendita').'</th>
<th width="10%">'.tr('Iva').'</th>
<th width="15%">'.tr('Subtotale').'</th>';
}
if (!$records[0]['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']).' '.$r['um'].'
</td>';
//Costo unitario
echo '
<td class="text-right">
'.Translator::numberToLocale($r['prezzo_acquisto']).' &euro;
</td>';
if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') {
// Prezzo unitario
$netto = $r['prezzo_vendita'] - $r['sconto_unitario'];
echo '
<td class="text-right">
'.Translator::numberToLocale($r['prezzo_vendita']).' &euro;';
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' ? '%' : '&euro;'),
]).'
</span>';
}
echo '
</td>';
echo '
<td class="text-right">
<span>'.Translator::numberToLocale($r['iva']).'</span> &euro;';
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> &euro;
</td>';
}
// Pulsante per riportare nel magazzino centrale.
// Visibile solo se l'intervento non è stato nè fatturato nè completato.
if (!$records[0]['flag_completato']) {
echo '
<td>
<button type="button" class="btn btn-warning btn-xs" data-toggle="tooltip" onclick="launch_modal(\''.tr('Modifica spesa').'\', \''.$rootdir.'/modules/interventi/add_righe.php?id_module='.$id_module.'&id_record='.$id_record.'&idriga='.$r['id'].'\', 1);"><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/interventi/actions.php', { op: 'delriga', idriga: id }, function(data, result){
if( result=='success' ){
//ricarico l'elenco delle righe
$('#righe').load( globals.rootdir + '/modules/interventi/ajax_righe.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
$('#costi').load(globals.rootdir + '/modules/interventi/ajax_costi.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
}
});
}
</script>

View File

@ -255,17 +255,27 @@ if (count($rsp) != 0) {
</tbody>
</table>';
echo '<br><div class="pull-right">';
echo ' <button type="button" title="Aggiungi un nuovo promemoria da pianificare." data-toggle="tooltip" class="btn btn-primary" onclick="launch_modal(\'Nuovo promemoria\', \''.$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.'\')">
<i class="fa fa-plus"></i> '.tr('Nuovo promemoria').'
</button>';
if (count($rsp) > 0) {
echo '<br><div class="pull-right"><button type="button" title="Elimina tutti i promemoria per questo contratto che non sono associati ad intervento." class="btn btn-danger ask tip" data-op="delete-promemoria" >
<i class="fa fa-trash"></i> '.tr('Elimina promemoria').'
</button></div>';
echo ' <button type="button" title="Elimina tutti i promemoria per questo contratto che non sono 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>';
}
/*
Nuovo intervento
*/
echo '
/*echo '
<br><h5>'.tr('Pianifica un nuovo promemoria per un intervento').':</h5>
<form action="" method="post">
<input type="hidden" name="backto" value="record-edit">
@ -302,6 +312,8 @@ echo '
<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> '.tr('Aggiungi').'</button>
</div>
<div class="clearfix"></div>
</form>
</form>';*/
echo '
</div>
</div>';

View File

@ -70,3 +70,27 @@ INSERT INTO `zz_prints` (`id`, `id_module`, `is_record`, `name`, `title`, `direc
-- Rimosso group by nome banche
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `co_banche` WHERE 1=1 AND deleted = 0 HAVING 2=2' WHERE `zz_modules`.`name` = 'Banche';
-- impianti per pianificazione contratti
ALTER TABLE `co_righe_contratti` ADD `idimpianti` VARCHAR(255) NOT NULL AFTER `idsede`;
-- Struttura della tabella `co_righe_contratti_materiali`
CREATE TABLE IF NOT EXISTS `co_righe_contratti_materiali` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`descrizione` varchar(255) NOT NULL,
`qta` float(12,4) NOT NULL,
`um` varchar(25) NOT NULL,
`prezzo_vendita` decimal(12,4) NOT NULL,
`prezzo_acquisto` decimal(12,4) NOT NULL,
`idiva` int(11) NOT NULL,
`desc_iva` varchar(255) NOT NULL,
`iva` decimal(12,4) NOT NULL,
`id_riga_contratto` int(11) DEFAULT NULL,
`sconto` decimal(12,4) NOT NULL,
`sconto_unitario` decimal(12,4) NOT NULL,
`tipo_sconto` enum('UNT','PRC') NOT NULL DEFAULT 'UNT',
PRIMARY KEY (`id`),
KEY `idintervento` (`id_riga_contratto`)
);