Order/Form: Changed owner and billingaddress to autocomplete instead of

select
This commit is contained in:
Frank Schubert
2022-01-25 22:39:57 +01:00
parent fec01ee1bc
commit 517174de4c
9 changed files with 385 additions and 115 deletions

View File

@@ -1,4 +1,5 @@
<?php
$includes_external_product = false;
?>
<?php include(realpath(dirname(__FILE__)."/../")."/header.php"); ?>
@@ -41,17 +42,17 @@
<div class="form-group row">
<div class="col-lg-12 mb-2">
<h4>Vertragsinhaber</h4>
<select class="form-control select2" name="owner_id" id="owner_id">
<select class="form-control basicAutoComplete" autocomplete="off" name="owner_id" id="owner_id" data-url="<?=self::getUrl('Address','api')?>?do=findAddress&autocomplete=1" placeholder="Tippen zum suchen..." data-noresults-text="Keine Suchergebnisse">
<option></option>
<option value="new" <?=($order->owner_id == "new") ? "selected='selected'" : ""?>>Neu...</option>
<?php foreach($addresses as $address): ?>
<option value="<?=$address->id?>" <?=($address->id == $order->owner_id) ? "selected='selected'" : ""?>><?=$address->getCompanyOrName()?> (<?=$address->zip?> <?=$address->city?>, <?=$address->street?>)</option>
<?php endforeach; ?>
</select>
</div>
<div class="col-lg-12 mb-2">
<div class="mt-2"><label><input type="checkbox" id="owner_new" /> Neukunde anlegen</label></div>
</div>
<div class="col-lg-12 hidden" id="owner-form">
@@ -152,13 +153,15 @@
<div class="col-lg-12 mb-2">
<h4>Rechungsadresse</h4>
<select class="form-control select2" name="billingaddress_id" id="billingaddress_id">
<select class="form-control basicAutoComplete" autocomplete="off" name="billingaddress_id" id="billingaddress_id" data-url="<?=self::getUrl('Address','api')?>?do=findAddress&autocomplete=1" placeholder="Tippen zum suchen..." data-noresults-text="Keine Suchergebnisse">
<option></option>
<option value="new" <?=($order->billingaddress_id == "new") ? "selected='selected'" : ""?>>Neu...</option>
<?php foreach($addresses as $address): ?>
<option value="<?=$address->id?>" <?=($address->id == $order->billingaddress_id) ? "selected='selected'" : ""?>><?=$address->getCompanyOrName()?> (<?=$address->zip?> <?=$address->city?>, <?=$address->street?>)</option>
<?php endforeach; ?>
</select>
</div>
<div class="col-lg-12 mb-2">
<div class="mt-2"><label><input type="checkbox" id="billingaddress_new" /> Neue Rechnungsadresse anlegen</label></div>
</div>
<div class="col-lg-12 hidden" id="billingaddress-form">
@@ -269,21 +272,21 @@
</div>
</div>
<h5 class="mt-3">Verzögerte Herstellung:</h5>
<h4 class="mt-3">Verzögerte Herstellung:</h4>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="finish_after">Herstellbar ab</label>
<div class="col-lg-4">
<input type="text" class="form-control" name="finish_after" id="finish_after" value="<?=($order->finish_after) ? date("d.m.Y", $order->finish_after) : ""?>" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="finish_after_comment">Verzögerungsgrund</label>
<div class="col-lg-4">
<textarea class="form-control" name="finish_after_comment" id="finish_after_comment" placeholder="Verzögerungsgrund"><?=$order->finish_after_comment?></textarea>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="finish_after">Herstellbar ab</label>
<div class="col-lg-4">
<input type="text" class="form-control" name="finish_after" id="finish_after" value="<?=($order->finish_after) ? date("d.m.Y", $order->finish_after) : ""?>" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="finish_after_comment">Verzögerungsgrund</label>
<div class="col-lg-4">
<textarea class="form-control" name="finish_after_comment" id="finish_after_comment" placeholder="Verzögerungsgrund"><?=$order->finish_after_comment?></textarea>
</div>
</div>
@@ -291,64 +294,68 @@
</div>
<h4>Verrechnung</h4>
<div class="card">
<div class="card-body">
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="billing_type">Verrechnungsart</label>
<div class="col-lg-10">
<select class="form-control" name="billing_type" id="billing_type">
<option value="invoice" <?=($order->billing_type == "invoice") ? "selected='selected'" : ""?>>Rechnung</option>
<option value="sepa" <?=($order->billing_type == "sepa") ? "selected='selected'" : ""?>>SEPA Bankeinzug</option>
</select>
<div id="billing_block" class="hidden">
<h4>Verrechnung</h4>
<div class="card">
<div class="card-body">
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="billing_type">Verrechnungsart</label>
<div class="col-lg-10">
<select class="form-control" name="billing_type" id="billing_type">
<option value="invoice" <?=($order->billing_type == "invoice") ? "selected='selected'" : ""?>>Rechnung</option>
<option value="sepa" <?=($order->billing_type == "sepa") ? "selected='selected'" : ""?>>SEPA Bankeinzug</option>
</select>
</div>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="bank_account_bank">Kreditinstitut</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="bank_account_bank" id="bank_account_bank" value="<?=$order->bank_account_bank?>" />
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="bank_account_bank">Kreditinstitut</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="bank_account_bank" id="bank_account_bank" value="<?=$order->bank_account_bank?>" />
</div>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="bank_account_owner">Kontoinhaber</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="bank_account_owner" id="bank_account_owner" value="<?=$order->bank_account_owner?>" />
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="bank_account_owner">Kontoinhaber</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="bank_account_owner" id="bank_account_owner" value="<?=$order->bank_account_owner?>" />
</div>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="bank_account_iban">IBAN</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="bank_account_iban" id="bank_account_iban" value="<?=$order->bank_account_iban?>" />
<small id="iban_error" class="hidden">IBAN ungültig!</small>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="bank_account_iban">IBAN</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="bank_account_iban" id="bank_account_iban" value="<?=$order->bank_account_iban?>" />
<small id="iban_error" class="hidden">IBAN ungültig!</small>
</div>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="bank_account_bic">BIC</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="bank_account_bic" id="bank_account_bic" value="<?=$order->bank_account_bic?>" />
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="bank_account_bic">BIC</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="bank_account_bic" id="bank_account_bic" value="<?=$order->bank_account_bic?>" />
</div>
</div>
</div>
</div>
</div>
<h4>Einwilligungen</h4>
<div class="card">
<div class="card-body">
<div class="form-group row">
<div class="col-lg-2"></div>
<div class="col-lg-10">
<label class="form-check-label"><input type="checkbox" class="form-check-input" name="allow_contact" id="allow_contact" <?=($order->allow_contact) ? "checked='checked'" : ""?> /> Informationen per Post/Email/Telefon</label>
<div id="accept_block" class="hidden">
<h4>Einwilligungen</h4>
<div class="card">
<div class="card-body">
<div class="form-group row">
<div class="col-lg-2"></div>
<div class="col-lg-10">
<label class="form-check-label"><input type="checkbox" class="form-check-input" name="allow_contact" id="allow_contact" <?=($order->allow_contact) ? "checked='checked'" : ""?> /> Informationen per Post/Email/Telefon</label>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-lg-2"></div>
<div class="col-lg-10">
<label class="form-check-label"><input type="checkbox" class="form-check-input" name="allow_spin" id="allow_spin" <?=($order->allow_spin) ? "checked='checked'" : ""?> /> Auskunft mit Service PIN</label>
<div class="form-group row">
<div class="col-lg-2"></div>
<div class="col-lg-10">
<label class="form-check-label"><input type="checkbox" class="form-check-input" name="allow_spin" id="allow_spin" <?=($order->allow_spin) ? "checked='checked'" : ""?> /> Auskunft mit Service PIN</label>
</div>
</div>
</div>
</div>
@@ -362,6 +369,8 @@
<?php if(is_array($order->products) && count($order->products)): ?>
<?php foreach($order->products as $product): ?>
<?php
if(!is_object($product)) continue;
if($product->product->external == 1) {
$includes_external_product = true;
}
@@ -391,7 +400,7 @@
</div>
<div class="col-2">
<label class="form-label" for="amount-<?=$product->id?>">Anzahl/Menge</label>
<input type="number" class="form-control" name="products[<?=$product->id?>][amount]" id="amount-<?=$product->id?>" value="<?=$product->formatAmount()?>" placeholder="Anzahl/Menge" />
<input type="number" class="form-control" name="products[<?=$product->id?>][amount]" id="amount-<?=$product->id?>" value="<?=($product) ? $product->formatAmount() : ""?>" placeholder="Anzahl/Menge" />
</div>
<div class="col-2">
<label class="form-label" for="billing_period-<?=$product->id?>">Verrechungsperiode</label>
@@ -705,6 +714,74 @@
placeholder: ""
});*/
/************************
* autocomplete
*/
// kunde
<?php if($order->owner_id && is_object(($order->owner))): ?>
$('#owner_id').autoComplete('set', { value: <?=$order->owner_id?>, text: '<?=($order->owner_id) ? $order->owner->getCompanyOrName()." (".$order->owner->zip." ".$order->owner->city.", ".$order->owner->street.")".(($order->owner->customer_number) ? " [".$order->owner->customer_number."]" : "") : ""?>'});
<?php else: ?>
$('#owner_id').autoComplete();
<?php endif; ?>
$('#owner_id').keydown(function() {
if(event.keyCode == 9 || event.keyCode == 13) {
event.preventDefault();
return false;
}
});
$('#owner_new').change(function() {
if($('#owner_new').is(":checked")) {
console.log("is new");
$('#owner_id').autoComplete('set', null);
$('#owner_id').prop('disabled', true);
} else {
$('#owner_id').prop('disabled', false);
}
});
$('#owner_id').on("autocomplete.select", function(evt, item) {
if(item && item.value === 0) {
$('#owner_id').autoComplete('set', null);
}
});
// rechnungsadresse
<?php if($order->billingaddress_id && is_object($order->billingaddress)): ?>
$('#billingaddress_id').autoComplete('set', { value: <?=$order->billingaddress_id?>, text: '<?=($order->billingaddress_id) ? $order->billingaddress->getCompanyOrName()." (".$order->billingaddress->zip." ".$order->billingaddress->city.", ".$order->billingaddress->street.")" : ""?>'});
<?php else: ?>
$('#billingaddress_id').autoComplete();
<?php endif; ?>
$('#billingaddress_id').keydown(function() {
if(event.keyCode == 9 || event.keyCode == 13) {
event.preventDefault();
return false;
}
});
$('#billingaddress_new').change(function() {
if($('#billingaddress_new').is(":checked")) {
console.log("billing is new");
$('#billingaddress_id').autoComplete('set', null);
$('#billingaddress_id').prop('disabled', true);
} else {
$('#billingaddress_id').prop('disabled', false);
}
});
$('#billingaddress_id').on("autocomplete.select", function(evt, item) {
if(item && item.value === 0) {
$('#billingaddress_id').autoComplete('set', null);
}
});
/*
* autocomplete
*******************************/
$('.select2').each(function(){
$(this).select2({
allowClear: true,
@@ -747,7 +824,27 @@
});
<?php endif; ?>
$('#owner_id').change(function() {
$('#owner_new').change(function() {
if($('#owner_new').prop('checked')) {
$('#owner-form').show();
$('#billing_block').show();
$('#accept_block').show();
} else {
$('#owner-form').hide();
$('#billing_block').hide();
$('#accept_block').hide();
}
});
$('#billingaddress_new').change(function() {
if($('#billingaddress_new').prop('checked')) {
$('#billingaddress-form').show();
} else {
$('#billingaddress-form').hide();
}
});
/*$('#owner_id').change(function() {
var val = $('#owner_id').val();
if(val == "new") {
@@ -755,7 +852,7 @@
} else {
$('#owner-form').hide();
}
});
});*/
$('#billingaddress_id').change(function() {
var val = $('#billingaddress_id').val();
@@ -896,8 +993,8 @@
function validateOrderForm() {
var allFields = [
"owner_id", "owner_company", "owner_firstname", "owner_lastname", "owner_street", "owner_zip", "owner_city", "owner_country", "owner_phone", "owner_email",
"billingaddress_id", "billing_company", "billing_firstname", "billing_lastname", "billing_street", "billing_zip", "billing_city", "billing_country", "billing_phone", "billing_email",
"owner_company", "owner_firstname", "owner_lastname", "owner_street", "owner_zip", "owner_city", "owner_country", "owner_phone", "owner_email",
"billing_company", "billing_firstname", "billing_lastname", "billing_street", "billing_zip", "billing_city", "billing_country", "billing_phone", "billing_email",
"order_date", "finish_after", "finish_after_comment", "billing_type", "bank_account_bank", "bank_account_owner", "bank_account_iban", "bank_account_bic"
];
var checkEmpty = [];
@@ -918,7 +1015,7 @@
checkEmpty.push("finish_after_comment");
}
if($('#owner_id').val() == "new") {
if(!$('#owner_id').length) {
if(!$('#owner_company').val()) {
//console.log("no owner_company");
if(!$('#owner_firstname').val() || !$('#owner_lastname').val()) {
@@ -935,14 +1032,14 @@
checkEmpty.push("owner_phone");
checkEmpty.push("owner_email");
}
/*
if(!$('#owner_id :selected').val()) {
$('#owner_id').addClass("invalid");
$('#owner_id').next().find('.select2-selection').addClass('invalid');
error = true;
}
}*/
if($('#billingaddress_id').val() == "new") {
if(!$('#billingaddress_id').length) {
if(!$('#billing_company').val()) {
//console.log("no billing_company");
if(!$('#billing_firstname').val() || !$('#billing_lastname').val()) {
@@ -961,14 +1058,14 @@
}
//alert("error: " + error);
/*
if(!$('#billingaddress_id :selected').val()) {
if(!$('#owner_id :selected').val()) {
$('#billingaddress_id').addClass("invalid");
$('#billingaddress_id').next().find('.select2-selection').addClass('invalid');
error = true;
}
}
}*/
// check bankdaten
if($('#billing_type').val() == "sepa") {
@@ -983,6 +1080,18 @@
}
}
// owner_id & billingaddress_id
if(!$('input[name=owner_id').length) {
error = true;
console.log("owner_id empty");
$('input[name=owner_id').addClass("invalid");
}
if(!$('input[name=billingaddress_id').length) {
error = true;
console.log("billingaddress_id empty");
$('input[name=billingaddress_id').addClass("invalid");
}
if(checkEmpty.length) {
checkEmpty.forEach(function(field) {
if(!$("#" + field).val().length) {

View File

@@ -28,6 +28,7 @@
<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()?>assets/js/bootstrap-select.min.js"></script>
<script type="text/javascript" src="<?=self::getResourcePath()?>js/bootstrap-autocomplete.min.js"></script>

View File

@@ -232,6 +232,89 @@ class AddressController extends mfBaseController {
$this->redirect("Address", "Edit", ['id' => $new_id]);
}
protected function apiAction() {
if(!$this->me->is(["Admin","salespartner"])) {
$this->redirect("Dashboard");
}
$do = $this->request->do;
$data = [];
switch($do) {
case "findAddress":
$return = $this->findAddressApi();
break;
default:
$return = false;
}
if(!is_array($return) || !count($return)) {
$data = ["status" => "error"];
$this->returnJson($data);
}
$data['status'] = "OK";
$data['result'] = $return;
$this->returnJson($data);
}
private function findAddressApi() {
$search = $this->request->q;
$autocomplete = $this->request->autocomplete;
$po = 1;
$role = false;
// if searching for billingaddress, set role and parents_only to 0
if($this->request->role == "billingaddress") {
$role = "billing";
$po = 0;
}
$addresses = [];
$addresses = array_merge($addresses, AddressModel::search(["parents_only" => $po, "addresstype" => [$role], "company" => $search]));
$addresses = array_merge($addresses, AddressModel::search(["parents_only" => $po, "addresstype" => [$role], "firstname" => $search]));
$addresses = array_merge($addresses, AddressModel::search(["parents_only" => $po, "addresstype" => [$role], "lastname" => $search]));
if(!is_array($addresses) && !count($addresses)) {
return false;
}
$all_addresses = [];
// remove duplicates
foreach($addresses as $address) {
if(!array_key_exists($address->id, $all_addresses)) {
$all_addresses[$address->id] = $address;
}
}
$results = [];
if(!$autocomplete) {
foreach($all_addresses as $id => $address) {
$results[$id] = $address->getCompanyOrName()." (".$address->zip." ".$address->city.", ".$address->street.")".(($address->customer_number) ? " [".$address->customer_number."]" : "");
if(count($results) > 5) {
$results["more"] = "...";
break;
}
}
return ["addresses" => $results];
}
// return bootstrap-autocomplete format
foreach($all_addresses as $id => $address) {
$result = ['value' => $id, 'text' => $address->getCompanyOrName()." (".$address->zip." ".$address->city.", ".$address->street.")".(($address->customer_number) ? " [".$address->customer_number."]" : "")];
$results[] = $result;
if(count($results) > 5) {
$results[] = ['value' => 0, 'text' => "&nbsp;&nbsp;--> &nbsp;&nbsp;Mehr Suchergebnisse vorhanden. Bitte Suchebegriff genauer definieren &nbsp;&nbsp;<--"];
break;
}
}
$this->returnJson($results);
}
private function searchAddress() {
}
}

View File

@@ -76,6 +76,21 @@ class AddressModel {
return null;
}
public static function getOne($id) {
if(!is_numeric($id) || !$id) {
throw new Exception("Invalid number", 400);
}
$item = [];
$db = FronkDB::singleton();
$res = $db->select("Address", "*", "id=$id LIMIT 1");
if($db->num_rows($res)) {
$data = $db->fetch_object($res);
$item = new Address($data);
}
return $item;
}
public static function getAll() {
$items = [];
@@ -179,7 +194,7 @@ class AddressModel {
}
}
//mfLoghandler::singleton()->debug($sql);
mfLoghandler::singleton()->debug($sql);
$res = $db->query($sql);
if($db->num_rows($res)) {

View File

@@ -312,20 +312,20 @@ class OrderController extends mfBaseController {
// validate owner
$owner = false;
if(!$r->owner_id) {
/*if(!$r->owner_id) {
$this->layout()->setFlash("Bitte Vertragsinhaber auswählen oder eintragen.", "error");
$this->layout()->set("order", $r);
return $this->add();
}
}*/
if(is_numeric($r->owner_id)) {
if(is_numeric($r->owner_id) && $r->owner_id > 0) {
$owner = new Address($r->owner_id);
if(!$owner->id) {
$this->layout()->setFlash("Ungültiger Vertragsinhaber.", "error");
$this->layout()->set("order", $r);
return $this->add();
}
} elseif($r->owner_id == "new") {
} else {
if(!$r->owner_company && !($r->owner_firstname && $r->owner_lastname)) {
$this->layout()->setFlash("Fehler in Vertragsinhaber: Firmenname oder Vor- und Nachname benötigt.");
$this->layout()->set("order", $r);
@@ -339,11 +339,11 @@ class OrderController extends mfBaseController {
return $this->add();
}
}
} else {
}/* else {
$this->layout()->setFlash("Ungültiger Vertragsinhaber.");
$this->layout()->set("order", $r);
return $this->add();
}
}*/
// validate billindaddress
@@ -357,26 +357,34 @@ class OrderController extends mfBaseController {
$this->layout()->set("order", $r);
return $this->add();
}
} elseif($r->billingaddress_id == "new") {
if(!$r->billing_company && !($r->billingr_firstname && $r->billing_lastname)) {
$this->layout()->setFlash("Fehler in Rechnungsqmpfänger: Firmenname oder Vor- und Nachname benötigt.");
$this->layout()->set("order", $r);
return $this->add();
}
foreach(["street", "zip", "city", "phone", "email"] as $required) {
if(!$r->{"owner_$required"}) {
$this->layout()->setFlash("Fehler in Rechnungsempfänger: Bitte alle benötigten Felder ausfüllen.");
$this->layout()->set("order", $r);
return $this->add();
}
}
} else {
$this->layout()->setFlash("Ungültiger Rechnungsempfänger.");
}
}
// if any required part of new billingaddress is set
$billingaddress_new = false;
if(!$r->billingaddress_id
&& ($r->billing_company || $r->billing_firstname || $r->billing_lastname
|| $r->billing_street || $r->billing_zip || $r->billing_city || $r->billing_phone || $r->billing_email)
) {
$billingaddress_new = true;
if(!$r->billing_company && !($r->billing_firstname && $r->billing_lastname)) {
$this->layout()->setFlash("Fehler in Rechnungsqmpfänger: Firmenname oder Vor- und Nachname benötigt.");
$this->layout()->set("order", $r);
return $this->add();
}
}
foreach(["street", "zip", "city", "phone", "email"] as $required) {
if(!$r->{"billing_$required"}) {
$this->layout()->setFlash("Fehler in Rechnungsempfänger: Bitte alle benötigten Felder ausfüllen.");
$this->layout()->set("order", $r);
return $this->add();
}
}
} /*else {
$this->layout()->setFlash("Ungültiger Rechnungsempfänger.");
$this->layout()->set("order", $r);
return $this->add();
}*/
// validate sepa
if(!$r->billing_type) {
@@ -499,7 +507,7 @@ class OrderController extends mfBaseController {
}
// save owner and billingaddress if new
if($r->owner_id == "new") {
if(!$r->owner_id) {
$owner_id = $owner->save();
if(!$owner_id) {
$this->layout()->setFlash("Fehler beim Speichern des Inhabers", "error");
@@ -508,13 +516,17 @@ class OrderController extends mfBaseController {
$order->owner_id = $owner_id;
$order->save();
}
if($r->billingaddress_id == "new") {
if($billingaddress_new) {
$billingaddress_id = $billingaddress->save();
if(!$billingaddress_id) {
$this->layout()->setFlash("Fehler beim Speichern des Rechnungsempfängers", "error");
$this->redirect("Order", "edit", ['id' => $new_id]);
}
$owner->billingaddress_id = $billingaddress_id;
// create addresstype (billing)
$at = AddresstypeModel::create(['address_id' => $billingaddress_id, 'type' => "billing"]);
$at->save();
$order->billingaddress_id = $billingaddress_id;
$order->save();
}

View File

@@ -17,7 +17,7 @@ $l['customers'] = "Kunden";
$l['supplier'] = "Lieferant";
$l['suppliers'] = "Lieferanten";
$l['contact'] = "Kontakt";
$l['billing'] = "Verrechnungsadresse";
$l['billing'] = "Rechnungsadresse";
$l['business'] = "Business";
$l['residential'] = "Residential";

File diff suppressed because one or more lines are too long

View File

@@ -49,7 +49,7 @@ foreach(IvtCustomerModel::getAll() as $cust) {
$address_data['firstname'] = $cust->firstname;
$address_data['lastname'] = $cust->surname;
$address_data['street'] = $cust->street;
if(!empty($cust->housenumber)) {
if(strlen($cust->housenumber)) {
$address_data['street'] .= " ".$cust->housenumber;
}
$address_data['zip'] = $cust->zip;

View File

@@ -0,0 +1,50 @@
#!/usr/bin/php
<?php
// ivtcustomer id blacklist
//$blacklist = [3805];
//require 'vendor/autoload.php';
require("../config/config.php");
define('FRONKDB_SQLDEBUG',false);
error_reporting(E_ALL & ~(E_NOTICE | E_STRICT | E_DEPRECATED));
require_once(LIBDIR."/mvcfronk/mfRouter/mfRouter.php");
require_once(LIBDIR."/mvcfronk/mfBase/mfBaseModel.php");
require_once(LIBDIR."/mvcfronk/mfBase/mfBaseController.php");
$me = new User(1);
$db = FronkDB::singleton();
//$ivt = new FronkDB(IVT_DBHOST, IVT_DBUSER, IVT_DBPASS, IVT_DBNAME);
$sql = "SELECT * FROM Address WHERE customer_number < 100000 AND customer_number > 1";
$res = $db->query($sql);
if(!$db->num_rows($res)) {
echo "no addresses\n";
exit;
}
while($data = $db->fetch_object($res)) {
$address = new Address($data);
if(!$address->id) {
continue;
}
$cust = new IvtCustomer($address->customer_number);
if(!$cust->id) {
echo "not an ivt customer".$cust->id." - ".$address->customer_number."\n";
}
$address->street = $cust->street;
if(strlen($cust->housenumber)) {
$address->street .= " ".$cust->housenumber;
}
//var_dump($address);exit;
if(!$address->save()) {
echo "Error updateing address";
}
}