diff --git a/class/actions_digiquali.class.php b/class/actions_digiquali.class.php index b9778f97..4f442eb0 100644 --- a/class/actions_digiquali.class.php +++ b/class/actions_digiquali.class.php @@ -377,7 +377,7 @@ public function printMainArea(array $parameters): int global $conf, $mysoc; // Do something only for the current context. - if (in_array($parameters['currentcontext'], ['publiccontrol', 'publicsurvey'])) { + if (in_array($parameters['currentcontext'], ['publiccontrol', 'publicsurvey', 'publiccontrolhistory'])) { if (!empty($conf->global->SATURNE_SHOW_COMPANY_LOGO)) { // Define logo and logoSmall. $logoSmall = $mysoc->logo_small; diff --git a/core/tpl/digiquali_control_list.tpl.php b/core/tpl/digiquali_control_list.tpl.php index a9a6a7cc..5f39392b 100644 --- a/core/tpl/digiquali_control_list.tpl.php +++ b/core/tpl/digiquali_control_list.tpl.php @@ -325,7 +325,7 @@ $disableSortField = dol_strlen($fromtype) > 0 ? preg_match('/'. $invertedElementElementFields[$fromtype] .'/',$key) : 0; $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? 'maxwidthsearch' : $val['css']) : $val['csslist']); - if ($key == 'status') $cssforfield .= ($cssforfield ? ' ' : '').'center'; + if (in_array($key, ['days_remaining_before_next_control', 'status', 'verdict'])) $cssforfield .= ($cssforfield ? ' ' : '').'center'; elseif (in_array($val['type'], array('date', 'datetime', 'timestamp'))) $cssforfield .= ($cssforfield ? ' ' : '').'center'; elseif (in_array($val['type'], array('timestamp'))) $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID') $cssforfield .= ($cssforfield ? ' ' : '').'right'; @@ -377,7 +377,7 @@ { $cssforfield = (empty($val['css']) ? '' : $val['css']); if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) $cssforfield .= ($cssforfield ? ' ' : '').'center'; - elseif ($key == 'status') $cssforfield .= ($cssforfield ? ' ' : '').'center'; + elseif (in_array($key, ['days_remaining_before_next_control', 'status', 'verdict'])) $cssforfield .= ($cssforfield ? ' ' : '').'center'; if (in_array($val['type'], array('timestamp'))) $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; elseif ($key == 'ref') $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; @@ -397,17 +397,15 @@ print $sheet->getNomUrl(1); } elseif ($key == 'verdict') { - print dol_strlen($object->$key) > 0 ? $object->fields[$key]['arrayofkeyval'][$object->$key] : "N/A"; + $verdictColor = $object->$key == 1 ? 'green' : ($object->$key == 2 ? 'red' : 'grey'); + print dol_strlen($object->$key) > 0 ? '
' . $object->fields['verdict']['arrayofkeyval'][(!empty($object->$key)) ? $object->$key : 3] . '
' : "N/A"; } elseif ($key == 'days_remaining_before_next_control') { if (dol_strlen($object->next_control_date) > 0) { $nextControl = floor(($object->next_control_date - dol_now('tzuser'))/(3600 * 24)); - } else { - $nextControl = 0; + $nextControlColor = $nextControl < 0 ? 'red' : ($nextControl <= 30 ? 'orange' : ($nextControl <= 60 ? 'yellow' : 'green')); + print '
' . $nextControl . '
'; } - $nextControlColor = $nextControl < 0 ? 'red' : ($nextControl <= 30 ? 'orange' : ($nextControl <= 60 ? 'yellow' : 'green')); - - print '
' . $nextControl . '
' . $langs->trans('Days') . '
'; } elseif (in_array($key, $revertedElementFields)) { $linkedElement = $linkNameElementCorrespondance[$elementElementFields[$key]]; diff --git a/core/tpl/digiquali_public_control.tpl.php b/core/tpl/digiquali_public_control.tpl.php index 53c9205e..6fbac90f 100644 --- a/core/tpl/digiquali_public_control.tpl.php +++ b/core/tpl/digiquali_public_control.tpl.php @@ -1,6 +1,6 @@
-
digiquali->multidir_output[$conf->entity] . '/' . $object->element . '/'. $object->ref . '/photos/', 'small', '', 0, 0, 0, 200, 200, 0, 0, 1, $object->element . '/'. $object->ref . '/photos/', $object, 'photo', 0, 0,0, 1); ?>
+
digiquali->multidir_output[$conf->entity] . '/' . $object->element . '/'. $object->ref . '/photos/', 'small', '', 0, 0, 0, 200, 200, 0, 0, 1, $object->element . '/'. $object->ref . '/photos/', $object, 'photo', 0, 0,0, 1); ?>
$linkableObject) { if ($linkableObject['conf'] > 0 && (!empty($object->linkedObjectsIds[$linkableObject['link_name']]))) { @@ -29,73 +29,63 @@ $objectName = $linkedObject->$objectNameField; } ?> -
transnoentities($linkableObject['langs']); ?>
-
-
-
- ' . $langs->trans('VerdictObject'); ?> - array_options['options_qc_frequency'] > 0 && getDolGlobalInt('SHOW_QC_FREQUENCY_PUBLIC_INTERFACE')) { - print '
' . $langs->transnoentities('QcFrequency') . ' : ' . $linkedObject->array_options['options_qc_frequency']; - } ?> -
-
- status == $object::STATUS_DRAFT) { - $verdictObjectColor = 'primary'; - $pictoObjectColor = 'hourglass-start'; - } elseif ($object->status == $object::STATUS_VALIDATED) { - $verdictObjectColor = 'primary'; - $pictoObjectColor = 'hourglass-half'; - } elseif (!empty($object->next_control_date) && $object->next_control_date - dol_now() < 0) { - $verdictObjectColor = 'red'; - $pictoObjectColor = 'exclamation'; - } elseif ($object->verdict > 1) { - $verdictObjectColor = 'red'; - $pictoObjectColor = 'exclamation'; - } else { - $verdictObjectColor = 'green'; - $pictoObjectColor = 'check'; - } - print '

