mirror of
https://github.com/devcode-it/openstamanager.git
synced 2024-12-28 16:50:06 +01:00
354 lines
15 KiB
PHP
Executable File
354 lines
15 KiB
PHP
Executable File
<?php
|
|
include_once __DIR__.'/../../core.php';
|
|
|
|
$block_edit = $record['is_completato'];
|
|
|
|
unset($_SESSION['superselect']['idsede_partenza']);
|
|
unset($_SESSION['superselect']['idsede_destinazione']);
|
|
unset($_SESSION['superselect']['idanagrafica']);
|
|
$_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
|
|
$_SESSION['superselect']['permetti_movimento_a_zero'] = true;
|
|
|
|
// Mostro un avviso se ci sono più revisioni del preventivo
|
|
if (count($preventivo->revisioni) > 1) {
|
|
echo '
|
|
<div class="alert alert-info">
|
|
<i class="fa fa-info-circle"></i>
|
|
'.tr('Questo preventivo presenta _N_ revisioni',
|
|
[
|
|
'_N_' => count($preventivo->revisioni),
|
|
]).'
|
|
</div>
|
|
';
|
|
}
|
|
|
|
?><form action="" method="post" id="edit-form">
|
|
<input type="hidden" name="backto" value="record-edit">
|
|
<input type="hidden" name="op" value="update">
|
|
<input type="hidden" name="id_record" value="<?php echo $id_record; ?>">
|
|
|
|
<!-- DATI INTESTAZIONE -->
|
|
<div class="panel panel-primary">
|
|
<div class="panel-heading">
|
|
<h3 class="panel-title"><?php echo tr('Intestazione'); ?></h3>
|
|
</div>
|
|
|
|
<div class="panel-body">
|
|
<div class="row">
|
|
<div class="col-md-3">
|
|
{[ "type": "text", "label": "<?php echo tr('Numero'); ?>", "name": "numero", "required": 1, "class": "text-center", "value": "$numero$", "icon-after": "<?php echo (count($preventivo->revisioni) > 1) ? tr('rev.').' '.$preventivo->numero_revision : ''; ?>" ]}
|
|
</div>
|
|
|
|
<div class="col-md-3">
|
|
{[ "type": "date", "label": "<?php echo tr('Data bozza'); ?>", "name": "data_bozza", "value": "$data_bozza$" ]}
|
|
</div>
|
|
|
|
<div class="col-md-2">
|
|
{[ "type": "date", "label": "<?php echo tr('Data accettazione'); ?>", "name": "data_accettazione", "value": "$data_accettazione$" ]}
|
|
</div>
|
|
|
|
<div class="col-md-2">
|
|
{[ "type": "date", "label": "<?php echo tr('Data conclusione'); ?>", "name": "data_conclusione", "value": "$data_conclusione$", "disabled": "<?php echo $preventivo->isDataConclusioneAutomatica() ? '1", "help": "'.tr('La Data di conclusione è calcolata in automatico in base al valore del campo Validità') : 0; ?>" ]}
|
|
</div>
|
|
|
|
<div class="col-md-2">
|
|
{[ "type": "date", "label": "<?php echo tr('Data rifiuto'); ?>", "name": "data_rifiuto", "value": "$data_rifiuto$" ]}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-3">
|
|
<?php
|
|
echo Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"');
|
|
?>
|
|
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti" ]}
|
|
</div>
|
|
|
|
<div class="col-md-3">
|
|
{[ "type": "select", "label": "<?php echo tr('Sede'); ?>", "name": "idsede", "value": "$idsede$", "ajax-source": "sedi", "placeholder": "Sede legale" ]}
|
|
</div>
|
|
|
|
<div class="col-md-3">
|
|
<?php
|
|
if (!empty($record['idreferente'])) {
|
|
echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"');
|
|
}
|
|
?>
|
|
|
|
{[ "type": "select", "label": "<?php echo tr('Referente'); ?>", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti" ]}
|
|
</div>
|
|
|
|
<div class="col-md-3">
|
|
<?php
|
|
if ($record['idagente'] != 0) {
|
|
echo Modules::link('Anagrafiche', $record['idagente'], null, null, 'class="pull-right"');
|
|
}
|
|
?>
|
|
{[ "type": "select", "label": "<?php echo tr('Agente'); ?>", "name": "idagente", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Agente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "$idagente$" ]}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$nome$" ]}
|
|
</div>
|
|
|
|
<div class="col-md-3">
|
|
{[ "type": "select", "label": "<?php echo tr('Pagamento'); ?>", "name": "idpagamento", "values": "query=SELECT id, descrizione FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione", "value": "$idpagamento$" ]}
|
|
</div>
|
|
|
|
<div class="col-md-3">
|
|
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstato", "required": 1, "values": "query=SELECT id, descrizione FROM co_statipreventivi", "value": "$idstato$", "class": "unblockable" ]}
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-3">
|
|
{[ "type": "number", "label": "<?php echo tr('Validità offerta'); ?>", "name": "validita", "decimals": "0", "value": "$validita$", "icon-after": "choice|period|<?php echo $record['tipo_validita']; ?>", "help": "<?php echo tr('Il campo Validità viene utilizzato in modo esclusivamente indicativo se impostato secondo l\'opzione manuale, mentre viene utilizzato per il calcolo della Data di conclusione del documento in caso alternativo'); ?>" ]}
|
|
</div>
|
|
|
|
<div class="col-md-3">
|
|
{[ "type": "select", "label": "<?php echo tr('Tipo di attività'); ?>", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione", "value": "$idtipointervento$" ]}
|
|
</div>
|
|
|
|
<!--div class="col-md-3">
|
|
{[ "type": "select", "label": "<?php echo tr('Resa materiale'); ?>", "name": "idporto", "values": "query=SELECT id, descrizione FROM dt_porto ORDER BY descrizione", "value": "$idporto$" ]}
|
|
</div-->
|
|
|
|
|
|
<div class="col-md-3">
|
|
{[ "type": "text", "label": "<?php echo tr('Tempi di consegna'); ?>", "name": "tempi_consegna", "value": "$tempi_consegna$" ]}
|
|
</div>
|
|
|
|
</div>
|
|
<div class="row">
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
{[ "type": "textarea", "label": "<?php echo tr('Esclusioni'); ?>", "name": "esclusioni", "class": "autosize", "value": "$esclusioni$" ]}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
{[ "type": "textarea", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "class": "autosize", "value": "$descrizione$" ]}
|
|
</div>
|
|
</div>
|
|
|
|
<!--div class="pull-right">
|
|
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> <?php echo tr('Salva modifiche'); ?></button>
|
|
</div-->
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<?php
|
|
if (!empty($record['id_documento_fe']) || !empty($record['num_item']) || !empty($record['codice_cig']) || !empty($record['codice_cup'])) {
|
|
$collapsed = 'in';
|
|
} else {
|
|
$collapsed = '';
|
|
}
|
|
?>
|
|
|
|
<!-- Fatturazione Elettronica PA-->
|
|
<div class="panel-group">
|
|
<div class="panel panel-primary <?php echo ($record['tipo_anagrafica'] == 'Ente pubblico' || $record['tipo_anagrafica'] == 'Azienda') ? 'show' : 'hide'; ?>">
|
|
<div class="panel-heading">
|
|
<h4 class="panel-title">
|
|
<?php echo tr('Dati appalto'); ?>
|
|
|
|
<div class="box-tools pull-right">
|
|
<a data-toggle="collapse" href="#dati_appalto"><i class="fa fa-plus" style='color:white;margin-top:2px;'></i></a>
|
|
</div>
|
|
</h4>
|
|
</div>
|
|
<div id="dati_appalto" class="panel-collapse collapse <?php echo $collapsed; ?>">
|
|
<div class="panel-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
{[ "type": "text", "label": "<?php echo tr('Identificatore Documento'); ?>", "name": "id_documento_fe", "required": 0, "help": "<?php echo tr('<span>Obbligatorio per valorizzare CIG/CUP. È possible inserire: </span><ul><li>N. determina</li><li>RDO</li><li>Ordine MEPA</li></ul>'); ?>", "value": "$id_documento_fe$", "maxlength": 20 ]}
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
{[ "type": "text", "label": "<?php echo tr('Numero Riga'); ?>", "name": "num_item", "required": 0, "value": "$num_item$", "maxlength": 15 ]}
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
{[ "type": "text", "label": "<?php echo tr('Codice CIG'); ?>", "name": "codice_cig", "required": 0, "value": "$codice_cig$", "maxlength": 15 ]}
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
{[ "type": "text", "label": "<?php echo tr('Codice CUP'); ?>", "name": "codice_cup", "required": 0, "value": "$codice_cup$", "maxlength": 15 ]}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
|
|
|
|
|
|
<!-- RIGHE -->
|
|
<div class="panel panel-primary">
|
|
<div class="panel-heading">
|
|
<h3 class="panel-title">Righe</h3>
|
|
</div>
|
|
|
|
<div class="panel-body">
|
|
<?php
|
|
|
|
if (!$block_edit) {
|
|
echo '
|
|
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_articolo" data-toggle="tooltip" data-title="'.tr('Aggiungi articolo').'">
|
|
<i class="fa fa-plus"></i> '.tr('Articolo').'
|
|
</a>';
|
|
|
|
echo '
|
|
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_riga" data-toggle="tooltip" data-title="'.tr('Aggiungi riga').'">
|
|
<i class="fa fa-plus"></i> '.tr('Riga').'
|
|
</a>';
|
|
|
|
echo '
|
|
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_descrizione" data-toggle="tooltip" data-title="'.tr('Aggiungi descrizione').'">
|
|
<i class="fa fa-plus"></i> '.tr('Descrizione').'
|
|
</a>';
|
|
|
|
echo '
|
|
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_sconto" data-toggle="tooltip" data-title="'.tr('Aggiungi sconto/maggiorazione').'">
|
|
<i class="fa fa-plus"></i> '.tr('Sconto/maggiorazione').'
|
|
</a>';
|
|
}
|
|
|
|
?>
|
|
|
|
<!--div class="pull-right">
|
|
{( "name": "button", "type": "print", "id_module": "<?php echo $id_module; ?>", "id_record": "<?php echo $id_record; ?>" )}
|
|
</div-->
|
|
|
|
<div class="clearfix"></div>
|
|
<br>
|
|
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<?php
|
|
|
|
include $docroot.'/modules/preventivi/row-list.php';
|
|
|
|
?>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
$(document).ready(function(){
|
|
$('#idanagrafica').change( function(){
|
|
session_set('superselect,idanagrafica', $(this).val(), 0);
|
|
|
|
$("#idsede").selectReset();
|
|
});
|
|
|
|
$('#data_accettazione').on("dp.change", function(){
|
|
if($(this).val()){
|
|
$('#data_rifiuto').attr('disabled', true);
|
|
}else{
|
|
$('#data_rifiuto').attr('disabled', false);
|
|
}
|
|
});
|
|
|
|
$('#data_rifiuto').on("dp.change", function(){
|
|
if($(this).val()){
|
|
$('#data_accettazione').attr('disabled', true);
|
|
}else{
|
|
$('#data_accettazione').attr('disabled', false);
|
|
}
|
|
});
|
|
|
|
$("#data_accettazione").trigger("dp.change");
|
|
$("#data_rifiuto").trigger("dp.change");
|
|
|
|
$('#codice_cig, #codice_cup').bind("keyup change", function(e) {
|
|
|
|
if ($('#codice_cig').val() == '' && $('#codice_cup').val() == '' ){
|
|
$('#id_documento_fe').prop('required', false);
|
|
}else{
|
|
$('#id_documento_fe').prop('required', true);
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
</script>
|
|
|
|
|
|
|
|
{( "name": "filelist_and_upload", "id_module": "$id_module$", "id_record": "$id_record$" )}
|
|
|
|
{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}
|
|
|
|
<?php
|
|
//fatture, ordini collegate a questo preventivo
|
|
$elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idpreventivo` = '.prepare($id_record).')
|
|
|
|
UNION
|
|
SELECT `or_ordini`.`id`, `or_ordini`.`data`, `or_ordini`.`numero`, `or_ordini`.`numero_esterno`, "Ordine cliente" AS tipo_documento, 0 AS dir FROM `or_ordini` JOIN `or_righe_ordini` ON `or_righe_ordini`.`idordine` = `or_ordini`.`id` WHERE `or_righe_ordini`.`idpreventivo` = '.prepare($id_record).'
|
|
|
|
ORDER BY `data`');
|
|
|
|
if (!empty($elementi)) {
|
|
echo '
|
|
<div class="box box-warning collapsable collapsed-box">
|
|
<div class="box-header with-border">
|
|
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
|
|
'_NUM_' => count($elementi),
|
|
]).'</h3>
|
|
<div class="box-tools pull-right">
|
|
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
|
|
</div>
|
|
</div>
|
|
<div class="box-body">
|
|
<ul>';
|
|
|
|
foreach ($elementi as $elemento) {
|
|
$descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [
|
|
'_DOC_' => $elemento['tipo_documento'],
|
|
'_NUM_' => !empty($elemento['numero_esterno']) ? $elemento['numero_esterno'] : $elemento['numero'],
|
|
'_DATE_' => Translator::dateToLocale($elemento['data']),
|
|
]);
|
|
|
|
if (in_array($elemento['tipo_documento'], ['Ordine cliente'])) {
|
|
$modulo = 'Ordini cliente';
|
|
} else {
|
|
$modulo = ($elemento['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
|
|
}
|
|
$id = $elemento['id'];
|
|
|
|
echo '
|
|
<li>'.Modules::link($modulo, $id, $descrizione).'</li>';
|
|
}
|
|
|
|
echo '
|
|
</ul>
|
|
</div>
|
|
</div>';
|
|
}
|
|
|
|
if (!empty($elementi)) {
|
|
echo '
|
|
<div class="alert alert-error">
|
|
'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale').'.
|
|
</div>';
|
|
}
|
|
|
|
?>
|
|
|
|
<a class="btn btn-danger ask" data-backto="record-list">
|
|
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
|
</a>
|