79 lines
1.8 KiB
PHP
79 lines
1.8 KiB
PHP
<?php
|
|
|
|
class ContractconfigValue extends mfBaseModel {
|
|
private $item;
|
|
|
|
public function set($new_value) {
|
|
// explicitly load item, because we might not have an id yet
|
|
$item = new ContractconfigItem($this->item_id);
|
|
|
|
$me = new User();
|
|
$me->loadMe();
|
|
$this->edit_by = $me->id;
|
|
|
|
if(!is_array($new_value) && ($new_value === null || strlen($new_value) == 0)) {
|
|
$this->int = null;
|
|
$this->number = null;
|
|
$this->string = null;
|
|
return true;
|
|
}
|
|
|
|
|
|
if($item->multiple) {
|
|
if(!is_array($new_value)) {
|
|
$new_value = [$new_vale];
|
|
}
|
|
|
|
$json_array = [];
|
|
|
|
foreach($new_value as $v) {
|
|
if($v) {
|
|
$json_array[] = $v;
|
|
}
|
|
}
|
|
|
|
$this->json = json_encode($json_array);
|
|
} elseif($item->type == "int") {
|
|
if(!is_numeric($new_value)) return false;
|
|
$this->int = $new_value;
|
|
} elseif($item->type == "decimal") {
|
|
if(!is_float($new_value) && !is_numeric($new_value)) return false;
|
|
$this->number = $new_value;
|
|
} elseif(is_scalar($new_value)) {
|
|
$this->string = $new_value;
|
|
} else {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public function getProperty($name) {
|
|
if($this->$name == null) {
|
|
|
|
if(!$this->id) {
|
|
return null;
|
|
}
|
|
|
|
if($name == "item") {
|
|
$this->item = new ContractconfigItem($this->item_id);
|
|
if(!$this->item->id) {
|
|
return null;
|
|
}
|
|
return $this->item;
|
|
}
|
|
|
|
$classname = ucfirst($name);
|
|
$idfield = $name."_id";
|
|
$this->$name = new $classname($this->$idfield);
|
|
|
|
if($this->$name->id) {
|
|
return $this->$name;
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
return $this->$name;
|
|
}
|
|
} |