This commit is contained in:
MatteoPistorello 2023-10-27 15:10:17 +02:00
commit 2f7ddad013
25 changed files with 383 additions and 145 deletions

View File

@ -80,7 +80,7 @@ echo '
<div class="box-body">
<div class="row">
<div class="col-md-6">
{[ "type": "checkbox", "label": "'.tr('Rinnovabile').'", "name": "rinnovabile", "value": "'.setting("Crea contratto rinnovabile di default").'", "id": "rinnovabile_add", "help": "'.tr('Il contratto è rinnovabile?').'" ]}
{[ "type": "checkbox", "label": "'.tr('Rinnovabile').'", "name": "rinnovabile", "value": "'.setting('Crea contratto rinnovabile di default').'", "id": "rinnovabile_add", "help": "'.tr('Il contratto è rinnovabile?').'" ]}
</div>
<div class="col-md-6">
@ -88,7 +88,7 @@ echo '
</div>
<div class="col-md-6">
{[ "type": "number", "label": "'.tr('Preavviso per rinnovo').'", "name": "giorni_preavviso_rinnovo", "id": "giorni_preavviso_rinnovo_add", "decimals": "2", "value": "'.setting("Giorni di preavviso di default").'", "icon-after": "giorni", "disabled": 1 ]}
{[ "type": "number", "label": "'.tr('Preavviso per rinnovo').'", "name": "giorni_preavviso_rinnovo", "id": "giorni_preavviso_rinnovo_add", "decimals": "2", "value": "'.setting('Giorni di preavviso di default').'", "icon-after": "giorni", "disabled": 1 ]}
</div>
<div class="col-md-6">

View File

