Can now add to AddressDB via Preorder/Form

This commit is contained in:
Frank Schubert
2022-12-21 01:43:42 +01:00
parent 6c1c5a8d06
commit 37a3b1f324
9 changed files with 546 additions and 37 deletions
+170 -17
View File
@@ -47,18 +47,109 @@
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="price">Adresse *</label>
<label class="col-lg-2 col-form-label" for="adb_hausnummer_id">Adresse *</label>
<div class="col-lg-10">
<select class="form-control" name="adb_hausnummer_id" id="adb_hausnummer_id" />
<?php if($preorder->adb_hausnummer_id): ?>
<option value="<?=$preorder->adb_hausnummer_id?>" selected="selected"><?=$preorder->adb_hausnummer->plz->plz?> <?=$preorder->adb_hausnummer->strasse->ortschaft->name?>, <?=$preorder->adb_hausnummer->strasse->name?> <?=$preorder->adb_hausnummer->hausnummer?></option>
<?php endif; ?>
</select>
<div id="new-address-toggle" class="alert alert-info mt-1 mb-1 pb-1 pt-1 hidden">
<h5><i class="icon fas fa-info-circle"></i> Adresse nicht gefunden?</h5>
Vertippt? Richtiges Netzgebiet (<strong><?=$campaign->network->name?></strong>) ?<br /><br /><a href="#" onclick="toggleNewAddress()"><i class="far fa-plus-square"></i> Hier klickem um die Adresse neu anzulegen</a>
<div id="new-address" class="mt-0 mb-4 hidden">
<hr />
<div class="row" id="new-address-form">
<div class="col-7 border">
<div class="mb-3">
<h4>Neue Adresse in Adress-Datenbank eintragen:</h4>
<small class="text-danger">Alle mit * markierten Felder sind Pflichtfelder</small>
</div>
<div class="form-group row">
<label class="col-lg-3 col-form-label" for="street">Straße <span class="text-danger">*</span> / Hausnummer <span class="text-danger">*</span></label>
<div class="col-lg-6">
<input type="text" class="form-control basicAutoComplete" autocomplete="off" data-url="<?=self::getUrl('AddressDB','api')?>?do=findStreets&autocomplete=1" name="new_address_street" id="new_address_street" value="<?=$preorder->new_address_street?>" placeholder="Straße" />
</div>
<div class="col-lg-3">
<input type="text" class="form-control" name="new_address_housenumber" id="new_address_housenumber" value="<?=$preorder->new_address_housenumber?>" placeholder="Hausnummer" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-3 col-form-label" for="zip">PLZ <span class="text-danger">*</span> / Ort <span class="text-danger">*</span></label>
<div class="col-lg-2">
<input type="text" class="form-control basicAutoComplete" autocomplete="off" data-url="<?=self::getUrl('AddressDB','api')?>?do=findZips&campaign_id=<?=$campaign->id?>&autocomplete=1" name="new_address_zip" id="new_address_zip" value="<?=$preorder->new_address_zip?>" placeholder="PLZ" />
</div>
<div class="col-lg-7">
<input type="text" class="form-control basicAutoComplete" autocomplete="off" data-url="<?=self::getUrl('AddressDB','api')?>?do=findCities&campaign_id=<?=$campaign->id?>&autocomplete=1" name="new_address_city" id="new_address_city" value="<?=$preorder->new_address_city?>" placeholder="Ort" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-3 col-form-label" for="zip">Ortsteil <span class="text-danger">*</span></label>
<div class="col-lg-9">
<input type="text" class="form-control basicAutoComplete" autocomplete="off" data-url="<?=self::getUrl('AddressDB','api')?>?do=findDistricts&campaign_id=<?=$campaign->id?>&autocomplete=1" name="new_address_district" id="new_address_district" value="<?=$preorder->new_address_zip?>" placeholder="Ortsteil" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-3 col-form-label" for="">Wohneinheit</label>
<div class="col-lg-4">
<div class="form-group row">
<label class="col-lg-4 col-form-label text-right" for="">Block:</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="new_address_block" id="new_address_block" value="<?=$preorder->block?>" />
</div>
</div>
</div>
<div class="col-lg-4">
<div class="form-group row">
<label class="col-lg-4 col-form-label text-right" for="">Stiege:</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="new_address_stiege" id="new_address_stiege" value="<?=$preorder->stiege?>" />
</div>
</div>
</div>
</div>
<div class="form-group row">
<label class="col-lg-3 col-form-label" for=""></label>
<div class="col-lg-4">
<div class="form-group row">
<label class="col-lg-4 col-form-label text-right" for="">Stock:</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="new_address_stock" id="new_address_stock" value="<?=$preorder->stock?>" />
</div>
</div>
</div>
<div class="col-lg-4">
<div class="form-group row">
<label class="col-lg-4 col-form-label text-right" for="">Tür:</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="new_address_tuer" id="new_address_tuer" value="<?=$preorder->tuer?>" />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="price">Wohneinheit *</label>
<div class="form-group row" id="wohneinheit_row">
<label class="col-lg-2 col-form-label" for="adb_wohneinheit_id">Wohneinheit *</label>
<div class="col-lg-10">
<select class="form-control" name="adb_wohneinheit_id" id="adb_wohneinheit_id" />
<?php if($preorder->adb_wohneinheit_id): ?>
@@ -228,34 +319,34 @@
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="company">Firma</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="company" id="company" value="<?=$preorder->company?>" />
<input type="text" class="form-control" name="company" id="company" value="<?=$preorder->company?>" placeholder="Firma" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="uid">UID</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="uid" id="uid" value="<?=$preorder->uid?>" />
<input type="text" class="form-control" name="uid" id="uid" value="<?=$preorder->uid?>" placeholder="UID" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="firstname">Vorname *</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="firstname" id="firstname" value="<?=$preorder->firstname?>" />
<input type="text" class="form-control" name="firstname" id="firstname" value="<?=$preorder->firstname?>" placeholder="Vorname" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="lastname">Nachname *</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="lastname" id="lastname" value="<?=$preorder->lastname?>" />
<input type="text" class="form-control" name="lastname" id="lastname" value="<?=$preorder->lastname?>" placeholder="Nachname" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="street">Straße / Hausnummer *</label>
<div class="col-lg-8">
<input type="text" class="form-control" name="street" id="street" value="<?=$preorder->street?>" />
<div class="col-lg-5">
<input type="text" class="form-control" name="street" id="street" value="<?=$preorder->street?>" placeholder="Straße" />
</div>
<div class="col-lg-2">
<input type="text" class="form-control" name="housenumber" id="housenumber" value="<?=$preorder->housenumber?>" />
<div class="col-lg-5">
<input type="text" class="form-control" name="housenumber" id="housenumber" value="<?=$preorder->housenumber?>" placeholder="Hausnummer" />
</div>
</div>
<div class="form-group row">
@@ -296,22 +387,22 @@
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="zip">PLZ / Ort *</label>
<div class="col-lg-3">
<input type="text" class="form-control" name="zip" id="zip" value="<?=$preorder->zip?>" />
<input type="text" class="form-control" name="zip" id="zip" value="<?=$preorder->zip?>" placeholder="PLZ" />
</div>
<div class="col-lg-7">
<input type="text" class="form-control" name="city" id="city" value="<?=$preorder->city?>" />
<input type="text" class="form-control" name="city" id="city" value="<?=$preorder->city?>" placeholder="Ort" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="phone">Telefon</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="phone" id="phone" value="<?=$preorder->phone?>" />
<input type="text" class="form-control" name="phone" id="phone" value="<?=$preorder->phone?>" placeholder="Telefon" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="email">Email</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="email" id="email" value="<?=$preorder->email?>" />
<input type="text" class="form-control" name="email" id="email" value="<?=$preorder->email?>" placeholder="Email" />
</div>
</div>
@@ -387,7 +478,25 @@
$("#setup_product_id").val($("#setup-activation input.value").val());
<?php endif; ?>
}
$('#new_address_street').autoComplete({minLength: 2}).keydown(preventEnter).change(updateCustomerAddressFromNewAddress).on("autocomplete.select", updateCustomerAddressFromNewAddress);
$('#new_address_zip').autoComplete({minLength: 1}).keydown(preventEnter).change(updateCustomerAddressFromNewAddress).on("autocomplete.select", updateCustomerAddressFromNewAddress);
$('#new_address_city').autoComplete({minLength: 2}).keydown(preventEnter).change(updateCustomerAddressFromNewAddress).on("autocomplete.select", updateCustomerAddressFromNewAddress);
$('#new_address_district').autoComplete({minLength: 2}).keydown(preventEnter);
$('#new_address_housenumber').keydown(preventEnter).change(updateCustomerAddressFromNewAddress).on("autocomplete.select", updateCustomerAddressFromNewAddress);
$('#new_address_block').keydown(preventEnter);
$('#new_address_stiege').keydown(preventEnter);
$('#new_address_stock').keydown(preventEnter);
$('#new_address_tuer').keydown(preventEnter);
function preventEnter() {
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
}
$("#product_id").select2({
allowClear: true,
@@ -421,7 +530,15 @@
dataType: 'json'
},
minimumInputLength: 3,
placeholder: "Suche nach Straße, Hausnummer, Ort"
placeholder: "Suche nach Straße, Hausnummer, Ort",
allowClear: true
});
$('#adb_hausnummer_id').on('select2:close', function(e) {
if(!$('#adb_hausnummer_id').val()) {
$('#new-address-toggle').show();
}
});
@@ -429,6 +546,28 @@
var hausnummer_id = $('#adb_hausnummer_id').val();
if(!hausnummer_id) return;
$('#new-address-toggle').hide();
$('#new-address').hide();
$.get('<?=self::getUrl("AddressDB", "Api")?>',
{
do: "getAddressByHousenumber",
hausnummer_id: hausnummer_id
},
function(success) {
if(success.status != "OK") {
return;
}
var address = success.result;
console.log(address);
$('#new_address_street').val(address.strasse);
$('#new_address_housenumber').val(address.hausnummer);
$('#new_address_zip').val(address.plz);
$('#new_address_city').val(address.ort);
$('#new_address_district').val(address.ortschaft);
},
'json');
$.get('<?=self::getUrl("AddressDB", "Api")?>',
{
@@ -487,6 +626,14 @@
"json");
});
function updateCustomerAddressFromNewAddress() {
$('input[name=street]').val($('#new_address_street').val());
$('input[name=housenumber]').val($('#new_address_housenumber').val());
$('input[name=zip]').val($('#new_address_zip').val());
$('input[name=city]').val($('#new_address_city').val());
}
$('#adb_wohneinheit_id').change(function() {
val = $('#adb_wohneinheit_id').val();
@@ -611,6 +758,12 @@
'json');
}
function toggleNewAddress() {
$('#new-address').toggle();
$('#wohneinheit_row').toggle();
event.preventDefault();
}
</script>
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/footer.php"); ?>