Address: changed country to country_id with Country table

This commit is contained in:
Frank Schubert
2024-02-20 20:20:48 +01:00
parent c83fc9bcca
commit 20163e6008
20 changed files with 455 additions and 54 deletions

View File

@@ -4,6 +4,7 @@ class Address extends mfBaseModel {
protected $forcestr = ['street','company','zip','phone','fax','mobile','note'];
private $in_after_save = 0;
private $country;
private $parent;
private $childaddresses;
private $links = [];
@@ -384,7 +385,7 @@ class Address extends mfBaseModel {
}
$country_code_errors = [];
//$country_code_errors = [];
$export_addresses = [];
foreach($addresses as $fibu_num => $address) {
@@ -409,28 +410,7 @@ class Address extends mfBaseModel {
$a["street"] = $address->street;
$a["zip"] = $address->zip;
$a["city"] = $address->city;
if(strlen($address->country) == 2) {
$a["countrycode"] = trim($address->country);
} else {
$a["countrycode"] = "AT";
if(trim($address->country)) {
$acountry = strtolower(trim($address->country));
$cc = __($acountry, "cc");
$log->debug("is $cc == cc.$acountry");
$log->debug("last translation failed: ".(__last_translation_failed() ? "true" : "false"));
if(__last_translation_failed()) {
//if($cc == "cc.".$acountry) {
$a["countrycode"] = "AT";
// email to buchhaltung
$country_code_errors[$fibu_num] = $address;
} else {
$a["countrycode"] = $cc;
}
}
}
$a["countrycode"] = $address->country->isocode;
$a["phone"] = "";
if($address->mobile) $a["phone"] = $address->mobile;
if($address->phone) $a["phone"] = $address->phone;
@@ -477,6 +457,8 @@ class Address extends mfBaseModel {
$export_addresses[] = $a;
}
/*
* Irrelevant since Country table
if(count($country_code_errors)) {
$msg = "Hallo,\r\n\r\ndas in thetool eingetragene Land von folgenden Kunden/Lieferanten konnte nicht in einen ISO-Code übersetzt werden:\r\n\r\n";
foreach($country_code_errors as $fibu_num => $address) {
@@ -490,7 +472,7 @@ class Address extends mfBaseModel {
$email->setBody($msg);
$email->send();
}
*/
$tpl = new Layout();
$tpl->setTemplate("Address/bmd_export.csv");
$tpl->set("addresses", $export_addresses);

View File

@@ -119,8 +119,8 @@ class AddressController extends mfBaseController {
$this->layout->set("filter", $this->request->filter);
$parents = AddressModel::search(['parent_id' => null]);
$this->layout()->set("parents", $parents);
//$parents = AddressModel::search(['parent_id' => null]);
//$this->layout()->set("parents", $parents);
}
protected function viewAction() {
@@ -234,7 +234,7 @@ class AddressController extends mfBaseController {
$data['street'] = trim($r->street);
$data['zip'] = trim($r->zip);
$data['city'] = trim($r->city);
$data['country'] = trim($r->country);
$data['country_id'] = $r->country_id;
$data['phone'] = trim($r->phone);
$data['fax'] = trim($r->fax);
$data['mobile'] = trim($r->mobile);
@@ -290,7 +290,7 @@ class AddressController extends mfBaseController {
$data['sepa_date'] = date('U');
}
} else {
$data['sepa_date'] = $r->sepa_date;
$data['sepa_date'] = Layout::dateToInt($r->sepa_date);
}
} else {
$data['billing_type'] = "invoice";

View File

@@ -17,7 +17,7 @@ class AddressModel {
public $street;
public $zip;
public $city;
public $country;
public $country_id;
public $phone;
public $fax;
public $mobile;
@@ -71,7 +71,19 @@ class AddressModel {
$where = self::getSqlFilter($filter);
//mfLoghandler::singleton()->debug($where);
$res = $db->select("Address", "*", "$where ORDER BY company, lastname, firstname, zip, city LIMIT 1");
$sql = "SELECT Address.* FROM Address
LEFT JOIN Addresstype ON (Addresstype.address_id = Address.id)
LEFT JOIN Country ON (Country.id = Address.country_id)
WHERE $where
GROUP BY Address.id
ORDER BY company, lastname, firstname, zip, city, Address.id
LIMIT 1
";
$res = $db->query($sql);
//$res = $db->select("Address", "*", "$where ORDER BY company, lastname, firstname, zip, city LIMIT 1");
if($db->num_rows($res)) {
$data = $db->fetch_object($res);
$item = new Address($data);
@@ -165,6 +177,7 @@ class AddressModel {
SELECT Address.id as address_id
FROM Address
LEFT JOIN Addresstype ON (Addresstype.address_id = Address.id)
LEFT JOIN Country ON (Country.id = Address.country_id)
WHERE $where
GROUP BY Address.id
) as tbl";
@@ -193,6 +206,7 @@ class AddressModel {
ORDER BY Address.id";*/
$sql = "SELECT Address.* FROM Address
LEFT JOIN Addresstype ON (Addresstype.address_id = Address.id)
LEFT JOIN Country ON (Country.id = Address.country_id)
WHERE $where
GROUP BY Address.id
ORDER BY company, lastname, firstname, zip, city, Address.id";
@@ -349,7 +363,7 @@ class AddressModel {
if(array_key_exists("country", $filter)) {
$country = FronkDB::singleton()->escape($filter["country"]);
if($country) {
$where .= " AND country like '%$country%'";
$where .= " AND (Country.name like '%$country%' OR Country.isocode = '$country')";
}
}