From a27b7ee69a91ce31a60a5c490186e699a0736c8f Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Thu, 14 Dec 2023 18:34:16 +0100 Subject: [PATCH] Address::fibu_account_number generated automatically --- application/Address/Address.php | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/application/Address/Address.php b/application/Address/Address.php index 84784c65a..f5bfa2e65 100644 --- a/application/Address/Address.php +++ b/application/Address/Address.php @@ -21,9 +21,25 @@ class Address extends mfBaseModel { if($this->in_after_save) return true; $this->in_after_save = true; + $this->generateFibuAccountNumber(); $this->syncToFibuMerge(); } + private function generateFibuAccountNumber() { + if($this->fibu_account_number || !$this->customer_number) { + return true; + } + + $fibu_account_number = Address::getNextFibuAccountNumber(); + if(!$fibu_account_number) { + return false; + } + + $this->fibu_account_number = $fibu_account_number; + $this->fibu_primary_account = 1; + $this->save(); + } + private function syncToFibuMerge() { if(!$this->customer_number) return true; @@ -197,6 +213,24 @@ class Address extends mfBaseModel { } }*/ + public static function getNextFibuAccountNumber() { + $db = FronkDB::singleton(); + $res = $db->select("Address","fibu_account_number", "fibu_account_number > 0 ORDER BY fibu_account_number DESC LIMIT 1"); + if(!$db->num_rows($res)) { + return 230001; + } + + $data = $db->fetch_object($res); + $last_num = $data->fibu_account_number; + if($last_num) { + $new_num = $last_num + 1; + } else { + $new_num = 230001; + } + return $new_num; + + } + public static function getNextSupplierNumber() { $db = FronkDB::singleton(); $res = $db->select("Address","fibu_supplier_number", "fibu_supplier_number > 0 ORDER BY fibu_supplier_number DESC LIMIT 1");