Merge pull request #841 from FHenry/develop
fix [ bug #825 ] User first name not visible into users->perms
This commit is contained in:
commit
162ccf68b6
@ -49,6 +49,7 @@ For users:
|
|||||||
- New: [ task #814 ] Add extrafield feature into Project/project tasks module
|
- New: [ task #814 ] Add extrafield feature into Project/project tasks module
|
||||||
- New: [ task #770 ] Add ODT document generation for Projects module
|
- New: [ task #770 ] Add ODT document generation for Projects module
|
||||||
- New: [ task #741 ] Add intervention box
|
- New: [ task #741 ] Add intervention box
|
||||||
|
- New: [ task #826 ] Optionnal increase stock when deleting an invoice already validated
|
||||||
|
|
||||||
For translators:
|
For translators:
|
||||||
- Update language files.
|
- Update language files.
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
|
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
||||||
@ -67,6 +68,7 @@ if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_BILL'
|
|||||||
$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_BILL", '','chaine',0,'',$conf->entity);
|
$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_BILL", '','chaine',0,'',$conf->entity);
|
||||||
$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER", '','chaine',0,'',$conf->entity);
|
$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER", '','chaine',0,'',$conf->entity);
|
||||||
$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER", '','chaine',0,'',$conf->entity);
|
$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER", '','chaine',0,'',$conf->entity);
|
||||||
|
$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_DELETE_INVOICE", '','chaine',0,'',$conf->entity);
|
||||||
if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_BILL') $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_BILL", GETPOST('STOCK_CALCULATE_ON_SUPPLIER_BILL','alpha'),'chaine',0,'',$conf->entity);
|
if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_BILL') $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_BILL", GETPOST('STOCK_CALCULATE_ON_SUPPLIER_BILL','alpha'),'chaine',0,'',$conf->entity);
|
||||||
if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER') $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER", GETPOST('STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER','alpha'),'chaine',0,'',$conf->entity);
|
if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER') $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER", GETPOST('STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER','alpha'),'chaine',0,'',$conf->entity);
|
||||||
if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER') $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER", GETPOST('STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER','alpha'),'chaine',0,'',$conf->entity);
|
if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER') $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER", GETPOST('STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER','alpha'),'chaine',0,'',$conf->entity);
|
||||||
@ -239,6 +241,19 @@ if (! empty($conf->fournisseur->enabled))
|
|||||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||||
print "</form>\n</td>\n</tr>\n";
|
print "</form>\n</td>\n</tr>\n";
|
||||||
}
|
}
|
||||||
|
if (! empty($conf->facture->enabled))
|
||||||
|
{
|
||||||
|
$var=!$var;
|
||||||
|
print "<tr ".$bc[$var].">";
|
||||||
|
print '<td width="60%">'.$langs->trans("ReStockOnDeleteInvoice").'</td>';
|
||||||
|
print '<td width="160" align="right">';
|
||||||
|
print "<form method=\"post\" action=\"stock.php\">";
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_DELETE_INVOICE\">";
|
||||||
|
print $form->selectyesno("STOCK_CALCULATE_ON_DELETE_INVOICE",$conf->global->STOCK_CALCULATE_ON_DELETE_INVOICE,1);
|
||||||
|
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||||
|
print "</form>\n</td>\n</tr>\n";
|
||||||
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
|
|||||||
@ -156,7 +156,20 @@ else if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->fact
|
|||||||
{
|
{
|
||||||
$result = $object->fetch($id);
|
$result = $object->fetch($id);
|
||||||
$object->fetch_thirdparty();
|
$object->fetch_thirdparty();
|
||||||
$result = $object->delete();
|
|
||||||
|
$idwarehouse=GETPOST('idwarehouse');
|
||||||
|
|
||||||
|
$qualified_for_stock_change=0;
|
||||||
|
if (empty($conf->global->STOCK_SUPPORTS_SERVICES))
|
||||||
|
{
|
||||||
|
$qualified_for_stock_change=$object->hasProductsOrServices(2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$qualified_for_stock_change=$object->hasProductsOrServices(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = $object->delete(0,0,$idwarehouse);
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
header('Location: '.DOL_URL_ROOT.'/compta/facture/list.php');
|
header('Location: '.DOL_URL_ROOT.'/compta/facture/list.php');
|
||||||
@ -389,8 +402,18 @@ else if ($action == 'confirm_valid' && $confirm == 'yes' && $user->rights->factu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$qualified_for_stock_change=0;
|
||||||
|
if (empty($conf->global->STOCK_SUPPORTS_SERVICES))
|
||||||
|
{
|
||||||
|
$qualified_for_stock_change=$object->hasProductsOrServices(2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$qualified_for_stock_change=$object->hasProductsOrServices(1);
|
||||||
|
}
|
||||||
|
|
||||||
//Check for warehouse
|
//Check for warehouse
|
||||||
if ($object->type != 3 && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $object->hasProductsOrServices(1))
|
if ($object->type != 3 && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $qualified_for_stock_change)
|
||||||
{
|
{
|
||||||
if (! $idwarehouse || $idwarehouse == -1)
|
if (! $idwarehouse || $idwarehouse == -1)
|
||||||
{
|
{
|
||||||
@ -436,8 +459,18 @@ else if ($action == 'confirm_modif' && ((empty($conf->global->MAIN_USE_ADVANCED_
|
|||||||
$object->fetch($id);
|
$object->fetch($id);
|
||||||
$object->fetch_thirdparty();
|
$object->fetch_thirdparty();
|
||||||
|
|
||||||
|
$qualified_for_stock_change=0;
|
||||||
|
if (empty($conf->global->STOCK_SUPPORTS_SERVICES))
|
||||||
|
{
|
||||||
|
$qualified_for_stock_change=$object->hasProductsOrServices(2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$qualified_for_stock_change=$object->hasProductsOrServices(1);
|
||||||
|
}
|
||||||
|
|
||||||
// Check parameters
|
// Check parameters
|
||||||
if ($object->type != 3 && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $object->hasProductsOrServices(1))
|
if ($object->type != 3 && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $qualified_for_stock_change)
|
||||||
{
|
{
|
||||||
if (! $idwarehouse || $idwarehouse == -1)
|
if (! $idwarehouse || $idwarehouse == -1)
|
||||||
{
|
{
|
||||||
@ -809,11 +842,21 @@ else if ($action == 'add' && $user->rights->facture->creer)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// For compatibility
|
// For compatibility
|
||||||
if ($element == 'order') { $element = $subelement = 'commande'; }
|
if ($element == 'order') {
|
||||||
if ($element == 'propal') { $element = 'comm/propal'; $subelement = 'propal'; }
|
$element = $subelement = 'commande';
|
||||||
if ($element == 'contract') { $element = $subelement = 'contrat'; }
|
}
|
||||||
if ($element == 'inter') { $element = $subelement = 'ficheinter'; }
|
if ($element == 'propal') {
|
||||||
if ($element == 'shipping') { $element = $subelement = 'expedition'; }
|
$element = 'comm/propal'; $subelement = 'propal';
|
||||||
|
}
|
||||||
|
if ($element == 'contract') {
|
||||||
|
$element = $subelement = 'contrat';
|
||||||
|
}
|
||||||
|
if ($element == 'inter') {
|
||||||
|
$element = $subelement = 'ficheinter';
|
||||||
|
}
|
||||||
|
if ($element == 'shipping') {
|
||||||
|
$element = $subelement = 'expedition';
|
||||||
|
}
|
||||||
|
|
||||||
$object->origin = $_POST['origin'];
|
$object->origin = $_POST['origin'];
|
||||||
$object->origin_id = $_POST['originid'];
|
$object->origin_id = $_POST['originid'];
|
||||||
@ -1565,7 +1608,9 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
|
|||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
$interface=new Interfaces($db);
|
$interface=new Interfaces($db);
|
||||||
$result=$interface->run_triggers('BILL_SENTBYMAIL',$object,$user,$langs,$conf);
|
$result=$interface->run_triggers('BILL_SENTBYMAIL',$object,$user,$langs,$conf);
|
||||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
if ($result < 0) {
|
||||||
|
$error++; $this->errors=$interface->errors;
|
||||||
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
|
|
||||||
if ($error)
|
if ($error)
|
||||||
@ -1811,10 +1856,18 @@ if ($action == 'create')
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// For compatibility
|
// For compatibility
|
||||||
if ($element == 'order' || $element == 'commande') { $element = $subelement = 'commande'; }
|
if ($element == 'order' || $element == 'commande') {
|
||||||
if ($element == 'propal') { $element = 'comm/propal'; $subelement = 'propal'; }
|
$element = $subelement = 'commande';
|
||||||
if ($element == 'contract') { $element = $subelement = 'contrat'; }
|
}
|
||||||
if ($element == 'shipping') { $element = $subelement = 'expedition'; }
|
if ($element == 'propal') {
|
||||||
|
$element = 'comm/propal'; $subelement = 'propal';
|
||||||
|
}
|
||||||
|
if ($element == 'contract') {
|
||||||
|
$element = $subelement = 'contrat';
|
||||||
|
}
|
||||||
|
if ($element == 'shipping') {
|
||||||
|
$element = $subelement = 'expedition';
|
||||||
|
}
|
||||||
|
|
||||||
dol_include_once('/'.$element.'/class/'.$subelement.'.class.php');
|
dol_include_once('/'.$element.'/class/'.$subelement.'.class.php');
|
||||||
|
|
||||||
@ -2334,8 +2387,34 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
// Confirmation to delete invoice
|
// Confirmation to delete invoice
|
||||||
if ($action == 'delete')
|
if ($action == 'delete')
|
||||||
{
|
{
|
||||||
$text=$langs->trans('ConfirmDeleteBill');
|
$text=$langs->trans('ConfirmDeleteBill',$object->ref);
|
||||||
$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?facid='.$object->id,$langs->trans('DeleteBill'),$text,'confirm_delete','',0,1);
|
$formquestion=array();
|
||||||
|
|
||||||
|
$qualified_for_stock_change=0;
|
||||||
|
if (empty($conf->global->STOCK_SUPPORTS_SERVICES))
|
||||||
|
{
|
||||||
|
$qualified_for_stock_change=$object->hasProductsOrServices(2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$qualified_for_stock_change=$object->hasProductsOrServices(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($object->type != 3 && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $qualified_for_stock_change && $object->statut>=1)
|
||||||
|
{
|
||||||
|
$langs->load("stocks");
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
|
||||||
|
$formproduct=new FormProduct($db);
|
||||||
|
$label=$object->type==2?$langs->trans("SelectWarehouseForStockDecrease"):$langs->trans("SelectWarehouseForStockIncrease");
|
||||||
|
$formquestion=array(
|
||||||
|
//'text' => $langs->trans("ConfirmClone"),
|
||||||
|
//array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1),
|
||||||
|
//array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1),
|
||||||
|
array('type' => 'other', 'name' => 'idwarehouse', 'label' => $label, 'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse'),'idwarehouse','',1,0,0,$langs->trans("NoStockAction"))));
|
||||||
|
$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?facid='.$object->id,$langs->trans('DeleteBill'),$text,'confirm_delete',$formquestion,"yes",1);
|
||||||
|
}else {
|
||||||
|
$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?facid='.$object->id,$langs->trans('DeleteBill'),$text,'confirm_delete','','',1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Confirmation de la validation
|
// Confirmation de la validation
|
||||||
@ -2369,7 +2448,17 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
}
|
}
|
||||||
$formquestion=array();
|
$formquestion=array();
|
||||||
|
|
||||||
if ($object->type != 3 && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $object->hasProductsOrServices(1))
|
$qualified_for_stock_change=0;
|
||||||
|
if (empty($conf->global->STOCK_SUPPORTS_SERVICES))
|
||||||
|
{
|
||||||
|
$qualified_for_stock_change=$object->hasProductsOrServices(2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$qualified_for_stock_change=$object->hasProductsOrServices(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($object->type != 3 && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $qualified_for_stock_change)
|
||||||
{
|
{
|
||||||
$langs->load("stocks");
|
$langs->load("stocks");
|
||||||
require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
|
||||||
@ -2393,7 +2482,17 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
{
|
{
|
||||||
$text=$langs->trans('ConfirmUnvalidateBill',$object->ref);
|
$text=$langs->trans('ConfirmUnvalidateBill',$object->ref);
|
||||||
$formquestion=array();
|
$formquestion=array();
|
||||||
if ($object->type != 3 && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $object->hasProductsOrServices(1))
|
|
||||||
|
$qualified_for_stock_change=0;
|
||||||
|
if (empty($conf->global->STOCK_SUPPORTS_SERVICES))
|
||||||
|
{
|
||||||
|
$qualified_for_stock_change=$object->hasProductsOrServices(2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$qualified_for_stock_change=$object->hasProductsOrServices(1);
|
||||||
|
}
|
||||||
|
if ($object->type != 3 && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $qualified_for_stock_change)
|
||||||
{
|
{
|
||||||
$langs->load("stocks");
|
$langs->load("stocks");
|
||||||
require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
|
||||||
|
|||||||
@ -462,7 +462,9 @@ class Facture extends CommonInvoice
|
|||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
$interface=new Interfaces($this->db);
|
$interface=new Interfaces($this->db);
|
||||||
$result=$interface->run_triggers('BILL_CREATE',$this,$user,$langs,$conf);
|
$result=$interface->run_triggers('BILL_CREATE',$this,$user,$langs,$conf);
|
||||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
if ($result < 0) {
|
||||||
|
$error++; $this->errors=$interface->errors;
|
||||||
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
@ -633,7 +635,9 @@ class Facture extends CommonInvoice
|
|||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
$interface=new Interfaces($this->db);
|
$interface=new Interfaces($this->db);
|
||||||
$result=$interface->run_triggers('BILL_CLONE',$this,$user,$langs,$conf);
|
$result=$interface->run_triggers('BILL_CLONE',$this,$user,$langs,$conf);
|
||||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
if ($result < 0) {
|
||||||
|
$error++; $this->errors=$interface->errors;
|
||||||
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1073,7 +1077,9 @@ class Facture extends CommonInvoice
|
|||||||
|
|
||||||
dol_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG);
|
dol_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG);
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
|
if (! $resql) {
|
||||||
|
$error++; $this->errors[]="Error ".$this->db->lasterror();
|
||||||
|
}
|
||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
@ -1083,7 +1089,9 @@ class Facture extends CommonInvoice
|
|||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
$interface=new Interfaces($this->db);
|
$interface=new Interfaces($this->db);
|
||||||
$result=$interface->run_triggers('BILL_MODIFY',$this,$user,$langs,$conf);
|
$result=$interface->run_triggers('BILL_MODIFY',$this,$user,$langs,$conf);
|
||||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
if ($result < 0) {
|
||||||
|
$error++; $this->errors=$interface->errors;
|
||||||
|
}
|
||||||
// End call triggers
|
// End call triggers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1220,14 +1228,15 @@ class Facture extends CommonInvoice
|
|||||||
*
|
*
|
||||||
* @param int $rowid Id of invoice to delete. If empty, we delete current instance of invoice
|
* @param int $rowid Id of invoice to delete. If empty, we delete current instance of invoice
|
||||||
* @param int $notrigger 1=Does not execute triggers, 0= execute triggers
|
* @param int $notrigger 1=Does not execute triggers, 0= execute triggers
|
||||||
|
* @param int $idwarehouse Id warehouse to use for stock change.
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function delete($rowid=0, $notrigger=0)
|
function delete($rowid=0, $notrigger=0, $idwarehouse=-1)
|
||||||
{
|
{
|
||||||
global $user,$langs,$conf;
|
global $user,$langs,$conf;
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
|
||||||
if (! $rowid) $rowid=$this->id;
|
if (empty($rowid)) $rowid=$this->id;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::delete rowid=".$rowid, LOG_DEBUG);
|
dol_syslog(get_class($this)."::delete rowid=".$rowid, LOG_DEBUG);
|
||||||
|
|
||||||
@ -1288,6 +1297,26 @@ class Facture extends CommonInvoice
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If we decrament stock on invoice validation, we increment
|
||||||
|
if ($this->type != 3 && $result >= 0 && ! empty($conf->stock->enabled) && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $idwarehouse!=-1)
|
||||||
|
{
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php';
|
||||||
|
$langs->load("agenda");
|
||||||
|
|
||||||
|
$num=count($this->lines);
|
||||||
|
for ($i = 0; $i < $num; $i++)
|
||||||
|
{
|
||||||
|
if ($this->lines[$i]->fk_product > 0)
|
||||||
|
{
|
||||||
|
$mouvP = new MouvementStock($this->db);
|
||||||
|
// We decrease stock for product
|
||||||
|
if ($this->type == 2) $result=$mouvP->livraison($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, $this->lines[$i]->subprice, $langs->trans("InvoiceDeleteDolibarr",$this->ref));
|
||||||
|
else $result=$mouvP->reception($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, 0, $langs->trans("InvoiceDeleteDolibarr",$this->ref)); // we use 0 for price, to not change the weighted average value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Delete invoice line
|
// Delete invoice line
|
||||||
$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'facturedet WHERE fk_facture = '.$rowid;
|
$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'facturedet WHERE fk_facture = '.$rowid;
|
||||||
if ($this->db->query($sql) && $this->delete_linked_contact())
|
if ($this->db->query($sql) && $this->delete_linked_contact())
|
||||||
@ -1453,7 +1482,9 @@ class Facture extends CommonInvoice
|
|||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
$interface=new Interfaces($this->db);
|
$interface=new Interfaces($this->db);
|
||||||
$result=$interface->run_triggers('BILL_PAYED',$this,$user,$langs,$conf);
|
$result=$interface->run_triggers('BILL_PAYED',$this,$user,$langs,$conf);
|
||||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
if ($result < 0) {
|
||||||
|
$error++; $this->errors=$interface->errors;
|
||||||
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1508,7 +1539,9 @@ class Facture extends CommonInvoice
|
|||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
$interface=new Interfaces($this->db);
|
$interface=new Interfaces($this->db);
|
||||||
$result=$interface->run_triggers('BILL_UNPAYED',$this,$user,$langs,$conf);
|
$result=$interface->run_triggers('BILL_UNPAYED',$this,$user,$langs,$conf);
|
||||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
if ($result < 0) {
|
||||||
|
$error++; $this->errors=$interface->errors;
|
||||||
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1573,7 +1606,9 @@ class Facture extends CommonInvoice
|
|||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
$interface=new Interfaces($this->db);
|
$interface=new Interfaces($this->db);
|
||||||
$result=$interface->run_triggers('BILL_CANCEL',$this,$user,$langs,$conf);
|
$result=$interface->run_triggers('BILL_CANCEL',$this,$user,$langs,$conf);
|
||||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
if ($result < 0) {
|
||||||
|
$error++; $this->errors=$interface->errors;
|
||||||
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
|
|
||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
@ -1742,7 +1777,9 @@ class Facture extends CommonInvoice
|
|||||||
// We decrease stock for product
|
// We decrease stock for product
|
||||||
if ($this->type == 2) $result=$mouvP->reception($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, $this->lines[$i]->subprice, $langs->trans("InvoiceValidatedInDolibarr",$num));
|
if ($this->type == 2) $result=$mouvP->reception($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, $this->lines[$i]->subprice, $langs->trans("InvoiceValidatedInDolibarr",$num));
|
||||||
else $result=$mouvP->livraison($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, $this->lines[$i]->subprice, $langs->trans("InvoiceValidatedInDolibarr",$num));
|
else $result=$mouvP->livraison($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, $this->lines[$i]->subprice, $langs->trans("InvoiceValidatedInDolibarr",$num));
|
||||||
if ($result < 0) { $error++; }
|
if ($result < 0) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1794,7 +1831,9 @@ class Facture extends CommonInvoice
|
|||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
$interface=new Interfaces($this->db);
|
$interface=new Interfaces($this->db);
|
||||||
$result=$interface->run_triggers('BILL_VALIDATE',$this,$user,$langs,$conf);
|
$result=$interface->run_triggers('BILL_VALIDATE',$this,$user,$langs,$conf);
|
||||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
if ($result < 0) {
|
||||||
|
$error++; $this->errors=$interface->errors;
|
||||||
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3431,7 +3470,9 @@ class FactureLigne
|
|||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
$interface=new Interfaces($this->db);
|
$interface=new Interfaces($this->db);
|
||||||
$result = $interface->run_triggers('LINEBILL_INSERT',$this,$user,$langs,$conf);
|
$result = $interface->run_triggers('LINEBILL_INSERT',$this,$user,$langs,$conf);
|
||||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
if ($result < 0) {
|
||||||
|
$error++; $this->errors=$interface->errors;
|
||||||
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3512,7 +3553,7 @@ class FactureLigne
|
|||||||
$sql.= ",total_localtax1=".price2num($this->total_localtax1)."";
|
$sql.= ",total_localtax1=".price2num($this->total_localtax1)."";
|
||||||
$sql.= ",total_localtax2=".price2num($this->total_localtax2)."";
|
$sql.= ",total_localtax2=".price2num($this->total_localtax2)."";
|
||||||
}
|
}
|
||||||
$sql.= " , fk_product_fournisseur_price='".$this->fk_fournprice."'";
|
$sql.= " , fk_product_fournisseur_price=".(! empty($this->fk_fournprice)?"'".$this->db->escape($this->fk_fournprice)."'":"null");
|
||||||
$sql.= " , buy_price_ht='".price2num($this->pa_ht)."'";
|
$sql.= " , buy_price_ht='".price2num($this->pa_ht)."'";
|
||||||
$sql.= ",fk_parent_line=".($this->fk_parent_line>0?$this->fk_parent_line:"null");
|
$sql.= ",fk_parent_line=".($this->fk_parent_line>0?$this->fk_parent_line:"null");
|
||||||
if (! empty($this->rang)) $sql.= ", rang=".$this->rang;
|
if (! empty($this->rang)) $sql.= ", rang=".$this->rang;
|
||||||
@ -3528,7 +3569,9 @@ class FactureLigne
|
|||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
$interface=new Interfaces($this->db);
|
$interface=new Interfaces($this->db);
|
||||||
$result = $interface->run_triggers('LINEBILL_UPDATE',$this,$user,$langs,$conf);
|
$result = $interface->run_triggers('LINEBILL_UPDATE',$this,$user,$langs,$conf);
|
||||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
if ($result < 0) {
|
||||||
|
$error++; $this->errors=$interface->errors;
|
||||||
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
}
|
}
|
||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
@ -3564,7 +3607,9 @@ class FactureLigne
|
|||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
$interface=new Interfaces($this->db);
|
$interface=new Interfaces($this->db);
|
||||||
$result = $interface->run_triggers('LINEBILL_DELETE',$this,$user,$langs,$conf);
|
$result = $interface->run_triggers('LINEBILL_DELETE',$this,$user,$langs,$conf);
|
||||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
if ($result < 0) {
|
||||||
|
$error++; $this->errors=$interface->errors;
|
||||||
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
|
|
||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
|
|||||||
@ -2310,7 +2310,7 @@ abstract class CommonObject
|
|||||||
/**
|
/**
|
||||||
* Function to say how many lines object contains
|
* Function to say how many lines object contains
|
||||||
*
|
*
|
||||||
* @param int $predefined -1=All, 0=Count free product/service only, 1=Count predefined product/service only
|
* @param int $predefined -1=All, 0=Count free product/service only, 1=Count predefined product/service only, 2=Count predefined product, 3=Count predefined service
|
||||||
* @return int <0 if KO, 0 if no predefined products, nb of lines with predefined products if found
|
* @return int <0 if KO, 0 if no predefined products, nb of lines with predefined products if found
|
||||||
*/
|
*/
|
||||||
function hasProductsOrServices($predefined=-1)
|
function hasProductsOrServices($predefined=-1)
|
||||||
@ -2323,6 +2323,8 @@ abstract class CommonObject
|
|||||||
if ($predefined == -1) $qualified=1;
|
if ($predefined == -1) $qualified=1;
|
||||||
if ($predefined == 1 && $val->fk_product > 0) $qualified=1;
|
if ($predefined == 1 && $val->fk_product > 0) $qualified=1;
|
||||||
if ($predefined == 0 && $val->fk_product <= 0) $qualified=1;
|
if ($predefined == 0 && $val->fk_product <= 0) $qualified=1;
|
||||||
|
if ($predefined == 2 && $val->fk_product > 0 && $val->product_type==0) $qualified=1;
|
||||||
|
if ($predefined == 3 && $val->fk_product > 0 && $val->product_type==1) $qualified=1;
|
||||||
if ($qualified) $nb++;
|
if ($qualified) $nb++;
|
||||||
}
|
}
|
||||||
dol_syslog(get_class($this).'::hasProductsOrServices we found '.$nb.' qualified lines of products/servcies');
|
dol_syslog(get_class($this).'::hasProductsOrServices we found '.$nb.' qualified lines of products/servcies');
|
||||||
|
|||||||
@ -40,6 +40,7 @@ ActionsEvents= Events for which Dolibarr will create an action in agenda automat
|
|||||||
PropalValidatedInDolibarr= Proposal %s validated
|
PropalValidatedInDolibarr= Proposal %s validated
|
||||||
InvoiceValidatedInDolibarr= Invoice %s validated
|
InvoiceValidatedInDolibarr= Invoice %s validated
|
||||||
InvoiceBackToDraftInDolibarr=Invoice %s go back to draft status
|
InvoiceBackToDraftInDolibarr=Invoice %s go back to draft status
|
||||||
|
InvoiceDeleteDolibarr=Invoice %s deleted
|
||||||
OrderValidatedInDolibarr= Order %s validated
|
OrderValidatedInDolibarr= Order %s validated
|
||||||
OrderApprovedInDolibarr=Order %s approved
|
OrderApprovedInDolibarr=Order %s approved
|
||||||
OrderBackToDraftInDolibarr=Order %s go back to draft status
|
OrderBackToDraftInDolibarr=Order %s go back to draft status
|
||||||
|
|||||||
@ -55,6 +55,7 @@ DeStockOnShipment=Decrease real stocks on shipment validation
|
|||||||
ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation
|
ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation
|
||||||
ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation
|
ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation
|
||||||
ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving
|
ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving
|
||||||
|
ReStockOnDeleteInvoice=Increase real stocks on invoice deletion
|
||||||
OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses.
|
OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses.
|
||||||
StockDiffPhysicTeoric=Reason for difference stock physical and theoretical
|
StockDiffPhysicTeoric=Reason for difference stock physical and theoretical
|
||||||
NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required.
|
NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required.
|
||||||
@ -86,4 +87,5 @@ PersonalStock=Personal stock %s
|
|||||||
ThisWarehouseIsPersonalStock=This warehouse represents personal stock of %s %s
|
ThisWarehouseIsPersonalStock=This warehouse represents personal stock of %s %s
|
||||||
SelectWarehouseForStockDecrease=Choose warehouse to use for stock decrease
|
SelectWarehouseForStockDecrease=Choose warehouse to use for stock decrease
|
||||||
SelectWarehouseForStockIncrease=Choose warehouse to use for stock increase
|
SelectWarehouseForStockIncrease=Choose warehouse to use for stock increase
|
||||||
|
NoStockAction=No stock action
|
||||||
LastWaitingSupplierOrders=Orders waiting for receptions
|
LastWaitingSupplierOrders=Orders waiting for receptions
|
||||||
@ -41,6 +41,7 @@ ActionsEvents=Eventos para que Dolibarr cree una acción de forma automática
|
|||||||
PropalValidatedInDolibarr=Presupuesto %s validado
|
PropalValidatedInDolibarr=Presupuesto %s validado
|
||||||
InvoiceValidatedInDolibarr=Factura %s validada
|
InvoiceValidatedInDolibarr=Factura %s validada
|
||||||
InvoiceBackToDraftInDolibarr=Factura %s devuelta a borrador
|
InvoiceBackToDraftInDolibarr=Factura %s devuelta a borrador
|
||||||
|
InvoiceDeleteDolibarr=Factura %s eliminada
|
||||||
OrderValidatedInDolibarr=Pedido %s validado
|
OrderValidatedInDolibarr=Pedido %s validado
|
||||||
OrderApprovedInDolibarr=Pedido %s aprobado
|
OrderApprovedInDolibarr=Pedido %s aprobado
|
||||||
OrderBackToDraftInDolibarr=Pedido %s devuelto a borrador
|
OrderBackToDraftInDolibarr=Pedido %s devuelto a borrador
|
||||||
|
|||||||
@ -54,6 +54,7 @@ DeStockOnShipment=Decrementar los stocks físicos sobre los envíos
|
|||||||
ReStockOnBill=Incrementar los stocks físicos sobre las facturas/abonos de proveedores
|
ReStockOnBill=Incrementar los stocks físicos sobre las facturas/abonos de proveedores
|
||||||
ReStockOnValidateOrder=Incrementar los stocks físicos sobre los pedidos a proveedores
|
ReStockOnValidateOrder=Incrementar los stocks físicos sobre los pedidos a proveedores
|
||||||
ReStockOnDispatchOrder=Incrementa los stocks físicos en el desglose manual de la recepción de los pedidos a proveedores en los almacenes
|
ReStockOnDispatchOrder=Incrementa los stocks físicos en el desglose manual de la recepción de los pedidos a proveedores en los almacenes
|
||||||
|
ReStockOnDeleteInvoice=Incrementa los stocks físicos en la eliminación de facturas
|
||||||
OrderStatusNotReadyToDispatch=El pedido aún no está o no tiene un estado que permita un desglose de stock.
|
OrderStatusNotReadyToDispatch=El pedido aún no está o no tiene un estado que permita un desglose de stock.
|
||||||
StockDiffPhysicTeoric=Motivo de la diferencia entre valores físicos y teóricos
|
StockDiffPhysicTeoric=Motivo de la diferencia entre valores físicos y teóricos
|
||||||
NoPredefinedProductToDispatch=No hay productos predefinidos en este objeto. Por lo tanto no se puede realizar un desglose de stock.
|
NoPredefinedProductToDispatch=No hay productos predefinidos en este objeto. Por lo tanto no se puede realizar un desglose de stock.
|
||||||
@ -85,4 +86,5 @@ PersonalStock=Stock personal %s
|
|||||||
ThisWarehouseIsPersonalStock=Este almacén representa el stock personal de %s %s
|
ThisWarehouseIsPersonalStock=Este almacén representa el stock personal de %s %s
|
||||||
SelectWarehouseForStockDecrease=Seleccione el almacén a usar en el decremento de stock
|
SelectWarehouseForStockDecrease=Seleccione el almacén a usar en el decremento de stock
|
||||||
SelectWarehouseForStockIncrease=Seleccione el almacén a usar en el incremento de stock
|
SelectWarehouseForStockIncrease=Seleccione el almacén a usar en el incremento de stock
|
||||||
|
NoStockAction=Sin acciones sobre el stock
|
||||||
LastWaitingSupplierOrders=Pedidos en espera de recepción
|
LastWaitingSupplierOrders=Pedidos en espera de recepción
|
||||||
@ -40,6 +40,7 @@ ActionsEvents=Événements pour lesquels Dolibarr doit créer une action dans l'
|
|||||||
PropalValidatedInDolibarr=Proposition %s validée
|
PropalValidatedInDolibarr=Proposition %s validée
|
||||||
InvoiceValidatedInDolibarr=Facture %s validée
|
InvoiceValidatedInDolibarr=Facture %s validée
|
||||||
InvoiceBackToDraftInDolibarr=Facture %s repassée en brouillon
|
InvoiceBackToDraftInDolibarr=Facture %s repassée en brouillon
|
||||||
|
InvoiceDeleteDolibarr=Facture %s supprimée
|
||||||
OrderValidatedInDolibarr=Commande %s validée
|
OrderValidatedInDolibarr=Commande %s validée
|
||||||
OrderApprovedInDolibarr=Commande %s approuvée
|
OrderApprovedInDolibarr=Commande %s approuvée
|
||||||
OrderBackToDraftInDolibarr=Commande %s repassée en brouillon
|
OrderBackToDraftInDolibarr=Commande %s repassée en brouillon
|
||||||
|
|||||||
@ -55,6 +55,7 @@ DeStockOnShipment=Décrémente les stocks physiques sur validation des expéditi
|
|||||||
ReStockOnBill=Incrémente les stocks physiques sur validation des factures/avoirs fournisseurs
|
ReStockOnBill=Incrémente les stocks physiques sur validation des factures/avoirs fournisseurs
|
||||||
ReStockOnValidateOrder=Incrémente les stocks physiques sur approbation des commandes fournisseurs
|
ReStockOnValidateOrder=Incrémente les stocks physiques sur approbation des commandes fournisseurs
|
||||||
ReStockOnDispatchOrder=Incrémente les stocks physiques sur ventilation manuelle de la réception des commandes fournisseurs dans les entrepôts
|
ReStockOnDispatchOrder=Incrémente les stocks physiques sur ventilation manuelle de la réception des commandes fournisseurs dans les entrepôts
|
||||||
|
ReStockOnDeleteInvoice=Incrémente les stocks physiques sur la suppression des factures
|
||||||
OrderStatusNotReadyToDispatch=La commande n'a pas encore ou n'a plus un statut permettant une ventilation en stock.
|
OrderStatusNotReadyToDispatch=La commande n'a pas encore ou n'a plus un statut permettant une ventilation en stock.
|
||||||
StockDiffPhysicTeoric=Raison écart stock physique-théorique
|
StockDiffPhysicTeoric=Raison écart stock physique-théorique
|
||||||
NoPredefinedProductToDispatch=Pas de produits prédéfinis dans cet objet. Aucune ventilation en stock n'est donc à faire.
|
NoPredefinedProductToDispatch=Pas de produits prédéfinis dans cet objet. Aucune ventilation en stock n'est donc à faire.
|
||||||
@ -86,4 +87,5 @@ PersonalStock=Stock personnel %s
|
|||||||
ThisWarehouseIsPersonalStock=Cet entrepôt représente le stock personnel de %s %s
|
ThisWarehouseIsPersonalStock=Cet entrepôt représente le stock personnel de %s %s
|
||||||
SelectWarehouseForStockDecrease=Sélectionner l'entrepôt à utiliser pour la décrémentation du stock
|
SelectWarehouseForStockDecrease=Sélectionner l'entrepôt à utiliser pour la décrémentation du stock
|
||||||
SelectWarehouseForStockIncrease=Sélectionner l'entrepôt à utiliser pour l'incrémentation du stock
|
SelectWarehouseForStockIncrease=Sélectionner l'entrepôt à utiliser pour l'incrémentation du stock
|
||||||
|
NoStockAction=Pas d'action sur l'entrepot
|
||||||
LastWaitingSupplierOrders=Commandes en attente de réception
|
LastWaitingSupplierOrders=Commandes en attente de réception
|
||||||
@ -109,9 +109,10 @@ class FormProduct
|
|||||||
* @param int $empty 1=Can be empty, 0 if not
|
* @param int $empty 1=Can be empty, 0 if not
|
||||||
* @param int $disabled 1=Select is disabled
|
* @param int $disabled 1=Select is disabled
|
||||||
* @param int $fk_product Add quantity of stock in label for product with id fk_product. Nothing if 0.
|
* @param int $fk_product Add quantity of stock in label for product with id fk_product. Nothing if 0.
|
||||||
|
* @param string $empty_label Empty label if needed (only if $empty=1)
|
||||||
* @return string HTML select
|
* @return string HTML select
|
||||||
*/
|
*/
|
||||||
function selectWarehouses($selected='',$htmlname='idwarehouse',$filtertype='',$empty=0,$disabled=0,$fk_product=0)
|
function selectWarehouses($selected='',$htmlname='idwarehouse',$filtertype='',$empty=0,$disabled=0,$fk_product=0,$empty_label='')
|
||||||
{
|
{
|
||||||
global $langs,$user;
|
global $langs,$user;
|
||||||
|
|
||||||
@ -120,7 +121,7 @@ class FormProduct
|
|||||||
$this->loadWarehouses($fk_product);
|
$this->loadWarehouses($fk_product);
|
||||||
|
|
||||||
$out='<select class="flat"'.($disabled?' disabled="disabled"':'').' id="'.$htmlname.'" name="'.($htmlname.($disabled?'_disabled':'')).'">';
|
$out='<select class="flat"'.($disabled?' disabled="disabled"':'').' id="'.$htmlname.'" name="'.($htmlname.($disabled?'_disabled':'')).'">';
|
||||||
if ($empty) $out.='<option value="-1"> </option>';
|
if ($empty) $out.='<option value="-1">'.($empty_label?$empty_label:' ').'</option>';
|
||||||
foreach($this->cache_warehouses as $id => $arraytypes)
|
foreach($this->cache_warehouses as $id => $arraytypes)
|
||||||
{
|
{
|
||||||
$out.='<option value="'.$id.'"';
|
$out.='<option value="'.$id.'"';
|
||||||
|
|||||||
@ -260,7 +260,7 @@ print '</tr>'."\n";
|
|||||||
|
|
||||||
// Lastname
|
// Lastname
|
||||||
print '<tr><td width="25%" valign="top">'.$langs->trans("Lastname").'</td>';
|
print '<tr><td width="25%" valign="top">'.$langs->trans("Lastname").'</td>';
|
||||||
print '<td>'.$fuser->lastName.'</td>';
|
print '<td>'.$fuser->lastname.'</td>';
|
||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
|
|
||||||
// Firstname
|
// Firstname
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user