diff --git a/Layout/default/Address/Form.php b/Layout/default/Address/Form.php
index bff629cb1..73e7e9da6 100644
--- a/Layout/default/Address/Form.php
+++ b/Layout/default/Address/Form.php
@@ -261,7 +261,7 @@
- Standard: 30 Tage
+ Standard: =TT_ADDRESS_DEFAULT_SUPPLIER_DUE?> Tage
diff --git a/Layout/default/Address/Index.php b/Layout/default/Address/Index.php
index d37b6fd14..c2d1376bb 100644
--- a/Layout/default/Address/Index.php
+++ b/Layout/default/Address/Index.php
@@ -40,6 +40,7 @@
diff --git a/Layout/default/Address/bmd_export.csv.php b/Layout/default/Address/bmd_export.csv.php
index b8e3cb6dc..ee1f1ac88 100644
--- a/Layout/default/Address/bmd_export.csv.php
+++ b/Layout/default/Address/bmd_export.csv.php
@@ -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"]?>
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";
diff --git a/application/Address/AddressModel.php b/application/Address/AddressModel.php
index e6ca33522..4bc868620 100644
--- a/application/Address/AddressModel.php
+++ b/application/Address/AddressModel.php
@@ -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;
}
diff --git a/lib/mvcfronk/mfConfig/mfConfig.php b/lib/mvcfronk/mfConfig/mfConfig.php
index fcbc8c7d2..d0bc2250a 100644
--- a/lib/mvcfronk/mfConfig/mfConfig.php
+++ b/lib/mvcfronk/mfConfig/mfConfig.php
@@ -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) {