Fix: REST MO API - It's able to have a wrong value on the 'ref' Field
This commit is contained in:
parent
3e12a8ab21
commit
f8aa861a77
@ -203,6 +203,9 @@ class Mos extends DolibarrApi
|
|||||||
foreach ($request_data as $field => $value) {
|
foreach ($request_data as $field => $value) {
|
||||||
$this->mo->$field = $value;
|
$this->mo->$field = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->checkRefNumbering();
|
||||||
|
|
||||||
if (!$this->mo->create(DolibarrApiAccess::$user)) {
|
if (!$this->mo->create(DolibarrApiAccess::$user)) {
|
||||||
throw new RestException(500, "Error creating MO", array_merge(array($this->mo->error), $this->mo->errors));
|
throw new RestException(500, "Error creating MO", array_merge(array($this->mo->error), $this->mo->errors));
|
||||||
}
|
}
|
||||||
@ -239,6 +242,8 @@ class Mos extends DolibarrApi
|
|||||||
$this->mo->$field = $value;
|
$this->mo->$field = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->checkRefNumbering();
|
||||||
|
|
||||||
if ($this->mo->update(DolibarrApiAccess::$user) > 0) {
|
if ($this->mo->update(DolibarrApiAccess::$user) > 0) {
|
||||||
return $this->get($id);
|
return $this->get($id);
|
||||||
} else {
|
} else {
|
||||||
@ -723,4 +728,27 @@ class Mos extends DolibarrApi
|
|||||||
}
|
}
|
||||||
return $myobject;
|
return $myobject;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate the ref field and get the next Number if it's necessary.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function checkRefNumbering(): void
|
||||||
|
{
|
||||||
|
$ref = substr($this->mo->ref, 1, 4);
|
||||||
|
if ($this->mo->status > 0 && $ref == 'PROV') {
|
||||||
|
throw new RestException(400, "Wrong naming scheme '(PROV%)' is only allowed on 'DRAFT' status. For automatic increment use 'auto' on the 'ref' field.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strtolower($this->mo->ref) == 'auto') {
|
||||||
|
if (empty($this->mo->id) && $this->mo->status == 0) {
|
||||||
|
$this->mo->ref = ''; // 'ref' will auto incremented with '(PROV' + newID + ')'
|
||||||
|
} else {
|
||||||
|
$this->mo->fetch_product();
|
||||||
|
$numref = $this->mo->getNextNumRef($this->mo->product);
|
||||||
|
$this->mo->ref = $numref;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -277,6 +277,7 @@ class Mo extends CommonObject
|
|||||||
|
|
||||||
if ($this->fk_bom > 0) {
|
if ($this->fk_bom > 0) {
|
||||||
// If there is a nown BOM, we force the type of MO to the type of BOM
|
// If there is a nown BOM, we force the type of MO to the type of BOM
|
||||||
|
include_once DOL_DOCUMENT_ROOT.'/bom/class/bom.class.php';
|
||||||
$tmpbom = new BOM($this->db);
|
$tmpbom = new BOM($this->db);
|
||||||
$tmpbom->fetch($this->fk_bom);
|
$tmpbom->fetch($this->fk_bom);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user