preorder price now comes from preorder product's attributes
This commit is contained in:
@@ -132,6 +132,16 @@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="adb_netzgebiet_ids">Erforderliche Zusatzfelder:</label>
|
||||
<div class="col-lg-10">
|
||||
<select class="select2 form-control select2-multiple" name="required_fields[]" id="required_fields" multiple="multiple" data-placeholder="Felder ...">
|
||||
<option value="contact_type" <?=(is_array($campaign->required_fields) && in_array("contact_type", $campaign->required_fields)) ? "selected='selected'" : ""?>>Kontakttyp (Besitzer/Bewohner)</option>
|
||||
</select>
|
||||
<small>Diese Felder müssen beim Bestellen angegeben werden</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -222,5 +232,11 @@
|
||||
placeholder: "",
|
||||
closeOnSelect: false
|
||||
});
|
||||
|
||||
$("#required_fields").select2({
|
||||
allowClear: true,
|
||||
placeholder: "",
|
||||
closeOnSelect: false
|
||||
});
|
||||
</script>
|
||||
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/footer.php"); ?>
|
||||
@@ -162,7 +162,7 @@
|
||||
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="price">Setup Preis Netto (Einmalig) *</label>
|
||||
<label class="col-lg-2 col-form-label" for="price_setup">Setup Preis Netto (Einmalig) *</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" name="price_setup" id="price_setup" class="form-control" value="<?=$this::dotToComma($product->price_setup)?>" />
|
||||
</div>
|
||||
@@ -174,13 +174,13 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="nne">Netznutzungsentgelt (NNE)</label>
|
||||
<label class="col-lg-2 col-form-label" for="price_nne">Netznutzungsentgelt (NNE)</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="price_nne" id="price_nne" value="<?=$this::dotToComma($product->price_nne)?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="nbe">Netzbetriebsentgelt (NBE)</label>
|
||||
<label class="col-lg-2 col-form-label" for="price_nbe">Netzbetriebsentgelt (NBE)</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="price_nbe" id="price_nbe" value="<?=$this::dotToComma($product->price_nbe)?>">
|
||||
</div>
|
||||
@@ -213,6 +213,9 @@
|
||||
<label class="col-lg-2 col-form-label" for="attributes_<?=$attrib->producttechattribute_id?>"><?=$attrib->displayname?></label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="attributes[<?=$attrib->producttechattribute_id?>]" id="attributes_<?=$attrib->producttechattribute_id?>" value="<?=$attrib->value?>" />
|
||||
<?php if($attrib->description): ?>
|
||||
<small><?=$attrib->description?></small>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
|
||||
@@ -250,23 +250,30 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
||||
if($type == "order") {
|
||||
$product = $this->campaign->setup_products['activation'][0];
|
||||
}
|
||||
if($type == "reorder") {
|
||||
$product = $this->campaign->setup_products['reorder'][0];
|
||||
}
|
||||
|
||||
if($product) {
|
||||
$preorder_data['setup_product_id'] = $product->id;
|
||||
$preorder_data['price_setup'] = $product->price_setup;
|
||||
if($connection_type == "multi-dwelling") {
|
||||
if($preorder_data['connection_count'] == 2) {
|
||||
$preorder_data['price_setup'] = round($product->price_setup * 2 - (($product->price_setup * 2) / 100) * TT_PREORDER_DISCOUNT_2);
|
||||
//$preorder_data['price_setup'] = round($product->price_setup * 2 - (($product->price_setup * 2) / 100) * TT_PREORDER_DISCOUNT_2);
|
||||
$preorder_data['price_setup'] = ($product->attributes["presales_setup_price2"]->value) ? $product->attributes["presales_setup_price2"]->value : $product->price_setup;
|
||||
}
|
||||
if($connection_type == "multi-dwelling" && $preorder_data['connection_count'] == 3) {
|
||||
$preorder_data['price_setup'] = round($product->price_setup * 3 - (($product->price_setup * 3) / 100) * TT_PREORDER_DISCOUNT_3);
|
||||
//$preorder_data['price_setup'] = round($product->price_setup * 3 - (($product->price_setup * 3) / 100) * TT_PREORDER_DISCOUNT_3);
|
||||
$preorder_data['price_setup'] = ($product->attributes["presales_setup_price3"]->value) ? $product->attributes["presales_setup_price3"]->value : $product->price_setup;
|
||||
}
|
||||
}
|
||||
if($connection_type == "apartment" && $type == "order") {
|
||||
$preorder_data['price_setup'] = round($product->price_setup - (($product->price_setup) / 100) * TT_PREORDER_DISCOUNT_APART);
|
||||
//$preorder_data['price_setup'] = round($product->price_setup - (($product->price_setup) / 100) * TT_PREORDER_DISCOUNT_APART);
|
||||
$preorder_data['price_setup'] = ($product->attributes["presales_setup_price4"]->value) ? $product->attributes["presales_setup_price4"]->value : $product->price_setup;
|
||||
}
|
||||
if($connection_type == "business") {
|
||||
$preorder_data['price_setup'] = round($product->price_setup - (($product->price_setup) / 100) * TT_PREORDER_DISCOUNT_BUSINESS);
|
||||
//$preorder_data['price_setup'] = round($product->price_setup - (($product->price_setup) / 100) * TT_PREORDER_DISCOUNT_BUSINESS);
|
||||
$preorder_data['price_setup'] = ($product->attributes["presales_setup_price_business"]->value) ? $product->attributes["presales_setup_price_business"]->value : $product->price_setup;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -279,14 +286,22 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
||||
$preorder_data[$key] = $customer->$key;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
if($customer->type == "tenant") {
|
||||
$preorder_data['contact_type'] = "tenant";
|
||||
} elseif($customer->type == "owner") {
|
||||
$preorder_data['contact_type'] = "owner";
|
||||
} else {
|
||||
return mfResponse::BadRequest(["message" => "customer type must be 'tenant' or 'owner'"]);
|
||||
}*/
|
||||
* check optional required fields
|
||||
*/
|
||||
if(is_array($this->campaign->required_fields) && count($this->campaign->required_fields)) {
|
||||
if(in_array("contact_type", $this->campaign->required_fields)) {
|
||||
if($customer->type == "tenant") {
|
||||
$preorder_data['contact_type'] = "tenant";
|
||||
} elseif($customer->type == "owner") {
|
||||
$preorder_data['contact_type'] = "owner";
|
||||
} else {
|
||||
return mfResponse::BadRequest(["message" => "customer type must be 'tenant' or 'owner'"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* create preorder record
|
||||
|
||||
@@ -5,11 +5,12 @@ class Preordercampaign extends mfBaseModel {
|
||||
private $preorders;
|
||||
private $active_preorders;
|
||||
private $types;
|
||||
private $setup_products;
|
||||
private $setup_products = [];
|
||||
private $salesclusters;
|
||||
private $apiusers;
|
||||
private $corsorigins;
|
||||
private $total_homes;
|
||||
private $required_fields = [];
|
||||
|
||||
|
||||
public function addTypes(Array $types) {
|
||||
@@ -50,9 +51,11 @@ class Preordercampaign extends mfBaseModel {
|
||||
public function getSetupProducts() {
|
||||
$provision_products = [];
|
||||
$activation_products = [];
|
||||
$reorder_products = [];
|
||||
|
||||
$provisions = ProductModel::search(["attributename" => "presales", "attributevalue" => "provision"]);
|
||||
$activations = ProductModel::search(["attributename" => "presales", "attributevalue" => "activation"]);
|
||||
$reorders = ProductModel::search(["attributename" => "presales", "attributevalue" => "reorder"]);
|
||||
|
||||
foreach($provisions as $p) {
|
||||
if(ProductNetworkModel::search(['product_id' => $p->id, "network_id" => $this->network_id])) {
|
||||
@@ -64,8 +67,13 @@ class Preordercampaign extends mfBaseModel {
|
||||
$activation_products[] = $p;
|
||||
}
|
||||
}
|
||||
foreach($reorders as $p) {
|
||||
if(ProductNetworkModel::search(['product_id' => $p->id, "network_id" => $this->network_id])) {
|
||||
$reorder_products[] = $p;
|
||||
}
|
||||
}
|
||||
|
||||
return ['activation' => $activation_products, 'provision' => $provision_products];
|
||||
return ['activation' => $activation_products, 'provision' => $provision_products, 'reorder' => $reorder_products];
|
||||
}
|
||||
|
||||
public function getProperty($name) {
|
||||
@@ -81,6 +89,12 @@ class Preordercampaign extends mfBaseModel {
|
||||
return $total;
|
||||
}
|
||||
|
||||
if($name == "required_fields") {
|
||||
if(!$this->required_preorder_fields) return [];
|
||||
$this->required_fields = json_decode($this->required_preorder_fields);
|
||||
return $this->required_fields;
|
||||
}
|
||||
|
||||
|
||||
if($name == "preorders") {
|
||||
$this->preorders = PreorderModel::search(['preordercampaign_id' => $this->id]);
|
||||
|
||||
@@ -161,6 +161,18 @@ class PreordercampaignController extends mfBaseController {
|
||||
$data['product_type'] = "all";
|
||||
}
|
||||
|
||||
if(is_array($r->required_fields) && count($r->required_fields)) {
|
||||
$rfields = [];
|
||||
foreach(['contact_type'] as $afield) {
|
||||
if(in_array($afield, $r->required_fields)) {
|
||||
$rfields[] = "contact_type";
|
||||
}
|
||||
}
|
||||
$data['required_preorder_fields'] = json_encode($rfields);
|
||||
} else {
|
||||
$data['required_preorder_fields'] = null;
|
||||
}
|
||||
|
||||
|
||||
$data['edit_by'] = $this->me->id;
|
||||
|
||||
|
||||
@@ -88,10 +88,10 @@ class ProducttechController extends mfBaseController {
|
||||
$a = [];
|
||||
$a['name'] = $attribute['name'];
|
||||
$a['producttech_id'] = $new_id;
|
||||
$a['displayname'] = $attribute['displayname'];
|
||||
$a['displayname'] = htmlentities($attribute['displayname']);
|
||||
$a['value'] = $attribute['value'];
|
||||
$a['description'] = $attribute['description'];
|
||||
$a['note'] = $attribute['note'];
|
||||
$a['description'] = htmlentities($attribute['description']);
|
||||
$a['note'] = htmlentities($attribute['note']);
|
||||
$a['edit_by'] = $this->me->id;
|
||||
|
||||
if($aid == "new") {
|
||||
|
||||
Reference in New Issue
Block a user