@ -58,7 +58,7 @@ foreach ($moduli as $module_id => $note) {
<table class="table table-hover">
<tr>
<th width="15%" >'.(($modulo->title == 'Anagrafiche') ? '' : tr('Riferimento')).'</th>
<th width="20%" >'.($modulo->title == 'Anagrafiche' ? 'Tecnico' :(($modulo->title == 'Fatture di acquisto' || $modulo->title == 'Ordini fornitore' || $modulo->title == 'Ddt in entrata') ? tr('Fornitore') : tr('Cliente'))).'</th>
<th width="20%" >'.($modulo->title == 'Anagrafiche' ? 'Tecnico' : (($modulo->title == 'Fatture di acquisto' || $modulo->title == 'Ordini fornitore' || $modulo->title == 'Ddt in entrata') ? tr('Fornitore') : tr('Cliente'))).'</th>
<th>'.tr('Contenuto').'</th>
<th width="20%" class="text-center">'.tr('Data di notifica').'</th>
<th class="text-center">#</th>

View File

@ -576,7 +576,7 @@ switch (filter('op')) {
$articolo->qta = 1;
$articolo->costo_unitario = $originale->prezzo_acquisto;
// L'aliquota dell'articolo ha precedenza solo se ha aliquota a 0, altrimenti anagrafica -> articolo -> impostazione
// L'aliquota dell'articolo ha precedenza solo se ha aliquota a 0, altrimenti anagrafica -> articolo -> impostazione
if ($dir == 'entrata') {
if ($originale->idiva_vendita) {
$aliquota_articolo = floatval(Aliquota::find($originale->idiva_vendita)->percentuale);

View File

@ -852,7 +852,7 @@ switch ($op) {
$imponibile = 0;
$sconto = 0;
$id_segment = post('id_segment');
$data = date('Y-m-d');
$anagrafica = $fattura->anagrafica;
@ -965,7 +965,7 @@ switch ($op) {
$articolo->idconto = $id_conto;
if ($dir == 'entrata') {
// L'aliquota dell'articolo ha precedenza solo se ha aliquota a 0, altrimenti anagrafica -> articolo -> impostazione
// L'aliquota dell'articolo ha precedenza solo se ha aliquota a 0, altrimenti anagrafica -> articolo -> impostazione
if ($originale->idiva_vendita) {
$aliquota_articolo = floatval(Aliquota::find($originale->idiva_vendita)->percentuale);
}

View File

@ -175,17 +175,16 @@ foreach ($righe as $riga) {
}
if (!empty($riga->note)) {
if(strlen($riga->note) > 50) {
$prima_parte = substr($riga->note, 0, ((strpos($riga->note, ' ', 50) < 60) && (strpos($riga->note, ' ', 50) != 0) ? strpos($riga->note, ' ', 50): 50));
$seconda_parte = substr($riga->note, ((strpos($riga->note, ' ', 50) < 60) && (strpos($riga->note, ' ', 50) != 0) ? strpos($riga->note, ' ', 50): 50));
if (strlen($riga->note) > 50) {
$prima_parte = substr($riga->note, 0, ((strpos($riga->note, ' ', 50) < 60) && (strpos($riga->note, ' ', 50) != 0) ? strpos($riga->note, ' ', 50) : 50));
$seconda_parte = substr($riga->note, ((strpos($riga->note, ' ', 50) < 60) && (strpos($riga->note, ' ', 50) != 0) ? strpos($riga->note, ' ', 50) : 50));
$stringa_modificata = '<small class="label label-default">'.$prima_parte.'</small>
<span id="read-more-target-'.$riga->id.'" class="read-more-target"><small class="label label-default">' . $seconda_parte . '</small></span><a href="#read-more-target-'.$riga->id.'" class="read-more-trigger">...</a>';
<span id="read-more-target-'.$riga->id.'" class="read-more-target"><small class="label label-default">'.$seconda_parte.'</small></span><a href="#read-more-target-'.$riga->id.'" class="read-more-trigger">...</a>';
} else {
$stringa_modificata = '<small class="label label-default">'.$riga->note.'</small>';
}
echo'
echo '
<div class="block-item-text">
<input type="checkbox" hidden class="read-more-state" id="read-more">
<div class="read-more-wrap">
@ -193,7 +192,6 @@ foreach ($righe as $riga) {
</div>
</div>
';
}
echo '
</td>';
@ -216,29 +214,29 @@ foreach ($righe as $riga) {
{[ "type": "number", "name": "qta_'.$riga->id.'", "value": "'.$riga->qta.'", "min-value": "0", "onchange": "aggiornaInline($(this).closest(\'tr\').data(\'id\'))", "disabled": "'.($riga->isSconto() ? 1 : 0).'", "disabled": "'.($block_edit || $riga->isSconto()).'" ]}
</td>';
// Costi unitari
if ($dir == 'entrata') {
if ($riga->isSconto()) {
echo '
// Costi unitari
if ($dir == 'entrata') {
if ($riga->isSconto()) {
echo '
<td></td>';
} else {
} else {
echo '
<td>
{[ "type": "number", "name": "costo_'.$riga->id.'", "value": "'.$riga->costo_unitario.'", "onchange": "aggiornaInline($(this).closest(\'tr\').data(\'id\'))", "icon-after": "'.currency().'", "disabled": "'.$block_edit.'" ]}
</td>';
}
}
}
// Prezzi unitari
if ($riga->isSconto()) {
echo '
// Prezzi unitari
if ($riga->isSconto()) {
echo '
<td></td>';
} else {
echo '
} else {
echo '
<td>
{[ "type": "number", "name": "prezzo_'.$riga->id.'", "value": "'.$riga->prezzo_unitario_corrente.'", "onchange": "aggiornaInline($(this).closest(\'tr\').data(\'id\'))", "icon-before": "'.(abs($riga->provvigione_unitaria) > 0 ? '<span class=\'tip text-info\' title=\''.provvigioneInfo($riga).'\'><small><i class=\'fa fa-handshake-o\'></i></small></span>' : '').'", "icon-after": "'.currency().'", "disabled": "'.$block_edit.'" ]}
</td>';
}
}
// Sconto unitario
$tipo_sconto = '';

View File

@ -0,0 +1,33 @@
<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
include_once __DIR__.'/../../core.php';
switch (post('op')) {
case 'update':
$dbo->update('zz_tasks', [
'name' => (count($dbo->fetchArray('SELECT `name` FROM `zz_tasks` WHERE `name` = '.prepare(post('name')))) > 0) ? $dbo->fetchOne('SELECT `name` FROM `zz_tasks` WHERE `id` ='.$id_record)['name'] : post('name'),
'class' => post('class'),
'expression' => post('expression'),
], ['id' => $id_record]);
flash()->info(tr('Informazioni salvate correttamente.'));
break;
}

View File

@ -0,0 +1,165 @@
<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
include_once __DIR__.'/../../core.php';
echo '
<form action="" method="post" id="edit-form">
<input type="hidden" name="op" value="update">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="id_record" value="'.$id_record.'">
<div class="row">
<div class="col-md-3">
{[ "type": "text", "label": "'.tr('Nome').'", "name": "name", "required": 1, "value": "$name$" ]}
</div>
<div class="col-md-3">
{[ "type": "text", "label": "'.tr('Classe').'", "name": "class", "required": 1, "value": "$class$" ]}
</div>
<div class="col-md-3">
{[ "type": "date", "label": "'.tr('Data prossima esecuzione').'", "name": "next_execution_at", "value": "$next_execution_at$", "readonly": 1 ]}
</div>
<div class="col-md-3">
{[ "type": "date", "label": "'.tr('Data precedente esecuzione').'", "name": "last_executed_at", "value": "$last_executed_at$", "readonly": 1 ]}
</div>
</div>
<div class="row">
<div class="col-md-offset-3 col-md-6">
{[ "type": "text", "label": "'.tr('Espressione').'", "name": "expression", "required": 1, "class": "text-center", "value": "$expression$", "extra": "", "readonly": 1 ]}
</div>';
$expression = $record['expression'];
preg_match('/(.*?) (.*?) (.*?) (.*?) (.*?)/U', $record['expression'], $exp);
$minuto = $exp[1];
$ora = $exp[2];
$giorno = $exp[3];
$mese = $exp[4];
$giorno_sett = $exp[5];
echo '
</div>
<div class="row">
<div class="col-md-offset-3 col-md-3">
{[ "type": "text", "label": "'.tr('Minuto').'", "name": "minuto", "required": 1, "class": "text-center", "value": "'.$minuto.'", "readonly": 1]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('&nbsp').'", "name": "minuti", "value": "'.$minuto.'", "values":"list=\"*\": \"'.tr('Una volta al minuto (*)').'\",\"*/5\": \"'.tr('Una volta ogni cinque minuti (*/5)').'\",\"0,30\": \"'.tr('Una volta ogni trenta minuti (0,30)').'\",\"5\": \"'.tr('Al minuto 5 dell\'ora (5)').'\",\" \": \"'.tr('Personalizzato').'\""]}
</div>
</div>
<div class="row">
<div class="col-md-offset-3 col-md-3">
{[ "type": "text", "label": "'.tr('Ora').'", "name": "ora", "required": 1, "class": "text-center", "value": "'.$ora.'", "extra": "", "readonly": 1 ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('&nbsp').'", "name": "ore", "value": "'.$ora.'", "values":"list=\"*\": \"'.tr('Ogni ora (*)').'\",\"*/2\": \"'.tr('Ogni due ore (*/2)').'\",\"*/4\": \"'.tr('Ogni 15 minuti (*/4)').'\",\"0,12\": \"'.tr('Ogni 12 ore (0,12)').'\",\"5\": \"'.tr('5:00 a.m. (5)').'\",\"17\": \"'.tr('5:00 p.m. (17)').'\",\" \": \"'.tr('Personalizzato').'\""]}
</div>
</div>
<div class="row">
<div class="col-md-offset-3 col-md-3">
{[ "type": "text", "label": "'.tr('Giorno').'", "name": "giorno", "required": 1, "class": "text-center", "value": "'.$giorno.'", "extra": "", "readonly": 1]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('&nbsp').'", "name": "giorni", "value": "'.$giorno.'", "values":"list=\"*\": \"'.tr('Ogni giorno (*)').'\",\"*/2\": \"'.tr('Ogni due giorni (*/2)').'\",\"1,15\": \"'.tr('Il primo e il 15 del mese (1,15)').'\",\"8\": \"'.tr('Il giorno 8 del mese (8)').'\",\" \": \"'.tr('Personalizzato').'\""]}
</div>
</div>
<div class="row">
<div class="col-md-offset-3 col-md-3">
{[ "type": "text", "label": "'.tr('Mese').'", "name": "mese", "required": 1, "class": "text-center", "value": "'.$mese.'", "extra": "", "readonly": 1]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('&nbsp').'", "name": "mesi", "value": "'.$mese.'", "values":"list=\"*\": \"'.tr('Ogni mese (*)').'\",\"*/2\": \"'.tr('Ogni due mesi (*/2)').'\",\"1,7\": \"'.tr('Ogni 6 mesi (1,7)').'\",\"8\": \"'.tr('Agosto (8)').'\",\" \": \"'.tr('Personalizzato').'\""]}
</div>
</div>
<div class="row">
<div class="col-md-offset-3 col-md-3">
{[ "type": "text", "label": "'.tr('Giorno della settimana').'", "name": "giorno_sett", "required": 1, "class": "text-center", "value": "'.$giorno_sett.'", "extra": "", "readonly": 1]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('&nbsp').'", "name": "giorni_sett", "value": "'.$giorno_sett.'", "values":"list=\"*\": \"'.tr('Ogni giorno (*)').'\",\"*/1-5\": \"'.tr('Ogni giorno della settimana (1-5)').'\",\"0,6\": \"'.tr('Ogni giorno del weekend (0,6)').'\",\"1,3,5\": \"'.tr('Ogni Lunedì, Mercoledì e Venerdì (1,3,5)').'\",\" \": \"'.tr('Personalizzato').'\""]}
</div>
</div>
</form>';
?>
<script>
// Alla modifica di un campo select aggiorna il corrispondente campo input, se viene selezionato "Personalizzato" abilita il campo input, altrimenti lo disabilita. Aggiorna infine l'espressione.
function updateField() {
var fieldData = [
{ select: 'minuti', input: 'minuto' },
{ select: 'ore', input: 'ora' },
{ select: 'giorni', input: 'giorno' },
{ select: 'mesi', input: 'mese' },
{ select: 'giorni_sett', input: 'giorno_sett' }
];
fieldData.forEach(function(field) {
var $select = $('select[name="' + field.select + '"]');
var $input = $('input[name="' + field.input + '"]');
var value = $select.val();
if (value == ' ') {
$input.removeAttr('readonly');
} else if (value == '') {
$select.selectSet(' ');
} else {
$input.attr('readonly', 'readonly');
$input.val(value);
}
});
}
$('select[name="minuti"], select[name="ore"], select[name="giorni"], select[name="mesi"], select[name="giorni_sett"]').on('change', function() {
updateField();
updateExpression();
});
//Aggiorna l'expression alla modifica dei campi input
function updateExpression() {
var $minuto = $('input[name="minuto"]').val();
var $ora = $('input[name="ora"]').val();
var $giorno = $('input[name="giorno"]').val();
var $mese = $('input[name="mese"]').val();
var $giorno_sett = $('input[name="giorno_sett"]').val();
var $expression = $minuto + ' ' + $ora + ' ' + $giorno + ' ' + $mese + ' ' + $giorno_sett;
$('input[name="expression"]').val($expression);
}
$('input[name="minuto"], input[name="ora"], input[name="giorno"], input[name="mese"], input[name="giorno_sett"]').on('change', updateExpression);
// Se nell'input è inserito un valore personalizzato, seleziona Personalizzato nel select
var fieldData = [
{ select: 'minuti', input: 'minuto' },
{ select: 'ore', input: 'ora' },
{ select: 'giorni', input: 'giorno' },
{ select: 'mesi', input: 'mese' },
{ select: 'giorni_sett', input: 'giorno_sett' }
];
fieldData.forEach(function(field) {
var $select = $('select[name="' + field.select + '"]');
var $input = $('input[name="' + field.input + '"]');
var value = $select.val();
if (value == '') {
$select.selectSet(' ');
}
});
</script>

View File

@ -0,0 +1,24 @@
<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
include_once __DIR__.'/../../core.php';
if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM zz_tasks WHERE id='.prepare($id_record));
}

View File

@ -237,8 +237,8 @@ foreach ($righe as $riga) {
}
}
// Prezzi unitari
if ($riga->isSconto()) {
// Prezzi unitari
if ($riga->isSconto()) {
echo '
<td></td>';
} else {

View File

@ -267,7 +267,7 @@ switch (post('op')) {
$movimento->save();
$response = [
'result' => true
'result' => true,
];
} catch (Error $e) {
$response = [

View File

@ -162,4 +162,4 @@ function Verifica(id_movimento) {
});
}
init();
</script>';
</script>';

View File

@ -76,7 +76,7 @@ switch (post('op')) {
$list = [];
$anagrafiche = [];
$id_anagrafica = 0;
$id_anagrafica = 0;
foreach ($id_records as $id) {
$scadenze = $database->FetchArray('SELECT * FROM co_scadenziario LEFT JOIN (SELECT id as id_nota, ref_documento FROM co_documenti)as nota ON co_scadenziario.iddocumento = nota.ref_documento WHERE co_scadenziario.id = '.$id.' AND pagato < da_pagare AND nota.id_nota IS NULL ORDER BY idanagrafica, iddocumento');
@ -140,7 +140,6 @@ switch (post('op')) {
}
}
}
if (!empty($emails)) {
OperationLog::setInfo('id_email', $mail->id);

View File

@ -30,5 +30,4 @@ switch (post('op')) {
flash()->info(tr('Informazioni salvate correttamente.'));
break;
}

View File

@ -41,22 +41,22 @@ switch ($operazione) {
'idzona' => !empty(post('idzona')) ? post('idzona') : 0,
'enable_newsletter' => empty($opt_out_newsletter),
]);
$id_record = $dbo->lastInsertedID();
$id_record = $dbo->lastInsertedID();
$id_referenti = (array)post('id_referenti');
foreach ($id_referenti as $id_referente) {
$dbo->update('an_referenti', [
'idsede' => $id_record
$id_referenti = (array) post('id_referenti');
foreach ($id_referenti as $id_referente) {
$dbo->update('an_referenti', [
'idsede' => $id_record,
], [
'id' => $id_referente
'id' => $id_referente,
]);
}
}
if (isAjaxRequest() && !empty($id_record)) {
echo json_encode(['id' => $id_record, 'text' => post('nomesede').' - '.post('citta')]);
}
if (isAjaxRequest() && !empty($id_record)) {
echo json_encode(['id' => $id_record, 'text' => post('nomesede').' - '.post('citta')]);
}
flash()->info(tr('Aggiunta una nuova sede!'));
flash()->info(tr('Aggiunta una nuova sede!'));
} else {
flash()->warning(tr('Errore durante aggiunta della sede'));
}
@ -90,12 +90,12 @@ switch ($operazione) {
'enable_newsletter' => empty($opt_out_newsletter),
], ['id' => $id_record]);
$id_referenti = (array)post('id_referenti');
$id_referenti = (array) post('id_referenti');
foreach ($id_referenti as $id_referente) {
$dbo->update('an_referenti', [
'idsede' => $id_record
'idsede' => $id_record,
], [
'id' => $id_referente
'id' => $id_referente,
]);
}

View File

@ -128,8 +128,8 @@ echo '
{[ "type": "text", "label": "'.tr('Longitudine').'", "name": "lng", "id": "lng_", "value": "$lng$", "extra": "data-geo=\'lng\'", "class": "text-right", "readonly": true ]}
</div>';
if (!empty($record['indirizzo']) || (empty($record['citta']))) {
echo '
if (!empty($record['indirizzo']) || (empty($record['citta']))) {
echo '
<div class="col-md-2">
<label>&nbsp;</label><br>
<a class="btn btn-info" title="'.tr('Mostra la sede su Mappa').'" onclick="cercaOpenStreetMap();">&nbsp;<i class="fa fa-map-marker">&nbsp;</i></a>
@ -137,7 +137,7 @@ echo '
<a title="'.tr('Calcola percorso da sede legale a questa sede').'" class="btn btn-primary" onclick="calcolaPercorso();"><i class="fa fa-car"></i></a>
</div>
<div class="clearfix"></div><br>';
}
}
echo '
</div>';

View File

@ -22,8 +22,8 @@ namespace API\App\v1;
use API\App\AppResource;
use Auth;
use Carbon\Carbon;
use Modules\Checklists\Check;
use Models\User;
use Modules\Checklists\Check;
class Checklists extends AppResource
{
@ -45,7 +45,7 @@ class Checklists extends AppResource
// Elenco sessioni degli interventi da rimuovere
$da_interventi = [];
if (!empty($interventi)) {
if($user->is_admin){
if ($user->is_admin) {
$query = '
SELECT zz_checks.id
FROM zz_checks
@ -63,7 +63,7 @@ class Checklists extends AppResource
':period_end' => $end,
':period_start' => $start,
]);
}else{
} else {
$query = '
SELECT zz_checks.id
FROM zz_checks
@ -82,7 +82,7 @@ class Checklists extends AppResource
$records = database()->fetchArray($query, [
':period_end' => $end,
':period_start' => $start,
':id_tecnico' => $user->id
':id_tecnico' => $user->id,
]);
}
$da_interventi = array_column($records, 'id');
@ -113,7 +113,7 @@ class Checklists extends AppResource
$user = Auth::user();
$id_interventi = array_keys($interventi);
if($user->is_admin){
if ($user->is_admin) {
$query = 'SELECT zz_checks.id
FROM zz_checks
INNER JOIN in_interventi ON zz_checks.id_record = in_interventi.id
@ -129,7 +129,7 @@ class Checklists extends AppResource
}
$records = database()->fetchArray($query);
}else{
} else {
$query = 'SELECT zz_checks.id
FROM zz_checks
INNER JOIN in_interventi ON zz_checks.id_record = in_interventi.id
@ -149,7 +149,7 @@ class Checklists extends AppResource
$records = database()->fetchArray($query, [
':period_start' => $start,
':period_end' => $end,
':id_tecnico' => $user->id
':id_tecnico' => $user->id,
]);
}
@ -159,7 +159,7 @@ class Checklists extends AppResource
public function retrieveRecord($id)
{
// Gestione della visualizzazione dei dettagli del record
$query = "SELECT zz_checks.id,
$query = 'SELECT zz_checks.id,
zz_checks.id_record AS id_intervento,
zz_checks.checked_at,
zz_checks.content,
@ -168,7 +168,7 @@ class Checklists extends AppResource
zz_checks.checked_by,
zz_checks.order AS ordine
FROM zz_checks
WHERE zz_checks.id = ".prepare($id);
WHERE zz_checks.id = '.prepare($id);
$record = database()->fetchOne($query);
@ -179,11 +179,11 @@ class Checklists extends AppResource
{
$check = Check::find($data['id']);
$check->checked_at = (!empty($data['checked_at']) ? $data['checked_at'] : NULL);
$check->checked_at = (!empty($data['checked_at']) ? $data['checked_at'] : null);
$check->content = $data['content'];
$check->note = $data['note'];
$user = User::where('idanagrafica', $data['checked_by'])->first();
if(!empty($user)){
if (!empty($user)) {
$check->checked_by = $user->id;
}
@ -196,4 +196,4 @@ class Checklists extends AppResource
{
return new Interventi();
}
}
}

View File

@ -20,9 +20,9 @@
namespace API\App\v1;
use API\App\AppResource;
use Auth;
use Illuminate\Database\Eloquent\Builder;
use Modules\Impianti\Impianto;
use Auth;
class Impianti extends AppResource
{
@ -39,9 +39,9 @@ class Impianti extends AppResource
});
//Limite impianti visualizzabili dal tecnico
$limite_impianti = setting("Limita la visualizzazione degli impianti a quelli gestiti dal tecnico");
$limite_impianti = setting('Limita la visualizzazione degli impianti a quelli gestiti dal tecnico');
if($limite_impianti == 1 && !Auth::user()->is_admin){
if ($limite_impianti == 1 && !Auth::user()->is_admin) {
$id_tecnico = Auth::user()->id_anagrafica;
// Elenco di interventi di interesse
@ -89,6 +89,7 @@ class Impianti extends AppResource
return $record;
}
protected function getRisorsaInterventi()
{
return new Interventi();

View File

@ -58,7 +58,7 @@ class Interventi extends AppResource
// Informazioni sull'utente
$id_tecnico = Auth::user()->id_anagrafica;
if(Auth::user()->is_admin){
if (Auth::user()->is_admin) {
$query = 'SELECT in_interventi.id FROM in_interventi WHERE
deleted_at IS NOT NULL
OR (
@ -80,8 +80,7 @@ class Interventi extends AppResource
':remove_period_end' => $remove_end,
':remove_period_start' => $remove_start,
]);
}else{
} else {
$query = 'SELECT in_interventi.id FROM in_interventi WHERE
deleted_at IS NOT NULL
OR (
@ -98,7 +97,7 @@ class Interventi extends AppResource
AND in_interventi_tecnici.idtecnico = :id_tecnico_q2
)
)';
$records = database()->fetchArray($query, [
':period_end' => $end,
':period_start' => $start,
@ -108,7 +107,7 @@ class Interventi extends AppResource
':id_tecnico_q2' => $id_tecnico,
]);
}
$interventi = array_column($records, 'id');
$mancanti = $this->getMissingIDs('in_interventi', 'id', $last_sync_at);
@ -126,7 +125,7 @@ class Interventi extends AppResource
$id_tecnico = Auth::user()->id_anagrafica;
if (setting('Visualizza solo promemoria assegnati') == 1) {
if(Auth::user()->is_admin){
if (Auth::user()->is_admin) {
$query = '
SELECT
in_interventi.id,
@ -143,8 +142,8 @@ class Interventi extends AppResource
AND in_interventi.idstatointervento IN (SELECT idstatointervento FROM in_statiintervento WHERE is_completato = 0)
)
)';
}else{
$query = '
} else {
$query = '
SELECT
in_interventi.id,
in_interventi.updated_at
@ -167,11 +166,10 @@ class Interventi extends AppResource
)
)
)';
}
} else {
if(Auth::user()->is_admin){
$query = '
}
} else {
if (Auth::user()->is_admin) {
$query = '
SELECT
in_interventi.id,
in_interventi.updated_at
@ -191,8 +189,8 @@ class Interventi extends AppResource
AND in_interventi.idstatointervento IN (SELECT idstatointervento FROM in_statiintervento WHERE is_completato = 0)
)
)';
}else{
$query = '
} else {
$query = '
SELECT
in_interventi.id,
in_interventi.updated_at
@ -213,9 +211,8 @@ class Interventi extends AppResource
AND in_interventi.idstatointervento IN (SELECT idstatointervento FROM in_statiintervento WHERE is_completato = 0)
)
)';
}
}
}
}
// Filtro per data
// Gestione di tecnici assegnati o impianti modificati
@ -231,7 +228,7 @@ class Interventi extends AppResource
}
if (setting('Visualizza solo promemoria assegnati') == 1) {
if(Auth::user()->is_admin){
if (Auth::user()->is_admin) {
$records = database()->fetchArray($query, [
':period_start' => $start,
':period_end' => $end,
@ -245,12 +242,12 @@ class Interventi extends AppResource
]);
}
} else {
if(Auth::user()->is_admin){
if (Auth::user()->is_admin) {
$records = database()->fetchArray($query, [
':period_start' => $start,
':period_end' => $end,
]);
} else {
} else {
$records = database()->fetchArray($query, [
':period_start' => $start,
':period_end' => $end,
@ -353,7 +350,7 @@ class Interventi extends AppResource
// Aggiornamento degli impianti collegati
$database->query('DELETE FROM my_impianti_interventi WHERE idintervento = '.prepare($record->id));
foreach ($data['impianti'] as $id_impianto) {
if(!empty($id_impianto)){
if (!empty($id_impianto)) {
$database->insert('my_impianti_interventi', [
'idimpianto' => $id_impianto,
'idintervento' => $record->id,
@ -370,7 +367,7 @@ class Interventi extends AppResource
'id_tecnico' => $tecnici_assegnati,
]);
if(!empty($data['idrichiesta'])){
if (!empty($data['idrichiesta'])) {
database()->query('UPDATE in_richieste SET idintervento = '.prepare($record->id).', updated_at=NOW() WHERE id = '.prepare($data['idrichiesta']));
}
}

View File

@ -35,19 +35,19 @@ class Login extends Resource implements CreateInterface
if (auth()->attempt($request['username'], $request['password'])) {
$user = $this->getUser();
$token = auth()->getToken();
if(setting("Permetti l'accesso agli amministratori")){
$utente = $database->fetchOne("SELECT
if (setting("Permetti l'accesso agli amministratori")) {
$utente = $database->fetchOne('SELECT
`an_anagrafiche`.`idanagrafica` AS id_anagrafica,
`an_anagrafiche`.`ragione_sociale`,
zz_groups.nome AS gruppo
FROM `zz_users`
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `zz_users`.`idanagrafica`
INNER JOIN zz_groups ON zz_users.idgruppo=zz_groups.id
WHERE `an_anagrafiche`.`deleted_at` IS NULL AND `zz_users`.`id` = :id", [
WHERE `an_anagrafiche`.`deleted_at` IS NULL AND `zz_users`.`id` = :id', [
':id' => $user['id'],
]);
}else{
} else {
$utente = $database->fetchOne("SELECT
`an_anagrafiche`.`idanagrafica` AS id_anagrafica,
`an_anagrafiche`.`ragione_sociale`,

View File

@ -289,7 +289,7 @@ class Manager
// Operazioni della risorsa
$response = $object->{$method}($request);
try{
try {
$database->commitTransaction();
} catch (PDOException $e) {
}

View File

@ -225,19 +225,17 @@ class Query
$search_filters[] = $search_query.' '.$sign.' '.prepare($value);
}
} elseif ($equal) {
$value = trim(str_replace(['='], '', $value));
list($giorno, $mese, $anno) = explode('/', $value);
$data = "'".$anno.'-'.$mese.'-'.$giorno."'";
$value = trim(str_replace(['='], '', $value));
list($giorno, $mese, $anno) = explode('/', $value);
$data = "'".$anno.'-'.$mese.'-'.$giorno."'";
if ($anno != '' && $giorno != '' && $mese != '') {
if ($data != "'1970-01-01'") {
if ($data != "'1970-01-01'") {
$search_filters[] = $search_query.' = '.$data.'';
}
} else {
}
} else {
$search_filters[] = ($search_query.' = '.prepare($value).' OR '.$search_query.' LIKE '.prepare('% '.$value).' OR '.$search_query.' LIKE '.prepare($value.' %').' OR '.$search_query.' LIKE '.prepare('% '.$value.' %'));
}
} elseif ($notequal) {
$value = trim(str_replace(['!='], '', $value));
$search_filters[] = ($search_query.' != '.prepare($value).' AND '.$search_query.' NOT LIKE '.prepare('% '.$value).' AND '.$search_query.' NOT LIKE '.prepare($value.' %').' AND '.$search_query.' NOT LIKE '.prepare('% '.$value.' %'));

View File

@ -73,10 +73,10 @@ echo "
$rs2 = $dbo->fetchArray('SELECT * FROM co_scadenziario WHERE iddocumento='.prepare($id_record).' ORDER BY `scadenza` ASC');
if (!empty($rs2)) {
for ($i = 0; $i < sizeof($rs2); ++$i) {
echo "
echo '
<tr>
<td>
<small>".Translator::dateToLocale($rs2[$i]['scadenza'])."</small>
<small>'.Translator::dateToLocale($rs2[$i]['scadenza'])."</small>
</td>
<td style='width:25%;' class='text-right'>
".(($rs2[$i]['pagato'] == $rs2[$i]['da_pagare']) ? '<small>PAGATO</small>' : '')."

View File

@ -73,11 +73,11 @@ echo '
$aliquote = [];
foreach ($iva_vendite_esigibile as $record) {
$aliquote[$record['cod_iva']]['aliquota'] = $record['aliquota'];
$aliquote[$record['cod_iva']]['cod_iva'] = $record['cod_iva'];
$aliquote[$record['cod_iva']]['descrizione'] = $record['descrizione'];
$aliquote[$record['cod_iva']]['subtotale'] += sum($record['subtotale'], null, 2);
$aliquote[$record['cod_iva']]['iva'] += sum($record['iva'], null, 2);
$aliquote[$record['descrizione']]['aliquota'] = $record['aliquota'];
$aliquote[$record['descrizione']]['cod_iva'] = $record['cod_iva'];
$aliquote[$record['descrizione']]['descrizione'] = $record['descrizione'];
$aliquote[$record['descrizione']]['subtotale'] += sum($record['subtotale'], null, 2);
$aliquote[$record['descrizione']]['iva'] += sum($record['iva'], null, 2);
}
foreach ($aliquote as $aliquota => $record) {
@ -106,11 +106,11 @@ echo '
$aliquote = [];
foreach ($iva_vendite_nonesigibile as $record) {
$aliquote[$record['cod_iva']]['aliquota'] = $record['aliquota'];
$aliquote[$record['cod_iva']]['cod_iva'] = $record['cod_iva'];
$aliquote[$record['cod_iva']]['descrizione'] = $record['descrizione'];
$aliquote[$record['cod_iva']]['subtotale'] += sum($record['subtotale'], null, 2);
$aliquote[$record['cod_iva']]['iva'] += sum($record['iva'], null, 2);
$aliquote[$record['descrizione']]['aliquota'] = $record['aliquota'];
$aliquote[$record['descrizione']]['cod_iva'] = $record['cod_iva'];
$aliquote[$record['descrizione']]['descrizione'] = $record['descrizione'];
$aliquote[$record['descrizione']]['subtotale'] += sum($record['subtotale'], null, 2);
$aliquote[$record['descrizione']]['iva'] += sum($record['iva'], null, 2);
}
foreach ($aliquote as $aliquota => $record) {
@ -139,11 +139,11 @@ echo '
$aliquote = [];
foreach ($iva_vendite as $record) {
$aliquote[$record['cod_iva']]['aliquota'] = $record['aliquota'];
$aliquote[$record['cod_iva']]['cod_iva'] = $record['cod_iva'];
$aliquote[$record['cod_iva']]['descrizione'] = $record['descrizione'];
$aliquote[$record['cod_iva']]['subtotale'] += sum($record['subtotale'], null, 2);
$aliquote[$record['cod_iva']]['iva'] += sum($record['iva'], null, 2);
$aliquote[$record['descrizione']]['aliquota'] = $record['aliquota'];
$aliquote[$record['descrizione']]['cod_iva'] = $record['cod_iva'];
$aliquote[$record['descrizione']]['descrizione'] = $record['descrizione'];
$aliquote[$record['descrizione']]['subtotale'] += sum($record['subtotale'], null, 2);
$aliquote[$record['descrizione']]['iva'] += sum($record['iva'], null, 2);
}
foreach ($aliquote as $aliquota => $record) {
@ -187,11 +187,11 @@ echo '
$aliquote = [];
foreach ($iva_acquisti_detraibile as $record) {
$aliquote[$record['cod_iva']]['aliquota'] = $record['aliquota'];
$aliquote[$record['cod_iva']]['cod_iva'] = $record['cod_iva'];
$aliquote[$record['cod_iva']]['descrizione'] = $record['descrizione'];
$aliquote[$record['cod_iva']]['subtotale'] += sum($record['subtotale'], null, 2);
$aliquote[$record['cod_iva']]['iva'] += sum($record['iva'], null, 2);
$aliquote[$record['descrizione']]['aliquota'] = $record['aliquota'];
$aliquote[$record['descrizione']]['cod_iva'] = $record['cod_iva'];
$aliquote[$record['descrizione']]['descrizione'] = $record['descrizione'];
$aliquote[$record['descrizione']]['subtotale'] += sum($record['subtotale'], null, 2);
$aliquote[$record['descrizione']]['iva'] += sum($record['iva'], null, 2);
}
foreach ($aliquote as $aliquota => $record) {
@ -221,11 +221,11 @@ echo '
$aliquote = [];
foreach ($iva_acquisti_nondetraibile as $record) {
$aliquote[$record['cod_iva']]['aliquota'] = $record['aliquota'];
$aliquote[$record['cod_iva']]['cod_iva'] = $record['cod_iva'];
$aliquote[$record['cod_iva']]['descrizione'] = $record['descrizione'];
$aliquote[$record['cod_iva']]['subtotale'] += sum($record['subtotale'], null, 2);
$aliquote[$record['cod_iva']]['iva'] += sum($record['iva'], null, 2);
$aliquote[$record['descrizione']]['aliquota'] = $record['aliquota'];
$aliquote[$record['descrizione']]['cod_iva'] = $record['cod_iva'];
$aliquote[$record['descrizione']]['descrizione'] = $record['descrizione'];
$aliquote[$record['descrizione']]['subtotale'] += sum($record['subtotale'], null, 2);
$aliquote[$record['descrizione']]['iva'] += sum($record['iva'], null, 2);
}
foreach ($aliquote as $aliquota => $record) {
@ -255,11 +255,11 @@ echo '
$aliquote = [];
foreach ($iva_acquisti as $record) {
$aliquote[$record['cod_iva']]['aliquota'] = $record['aliquota'];
$aliquote[$record['cod_iva']]['cod_iva'] = $record['cod_iva'];
$aliquote[$record['cod_iva']]['descrizione'] = $record['descrizione'];
$aliquote[$record['cod_iva']]['subtotale'] += sum($record['subtotale'], null, 2);
$aliquote[$record['cod_iva']]['iva'] += sum($record['iva'], null, 2);
$aliquote[$record['descrizione']]['aliquota'] = $record['aliquota'];
$aliquote[$record['descrizione']]['cod_iva'] = $record['cod_iva'];
$aliquote[$record['descrizione']]['descrizione'] = $record['descrizione'];
$aliquote[$record['descrizione']]['subtotale'] += sum($record['subtotale'], null, 2);
$aliquote[$record['descrizione']]['iva'] += sum($record['iva'], null, 2);
}
foreach ($aliquote as $aliquota => $record) {

View File

@ -266,7 +266,8 @@ else {
WHERE
co_tipidocumento.dir = "entrata" AND co_righe_documenti.is_descrizione = 0 AND co_documenti.split_payment = 0 AND idstatodocumento NOT IN(SELECT id FROM co_statidocumento WHERE descrizione = "Bozza" OR descrizione = "Annullata") AND co_documenti.data_competenza >= '.prepare($date_start).' AND co_documenti.data_competenza <= '.prepare($date_end).'
GROUP BY
co_iva.id, co_documenti.id');
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
$iva_vendite = $dbo->fetchArray('
SELECT
@ -283,7 +284,8 @@ else {
WHERE
co_tipidocumento.dir = "entrata" AND co_righe_documenti.is_descrizione = 0 AND idstatodocumento NOT IN(SELECT id FROM co_statidocumento WHERE descrizione = "Bozza" OR descrizione = "Annullata") AND co_documenti.data_competenza >= '.prepare($date_start).' AND co_documenti.data_competenza <= '.prepare($date_end).'
GROUP BY
co_iva.id, co_documenti.id');
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
$iva_vendite_anno_precedente = $dbo->fetchArray('
SELECT
@ -300,7 +302,8 @@ else {
WHERE
co_tipidocumento.dir = "entrata" AND co_righe_documenti.is_descrizione = 0 AND idstatodocumento NOT IN(SELECT id FROM co_statidocumento WHERE descrizione = "Bozza" OR descrizione = "Annullata") AND co_documenti.data_competenza >= '.prepare($anno_precedente_start).' AND co_documenti.data_competenza <= '.prepare($anno_precedente_end).'
GROUP BY
co_iva.id, co_documenti.id');
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
$iva_vendite_periodo_precedente = $dbo->fetchArray('
SELECT
@ -317,7 +320,8 @@ else {
WHERE
co_tipidocumento.dir = "entrata" AND co_righe_documenti.is_descrizione = 0 AND idstatodocumento NOT IN(SELECT id FROM co_statidocumento WHERE descrizione = "Bozza" OR descrizione = "Annullata") AND co_documenti.data_competenza >= '.prepare($periodo_precedente_start).' AND co_documenti.data_competenza <= '.prepare($periodo_precedente_end).'
GROUP BY
co_iva.id, co_documenti.id');
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
}
$iva_vendite_nonesigibile = $dbo->fetchArray('
@ -335,7 +339,8 @@ $iva_vendite_nonesigibile = $dbo->fetchArray('
WHERE
co_tipidocumento.dir = "entrata" AND co_righe_documenti.is_descrizione = 0 AND co_documenti.split_payment = 1 AND idstatodocumento NOT IN(SELECT id FROM co_statidocumento WHERE descrizione = "Bozza" OR descrizione = "Annullata") AND co_documenti.data_competenza >= '.prepare($date_start).' AND co_documenti.data_competenza <= '.prepare($date_end).'
GROUP BY
co_iva.id, co_documenti.id');
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
$iva_acquisti_detraibile = $dbo->fetchArray('
SELECT
@ -352,7 +357,8 @@ $iva_acquisti_detraibile = $dbo->fetchArray('
WHERE
co_tipidocumento.dir = "uscita" AND co_righe_documenti.is_descrizione = 0 AND co_documenti.split_payment = 0 AND idstatodocumento NOT IN(SELECT id FROM co_statidocumento WHERE descrizione = "Bozza" OR descrizione = "Annullata") AND co_documenti.data_competenza >= '.prepare($date_start).' AND co_documenti.data_competenza <= '.prepare($date_end).' AND co_iva.indetraibile != 100
GROUP BY
co_iva.id, co_documenti.id');
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
$iva_acquisti_nondetraibile = $dbo->fetchArray('
SELECT
@ -369,7 +375,8 @@ $iva_acquisti_nondetraibile = $dbo->fetchArray('
WHERE
co_tipidocumento.dir = "uscita" AND co_righe_documenti.is_descrizione = 0 AND idstatodocumento NOT IN(SELECT id FROM co_statidocumento WHERE descrizione = "Bozza" OR descrizione = "Annullata") AND co_documenti.data_competenza >= '.prepare($date_start).' AND co_documenti.data_competenza <= '.prepare($date_end).' AND co_iva.indetraibile != 0
GROUP BY
co_iva.id, co_documenti.id');
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
$iva_acquisti = $dbo->fetchArray('
SELECT
@ -386,7 +393,8 @@ $iva_acquisti = $dbo->fetchArray('
WHERE
co_tipidocumento.dir = "uscita" AND co_righe_documenti.is_descrizione = 0 AND idstatodocumento NOT IN(SELECT id FROM co_statidocumento WHERE descrizione = "Bozza" OR descrizione = "Annullata") AND co_documenti.data_competenza >= '.prepare($date_start).' AND co_documenti.data_competenza <= '.prepare($date_end).'
GROUP BY
co_iva.id, co_documenti.id');
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
$iva_acquisti_anno_precedente = $dbo->fetchArray('
SELECT
@ -403,7 +411,8 @@ $iva_acquisti_anno_precedente = $dbo->fetchArray('
WHERE
co_tipidocumento.dir = "uscita" AND co_righe_documenti.is_descrizione = 0 AND idstatodocumento NOT IN(SELECT id FROM co_statidocumento WHERE descrizione = "Bozza" OR descrizione = "Annullata") AND co_documenti.data_competenza >= '.prepare($anno_precedente_start).' AND co_documenti.data_competenza <= '.prepare($anno_precedente_end).'
GROUP BY
co_iva.id, co_documenti.id');
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
$iva_acquisti_periodo_precedente = $dbo->fetchArray('
SELECT
@ -420,4 +429,5 @@ $iva_acquisti_periodo_precedente = $dbo->fetchArray('
WHERE
co_tipidocumento.dir = "uscita" AND co_righe_documenti.is_descrizione = 0 AND idstatodocumento NOT IN(SELECT id FROM co_statidocumento WHERE descrizione = "Bozza" OR descrizione = "Annullata") AND co_documenti.data_competenza >= '.prepare($periodo_precedente_start).' AND co_documenti.data_competenza <= '.prepare($periodo_precedente_end).'
GROUP BY
co_iva.id, co_documenti.id');
co_iva.id, co_documenti.id
ORDER BY aliquota desc');

View File

@ -54,4 +54,18 @@ INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`, `ord
-- Checklist plugin Impianti
ALTER TABLE `zz_checks` ADD `id_module_from` INT NOT NULL AFTER `id`, ADD `id_record_from` INT NOT NULL AFTER `id_module_from`;
UPDATE `zz_modules` SET `use_checklists` = '1' WHERE `zz_modules`.`name` = 'Categorie impianti';
UPDATE `zz_modules` SET `use_checklists` = '1' WHERE `zz_modules`.`name` = 'Categorie impianti';
-- Aggiunto modulo Gestione task
INSERT INTO `zz_modules` (`name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES ('Gestione task', 'Gestione task','gestione_task', 'SELECT |select| FROM `zz_tasks` WHERE 1=1 HAVING 2=2', '', 'fa fa-calendar', '2.4.51', '2.4.51', '5', (SELECT `id` FROM `zz_modules` t WHERE t.`name` = 'Strumenti'), '1', '1');
-- Aggiunta viste Gestione task
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `default`, `visible`) VALUES
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Gestione task'), 'id', 'id', 1, 0, 0, 1, 0),
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Gestione task'), 'Nome', 'name', 1, 1, 0, 1, 1),
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Gestione task'), 'Expression', 'expression', 2, 1, 0, 0, 1),
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Gestione task'), 'Prossima esecuzione', 'next_execution_at', 3, 1, 0, 0, 1),
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Gestione task'), 'Precedente esecuzione', 'last_executed_at', 4, 1, 0, 0, 1);
-- Fix che evita che venga allegato il riepilogo interventi con tutti gli interventi del tecnico
DELETE FROM `em_print_template` WHERE `em_print_template`.`id_print` IN (SELECT `id` FROM `zz_prints` WHERE `zz_prints`.`is_record` = 0);