Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
c0db2e8b38
@ -232,6 +232,20 @@ elseif ($action == 'set_FICHINTER_PRINT_PRODUCTS')
|
||||
{
|
||||
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||
}
|
||||
} elseif ($action == 'set_FICHINTER_USE_SERVICE_DURATION') {
|
||||
$val = GETPOST('FICHINTER_USE_SERVICE_DURATION', 'alpha');
|
||||
$res = dolibarr_set_const($db, "FICHINTER_USE_SERVICE_DURATION", ($val == 'on' ? 1 : 0), 'bool', 0, '',
|
||||
$conf->entity);
|
||||
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
if (!$error) {
|
||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||
} else {
|
||||
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -568,7 +582,22 @@ print '/>';
|
||||
print '</td><td align="right">';
|
||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||
print "</td></tr>\n";
|
||||
|
||||
// Use services duration
|
||||
$var = !$var;
|
||||
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="set_FICHINTER_USE_SERVICE_DURATION">';
|
||||
print '<tr ' . $bc[$var] . '>';
|
||||
print '<td>';
|
||||
print $langs->trans("UseServicesDurationOnFichinter");
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
print '<input type="checkbox" name="FICHINTER_USE_SERVICE_DURATION"' . ($conf->global->FICHINTER_USE_SERVICE_DURATION?' checked':'') . '>';
|
||||
print '</td>';
|
||||
print '<td align="right">';
|
||||
print '<input type="submit" class="button" value="' . $langs->trans("Modify") . '">';
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
print '</form>';
|
||||
|
||||
|
||||
|
||||
@ -280,68 +280,82 @@ if (empty($reshook))
|
||||
|
||||
for ($i=0;$i<$num;$i++)
|
||||
{
|
||||
$product_type=($lines[$i]->product_type?$lines[$i]->product_type:0);
|
||||
$product_type=($lines[$i]->product_type?$lines[$i]->product_type:Product::TYPE_PRODUCT);
|
||||
|
||||
if ($product_type == 1 || !empty($conf->global->FICHINTER_PRINT_PRODUCTS)) { //only services except if config includes products
|
||||
// service prédéfini
|
||||
if ($product_type == Product::TYPE_SERVICE || !empty($conf->global->FICHINTER_PRINT_PRODUCTS)) { //only services except if config includes products
|
||||
$duration = 3600; // Default to one hour
|
||||
|
||||
// Predefined products & services
|
||||
if ($lines[$i]->fk_product > 0)
|
||||
{
|
||||
$prod = new Product($db);
|
||||
$prod->id = $lines[$i]->fk_product;
|
||||
|
||||
// Define output language
|
||||
if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE))
|
||||
{
|
||||
$prod = new Product($db);
|
||||
$prod->id=$lines[$i]->fk_product;
|
||||
if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) {
|
||||
$prod->getMultiLangs();
|
||||
// We show if duration is present on service (so we get it)
|
||||
$prod->fetch($lines[$i]->fk_product);
|
||||
if ($prod->duration_value && $prod->duration_unit == 'h' && $conf->global->FICHINTER_USE_SERVICE_DURATION)
|
||||
{
|
||||
$durationproduct=$prod->duration_value * 3600 * $lines[$i]->qty;
|
||||
}
|
||||
else
|
||||
$durationproduct=3600;
|
||||
$outputlangs = $langs;
|
||||
$newlang='';
|
||||
if (empty($newlang) && GETPOST('lang_id')) $newlang=GETPOST('lang_id');
|
||||
if (empty($newlang)) $newlang=$srcobject->client->default_lang;
|
||||
if (! empty($newlang))
|
||||
{
|
||||
if (! empty($newlang)) {
|
||||
$outputlangs = new Translate("",$conf);
|
||||
$outputlangs->setDefaultLang($newlang);
|
||||
}
|
||||
|
||||
$label = (! empty($prod->multilangs[$outputlangs->defaultlang]["libelle"])) ? $prod->multilangs[$outputlangs->defaultlang]["libelle"] : $lines[$i]->product_label;
|
||||
}
|
||||
else
|
||||
{
|
||||
$label = $lines[$i]->product_label;
|
||||
} else {
|
||||
$prod->fetch($lines[$i]->fk_product);
|
||||
$label .= $lines[$i]->product_label;
|
||||
}
|
||||
|
||||
$desc = $label;
|
||||
$desc .= ' ('.$langs->trans('Quantity').': '.$lines[$i]->qty.')';
|
||||
}
|
||||
else {
|
||||
$desc = dol_htmlentitiesbr($lines[$i]->desc);
|
||||
$desc .= ' ('.$langs->trans('Quantity').': '.$lines[$i]->qty.')';
|
||||
if ($prod->duration_value && $conf->global->FICHINTER_USE_SERVICE_DURATION) {
|
||||
switch ($prod->duration_unit) {
|
||||
default:
|
||||
case 'h':
|
||||
$mult = 3600;
|
||||
break;
|
||||
case 'd':
|
||||
$mult = 3600 * 24;
|
||||
break;
|
||||
case 'w':
|
||||
$mult = 3600 * 24 * 7;
|
||||
break;
|
||||
case 'm':
|
||||
$mult = (int) 3600 * 24 * (365 / 12); // Average month duration
|
||||
break;
|
||||
case 'y':
|
||||
$mult = 3600 * 24 * 365;
|
||||
break;
|
||||
}
|
||||
$duration = $prod->duration_value * $mult * $lines[$i]->qty;
|
||||
}
|
||||
|
||||
$desc = $lines[$i]->product_ref;
|
||||
$desc .= ' - ';
|
||||
$desc .= $label;
|
||||
$desc .= '<br>';
|
||||
}
|
||||
// Common part (predefined or free line)
|
||||
$desc .= dol_htmlentitiesbr($lines[$i]->desc);
|
||||
$desc .= '<br>';
|
||||
$desc .= ' (' . $langs->trans('Quantity') . ': ' . $lines[$i]->qty . ')';
|
||||
|
||||
$timearray=dol_getdate(mktime());
|
||||
$date_intervention=dol_mktime(0,0,0,$timearray['mon'],$timearray['mday'],$timearray['year']);
|
||||
if ($product_type == 1)
|
||||
{ //service
|
||||
$duration = $durationproduct;
|
||||
}
|
||||
else
|
||||
{ //product
|
||||
|
||||
if ($product_type == Product::TYPE_PRODUCT) {
|
||||
$duration = 0;
|
||||
}
|
||||
|
||||
$predef = '';
|
||||
|
||||
// Extrafields
|
||||
$extrafieldsline = new ExtraFields($db);
|
||||
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
|
||||
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef);
|
||||
|
||||
|
||||
$result = $object->addline(
|
||||
$user,
|
||||
$id,
|
||||
|
||||
@ -45,6 +45,7 @@ TypeContact_fichinter_external_CUSTOMER=Following-up customer contact
|
||||
# Modele numérotation
|
||||
PrintProductsOnFichinter=Print also lines of type "product" (not only services) on intervention card
|
||||
PrintProductsOnFichinterDetails=interventions generated from orders
|
||||
UseServicesDurationOnFichinter=Use services duration for interventions generated from orders
|
||||
InterventionStatistics=Statistics of interventions
|
||||
NbOfinterventions=Nb of intervention cards
|
||||
NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
|
||||
@ -58,4 +59,4 @@ InterNote=Note intervention
|
||||
InterLineId=Line id intervention
|
||||
InterLineDate=Line date intervention
|
||||
InterLineDuration=Line duration intervention
|
||||
InterLineDesc=Line description intervention
|
||||
InterLineDesc=Line description intervention
|
||||
|
||||
Loading…
Reference in New Issue
Block a user