Merge branch '3.6' of git@github.com:Dolibarr/dolibarr.git into 3.6
This commit is contained in:
commit
b04eae95e5
@ -140,9 +140,9 @@ Fix: Link product, In list view and label product.
|
||||
Fix: visible task into area "time" for "My task" must limit task to tasks i am assigned to.
|
||||
Fix: When disabled, all fields to add time into task line must be disabled.
|
||||
Fix: Missing include files.lib.php in some pages that use dol_delete_recursive
|
||||
Fix: Missing include files.lib.php in some pages ti use dol_delete_recursive.
|
||||
Fix: [ bug #1558 ] Product/service edit page title shows new Ref instead of old ref.
|
||||
Fix: [ bug #1553 ] Saving User displays setup removes menu.
|
||||
Fix: [ bug #1544 ] Can remove date from invoice
|
||||
|
||||
***** ChangeLog for 3.5.4 compared to 3.5.3 *****
|
||||
Fix: Hide title of event when agenda module disabled.
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/* Copyright (C) 2003-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2013 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2005-2014 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr>
|
||||
* Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2011 Jean Heimburger <jean@tiaris.info>
|
||||
@ -9,7 +9,7 @@
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
*
|
||||
* 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
|
||||
* 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.
|
||||
*
|
||||
@ -291,6 +291,13 @@ class Commande extends CommonOrder
|
||||
}
|
||||
}
|
||||
|
||||
// Set new ref and current status
|
||||
if (! $error)
|
||||
{
|
||||
$this->ref = $num;
|
||||
$this->statut = 1;
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
// Appel des triggers
|
||||
@ -301,13 +308,6 @@ class Commande extends CommonOrder
|
||||
// Fin appel triggers
|
||||
}
|
||||
|
||||
// Set new ref and current status
|
||||
if (! $error)
|
||||
{
|
||||
$this->ref = $num;
|
||||
$this->statut = 1;
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$this->db->commit();
|
||||
|
||||
@ -248,18 +248,23 @@ else if ($action == 'setmode' && $user->rights->facture->creer) {
|
||||
dol_print_error($db, $object->error);
|
||||
}
|
||||
|
||||
else if ($action == 'setinvoicedate' && $user->rights->facture->creer) {
|
||||
else if ($action == 'setinvoicedate' && $user->rights->facture->creer)
|
||||
{
|
||||
$object->fetch($id);
|
||||
$old_date_lim_reglement = $object->date_lim_reglement;
|
||||
$object->date = dol_mktime(12, 0, 0, $_POST['invoicedatemonth'], $_POST['invoicedateday'], $_POST['invoicedateyear']);
|
||||
$date = dol_mktime(12, 0, 0, $_POST['invoicedatemonth'], $_POST['invoicedateday'], $_POST['invoicedateyear']);
|
||||
if (empty($date))
|
||||
{
|
||||
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Date")),'errors');
|
||||
header('Location: '.$_SERVER["PHP_SELF"].'?facid='.$id.'&action=editinvoicedate');
|
||||
exit;
|
||||
}
|
||||
$object->date=$date;
|
||||
$new_date_lim_reglement = $object->calculate_date_lim_reglement();
|
||||
if ($new_date_lim_reglement > $old_date_lim_reglement)
|
||||
$object->date_lim_reglement = $new_date_lim_reglement;
|
||||
if ($object->date_lim_reglement < $object->date)
|
||||
$object->date_lim_reglement = $object->date;
|
||||
if ($new_date_lim_reglement > $old_date_lim_reglement) $object->date_lim_reglement = $new_date_lim_reglement;
|
||||
if ($object->date_lim_reglement < $object->date) $object->date_lim_reglement = $object->date;
|
||||
$result = $object->update($user);
|
||||
if ($result < 0)
|
||||
dol_print_error($db, $object->error);
|
||||
if ($result < 0) dol_print_error($db, $object->error);
|
||||
}
|
||||
|
||||
else if ($action == 'setconditions' && $user->rights->facture->creer) {
|
||||
@ -267,18 +272,14 @@ else if ($action == 'setconditions' && $user->rights->facture->creer) {
|
||||
$object->cond_reglement_code = 0; // To clean property
|
||||
$object->cond_reglement_id = 0; // To clean property
|
||||
$result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int'));
|
||||
if ($result < 0)
|
||||
dol_print_error($db, $object->error);
|
||||
if ($result < 0) dol_print_error($db, $object->error);
|
||||
|
||||
$old_date_lim_reglement = $object->date_lim_reglement;
|
||||
$new_date_lim_reglement = $object->calculate_date_lim_reglement();
|
||||
if ($new_date_lim_reglement > $old_date_lim_reglement)
|
||||
$object->date_lim_reglement = $new_date_lim_reglement;
|
||||
if ($object->date_lim_reglement < $object->date)
|
||||
$object->date_lim_reglement = $object->date;
|
||||
if ($new_date_lim_reglement > $old_date_lim_reglement) $object->date_lim_reglement = $new_date_lim_reglement;
|
||||
if ($object->date_lim_reglement < $object->date) $object->date_lim_reglement = $object->date;
|
||||
$result = $object->update($user);
|
||||
if ($result < 0)
|
||||
dol_print_error($db, $object->error);
|
||||
if ($result < 0) dol_print_error($db, $object->error);
|
||||
}
|
||||
|
||||
else if ($action == 'setpaymentterm' && $user->rights->facture->creer) {
|
||||
@ -1143,12 +1144,12 @@ else if ($action == 'addline' && $user->rights->facture->creer)
|
||||
// We define price for product
|
||||
if (! empty($conf->global->PRODUIT_MULTIPRICES) && ! empty($object->client->price_level))
|
||||
{
|
||||
$pu_ht = $prod->multiprices [$object->client->price_level];
|
||||
$pu_ttc = $prod->multiprices_ttc [$object->client->price_level];
|
||||
$price_min = $prod->multiprices_min [$object->client->price_level];
|
||||
$price_base_type = $prod->multiprices_base_type [$object->client->price_level];
|
||||
$tva_tx=$prod->multiprices_tva_tx[$object->client->price_level];
|
||||
$tva_npr=$prod->multiprices_recuperableonly[$object->client->price_level];
|
||||
$pu_ht = $prod->multiprices[$object->client->price_level];
|
||||
$pu_ttc = $prod->multiprices_ttc[$object->client->price_level];
|
||||
$price_min = $prod->multiprices_min[$object->client->price_level];
|
||||
$price_base_type = $prod->multiprices_base_type[$object->client->price_level];
|
||||
//$tva_tx=$prod->multiprices_tva_tx[$object->client->price_level];
|
||||
//$tva_npr=$prod->multiprices_recuperableonly[$object->client->price_level];
|
||||
}
|
||||
elseif (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
|
||||
{
|
||||
|
||||
@ -1320,6 +1320,16 @@ if ($action == 'create')
|
||||
$form->select_types_paiements(isset($_POST['mode_reglement_id'])?$_POST['mode_reglement_id']:$mode_reglement_id,'mode_reglement_id');
|
||||
print '</td></tr>';
|
||||
|
||||
// Project
|
||||
if (! empty($conf->projet->enabled)) {
|
||||
$formproject = new FormProjets($db);
|
||||
|
||||
$langs->load('projects');
|
||||
print '<tr><td>' . $langs->trans('Project') . '</td><td colspan="2">';
|
||||
$formproject->select_projects($soc->id, $projectid, 'projectid');
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
// Public note
|
||||
print '<tr><td>'.$langs->trans('NotePublic').'</td>';
|
||||
print '<td>';
|
||||
|
||||
@ -23,9 +23,11 @@ ShowResourcePlanning=Show resource planning
|
||||
NoResourceInDatabase=No resource in database
|
||||
GotoDate=Go to date
|
||||
|
||||
ResourceElementPage=Element resources
|
||||
ResourceCreatedWithSuccess=Resource successfully created
|
||||
RessourceLineSuccessfullyDeleted=Resource line successfully deleted
|
||||
RessourceLineSuccessfullyUpdated=Resource line successfully updated
|
||||
ResourceLinkedWithSuccess=Resource linked with success
|
||||
|
||||
TitleResourceCard=Resource card
|
||||
ConfirmDeleteResource=Confirm to delete this resource
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
MenuResourceIndex=Ressources
|
||||
MenuResourceAdd=Nouvelle ressource
|
||||
MenuResourcePlanning=Planning des Ressources
|
||||
DeleteResource=Effacer resource
|
||||
DeleteResource=Effacer ressource
|
||||
ConfirmDeleteResourceElement=Confirmer la suppression de la ressource pour cet élément
|
||||
NoResourceInDatabase=Aucune ressource en base de données.
|
||||
NoResourceLinked=Aucune ressource liée
|
||||
@ -17,17 +17,19 @@ ResourceFormLabel_description=Description de la ressource
|
||||
|
||||
ResourcesLinkedToElement=Ressources liées à l'élément
|
||||
RessourceLineSuccessfullyUpdated=Ressource mise à jour
|
||||
RessourceLineSuccessfullyDeleted=Resource supprimée
|
||||
RessourceLineSuccessfullyDeleted=Ressource supprimée
|
||||
|
||||
ShowResourcePlanning=Montrer le planning des ressources
|
||||
PlanningOfAffectedResources=Planning des ressources affectées aux évènements
|
||||
GotoDate=Afficher la date
|
||||
|
||||
ResourceElementPage=Ressources de l'élément
|
||||
ResourceCreatedWithSuccess=Ressource créee avec succès
|
||||
RessourceLineSuccessfullyDeleted=Ressource supprimée avec succès
|
||||
RessourceLineSuccessfullyUpdated=Ressource mise à jour
|
||||
ResourceLinkedWithSuccess=Ressource liée avec succès
|
||||
|
||||
TitleResourceCard=Fiche resource
|
||||
TitleResourceCard=Fiche ressource
|
||||
ConfirmDeleteResource=Confirmer la suppression de cette ressource?
|
||||
RessourceSuccessfullyDeleted=Ressource effacée avec succès
|
||||
DictionaryResourceType=Type de ressources
|
||||
@ -466,7 +466,7 @@ if (empty($reshook))
|
||||
|
||||
if ($result > 0)
|
||||
{
|
||||
header('Location: '.DOL_URL_ROOT.'/product/liste.php?delprod='.urlencode($object->ref));
|
||||
header('Location: '.DOL_URL_ROOT.'/product/liste.php?type='.$object->type.'&delprod='.urlencode($object->ref));
|
||||
exit;
|
||||
}
|
||||
else
|
||||
|
||||
@ -930,10 +930,11 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<tr><td>';
|
||||
$text = $langs->trans('MinPrice');
|
||||
print $form->textwithpicto($text, $langs->trans("PrecisionUnitIsLimitedToXDecimals", $conf->global->MAIN_MAX_DECIMALS_UNIT), 1, 1);
|
||||
print '</td><td>';
|
||||
if ($prodcustprice->price_base_type == 'TTC') {
|
||||
print '<td><input name="price_min" size="10" value="' . price($prodcustprice->price_min_ttc) . '">';
|
||||
print '<input name="price_min" size="10" value="' . price($prodcustprice->price_min_ttc) . '">';
|
||||
} else {
|
||||
print '<td><input name="price_min" size="10" value="' . price($prodcustprice->price_min) . '">';
|
||||
print '<input name="price_min" size="10" value="' . price($prodcustprice->price_min) . '">';
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
@ -82,87 +82,5 @@ class ActionsResource
|
||||
}
|
||||
}
|
||||
}
|
||||
if (in_array('element_resource',explode(':',$parameters['context'])))
|
||||
{
|
||||
|
||||
$element_id = GETPOST('element_id','int');
|
||||
$element = GETPOST('element','alpha');
|
||||
$resource_type = GETPOST('resource_type');
|
||||
|
||||
$fk_resource = GETPOST('fk_resource');
|
||||
|
||||
$busy = GETPOST('busy','int');
|
||||
$mandatory = GETPOST('mandatory','int');
|
||||
|
||||
if($action == 'add_element_resource' && !GETPOST('cancel'))
|
||||
{
|
||||
$objstat = fetchObjectByElement($element_id,$element);
|
||||
|
||||
$res = $objstat->add_element_resource($fk_resource,$resource_type,$busy,$mandatory);
|
||||
|
||||
|
||||
if($res > 0)
|
||||
{
|
||||
setEventMessage($langs->trans('ResourceLinkedWithSuccess'),'mesgs');
|
||||
header("Location: ".$_SERVER['PHP_SELF'].'?element='.$element.'&element_id='.$element_id);
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessage($langs->trans('ErrorWhenLinkingResource'),'errors');
|
||||
header("Location: ".$_SERVER['PHP_SELF'].'?mode=add&resource_type='.$resource_type.'&element='.$element.'&element_id='.$element_id);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// Delete a resource linked to an element
|
||||
if ($action == 'confirm_delete_linked_resource' && $user->rights->resource->delete && GETPOST('confirm') == 'yes')
|
||||
{
|
||||
$res = $object->fetch(GETPOST('id'));
|
||||
if($res)
|
||||
{
|
||||
|
||||
$result = $object->delete_resource(GETPOST('lineid'),GETPOST('element'));
|
||||
|
||||
if ($result >= 0)
|
||||
{
|
||||
setEventMessage($langs->trans('RessourceLineSuccessfullyDeleted'));
|
||||
Header("Location: ".$_SERVER['PHP_SELF']."?element=".GETPOST('element')."&element_id=".GETPOST('element_id'));
|
||||
exit;
|
||||
}
|
||||
else {
|
||||
setEventMessage($object->error,'errors');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessage($object->error,'errors');
|
||||
}
|
||||
}
|
||||
|
||||
// Update ressource
|
||||
if ($action == 'update_linked_resource' && $user->rights->resource->write && !GETPOST('cancel') )
|
||||
{
|
||||
$res = $object->fetch_element_resource(GETPOST('lineid'));
|
||||
if($res)
|
||||
{
|
||||
|
||||
$object->busy = GETPOST('busy');
|
||||
$object->mandatory = GETPOST('mandatory');
|
||||
|
||||
$result = $object->update_element_resource($user);
|
||||
|
||||
if ($result >= 0)
|
||||
{
|
||||
setEventMessage($langs->trans('RessourceLineSuccessfullyUpdated'));
|
||||
Header("Location: ".$_SERVER['PHP_SELF']."?element=".GETPOST('element')."&element_id=".GETPOST('element_id'));
|
||||
exit;
|
||||
}
|
||||
else {
|
||||
setEventMessage($object->error,'errors');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@ -779,7 +779,7 @@ class Resource extends CommonObject
|
||||
// Links beetween objects are stored in this table
|
||||
$sql = 'SELECT rowid, resource_id, resource_type, busy, mandatory';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'element_resources';
|
||||
$sql.= " WHERE element_id='".$element_id."' AND resource_type='".$this->element."'";
|
||||
$sql.= " WHERE element_id='".$element_id."' AND element_type='".$element."'";
|
||||
if($resource_type)
|
||||
$sql.=" AND resource_type LIKE '%".$resource_type."%'";
|
||||
$sql .= ' ORDER BY resource_type';
|
||||
|
||||
@ -57,13 +57,90 @@ if( ! $user->rights->resource->read)
|
||||
$object=new Resource($db);
|
||||
|
||||
$hookmanager->initHooks(array('element_resource'));
|
||||
|
||||
|
||||
$object->available_resources = array('resource');
|
||||
|
||||
$parameters=array('resource_id'=>$available_resources);
|
||||
// Get parameters
|
||||
$id = GETPOST('id','int');
|
||||
$action = GETPOST('action','alpha');
|
||||
$mode = GETPOST('mode','alpha');
|
||||
$lineid = GETPOST('lineid','int');
|
||||
$element = GETPOST('element','alpha');
|
||||
$element_id = GETPOST('element_id','int');
|
||||
$resource_id = GETPOST('fk_resource','int');
|
||||
$resource_type = GETPOST('resource_type','alpha');
|
||||
$busy = GETPOST('busy','int');
|
||||
$mandatory = GETPOST('mandatory','int');
|
||||
|
||||
if($action == 'add_element_resource' && !GETPOST('cancel'))
|
||||
{
|
||||
$objstat = fetchObjectByElement($element_id,$element);
|
||||
$res = $objstat->add_element_resource($resource_id,$resource_type,$busy,$mandatory);
|
||||
if($res > 0)
|
||||
{
|
||||
setEventMessage($langs->trans('ResourceLinkedWithSuccess'),'mesgs');
|
||||
header("Location: ".$_SERVER['PHP_SELF'].'?element='.$element.'&element_id='.$element_id);
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessage($langs->trans('ErrorWhenLinkingResource'),'errors');
|
||||
header("Location: ".$_SERVER['PHP_SELF'].'?mode=add&resource_type='.$resource_type.'&element='.$element.'&element_id='.$element_id);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// Update ressource
|
||||
if ($action == 'update_linked_resource' && $user->rights->resource->write && !GETPOST('cancel') )
|
||||
{
|
||||
$res = $object->fetch_element_resource($lineid);
|
||||
if($res)
|
||||
{
|
||||
$object->busy = $busy;
|
||||
$object->mandatory = $mandatory;
|
||||
|
||||
$result = $object->update_element_resource($user);
|
||||
|
||||
if ($result >= 0)
|
||||
{
|
||||
setEventMessage($langs->trans('RessourceLineSuccessfullyUpdated'));
|
||||
Header("Location: ".$_SERVER['PHP_SELF']."?element=".$element."&element_id=".$element_id);
|
||||
exit;
|
||||
}
|
||||
else {
|
||||
setEventMessage($object->error,'errors');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Delete a resource linked to an element
|
||||
if ($action == 'confirm_delete_linked_resource' && $user->rights->resource->delete && GETPOST('confirm') == 'yes')
|
||||
{
|
||||
$res = $object->fetch(GETPOST('id'));
|
||||
if($res)
|
||||
{
|
||||
$result = $object->delete_resource($lineid,$element);
|
||||
|
||||
if ($result >= 0)
|
||||
{
|
||||
setEventMessage($langs->trans('RessourceLineSuccessfullyDeleted'));
|
||||
Header("Location: ".$_SERVER['PHP_SELF']."?element=".$element."&element_id=".$element_id);
|
||||
exit;
|
||||
}
|
||||
else {
|
||||
setEventMessage($object->error,'errors');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessage($object->error,'errors');
|
||||
}
|
||||
}
|
||||
|
||||
$parameters=array('resource_id'=>resource_id);
|
||||
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||
|
||||
|
||||
|
||||
$parameters=array('resource_id'=>$resource_id);
|
||||
$reshook=$hookmanager->executeHooks('getElementResources',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||
|
||||
|
||||
@ -349,10 +349,11 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<tr><td>';
|
||||
$text = $langs->trans('MinPrice');
|
||||
print $form->textwithpicto($text, $langs->trans("PrecisionUnitIsLimitedToXDecimals", $conf->global->MAIN_MAX_DECIMALS_UNIT), 1, 1);
|
||||
print '</td><td>';
|
||||
if ($prodcustprice->price_base_type == 'TTC') {
|
||||
print '<td><input name="price_min" size="10" value="' . price($prodcustprice->price_min_ttc) . '">';
|
||||
print '<input name="price_min" size="10" value="' . price($prodcustprice->price_min_ttc) . '">';
|
||||
} else {
|
||||
print '<td><input name="price_min" size="10" value="' . price($prodcustprice->price_min) . '">';
|
||||
print '<input name="price_min" size="10" value="' . price($prodcustprice->price_min) . '">';
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
@ -586,6 +586,10 @@ div.login {
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
#securitycode {
|
||||
min-width: 60px;
|
||||
}
|
||||
|
||||
img.login, img.printer, img.entity {
|
||||
margin:2px 0px 0px 0px;
|
||||
text-decoration:none;
|
||||
|
||||
@ -551,6 +551,9 @@ form#login {
|
||||
background-image: -ms-linear-gradient(top, rgba(240,240,240,.3) 0%, rgba(192,192,192,.3) 100%);
|
||||
background-image: linear-gradient(top, rgba(240,240,240,.3) 0%, rgba(192,192,192,.3) 100%);
|
||||
}
|
||||
#securitycode {
|
||||
min-width: 60px;
|
||||
}
|
||||
#img_securitycode {
|
||||
border: 1px solid #DDDDDD;
|
||||
}
|
||||
|
||||
@ -585,6 +585,9 @@ form#login {
|
||||
background-image: -ms-linear-gradient(top, rgba(240,240,240,.3) 0%, rgba(192,192,192,.3) 100%);
|
||||
background-image: linear-gradient(top, rgba(240,240,240,.3) 0%, rgba(192,192,192,.3) 100%);
|
||||
}
|
||||
#securitycode {
|
||||
min-width: 60px;
|
||||
}
|
||||
#img_securitycode {
|
||||
border: 1px solid #DDDDDD;
|
||||
}
|
||||
|
||||
@ -657,6 +657,9 @@ form#login {
|
||||
background-image: -ms-linear-gradient(top, rgba(240,240,240,.3) 0%, rgba(192,192,192,.3) 100%);
|
||||
background-image: linear-gradient(top, rgba(240,240,240,.3) 0%, rgba(192,192,192,.3) 100%);
|
||||
}
|
||||
#securitycode {
|
||||
min-width: 60px;
|
||||
}
|
||||
#img_securitycode {
|
||||
border: 1px solid #DDDDDD;
|
||||
}
|
||||
|
||||
@ -867,6 +867,9 @@ div#login_left, div#login_right {
|
||||
table.login_table tr td table.none tr td {
|
||||
padding: 2px;
|
||||
}
|
||||
#securitycode {
|
||||
min-width: 60px;
|
||||
}
|
||||
#img_securitycode {
|
||||
border: 1px solid #DDDDDD;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user