Merge branch 'fronkdev' of code.fronk.at:fronk/thetool into fronkdev
This commit is contained in:
@@ -261,7 +261,7 @@
|
||||
<label class="col-lg-2 col-form-label" for="fibu_supplier_due">FIBU Lieferanten Zahlungsziel</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="fibu_supplier_due" id="fibu_supplier_due" value="<?=$address->fibu_supplier_due?>" />
|
||||
<small>Standard: 30 Tage</small>
|
||||
<small>Standard: <?=TT_ADDRESS_DEFAULT_SUPPLIER_DUE?> Tage</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
<div class="col">
|
||||
<a href="https://thetool.xinon.at/xfarm/" class="btn btn-primary" target="_blank"><i class="far fa-arrows-to-circle fa-fw"></i> AR-Merge / Fibu Konten Import</a>
|
||||
<a href="<?=self::getUrl("Address", "exportBmd")?>" class="ml-2 btn btn-outline-primary"><i class="fas fa-down-from-dotted-line fa-fw"></i> Inkrementellen BMD-Export starten</a>
|
||||
<?php if($last_bmd_export): ?><small>Letzter Export: <?=date("d.m.Y H:i", $last_bmd_export)?></small><?php endif; ?>
|
||||
|
||||
<a href="<?=self::getUrl("Address", "exportBmd", ["type" => "full"])?>" class="btn btn-outline-danger float-right"><i class="fas fa-down-from-line fa-fw"></i> Vollen BMD-Export starten</a>
|
||||
</div>
|
||||
|
||||
@@ -3,7 +3,7 @@ Lieferant;Kunde;Kundenummer;FIBU-Verrechnungsnummer;FIBU Lieferantennummer;Zahlu
|
||||
|
||||
foreach($addresses as $a):
|
||||
?>
|
||||
<?=$a["is_supplier"]?>;<?=$a["is_customer"]?>;<?=$a["customer_number"]?>;<?=$a["fibu_account_number"]?>;<?=$a["fibu_supplier_number"]?>;<?=$a["fibu_supplier_due"]?>;<?=$this->nl2ws($a["company"])?>;<?=$this->nl2ws($a["firstname"])?>;<?=$this->nl2ws($a["lastname"])?>;<?=$this->nl2ws($a["street"])?>;<?=$this->nl2ws($a["$address->zip"])?>;<?=$this->nl2ws($a["city"])?>;<?=$this->nl2ws($a["country"])?>;<?=$this->nl2ws($a["phone"])?>;<?=$this->nl2ws($a["mobile"])?>;<?=$this->nl2ws($a["email"])?>;<?=$this->nl2ws($a["uid"])?>;<?=$a["billing_type"]?>;<?=$a["billing_delivery"]?>;<?=$a["bank_account_bank"]?>;<?=$a["bank_account_owner"]?>;<?=$a["bank_account_iban"]?>;<?=$a["bank_account_bic"]?>
|
||||
<?=$a["is_supplier"]?>;<?=$a["is_customer"]?>;<?=$a["customer_number"]?>;<?=$a["fibu_account_number"]?>;<?=$a["fibu_supplier_number"]?>;<?=$a["fibu_supplier_due"]?>;<?=$this->nl2ws($a["company"])?>;<?=$this->nl2ws($a["firstname"])?>;<?=$this->nl2ws($a["lastname"])?>;<?=$this->nl2ws($a["street"])?>;<?=$this->nl2ws($a["$address->zip"])?>;<?=$this->nl2ws($a["city"])?>;<?=$this->nl2ws($a["country"])?>;<?=$this->nl2ws($a["phone"])?>;<?=$this->nl2ws($a["mobile"])?>;<?=$this->nl2ws($a["email"])?>;<?=$this->nl2ws($a["uid"])?>;<?=$a["billing_type"]?>;<?=$a["billing_delivery"]?>;<?=$a["bank"]?>;<?=$a["owner"]?>;<?=$a["iban"]?>;<?=$a["bic"]?>
|
||||
|
||||
<?php
|
||||
endforeach;
|
||||
|
||||
@@ -45,6 +45,14 @@ class AddressController extends mfBaseController {
|
||||
$this->layout()->set("request", $this->request);
|
||||
$this->layout()->set("pagination", $pagination);
|
||||
|
||||
|
||||
$last_export = false;
|
||||
$bmd_export_ts = new mfConfig("bmd.export.ts");
|
||||
if($bmd_export_ts->value()) {
|
||||
$last_export = $bmd_export_ts->value();
|
||||
}
|
||||
$this->layout()->set("last_bmd_export", $last_export);
|
||||
|
||||
return true;
|
||||
|
||||
|
||||
@@ -201,13 +209,78 @@ class AddressController extends mfBaseController {
|
||||
$addresses = [];
|
||||
|
||||
foreach(AddressModel::search($search) as $address) {
|
||||
// if supplier -> use it
|
||||
if($address->fibu_supplier_number) {
|
||||
$addresses[$address->fibu_supplier_number] = $address;
|
||||
continue;
|
||||
}
|
||||
|
||||
// if is primary -> use it
|
||||
if($address->fibu_account_number && $address->fibu_primary_account) {
|
||||
$addresses[$address->fibu_account_number] = $address;
|
||||
continue;
|
||||
}
|
||||
|
||||
// if only address with fibu_account_num -> make primary
|
||||
if($address->fibu_account_number && !$address->fibu_primary_account) {
|
||||
// look up other addresses with same account num
|
||||
$address_count = AddressModel::count(["fibu_account_number" => $address->fibu_account_number]);
|
||||
if($address_count === 1) {
|
||||
$address->fibu_primary_account = 1;
|
||||
$address->save();
|
||||
$addresses[$address->fibu_account_number] = $address;
|
||||
continue;
|
||||
}
|
||||
|
||||
// if more addresses with fibu_account_num -> find primary
|
||||
if($address_count > 1) {
|
||||
// find primary
|
||||
$primary = AddressModel::getFirst(["fibu_account_number" => $address->fibu_account_number, "fibu_primary_account" => true]);
|
||||
if($primary) {
|
||||
// use single primary
|
||||
$addresses[$primary->fibu_account_number] = $primary;
|
||||
continue;
|
||||
} else {
|
||||
// if no primary -> make last one primary
|
||||
$new_primary = false;
|
||||
foreach(AddressModel::search(["fibu_account_number" => $address->fibu_account_number]) as $primary) {
|
||||
$new_primary = $primary;
|
||||
}
|
||||
if(!$new_primary) {
|
||||
var_dump($address);exit;
|
||||
}
|
||||
$new_primary->fibu_primary_account = 1;
|
||||
$new_primary->save();
|
||||
$addresses[$new_primary->fibu_account_number] = $new_primary;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
var_dump($address);exit;
|
||||
}
|
||||
|
||||
// if no fibu account number but customer number -> create fibu account number
|
||||
if($address->customer_number && !$address->fibu_account_number) {
|
||||
// Address::afterSave() generates new fibu account number
|
||||
$address->save();
|
||||
if(!$address->fibu_account_number) {
|
||||
var_dump($address);exit;
|
||||
}
|
||||
$addresses[$address->fibu_account_number] = $address;
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$export_addresses = [];
|
||||
|
||||
foreach($addresses as $address) {
|
||||
$a = [];
|
||||
$a["is_supplier"] = (array_key_exists("supplier", $address->types) && $address->types['supplier']) ? "1" : "0";
|
||||
$a["is_customer"] = "1";
|
||||
$a["customer_number"] = $address->customer_number;
|
||||
$a["fibu_account_number"] = $address->fibu_account_number;
|
||||
$a["fibu_supplier_number"] = $address->fibu_supplier_number;
|
||||
$a["fibu_supplier_due"] = $address->fibu_supplier_due;
|
||||
$a["fibu_supplier_due"] = (is_numeric($address->fibu_supplier_due)) ? $address->fibu_supplier_due : TT_ADDRESS_DEFAULT_SUPPLIER_DUE;
|
||||
$a["company"] = $address->company;
|
||||
$a["firstname"] = $address->firstname;
|
||||
$a["lastname"] = $address->lastname;
|
||||
@@ -233,7 +306,7 @@ class AddressController extends mfBaseController {
|
||||
$a["bic"] = $address->bank_account_bic;
|
||||
}
|
||||
|
||||
$addresses[] = $a;
|
||||
$export_addresses[] = $a;
|
||||
}
|
||||
|
||||
|
||||
@@ -241,7 +314,7 @@ class AddressController extends mfBaseController {
|
||||
|
||||
$tpl = new Layout();
|
||||
$tpl->setTemplate("Address/bmd_export.csv");
|
||||
$tpl->set("addresses", $addresses);
|
||||
$tpl->set("addresses", $export_addresses);
|
||||
$csv_content = $tpl->render();
|
||||
|
||||
$filename = "thetool_address_export_".$type."_".date("Y-m-d-H-i-s").".csv";
|
||||
|
||||
@@ -166,7 +166,7 @@ class AddressModel {
|
||||
$res = $db->query($sql);
|
||||
if($db->num_rows($res)) {
|
||||
$data = $db->fetch_object($res);
|
||||
return $data->cnt;
|
||||
return (int)$data->cnt;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
class Building extends mfBaseModel {
|
||||
protected $forcestr = ['street','zip','phone','email','note'];
|
||||
|
||||
private $in_after_save;
|
||||
private $network;
|
||||
private $networksection;
|
||||
private $pop;
|
||||
@@ -29,7 +30,12 @@ class Building extends mfBaseModel {
|
||||
}
|
||||
|
||||
protected function afterSave() {
|
||||
if($this->in_after_save) return true;
|
||||
$this->in_after_save++;
|
||||
|
||||
$this->resetProperties();
|
||||
|
||||
$this->in_after_save--;
|
||||
}
|
||||
|
||||
public function resetProperties() {
|
||||
@@ -43,6 +49,18 @@ class Building extends mfBaseModel {
|
||||
$this->files = null;
|
||||
}
|
||||
|
||||
public function updateUnitCount() {
|
||||
if(!$this->id) return true;
|
||||
|
||||
$unit_count = TerminationModel::count(["building_id" => $this->id]);
|
||||
if($this->units != $unit_count) {
|
||||
$this->units = $unit_count;
|
||||
$this->save();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getNewObjectCode() {
|
||||
if(!$this->zip) {
|
||||
return false;
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
class Termination extends mfBaseModel {
|
||||
protected $forcestr = ['phone','email','note'];
|
||||
|
||||
private $in_after_save = 0;
|
||||
private $building;
|
||||
private $status;
|
||||
private $lineworker;
|
||||
@@ -14,7 +15,16 @@ class Termination extends mfBaseModel {
|
||||
private $creator;
|
||||
private $editor;
|
||||
|
||||
|
||||
protected function afterSave() {
|
||||
if($this->in_after_save) return true;
|
||||
$this->in_after_save++;
|
||||
|
||||
if($this->building_id) {
|
||||
$this->getProperty("building")->updateUnitCount();
|
||||
}
|
||||
|
||||
$this->in_after_save--;
|
||||
}
|
||||
|
||||
public function getAddress($singelLine = false) {
|
||||
if(!$this->id) {
|
||||
|
||||
@@ -69,10 +69,10 @@ class TerminationController extends mfBaseController {
|
||||
}
|
||||
|
||||
// increment Building::units
|
||||
if(is_numeric($building->units)) {
|
||||
/*if(is_numeric($building->units)) {
|
||||
++$building->units;
|
||||
$building->save();
|
||||
}
|
||||
}*/
|
||||
|
||||
$this->layout()->setFlash("Anschluss gespeichert.", "success");
|
||||
$this->redirect("Building", "Index", [], "building=".$term->building_id);
|
||||
@@ -132,10 +132,11 @@ class TerminationController extends mfBaseController {
|
||||
|
||||
|
||||
$term->delete();
|
||||
if($building->units) {
|
||||
$building->updateUnitCount();
|
||||
/*if($building->units) {
|
||||
--$building->units;
|
||||
$building->save();
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
$this->layout()->setFlash("Anschluss gelöscht", "success");
|
||||
|
||||
@@ -49,7 +49,16 @@ class mfConfig {
|
||||
if($value !== null) {
|
||||
$this->value = $value;
|
||||
}
|
||||
return $this->value;
|
||||
$return_value = $this->value;
|
||||
|
||||
if($this->type == "int") {
|
||||
$return_value = (int)$return_value;
|
||||
}
|
||||
if($this->type == "float") {
|
||||
$return_value = (float)$return_value;
|
||||
}
|
||||
|
||||
return $return_value;
|
||||
}
|
||||
|
||||
public function type($type = null) {
|
||||
|
||||
Reference in New Issue
Block a user