Compare commits

...

6 Commits

4 changed files with 146 additions and 109 deletions

View File

@ -116,7 +116,7 @@ function orderValue($table, $field, $id)
*/
function reorderRows($table, $field, $id)
{
$righe = database()->select($table, 'id', [$field => $id]);
$righe = database()->select($table, 'id', [$field => $id], ['order' => 'ASC']);
$i = 1;
foreach ($righe as $riga) {

View File

@ -260,14 +260,14 @@ class CSV extends CSVImporter
$dati_sede = [];
foreach ($campi_sede as $field) {
if (isset($record[$field])) {
$dati_sede[$field] = $record[$field];
$dati_sede[$field] = trim($record[$field]);
unset($record[$field]);
}
}
// Ricerca di eventuale anagrafica corrispondente sulla base del campo definito come primary_key (es. codice)
if (!empty($primary_key)) {
$anagrafica = Anagrafica::where($primary_key, '=', $record[$primary_key])->first();
$anagrafica = Anagrafica::where($primary_key, '=', trim($record[$primary_key]))->first();
}
// Se non trovo nessuna anagrafica corrispondente, allora la creo

View File

@ -108,6 +108,7 @@ switch (filter('op')) {
];
}
## Box su allDay
$query = 'SELECT
co_preventivi.id,
co_preventivi.nome,
@ -125,38 +126,41 @@ switch (filter('op')) {
)
AND
co_statipreventivi.is_pianificabile=1';
$sessioni = $dbo->fetchArray($query);
foreach ($sessioni as $sessione) {
if(!empty($sessione['data_accettazione']) && $sessione['data_accettazione']!='0000-00-00'){
$alldays = $dbo->fetchArray($query);
foreach ($alldays as $preventivo) {
if(!empty($preventivo['data_accettazione']) && $preventivo['data_accettazione']!='0000-00-00'){
$results[] = [
'id' => $sessione['id'],
'idintervento' => $sessione['id'],
'id' => $modulo_preventivi->id.'_'.$preventivo['id'],
'idintervento' => $preventivo['id'],
'idtecnico' => "",
'title' => '<b>Prev. '.$sessione['numero'].'</b> '.$sessione['nome'].''.(($sessione['have_attachments']) ? '<i class="fa fa-paperclip" aria-hidden="true"></i>' : '').'<br><b>'.tr('Cliente').':</b> '.$sessione['cliente'],
'start' => $sessione['data_accettazione'],
'end' => $sessione['data_accettazione'],
'url' => base_path().'/editor.php?id_module='.$modulo_preventivi->id.'&id_record='.$sessione['id'],
'title' => '<b>Accettazione prev. '.$preventivo['numero'].'</b> '.$preventivo['nome'].''.(($preventivo['have_attachments']) ? ' <i class="fa fa-paperclip" aria-hidden="true"></i>' : '').'<br><b>'.tr('Cliente').':</b> '.$preventivo['cliente'],
'start' => $preventivo['data_accettazione'],
'end' => $preventivo['data_accettazione'],
'url' => base_path().'/editor.php?id_module='.$modulo_preventivi->id.'&id_record='.$preventivo['id'],
'backgroundColor' => "#ff7f50",
'textColor' => color_inverse("#ff7f50"),
'borderColor' => "#ff7f50",
'allDay' => true,
'eventStartEditable' => false,
];
}
if($sessione['data_accettazione'] != $sessione['data_conclusione'] && $sessione['data_conclusione']!='0000-00-00' && !empty($sessione['data_conclusione']) ){
if($preventivo['data_accettazione'] != $preventivo['data_conclusione'] && $preventivo['data_conclusione']!='0000-00-00' && !empty($preventivo['data_conclusione']) ){
$results[] = [
'id' => $sessione['id'],
'idintervento' => $sessione['id'],
'id' => $modulo_preventivi->id.'_'.$preventivo['id'],
'idintervento' => $preventivo['id'],
'idtecnico' => "",
'title' => '<b>Prev. '.$sessione['numero'].'</b> '.$sessione['nome'].''.(($sessione['have_attachments']) ? '<i class="fa fa-paperclip" aria-hidden="true"></i>' : '').'<br><b>'.tr('Cliente').':</b> '.$sessione['cliente'],
'start' => $sessione['data_conclusione'],
'end' => $sessione['data_conclusione'],
'url' => base_path().'/editor.php?id_module='.$modulo_preventivi->id.'&id_record='.$sessione['id'],
'title' => '<b>Conclusione prev. '.$preventivo['numero'].'</b> '.$preventivo['nome'].''.(($preventivo['have_attachments']) ? ' <i class="fa fa-paperclip" aria-hidden="true"></i>' : '').'<br><b>'.tr('Cliente').':</b> '.$preventivo['cliente'],
'start' => $preventivo['data_conclusione'],
'end' => $preventivo['data_conclusione'],
'url' => base_path().'/editor.php?id_module='.$modulo_preventivi->id.'&id_record='.$preventivo['id'],
'backgroundColor' => "#ff7f50",
'textColor' => color_inverse("#ff7f50"),
'borderColor' => "#ff7f50",
'allDay' => true,
'eventStartEditable' => false,
];
}
}
@ -193,11 +197,13 @@ switch (filter('op')) {
break;
case 'info_intervento':
case 'tooltip_info':
$id = filter('id');
$allDay = filter('allDay');
$timeStart = filter('timeStart');
$timeEnd = filter('timeEnd');
if (empty($allday)){
// Lettura dati intervento di riferimento
$query = 'SELECT in_interventi_tecnici.idintervento, in_interventi.id, idtecnico, orario_inizio, orario_fine, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idtecnico) AS nome_tecnico, (SELECT colore FROM an_anagrafiche WHERE idanagrafica=idtecnico) AS colore FROM in_interventi_tecnici INNER JOIN in_interventi ON in_interventi_tecnici.idintervento=in_interventi.id WHERE in_interventi.id='.prepare($id).' '.Modules::getAdditionalsQuery('Interventi');
$rs = $dbo->fetchArray($query);
@ -264,6 +270,29 @@ switch (filter('op')) {
$tooltip .= '<b>'.tr('Informazioni aggiuntive').'</b>: '.nl2br($rs[0]['informazioniaggiuntive']).'<br/>';
}
}else{
$query = 'SELECT
co_preventivi.nome,
co_preventivi.numero,
co_preventivi.data_accettazione,
co_preventivi.data_conclusione,
(SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = co_preventivi.idanagrafica) AS cliente,
(SELECT id FROM zz_files WHERE id_record = '.prepare($id).' AND id_module = '.prepare($modulo_preventivi->id).' LIMIT 1) AS have_attachments
FROM co_preventivi
LEFT JOIN co_statipreventivi ON co_preventivi.idstato = co_statipreventivi.id
WHERE co_preventivi.id='.prepare($id);
$rs = $dbo->fetchArray($query);
$tooltip = '<b>Prev. '.$rs[0]['numero'].'</b> '.$rs[0]['nome'].''.(($rs[0]['have_attachments']) ? ' <i class="fa fa-paperclip" aria-hidden="true"></i>' : '').'<br><b>'.tr('Cliente').':</b> '.$rs[0]['cliente'];
}
echo $tooltip;
}
break;

View File

@ -543,7 +543,6 @@ echo '
} else {
name = "id_intervento";
}
openModal(globals.dashboard.drop.title, globals.dashboard.drop.url + "&data=" + data + "&orario_inizio=" + ora_dal + "&orario_fine=" + ora_al + "&ref=dashboard&idcontratto=" + $(this).data("idcontratto") + "&" + name + "=" + $(this).data("id") + "&id_tecnico=" + $(this).data("id_tecnico"));
// Ricaricamento dei dati alla chiusura del modal
@ -561,6 +560,9 @@ echo '
// let start = info.start;
// let end = info.end;
let is_allDay = !start.hasTime() && !end.hasTime();
if (is_allDay!==true){
let data = moment(start).format("YYYY-MM-DD");
let data_fine = moment(end).format("YYYY-MM-DD");
let orario_inizio = moment(start).format("HH:mm");
@ -572,12 +574,14 @@ echo '
}
openModal(globals.dashboard.select.title, globals.dashboard.select.url + "&ref=dashboard&data=" + data + "&data_fine=" + data_fine + "&orario_inizio=" + orario_inizio + "&orario_fine=" + orario_fine);
}
},
editable: globals.dashboard.write_permission,
eventDrop: function(event, delta, revertFunc ) {// info
// let event = info.event;
if (event.allDay!==true){
$.post(globals.dashboard.load_url, {
op: "modifica_intervento",
id: event.id,
@ -591,6 +595,9 @@ echo '
revertFunc(); // info.revert();
}
});
}else{
revertFunc();
}
},
eventResize: function(event, dayDelta, minuteDelta, revertFunc) { // info
// let event = info.event;
@ -614,10 +621,10 @@ echo '
eventAfterRender: function(event, element) {
// let event = info.event;
// let element = $(info.el);
element.find(".fc-title").html(event.title);
let id_intervento = event.idintervento;
if (globals.dashboard.tooltip == 1) {
if (globals.dashboard.tooltip == 1 && event.allDay!==true ) {
element.tooltipster({
content: "'.tr('Caricamento...').'",
animation: "grow",
@ -636,8 +643,9 @@ echo '
if ($origin.data("loaded") !== true) {
$.post(globals.dashboard.load_url, {
op: "info_intervento",
op: "tooltip_info",
id: id_intervento,
allDay: event.allDay,
}, function (data, response) {
instance.content(data);