'; ?> -
-
-
+
transnoentities($linkableObject['langs']); ?>
+ + + +
+ ' . $langs->trans('VerdictObject'); ?> + array_options['options_qc_frequency'] > 0 && getDolGlobalInt('SHOW_QC_FREQUENCY_PUBLIC_INTERFACE')) { + print '
' . $langs->transnoentities('QcFrequency') . ' : ' . $linkedObject->array_options['options_qc_frequency']; + } ?> +
+ status == $object::STATUS_DRAFT) { + $verdictObjectColor = 'primary'; + $pictoObjectColor = 'hourglass-start'; + } elseif ($object->status == $object::STATUS_VALIDATED) { + $verdictObjectColor = 'primary'; + $pictoObjectColor = 'hourglass-half'; + } elseif (!empty($object->next_control_date) && $object->next_control_date - dol_now() < 0) { + $verdictObjectColor = 'red'; + $pictoObjectColor = 'exclamation'; + } elseif ($object->verdict > 1) { + $verdictObjectColor = 'red'; + $pictoObjectColor = 'exclamation'; + } else { + $verdictObjectColor = 'green'; + $pictoObjectColor = 'check'; + } + print '

'; ?> +
-
getNomUrl(1, 'nolink', 0, '', -1, 1); ?>
-
-
-
- getNomUrl(1, 'nolink') . '
'; - echo ' ' . $langs->trans('Verdict') . '
'; - echo img_picto('', 'calendar', 'class="pictofixedwidth"') . $langs->trans('ControlDate'); ?> -
-
- verdict == 1 ? 'green' : ($object->verdict == 2 ? 'red' : 'grey'); - if ($object->status < $object::STATUS_LOCKED) { - print $object->getLibStatut(5); - print '
'; - print ' ' . $langs->trans('NonFinalVerdict'); - } else { - print '
' . $object->fields['verdict']['arrayofkeyval'][(!empty($object->verdict)) ? $object->verdict : 3] . '
'; - } +
getNomUrl(1, 'nolink', 1, '', -1, 1); ?>
+ + + +
+ getNomUrl(1, 'nolink', 1) . '
'; + print ' ' . $langs->trans('Verdict') . '
'; + print '
' . saturne_show_medias_linked('digiquali', $conf->digiquali->multidir_output[$conf->entity] . '/control/' . $object->ref . '/qrcode/', 'small', 1, 0, 0, 0, 70, 70, 0, 0, 1, 'control/'. $object->ref . '/qrcode/', $object, '', 0, 0) . '
'; ?> +
+ verdict == 1 ? 'green' : ($object->verdict == 2 ? 'red' : 'grey'); + if ($object->status < $object::STATUS_LOCKED) { + print $object->getLibStatut(5); print '
'; - echo dol_print_date($object->control_date, 'day'); ?> - - - next_control_date)) : ?> -
-
- picto, 'class="pictofixedwidth"') . $langs->trans('NextControl') . '
'; - echo img_picto('', 'calendar', 'class="pictofixedwidth"') . $langs->trans('NextControlDate'); ?> -
-
- next_control_date - dol_now()) > 0) ? 'badge-status4' : 'badge-status8') . '">' . floor(($object->next_control_date - dol_now())/(3600 * 24)) . ' ' . $langs->trans('Days') . '

