Merge branch 'master' into 2.4.11

This commit is contained in:
Thomas Zilio 2019-07-23 16:19:16 +02:00
commit 3b9b447020
19 changed files with 116 additions and 74 deletions

View File

@ -48,6 +48,9 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
- Miglioramento del sistema di importazione delle ricevute delle Fatture Elettroniche, per permetterne il caricamento manuale
- Standardizzazione dei nomi predefiniti delle stampa e dei relativi file generati
### Rimosso (Removed)
- Supporto ai raggruppamenti di **Contratti** e **Preventivi** nelle **Fatture**
### Fixed
- Fix export delle tabelle principali in Excel

View File

@ -107,13 +107,27 @@ if (empty($record) || !$has_access) {
<div id="tab_0" class="tab-pane active">';
if (!empty($record['deleted_at'])) {
$operation = $dbo->fetchOne("SELECT zz_operations.created_at, username FROM zz_operations INNER JOIN zz_users ON zz_operations.id_utente = zz_users.id WHERE op='delete' AND id_module=".prepare($id_module).' AND id_record='.prepare($id_record).' ORDER BY zz_operations.created_at DESC');
if (!empty($operation['username'])) {
$info = tr('Il record è stato eliminato il <b>_DATE_</b> da <b>_USER_</b>', [
'_DATE_' => Translator::timestampToLocale($operation['created_at']),
'_USER_' => $operation['username'],
]).'. ';
}
echo '
<div class="alert alert-danger text-center">
<h3>'.tr('Ripristinare il record?').'</h3>
<a class="btn btn-warning" id="restore">
<i class="fa fa-undo"></i> '.tr('Ripristina').'
</a>
<div class="alert alert-danger">
<div class="row" >
<div class="col-md-8">
<i class="fa fa-warning"></i> '.$info.'<strong>'.tr('Ripristinare il record?').'</strong>
</div>
<div class="col-md-4">
<button type="button" class="btn btn-warning pull-right" id="restore">
<i class="fa fa-undo"></i> '.tr('Salva e ripristina').'
</button>
</div>
</div>
</div>
<script>

View File

@ -193,18 +193,19 @@ if (!$has_settings) {
<h3 class="panel-title">'.tr('Impostazioni di base').'</h3>
</div>
<div class="panel-body">';
<div class="panel-body">
<div class="row">';
foreach ($settings as $setting => $required) {
if (empty(setting($setting))) {
echo '
<div class="col-md-6">
'.Settings::input($setting, $required).'
</div>';
<div class="col-md-6">
'.Settings::input($setting, $required).'
</div>';
}
}
echo '
echo ' </div>
</div>
</div>';
}

View File

@ -89,7 +89,7 @@ if (Auth::check()) {
'hookMultiple' => tr('Hai _NUM_ notifiche'),
'hookSingle' => tr('Hai 1 notifica'),
'hookNone' => tr('Nessuna notifica'),
'singleCalendar' => tr("E' presente un solo calendario!"),
'singleCalendar' => tr("E' presente un solo periodo!"),
];
foreach ($translations as $key => $value) {
echo '

View File

@ -1721,7 +1721,7 @@ function submitAjax(form, data = {}, callback = null, errorCallback = null) {
if (data) {
response = JSON.parse(data);
callback(response);
if (callback) callback(response);
}
$("#main_loading").fadeOut();
@ -1758,7 +1758,7 @@ function submitAjax(form, data = {}, callback = null, errorCallback = null) {
toastr["error"](data);
errorCallback(data);
if (errorCallback) errorCallback(data);
}
});
}

View File

@ -545,25 +545,25 @@ if (setting('Azienda predefinita') == $id_record) {
// Collegamenti diretti
// Fatture, ddt, preventivi, contratti, ordini, interventi, utenti collegati a questa anagrafica
$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`.`idanagrafica` = '.prepare($id_record).'
$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`, NULL AS `deleted_at` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`idanagrafica` = '.prepare($id_record).'
UNION
SELECT `zz_users`.`id`, `zz_users`.`created_at` AS data, `zz_users`.`username` AS numero, 0 AS `numero_esterno`, "Utente" AS tipo_documento, 0 AS `dir` FROM `zz_users` WHERE `zz_users`.`idanagrafica` = '.prepare($id_record).'
SELECT `zz_users`.`id`, `zz_users`.`created_at` AS data, `zz_users`.`username` AS numero, 0 AS `numero_esterno`, "Utente" AS tipo_documento, 0 AS `dir`, NULL AS `deleted_at` FROM `zz_users` WHERE `zz_users`.`idanagrafica` = '.prepare($id_record).'
UNION
SELECT `or_ordini`.`id`, `or_ordini`.`data`, `or_ordini`.`numero`, `or_ordini`.`numero_esterno`, `or_tipiordine`.`descrizione` AS tipo_documento, `or_tipiordine`.`dir` FROM `or_ordini` JOIN `or_tipiordine` ON `or_tipiordine`.`id` = `or_ordini`.`idtipoordine` WHERE `or_ordini`.`idanagrafica` = '.prepare($id_record).'
SELECT `or_ordini`.`id`, `or_ordini`.`data`, `or_ordini`.`numero`, `or_ordini`.`numero_esterno`, `or_tipiordine`.`descrizione` AS tipo_documento, `or_tipiordine`.`dir`, NULL AS `deleted_at` FROM `or_ordini` JOIN `or_tipiordine` ON `or_tipiordine`.`id` = `or_ordini`.`idtipoordine` WHERE `or_ordini`.`idanagrafica` = '.prepare($id_record).'
UNION
SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt`.`descrizione` AS tipo_documento, `dt_tipiddt`.`dir` FROM `dt_ddt` JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` WHERE `dt_ddt`.`idanagrafica` = '.prepare($id_record).'
SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt`.`descrizione` AS tipo_documento, `dt_tipiddt`.`dir`, NULL AS `deleted_at` FROM `dt_ddt` JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` WHERE `dt_ddt`.`idanagrafica` = '.prepare($id_record).'
UNION
SELECT `in_interventi`.`id`, `in_interventi`.`data_richiesta`, `in_interventi`.`codice` AS numero, 0 AS numero_esterno, "Intervento" AS tipo_documento, 0 AS dir FROM `in_interventi` LEFT JOIN `in_interventi_tecnici` ON `in_interventi`.`id` = `in_interventi_tecnici`.`idintervento` WHERE `in_interventi`.`id` IN (SELECT `idintervento` FROM `in_interventi_tecnici` WHERE `idtecnico` = '.prepare($id_record).') OR `in_interventi`.`idanagrafica` = '.prepare($id_record).'
SELECT `in_interventi`.`id`, `in_interventi`.`data_richiesta`, `in_interventi`.`codice` AS numero, 0 AS numero_esterno, "Intervento" AS tipo_documento, 0 AS dir, in_interventi.deleted_at AS `deleted_at` FROM `in_interventi` LEFT JOIN `in_interventi_tecnici` ON `in_interventi`.`id` = `in_interventi_tecnici`.`idintervento` WHERE `in_interventi`.`id` IN (SELECT `idintervento` FROM `in_interventi_tecnici` WHERE `idtecnico` = '.prepare($id_record).') OR `in_interventi`.`idanagrafica` = '.prepare($id_record).'
UNION
SELECT `co_contratti`.`id`, `co_contratti`.`data_bozza`, `co_contratti`.`numero`, 0 AS numero_esterno , "Contratto" AS tipo_documento, 0 AS dir FROM `co_contratti` WHERE `co_contratti`.`idanagrafica` = '.prepare($id_record).'
SELECT `co_contratti`.`id`, `co_contratti`.`data_bozza`, `co_contratti`.`numero`, 0 AS numero_esterno , "Contratto" AS tipo_documento, 0 AS dir, NULL AS `deleted_at` FROM `co_contratti` WHERE `co_contratti`.`idanagrafica` = '.prepare($id_record).'
UNION
SELECT `co_preventivi`.`id`, `co_preventivi`.`data_bozza`, `co_preventivi`.`numero`, 0 AS numero_esterno , "Preventivo" AS tipo_documento, 0 AS dir FROM `co_preventivi` WHERE `co_preventivi`.`idanagrafica` = '.prepare($id_record).'
SELECT `co_preventivi`.`id`, `co_preventivi`.`data_bozza`, `co_preventivi`.`numero`, 0 AS numero_esterno , "Preventivo" AS tipo_documento, 0 AS dir, NULL AS `deleted_at` FROM `co_preventivi` WHERE `co_preventivi`.`idanagrafica` = '.prepare($id_record).'
ORDER BY `data`');
@ -582,10 +582,11 @@ if (!empty($elementi)) {
<ul>';
foreach ($elementi as $elemento) {
$descrizione = tr('_DOC_ _NUM_ del _DATE_', [
$descrizione = tr('_DOC_ _NUM_ del _DATE_ _DELETED_AT_', [
'_DOC_' => $elemento['tipo_documento'],
'_NUM_' => !empty($elemento['numero_esterno']) ? $elemento['numero_esterno'] : $elemento['numero'],
'_DATE_' => Translator::dateToLocale($elemento['data']),
'_DELETED_AT_' => (!empty($elemento['deleted_at']) ? tr('Eliminato il:').' '.Translator::dateToLocale($elemento['deleted_at']) : ''),
]);
//se non è un preventivo è un ddt o una fattura

View File

@ -25,6 +25,7 @@ switch ($name) {
case 'codice_fiscale':
$disponibile = Anagrafica::where([
['codice_fiscale', $value],
['codice_fiscale', '<>', ''],
['idanagrafica', '<>', $id_record],
])->count() == 0;
@ -50,6 +51,7 @@ switch ($name) {
case 'partita_iva':
$disponibile = Anagrafica::where([
['piva', $value],
['piva', '<>', ''],
['idanagrafica', '<>', $id_record],
])->count() == 0;

View File

@ -9,7 +9,7 @@ $rs_documento = $dbo->fetchArray('SELECT * FROM co_righe_contratti WHERE idcontr
/* permetto di fatturare il contratto solo se contiene righe e si trova in uno stato fatturabile */
echo '
<button type="button" class="btn btn-info '.(($record['is_fatturabile'] && !empty($rs_documento)) ? '' : 'disabled').'" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea fattura').'">
<button type="button" '.(($record['is_fatturabile'] && !empty($rs_documento)) ? '' : 'disabled').' class="btn btn-info '.(($record['is_fatturabile'] && !empty($rs_documento)) ? '' : 'disabled').'" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea fattura').'">
<i class="fa fa-magic"></i> '.tr('Crea fattura').'
</button>';

View File

@ -135,11 +135,11 @@ $_SESSION['superselect']['idsede_destinazione'] = $record['idsede_destinazione']
<div class="row">
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Aspetto beni'); ?>", "name": "idaspettobeni", "value": "$idaspettobeni$", "ajax-source": "aspetto-beni", "readonly": "<?php echo $record['flag_completato']; ?>", "icon-after": "add|<?php echo Modules::get('Aspetto beni')['id']; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Aspetto beni'); ?>", "name": "idaspettobeni", "value": "$idaspettobeni$", "ajax-source": "aspetto-beni", "readonly": "<?php echo $record['flag_completato']; ?>", "icon-after": "add|<?php echo Modules::get('Aspetto beni')['id']; ?>|||<?php echo (intval($record['flag_completato'])) ? 'disabled' : ''; ?>" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Causale trasporto'); ?>", "name": "idcausalet", "value": "$idcausalet$", "ajax-source": "causali", "readonly": "<?php echo $record['flag_completato']; ?>", "icon-after": "add|<?php echo Modules::get('Causali')['id']; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Causale trasporto'); ?>", "name": "idcausalet", "value": "$idcausalet$", "ajax-source": "causali", "readonly": "<?php echo $record['flag_completato']; ?>", "icon-after": "add|<?php echo Modules::get('Causali')['id']; ?>|||<?php echo (intval($record['flag_completato'])) ? 'disabled' : ''; ?>" ]}
</div>
<div class="col-md-3">
@ -161,7 +161,7 @@ $_SESSION['superselect']['idsede_destinazione'] = $record['idsede_destinazione']
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Vettore'); ?>", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "readonly": "<?php echo $record['flag_completato']; ?>", "disabled": <?php echo intval($record['idspedizione'] == 3); ?>, "required": <?php echo (!empty($record['idspedizione'])) ? intval($record['idspedizione'] != 3) : 0; ?>, "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=Vettore|<?php echo (($record['idspedizione'] != 3 and intval(!$record['flag_completato']))) ? '' : 'disabled'; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Vettore'); ?>", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "readonly": "<?php echo $record['flag_completato']; ?>", "disabled": <?php echo intval($record['idspedizione'] == 3); ?>, "required": <?php echo (!empty($record['idspedizione'])) ? intval($record['idspedizione'] != 3) : 0; ?>, "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=Vettore||<?php echo (($record['idspedizione'] != 3 and intval(!$record['flag_completato']))) ? '' : 'disabled'; ?>" ]}
</div>

View File

@ -501,8 +501,8 @@ if (!$block_edit) {
$prev_query = 'SELECT COUNT(*) AS tot FROM co_preventivi WHERE idanagrafica='.prepare($record['idanagrafica'])." AND idstato IN(SELECT id FROM co_statipreventivi WHERE descrizione='Accettato' OR descrizione='In lavorazione' OR descrizione='In attesa di conferma') AND default_revision=1 AND co_preventivi.id IN (SELECT idpreventivo FROM co_righe_preventivi WHERE co_righe_preventivi.idpreventivo = co_preventivi.id AND (qta - qta_evasa) > 0)";
$preventivi = $dbo->fetchArray($prev_query)[0]['tot'];
echo '
<div class="tip" data-toggle="tooltip" title="'.tr('Preventivi accettati, in attesa di conferma o in lavorazione.').'" style="display:inline;">
<a class="btn btn-sm btn-primary '.(!empty($preventivi) ? '' : ' disabled').'" data-href="'.$rootdir.'/modules/fatture/add_preventivo.php?id_module='.$id_module.'&id_record='.$id_record.'" data-title="Aggiungi preventivo">
<div class="tip" title="'.tr('Preventivi accettati, in attesa di conferma o in lavorazione.').'" style="display:inline;">
<a class="btn btn-sm btn-primary '.(!empty($preventivi) ? '' : ' disabled').'" data-href="'.$rootdir.'/modules/fatture/add_preventivo.php?id_module='.$id_module.'&id_record='.$id_record.'" data-title="Aggiungi preventivo" data-toggle="tooltip">
<i class="fa fa-plus"></i> Preventivo
</a>
</div>';
@ -511,8 +511,8 @@ if (!$block_edit) {
$contr_query = 'SELECT COUNT(*) AS tot FROM co_contratti WHERE idanagrafica='.prepare($record['idanagrafica']).' AND idstato IN( SELECT id FROM co_staticontratti WHERE is_fatturabile = 1) AND co_contratti.id IN (SELECT idcontratto FROM co_righe_contratti WHERE co_righe_contratti.idcontratto = co_contratti.id AND (qta - qta_evasa) > 0)';
$contratti = $dbo->fetchArray($contr_query)[0]['tot'];
echo '
<div class="tip" data-toggle="tooltip" title="'.tr('Contratti accettati, in attesa di conferma o in lavorazione.').'" style="display:inline;">
<a class="btn btn-sm btn-primary '.(!empty($contratti) ? '' : ' disabled').'" data-href="'.$rootdir.'/modules/fatture/add_contratto.php?id_module='.$id_module.'&id_record='.$id_record.'" data-title="Aggiungi contratto">
<div class="tip" title="'.tr('Contratti accettati, in attesa di conferma o in lavorazione.').'" style="display:inline;">
<a class="btn btn-sm btn-primary '.(!empty($contratti) ? '' : ' disabled').'" data-href="'.$rootdir.'/modules/fatture/add_contratto.php?id_module='.$id_module.'&id_record='.$id_record.'" data-title="Aggiungi contratto" data-toggle="tooltip">
<i class="fa fa-plus"></i> Contratto
</a>
</div>';
@ -530,7 +530,7 @@ if (!$block_edit) {
$ordini_query = 'SELECT COUNT(*) AS tot FROM or_ordini WHERE idanagrafica='.prepare($record['idanagrafica']).' AND idstatoordine IN (SELECT id FROM or_statiordine WHERE descrizione IN(\'Bozza\', \'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND idtipoordine=(SELECT id FROM or_tipiordine WHERE dir='.prepare($dir).') AND or_ordini.id IN (SELECT idordine FROM or_righe_ordini WHERE or_righe_ordini.idordine = or_ordini.id AND (qta - qta_evasa) > 0)';
$ordini = $dbo->fetchArray($ordini_query)[0]['tot'];
echo '
<a class="btn btn-sm btn-primary'.(!empty($ordini) ? '' : ' disabled').'" data-href="'.$rootdir.'/modules/fatture/add_ordine.php?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="Aggiungi ordine">
<a class="btn btn-sm btn-primary'.(!empty($ordini) ? '' : ' disabled').'" data-href="'.$rootdir.'/modules/fatture/add_ordine.php?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="tooltip" data-title="Aggiungi ordine">
<i class="fa fa-plus"></i> Ordine
</a>';
}
@ -704,20 +704,20 @@ if (in_array($record[$field_name], $user->sedi)) {
<script>
$(".btn-sm[data-toggle=\"tooltip\"]").each(function() {
$(this).on("click", function() {
form = $("#edit-form");
btn = $(this);
var form = $("#edit-form");
var btn = $(this);
var restore = buttonLoading(btn);
valid = submitAjax(form, {}, function() {
var valid = submitAjax(form, {}, function() {
buttonRestore(btn, restore);
}, function() {
buttonRestore(btn, restore);
});
// Procedo al salvataggio solo se tutti i campi obbligatori sono compilati, altrimenti mostro avviso
//form.find("input:disabled, select:disabled").removeAttr("disabled");
//form.find("input:disabled, select:disabled").removeAttr("disabled");
if(!valid) {
swal({
@ -725,15 +725,15 @@ $(".btn-sm[data-toggle=\"tooltip\"]").each(function() {
title: "'.tr('Errore').'",
text: "'.tr('Alcuni campi obbligatori non sono stati compilati correttamente').'.",
});
$("#bs-popup").one("show.bs.modal", function (e) {
$("#bs-popup").one("show.bs.modal", function (e) {
return e.preventDefault();
});
buttonRestore(btn, restore);
}
$("#bs-popup").one("show.bs.modal", function (e) {
buttonRestore(btn, restore);
});
});
});
</script>';
?>

View File

@ -11,7 +11,7 @@ if ($module['name'] == 'Fatture di vendita') {
if (isset($id_record)) {
$fattura = Modules\Fatture\Fattura::with('tipo', 'stato')->find($id_record);
$record = $dbo->fetchOne('SELECT *,
$record = $dbo->fetchOne('SELECT co_documenti.*,
co_tipidocumento.reversed AS is_reversed,
co_documenti.idagente AS idagente_fattura,
co_documenti.note,

0
modules/fatture/modutil.php Executable file → Normal file
View File

View File

@ -32,22 +32,22 @@ if (!empty($record['immagine'])) {
<div class="col-md-9">
<div class="row">
<div class="col-md-4">
<div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Matricola'); ?>", "name": "matricola", "required": 1, "class": "text-center", "maxlength": 25, "value": "$matricola$" ]}
</div>
<div class="col-md-8">
<div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$nome$" ]}
</div>
<div class="clearfix"></div>
<div class="col-md-8">
<div class="col-md-6">
<?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$", "extra": "", "ajax-source": "clienti" ]}
</div>
<div class="col-md-4">
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Categoria'); ?>", "name": "id_categoria", "required": 0, "class": "", "value": "$id_categoria$", "values": "query=SELECT id, nome AS descrizione FROM my_impianti_categorie" ]}
</div>
</div>

View File

@ -12,13 +12,13 @@ echo '
echo '
<li>
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ddt" data-toggle="modal" data-title="'.tr('Crea ddt').'" class="'.(in_array($record['stato'], ['Bozza', 'Parzialmente evaso']) ? '' : 'disabled').'"><i class="fa fa-file-o"></i>&nbsp;'.tr('ddt').'
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ddt" data-toggle="modal" data-title="'.tr('Crea ddt').'" class="'.(in_array($record['stato'], ['Bozza', 'Parzialmente evaso']) ? '' : 'disabled').'"><i class="fa fa-file-o"></i>&nbsp;'.tr('Ddt').'
</a>
</li>';
echo '
<li>
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea fattura').'" class="'.(in_array($record['stato'], ['Bozza', 'Parzialmente fatturato']) ? '' : 'disabled').'"><i class="fa fa-file"></i>&nbsp;'.tr('fattura').'
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea fattura').'" class="'.(in_array($record['stato'], ['Bozza', 'Parzialmente fatturato']) ? '' : 'disabled').'"><i class="fa fa-file"></i>&nbsp;'.tr('Fattura').'
</a>
</li>';

View File

@ -21,7 +21,7 @@ echo '
<ul class="dropdown-menu dropdown-menu-right">
<li>
<a class="'.($disabled ? '' : 'disabled').'" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ordine" data-toggle="modal" data-title="'.tr('Crea ordine').'">
<i class="fa fa-file"></i>&nbsp;'.tr('Ordine').'
<i class="fa fa-file-o"></i>&nbsp;'.tr('Ordine').'
</a>
</li>

View File

@ -43,7 +43,9 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
<div class="col-md-3">
<?php
echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"');
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" ]}

View File

@ -257,25 +257,43 @@ echo '
</div>';
if ($generated) {
echo '
echo '
<script>
$("#genera").click(function(event){
event.preventDefault();
swal({
title: "'.tr('Sei sicuro di rigenerare la fattura?').'",
html: "<p>'.tr('Attenzione: sarà generato un nuovo progressivo invio').'.</p><p class=\"text-danger\">'.tr('Se stai attendendo una ricevuta dal sistema SdI, rigenerando la fattura elettronica non sarà possibile corrispondere la ricevuta una volta emessa').'.</p>",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#30d64b",
cancelButtonColor: "#d33",
confirmButtonText: "Genera"
}).then((result) => {
if (result) {
$("#form-xml").submit();
}
});
var form = $("#edit-form");
valid = submitAjax(form);
if (valid) {';
if ($generated) {
echo '
swal({
title: "'.tr('Sei sicuro di rigenerare la fattura?').'",
html: "<p>'.tr('Attenzione: sarà generato un nuovo progressivo invio').'.</p><p class=\"text-danger\">'.tr('Se stai attendendo una ricevuta dal sistema SdI, rigenerando la fattura elettronica non sarà possibile corrispondere la ricevuta una volta emessa').'.</p>",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#30d64b",
cancelButtonColor: "#d33",
confirmButtonText: "Genera"
}).then((result) => {
if (result) {
$("#form-xml").submit();
}
});';
} else {
echo '
$("#form-xml").submit();';
}
echo '
} else {
swal({
type: "error",
title: "'.tr('Errore').'",
text: "'.tr('Alcuni campi obbligatori non sono stati compilati correttamente').'.",
});
}
});
</script>';
}

View File

@ -44,6 +44,7 @@ switch ($operazione) {
case 'deletereferente':
$dbo->query('DELETE FROM `an_referenti` WHERE `id`='.prepare($id_record));
$dbo->query('UPDATE co_preventivi SET idreferente = 0 WHERE `idreferente` = '.prepare($id_record));
flash()->info(tr('Referente eliminato!'));

View File

@ -80,7 +80,7 @@ echo '
</div>
<div class="box-body">
<div class="row">
<div class="col-md-4">
<div class="info-box">
@ -96,7 +96,7 @@ echo '
</div>
</div>
</div>
<div class="col-md-4">
<div class="info-box">
<span class="info-box-icon bg-'.($contratti->count() == 0 ? 'gray' : 'purple').'"><i class="fa fa-refresh"></i></span>
@ -111,7 +111,7 @@ echo '
</div>
</div>
</div>
<div class="col-md-4">
<div class="info-box">
<span class="info-box-icon bg-'.($ordini_cliente->count() == 0 ? 'gray' : 'blue').'"><i class="fa fa-file-text"></i></span>
@ -127,7 +127,7 @@ echo '
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="info-box">
@ -143,7 +143,7 @@ echo '
</div>
</div>
</div>
<div class="col-md-4">
<div class="info-box">
<span class="info-box-icon bg-'.($ddt_uscita->count() == 0 ? 'gray' : 'maroon').'"><i class="fa fa-truck"></i></span>
@ -158,7 +158,7 @@ echo '
</div>
</div>
</div>
<div class="col-md-4">
<div class="info-box">
<span class="info-box-icon bg-'.($fatture_vendita->count() == 0 ? 'gray' : 'green').'"><i class="fa fa-money"></i></span>
@ -174,6 +174,6 @@ echo '
</div>
</div>
</div>
</div>
</div>';