[Qual] Reviewed commonobject
Added missing fields Removed unused variables Documented methods parameters Checked return points
This commit is contained in:
parent
8eb4a208ce
commit
5ebc84e999
@ -41,6 +41,11 @@ abstract class CommonObject
|
||||
*/
|
||||
public $db;
|
||||
|
||||
/**
|
||||
* @var int The object identifier
|
||||
*/
|
||||
public $id;
|
||||
|
||||
/**
|
||||
* @var string Error string
|
||||
* @deprecated Use instead the array of error strings
|
||||
@ -92,33 +97,245 @@ abstract class CommonObject
|
||||
*/
|
||||
public $canvas;
|
||||
|
||||
|
||||
public $name;
|
||||
public $lastname;
|
||||
public $firstname;
|
||||
public $civility_id;
|
||||
/**
|
||||
* @deprecated
|
||||
* @see thirdparty
|
||||
* @var Project The related project
|
||||
* @see fetch_projet()
|
||||
*/
|
||||
public $client;
|
||||
public $project;
|
||||
/**
|
||||
* @var Societe
|
||||
* @var int The related project ID
|
||||
* @see setProject(), project
|
||||
*/
|
||||
public $thirdparty;
|
||||
public $fk_project;
|
||||
/**
|
||||
* @deprecated
|
||||
* @see project
|
||||
*/
|
||||
public $projet;
|
||||
|
||||
/**
|
||||
* @var Project
|
||||
* @var Contact a related contact
|
||||
* @see fetch_contact()
|
||||
*/
|
||||
public $project;
|
||||
public $contact;
|
||||
/**
|
||||
* @var int The related contact ID
|
||||
* @see fetch_contact()
|
||||
*/
|
||||
public $contact_id;
|
||||
|
||||
/**
|
||||
* @var Societe A related thirdparty
|
||||
* @see fetch_thirdparty()
|
||||
*/
|
||||
public $thirdparty;
|
||||
/**
|
||||
* @deprecated
|
||||
* @see thirdparty
|
||||
*/
|
||||
public $client;
|
||||
|
||||
/**
|
||||
* @var User A related user
|
||||
* @see fetch_user()
|
||||
*/
|
||||
public $user;
|
||||
|
||||
/**
|
||||
* @var CommonObject An originating object?
|
||||
* @see fetch_origin()
|
||||
*/
|
||||
public $origin;
|
||||
/**
|
||||
* @var int The originating object?
|
||||
* @see fetch_origin(), origin
|
||||
*/
|
||||
public $origin_id;
|
||||
|
||||
/**
|
||||
* @var string The object's reference
|
||||
*/
|
||||
public $ref;
|
||||
/**
|
||||
* @var string The object's previous reference
|
||||
*/
|
||||
public $ref_previous;
|
||||
/**
|
||||
* @var string The object's next reference
|
||||
*/
|
||||
public $ref_next;
|
||||
/**
|
||||
* @var string An external reference for the object
|
||||
*/
|
||||
public $ref_ext;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
public $element;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
public $table_element;
|
||||
/**
|
||||
* @var
|
||||
*/
|
||||
public $table_element_line;
|
||||
|
||||
/**
|
||||
* @var int The object's status
|
||||
* @see setStatut()
|
||||
*/
|
||||
public $statut;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
* @see getFullAddress()
|
||||
*/
|
||||
public $country;
|
||||
/**
|
||||
* @var int
|
||||
* @see getFullAddress(), country
|
||||
*/
|
||||
public $country_id;
|
||||
/**
|
||||
* @var string
|
||||
* @see getFullAddress(), isInEEC(), country
|
||||
*/
|
||||
public $country_code;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
* @see fetch_barcode()
|
||||
*/
|
||||
public $barcode_type;
|
||||
/**
|
||||
* @var string
|
||||
* @see fetch_barcode(), barcode_type
|
||||
*/
|
||||
public $barcode_type_code;
|
||||
/**
|
||||
* @var string
|
||||
* @see fetch_barcode(), barcode_type
|
||||
*/
|
||||
public $barcode_type_label;
|
||||
/**
|
||||
* @var string
|
||||
* @see fetch_barcode(), barcode_type
|
||||
*/
|
||||
public $barcode_type_coder;
|
||||
|
||||
/**
|
||||
* @var int Payment method ID?
|
||||
* @see setPaymentMethods()
|
||||
*/
|
||||
public $mode_reglement_id;
|
||||
|
||||
/**
|
||||
* @var string Payment terms ID
|
||||
* @see setPaymentTerms()
|
||||
*/
|
||||
public $cond_reglement_id;
|
||||
/**
|
||||
* @deprecated
|
||||
* @see cond_reglement_id;
|
||||
*/
|
||||
public $cond_reglement;
|
||||
|
||||
/**
|
||||
* @var int Delivery address ID
|
||||
* @see setDeliveryAddress()
|
||||
*/
|
||||
public $fk_delivery_address;
|
||||
|
||||
/**
|
||||
* @var int Shipping method ID
|
||||
* @see setShippingMethod()
|
||||
*/
|
||||
public $shipping_method_id;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
* @see SetDocModel()
|
||||
*/
|
||||
public $modelpdf;
|
||||
|
||||
/**
|
||||
* @var int Bank account ID
|
||||
* @see SetBankAccount()
|
||||
*/
|
||||
public $fk_account;
|
||||
|
||||
/**
|
||||
* @var string Public note
|
||||
* @see update_note()
|
||||
*/
|
||||
public $note_public;
|
||||
/**
|
||||
* @var string Private note
|
||||
* @see update_note()
|
||||
*/
|
||||
public $note_private;
|
||||
/**
|
||||
* @deprecated
|
||||
* @see note_public
|
||||
*/
|
||||
public $note;
|
||||
|
||||
/**
|
||||
* @var float
|
||||
* @see update_price()
|
||||
*/
|
||||
public $total_ht;
|
||||
/**
|
||||
* @var float
|
||||
* @see update_price()
|
||||
*/
|
||||
public $total_tva;
|
||||
/**
|
||||
* @var float
|
||||
* @see update_price()
|
||||
*/
|
||||
public $total_localtax1;
|
||||
/**
|
||||
* @var float
|
||||
* @see update_price()
|
||||
*/
|
||||
public $total_localtax2;
|
||||
/**
|
||||
* @var float
|
||||
* @see update_price()
|
||||
*/
|
||||
public $total_ttc;
|
||||
|
||||
/**
|
||||
* @var CommonObjectLine[]
|
||||
*/
|
||||
public $lines;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
* @see setIncoterms()
|
||||
*/
|
||||
public $fk_incoterms;
|
||||
/**
|
||||
* @var string
|
||||
* @see SetIncoterms()
|
||||
*/
|
||||
public $libelle_incoterms;
|
||||
/**
|
||||
* @var string
|
||||
* @see display_incoterms()
|
||||
*/
|
||||
public $location_incoterms;
|
||||
|
||||
public $name;
|
||||
public $lastname;
|
||||
public $firstname;
|
||||
public $civility_id;
|
||||
|
||||
// No constructor as it is an abstract class
|
||||
|
||||
|
||||
/**
|
||||
* Check an object id/ref exists
|
||||
* If you don't need/want to instantiate object and just need to know if object exists, use this method instead of fetch
|
||||
@ -178,8 +395,6 @@ abstract class CommonObject
|
||||
*/
|
||||
function getFullName($langs,$option=0,$nameorder=-1,$maxlen=0)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
//print "lastname=".$this->lastname." name=".$this->name." nom=".$this->nom."<br>\n";
|
||||
$lastname=$this->lastname;
|
||||
$firstname=$this->firstname;
|
||||
@ -223,13 +438,13 @@ abstract class CommonObject
|
||||
*
|
||||
* @param int $fk_socpeople Id of thirdparty contact (if source = 'external') or id of user (if souce = 'internal') to link
|
||||
* @param int $type_contact Type of contact (code or id). Must be if or code found into table llx_c_type_contact. For example: SALESREPFOLL
|
||||
* @param int $source external=Contact extern (llx_socpeople), internal=Contact intern (llx_user)
|
||||
* @param string $source external=Contact extern (llx_socpeople), internal=Contact intern (llx_user)
|
||||
* @param int $notrigger Disable all triggers
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function add_contact($fk_socpeople, $type_contact, $source='external',$notrigger=0)
|
||||
{
|
||||
global $user,$conf,$langs;
|
||||
global $user,$langs;
|
||||
|
||||
|
||||
dol_syslog(get_class($this)."::add_contact $fk_socpeople, $type_contact, $source");
|
||||
@ -321,8 +536,6 @@ abstract class CommonObject
|
||||
*/
|
||||
function copy_linked_contact($objFrom, $source='internal')
|
||||
{
|
||||
global $user,$langs,$conf;
|
||||
|
||||
$contacts = $objFrom->liste_contact(-1, $source);
|
||||
foreach($contacts as $contact)
|
||||
{
|
||||
@ -373,7 +586,7 @@ abstract class CommonObject
|
||||
*/
|
||||
function delete_contact($rowid, $notrigger=0)
|
||||
{
|
||||
global $user,$langs,$conf;
|
||||
global $user;
|
||||
|
||||
|
||||
$this->db->begin();
|
||||
@ -545,7 +758,7 @@ abstract class CommonObject
|
||||
* Return array with list of possible values for type of contacts
|
||||
*
|
||||
* @param string $source 'internal', 'external' or 'all'
|
||||
* @param string $order Sort order by 'code' or 'rowid'
|
||||
* @param string $order Sort order by : 'code' or 'rowid'
|
||||
* @param int $option 0=Return array id->label, 1=Return array code->label
|
||||
* @param int $activeonly 0=all status of contact, 1=only the active
|
||||
* @param string $code Type of contact (Example: 'CUSTOMER', 'SERVICE')
|
||||
@ -769,7 +982,7 @@ abstract class CommonObject
|
||||
}
|
||||
}
|
||||
}
|
||||
else return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -891,10 +1104,8 @@ abstract class CommonObject
|
||||
* @param User|string $user Update last update fields also if user object provided
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function setValueFrom($field, $value, $table='', $id='', $format='', $id_field='', $user='')
|
||||
function setValueFrom($field, $value, $table='', $id=null, $format='', $id_field='', $user='')
|
||||
{
|
||||
global $conf;
|
||||
|
||||
if (empty($table)) $table=$this->table_element;
|
||||
if (empty($id)) $id=$this->id;
|
||||
if (empty($format)) $format='text';
|
||||
@ -933,7 +1144,7 @@ abstract class CommonObject
|
||||
*/
|
||||
function load_previous_next_ref($filter,$fieldid,$nodbprefix=0)
|
||||
{
|
||||
global $conf, $user;
|
||||
global $user;
|
||||
|
||||
if (! $this->table_element)
|
||||
{
|
||||
@ -1253,6 +1464,8 @@ abstract class CommonObject
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Move line related operations to CommonObjectLine?
|
||||
|
||||
/**
|
||||
* Save a new position (field rang) for details lines.
|
||||
* You can choose to set position for lines with already a position or lines without any position defined.
|
||||
@ -1918,7 +2131,7 @@ abstract class CommonObject
|
||||
* @return void
|
||||
* @see add_object_linked, updateObjectLinked, deleteObjectLinked
|
||||
*/
|
||||
function fetchObjectLinked($sourceid='',$sourcetype='',$targetid='',$targettype='',$clause='OR',$alsosametype=1)
|
||||
function fetchObjectLinked($sourceid=null,$sourcetype='',$targetid=null,$targettype='',$clause='OR',$alsosametype=1)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
@ -1948,7 +2161,7 @@ abstract class CommonObject
|
||||
|
||||
if (empty($sourceid) && empty($targetid))
|
||||
{
|
||||
dol_syslog('Bad usage of function. No source nor target id defined (nor as parameter nor as object id)', LOG_ERROR);
|
||||
dol_syslog('Bad usage of function. No source nor target id defined (nor as parameter nor as object id)', LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -2082,7 +2295,7 @@ abstract class CommonObject
|
||||
* @return int >0 if OK, <0 if KO
|
||||
* @see add_object_linked, fetObjectLinked, deleteObjectLinked
|
||||
*/
|
||||
function updateObjectLinked($sourceid='', $sourcetype='', $targetid='', $targettype='')
|
||||
function updateObjectLinked($sourceid=null, $sourcetype='', $targetid=null, $targettype='')
|
||||
{
|
||||
$updatesource=false;
|
||||
$updatetarget=false;
|
||||
@ -2128,7 +2341,7 @@ abstract class CommonObject
|
||||
* @return int >0 if OK, <0 if KO
|
||||
* @see add_object_linked, updateObjectLinked, fetchObjectLinked
|
||||
*/
|
||||
function deleteObjectLinked($sourceid='', $sourcetype='', $targetid='', $targettype='')
|
||||
function deleteObjectLinked($sourceid=null, $sourcetype='', $targetid=null, $targettype='')
|
||||
{
|
||||
$deletesource=false;
|
||||
$deletetarget=false;
|
||||
@ -2180,7 +2393,7 @@ abstract class CommonObject
|
||||
* @param string $elementType Type of element to force (use this->table_element by default)
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function setStatut($status,$elementId='',$elementType='')
|
||||
function setStatut($status,$elementId=null,$elementType='')
|
||||
{
|
||||
global $user,$langs,$conf;
|
||||
|
||||
@ -2324,7 +2537,6 @@ abstract class CommonObject
|
||||
foreach($this->childtables as $table)
|
||||
{
|
||||
// Check if third party can be deleted
|
||||
$nb=0;
|
||||
$sql = "SELECT COUNT(*) as nb from ".MAIN_DB_PREFIX.$table;
|
||||
$sql.= " WHERE ".$this->fk_element." = ".$id;
|
||||
$resql=$this->db->query($sql);
|
||||
@ -2398,10 +2610,9 @@ abstract class CommonObject
|
||||
|
||||
$pu_ht = $obj->pu_ht;
|
||||
$qty= $obj->qty;
|
||||
$discount_percent_line = $obj->remise_percent;
|
||||
$total_ht = $obj->total_ht;
|
||||
|
||||
$total_discount_line = price2num(($pu_ht * $qty) - $total_ht, 'MT');
|
||||
$total_discount_line = floatval(price2num(($pu_ht * $qty) - $total_ht, 'MT'));
|
||||
$total_discount += $total_discount_line;
|
||||
|
||||
$i++;
|
||||
@ -2451,7 +2662,7 @@ abstract class CommonObject
|
||||
function display_incoterms()
|
||||
{
|
||||
$out = '';
|
||||
$this->incoterms_libelle = '';
|
||||
$this->libelle_incoterms = '';
|
||||
if (!empty($this->fk_incoterms))
|
||||
{
|
||||
$sql = 'SELECT code FROM '.MAIN_DB_PREFIX.'c_incoterms WHERE rowid = '.(int) $this->fk_incoterms;
|
||||
@ -2640,8 +2851,8 @@ abstract class CommonObject
|
||||
* But for the moment we don't know if it'st possible as we keep a method available on overloaded objects.
|
||||
*
|
||||
* @param string $action Action code
|
||||
* @param Societe $seller Object of seller third party
|
||||
* @param Societe $buyer Object of buyer third party
|
||||
* @param string $seller Object of seller third party
|
||||
* @param string $buyer Object of buyer third party
|
||||
* @param int $selected Object line selected
|
||||
* @param int $dateSelector 1=Show also date range input fields
|
||||
* @return void
|
||||
@ -2734,12 +2945,12 @@ abstract class CommonObject
|
||||
if (empty($line->fk_parent_line))
|
||||
{
|
||||
$parameters = array('line'=>$line,'var'=>$var,'num'=>$num,'i'=>$i,'dateSelector'=>$dateSelector,'seller'=>$seller,'buyer'=>$buyer,'selected'=>$selected, 'extrafieldsline'=>$extrafieldsline);
|
||||
$reshook=$hookmanager->executeHooks('printObjectLine', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks
|
||||
$hookmanager->executeHooks('printObjectLine', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks
|
||||
}
|
||||
else
|
||||
{
|
||||
$parameters = array('line'=>$line,'var'=>$var,'num'=>$num,'i'=>$i,'dateSelector'=>$dateSelector,'seller'=>$seller,'buyer'=>$buyer,'selected'=>$selected, 'extrafieldsline'=>$extrafieldsline);
|
||||
$reshook=$hookmanager->executeHooks('printObjectSubLine', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks
|
||||
$hookmanager->executeHooks('printObjectSubLine', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -2755,16 +2966,16 @@ abstract class CommonObject
|
||||
* Return HTML content of a detail line
|
||||
* TODO Move this into an output class file (htmlline.class.php)
|
||||
*
|
||||
* @param string $action GET/POST action
|
||||
* @param CommonObjectLine $line Selected object line to output
|
||||
* @param string $var Is it a an odd line (true)
|
||||
* @param int $num Number of line (0)
|
||||
* @param int $i I
|
||||
* @param int $dateSelector 1=Show also date range input fields
|
||||
* @param Societe $seller Object of seller third party
|
||||
* @param Societe $buyer Object of buyer third party
|
||||
* @param int $selected Object line selected
|
||||
* @param object $extrafieldsline Object of extrafield line attribute
|
||||
* @param string $action GET/POST action
|
||||
* @param CommonObjectLine $line Selected object line to output
|
||||
* @param string $var Is it a an odd line (true)
|
||||
* @param int $num Number of line (0)
|
||||
* @param int $i I
|
||||
* @param int $dateSelector 1=Show also date range input fields
|
||||
* @param string $seller Object of seller third party
|
||||
* @param string $buyer Object of buyer third party
|
||||
* @param int $selected Object line selected
|
||||
* @param int $extrafieldsline Object of extrafield line attribute
|
||||
* @return void
|
||||
*/
|
||||
function printObjectLine($action,$line,$var,$num,$i,$dateSelector,$seller,$buyer,$selected=0,$extrafieldsline=0)
|
||||
@ -2895,7 +3106,6 @@ abstract class CommonObject
|
||||
}
|
||||
print '<td align="right">'.$langs->trans('ReductionShort').'</td></tr>';
|
||||
|
||||
$num = count($this->lines);
|
||||
$var = true;
|
||||
$i = 0;
|
||||
|
||||
@ -2909,7 +3119,7 @@ abstract class CommonObject
|
||||
{
|
||||
$parameters=array('line'=>$line,'var'=>$var,'i'=>$i);
|
||||
$action='';
|
||||
$reshook=$hookmanager->executeHooks('printOriginObjectLine',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
||||
$hookmanager->executeHooks('printOriginObjectLine',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -2927,13 +3137,13 @@ abstract class CommonObject
|
||||
* If lines are into a template, title must also be into a template
|
||||
* But for the moment we don't know if it's possible as we keep a method available on overloaded objects.
|
||||
*
|
||||
* @param array $line Line
|
||||
* @param string $var Var
|
||||
* @param CommonObjectLine $line Line
|
||||
* @param string $var Var
|
||||
* @return void
|
||||
*/
|
||||
function printOriginLine($line,$var)
|
||||
{
|
||||
global $conf,$langs,$bc, $conf;
|
||||
global $langs, $conf;
|
||||
|
||||
//var_dump($line);
|
||||
if (!empty($line->date_start))
|
||||
@ -3042,7 +3252,7 @@ abstract class CommonObject
|
||||
/**
|
||||
* Show the array with all margin infos
|
||||
*
|
||||
* @param boolean $force_price Force price
|
||||
* @param bool $force_price Force price
|
||||
* @return void
|
||||
* @deprecated 3.8 Load FormMargin class and make a direct call to displayMarginInfos
|
||||
*/
|
||||
@ -3108,7 +3318,7 @@ abstract class CommonObject
|
||||
*/
|
||||
function delete_resource($rowid, $element, $notrigger=0)
|
||||
{
|
||||
global $user,$langs,$conf;
|
||||
global $user;
|
||||
|
||||
|
||||
$this->db->begin();
|
||||
@ -3150,7 +3360,7 @@ abstract class CommonObject
|
||||
$nboflines=count($this->lines);
|
||||
for($i=0; $i < $nboflines; $i++)
|
||||
{
|
||||
$this->lines[$i] = dol_clone($this->lines[$i]);
|
||||
$this->lines[$i] = clone $this->lines[$i];
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3306,11 +3516,11 @@ abstract class CommonObject
|
||||
{
|
||||
// Create small thumbs for company (Ratio is near 16/9)
|
||||
// Used on logon for example
|
||||
$imgThumbSmall = vignette($file_osencoded, $maxwidthsmall, $maxheightsmall, '_small', $quality);
|
||||
vignette($file_osencoded, $maxwidthsmall, $maxheightsmall, '_small', $quality);
|
||||
|
||||
// Create mini thumbs for company (Ratio is near 16/9)
|
||||
// Used on menu or for setup page for example
|
||||
$imgThumbMini = vignette($file_osencoded, $maxwidthmini, $maxheightmini, '_mini', $quality);
|
||||
vignette($file_osencoded, $maxwidthmini, $maxheightmini, '_mini', $quality);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3365,7 +3575,7 @@ abstract class CommonObject
|
||||
* @param array $optionsArray Array resulting of call of extrafields->fetch_name_optionals_label()
|
||||
* @return int <0 if error, 0 if no optionals to find nor found, 1 if a line is found and optional loaded
|
||||
*/
|
||||
function fetch_optionals($rowid='',$optionsArray='')
|
||||
function fetch_optionals($rowid=null,$optionsArray=null)
|
||||
{
|
||||
if (empty($rowid)) $rowid=$this->id;
|
||||
|
||||
@ -3429,10 +3639,6 @@ abstract class CommonObject
|
||||
*/
|
||||
function deleteExtraFields()
|
||||
{
|
||||
global $langs;
|
||||
|
||||
$error=0;
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
$sql_del = "DELETE FROM ".MAIN_DB_PREFIX.$this->table_element."_extrafields WHERE fk_object = ".$this->id;
|
||||
@ -3472,13 +3678,12 @@ abstract class CommonObject
|
||||
$langs->load('admin');
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
||||
$extrafields = new ExtraFields($this->db);
|
||||
$optionsArray = $extrafields->fetch_name_optionals_label($this->table_element);
|
||||
$extrafields->fetch_name_optionals_label($this->table_element);
|
||||
|
||||
foreach($this->array_options as $key => $value)
|
||||
{
|
||||
$attributeKey = substr($key,8); // Remove 'options_' prefix
|
||||
$attributeType = $extrafields->attribute_type[$attributeKey];
|
||||
//$attributeSize = $extrafields->attribute_size[$attributeKey]; Not required to insert an extrafield value. Only used for definition.
|
||||
$attributeLabel = $extrafields->attribute_label[$attributeKey];
|
||||
$attributeParam = $extrafields->attribute_param[$attributeKey];
|
||||
switch ($attributeType)
|
||||
@ -3486,7 +3691,7 @@ abstract class CommonObject
|
||||
case 'int':
|
||||
if (!is_numeric($value) && $value!='')
|
||||
{
|
||||
$error++; $this->errors[]=$langs->trans("ExtraFieldHasWrongValue",$attributeLabel);
|
||||
$this->errors[]=$langs->trans("ExtraFieldHasWrongValue",$attributeLabel);
|
||||
return -1;
|
||||
}
|
||||
elseif ($value=='')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user