'; - echo dol_print_date($object->next_control_date, 'day'); ?> -
- - - + print ' ' . $langs->trans('NonFinalVerdict'); + } else { + print '
' . $object->fields['verdict']['arrayofkeyval'][(!empty($object->verdict)) ? $object->verdict : 3] . '
'; + } + if (!empty($object->next_control_date)) { + print '
' . $langs->trans('NextControl') . '
'; + $nextControl = floor(($object->next_control_date - dol_now())/(3600 * 24)); + $nextControlColor = $nextControl < 0 ? 'red' : ($nextControl <= 30 ? 'orange' : ($nextControl <= 60 ? 'yellow' : 'green')); + print dol_print_date($object->next_control_date, 'day') . '
' . $langs->trans('Remain') . '
'; + print '
'; + print '
' . $nextControl . ' ' . $langs->trans('Days') . '
'; + } ?> +
diff --git a/langs/fr_FR/digiquali.lang b/langs/fr_FR/digiquali.lang index 577add0d..8fe91ceb 100644 --- a/langs/fr_FR/digiquali.lang +++ b/langs/fr_FR/digiquali.lang @@ -364,3 +364,4 @@ ImportFinishWith = L'import des %s a été terminé avec %s err SelectProducts = Sélectionner un produit SelectProductsOrServices = Sélectionner un produit / service Contact = Contact/Adresse +Remain = reste diff --git a/public/control/public_control_history.php b/public/control/public_control_history.php index 92bde0b3..3dc10959 100644 --- a/public/control/public_control_history.php +++ b/public/control/public_control_history.php @@ -151,27 +151,30 @@ $object = array_shift($objectControlList); $object->fetchObjectLinked('', '', '', 'digiquali_control'); require_once __DIR__ . '/../../core/tpl/digiquali_public_control.tpl.php'; - } else { - - print '
'; + } elseif ($conf->browser->layout != 'phone') { + print '
'; print load_fiche_titre($langs->trans('ControlList'), $objectLinked->getNomUrl(1, 'nolink'), $object->picto); print ''; print ''; - print ''; + print ''; foreach($objectControlList as $objectControl) { $verdictColor = $objectControl->verdict == 1 ? 'green' : ($objectControl->verdict == 2 ? 'red' : 'grey'); @@ -181,24 +184,74 @@ $sheet->fetch($objectControl->fk_sheet); print ''; - print ''; + if (dol_strlen($objectControl->next_control_date) > 0) { + print ''; + } else { + print ''; + } print ''; } print '
'; + print ''; print $langs->trans('Ref'); - print ''; + print ''; + print $langs->trans('QRCode'); + print ''; print $langs->trans('Controller'); - print ''; + print ''; print $langs->trans('Project'); - print ''; + print ''; print $langs->trans('Sheet'); - print ''; - print $langs->trans('ControlDate'); - print ''; + print ''; print $langs->trans('Verdict'); - print ''; - print $langs->trans('Status'); - print '
'; + print $langs->trans('ControlDate'); + print ''; + print $langs->trans('NextControl'); + print ''; + print $langs->trans('NextControlDate'); + print '
'; - print $objectControl->getNomUrl(1, 'nolink'); - print ''; + print ''; + print $objectControl->getNomUrl(1, 'nolink', 1); + $publicControlInterfaceUrl = dol_buildpath('custom/digiquali/public/control/public_control.php?track_id=' . $objectControl->track_id . '&entity=' . $conf->entity, 3); + print ' '; + print ''; + print saturne_show_medias_linked('digiquali', $conf->digiquali->multidir_output[$conf->entity] . '/control/' . $objectControl->ref . '/qrcode/', 'small', 1, 0, 0, 0, 80, 80, 0, 0, 1, 'control/'. $objectControl->ref . '/qrcode/', $objectControl, '', 0, 0); + print ''; print $user->getNomUrl(1, 'nolink'); - print ''; + print ''; print ($objectControl->projectid > 0 ? img_picto($langs->trans('Project'), 'project', 'class="pictofixedwidth"') . $project->ref : ''); - print ''; - print $sheet->getNomUrl(1, 'nolink'); - print ''; + print ''; + print $sheet->getNomUrl(1, 'nolink', 1); + print ''; + print '
' . $objectControl->fields['verdict']['arrayofkeyval'][(!empty($objectControl->verdict)) ? $objectControl->verdict : 3] . '
'; + print '
'; print dol_print_date($objectControl->control_date); - print ''; - print '
' . $objectControl->fields['verdict']['arrayofkeyval'][(!empty($objectControl->verdict)) ?: 3] . '
'; - print '
'; - print $objectControl->getLibStatut(5); + print ''; + $nextControl = floor(($objectControl->next_control_date - dol_now())/(3600 * 24)); + $nextControlColor = $nextControl < 0 ? 'red' : ($nextControl <= 30 ? 'orange' : ($nextControl <= 60 ? 'yellow' : 'green')); + print '
' . $nextControl . ' ' . $langs->trans('Days') . '
'; + print '
'; + print dol_print_date($objectControl->next_control_date); + print '
'; print '
'; + } else { + // Phone view + print '
'; + print load_fiche_titre($langs->trans('ControlList'), $objectLinked->getNomUrl(1, 'nolink'), $object->picto); + print ''; + + foreach($objectControlList as $objectControl) { + $verdictColor = $objectControl->verdict == 1 ? 'green' : ($objectControl->verdict == 2 ? 'red' : 'grey'); + + $user->fetch($objectControl->fk_user_controller); + $project->fetch($objectControl->projectid); + $sheet->fetch($objectControl->fk_sheet); + + print ''; + print ''; + } + print '
'; + print $objectControl->getNomUrl(1, 'nolink', 1); + $publicControlInterfaceUrl = dol_buildpath('custom/digiquali/public/control/public_control.php?track_id=' . $objectControl->track_id . '&entity=' . $conf->entity, 3); + print '
'; + print $user->getNomUrl(1, 'nolink') . '
'; + print ($objectControl->projectid > 0 ? img_picto($langs->trans('Project'), 'project', 'class="pictofixedwidth"') . $project->ref . '
' : ''); + print $sheet->getNomUrl(1, 'nolink', 1) . '
'; + print saturne_show_medias_linked('digiquali', $conf->digiquali->multidir_output[$conf->entity] . '/control/' . $objectControl->ref . '/qrcode/', 'small', 1, 0, 0, 0, 70, 70, 0, 0, 1, 'control/'. $objectControl->ref . '/qrcode/', $objectControl, '', 0, 0); + print '
'; + print '
' . $objectControl->fields['verdict']['arrayofkeyval'][(!empty($objectControl->verdict)) ?: 3] . '

'; + if (dol_strlen($objectControl->next_control_date) > 0) { + print '
' . $langs->trans('NextControl') . '
'; + $nextControl = floor(($objectControl->next_control_date - dol_now())/(3600 * 24)); + $nextControlColor = $nextControl < 0 ? 'red' : ($nextControl <= 30 ? 'orange' : ($nextControl <= 60 ? 'yellow' : 'green')); + print dol_print_date($objectControl->next_control_date, 'day') . '
' . $langs->trans('Remain') . '
'; + print '
'; + print '
' . $nextControl . ' ' . $langs->trans('Days') . '
'; + } + print '
'; + print '
'; } print '
'; } else {