Righe aggiuntive in interventi da tipologie interventi
This commit is contained in:
parent
907dd8bf53
commit
2878e0164b
|
@ -595,6 +595,7 @@ function caricaTecnici() {
|
|||
|
||||
localLoading(container, true);
|
||||
return $.get("'.$structure->fileurl('ajax_tecnici.php').'?id_module='.$id_module.'&id_record='.$id_record.'", function(data) {
|
||||
caricaRighe();
|
||||
container.html(data);
|
||||
localLoading(container, false);
|
||||
});
|
||||
|
|
|
@ -28,6 +28,7 @@ use Modules\Fatture\Components\Riga;
|
|||
use Modules\Fatture\Fattura;
|
||||
use Modules\Interventi\Components\Sessione;
|
||||
use Modules\Interventi\Intervento;
|
||||
use Modules\Interventi\Components\Riga as RigaIntervento;
|
||||
use Util\Generator;
|
||||
use Util\Ini;
|
||||
|
||||
|
@ -109,6 +110,22 @@ function add_tecnico($id_intervento, $idtecnico, $inizio, $fine, $idcontratto =
|
|||
}
|
||||
}
|
||||
|
||||
//Inserisco le righe aggiuntive previste dal tipo di intervento
|
||||
$righe_aggiuntive = database()->fetchArray("SELECT * FROM in_righe_tipiinterventi WHERE id_tipointervento=".prepare($sessione->idtipointervento));
|
||||
|
||||
foreach($righe_aggiuntive as $riga_aggiuntiva){
|
||||
$riga = RigaIntervento::build($intervento);
|
||||
|
||||
$riga->descrizione = $riga_aggiuntiva['descrizione'];
|
||||
$riga->um = $riga_aggiuntiva['um'];
|
||||
|
||||
$riga->costo_unitario = $riga_aggiuntiva['prezzo_acquisto'];
|
||||
$riga->setPrezzoUnitario( $riga_aggiuntiva['prezzo_vendita'], $riga_aggiuntiva['idiva'] );
|
||||
$riga->qta = $riga_aggiuntiva['qta'];
|
||||
|
||||
$riga->save();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -113,5 +113,61 @@ switch (post('op')) {
|
|||
'idtipointervento' => $id_record,
|
||||
]);
|
||||
|
||||
break;
|
||||
|
||||
case 'addriga':
|
||||
|
||||
$idiva = post('idiva');
|
||||
$descrizione = post('descrizione');
|
||||
$qta = post('qta');
|
||||
$um = post('um');
|
||||
$id_tipointervento = post('id_tipointervento');
|
||||
$prezzo_acquisto = post('prezzo_acquisto');
|
||||
$prezzo_vendita = post('prezzo_vendita');
|
||||
$subtotale = $qta * $prezzo_vendita;
|
||||
|
||||
$query = 'INSERT INTO in_righe_tipiinterventi(id_tipointervento, prezzo_acquisto, prezzo_vendita, descrizione, qta, um, subtotale, idiva) VALUES ('.prepare($id_tipointervento).', '.prepare($prezzo_acquisto).', '.prepare($prezzo_vendita).', '.prepare($descrizione).', '.prepare($qta).', '.prepare($um).', '.prepare($subtotale).', '.prepare($idiva).')';
|
||||
$dbo->query($query);
|
||||
|
||||
flash()->info(tr('Riga aggiunta!'));
|
||||
|
||||
break;
|
||||
|
||||
case 'editriga':
|
||||
|
||||
$idiva = post('idiva');
|
||||
$descrizione = post('descrizione');
|
||||
$qta = post('qta');
|
||||
$um = post('um');
|
||||
$idriga = post('idriga');
|
||||
$id_tipointervento = post('id_tipointervento');
|
||||
$prezzo_acquisto = post('prezzo_acquisto');
|
||||
$prezzo_vendita = post('prezzo_vendita');
|
||||
$subtotale = $qta * $prezzo_vendita;
|
||||
|
||||
$query = 'UPDATE in_righe_tipiinterventi SET'.
|
||||
' descrizione='.prepare($descrizione).','.
|
||||
' qta='.prepare($qta).','.
|
||||
' idiva='.prepare($idiva).','.
|
||||
' um='.prepare($um).','.
|
||||
' id_tipointervento='.prepare($id_tipointervento).','.
|
||||
' prezzo_acquisto='.prepare($prezzo_acquisto).','.
|
||||
' prezzo_vendita='.prepare($prezzo_vendita).','.
|
||||
' subtotale='.$subtotale.
|
||||
' WHERE id='.prepare($idriga);
|
||||
$dbo->query($query);
|
||||
|
||||
flash()->info(tr('Riga modificata!'));
|
||||
|
||||
break;
|
||||
|
||||
case 'delriga':
|
||||
|
||||
$idriga = post('idriga');
|
||||
$query = "DELETE FROM in_righe_tipiinterventi WHERE id=".prepare($idriga);
|
||||
$dbo->query($query);
|
||||
|
||||
flash()->info(tr('Riga eliminata!'));
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,117 @@
|
|||
<?php
|
||||
|
||||
if (file_exists(__DIR__.'/../../../core.php')) {
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
} else {
|
||||
include_once __DIR__.'/../../core.php';
|
||||
}
|
||||
|
||||
$idriga = filter('idriga');
|
||||
|
||||
if (empty($idriga)) {
|
||||
$op = 'addriga';
|
||||
$button = '<i class="fa fa-plus"></i> '.tr('Aggiungi');
|
||||
|
||||
// valori default
|
||||
$descrizione = '';
|
||||
$qta = 1;
|
||||
$um = 'ore';
|
||||
$idiva = setting('Iva predefinita');
|
||||
$prezzo_vendita = '0';
|
||||
$prezzo_acquisto = '0';
|
||||
} else {
|
||||
$op = 'editriga';
|
||||
$button = '<i class="fa fa-edit"></i> '.tr('Modifica');
|
||||
|
||||
// carico record da modificare
|
||||
$q = 'SELECT * FROM in_righe_tipiinterventi 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'];
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
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="id_tipointervento" value="'.$id_record.'">
|
||||
<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.'", "ajax-source": "iva" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Prezzo di acquisto
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "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-6">
|
||||
{[ "type": "number", "label": "'.tr('Prezzo di vendita (un.)').'", "name": "prezzo_vendita", "required": 1, "value": "'.$prezzo_vendita.'", "icon-after": "€" ]}
|
||||
</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>';
|
||||
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
init();
|
||||
$('#add-righe').ajaxForm({
|
||||
success: function(){
|
||||
$('#modals > div').modal('hide');
|
||||
|
||||
// Ricarico le righe
|
||||
$('#righe').load('<?php echo $module->fileurl('ajax_righe.php');?>?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
|
||||
|
||||
// Ricarico la tabella dei costi
|
||||
$('#costi').load('<?php echo $module->fileurl('ajax_righe.php');?>?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
|
||||
if (file_exists(__DIR__.'/../../../core.php')) {
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
} else {
|
||||
include_once __DIR__.'/../../core.php';
|
||||
}
|
||||
|
||||
$righe = $dbo->fetchArray("SELECT * FROM in_righe_tipiinterventi WHERE id_tipointervento=".prepare($id_record));
|
||||
|
||||
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>
|
||||
<th width="15%">'.tr('Prezzo di vendita').'</th>
|
||||
<th width="8%">'.tr('Iva').'</th>
|
||||
<th width="8%">'.tr('Subtotale').'</th>
|
||||
<th class="text-center" width="8%">'.tr('#').'</th>
|
||||
</tr>';
|
||||
|
||||
foreach($righe as $riga){
|
||||
$rs = $dbo->fetchArray("SELECT percentuale FROM co_iva WHERE id=".$riga['idiva']);
|
||||
$iva = ($riga['subtotale'] * $rs[0]['percentuale'])/100;
|
||||
|
||||
echo'
|
||||
<tr>
|
||||
<td class="text-left">'.$riga['descrizione'].'</td>
|
||||
<td class="text-right">'.number_format($riga['qta'], 2, ',', '.').' '.$riga['um'].'</td>
|
||||
<td class="text-right">'.number_format($riga['prezzo_acquisto'], 2, ',', '.').' €</td>
|
||||
<td class="text-right">'.number_format($riga['prezzo_vendita'], 2, ',', '.').' €</td>
|
||||
<td class="text-right">'.number_format($iva, 2, ',', '.').' €</td>
|
||||
<td class="text-right">'.number_format($riga['subtotale'], 2, ',', '.').' €</td>
|
||||
<td class="text-center"><button type="button" class="btn btn-xs btn-warning" onclick="launch_modal(\''.tr('Aggiungi riga').'\', \''.$module->fileurl('add_righe.php').'?id_module='.$id_module.'&id_record='.$id_record.'&idriga='.$riga['id'].'\', 1);"><i class="fa fa-edit"></i></button> <button type="button" class="btn btn-xs btn-danger" data-toggle="tooltip" onclick="if(confirm(\''.tr('Eliminare questa riga?').'\')){ elimina_riga( \''.$riga['id'].'\' ); }"><i class="fa fa-trash"></i></button></td>
|
||||
</tr>';
|
||||
}
|
||||
|
||||
echo'
|
||||
</table>';
|
||||
|
||||
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
function elimina_riga( id ){
|
||||
$.post('<?php echo $module->fileurl('actions.php');?>', { op: 'delriga', idriga: id }, function(data, result){
|
||||
if( result=='success' ){
|
||||
//ricarico l'elenco delle righe
|
||||
$('#righe').load( '<?php echo $module->fileurl('ajax_righe.php');?>?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
|
@ -87,6 +87,24 @@ include_once __DIR__.'/../../core.php';
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><?php echo tr('Righe aggiuntive predefinite'); ?></h3>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12" id="righe">
|
||||
<script>$('#righe').load('<?php echo $module->fileurl('ajax_righe.php');?>?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-right">
|
||||
<button type="button" class="btn btn-primary" onclick="launch_modal('<?php echo tr('Aggiungi riga');?>', '<?php echo $module->fileurl('add_righe.php');?>?id_module=<?php echo $id_module;?>&id_record=<?php echo $id_record;?>', 1);"><i class="fa fa-plus"></i><?php echo tr(' Aggiungi');?>..</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<?php
|
||||
|
|
|
@ -113,4 +113,20 @@ INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`,
|
|||
|
||||
-- Aggiunte note interne in Contratti e Preventivi
|
||||
ALTER TABLE `co_preventivi` ADD `informazioniaggiuntive` TEXT NULL DEFAULT NULL AFTER `sconto_finale_percentuale`;
|
||||
ALTER TABLE `co_contratti` ADD `informazioniaggiuntive` TEXT NULL DEFAULT NULL AFTER `sconto_finale_percentuale`;
|
||||
ALTER TABLE `co_contratti` ADD `informazioniaggiuntive` TEXT NULL DEFAULT NULL AFTER `sconto_finale_percentuale`;
|
||||
|
||||
-- Aggiunta righe aggiuntive per tipologia intervento
|
||||
CREATE TABLE `in_righe_tipiinterventi` (
|
||||
`id` int NOT NULL,
|
||||
`id_tipointervento` varchar(25) NOT NULL,
|
||||
`descrizione` varchar(255) DEFAULT NULL,
|
||||
`qta` decimal(12,4) NOT NULL,
|
||||
`um` varchar(25) DEFAULT NULL,
|
||||
`prezzo_acquisto` decimal(12,4) NOT NULL,
|
||||
`prezzo_vendita` decimal(12,4) NOT NULL,
|
||||
`idiva` int NOT NULL,
|
||||
`subtotale` decimal(12,4) NOT NULL,
|
||||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
|
||||
PRIMARY KEY (`id`)) ENGINE = InnoDB;
|
||||
ALTER TABLE `in_righe_tipiinterventi` CHANGE `id` `id` INT NOT NULL AUTO_INCREMENT;
|
Loading…
Reference in New Issue