Order (multiple voicenumbers) and Contract changes
This commit is contained in:
@@ -779,10 +779,10 @@ class ContractController extends mfBaseController
|
||||
$contract_data['amount'] = ($r->amount) ? (float)$r->amount : 1;
|
||||
$contract_data['vatgroup_id'] = $r->vatgroup_id;
|
||||
$contract_data['sla_id'] = $r->sla_id;
|
||||
$contract_data['price'] = (float)$r->price;
|
||||
$contract_data['price_setup'] = (float)$r->price_setup;
|
||||
$contract_data['price_nne'] = (float)$r->price_nne;
|
||||
$contract_data['price_nbe'] = (float)$r->price_nbe;
|
||||
$contract_data['price'] = (float)Layout::commaToDot($r->price);
|
||||
$contract_data['price_setup'] = (float)Layout::commaToDot($r->price_setup);
|
||||
$contract_data['price_nne'] = (float)Layout::commaToDot($r->price_nne);
|
||||
$contract_data['price_nbe'] = (float)Layout::commaToDot($r->price_nbe);
|
||||
$contract_data['billing_period'] = (int)$r->billing_period;
|
||||
$contract_data['billing_delay'] = (int)$r->billing_delay;
|
||||
$contract_data['note'] = $r->note;
|
||||
|
||||
@@ -931,7 +931,7 @@ class OrderController extends mfBaseController {
|
||||
|
||||
$ext_products = false;
|
||||
$int_products = false;
|
||||
|
||||
|
||||
$ext_products_nbe = 0;
|
||||
|
||||
//var_dump($r->products);exit;
|
||||
@@ -964,8 +964,8 @@ class OrderController extends mfBaseController {
|
||||
$product_data['amount'] = (!empty($p['amount'])) ? $p['amount'] : 1;
|
||||
$product_data["pos"] = ($p["pos"]) ? $p['pos'] : $order->getNewPos();
|
||||
$product_data["description"] = $p["description"];
|
||||
$product_data["price"] = $p["price"] ? Layout::commaToDot($p["price"]) : 0;
|
||||
$product_data["price_setup"] = $p["price_setup"] ? Layout::commaToDot($p["price_setup"]) : 0;
|
||||
$product_data["price"] = trim($p["price"]) ? Layout::commaToDot(trim($p["price"])) : 0;
|
||||
$product_data["price_setup"] = trim($p["price_setup"]) ? Layout::commaToDot(trim($p["price_setup"])) : 0;
|
||||
|
||||
if($this->me->is("Admin") && $p["price_nne"]) {
|
||||
$product_data["price_nne"] = Layout::commaToDot($p["price_nne"]);
|
||||
@@ -1003,29 +1003,44 @@ class OrderController extends mfBaseController {
|
||||
}
|
||||
|
||||
if(array_key_exists(TT_ATTRIB_VOICENUMBER_REQUIRED_NAME, $prod->attributes) && $prod->attributes[TT_ATTRIB_VOICENUMBER_REQUIRED_NAME]->value == 1) {
|
||||
$voicenumbers = [];
|
||||
//var_dump($p);exit;
|
||||
//if($p["voicenumber_custom"]);
|
||||
|
||||
if(array_key_exists("voicenumber", $p) && $p["voicenumber"]) {
|
||||
$number = $p["voicenumber"];
|
||||
}
|
||||
if(array_key_exists("voicenumber_custom", $p) && $p["voicenumber_custom"]) {
|
||||
$number = $p["voicenumber_custom"];
|
||||
}
|
||||
|
||||
$number = preg_replace('/\D/', '', trim($number));
|
||||
if(substr($number, 0, 2) == "00") $number = "+".substr($number, 2);
|
||||
if(preg_match('/^0[^0]/', $number)) {
|
||||
$number = "+43".substr($number, 1);
|
||||
}
|
||||
if(substr($number, 0, 1) != "+") $number = "+$number";
|
||||
//if($number && !in_array($number, $voicenumbers)) $voicenumbers[] = $number;
|
||||
|
||||
$voicenumbers[] = $number;
|
||||
|
||||
$product_data['voicenumber'] = json_encode($voicenumbers);
|
||||
//var_dump($product_data);exit;
|
||||
$voicenumbers = [];
|
||||
//var_dump($p);exit;
|
||||
//if($p["voicenumber_custom"]);
|
||||
|
||||
$numbers = [];
|
||||
if(array_key_exists("voicenumber", $p) && is_array($p["voicenumber"]) && count($p["voicenumber"])) {
|
||||
$numbers = $p["voicenumber"];
|
||||
}
|
||||
if(array_key_exists("voicenumber_custom", $p) && is_array($p["voicenumber_custom"]) && count($p["voicenumber_custom"])) {
|
||||
$numbers = array_merge($numbers, $p["voicenumber_custom"]);
|
||||
}
|
||||
|
||||
foreach($numbers as $number) {
|
||||
if(!$number) continue;
|
||||
|
||||
$number = preg_replace('/\D/', '', trim($number));
|
||||
if(substr($number, 0, 2) == "00") $number = "+" . substr($number, 2);
|
||||
if(preg_match('/^0[^0]/', $number)) {
|
||||
$number = "+43" . substr($number, 1);
|
||||
}
|
||||
if(substr($number, 0, 1) != "+") $number = "+$number";
|
||||
//if($number && !in_array($number, $voicenumbers)) $voicenumbers[] = $number;
|
||||
|
||||
$voicenumbers[] = $number;
|
||||
}
|
||||
|
||||
if($voicenumbers) {
|
||||
$product_data['voicenumber'] = json_encode($voicenumbers);
|
||||
if($p["voiceplan_id"]) {
|
||||
$product_data["voiceplan_id"] = $p["voiceplan_id"];
|
||||
} else {
|
||||
$this->layout()->setFlash("Bitte Sprachtarif bei allen Rufnummern eintragen", "error");
|
||||
}
|
||||
//var_dump($product_data);exit;
|
||||
}
|
||||
|
||||
|
||||
//var_dump($product_data);exit;
|
||||
} else {
|
||||
$product_data['voicenumber'] = null;
|
||||
}
|
||||
@@ -1038,7 +1053,8 @@ class OrderController extends mfBaseController {
|
||||
$product = new OrderProduct($orderproduct_id);
|
||||
$product->update($product_data);
|
||||
}
|
||||
|
||||
|
||||
//var_dump($product);
|
||||
if(!$product->save()) {
|
||||
$this->log->warn("Unable to save OrderProduct:".print_r($product, true));
|
||||
}
|
||||
@@ -1052,6 +1068,7 @@ class OrderController extends mfBaseController {
|
||||
$int_products = true;
|
||||
}
|
||||
}
|
||||
//exit;
|
||||
|
||||
|
||||
if(!$ext_products && !$owner->customer_number) {
|
||||
|
||||
@@ -7,6 +7,7 @@ class OrderProduct extends mfBaseModel {
|
||||
private $cpeprovisioning;
|
||||
private $contract;
|
||||
private $voicenumbers;
|
||||
private $voiceplan;
|
||||
private $editor;
|
||||
private $creator;
|
||||
|
||||
@@ -58,8 +59,38 @@ class OrderProduct extends mfBaseModel {
|
||||
$json = json_decode($this->voicenumber);
|
||||
|
||||
if(!is_array($json)) return [];
|
||||
$this->voicenumbers = $json;
|
||||
|
||||
|
||||
$voicenumbers = [];
|
||||
foreach($json as $number) {
|
||||
$number = str_replace("+","",$number);
|
||||
$voicenumber = VoicenumberModel::getFirst(["number" => $number]);
|
||||
if($voicenumber) {
|
||||
$voicenumbers[] = $voicenumber;
|
||||
} else {
|
||||
// find block
|
||||
$block_id = null;
|
||||
|
||||
$block = Voicenumberblock::findBlock($number);
|
||||
if($block) {
|
||||
$block_id = $block->id;
|
||||
}
|
||||
$voicenumber = VoicenumberModel::create([
|
||||
'voicenumberblock_id' => $block_id,
|
||||
"contract_id" => null,
|
||||
'active' => 1,
|
||||
'activated_date' => date('U'),
|
||||
'routing' => "kolmisoft",
|
||||
'number' => $number,
|
||||
'disabled' => 0
|
||||
]);
|
||||
$voicenumbers[] = $voicenumber;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$this->voicenumbers = $voicenumbers;
|
||||
|
||||
return $this->voicenumbers;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ class OrderProductModel
|
||||
public $product_id;
|
||||
public $termination_id;
|
||||
public $voicenumber;
|
||||
public $voiceplan_id;
|
||||
public $domain;
|
||||
public $upgrade;
|
||||
public $amount;
|
||||
|
||||
@@ -27,7 +27,7 @@ class Voicenumber extends mfBaseModel {
|
||||
$return = "0";
|
||||
}
|
||||
$prefix .= $this->block->areacode;
|
||||
$return .= $this->block->areacode." ".substr($this->number, strlen($prefix));
|
||||
$return .= $this->block->areacode." ".substr($this->number, strlen($prefix)-1);
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user