Merge branch 'master' of https://github.com/devcode-it/openstamanager
This commit is contained in:
commit
4a1c2a8113
|
@ -34,9 +34,6 @@ register_shutdown_function('serverError');
|
||||||
|
|
||||||
include_once __DIR__.'/../core.php';
|
include_once __DIR__.'/../core.php';
|
||||||
|
|
||||||
// Disabilita la sessione per l'API
|
|
||||||
session_write_close();
|
|
||||||
|
|
||||||
// Permesso di accesso all'API da ogni dispositivo
|
// Permesso di accesso all'API da ogni dispositivo
|
||||||
header('Access-Control-Allow-Origin: *');
|
header('Access-Control-Allow-Origin: *');
|
||||||
header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS');
|
header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS');
|
||||||
|
@ -67,3 +64,5 @@ if (json_last_error() == JSON_ERROR_NONE) {
|
||||||
|
|
||||||
// Stampa dei risultati
|
// Stampa dei risultati
|
||||||
echo $response;
|
echo $response;
|
||||||
|
|
||||||
|
Auth::logout();
|
|
@ -81,6 +81,12 @@ foreach ($righe as $riga) {
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
'.$descrizione;
|
'.$descrizione;
|
||||||
|
|
||||||
|
if ($riga->isArticolo() && !empty($riga->articolo->barcode)) {
|
||||||
|
echo '
|
||||||
|
<br><small><i class="fa fa-barcode"></i> '.$riga->articolo->barcode.'</small>';
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($riga->note)) {
|
if (!empty($riga->note)) {
|
||||||
echo '
|
echo '
|
||||||
<br><small class="label label-default">'.nl2br($riga->note).'</small>';
|
<br><small class="label label-default">'.nl2br($riga->note).'</small>';
|
||||||
|
|
|
@ -52,8 +52,8 @@ $id_anagrafica = !empty(get('idanagrafica')) ? get('idanagrafica') : '';
|
||||||
{[ "type": "date", "label": "<?php echo tr('Data'); ?>", "name": "data", "required": 1, "value": "-now-" ]}
|
{[ "type": "date", "label": "<?php echo tr('Data'); ?>", "name": "data", "required": 1, "value": "-now-" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-4">
|
||||||
{[ "type": "select", "label": "<?php echo $label; ?>", "name": "idanagrafica", "id": "idanagrafica_add", "required": 1, "value": "<?php echo $id_anagrafica; ?>", "ajax-source": "clienti_fornitori", "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=<?php echo $tipo_anagrafica; ?>&readonly_tipo=1" ]}
|
{[ "type": "select", "label": "<?php echo $label; ?>", "name": "idanagrafica", "id": "idanagrafica_add", "required": 1, "value": "<?php echo $id_anagrafica; ?>", "ajax-source": "clienti_fornitori", "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=<?php echo $tipo_anagrafica; ?>" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- il campo idtipoddt può essere anche rimosso -->
|
<!-- il campo idtipoddt può essere anche rimosso -->
|
||||||
|
|
|
@ -119,6 +119,12 @@ foreach ($righe as $riga) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($riga->isArticolo() && !empty($riga->articolo->barcode)) {
|
||||||
|
echo '
|
||||||
|
<br><small><i class="fa fa-barcode"></i> '.$riga->articolo->barcode.'</small>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!empty($riga->note)) {
|
if (!empty($riga->note)) {
|
||||||
echo '
|
echo '
|
||||||
<br><small class="label label-default">'.nl2br($riga->note).'</small>';
|
<br><small class="label label-default">'.nl2br($riga->note).'</small>';
|
||||||
|
|
|
@ -163,6 +163,11 @@ foreach ($righe as $riga) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($riga->isArticolo() && !empty($riga->articolo->barcode)) {
|
||||||
|
echo '
|
||||||
|
<br><small><i class="fa fa-barcode"></i> '.$riga->articolo->barcode.'</small>';
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($riga->note)) {
|
if (!empty($riga->note)) {
|
||||||
echo '
|
echo '
|
||||||
<br><small class="label label-default">'.nl2br($riga->note).'</small>';
|
<br><small class="label label-default">'.nl2br($riga->note).'</small>';
|
||||||
|
|
|
@ -69,7 +69,7 @@ switch (filter('op')) {
|
||||||
// Inizializzazione del lettore CSV
|
// Inizializzazione del lettore CSV
|
||||||
$csv = new $import_manager($record->filepath);
|
$csv = new $import_manager($record->filepath);
|
||||||
foreach ($fields as $key => $value) {
|
foreach ($fields as $key => $value) {
|
||||||
$csv->setColumnAssociation($key, $value - 1);
|
$csv->setColumnAssociation($key, (int)$value - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generazione offset sulla base della pagina
|
// Generazione offset sulla base della pagina
|
||||||
|
|
|
@ -107,6 +107,11 @@ echo '
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($riga->isArticolo() && !empty($riga->articolo->barcode)) {
|
||||||
|
echo '
|
||||||
|
<br><small><i class="fa fa-barcode"></i> '.$riga->articolo->barcode.'</small>';
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($riga->note)) {
|
if (!empty($riga->note)) {
|
||||||
echo '
|
echo '
|
||||||
<br><small class="label label-default">'.nl2br($riga->note).'</small>';
|
<br><small class="label label-default">'.nl2br($riga->note).'</small>';
|
||||||
|
|
|
@ -135,6 +135,11 @@ foreach ($righe as $riga) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($riga->isArticolo() && !empty($riga->articolo->barcode)) {
|
||||||
|
echo '
|
||||||
|
<br><small><i class="fa fa-barcode"></i> '.$riga->articolo->barcode.'</small>';
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($riga->note)) {
|
if (!empty($riga->note)) {
|
||||||
echo '
|
echo '
|
||||||
<br><small class="label label-default">'.nl2br($riga->note).'</small>';
|
<br><small class="label label-default">'.nl2br($riga->note).'</small>';
|
||||||
|
|
|
@ -82,6 +82,14 @@ foreach ($righe as $riga) {
|
||||||
}
|
}
|
||||||
echo '
|
echo '
|
||||||
'.$descrizione;
|
'.$descrizione;
|
||||||
|
|
||||||
|
|
||||||
|
if ($riga->isArticolo() && !empty($riga->articolo->barcode)) {
|
||||||
|
echo '
|
||||||
|
<br><small><i class="fa fa-barcode"></i> '.$riga->articolo->barcode.'</small>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!empty($riga->note)) {
|
if (!empty($riga->note)) {
|
||||||
echo '
|
echo '
|
||||||
<br><small class="label label-default">'.nl2br($riga->note).'</small>';
|
<br><small class="label label-default">'.nl2br($riga->note).'</small>';
|
||||||
|
|
|
@ -30,7 +30,7 @@ switch (filter('op')) {
|
||||||
flash()->info(tr('Salvataggio completato.'));
|
flash()->info(tr('Salvataggio completato.'));
|
||||||
} else {
|
} else {
|
||||||
flash()->error(tr("E' già presente una provenienza _NAME_.", [
|
flash()->error(tr("E' già presente una provenienza _NAME_.", [
|
||||||
'_TYPE_' => $descrizione,
|
'_NAME_' => $descrizione,
|
||||||
]));
|
]));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -30,7 +30,7 @@ switch (filter('op')) {
|
||||||
flash()->info(tr('Salvataggio completato.'));
|
flash()->info(tr('Salvataggio completato.'));
|
||||||
} else {
|
} else {
|
||||||
flash()->error(tr("E' già presente il settore merceologico _NAME_.", [
|
flash()->error(tr("E' già presente il settore merceologico _NAME_.", [
|
||||||
'_TYPE_' => $descrizione,
|
'_NAME_' => $descrizione,
|
||||||
]));
|
]));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -21,18 +21,34 @@ include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
?><form action="" method="post" id="add-form">
|
?><form action="" method="post" id="add-form">
|
||||||
<input type="hidden" name="op" value="add">
|
<input type="hidden" name="op" value="add">
|
||||||
<input type="hidden" name="backto" value="record-edit">
|
<input type="hidden" name="backto" value="record-list">
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1 ]}
|
{[ "type": "text", "label": "<?php echo tr('Nome gruppo'); ?>", "name": "nome", "required": 1, "validation": "gruppo", "help": "<?php echo tr("Compilando questo campo verrà creato un nuovo gruppo di utenti."); ?>" ]}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- PULSANTI -->
|
<!-- PULSANTI -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12 text-right">
|
<div class="col-md-12 text-right">
|
||||||
<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi'); ?></button>
|
<button type="button" onclick="submitCheck()" class="btn btn-primary"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi'); ?></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function submitCheck() {
|
||||||
|
var nome = parseInt($("#nome").attr("valid"));
|
||||||
|
|
||||||
|
if(nome) {
|
||||||
|
$("#add-form").submit();
|
||||||
|
}else{
|
||||||
|
$("input[name=nome]").focus();
|
||||||
|
swal("<?php echo tr('Impossibile procedere'); ?>", "<?php echo tr('Nome gruppo già in uso'); ?>", "error");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -26,7 +26,7 @@ if (!empty(filter('idanagrafica'))) {
|
||||||
echo '
|
echo '
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
{[ "type": "text", "label": "'.tr('Username').'", "name": "username", "required": 1, "value": "'.$utente['username'].'", "validation": "username||'.($utente['id'] ?: 0).'" ]}
|
{[ "type": "text", "label": "'.tr('Username').'", "name": "username", "required": 1, "value": "'.$utente['username'].'", "validation": "username|'.$id_module.'|'.($utente['id'] ?: 0).'" ]}
|
||||||
</div>
|
</div>
|
||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ $utenti = $dbo->fetchArray('SELECT *, (SELECT ragione_sociale FROM an_anagrafich
|
||||||
echo '
|
echo '
|
||||||
<div class="panel panel-primary">
|
<div class="panel panel-primary">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h3 class="panel-title">'.tr('Utenti _GROUP_', [
|
<h3 class="panel-title">'.tr('Utenti del gruppo: _GROUP_', [
|
||||||
'_GROUP_' => $record['nome'],
|
'_GROUP_' => $record['nome'],
|
||||||
]).'</h3>
|
]).'</h3>
|
||||||
</div>
|
</div>
|
||||||
|
@ -32,7 +32,7 @@ echo '
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-3 pull-right">
|
<div class="col-md-3 pull-right">
|
||||||
{["type":"select", "label":"", "name":"id_module_start", "ajax-source":"moduli_gruppo", "select-options": '.json_encode(['idgruppo' => $record['id']]).', "placeholder":"'.tr('Modulo iniziale').'", "value":"'.$record['id_module_start'].'" ]}
|
{["type":"select", "label":"'.tr('Modulo iniziale').'", "name":"id_module_start", "ajax-source":"moduli_gruppo", "select-options": '.json_encode(['idgruppo' => $record['id']]).', "placeholder":"'.tr('Modulo iniziale').'", "value":"'.$record['id_module_start'].'" ]}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<br>';
|
<br>';
|
||||||
|
@ -167,10 +167,9 @@ echo '
|
||||||
echo '
|
echo '
|
||||||
<div class="panel panel-primary">
|
<div class="panel panel-primary">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h3 class="panel-title">'.tr('Permessi _GROUP_', [
|
<h3 class="panel-title">'.tr('Permessi del gruppo: _GROUP_', [
|
||||||
'_GROUP_' => $record['nome'],
|
'_GROUP_' => $record['nome'],
|
||||||
]).((empty($record['editable'])) ? '<a class=\'clickable btn-xs pull-right ask\' data-msg="'.tr('Verranno reimpostati i permessi di default per il gruppo \''.$record['nome'].'\' ').'." data-class="btn btn-lg btn-warning" data-button="'.tr('Reimposta permessi').'" data-op="restore_permission" >'.tr('Reimposta permessi').'</a>' : '').'</h3>
|
]).((empty($record['editable']) && ($record['nome'] != 'Amministratori')) ? '<a class=\'clickable btn-xs pull-right ask\' data-msg="'.tr('Verranno reimpostati i permessi di default per il gruppo \''.$record['nome'].'\' ').'." data-class="btn btn-lg btn-warning" data-button="'.tr('Reimposta permessi').'" data-op="restore_permission" >'.tr('Reimposta permessi').'</a>' : '').'</h3>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-body">';
|
<div class="panel-body">';
|
||||||
|
@ -209,17 +208,16 @@ echo '
|
||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
// Eliminazione gruppo (se non è tra quelli di default)
|
// Eliminazione gruppo (se non è tra quelli di default)
|
||||||
if ($record['editable'] == 1) {
|
|
||||||
echo '
|
echo '
|
||||||
<!-- PULSANTI -->
|
<!-- PULSANTI -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12 text-right">
|
<div class="col-md-12 text-right">
|
||||||
<a class="btn btn-danger ask" data-backto="record-list" data-msg="'.tr('Eliminando questo gruppo verranno eliminati anche i permessi e gli utenti collegati').'" data-op="deletegroup">
|
<a class="btn btn-danger ask '.(!$record['editable'] ? 'disabled' : '').'" '.(!$record['editable'] ? 'disabled' : '').' data-backto="record-list" data-msg="'.tr('Eliminando questo gruppo verranno eliminati anche i permessi e gli utenti collegati').'" data-op="deletegroup">
|
||||||
<i class="fa fa-trash"></i> '.tr('Elimina').'
|
<i class="fa fa-trash"></i> '.tr('Elimina').'
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>';
|
</div>';
|
||||||
}
|
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<script>
|
<script>
|
||||||
|
@ -227,16 +225,44 @@ $(document).ready(function() {
|
||||||
$("#save-buttons").hide();
|
$("#save-buttons").hide();
|
||||||
|
|
||||||
$("#email-button").remove();
|
$("#email-button").remove();
|
||||||
|
|
||||||
|
setTimeout(function() { colorize_select2(); }, 500);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function colorize_select2(){
|
||||||
|
$( ".select2-selection__rendered" ).each(function() {
|
||||||
|
if ($( this ).attr("title") == "Lettura e scrittura"){
|
||||||
|
$( this ).addClass( "text-green" );
|
||||||
|
}
|
||||||
|
else if ($( this ).attr("title") == "Sola lettura"){
|
||||||
|
$( this ).addClass( "text-orange" );
|
||||||
|
}
|
||||||
|
else if ($( this ).attr("title") == "Nessun permesso"){
|
||||||
|
$( this ).addClass( "text-red" );
|
||||||
|
}else{
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$("li.active.header button.btn-primary").attr("data-href", $("a.pull-right").attr("data-href") );
|
$("li.active.header button.btn-primary").attr("data-href", $("a.pull-right").attr("data-href") );
|
||||||
|
|
||||||
function update_permissions(id, value){
|
function update_permissions(id, value, color){
|
||||||
|
|
||||||
$.get(
|
$.get(
|
||||||
globals.rootdir + "/actions.php?id_module='.$id_module.'&id_record='.$id_record.'&op=update_permission&idmodulo=" + id + "&permesso=" + value,
|
globals.rootdir + "/actions.php?id_module='.$id_module.'&id_record='.$id_record.'&op=update_permission&idmodulo=" + id + "&permesso=" + value,
|
||||||
function(data){
|
function(data){
|
||||||
if(data == "ok") {
|
if(data == "ok") {
|
||||||
toastr["success"]("'.tr('Permessi aggiornati!').'");
|
toastr["success"]("'.tr('Permessi aggiornati!').'");
|
||||||
|
content_was_modified = false;
|
||||||
|
|
||||||
|
$("#select2-permesso_"+id+"-container").removeClass("text-red");
|
||||||
|
$("#select2-permesso_"+id+"-container").removeClass("text-orange");
|
||||||
|
$("#select2-permesso_"+id+"-container").removeClass("text-green");
|
||||||
|
$("#select2-permesso_"+id+"-container").addClass(color);
|
||||||
|
|
||||||
if( id==$("#id_module_start").val() && value=="-" ){
|
if( id==$("#id_module_start").val() && value=="-" ){
|
||||||
$("#id_module_start").selectReset();
|
$("#id_module_start").selectReset();
|
||||||
update_user($("#id_module_start").val());
|
update_user($("#id_module_start").val());
|
||||||
|
@ -257,7 +283,8 @@ function update_user(value){
|
||||||
globals.rootdir + "/actions.php?id_module='.$id_module.'&id_record='.$id_record.'&op=update&id_module_start=" + value,
|
globals.rootdir + "/actions.php?id_module='.$id_module.'&id_record='.$id_record.'&op=update&id_module_start=" + value,
|
||||||
function(data){
|
function(data){
|
||||||
if(data == "ok") {
|
if(data == "ok") {
|
||||||
toastr["success"]("'.tr('Prima pagina aggiornata!').'");
|
toastr["success"]("'.tr('Informazioni aggiornate!').'");
|
||||||
|
content_was_modified = false;
|
||||||
} else {
|
} else {
|
||||||
swal("'.tr('Errore').'", "'.tr("Errore durante l'aggiornamento delle informazioni!").'", "error");
|
swal("'.tr('Errore').'", "'.tr("Errore durante l'aggiornamento delle informazioni!").'", "error");
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,20 +24,37 @@ function menuSelection($element, $group_id, $depth, $permessi_disponibili)
|
||||||
$dbo = database();
|
$dbo = database();
|
||||||
++$depth;
|
++$depth;
|
||||||
|
|
||||||
$result = '
|
|
||||||
<tr>
|
|
||||||
<td>'.str_repeat(' ', $depth).$element['title'].'</td>
|
|
||||||
<td>
|
|
||||||
<select name="permesso_'.$element['id'].'" id="permesso_'.$element['id'].'" class="form-control superselect openstamanager-input select-input" onchange="update_permissions('.$element['id'].', $(this).find(\'option:selected\').val())">';
|
|
||||||
|
|
||||||
// Permessi impostati per il gruppo
|
// Permessi impostati per il gruppo
|
||||||
$permesso_salvato = $dbo->fetchOne('SELECT permessi FROM zz_permissions WHERE idgruppo = '.prepare($group_id).' AND idmodule = '.prepare($element['id']));
|
$permesso_salvato = $dbo->fetchOne('SELECT permessi FROM zz_permissions WHERE idgruppo = '.prepare($group_id).' AND idmodule = '.prepare($element['id']));
|
||||||
|
|
||||||
$permessi = $permesso_salvato ? $permesso_salvato['permessi'] : '-';
|
$permessi = $permesso_salvato ? $permesso_salvato['permessi'] : '-';
|
||||||
|
|
||||||
|
$result = '
|
||||||
|
<tr>
|
||||||
|
<td>'.str_repeat(' ', $depth).'<span>'.$element['title'].'</span></td>
|
||||||
|
<td>
|
||||||
|
<select name="permesso_'.$element['id'].'" id="permesso_'.$element['id'].'" class="form-control superselect openstamanager-input select-input" onchange="update_permissions('.$element['id'].', $(this).find(\'option:selected\').val(), $(this).find(\'option:selected\').data(\'color\'))">';
|
||||||
|
|
||||||
|
|
||||||
foreach ($permessi_disponibili as $id => $nome) {
|
foreach ($permessi_disponibili as $id => $nome) {
|
||||||
|
switch ($id) {
|
||||||
|
case 'rw':
|
||||||
|
$bgcolor = 'green';
|
||||||
|
break;
|
||||||
|
case 'r':
|
||||||
|
$bgcolor = 'orange';
|
||||||
|
break;
|
||||||
|
case '-':
|
||||||
|
$bgcolor = 'red';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
$attr = ($id == $permessi) ? ' selected="selected"' : '';
|
$attr = ($id == $permessi) ? ' selected="selected"' : '';
|
||||||
|
|
||||||
$result .= '
|
$result .= '
|
||||||
<option value="'.$id.'" '.$attr.'>'.$nome.'</option>';
|
<option data-color="text-'.$bgcolor.'" _bgcolor_="'.$bgcolor.'" value="'.$id.'" '.$attr.'>'.$nome.'</option>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$result .= '
|
$result .= '
|
||||||
|
|
|
@ -112,6 +112,9 @@ function submitCheck() {
|
||||||
|
|
||||||
if(username) {
|
if(username) {
|
||||||
$("#user_update").submit();
|
$("#user_update").submit();
|
||||||
|
}else{
|
||||||
|
$("input[name=username]").focus();
|
||||||
|
swal("'.tr('Impossibile procedere').'", "'.tr('Username già esistente o troppo corto').'", "error");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
use Models\Group;
|
||||||
use Models\User;
|
use Models\User;
|
||||||
|
|
||||||
$name = filter('name');
|
$name = filter('name');
|
||||||
|
@ -31,7 +32,7 @@ switch ($name) {
|
||||||
['id', '<>', $id_record],
|
['id', '<>', $id_record],
|
||||||
])->count() == 0;
|
])->count() == 0;
|
||||||
|
|
||||||
$message = $disponibile ? tr("L'username è disponbile") : tr("L'username è già in uso");
|
$message = $disponibile ? tr("L'username è disponbile") : tr("L'username aa ".$id_record." è già in uso");
|
||||||
$result = $disponibile;
|
$result = $disponibile;
|
||||||
|
|
||||||
// Lunghezza minima del nome utente (username)
|
// Lunghezza minima del nome utente (username)
|
||||||
|
@ -47,4 +48,22 @@ switch ($name) {
|
||||||
];
|
];
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
case 'gruppo':
|
||||||
|
$disponibile = Group::where([
|
||||||
|
['nome', $value],
|
||||||
|
//['id', '<>', $id_record],
|
||||||
|
])->count() == 0;
|
||||||
|
|
||||||
|
$message = $disponibile ? tr("Il nome del gruppo è disponbile") : tr("Il nome per questo gruppo è già in uso");
|
||||||
|
$result = $disponibile;
|
||||||
|
|
||||||
|
$response = [
|
||||||
|
'result' => $result,
|
||||||
|
'message' => $message,
|
||||||
|
];
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,7 +146,7 @@ echo '
|
||||||
<h4>
|
<h4>
|
||||||
'.$ragione_sociale.'
|
'.$ragione_sociale.'
|
||||||
|
|
||||||
'.(empty($anagrafica) ? '<span class="badge badge-success">'.tr('Nuova anagrafica').'</span>' : '<small>'.Modules::link('Anagrafiche', $anagrafica->id, '', null, '')).'</small><br>
|
'.(empty($anagrafica) ? '<span class="badge bg-orange">'.tr('Nuova anagrafica').'</span>' : '<small>'.Modules::link('Anagrafiche', $anagrafica->id, '', null, '').'</small>').'<br>
|
||||||
|
|
||||||
<small>
|
<small>
|
||||||
'.(!empty($codice_fiscale) ? (tr('Codice Fiscale').': '.$codice_fiscale.'<br>') : '').'
|
'.(!empty($codice_fiscale) ? (tr('Codice Fiscale').': '.$codice_fiscale.'<br>') : '').'
|
||||||
|
|
|
@ -213,13 +213,44 @@ class FatturaElettronica
|
||||||
|
|
||||||
if (!empty($info['partita_iva']) && !empty($info['codice_fiscale'])) {
|
if (!empty($info['partita_iva']) && !empty($info['codice_fiscale'])) {
|
||||||
$anagrafica->where('piva', $info['partita_iva'])
|
$anagrafica->where('piva', $info['partita_iva'])
|
||||||
->orWhere('codice_fiscale', $info['codice_fiscale']);
|
->orWhere('codice_fiscale', $info['codice_fiscale'])
|
||||||
|
->orWhere('piva', 'like', '__'.$info['partita_iva'])
|
||||||
|
->orwhere('codice_fiscale', 'like', '__'.$info['codice_fiscale']);
|
||||||
} elseif (!empty($info['codice_fiscale'])) {
|
} elseif (!empty($info['codice_fiscale'])) {
|
||||||
$anagrafica->where('codice_fiscale', $info['codice_fiscale']);
|
$anagrafica->where('codice_fiscale', $info['codice_fiscale'])
|
||||||
|
->orWhere('codice_fiscale', 'like', '__'.$info['codice_fiscale']);
|
||||||
} elseif (!empty($info['partita_iva'])) {
|
} elseif (!empty($info['partita_iva'])) {
|
||||||
$anagrafica->where('piva', $info['partita_iva']);
|
$anagrafica->where('piva', $info['partita_iva'])
|
||||||
|
->orWhere('piva', 'like', '__'.$info['partita_iva']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Se non trovo l'anagrafica tra i fornitori, provo a ricercarla anche tra i clienti
|
||||||
|
if (empty($anagrafica->first())){
|
||||||
|
|
||||||
|
$type = 'Cliente';
|
||||||
|
|
||||||
|
$tipologia = TipoAnagrafica::where('descrizione', $type)->first();
|
||||||
|
|
||||||
|
$anagrafica = Anagrafica::whereHas('tipi', function ($query) use ($tipologia) {
|
||||||
|
$query->where('an_tipianagrafiche.idtipoanagrafica', '=', $tipologia->id);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!empty($info['partita_iva']) && !empty($info['codice_fiscale'])) {
|
||||||
|
$anagrafica->where('piva', $info['partita_iva'])
|
||||||
|
->orWhere('codice_fiscale', $info['codice_fiscale'])
|
||||||
|
->orWhere('piva', 'like', '__'.$info['partita_iva'])
|
||||||
|
->orwhere('codice_fiscale', 'like', '__'.$info['codice_fiscale']);
|
||||||
|
} elseif (!empty($info['codice_fiscale'])) {
|
||||||
|
$anagrafica->where('codice_fiscale', $info['codice_fiscale'])
|
||||||
|
->orWhere('codice_fiscale', 'like', '__'.$info['codice_fiscale']);
|
||||||
|
} elseif (!empty($info['partita_iva'])) {
|
||||||
|
$anagrafica->where('piva', $info['partita_iva'])
|
||||||
|
->orWhere('piva', 'like', '__'.$info['partita_iva']);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return $anagrafica->first();
|
return $anagrafica->first();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -99,7 +99,9 @@ switch ($operazione) {
|
||||||
$inizio = $date_pianificazioni[0];
|
$inizio = $date_pianificazioni[0];
|
||||||
$fine = date('Y-m-d', strtotime($inizio.' '.$timeing));
|
$fine = date('Y-m-d', strtotime($inizio.' '.$timeing));
|
||||||
$fine = date('Y-m-d', strtotime($fine.' -1 days'));
|
$fine = date('Y-m-d', strtotime($fine.' -1 days'));
|
||||||
|
if( $cadenza_fatturazione=='Fine' ){
|
||||||
|
$fine = Carbon\Carbon::parse($fine)->endOfMonth()->format("Y-m-d");
|
||||||
|
}
|
||||||
for ($rata = 1; $rata <= $numero_fatture; ++$rata) {
|
for ($rata = 1; $rata <= $numero_fatture; ++$rata) {
|
||||||
if ($qta_evasa < $r->qta) {
|
if ($qta_evasa < $r->qta) {
|
||||||
$qta_riga = ($qta[$r->id] <= ($r->qta - $qta_evasa) ? $qta[$r->id] : ($r->qta - $qta_evasa));
|
$qta_riga = ($qta[$r->id] <= ($r->qta - $qta_evasa) ? $qta[$r->id] : ($r->qta - $qta_evasa));
|
||||||
|
@ -112,7 +114,9 @@ switch ($operazione) {
|
||||||
|
|
||||||
$fine = date('Y-m-d', strtotime($inizio.' '.$timeing));
|
$fine = date('Y-m-d', strtotime($inizio.' '.$timeing));
|
||||||
$fine = date('Y-m-d', strtotime($fine.' -1 days'));
|
$fine = date('Y-m-d', strtotime($fine.' -1 days'));
|
||||||
|
if( $cadenza_fatturazione=='Fine' ){
|
||||||
|
$fine = Carbon\Carbon::parse($fine)->endOfMonth()->format("Y-m-d");
|
||||||
|
}
|
||||||
$prezzo_unitario = setting('Utilizza prezzi di vendita comprensivi di IVA') ? (($r->subtotale + $r->iva) / $r->qta) : ($r->subtotale / $r->qta);
|
$prezzo_unitario = setting('Utilizza prezzi di vendita comprensivi di IVA') ? (($r->subtotale + $r->iva) / $r->qta) : ($r->subtotale / $r->qta);
|
||||||
|
|
||||||
if (!empty($r->idarticolo)) {
|
if (!empty($r->idarticolo)) {
|
||||||
|
|
|
@ -80,6 +80,12 @@ if (!$righe->isEmpty()) {
|
||||||
<br>'.tr('SN').': '.implode(', ', $serials);
|
<br>'.tr('SN').': '.implode(', ', $serials);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($riga->isArticolo() && !empty($riga->articolo->barcode)) {
|
||||||
|
echo '
|
||||||
|
<br><small><i class="fa fa-barcode"></i> '.$riga->articolo->barcode.'</small>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
</td>';
|
</td>';
|
||||||
|
|
|
@ -130,9 +130,7 @@ class HTMLWrapper implements WrapperInterface
|
||||||
var icon = container.find("i");
|
var icon = container.find("i");
|
||||||
|
|
||||||
var id_record = "'.$id_record.'";
|
var id_record = "'.$id_record.'";
|
||||||
if ($(".modal-content").is(":visible")) {
|
var id_module = "'.$id_module.'";
|
||||||
var id_record = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
icon.attr("class", "fa fa-spinner fa-spin");
|
icon.attr("class", "fa fa-spinner fa-spin");
|
||||||
|
|
||||||
|
@ -140,7 +138,7 @@ class HTMLWrapper implements WrapperInterface
|
||||||
url: globals.rootdir + "/actions.php",
|
url: globals.rootdir + "/actions.php",
|
||||||
type: "post",
|
type: "post",
|
||||||
data: {
|
data: {
|
||||||
id_module: "'.$id_module.'",
|
id_module: id_module,
|
||||||
id_record: id_record,
|
id_record: id_record,
|
||||||
name: "'.$name.'",
|
name: "'.$name.'",
|
||||||
value: value,
|
value: value,
|
||||||
|
|
|
@ -55,10 +55,17 @@ ORDER BY
|
||||||
TRIM(`ragione_sociale`)" WHERE `name` = 'Anagrafiche';
|
TRIM(`ragione_sociale`)" WHERE `name` = 'Anagrafiche';
|
||||||
|
|
||||||
-- Creazione modelli prima nota per liquidazione salari e stipendi
|
-- Creazione modelli prima nota per liquidazione salari e stipendi
|
||||||
|
SELECT @numero := MAX(CAST(numero AS UNSIGNED))+10 FROM co_pianodeiconti3 WHERE idpianodeiconti2 = '8';
|
||||||
INSERT INTO `co_pianodeiconti3` (`id`, `numero`, `descrizione`, `idpianodeiconti2`, `dir`, `percentuale_deducibile`) VALUES
|
INSERT INTO `co_pianodeiconti3` (`id`, `numero`, `descrizione`, `idpianodeiconti2`, `dir`, `percentuale_deducibile`) VALUES
|
||||||
(NULL, '000080', 'Personale c/Retribuzioni', '8', '', '100.00'),
|
(NULL, LPAD(@numero, 6, '0'), 'Personale c/Retribuzioni', '8', '', '100.00');
|
||||||
(NULL, '000090', 'INPS c/Competenza', '8', '', '100.00'),
|
|
||||||
(NULL, '000090', 'Erario c/Ritenute dipendenti', '5', '', '100.00');
|
SELECT @numero := MAX(CAST(numero AS UNSIGNED))+10 FROM co_pianodeiconti3 WHERE idpianodeiconti2 = '8';
|
||||||
|
INSERT INTO `co_pianodeiconti3` (`id`, `numero`, `descrizione`, `idpianodeiconti2`, `dir`, `percentuale_deducibile`) VALUES
|
||||||
|
(NULL, LPAD(@numero, 6, '0'), 'INPS c/Competenza', '8', '', '100.00');
|
||||||
|
|
||||||
|
SELECT @numero := MAX(CAST(numero AS UNSIGNED))+10 FROM co_pianodeiconti3 WHERE idpianodeiconti2 = '5';
|
||||||
|
INSERT INTO `co_pianodeiconti3` (`id`, `numero`, `descrizione`, `idpianodeiconti2`, `dir`, `percentuale_deducibile`) VALUES
|
||||||
|
(NULL, LPAD(@numero, 6, '0'), 'Erario c/Ritenute dipendenti', '5', '', '100.00');
|
||||||
|
|
||||||
SELECT @idmastrino := MAX(idmastrino)+1 FROM co_movimenti_modelli;
|
SELECT @idmastrino := MAX(idmastrino)+1 FROM co_movimenti_modelli;
|
||||||
INSERT INTO `co_movimenti_modelli` (`id`, `idmastrino`, `nome`, `descrizione`, `idconto`, `totale`) VALUES
|
INSERT INTO `co_movimenti_modelli` (`id`, `idmastrino`, `nome`, `descrizione`, `idconto`, `totale`) VALUES
|
||||||
|
@ -478,6 +485,8 @@ WHERE
|
||||||
1=1
|
1=1
|
||||||
AND
|
AND
|
||||||
`dir` = 'uscita' |segment(`co_documenti`.`id_segment`)||date_period(custom, '|period_start|' <= `co_documenti`.`data` AND '|period_end|' >= `co_documenti`.`data`, '|period_start|' <= `co_documenti`.`data_competenza` AND '|period_end|' >= `co_documenti`.`data_competenza` )|
|
`dir` = 'uscita' |segment(`co_documenti`.`id_segment`)||date_period(custom, '|period_start|' <= `co_documenti`.`data` AND '|period_end|' >= `co_documenti`.`data`, '|period_start|' <= `co_documenti`.`data_competenza` AND '|period_end|' >= `co_documenti`.`data_competenza` )|
|
||||||
|
GROUP BY
|
||||||
|
co_documenti.id
|
||||||
HAVING
|
HAVING
|
||||||
2=2
|
2=2
|
||||||
ORDER BY
|
ORDER BY
|
||||||
|
@ -676,4 +685,95 @@ DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Formato numero secondari
|
||||||
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Formato numero secondario ordine';
|
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Formato numero secondario ordine';
|
||||||
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Formato codice attività';
|
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Formato codice attività';
|
||||||
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Formato codice preventivi';
|
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Formato codice preventivi';
|
||||||
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Formato codice contratti';
|
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Formato codice contratti';
|
||||||
|
|
||||||
|
-- Aggiunta campi provvigione su righe promemoria
|
||||||
|
ALTER TABLE `co_righe_promemoria` ADD `provvigione` DECIMAL(15,6) NOT NULL AFTER `prezzo_unitario_ivato`, ADD `provvigione_unitaria` DECIMAL(15,6) NOT NULL AFTER `provvigione`, ADD `provvigione_percentuale` DECIMAL(15,6) NOT NULL AFTER `provvigione_unitaria`, ADD `tipo_provvigione` ENUM('UNT','PRC') NOT NULL DEFAULT 'UNT' AFTER `provvigione_percentuale`;
|
||||||
|
|
||||||
|
-- Ottimizzazione query vista Stampe
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'zz_modules.NAME' WHERE `zz_modules`.`name` = 'Stampe' AND `zz_views`.`name` = 'Modulo';
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'zz_prints.id' WHERE `zz_modules`.`name` = 'Stampe' AND `zz_views`.`name` = 'id';
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'zz_prints.title' WHERE `zz_modules`.`name` = 'Stampe' AND `zz_views`.`name` = 'Titolo';
|
||||||
|
UPDATE `zz_modules` SET `options` = "SELECT
|
||||||
|
|select|
|
||||||
|
FROM
|
||||||
|
`zz_prints`
|
||||||
|
LEFT JOIN zz_modules ON zz_modules.id = zz_prints.id_module
|
||||||
|
WHERE
|
||||||
|
1=1
|
||||||
|
AND
|
||||||
|
zz_prints.enabled=1
|
||||||
|
HAVING
|
||||||
|
2=2" WHERE `name` = 'Stampe';
|
||||||
|
|
||||||
|
|
||||||
|
-- Ottimizzazione query vista Articoli
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'IF( co_iva.percentuale IS NOT NULL, (mg_articoli.prezzo_vendita + mg_articoli.prezzo_vendita * co_iva.percentuale / 100), mg_articoli.prezzo_vendita + mg_articoli.prezzo_vendita*iva.perc/100)' WHERE `zz_modules`.`name` = 'Articoli' AND `zz_views`.`name` = 'Prezzo vendita ivato';
|
||||||
|
UPDATE `zz_modules` SET `options` = "SELECT
|
||||||
|
|select|
|
||||||
|
FROM
|
||||||
|
`mg_articoli`
|
||||||
|
LEFT JOIN an_anagrafiche ON mg_articoli.id_fornitore = an_anagrafiche.idanagrafica
|
||||||
|
LEFT JOIN co_iva ON mg_articoli.idiva_vendita = co_iva.id
|
||||||
|
LEFT JOIN (SELECT SUM(or_righe_ordini.qta - or_righe_ordini.qta_evasa) AS qta_impegnata, or_righe_ordini.idarticolo FROM or_righe_ordini INNER JOIN or_ordini ON or_righe_ordini.idordine = or_ordini.id INNER JOIN or_tipiordine ON or_ordini.idtipoordine = or_tipiordine.id INNER JOIN or_statiordine ON or_ordini.idstatoordine = or_statiordine.id WHERE or_tipiordine.dir = 'entrata' AND or_righe_ordini.confermato = 1 AND or_statiordine.impegnato = 1 GROUP BY idarticolo) a ON a.idarticolo = mg_articoli.id
|
||||||
|
LEFT JOIN (SELECT SUM(or_righe_ordini.qta - or_righe_ordini.qta_evasa) AS qta_ordinata, or_righe_ordini.idarticolo FROM or_righe_ordini INNER JOIN or_ordini ON or_righe_ordini.idordine = or_ordini.id INNER JOIN or_tipiordine ON or_ordini.idtipoordine = or_tipiordine.id INNER JOIN or_statiordine ON or_ordini.idstatoordine = or_statiordine.id WHERE or_tipiordine.dir = 'uscita' AND or_righe_ordini.confermato = 1 AND or_statiordine.impegnato = 1
|
||||||
|
GROUP BY idarticolo) ordini_fornitore ON ordini_fornitore.idarticolo = mg_articoli.id
|
||||||
|
LEFT JOIN mg_categorie ON mg_articoli.id_categoria = mg_categorie.id
|
||||||
|
LEFT JOIN mg_categorie AS sottocategorie ON mg_articoli.id_sottocategoria = sottocategorie.id
|
||||||
|
LEFT JOIN (SELECT co_iva.percentuale AS perc, co_iva.id, zz_settings.nome FROM co_iva INNER JOIN zz_settings ON co_iva.id=zz_settings.valore)AS iva ON iva.nome= 'Iva predefinita'
|
||||||
|
WHERE
|
||||||
|
1=1 AND(`mg_articoli`.`deleted_at`) IS NULL
|
||||||
|
HAVING
|
||||||
|
2=2
|
||||||
|
ORDER BY
|
||||||
|
`mg_articoli`.`descrizione`" WHERE `name` = 'Articoli';
|
||||||
|
|
||||||
|
|
||||||
|
-- Ottimizzazione query vista Utenti e permessi
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`nome`' WHERE `zz_modules`.`name` = 'Utenti e permessi' AND `zz_views`.`name` = 'Gruppo';
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`zz_groups`.`id`' WHERE `zz_modules`.`name` = 'Utenti e permessi' AND `zz_views`.`name` = 'id';
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`utenti`.`num`' WHERE `zz_modules`.`name` = 'Utenti e permessi' AND `zz_views`.`name` = 'N. utenti';
|
||||||
|
UPDATE `zz_modules` SET `options` = "SELECT
|
||||||
|
|select|
|
||||||
|
FROM
|
||||||
|
`zz_groups`
|
||||||
|
LEFT JOIN (SELECT `zz_users`.`id`, COUNT(`id`) AS num FROM `zz_users` GROUP BY `id`) AS utenti ON `zz_groups`.`id`=`utenti`.`id`
|
||||||
|
WHERE
|
||||||
|
1=1
|
||||||
|
HAVING
|
||||||
|
2=2
|
||||||
|
ORDER BY
|
||||||
|
`id`,
|
||||||
|
`nome` ASC" WHERE `name` = 'Utenti e permessi';
|
||||||
|
|
||||||
|
|
||||||
|
-- Ottimizzazione query vista Listini cliente
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`mg_listini`.`id`' WHERE `zz_modules`.`name` = 'Listini cliente' AND `zz_views`.`name` = 'id';
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`mg_listini`.`id`' WHERE `zz_modules`.`name` = 'Listini cliente' AND `zz_views`.`name` = 'id';
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`articoli`.`num`' WHERE `zz_modules`.`name` = 'Listini cliente' AND `zz_views`.`name` = 'Articoli';
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`anagrafiche`.`num`' WHERE `zz_modules`.`name` = 'Listini cliente' AND `zz_views`.`name` = 'Anagrafiche';
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`utente`.`username`' WHERE `zz_modules`.`name` = 'Listini cliente' AND `zz_views`.`name` = 'Ultima modifica';
|
||||||
|
UPDATE `zz_modules` SET `options` = "SELECT
|
||||||
|
|select|
|
||||||
|
FROM
|
||||||
|
`mg_listini`
|
||||||
|
LEFT JOIN (SELECT `mg_listini_articoli`.`id_listino`, COUNT(`id_listino`) AS num FROM `mg_listini_articoli` GROUP BY `id_listino`) AS articoli ON `mg_listini`.`id`=`articoli`.`id_listino`
|
||||||
|
LEFT JOIN (SELECT `an_anagrafiche`.`id_listino`, COUNT(`id_listino`) AS num FROM `an_anagrafiche` GROUP BY `id_listino`) AS anagrafiche ON `mg_listini`.`id`=`anagrafiche`.`id_listino`
|
||||||
|
LEFT JOIN (SELECT `zz_users`.`id`, `zz_users`.`username` FROM `zz_users` INNER JOIN (SELECT `id_utente`, `id_record` FROM `zz_operations` INNER JOIN `zz_modules` ON `zz_modules`.`NAME` = 'Listini cliente' ORDER BY `id_utente` DESC LIMIT 0, 1) AS `id`) AS `utente` ON `utente`.`id` = `mg_listini`.`id`
|
||||||
|
WHERE
|
||||||
|
1=1
|
||||||
|
HAVING
|
||||||
|
2=2" WHERE `name` = 'Listini cliente';
|
||||||
|
|
||||||
|
|
||||||
|
-- Allineamento query vista Piani di sconto/maggiorazione
|
||||||
|
UPDATE `zz_modules` SET `options` = "SELECT
|
||||||
|
|select|
|
||||||
|
FROM
|
||||||
|
`mg_piani_sconto`
|
||||||
|
WHERE
|
||||||
|
1=1
|
||||||
|
HAVING
|
||||||
|
2=2
|
||||||
|
ORDER BY
|
||||||
|
`nome`" WHERE `name` = 'Piani di sconto/maggiorazione';
|
||||||
|
|
Loading…
Reference in New Issue