Merge branch 'master' into 2.4
This commit is contained in:
commit
525b7e441d
|
@ -52,6 +52,12 @@ if (!empty($module_query) && $module_query != 'menu' && $module_query != 'custom
|
|||
$search_filters[] = str_replace('|search|', prepare('%'.$piece.'%'), $total['search_inside'][$i]);
|
||||
}
|
||||
} else {
|
||||
|
||||
//per le icone cerco per il campo icon_title
|
||||
if (preg_match('/^icon_(.+?)$/', $total['search_inside'][$i], $m)) {
|
||||
$total['search_inside'][$i] = "icon_title_".$m[1];
|
||||
}
|
||||
|
||||
$search_filters[] = '`'.$total['search_inside'][$i].'` LIKE '.prepare('%'.trim($columns[$i]['search']['value'].'%'));
|
||||
}
|
||||
}
|
||||
|
@ -177,7 +183,7 @@ if (!empty($module_query) && $module_query != 'menu' && $module_query != 'custom
|
|||
|
||||
// Icona
|
||||
elseif (preg_match('/^icon_(.+?)$/', trim($field), $m)) {
|
||||
$value = '<i class="'.$r[$field].'"></i> <small>'.$r['icon_title_'.$m[1]].'</small>';
|
||||
$value = '<span class=\'label text-black\' style=\'font-weight:normal;\' ><i class="'.$r[$field].'" title="'.$r['icon_title_'.$m[1]].'" ></i> <span>'.$r['icon_title_'.$m[1]].'</span></span>';
|
||||
}
|
||||
|
||||
// Colore del testo
|
||||
|
|
|
@ -57,7 +57,10 @@ if (!function_exists('completeResults')) {
|
|||
switch ($op) {
|
||||
case 'clienti':
|
||||
if (Modules::get('Anagrafiche')['permessi'] != '-') {
|
||||
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))) AS descrizione, idtipointervento_default 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| ORDER BY ragione_sociale";
|
||||
|
||||
//$citta_cliente = ", IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))";
|
||||
|
||||
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale $citta_cliente) AS descrizione, idtipointervento_default 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| ORDER BY ragione_sociale";
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
|
||||
|
@ -227,7 +230,7 @@ switch ($op) {
|
|||
|
||||
$where[] = 'attivo=1';
|
||||
if (!empty($superselect['dir']) && $superselect['dir'] == 'entrata') {
|
||||
$where[] = 'qta>0';
|
||||
//$where[] = 'qta>0';
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
|
|
|
@ -26,7 +26,7 @@ th {
|
|||
text-align: left;
|
||||
padding: 4px;
|
||||
}
|
||||
ul.nav {
|
||||
nav {
|
||||
float: left;
|
||||
}
|
||||
ul {
|
||||
|
|
|
@ -67,7 +67,7 @@ a.disabled {
|
|||
}
|
||||
|
||||
#right-menu .fa-info {
|
||||
padding: 0px 5px
|
||||
padding: 0 5px
|
||||
}
|
||||
|
||||
.ui-menu {
|
||||
|
@ -566,3 +566,7 @@ input.small-width {
|
|||
.pac-container {
|
||||
z-index: 1100 !important;
|
||||
}
|
||||
|
||||
.form-control#blob{
|
||||
height: auto;
|
||||
}
|
|
@ -35,7 +35,7 @@ $(document).ready(function () {
|
|||
});
|
||||
}
|
||||
//if this isn't a link, prevent the page from being redirected
|
||||
if (checkElement.is('.treeview-menu') && $(event.target).is('.pull-right-container')) {
|
||||
if (checkElement.is('.treeview-menu') && $(e.target).is('.pull-right-container')) {
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -22,7 +22,11 @@ include $docroot.'/actions.php';
|
|||
/*
|
||||
* Widget top
|
||||
*/
|
||||
echo Widgets::addModuleWidgets($id_module, 'controller_top');
|
||||
|
||||
//se non sono mobile nascondo i widget controller_top
|
||||
if (!isMobile()){
|
||||
echo Widgets::addModuleWidgets($id_module, 'controller_top');
|
||||
}
|
||||
|
||||
// Lettura eventuali plugins modulo da inserire come tab
|
||||
echo '
|
||||
|
@ -87,7 +91,16 @@ redirectOperation($id_module, $id_record);
|
|||
* Widget laterali.
|
||||
*/
|
||||
// Controllo se ho widget per il lato destro dello schermo, altrimenti non creo la colonna di destra
|
||||
$result_widgets = $dbo->fetchArray('SELECT `id`, `location`, `class` FROM `zz_widgets` WHERE `id_module`='.prepare($id_module)." AND `location`='controller_right' AND `enabled`=1 ORDER BY `order` ASC");
|
||||
|
||||
//se sono mobile pesco anche i widget di controller_top
|
||||
if (isMobile()){
|
||||
$extra_where = " OR location = 'controller_top'";
|
||||
}else{
|
||||
$extra_where = "";
|
||||
}
|
||||
|
||||
|
||||
$result_widgets = $dbo->fetchArray('SELECT `id`, `location`, `class` FROM `zz_widgets` WHERE `id_module`='.prepare($id_module)." AND (`location`='controller_right' ".$extra_where." ) AND `enabled`=1 ORDER BY `order` ASC");
|
||||
if (count($result_widgets) > 0) {
|
||||
echo '
|
||||
<div class="col-md-12">';
|
||||
|
|
|
@ -869,3 +869,12 @@ function getConfig()
|
|||
|
||||
return get_defined_vars();
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce se l'user-agent (browser web) è una versione mobile
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function isMobile() {
|
||||
return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
|
||||
}
|
||||
|
|
|
@ -58,50 +58,50 @@ switch (post('op')) {
|
|||
break;
|
||||
|
||||
case 'disable_widget':
|
||||
if (Modules::getPermission($module_name) == 'rw') {
|
||||
//if (Modules::getPermission($module_name) == 'rw') {
|
||||
$dbo->query('UPDATE zz_widgets SET enabled=0 WHERE id='.prepare($id));
|
||||
$rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
|
||||
$widget = $rs[0]['name'];
|
||||
$_SESSION['infos'][] = tr('Widget _WIDGET_ disabilitato!', [
|
||||
'_WIDGET_' => '"'.$widget.'"',
|
||||
]);
|
||||
}
|
||||
//}
|
||||
|
||||
break;
|
||||
|
||||
case 'enable_widget':
|
||||
if (Modules::getPermission($module_name) == 'rw') {
|
||||
//if (Modules::getPermission($module_name) == 'rw') {
|
||||
$dbo->query('UPDATE zz_widgets SET enabled=1 WHERE id='.prepare($id));
|
||||
$rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
|
||||
$widget = $rs[0]['name'];
|
||||
$_SESSION['infos'][] = tr('Widget _WIDGET_ abilitato!', [
|
||||
'_WIDGET_' => '"'.$widget.'"',
|
||||
]);
|
||||
}
|
||||
//}
|
||||
|
||||
break;
|
||||
|
||||
case 'change_position_widget_top':
|
||||
if (Modules::getPermission($module_name) == 'rw') {
|
||||
//if (Modules::getPermission($module_name) == 'rw') {
|
||||
$dbo->query("UPDATE zz_widgets SET location='controller_top' WHERE id=".prepare($id));
|
||||
$rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
|
||||
$widget = $rs[0]['name'];
|
||||
$_SESSION['infos'][] = tr('Posizione del widget _WIDGET_ aggiornata!', [
|
||||
'_WIDGET_' => '"'.$widget.'"',
|
||||
]);
|
||||
}
|
||||
//}
|
||||
|
||||
break;
|
||||
|
||||
case 'change_position_widget_right':
|
||||
if (Modules::getPermission($module_name) == 'rw') {
|
||||
//if (Modules::getPermission($module_name) == 'rw') {
|
||||
$dbo->query("UPDATE zz_widgets SET location='controller_right' WHERE id=".prepare($id));
|
||||
$rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
|
||||
$widget = $rs[0]['name'];
|
||||
$_SESSION['infos'][] = tr('Posizione del widget _WIDGET_ aggiornata!', [
|
||||
'_WIDGET_' => '"'.$widget.'"',
|
||||
]);
|
||||
}
|
||||
//}
|
||||
|
||||
break;
|
||||
|
||||
|
|
|
@ -118,9 +118,9 @@ foreach ($modules as $module) {
|
|||
// Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti
|
||||
if ($module['id'] != $id_module) {
|
||||
if ($module['enabled']) {
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Disabilitare questo modulo?')."') ){ $.post( '".$rootdir.'/editor.php?id_module='.$id_module."', { op: 'disable', id: '".$module['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\">".$stato."</a>\n";
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Disabilitare questo modulo?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'disable', id: '".$module['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\">".$stato."</a>\n";
|
||||
} else {
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Abilitare questo modulo?')."') ){ $.post( '".$rootdir.'/editor.php?id_module='.$id_module."', { op: 'enable', id: '".$module['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$stato."</a>\n";
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Abilitare questo modulo?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'enable', id: '".$module['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$stato."</a>\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -153,7 +153,7 @@ foreach ($modules as $module) {
|
|||
// Possibilità di disinstallare solo se il modulo non è tra quelli predefiniti
|
||||
if (empty($module['default'])) {
|
||||
echo "
|
||||
<a href=\"javascript:;\" data-toggle='tooltip' title=\"".tr('Disinstalla')."...\" onclick=\"if( confirm('".tr('Vuoi disinstallare questo modulo?').' '.tr('Tutti i dati salvati andranno persi!')."') ){ if( confirm('".tr('Sei veramente sicuro?')."') ){ $.post( '".$rootdir.'/editor.php?id_module='.$id_module."', { op: 'uninstall', id: '".$module['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); } }\"><i class='fa fa-trash'></i></a>";
|
||||
<a href=\"javascript:;\" data-toggle='tooltip' title=\"".tr('Disinstalla')."...\" onclick=\"if( confirm('".tr('Vuoi disinstallare questo modulo?').' '.tr('Tutti i dati salvati andranno persi!')."') ){ if( confirm('".tr('Sei veramente sicuro?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'uninstall', id: '".$module['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); } }\"><i class='fa fa-trash'></i></a>";
|
||||
} else {
|
||||
echo "
|
||||
<a class='disabled text-muted'>
|
||||
|
@ -181,9 +181,9 @@ foreach ($modules as $module) {
|
|||
// Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti
|
||||
if ($sub['id'] != $id_module) {
|
||||
if ($sub['enabled']) {
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Disabilitare questo modulo?')."') ){ $.post( '".$rootdir.'/editor.php?id_module='.$id_module."', { op: 'disable', id: '".$sub['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\">".$stato."</a>\n";
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Disabilitare questo modulo?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'disable', id: '".$sub['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\">".$stato."</a>\n";
|
||||
} else {
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Abilitare questo modulo?')."') ){ $.post( '".$rootdir.'/editor.php?id_module='.$id_module."', { op: 'enable', id: '".$sub['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$stato."</a>\n";
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Abilitare questo modulo?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'enable', id: '".$sub['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$stato."</a>\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -217,7 +217,7 @@ foreach ($modules as $module) {
|
|||
// Possibilità di disinstallare solo se il modulo non è tra quelli predefiniti
|
||||
if (empty($sub['default'])) {
|
||||
echo "
|
||||
<a href=\"javascript:;\" data-toggle='tooltip' title=\"".tr('Disinstalla')."...\" onclick=\"if( confirm('".tr('Vuoi disinstallare questo modulo?').' '.tr('Tutti i dati salvati andranno persi!')."') ){ if( confirm('".tr('Sei veramente sicuro?')."') ){ $.post( '".$rootdir.'/editor.php?id_module='.$id_module."', { op: 'uninstall', id: '".$sub['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); } }\">
|
||||
<a href=\"javascript:;\" data-toggle='tooltip' title=\"".tr('Disinstalla')."...\" onclick=\"if( confirm('".tr('Vuoi disinstallare questo modulo?').' '.tr('Tutti i dati salvati andranno persi!')."') ){ if( confirm('".tr('Sei veramente sicuro?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'uninstall', id: '".$sub['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); } }\">
|
||||
<i class='fa fa-trash'></i>
|
||||
</a>";
|
||||
} else {
|
||||
|
@ -273,9 +273,9 @@ foreach ($widgets as $widget) {
|
|||
|
||||
// Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti
|
||||
if ($widget['enabled']) {
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Disabilitare questo widget?')."') ){ $.post( '".$rootdir.'/editor.php?id_module='.$id_module."', { op: 'disable_widget', id: '".$widget['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\">".$stato."</a>\n";
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Disabilitare questo widget?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'disable_widget', id: '".$widget['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\">".$stato."</a>\n";
|
||||
} else {
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Abilitare questo widget?')."') ){ $.post( '".$rootdir.'/editor.php?id_module='.$id_module."', { op: 'enable_widget', id: '".$widget['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$stato."</a>\n";
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Abilitare questo widget?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'enable_widget', id: '".$widget['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$stato."</a>\n";
|
||||
}
|
||||
|
||||
// POSIZIONE
|
||||
|
@ -287,10 +287,10 @@ foreach ($widgets as $widget) {
|
|||
|
||||
if ($widget['location'] == 'controller_right') {
|
||||
$posizione = "<i class='fa fa-arrow-up text-warning' data-toggle='tooltip' title=\"".tr('Clicca per cambiare la posizione...')."\"></i> <i class='fa fa-arrow-right text-success' data-toggle='tooltip' title=\"\"></i>";
|
||||
$posizione = "<a href='javascript:;' onclick=\"if( confirm('".tr('Cambiare la posizione di questo widget?')."') ){ $.post( '".$rootdir.'/editor.php?id_module='.$id_module."', { op: 'change_position_widget_top', id: '".$widget['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$posizione."</a>\n";
|
||||
$posizione = "<a href='javascript:;' onclick=\"if( confirm('".tr('Cambiare la posizione di questo widget?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'change_position_widget_top', id: '".$widget['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$posizione."</a>\n";
|
||||
} elseif ($widget['location'] == 'controller_top') {
|
||||
$posizione = "<i class='fa fa-arrow-up text-success' data-toggle='tooltip' title=\"\"></i> <i class='fa fa-arrow-right text-warning' data-toggle='tooltip' title=\"".tr('Clicca per cambiare la posizione...').'"></i></i>';
|
||||
$posizione = "<a href='javascript:;' onclick=\"if( confirm('".tr('Cambiare la posizione di questo widget?')."') ){ $.post( '".$rootdir.'/editor.php?id_module='.$id_module."', { op: 'change_position_widget_right', id: '".$widget['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$posizione."</a>\n";
|
||||
$posizione = "<a href='javascript:;' onclick=\"if( confirm('".tr('Cambiare la posizione di questo widget?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'change_position_widget_right', id: '".$widget['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$posizione."</a>\n";
|
||||
}
|
||||
|
||||
echo '
|
||||
|
|
|
@ -29,7 +29,11 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
|
|||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
|
||||
{[ "type": "text", "label": "<?php echo tr('Codice'); ?>", "name": "codice", "required": 1, "value": "$codice$" ]}
|
||||
<br>
|
||||
{[ "type": "checkbox", "label": "<?php echo tr("Seleziona per rendere visibile l'articolo"); ?>", "name": "attivo", "value": "$attivo$", "help": "", "placeholder": "<?php echo tr('ATTIVO'); ?>" ]}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-5">
|
||||
|
@ -45,10 +49,10 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
|
|||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-2">
|
||||
{[ "type": "number", "label": "<?php echo tr('Quantità'); ?>", "name": "qta", "required": 1, "value": "$qta$", "readonly": 1, "decimals": "qta|undefined" ]}
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "checkbox", "label": "<?php echo tr('Modifica manualmente quantità'); ?>", "name": "qta_manuale", "value": 0, "help": "<?php echo tr('Seleziona per modificare manualmente la quantità'); ?>", "placeholder": "<?php echo tr('Quantità manuale'); ?>" ]}
|
||||
|
||||
<script type="text/javascript">
|
||||
|
@ -61,13 +65,39 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
|
|||
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-2">
|
||||
{[ "type": "select", "label": "<?php echo tr('Unità di misura'); ?>", "name": "um", "value": "$um$", "ajax-source": "misure", "icon-after": "add|<?php echo Modules::get('Unità di misura')['id']; ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
{[ "type": "number", "label": "<?php echo tr('Soglia minima quantità'); ?>", "name": "threshold_qta", "value": "$threshold_qta$", "decimals": "qta" ]}
|
||||
</div>
|
||||
|
||||
<?php
|
||||
if (empty($records[0]['abilita_serial'])) {
|
||||
$plugin = $dbo->fetchArray("SELECT id FROM zz_plugins WHERE name='Serial'");
|
||||
echo '<script>$("#link-tab_'.$plugin[0]['id'].'").addClass("disabled");</script>';
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "checkbox", "label": "<?php echo tr('Abilita serial number'); ?>", "name": "abilita_serial", "value": "$abilita_serial$", "help": "", "placeholder": "<?php echo tr('Abilita serial number in fase di aggiunta articolo in fattura o ddt'); ?>" ]}
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
{[ "type": "number", "label": "<?php echo tr('Prezzo di acquisto'); ?>", "name": "prezzo_acquisto", "value": "$prezzo_acquisto$", "icon-after": "€" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<div class="col-md-2">
|
||||
{[ "type": "number", "label": "<?php echo tr('Prezzo di vendita base'); ?>", "name": "prezzo_vendita", "value": "$prezzo_vendita$", "icon-after": "€" ]}
|
||||
</div>
|
||||
|
||||
|
@ -75,45 +105,22 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
|
|||
{[ "type": "select", "label": "<?php echo tr('Iva di vendita'); ?>", "name": "idiva_vendita", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC", "value": "$idiva_vendita$", "valore_predefinito": "Iva predefinita" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "checkbox", "label": "<?php echo tr("Seleziona per rendere visibile l'articolo"); ?>", "name": "attivo", "value": "$attivo$", "help": "", "placeholder": "<?php echo tr('ATTIVO'); ?>" ]}
|
||||
<div class="col-md-2">
|
||||
{[ "type": "number", "label": "<?php echo tr('Garanzia'); ?>", "name": "gg_garanzia", "decimals": 0, "value": "$gg_garanzia$", "icon-after": "GG" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "checkbox", "label": "<?php echo tr('Abilita serial number'); ?>", "name": "abilita_serial", "value": "$abilita_serial$", "help": "", "placeholder": "<?php echo tr('Abilita serial number in fase di aggiunta articolo in fattura o ddt'); ?>" ]}
|
||||
</div>
|
||||
<?php
|
||||
if (empty($records[0]['abilita_serial'])) {
|
||||
$plugin = $dbo->fetchArray("SELECT id FROM zz_plugins WHERE name='Serial'");
|
||||
|
||||
echo '
|
||||
<script>
|
||||
$("#link-tab_'.$plugin[0]['id'].'").addClass("disabled");
|
||||
</script>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "<?php echo tr('Prezzo di acquisto'); ?>", "name": "prezzo_acquisto", "value": "$prezzo_acquisto$", "icon-after": "€" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "<?php echo tr('Soglia minima quantità'); ?>", "name": "threshold_qta", "value": "$threshold_qta$", "decimals": "qta" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "<?php echo tr('Giorni di garanzia'); ?>", "name": "gg_garanzia", "decimals": 0, "value": "$gg_garanzia$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-2">
|
||||
{[ "type": "number", "label": "<?php echo tr('Peso lordo'); ?>", "name": "peso_lordo", "value": "$peso_lordo$", "icon-after": "KG" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-2">
|
||||
{[ "type": "number", "label": "<?php echo tr('Volume'); ?>", "name": "volume", "value": "$volume$", "icon-after": "M<sup>3</sup>" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -283,26 +290,55 @@ $("#categoria").change( function(){
|
|||
});
|
||||
</script>
|
||||
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
||||
|
||||
<?php
|
||||
|
||||
$count = $dbo->fetchArray('SELECT COUNT(*) AS tot FROM (
|
||||
SELECT `idarticolo` FROM `co_righe_documenti` WHERE `idarticolo` = '.prepare($id_record).' UNION
|
||||
SELECT `idarticolo` FROM `dt_righe_ddt` WHERE `idarticolo` = '.prepare($id_record).' UNION
|
||||
SELECT `idarticolo` FROM `or_righe_ordini` WHERE `idarticolo` = '.prepare($id_record).' UNION
|
||||
SELECT `idarticolo` FROM `mg_articoli_interventi` WHERE `idarticolo` = '.prepare($id_record).'
|
||||
) AS count');
|
||||
//fatture, ddt, preventivi collegati a questo articolo
|
||||
$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 `idarticolo` = '.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`.`id` IN (SELECT `idddt` FROM `dt_righe_ddt` WHERE `idarticolo` = '.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`.`id` IN (SELECT `idpreventivo` FROM `co_righe_preventivi` WHERE `idarticolo` = '.prepare($id_record).') ORDER BY `data`');
|
||||
|
||||
$tot = $count[0]['tot'];
|
||||
if ($tot > 0) {
|
||||
|
||||
if (!empty($elementi)) {
|
||||
echo '
|
||||
<div class="alert alert-danger">
|
||||
'.tr('Ci sono _NUM_ righe di documenti collegate', [
|
||||
'_NUM_' => $tot,
|
||||
]).'.
|
||||
'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'
|
||||
<div class="alert alert-warning">
|
||||
<p>'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [
|
||||
'_NUM_' => count($elementi),
|
||||
'_I_' => (count($elementi)>1) ? tr('i') : tr('o')
|
||||
]).':</p>
|
||||
<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']),
|
||||
]);
|
||||
|
||||
//se non è un preventivo è un ddt o una fattura
|
||||
//se non è un ddt è una fattura.
|
||||
if (in_array($elemento['tipo_documento'], ['Preventivo'])) {
|
||||
$modulo ='Preventivi';
|
||||
} else if (!in_array($elemento['tipo_documento'], ['Ddt di vendita', 'Ddt di acquisto'])) {
|
||||
$modulo = ($elemento['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
|
||||
} else {
|
||||
$modulo = ($elemento['dir'] == 'entrata') ? 'Ddt di vendita' : 'Ddt di acquisto';
|
||||
}
|
||||
|
||||
$id = $elemento['id'];
|
||||
|
||||
echo '
|
||||
<li>'.Modules::link($modulo, $id, $descrizione).'</li>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</ul>
|
||||
<p>'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale.').'</p>
|
||||
</div>';
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
|
@ -367,19 +367,18 @@ if (!empty($records[0]['idcontratto_prev'])) {
|
|||
});
|
||||
</script>
|
||||
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
//fatture collegate a questo contratto
|
||||
$fatture = $dbo->fetchArray('SELECT `co_documenti`.*, `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 `idcontratto` = '.prepare($id_record).') ORDER BY `data`');
|
||||
if (!empty($fatture)) {
|
||||
echo '
|
||||
<div class="alert alert-danger">
|
||||
<p>'.tr('Ci sono _NUM_ documenti collegate a questo elemento', [
|
||||
<div class="alert alert-warning">
|
||||
<p>'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [
|
||||
'_NUM_' => count($fatture),
|
||||
]).'.</p>
|
||||
'_I_' => (count($fatture)>1) ? tr('i') : tr('o')
|
||||
]).':</p>
|
||||
<ul>';
|
||||
|
||||
foreach ($fatture as $fattura) {
|
||||
|
@ -398,6 +397,13 @@ if (!empty($fatture)) {
|
|||
|
||||
echo '
|
||||
</ul>
|
||||
<p>'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'</p>
|
||||
<p>'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale.').'</p>
|
||||
</div>';
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
|
@ -220,23 +220,23 @@ switch (post('op')) {
|
|||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
// Lettura di tutte le righe della tabella in arrivo
|
||||
for ($i = 0; $i < sizeof($post['qta_da_evadere']); ++$i) {
|
||||
foreach ($post['qta_da_evadere'] AS $idriga=>$value) {
|
||||
// Processo solo le righe da evadere
|
||||
if ($post['evadere'][$i] == 'on') {
|
||||
$idrigaordine = post('idriga')[$i];
|
||||
$idarticolo = post('idarticolo')[$i];
|
||||
$descrizione = post('descrizione')[$i];
|
||||
if ($post['evadere'][$idriga] == 'on') {
|
||||
|
||||
$qta = $post['qta_da_evadere'][$i];
|
||||
$um = post('um')[$i];
|
||||
$abilita_serial = post('abilita_serial')[$i];
|
||||
$idarticolo = post('idarticolo')[$idriga];
|
||||
$descrizione = post('descrizione')[$idriga];
|
||||
|
||||
$subtot = $post['subtot'][$i] * $qta;
|
||||
$sconto = $post['sconto'][$i];
|
||||
$qta = $post['qta_da_evadere'][$idriga];
|
||||
$um = post('um')[$idriga];
|
||||
$abilita_serial = post('abilita_serial')[$idriga];
|
||||
|
||||
$subtot = $post['subtot'][$idriga] * $qta;
|
||||
$sconto = $post['sconto'][$idriga];
|
||||
$sconto = $sconto * $qta;
|
||||
|
||||
$idiva = post('idiva')[$i];
|
||||
$iva = $post['iva'][$i] * $qta;
|
||||
$idiva = post('idiva')[$idriga];
|
||||
$iva = $post['iva'][$idriga] * $qta;
|
||||
|
||||
// Calcolo l'iva indetraibile
|
||||
$q = 'SELECT descrizione, indetraibile FROM co_iva WHERE id='.prepare($idiva);
|
||||
|
@ -248,13 +248,13 @@ switch (post('op')) {
|
|||
$riga = $dbo->lastInsertedID();
|
||||
|
||||
// Aggiornamento seriali dalla riga dell'ordine
|
||||
$serials = is_array($post['serial'][$i]) ? $post['serial'][$i] : [];
|
||||
$serials = is_array($post['serial'][$idriga]) ? $post['serial'][$idriga] : [];
|
||||
$serials = array_filter($serials, function ($value) { return !empty($value); });
|
||||
|
||||
$dbo->sync('mg_prodotti', ['id_riga_ddt' => $riga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => $serials]);
|
||||
|
||||
// Scalo la quantità dall'ordine
|
||||
$dbo->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($idrigaordine));
|
||||
$dbo->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($idriga));
|
||||
|
||||
// Movimento il magazzino
|
||||
// vendita
|
||||
|
|
|
@ -184,6 +184,8 @@ include $docroot.'/modules/ddt/row-list.php';
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{( "name": "filelist_and_upload", "id_module": "<?php echo $id_module ?>", "id_record": "<?php echo $id_record ?>" )}
|
||||
|
||||
<script>
|
||||
$('#idanagrafica').change( function(){
|
||||
session_set('superselect,idanagrafica', $(this).val(), 0);
|
||||
|
@ -192,19 +194,18 @@ include $docroot.'/modules/ddt/row-list.php';
|
|||
});
|
||||
</script>
|
||||
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
//fatture collegate a questo ddt
|
||||
$fatture = $dbo->fetchArray('SELECT `co_documenti`.*, `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 `idddt` = '.prepare($id_record).') ORDER BY `data`');
|
||||
if (!empty($fatture)) {
|
||||
echo '
|
||||
<div class="alert alert-danger">
|
||||
<p>'.tr('Ci sono _NUM_ documenti collegate a questo elemento', [
|
||||
<div class="alert alert-warning">
|
||||
<p>'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [
|
||||
'_NUM_' => count($fatture),
|
||||
]).'.</p>
|
||||
'_I_' => (count($fatture)>1) ? tr('i') : tr('o')
|
||||
]).':</p>
|
||||
<ul>';
|
||||
|
||||
foreach ($fatture as $fattura) {
|
||||
|
@ -223,6 +224,12 @@ if (!empty($fatture)) {
|
|||
|
||||
echo '
|
||||
</ul>
|
||||
<p>'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'</p>
|
||||
<p>'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale.').'</p>
|
||||
</div>';
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
||||
|
|
|
@ -931,10 +931,10 @@ switch (post('op')) {
|
|||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
// Lettura di tutte le righe della tabella in arrivo
|
||||
for ($i = 0; $i < sizeof($post['qta_da_evadere']); ++$i) {
|
||||
foreach ($post['qta_da_evadere'] AS $i => $value) {
|
||||
// Processo solo le righe da evadere
|
||||
if ($post['evadere'][$i] == 'on') {
|
||||
$idrigaordine = post('idriga')[$i];
|
||||
|
||||
$idarticolo = post('idarticolo')[$i];
|
||||
$descrizione = post('descrizione')[$i];
|
||||
$qta = post('qta_da_evadere')[$i];
|
||||
|
@ -945,7 +945,7 @@ switch (post('op')) {
|
|||
$sconto = post('sconto')[$i];
|
||||
$sconto = $sconto * $qta;
|
||||
|
||||
$qprc = 'SELECT tipo_sconto, sconto_unitario FROM or_righe_ordini WHERE id='.$idrigaordine;
|
||||
$qprc = 'SELECT tipo_sconto, sconto_unitario FROM or_righe_ordini WHERE id='.$i;
|
||||
$rsprc = $dbo->fetchArray($qprc);
|
||||
|
||||
$sconto_unitario = $rsprc[0]['sconto_unitario'];
|
||||
|
@ -984,7 +984,7 @@ switch (post('op')) {
|
|||
}
|
||||
|
||||
// Scalo la quantità dall'ordine
|
||||
$dbo->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($idrigaordine));
|
||||
$dbo->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($i));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ $rs = $dbo->fetchArray('SELECT *, (qta - qta_evasa) AS qta_rimanente FROM '.$tab
|
|||
|
||||
if (!empty($rs)) {
|
||||
echo '
|
||||
<p>'.tr('Seleziona le righe che vuoi inserire nel documento e la quantità').'.</p>
|
||||
<p>'.tr('Seleziona le righe e le relative quantità da inserire nel documento').'.</p>
|
||||
|
||||
<form action="'.$rootdir.'/editor.php?id_module='.Modules::get($module_name)['id'].(!empty($get['iddocumento']) ? '&id_record='.$get['iddocumento'] : '').'" method="post">
|
||||
<input type="hidden" name="'.$id.'" value="'.$id_record.'">
|
||||
|
@ -119,14 +119,14 @@ if (!empty($rs)) {
|
|||
echo '
|
||||
<tr>
|
||||
<td>
|
||||
<input type="hidden" name="idriga[]" value="'.$r['id'].'" />
|
||||
<input type="hidden" name="abilita_serial[]" value="'.$r['abilita_serial'].'" />
|
||||
<input type="hidden" id="idarticolo_'.$i.'" name="idarticolo[]" value="'.$r['idarticolo'].'" />
|
||||
<input type="hidden" id="descrizione_'.$i.'" name="descrizione[]" value="'.$r['descrizione'].'" />';
|
||||
|
||||
<input type="hidden" name="abilita_serial['.$r['id'].']" value="'.$r['abilita_serial'].'" />
|
||||
<input type="hidden" id="idarticolo_'.$i.'" name="idarticolo['.$r['id'].']" value="'.$r['idarticolo'].'" />
|
||||
<input type="hidden" id="descrizione_'.$i.'" name="descrizione['.$r['id'].']" value="'.$r['descrizione'].'" />';
|
||||
|
||||
// Checkbox - da evadere?
|
||||
echo '
|
||||
<input type="checkbox" checked="checked" id="checked_'.$i.'" name="evadere[]" value="on" onclick="ricalcola_subtotale_riga('.$i.');" />';
|
||||
<input type="checkbox" checked="checked" id="checked_'.$i.'" name="evadere['.$r['id'].']" value="on" onclick="ricalcola_subtotale_riga('.$i.');" />';
|
||||
|
||||
echo nl2br($r['descrizione']);
|
||||
|
||||
|
@ -137,14 +137,14 @@ if (!empty($rs)) {
|
|||
echo '
|
||||
<td>
|
||||
<input type="hidden" id="qtamax_'.$i.'" value="'.($r['qta'] - $r['qta_evasa']).'" />
|
||||
<input type="hidden" id="um_'.$i.'" name="um[]" value="'.$r['um'].'" />
|
||||
<input type="hidden" id="um_'.$i.'" name="um['.$r['id'].']" value="'.$r['um'].'" />
|
||||
<p class="text-center">'.Translator::numberToLocale($r['qta_rimanente']).'</p>
|
||||
</td>';
|
||||
|
||||
// Q.tà da evadere
|
||||
echo '
|
||||
<td>
|
||||
{[ "type": "number", "name": "qta_da_evadere[]", "id": "qta_'.$i.'", "required": 1, "value": "'.$r['qta_rimanente'].'", "extra" : "onchange=\"ricalcola_subtotale_riga('.$i.');\"", "decimals": "qta|0" ]}
|
||||
{[ "type": "number", "name": "qta_da_evadere['.$r['id'].']", "id": "qta_'.$i.'", "required": 1, "value": "'.$r['qta_rimanente'].'", "extra" : "onkeyup=\"ricalcola_subtotale_riga('.$i.');\"", "decimals": "qta|0" ]}
|
||||
</td>';
|
||||
|
||||
// Subtotale
|
||||
|
@ -154,10 +154,10 @@ if (!empty($rs)) {
|
|||
|
||||
echo '
|
||||
<td>
|
||||
<input type="hidden" id="subtot_'.$i.'" name="subtot[]" value="'.($r['subtotale'] / $r['qta']).'" />
|
||||
<input type="hidden" id="sconto_'.$i.'" name="sconto[]" value="'.($r['sconto'] / $r['qta']).'" />
|
||||
<input type="hidden" id="idiva_'.$i.'" name="idiva[]" value="'.$r['idiva'].'" />
|
||||
<input type="hidden" id="iva_'.$i.'" name="iva[]" value="'.($r['iva'] / $r['qta']).'" />
|
||||
<input type="hidden" id="subtot_'.$i.'" name="subtot['.$r['id'].']" value="'.($r['subtotale'] / $r['qta']).'" />
|
||||
<input type="hidden" id="sconto_'.$i.'" name="sconto['.$r['id'].']" value="'.($r['sconto'] / $r['qta']).'" />
|
||||
<input type="hidden" id="idiva_'.$i.'" name="idiva['.$r['id'].']" value="'.$r['idiva'].'" />
|
||||
<input type="hidden" id="iva_'.$i.'" name="iva['.$r['id'].']" value="'.($r['iva'] / $r['qta']).'" />
|
||||
|
||||
<big id="subtotale_'.$i.'">'.Translator::numberToLocale($subtotale - $sconto + $iva).' €</big><br/>
|
||||
|
||||
|
@ -171,7 +171,7 @@ if (!empty($rs)) {
|
|||
$values = $dbo->fetchArray('SELECT DISTINCT serial FROM mg_prodotti WHERE dir=\''.$dir.'\' AND '.$row.' = \''.$r['id'].'\' AND serial IS NOT NULL AND serial NOT IN (SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND dir=\''.$dir.'\' AND '.$data[$pos]['condition'].')');
|
||||
|
||||
echo '
|
||||
{[ "type": "select", "name": "serial['.$i.'][]", "id": "serial_'.$i.'", "multiple": 1, "values": "query=SELECT DISTINCT serial AS id, serial AS descrizione FROM mg_prodotti WHERE dir=\''.$dir.'\' AND '.$row.' = \''.$r['id'].'\' AND serial IS NOT NULL AND serial NOT IN (SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND dir=\''.$dir.'\' AND '.$data[$pos]['condition'].')", "value": "'.implode(',', array_column($values, 'serial')).'", "extra": "data-maximum=\"'.intval($r['qta_rimanente']).'\"" ]}
|
||||
{[ "type": "select", "name": "serial['.$i.']['.$r['id'].']", "id": "serial_'.$i.'", "multiple": 1, "values": "query=SELECT DISTINCT serial AS id, serial AS descrizione FROM mg_prodotti WHERE dir=\''.$dir.'\' AND '.$row.' = \''.$r['id'].'\' AND serial IS NOT NULL AND serial NOT IN (SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND dir=\''.$dir.'\' AND '.$data[$pos]['condition'].')", "value": "'.implode(',', array_column($values, 'serial')).'", "extra": "data-maximum=\"'.intval($r['qta_rimanente']).'\"" ]}
|
||||
';
|
||||
} else {
|
||||
echo '-';
|
||||
|
|
|
@ -154,7 +154,7 @@ if ($tipodoc == 'Fattura accompagnatoria di vendita') {
|
|||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr('Vettore'); ?>", "name": "idvettore", "values": "query=SELECT DISTINCT an_anagrafiche.idanagrafica AS id, an_anagrafiche.ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE an_tipianagrafiche_anagrafiche.idtipoanagrafica=(SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Vettore') ORDER BY descrizione ASC", "value": "$idvettore$"" ]}
|
||||
{[ "type": "select", "label": "<?php echo tr('Vettore'); ?>", "name": "idvettore", "values": "query=SELECT DISTINCT an_anagrafiche.idanagrafica AS id, an_anagrafiche.ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE an_tipianagrafiche_anagrafiche.idtipoanagrafica=(SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Vettore') ORDER BY descrizione ASC", "value": "$idvettore$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -3,6 +3,10 @@
|
|||
include_once __DIR__.'/../../core.php';
|
||||
include_once __DIR__.'/modutil.php';
|
||||
|
||||
$idiva = get_var('Iva predefinita');
|
||||
$rs_iva = $dbo->fetchArray('SELECT descrizione, percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva));
|
||||
($rs_iva[0]['percentuale']>0) ? $hide = '' : $hide = 'hide';
|
||||
|
||||
if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') {
|
||||
$costi = get_costi_intervento($id_record);
|
||||
|
||||
|
@ -51,11 +55,27 @@ if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') {
|
|||
<td class="text-right">'.Translator::numberToLocale(-$costi['sconto_globale']).' €</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr class='.$hide.' >
|
||||
<th>'.tr('Imponibile', [], ['upper' => true]).'</th>
|
||||
<td class="text-right">'.Translator::numberToLocale($costi['totale_costo']).' €</td>
|
||||
<td class="text-right">'.Translator::numberToLocale($costi['totale_addebito']).' €</td>
|
||||
<td class="text-right">'.Translator::numberToLocale($costi['totale']).' €</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr class='.$hide.' >
|
||||
<th>'.tr('IVA (_DESC_)', [ _DESC_ => $rs_iva[0]['descrizione']], ['upper' => true]).'</th>
|
||||
<td class="text-right">'.Translator::numberToLocale(($costi['totale_costo']/100*$rs_iva[0]['percentuale'])).' €</td>
|
||||
<td class="text-right">'.Translator::numberToLocale(($costi['totale_addebito']/100*$rs_iva[0]['percentuale'])).' €</td>
|
||||
<td class="text-right">'.Translator::numberToLocale(($costi['totale']/100*$rs_iva[0]['percentuale'])).' €</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>'.tr('Totale', [], ['upper' => true]).'</th>
|
||||
<th class="text-right">'.Translator::numberToLocale($costi['totale_costo']).' €</th>
|
||||
<th class="text-right">'.Translator::numberToLocale($costi['totale_addebito']).' €</th>
|
||||
<th class="text-right">'.Translator::numberToLocale($costi['totale']).' €</th>
|
||||
<th class="text-right">'.Translator::numberToLocale($costi['totale_costo']+($costi['totale_costo']/100*$rs_iva[0]['percentuale'])).' €</th>
|
||||
<th class="text-right">'.Translator::numberToLocale($costi['totale_addebito']+($costi['totale_addebito']/100*$rs_iva[0]['percentuale'])).' €</th>
|
||||
<th class="text-right">'.Translator::numberToLocale($costi['totale']+($costi['totale']/100*$rs_iva[0]['percentuale'])).' €</th>
|
||||
</tr>
|
||||
</table>';
|
||||
}
|
||||
|
|
|
@ -111,12 +111,12 @@ if (!empty($rs2)) {
|
|||
|
||||
echo '
|
||||
<tr>
|
||||
<td class="tecn_'.$r['idtecnico'].'">';
|
||||
<td class="tecn_'.$r['idtecnico'].'" style="min-width:200px;" >';
|
||||
|
||||
if ($rs[0]['stato'] != 'Fatturato') {
|
||||
// Elenco tipologie di interventi
|
||||
echo '
|
||||
{[ "type": "select", "name": "idtipointerventot['.$id.']", "value": "'.$r['idtipointervento'].'", "values": "query=SELECT idtipointervento AS id, descrizione, IFNULL((SELECT costo_ore FROM in_tariffe WHERE idtipointervento=in_tipiintervento.idtipointervento AND idtecnico='.prepare($r['idtecnico']).'), 0) AS costo_orario FROM in_tipiintervento ORDER BY descrizione" ]}';
|
||||
{[ "type": "select", "name": "idtipointerventot['.$id.']", "value": "'.$r['idtipointervento'].'", "values": "query=SELECT idtipointervento AS id, descrizione, IFNULL((SELECT costo_ore FROM in_tariffe WHERE idtipointervento=in_tipiintervento.idtipointervento AND idtecnico='.prepare($r['idtecnico']).'), 0) AS costo_orario FROM in_tipiintervento ORDER BY descrizione", "class": "", "extra": "" ]}';
|
||||
}
|
||||
|
||||
echo '
|
||||
|
|
|
@ -294,21 +294,21 @@ if (empty($records[0]['firma_file'])) {
|
|||
});
|
||||
</script>
|
||||
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina') ?>
|
||||
</a>
|
||||
|
||||
<script src="<?php echo $rootdir ?>/modules/interventi/js/interventi_helperjs.js"></script>
|
||||
|
||||
<?php
|
||||
|
||||
//fatture collegate a questo intervento
|
||||
|
||||
$fatture = $dbo->fetchArray('SELECT `co_documenti`.*, `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 `idintervento` = '.prepare($id_record).') ORDER BY `data`');
|
||||
if (!empty($fatture)) {
|
||||
echo '
|
||||
<div class="alert alert-danger">
|
||||
<p>'.tr('Ci sono _NUM_ documenti collegate a questo elemento', [
|
||||
<div class="alert alert-warning">
|
||||
<p>'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [
|
||||
'_NUM_' => count($fatture),
|
||||
]).'.</p>
|
||||
'_I_' => (count($fatture)>1) ? tr('i') : tr('o')
|
||||
]).':</p>
|
||||
<ul>';
|
||||
|
||||
foreach ($fatture as $fattura) {
|
||||
|
@ -327,6 +327,12 @@ if (!empty($fatture)) {
|
|||
|
||||
echo '
|
||||
</ul>
|
||||
<p>'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'</p>
|
||||
<p>'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale.').'</p>
|
||||
</div>';
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina') ?>
|
||||
</a>
|
|
@ -122,20 +122,19 @@ if ($module['name'] == 'Ordini cliente') {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
||||
{( "name": "filelist_and_upload", "id_module": "<?php echo $id_module ?>", "id_record": "<?php echo $id_record ?>" )}
|
||||
|
||||
<?php
|
||||
|
||||
//fatture o ddt collegati a questo ordine
|
||||
$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 `idordine` = '.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`.`id` IN (SELECT `idddt` FROM `dt_righe_ddt` WHERE `idordine` = '.prepare($id_record).') ORDER BY `data`');
|
||||
if (!empty($elementi)) {
|
||||
echo '
|
||||
<div class="alert alert-danger">
|
||||
<p>'.tr('Ci sono _NUM_ documenti collegate a questo elemento', [
|
||||
<div class="alert alert-warning">
|
||||
<p>'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [
|
||||
'_NUM_' => count($elementi),
|
||||
]).'.</p>
|
||||
'_I_' => (count($elementi)>1) ? tr('i') : tr('o')
|
||||
]).':</p>
|
||||
<ul>';
|
||||
|
||||
foreach ($elementi as $elemento) {
|
||||
|
@ -159,6 +158,12 @@ if (!empty($elementi)) {
|
|||
|
||||
echo '
|
||||
</ul>
|
||||
<p>'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'</p>
|
||||
<p>'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale.').'</p>
|
||||
</div>';
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
||||
|
|
|
@ -161,19 +161,18 @@ include $docroot.'/modules/preventivi/row-list.php';
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
//fatture collegate a questo preventivo
|
||||
$fatture = $dbo->fetchArray('SELECT `co_documenti`.*, `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).') ORDER BY `data`');
|
||||
if (!empty($fatture)) {
|
||||
echo '
|
||||
<div class="alert alert-danger">
|
||||
<p>'.tr('Ci sono _NUM_ documenti collegate a questo elemento', [
|
||||
<div class="alert alert-warning">
|
||||
<p>'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [
|
||||
'_NUM_' => count($fatture),
|
||||
]).'.</p>
|
||||
'_I_' => (count($fatture)>1) ? tr('i') : tr('o')
|
||||
]).':</p>
|
||||
<ul>';
|
||||
|
||||
foreach ($fatture as $fattura) {
|
||||
|
@ -192,6 +191,13 @@ if (!empty($fatture)) {
|
|||
|
||||
echo '
|
||||
</ul>
|
||||
<p>'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'</p>
|
||||
<p>'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale.').'</p>
|
||||
</div>';
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
|
@ -10,10 +10,10 @@ echo '
|
|||
<input type="hidden" name="backto" value="record-edit">
|
||||
<input type="hidden" name="op" value="update">
|
||||
|
||||
<div class="pull-right">
|
||||
<!--div class="pull-right">
|
||||
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> '.tr('Salva modifiche').'</button>
|
||||
</div>
|
||||
<div class="clearfix"></div><br>
|
||||
<div class="clearfix"></div><br-->
|
||||
|
||||
<!-- DATI -->
|
||||
<div class="panel panel-primary">
|
||||
|
@ -68,6 +68,7 @@ if ($options != '' && $options != 'menu' && $options != 'custom') {
|
|||
<div class="row">
|
||||
<div class="col-md-12 text-right">
|
||||
<button type="button" class="btn btn-warning pull-righ" onclick="testQuery()"><i class="fa fa-file-text-o "></i> '.tr('Testa la query').'</button>
|
||||
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> '.tr('Salva modifiche').'</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -94,12 +95,12 @@ if (!empty($options) && $options != 'custom') {
|
|||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<!--div class="row">
|
||||
<div class="col-xs-12 text-right">
|
||||
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> '.tr('Salva').'</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<hr-->
|
||||
|
||||
<div class="data">';
|
||||
|
||||
|
@ -231,7 +232,7 @@ if (!empty($options) && $options != 'custom') {
|
|||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 text-right">
|
||||
<button type="button" class="btn btn-info" id="add"><i class="fa fa-plus"></i> '.tr('Aggiungi').'</button>
|
||||
<button type="button" class="btn btn-info" id="add"><i class="fa fa-plus"></i> '.tr('Aggiungi nuovo campo').'</button>
|
||||
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> '.tr('Salva').'</button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -340,12 +341,12 @@ if (!empty($options) && $options != 'custom') {
|
|||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<!--div class="row">
|
||||
<div class="col-xs-12 text-right">
|
||||
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> '.tr('Salva').'</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<hr-->
|
||||
|
||||
<div class="data">';
|
||||
|
||||
|
@ -416,7 +417,7 @@ if (!empty($options) && $options != 'custom') {
|
|||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 text-right">
|
||||
<button type="button" class="btn btn-info" id="add"><i class="fa fa-plus"></i> '.tr('Aggiungi').'</button>
|
||||
<button type="button" class="btn btn-info" id="add"><i class="fa fa-plus"></i> '.tr('Aggiungi nuovo filtro').'</button>
|
||||
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> '.tr('Salva').'</button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -471,6 +472,7 @@ function testQuery(){
|
|||
$("#main_loading").fadeOut();
|
||||
|
||||
swal("'.tr('Errore').'", "'.tr('Errore durante il test della query!').'", "error");
|
||||
session_set ("errors,0", 0, 1);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
"moment": "^2.18.1",
|
||||
"numeral": "^2.0.6",
|
||||
"parsleyjs": "^2.7.2",
|
||||
"select2": "^4.0.3",
|
||||
"select2": "4.0.3",
|
||||
"select2-bootstrap-theme": "^0.1.0-beta.10",
|
||||
"signature_pad": "^2.1.1",
|
||||
"smartwizard": "^4.2.2",
|
||||
|
|
|
@ -21,8 +21,16 @@ class Widgets
|
|||
if (empty(self::$widgets[$id_module][$location])) {
|
||||
$dbo = Database::getConnection();
|
||||
|
||||
//se sono mobile mostro su controller_right anche quello che è su controller_top
|
||||
if ((isMobile())and($location=='controller_right')){
|
||||
$extra_where = " OR location = 'controller_top' ";
|
||||
}else{
|
||||
$extra_where = "";
|
||||
}
|
||||
|
||||
|
||||
// ottengo da db gli id dei widget associati al modulo
|
||||
$results = $dbo->fetchArray('SELECT id, location, class FROM zz_widgets WHERE id_module='.prepare($id_module).' AND location='.prepare($location).' AND enabled=1 ORDER BY `order` ASC');
|
||||
$results = $dbo->fetchArray('SELECT id, location, class FROM zz_widgets WHERE id_module='.prepare($id_module).' AND ( location='.prepare($location).' '.$extra_where.' ) AND enabled=1 ORDER BY `order` ASC');
|
||||
|
||||
$result = '';
|
||||
|
||||
|
|
|
@ -972,6 +972,11 @@ ALTER TABLE `in_interventi` ADD `deleted` TINYINT NOT NULL DEFAULT '0' AFTER `da
|
|||
-- Fix nella conversione dei listini precedenti
|
||||
UPDATE `mg_listini` SET `prc_guadagno` = - `prc_guadagno`;
|
||||
|
||||
|
||||
-- Aggiunta pagamento di default "Bonifico bancario"
|
||||
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `idconto_vendite`, `idconto_acquisti`) VALUES (NULL, 'Bonifico bancario', '0', '10', '100', CURRENT_TIMESTAMP, NULL, NULL);
|
||||
|
||||
-- Per Dashboard e Articoli i widgets vanno in alto
|
||||
UPDATE `zz_widgets` SET `location` = 'controller_top' WHERE `zz_widgets`.`id_module` = (SELECT id FROM zz_modules WHERE name = 'Dashboard' ) OR `zz_widgets`.`id_module` = (SELECT id FROM zz_modules WHERE name = 'Articoli' );
|
||||
|
||||
-- Disabilito widgets 'Ordini di servizio da impostare' e 'Rate contrattuali'
|
||||
UPDATE `zz_widgets` SET `enabled` = '0' WHERE `zz_widgets`.`name` = 'Ordini di servizio da impostare' OR `zz_widgets`.`name` = 'Rate contrattuali';
|
Loading…
Reference in New Issue