Compare commits
5 Commits
ce8ac0f846
...
b4d2fec82b
Author | SHA1 | Date |
---|---|---|
Pek5892 | b4d2fec82b | |
Matteo | edda7c38e2 | |
Pek5892 | c1f86dace3 | |
Pek5892 | b975cbc24e | |
Pek5892 | 6172a7c89b |
4
core.php
4
core.php
|
@ -248,8 +248,8 @@ if (!API\Response::isAPIRequest()) {
|
|||
$plugin = Plugins::getCurrent();
|
||||
$structure = isset($plugin) ? $plugin : $module;
|
||||
|
||||
$id_module = $module ? $module['id'] : null;
|
||||
$id_plugin = $plugin ? $plugin['id'] : null;
|
||||
$id_module = $module ? $module->id : null;
|
||||
$id_plugin = $plugin ? $plugin->id : null;
|
||||
|
||||
$user = Auth::user();
|
||||
|
||||
|
|
|
@ -48,10 +48,10 @@ switch (post('op')) {
|
|||
case 'addtech':
|
||||
$idtecnico = post('idtecnico');
|
||||
$data_inizio = post('data_inizio');
|
||||
$data_fine = null;
|
||||
$data_fine = post('data_fine');
|
||||
|
||||
// Controllo sull'effettivo inserimento di una data di fine successiva a quella di inizio
|
||||
if (!empty(post('data_fine'))) {
|
||||
if (!empty($data_fine)) {
|
||||
if (new DateTime(post('data_fine')) >= new DateTime($data_inizio)) {
|
||||
$data_fine = post('data_fine');
|
||||
}
|
||||
|
@ -74,13 +74,14 @@ switch (post('op')) {
|
|||
$errors = 0;
|
||||
|
||||
foreach (post('data_inizio') as $idautomezzotecnico => $data) {
|
||||
$idtecnico = post('idtecnico')[$idautomezzotecnico];
|
||||
$data_inizio = post('data_inizio')[$idautomezzotecnico];
|
||||
$data_fine = null;
|
||||
$data_fine = post('data_fine')[$idautomezzotecnico];
|
||||
|
||||
// Controllo sull'effettivo inserimento di una data di fine successiva a quella di inizio
|
||||
if (!empty(post('data_fine')[$idautomezzotecnico])) {
|
||||
if (new DateTime(post('data_fine')[$idautomezzotecnico]) >= new DateTime($data_inizio)) {
|
||||
$data_fine = post('data_fine')[$idautomezzotecnico];
|
||||
if (!empty($data_fine)) {
|
||||
if (new DateTime($data_fine) < new DateTime($data_inizio)) {
|
||||
$data_fine = null;
|
||||
}
|
||||
}
|
||||
$data_fine ??= '0000-00-00';
|
||||
|
|
|
@ -24,7 +24,7 @@ if (!empty($rs_art)) {
|
|||
echo '
|
||||
<tr>
|
||||
<td>
|
||||
<input type="hidden" name="idautomezzotecnico[]" value="'.$r['id'].'">
|
||||
<input type="hidden" name="idtecnico['.$r['id'].']" value="'.$r['idtecnico'].'">
|
||||
'.$r['ragione_sociale'].'
|
||||
</td>';
|
||||
|
||||
|
@ -37,7 +37,7 @@ if (!empty($rs_art)) {
|
|||
// Data di fine
|
||||
echo '
|
||||
<td>
|
||||
{[ "type": "date", "name": "data_fine['.$r['id'].']", "required": 1, "value": "'.$r['data_fine'].'", "min-date": "'.$r['data_inizio'].'" ]}
|
||||
{[ "type": "date", "name": "data_fine['.$r['id'].']", "value": "'.$r['data_fine'].'", "min-date": "'.$r['data_inizio'].'" ]}
|
||||
</td>';
|
||||
|
||||
// Pulsanti per aggiornamento date tecnici
|
||||
|
|
|
@ -64,6 +64,7 @@ if ($main_check) {
|
|||
|
||||
$.post('<?php echo $rootdir; ?>/modules/checklists/ajax.php', {
|
||||
op: "edit_check",
|
||||
id_module: globals.id_module,
|
||||
id_record: "<?php echo $id_record; ?>",
|
||||
content: input('content_edit').get(),
|
||||
is_titolo: input('is_titolo').get(),
|
||||
|
|
|
@ -211,6 +211,8 @@ function delete_check(id){
|
|||
op: "delete_check",
|
||||
id: id,
|
||||
main_check: 1,
|
||||
id_module: globals.id_module,
|
||||
id_record: id,
|
||||
}, function(){
|
||||
location.reload();
|
||||
});
|
||||
|
|
|
@ -424,7 +424,7 @@ switch (filter('op')) {
|
|||
`co_contratti`.`data_bozza` AS data_contratto,
|
||||
DATE_FORMAT( `data_richiesta`, '%m%Y') AS mese,
|
||||
`data_richiesta` AS data_richiesta,
|
||||
`data_scadenza` AS data_scadenza,
|
||||
IF(`co_promemoria`.`data_scadenza` IS NULL, '', `co_promemoria`.`data_scadenza`) AS data_scadenza,
|
||||
`an_anagrafiche`.`ragione_sociale` AS ragione_sociale,
|
||||
'promemoria' AS ref,
|
||||
`in_tipiintervento_lang`.`name` AS tipo_intervento,
|
||||
|
@ -437,7 +437,7 @@ switch (filter('op')) {
|
|||
INNER JOIN `co_staticontratti` ON `co_contratti`.`idstato` = `co_staticontratti`.`id`
|
||||
INNER JOIN `an_anagrafiche` ON `co_contratti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `in_tipiintervento` ON `co_promemoria`.`idtipointervento` = `in_tipiintervento`.`id`
|
||||
LEFT JOIN `in_tipiintervento_lang` ON `in_tipiintervento_lang`.`id_record` = `in_tipiintervento`.`id` AND `in_tipiintervento_lang`.`id_lang` = ".prepare($lingua)."
|
||||
LEFT JOIN `in_tipiintervento_lang` ON `in_tipiintervento_lang`.`id_record` = `in_tipiintervento`.`id` AND `in_tipiintervento_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id)."
|
||||
WHERE
|
||||
`idintervento` IS NULL AND `co_staticontratti`.`is_pianificabile` = 1)
|
||||
UNION
|
||||
|
@ -450,7 +450,7 @@ switch (filter('op')) {
|
|||
'' AS data_contratto,
|
||||
DATE_FORMAT(IF(`in_interventi`.`data_scadenza` IS NULL, `in_interventi`.`data_richiesta`, `in_interventi`.`data_scadenza`), '%m%Y') AS mese,
|
||||
`in_interventi`.`data_richiesta` AS data_richiesta,
|
||||
`in_interventi`.`data_scadenza` AS data_scadenza,
|
||||
IF(`in_interventi`.`data_scadenza` IS NULL, '', `in_interventi`.`data_scadenza`) AS data_scadenza,
|
||||
`an_anagrafiche`.`ragione_sociale` AS ragione_sociale,
|
||||
'intervento' AS ref,
|
||||
`in_tipiintervento_lang`.`name` AS tipo_intervento,
|
||||
|
@ -460,8 +460,8 @@ switch (filter('op')) {
|
|||
FROM
|
||||
`in_interventi`
|
||||
INNER JOIN `in_tipiintervento` ON `in_interventi`.`idtipointervento` = `in_tipiintervento`.`id`
|
||||
LEFT JOIN `in_tipiintervento_lang` ON `in_tipiintervento_lang`.`id_record` = `in_tipiintervento`.`id` AND `in_tipiintervento_lang`.`id_lang` = ".prepare($lingua).'
|
||||
INNER JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica`=`an_anagrafiche`.`idanagrafica`';
|
||||
LEFT JOIN `in_tipiintervento_lang` ON (`in_tipiintervento_lang`.`id_record` = `in_tipiintervento`.`id` AND `in_tipiintervento_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).")
|
||||
INNER JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica`=`an_anagrafiche`.`idanagrafica`";
|
||||
|
||||
// Visualizzo solo promemoria del tecnico loggato
|
||||
if (!empty($id_tecnico) && !empty($solo_promemoria_assegnati)) {
|
||||
|
|
|
@ -346,7 +346,7 @@ if (!empty($risultati_da_programmare)) {
|
|||
foreach ($mesi as $mese) {
|
||||
$data = Carbon::parse($mese['data']);
|
||||
$chiave = $data->format('mY');
|
||||
$testo = $data->formatLocalized('%B %Y');
|
||||
$testo = $data->isoFormat('MMMM YYYY');
|
||||
|
||||
if (checkdate($data->format('m'), $data->format('d'), $data->format('Y'))) {
|
||||
echo '
|
||||
|
|
|
@ -46,7 +46,7 @@ $plugin_impianti = (new Plugin())->getByField('name', 'Impianti', Models\Locale:
|
|||
|
||||
switch (post('op')) {
|
||||
case 'update':
|
||||
$idcontratto = post('idcontratto');
|
||||
$idcontratto = post('idcontratto')?: null;
|
||||
$id_promemoria = post('idcontratto_riga');
|
||||
|
||||
// Rimozione del collegamento al promemoria
|
||||
|
@ -71,9 +71,9 @@ switch (post('op')) {
|
|||
$intervento->idstatointervento = post('idstatointervento');
|
||||
$intervento->idsede_partenza = post('idsede_partenza');
|
||||
$intervento->idsede_destinazione = post('idsede_destinazione');
|
||||
$intervento->id_preventivo = post('idpreventivo');
|
||||
$intervento->id_preventivo = post('idpreventivo') ?: null;
|
||||
$intervento->id_contratto = $idcontratto;
|
||||
$intervento->id_ordine = post('idordine');
|
||||
$intervento->id_ordine = post('idordine')?: null;
|
||||
$intervento->idpagamento = post('idpagamento');
|
||||
|
||||
$intervento->id_documento_fe = post('id_documento_fe');
|
||||
|
@ -210,10 +210,10 @@ switch (post('op')) {
|
|||
$intervento->idclientefinale = post('idclientefinale');
|
||||
}
|
||||
|
||||
$intervento->id_preventivo = post('idpreventivo');
|
||||
$intervento->id_contratto = post('idcontratto');
|
||||
$intervento->id_ordine = post('idordine');
|
||||
$intervento->idreferente = post('idreferente');
|
||||
$intervento->id_preventivo = $idpreventivo ?: null;
|
||||
$intervento->id_contratto = $idcontratto?: null;
|
||||
$intervento->id_ordine = post('idordine') ?: null;
|
||||
$intervento->idreferente = post('idreferente') ?: null;
|
||||
$intervento->richiesta = post('richiesta');
|
||||
$intervento->descrizione = post('descrizione');
|
||||
$intervento->idsede_destinazione = $idsede_destinazione;
|
||||
|
@ -228,9 +228,9 @@ switch (post('op')) {
|
|||
}
|
||||
|
||||
// Collegamenti intervento/impianti
|
||||
$impianti = (array) post('idimpianti');
|
||||
$impianti = post('idimpianti');
|
||||
if (!empty($impianti)) {
|
||||
$impianti = array_unique($impianti);
|
||||
$impianti = array_unique(array($impianti));
|
||||
foreach ($impianti as $impianto) {
|
||||
$dbo->insert('my_impianti_interventi', [
|
||||
'idintervento' => $id_record,
|
||||
|
@ -276,19 +276,23 @@ switch (post('op')) {
|
|||
|
||||
// Collegamenti tecnici/interventi
|
||||
if (!empty(post('orario_inizio')) && !empty(post('orario_fine'))) {
|
||||
$idtecnici = post('idtecnico');
|
||||
$idtecnici = post('idtecnico') ?: null;
|
||||
foreach ($idtecnici as $idtecnico) {
|
||||
add_tecnico($id_record, $idtecnico, post('orario_inizio'), post('orario_fine'), $idcontratto);
|
||||
}
|
||||
}
|
||||
|
||||
// Assegnazione dei tecnici all'intervento
|
||||
$tecnici_assegnati = (array) post('tecnici_assegnati');
|
||||
$dbo->sync('in_interventi_tecnici_assegnati', [
|
||||
'id_intervento' => $id_record,
|
||||
], [
|
||||
'id_tecnico' => $tecnici_assegnati,
|
||||
]);
|
||||
$tecnici_assegnati = post('tecnici_assegnati');
|
||||
if (!empty($tecnici_assegnati)) {
|
||||
$tecnici_assegnati = array_unique($tecnici_assegnati);
|
||||
$dbo->sync('in_interventi_tecnici_assegnati', [
|
||||
'id_intervento' => $id_record,
|
||||
], [
|
||||
'id_tecnico' => $tecnici_assegnati,
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
foreach ($tecnici_assegnati as $tecnico_assegnato) {
|
||||
$tecnico = Anagrafica::find($tecnico_assegnato);
|
||||
|
|
|
@ -28,7 +28,7 @@ $block_edit = $record['flag_completato'];
|
|||
$id_modulo_anagrafiche = (new Module())->getByField('name', 'Anagrafiche', Models\Locale::getPredefined()->id);
|
||||
|
||||
// Verifica aggiuntive sulla sequenzialità dei numeri
|
||||
$numero_previsto = verifica_numero_intervento($intervento);
|
||||
$numero_previsto = verifica_numero_intervento($intervento, $id_segment);
|
||||
|
||||
if (!empty($numero_previsto) && intval(setting('Verifica numero intervento'))) {
|
||||
echo '
|
||||
|
|
|
@ -338,7 +338,7 @@ if (!function_exists('aggiungi_intervento_in_fattura')) {
|
|||
* @return bool|string
|
||||
*/
|
||||
if (!function_exists('verifica_numero_intervento')) {
|
||||
function verifica_numero_intervento(Intervento $intervento)
|
||||
function verifica_numero_intervento(Intervento $intervento, $id_segment)
|
||||
{
|
||||
if (empty($intervento->codice)) {
|
||||
return null;
|
||||
|
@ -349,7 +349,7 @@ if (!function_exists('verifica_numero_intervento')) {
|
|||
->get();
|
||||
|
||||
// Recupero maschera per questo segmento
|
||||
$maschera = setting('Formato codice attività');
|
||||
$maschera = Generator::getMaschera($id_segment);
|
||||
|
||||
if ((strpos($maschera, 'YYYY') == false) or (strpos($maschera, 'yy') == false)) {
|
||||
$ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice', [
|
||||
|
|
|
@ -29,7 +29,7 @@ $interventi_da_pianificare = Intervento::doesntHave('sessioni')
|
|||
$raggruppamenti = $interventi_da_pianificare->groupBy(function ($item, $key) {
|
||||
$data = $item->data_scadenza ?: $item->data_richiesta;
|
||||
|
||||
return ucfirst($data->formatLocalized('%B %Y'));
|
||||
return ucfirst($data->isoFormat('MMMM YYYY'));
|
||||
});
|
||||
|
||||
$counter = 0;
|
||||
|
|
|
@ -162,6 +162,8 @@ function delete_check(id){
|
|||
$.post("'.$checklist_module->fileurl('ajax.php').'", {
|
||||
op: "delete_check",
|
||||
id: id,
|
||||
id_module: globals.id_module,
|
||||
id_record: id,
|
||||
}, function(){
|
||||
location.reload();
|
||||
});
|
||||
|
|
|
@ -67,7 +67,7 @@ if (!$pianificazioni->isEmpty()) {
|
|||
if (!$pianificazione->data_scadenza->equalTo($previous)) {
|
||||
$previous = $pianificazione->data_scadenza;
|
||||
echo '
|
||||
<b>'.ucfirst($pianificazione->data_scadenza->formatLocalized('%B %Y')).'</b>';
|
||||
<b>'.ucfirst($pianificazione->data_scadenza->isoFormat('MMMM YYYY')).'</b>';
|
||||
}
|
||||
|
||||
echo '
|
||||
|
|
|
@ -58,7 +58,7 @@ foreach ($raggruppamenti as $mese => $raggruppamento) {
|
|||
echo "
|
||||
<h4>
|
||||
<a class='clickable' onclick=\"if( $('#promemoria_pianificare_".$counter."').css('display') == 'none' ){ $(this).children('i').removeClass('fa-plus-circle'); $(this).children('i').addClass('fa-minus-circle'); }else{ $(this).children('i').addClass('fa-plus-circle'); $(this).children('i').removeClass('fa-minus-circle'); } $('#promemoria_pianificare_".$counter."').slideToggle();\">
|
||||
<i class='fa ".$class."'></i> ".ucfirst($nome_mese->formatLocalized('%B %Y')).'
|
||||
<i class='fa ".$class."'></i> ".ucfirst($nome_mese->isoFormat('MMMM YYYY')).'
|
||||
</a>
|
||||
</h4>';
|
||||
|
||||
|
|
|
@ -90,7 +90,22 @@ class Checklists extends AppResource
|
|||
$da_interventi = array_column($records, 'id');
|
||||
}
|
||||
|
||||
$mancanti = $this->getMissingIDs('zz_checks', 'id', $last_sync_at);
|
||||
$rs_mancanti = database()
|
||||
->table('zz_operations')
|
||||
->select('zz_operations.id_record')
|
||||
->distinct()
|
||||
->join('zz_modules', 'zz_modules.id', '=', 'zz_operations.id_module')
|
||||
->leftJoin('zz_modules_lang', function ($join) {
|
||||
$join->on('zz_modules.id', '=', 'zz_modules_lang.id_record')
|
||||
->where('zz_modules_lang.id_lang', '=', \Models\Locale::getDefault()->id);
|
||||
})
|
||||
->where('zz_modules_lang.name', '=', 'Interventi')
|
||||
->where('zz_operations.op', '=', 'delete_check')
|
||||
->where('zz_operations.created_at', '>', $last_sync_at)
|
||||
->pluck('id_record')
|
||||
->toArray();
|
||||
|
||||
$mancanti = array_column($rs_mancanti, 'id_record');
|
||||
|
||||
$results = array_unique(array_merge($da_interventi, $mancanti));
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ if ($calendar['format'] == 'week') {
|
|||
|
||||
$where = ' (in_interventi_tecnici.orario_inizio) <= '.prepare($max_date).' AND (in_interventi_tecnici.orario_inizio) >= '.prepare($min_date).' AND ';
|
||||
} else {
|
||||
$title = $date->formatLocalized('%B %Y');
|
||||
$title = $date->isoFormat('MMMM YYYY');
|
||||
|
||||
$min_date = $date->copy()->startOfMonth();
|
||||
$max_date = $date->copy()->endOfMonth();
|
||||
|
@ -154,7 +154,7 @@ for ($i = 0; $i < $count; $i = $i + 7) {
|
|||
$element = $list[$i + $c];
|
||||
|
||||
echo '
|
||||
<th>'.ucfirst($element['date']->formatLocalized('%A %d/%m')).'</th>';
|
||||
<th>'.ucfirst($element['date']->isoFormat('MMMM YYYY')).'</th>';
|
||||
}
|
||||
|
||||
echo '
|
||||
|
|
|
@ -125,7 +125,7 @@ for ($i = 0; $i < $count; $i = $i + 7) {
|
|||
$element = $list[$i + $c];
|
||||
|
||||
echo '
|
||||
<div class="divCell" align="center">'.ucfirst($element['date']->formatLocalized('%A %d/%m')).'</div>';
|
||||
<div class="divCell" align="center">'.ucfirst($element['date']->isoFormat('MMMM YYYY')).'</div>';
|
||||
}
|
||||
|
||||
echo '
|
||||
|
|
|
@ -58,7 +58,7 @@ $totale_finale = 0;
|
|||
// Nel fatturato totale è corretto NON tenere in considerazione eventuali rivalse, ritenute acconto o contributi.
|
||||
foreach ($raggruppamenti as $raggruppamento) {
|
||||
$data = new Carbon\Carbon($raggruppamento['data_competenza']);
|
||||
$mese = ucfirst($data->formatLocalized('%B %Y'));
|
||||
$mese = ucfirst($data->isoFormat('MMMM YYYY'));
|
||||
|
||||
$imponibile = SUM($raggruppamento['imponibile'], null, 2);
|
||||
$iva = SUM($raggruppamento['iva'], null, 2);
|
||||
|
|
Loading…
Reference in New Issue