Added termination select to Product/Form
This commit is contained in:
@@ -345,7 +345,7 @@
|
|||||||
<!-- product lines -->
|
<!-- product lines -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<!-- line 1 -->
|
<!-- line 1 -->
|
||||||
<div class="col-5">
|
<div class="col-4">
|
||||||
<label class="form-label" for="product_id-<?=$product->id?>">Produkt</label>
|
<label class="form-label" for="product_id-<?=$product->id?>">Produkt</label>
|
||||||
<select name="products[<?=$product->id?>][product_id]" id="product_id-<?=$product->id?>" class="form-control" onchange="updateProduct(<?=$product->id?>)">
|
<select name="products[<?=$product->id?>][product_id]" id="product_id-<?=$product->id?>" class="form-control" onchange="updateProduct(<?=$product->id?>)">
|
||||||
<option></option>
|
<option></option>
|
||||||
@@ -355,34 +355,55 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3">
|
<div class="col-2">
|
||||||
<label class="form-label" for="amount-<?=$product->id?>">Anzahl/Menge</label>
|
<label class="form-label" for="amount-<?=$product->id?>">Anzahl/Menge</label>
|
||||||
<input type="text" class="form-control" name="products[<?=$product->id?>][amount]" id="amount-<?=$product->id?>" value="<?=$product->formatAmount()?>" placeholder="Anzahl/Menge" />
|
<input type="text" class="form-control" name="products[<?=$product->id?>][amount]" id="amount-<?=$product->id?>" value="<?=$product->formatAmount()?>" placeholder="Anzahl/Menge" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
<label class="form-label" for="billing_period-<?=$product->id?>" >Verrechungsperiode</label>
|
<label class="form-label" for="billing_period-<?=$product->id?>">Verrechungsperiode</label>
|
||||||
<select class="form-control" name="products[<?=$product->id?>][billing_period]" id="billing_period-<?=$product->id?>" placeholder="Verrechnungsperiode">
|
<select class="form-control" name="products[<?=$product->id?>][billing_period]" id="billing_period-<?=$product->id?>" placeholder="Verrechnungsperiode">
|
||||||
<option value="12" <?=($product->billing_period == 12) ? "selected='selected'" : ""?>>Monatlich</option>
|
<option value="12" <?=($product->billing_period == 12) ? "selected='selected'" : ""?>>Monatlich</option>
|
||||||
<option value="1"> <?=($product->billing_period == 1 ? "selected='selected'" : "")?>Jährlich</option>
|
<option value="1"> <?=($product->billing_period == 1 ? "selected='selected'" : "")?>Jährlich</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
<label class="form-label" for="price-<?=$product->id?>" >Preis p. Periode</label>
|
<label class="form-label" for="price-<?=$product->id?>">Preis p. Periode</label>
|
||||||
<input type="text" class="form-control" name="products[<?=$product->id?>][price]" id="price-<?=$product->id?>" value="<?=$this::dotToComma($product->price)?>" placeholder="Preis p. Periode" />
|
<input type="text" class="form-control" name="products[<?=$product->id?>][price]" id="price-<?=$product->id?>" value="<?=$this::dotToComma($product->price)?>" placeholder="Preis p. Periode" />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-2">
|
||||||
|
<label class="form-label" for="price_setup-<?=$product->id?>">Preis Setup</label>
|
||||||
|
<input type="text" class="form-control" name="products[<?=$product->id?>][price_setup]" id="price_setup-<?=$product->id?>" value="<?=$this::dotToComma($product->price_setup)?>" placeholder="Preis Setup" />
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<?php if(array_key_exists(TT_ATTRIB_TERMINATION_REQUIRED_NAME, $product->product->attributes) && $product->product->attributes[TT_ATTRIB_TERMINATION_REQUIRED_NAME] == 1): ?>
|
||||||
|
<div class="row mt-1 mb-2">
|
||||||
|
<!-- line to choose termination -->
|
||||||
|
<div class="col-12">
|
||||||
|
<label class="form-label" for="termination_id-<?=$product->id?>">Anschluss</label>
|
||||||
|
<select name="products[<?=$product->id?>][termination_id]" id="termination_id-<?=$product->id?>" class="form-control select2">
|
||||||
|
<option></option>
|
||||||
|
<?php foreach($terminations as $t): ?>
|
||||||
|
<option value="<?=$t->id?>" <?=($t->id == $product->termination_id) ? "selected='selected'" : ""?>><?=$t->code?> - <?=$t->getAddress()?></option>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
|
||||||
<div class="row mt-1 mb-2">
|
<div class="row mt-1 mb-2">
|
||||||
<!-- line 2 -->
|
<!-- line 2 -->
|
||||||
<div class="col-10">
|
<div class="col-10">
|
||||||
<label class="form-label" for="description-<?=$product->id?>" >Zusatztext</label>
|
<label class="form-label" for="description-<?=$product->id?>" >Zusatztext</label>
|
||||||
<textarea class="form-control" name="products[<?=$product->id?>][description]" id="description-<?=$product->id?>" placeholder="Zusatztext"><?=$product->description?></textarea>
|
<textarea class="form-control" name="products[<?=$product->id?>][description]" id="description-<?=$product->id?>" placeholder="Zusatztext"><?=$product->description?></textarea>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
<label class="form-label" for="price_setup-<?=$product->id?>" >Preis Setup</label>
|
<label class="form-label" for="billing_delay-<?=$product->id?>" >Verzögerter Verrechnungsstart</label>
|
||||||
<input type="text" class="form-control" name="products[<?=$product->id?>][price_setup]" id="price_setup-<?=$product->id?>" value="<?=$this::dotToComma($product->price_setup)?>" placeholder="Preis Setup" />
|
<input type="text" class="form-control" name="products[<?=$product->id?>][billing_delay]" id="billing_delay-<?=$product->id?>" value="" placeholder="(Monate)" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -402,8 +423,8 @@
|
|||||||
<!-- product lines -->
|
<!-- product lines -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<!-- line 1 -->
|
<!-- line 1 -->
|
||||||
<div class="col-5">
|
<div class="col-4">
|
||||||
<label class="form-label" for="product_id-new" >Produkt</label>
|
<label class="form-label" for="product_id-new">Produkt</label>
|
||||||
<select name="products[new][product_id]" id="product_id-new" class="form-control" onchange="updateProduct('new')">
|
<select name="products[new][product_id]" id="product_id-new" class="form-control" onchange="updateProduct('new')">
|
||||||
<option></option>
|
<option></option>
|
||||||
<?php foreach($products as $p): ?>
|
<?php foreach($products as $p): ?>
|
||||||
@@ -411,7 +432,7 @@
|
|||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3">
|
<div class="col-2">
|
||||||
<label class="form-label" for="amount-new">Anzahl/Menge</label>
|
<label class="form-label" for="amount-new">Anzahl/Menge</label>
|
||||||
<input type="text" class="form-control" name="products[new][amount]" id="amount-new" value="" placeholder="Anzahl/Menge (Standard: 1)" />
|
<input type="text" class="form-control" name="products[new][amount]" id="amount-new" value="" placeholder="Anzahl/Menge (Standard: 1)" />
|
||||||
</div>
|
</div>
|
||||||
@@ -427,6 +448,24 @@
|
|||||||
<input type="text" class="form-control" name="products[new][price]" id="price-new" value="" placeholder="Preis p. Periode" />
|
<input type="text" class="form-control" name="products[new][price]" id="price-new" value="" placeholder="Preis p. Periode" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-2">
|
||||||
|
<label class="form-label" for="price_setup-new" >Preis Setup</label>
|
||||||
|
<input type="text" class="form-control" name="products[new][price_setup]" id="price_setup-new" value="" placeholder="Preis Setup" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mt-1 mb-2 hidden" id="termination_id-new-line">
|
||||||
|
<!-- line to choose termination -->
|
||||||
|
<div class="col-12">
|
||||||
|
<label class="form-label" for="termination_id-new">Anschluss</label>
|
||||||
|
<select name="products[new][termination_id]" id="termination_id-new" class="form-control">
|
||||||
|
<option></option>
|
||||||
|
<?php foreach($terminations as $t): ?>
|
||||||
|
<option value="<?=$t->id?>"><?=$t->code?> - <?=$t->getAddress()?></option>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mt-1 mb-2">
|
<div class="row mt-1 mb-2">
|
||||||
@@ -437,8 +476,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
<label class="form-label" for="price_setup-new" >Preis Setup</label>
|
<label class="form-label" for="billing_delay-new" >Verzögerter Verrechnungsstart</label>
|
||||||
<input type="text" class="form-control" name="products[new][price_setup]" id="price_setup-new" value="" placeholder="Preis Setup" />
|
<input type="text" class="form-control" name="products[new][billing_delay]" id="billing_delay-new" value="" placeholder="(in Monaten)" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -456,7 +495,7 @@
|
|||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<?php if(!$order->id): ?>
|
<?php if(!$order->id): ?>
|
||||||
<i>Verfügbar nach speichern.</i>
|
<i class="text-pink">Verfügbar nach speichern.</i>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
|
|
||||||
<?php if(is_array($order->files) && count($order->files)): ?>
|
<?php if(is_array($order->files) && count($order->files)): ?>
|
||||||
@@ -564,6 +603,13 @@
|
|||||||
placeholder: ""
|
placeholder: ""
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('.select2').each(function(){
|
||||||
|
$(this).select2({
|
||||||
|
allowClear: true,
|
||||||
|
placeholder: ""
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
$('#owner_id').change(function() {
|
$('#owner_id').change(function() {
|
||||||
var val = $('#owner_id').val();
|
var val = $('#owner_id').val();
|
||||||
|
|
||||||
@@ -620,6 +666,20 @@
|
|||||||
$('#billing_period-' + id).val(p.billing_period);
|
$('#billing_period-' + id).val(p.billing_period);
|
||||||
$('#price-' + id).val(p.price);
|
$('#price-' + id).val(p.price);
|
||||||
$('#price_setup-' + id).val(p.price_setup);
|
$('#price_setup-' + id).val(p.price_setup);
|
||||||
|
|
||||||
|
console.log(p.attributes);
|
||||||
|
|
||||||
|
if(typeof p.attributes === 'object' && "termination_required" in p.attributes && p.attributes.termination_required == 1) {
|
||||||
|
console.log("termination_required");
|
||||||
|
$('#termination_id-new-line').show();
|
||||||
|
console.log($('#termination_id-new').val());
|
||||||
|
$('#termination_id-new').select2({
|
||||||
|
allowClear: true,
|
||||||
|
placeholder: ""
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$('#termination_id-new-line').hide();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'json');
|
'json');
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
</footer>
|
</footer>
|
||||||
<!-- end Footer -->
|
<!-- end Footer -->
|
||||||
|
|
||||||
<script type="text/javascript" src="<?=self::getResourcePath()?>assets/js/vendor.min.js"></script>
|
<script type="text/javascript" src="<?=self::getResourcePath()?>assests/js/vendor.min.js"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
<script type="text/javascript" src="<?=self::getResourcePath()?>js/jquery.min.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=self::getResourcePath()?>js/popper.min.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=self::getResourcePath()?>js/bootstrap.min.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=self::getResourcePath()?>js/bootstrap-autocomplete.min.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=self::getResourcePath()?>fontawesome/js/all.min.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=self::getResourcePath()?>js/jquery.datetimepicker.full.min.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=self::getResourcePath()?>js/select2.min.js"></script>
|
|
||||||
|
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
<ul class="list-unstyled topnav-menu-left m-0">
|
<ul class="list-unstyled topnav-menu-left m-0">
|
||||||
|
|
||||||
<li class="logo-box float-left">
|
<li class="logo-box float-left">
|
||||||
<a href="index.html" class="logo">
|
<a href="<?=self::getUrl("Dashboard")?>" class="logo">
|
||||||
<span class="logo-lg">
|
<span class="logo-lg">
|
||||||
<img src="<?=self::getResourcePath()?>assets/images/the-tool-logo-kopf.png" alt="" style="height:80px; padding-top:12px; padding-left:32px;">
|
<img src="<?=self::getResourcePath()?>assets/images/the-tool-logo-kopf.png" alt="" style="height:80px; padding-top:12px; padding-left:32px;">
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -10,6 +10,20 @@ class Building extends mfBaseModel {
|
|||||||
private $pipeworker;
|
private $pipeworker;
|
||||||
private $terminations;
|
private $terminations;
|
||||||
|
|
||||||
|
public function getAddress($singelLine = false) {
|
||||||
|
if(!$this->id) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$address = $this->street."\n".$this->zip." ".$this->city;
|
||||||
|
if($singelLine) {
|
||||||
|
$address = str_replace("\n", " ", $address);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $address;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function getNewObjectCode() {
|
public function getNewObjectCode() {
|
||||||
if(!$this->zip) {
|
if(!$this->zip) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
class File extends mfBaseModel {
|
class File extends mfBaseModel {
|
||||||
|
private $creator;
|
||||||
|
private $editor;
|
||||||
|
|
||||||
public function delete() {
|
public function delete() {
|
||||||
if($this->id) {
|
if($this->id) {
|
||||||
@@ -28,4 +29,36 @@ class File extends mfBaseModel {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getProperty($name) {
|
||||||
|
if($this->$name == null) {
|
||||||
|
|
||||||
|
if(!$this->id) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($name == "creator") {
|
||||||
|
$this->creator = new User($this->create_by);
|
||||||
|
return $this->creator;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($name == "editor") {
|
||||||
|
$this->editor = new User($this->edit_by);
|
||||||
|
return $this->editor;
|
||||||
|
}
|
||||||
|
|
||||||
|
$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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -21,9 +21,11 @@ class OrderController extends mfBaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected function addAction() {
|
protected function addAction() {
|
||||||
|
// TODO: filter by network permissions
|
||||||
$this->layout()->setTemplate("Order/Form");
|
$this->layout()->setTemplate("Order/Form");
|
||||||
$this->layout()->set("addresses", AddressModel::search(['parents_only' => 1]));
|
$this->layout()->set("addresses", AddressModel::search(['parents_only' => 1]));
|
||||||
$this->layout()->set("products", ProductModel::getAll());
|
$this->layout()->set("products", ProductModel::getAll());
|
||||||
|
$this->layout()->set("terminations", TerminationModel::getAll());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -264,6 +266,16 @@ class OrderController extends mfBaseController {
|
|||||||
if(!$product_id || !$p["product_id"]) {
|
if(!$product_id || !$p["product_id"]) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$prod = new Product($p['product_id']);
|
||||||
|
if(!$prod->id) {
|
||||||
|
$this->log->warn(__CLASS__."::save() Invalid product: ".$p['product_id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$product_data = [];
|
$product_data = [];
|
||||||
$product_data["order_id"] = $new_id;
|
$product_data["order_id"] = $new_id;
|
||||||
$product_data["product_id"] = $p["product_id"];
|
$product_data["product_id"] = $p["product_id"];
|
||||||
@@ -275,6 +287,17 @@ class OrderController extends mfBaseController {
|
|||||||
$product_data["billing_delay"] = 0;
|
$product_data["billing_delay"] = 0;
|
||||||
$product_data["billing_period"] = $p["billing_period"];
|
$product_data["billing_period"] = $p["billing_period"];
|
||||||
|
|
||||||
|
$require_term = false;
|
||||||
|
if(array_key_exists(TT_ATTRIB_TERMINATION_REQUIRED_NAME, $prod->attributes) && $prod->attributes[TT_ATTRIB_TERMINATION_REQUIRED_NAME] == 1) {
|
||||||
|
$require_term = true;
|
||||||
|
if(!$p['termination_id']) {
|
||||||
|
$this->layout()->setFlash("Produkt nicht gespeichert. Produkt erfordert Anschluss.", "warn");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$product_data['termination_id'] = $p['termination_id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if($product_id == "new") {
|
if($product_id == "new") {
|
||||||
$product = OrderProductModel::create($product_data);
|
$product = OrderProductModel::create($product_data);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
class OrderFile extends mfBaseModel {
|
class OrderFile extends mfBaseModel {
|
||||||
private $file;
|
private $file;
|
||||||
|
private $creator;
|
||||||
|
private $editor;
|
||||||
|
|
||||||
public function getProperty($name) {
|
public function getProperty($name) {
|
||||||
if($this->$name == null) {
|
if($this->$name == null) {
|
||||||
|
|||||||
@@ -63,10 +63,10 @@ class ProductController extends mfBaseController {
|
|||||||
$data['description'] = $r->description;
|
$data['description'] = $r->description;
|
||||||
$data['sla_id'] = $r->sla_id;
|
$data['sla_id'] = $r->sla_id;
|
||||||
$data['external'] = ($r->external == 1) ? "1" : "0";
|
$data['external'] = ($r->external == 1) ? "1" : "0";
|
||||||
$data['price_nne'] = Layout::commaToDot($r->price_nne);
|
$data['price_nne'] = ($data['price_nne']) ? Layout::commaToDot($r->price_nne) : 0;
|
||||||
$data['price_nbe'] = Layout::commaToDot($r->price_nbe);
|
$data['price_nbe'] = ($data['price_nbe']) ? Layout::commaToDot($r->price_nbe) : 0;
|
||||||
$data['price'] = Layout::commaToDot($r->price);
|
$data['price'] = ($data['price']) ? Layout::commaToDot($r->price) : 0;
|
||||||
$data['price_setup'] = Layout::commaToDot($r->price_setup);
|
$data['price_setup'] = ($data['price_setup']) ? Layout::commaToDot($r->price_setup) : 0;
|
||||||
$data['billing_period'] = $r->billing_period;
|
$data['billing_period'] = $r->billing_period;
|
||||||
$data['billing_delay'] = $r->billing_delay;
|
$data['billing_delay'] = $r->billing_delay;
|
||||||
$data['ivt_id'] = ($r->ivt_id) ? $r->ivt_id : null;
|
$data['ivt_id'] = ($r->ivt_id) ? $r->ivt_id : null;
|
||||||
@@ -215,6 +215,15 @@ class ProductController extends mfBaseController {
|
|||||||
if(!$product->id) {
|
if(!$product->id) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(is_array($product->attributes) && count($product->attributes)) {
|
||||||
|
$attributes = $product->attributes;
|
||||||
|
$product->data->attributes = [];
|
||||||
|
foreach($attributes as $attrib) {
|
||||||
|
$product->data->attributes[$attrib->name] = $attrib->value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return ["product" => $product->data, "form_id" => $form_id];
|
return ["product" => $product->data, "form_id" => $form_id];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,25 @@ class Termination extends mfBaseModel {
|
|||||||
private $editor;
|
private $editor;
|
||||||
|
|
||||||
|
|
||||||
|
public function getAddress($singelLine = false) {
|
||||||
|
if(!$this->id) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$b = $this->getProperty("building");
|
||||||
|
|
||||||
|
$address = $b->street;
|
||||||
|
if($this->name) {
|
||||||
|
$address .= " ".$this->name;
|
||||||
|
}
|
||||||
|
$address .= "\n".$b->zip." ".$b->city;
|
||||||
|
if($singelLine) {
|
||||||
|
$address = str_replace("\n", " ", $address);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $address;
|
||||||
|
}
|
||||||
|
|
||||||
public function getNewObjectCode() {
|
public function getNewObjectCode() {
|
||||||
if(!$this->building_id) {
|
if(!$this->building_id) {
|
||||||
return false;
|
return false;
|
||||||
@@ -51,6 +70,8 @@ class Termination extends mfBaseModel {
|
|||||||
return $code;
|
return $code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function getProperty($name) {
|
public function getProperty($name) {
|
||||||
if($this->$name == null) {
|
if($this->$name == null) {
|
||||||
|
|
||||||
|
|||||||
67
contrib/migrations/2021-07-30-order-file.sql
Normal file
67
contrib/migrations/2021-07-30-order-file.sql
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
CREATE TABLE `File` (
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
|
`name` varchar(1024) NOT NULL,
|
||||||
|
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci,
|
||||||
|
`filename` varchar(1024) NOT NULL,
|
||||||
|
`store_filename` varchar(1024) NOT NULL,
|
||||||
|
`orig_filename` varchar(1024) NOT NULL,
|
||||||
|
`subfolder` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
|
||||||
|
`create_by` int NOT NULL,
|
||||||
|
`edit_by` int NOT NULL,
|
||||||
|
`create` int NOT NULL,
|
||||||
|
`edit` int NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
|
||||||
|
CREATE TABLE `Order` (
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
|
`owner_id` int DEFAULT NULL,
|
||||||
|
`billingaddress_id` int DEFAULT NULL,
|
||||||
|
`order_date` int NOT NULL,
|
||||||
|
`finish_date` int DEFAULT NULL COMMENT 'timestamp',
|
||||||
|
`billing_type` enum('invoice','sepa') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`bank_account_bank` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||||
|
`bank_account_owner` varchar(1024) NOT NULL,
|
||||||
|
`bank_account_iban` varchar(255) NOT NULL,
|
||||||
|
`bank_account_bic` varchar(64) NOT NULL,
|
||||||
|
`allow_contact` tinyint NOT NULL DEFAULT '0',
|
||||||
|
`allow_spin` tinyint NOT NULL DEFAULT '0',
|
||||||
|
`note` text NOT NULL,
|
||||||
|
`create_by` int NOT NULL,
|
||||||
|
`edit_by` int NOT NULL,
|
||||||
|
`create` int NOT NULL,
|
||||||
|
`edit` int NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
|
||||||
|
CREATE TABLE `OrderFile` (
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
|
`order_id` int NOT NULL,
|
||||||
|
`file_id` int NOT NULL,
|
||||||
|
`name` varchar(1024) NOT NULL,
|
||||||
|
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci,
|
||||||
|
`create_by` int NOT NULL,
|
||||||
|
`edit_by` int NOT NULL,
|
||||||
|
`create` int NOT NULL,
|
||||||
|
`edit` int NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
|
||||||
|
CREATE TABLE `OrderProduct` (
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
|
`order_id` int NOT NULL,
|
||||||
|
`product_id` int NOT NULL,
|
||||||
|
`amount` decimal(9,6) NOT NULL DEFAULT '1.000000',
|
||||||
|
`pos` int NOT NULL,
|
||||||
|
`description` text NOT NULL,
|
||||||
|
`price` int NOT NULL DEFAULT '0',
|
||||||
|
`price_setup` int NOT NULL DEFAULT '0',
|
||||||
|
`billing_delay` int NOT NULL DEFAULT '0' COMMENT 'in months',
|
||||||
|
`billing_period` int NOT NULL COMMENT 'in months',
|
||||||
|
`note` text NOT NULL,
|
||||||
|
`create_by` int NOT NULL,
|
||||||
|
`edit_by` int NOT NULL,
|
||||||
|
`create` int NOT NULL,
|
||||||
|
`edit` int NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
Reference in New Issue
Block a user