addressdb: unit_count can now be increased

This commit is contained in:
Frank Schubert
2023-03-31 16:15:07 +02:00
parent 5010f50b44
commit ccf3fda16d
2 changed files with 39 additions and 24 deletions

View File

@@ -284,7 +284,6 @@
</div>
</div>
<?php if(!$address->id): ?>
<hr />
<div class="form-group row">
@@ -293,12 +292,11 @@
<?php if(is_array($save_data) && array_key_exists("unit_count", $save_data)): ?>
<input type="text" class="form-control" name="unit_count" id="unit_count" value="<?=$save_data['unit_count']?>">
<?php else: ?>
<input type="text" class="form-control" name="unit_count" id="unit_count" value="">
<input type="text" class="form-control" name="unit_count" id="unit_count" value="<?=$address->unit_count?>">
<?php endif; ?>
</div>
</div>
<?php endif; ?>
</div>
</div>
@@ -321,7 +319,7 @@
</div>
<script>
$(".select2").select2();
$(".select2").select2({closeOnSelect: false});
$('#strasse').autoComplete({minLength: 2}).keydown(preventEnter);
$('#plz').autoComplete({minLength: 1}).keydown(preventEnter);

View File

@@ -188,7 +188,6 @@ class AddressDBController extends mfBaseController {
}
protected function editAction() {
$id = $this->request->id;
if(!is_numeric($id) || $id < 1) {
$this->layout()->setFlash("Adresse nicht gefunden", "error");
@@ -236,7 +235,6 @@ class AddressDBController extends mfBaseController {
if(!trim($r->$field)) {
$this->layout()->setFlash("'".ucfirst($field)."' darf nicht leer sein!", "error");
return $this->addAction();
//$this->redirect("AddressDB", $mode, ['id' => $id]);
}
}
$address_data[$field] = $this->db()->escape(trim($r->$field));
@@ -298,26 +296,45 @@ class AddressDBController extends mfBaseController {
//$this->redirect("AddressDB");
}
if($mode == "add") {
/*
* Wohneinheiten erstellen
*/
if(is_numeric($r->unit_count) && $r->unit_count) {
$unit_count = $r->unit_count;
$hausnummer = new ADBHausnummer($hausnummer_id);
/*
* Wohneinheiten erstellen
*/
if($r->unit_count > 0) {
for($i = 1; $i <= $r->unit_count; $i++) {
$unit = ADBWohneinheitModel::create([
'hausnummer_id' => $hausnummer_id,
'num' => $i,
]);
$unit_id = $unit->save();
if(!$unit_id) {
$this->log->debug(__CLASS__."::".__METHOD__.": Cannot save Woneinheit");
continue;
$existing_units_count = ADBWohneinheitModel::count(['hausnummer_id' => $hausnummer->id]);
//var_dump($hausnummer,$existing_units_count);exit;
if($existing_units_count < $unit_count) {
$new_units_count = $unit_count - $existing_units_count;
$last_unit_num = 0;
foreach(ADBWohneinheitModel::search(['hausnummer_id' => $hausnummer->id]) as $tmp_unit) {
if($tmp_unit->num > $last_unit_num) {
$last_unit_num = $tmp_unit->num;
}
$unit->oaid = $unit->getNewOAID();
$unit->save();
}
// create wohneinheiten
for($i = 1; $i <= $new_units_count; $i++) {
$num = $last_unit_num + $i;
//echo "$existing_units_count create wohneinheit $num\n";
$unit_data = [
'hausnummer_id' => $hausnummer->id,
'num' => $num,
];
$wohneinheit = ADBWohneinheitModel::create($unit_data);
$wohneinheit_id = $wohneinheit->save();
if(!$wohneinheit_id) {
$this->layout()->setFlash("Fehler beim Erstellen einer Wohneinheit!", "warning");
return $this->addAction();
}
$wohneinheit->oaid = $wohneinheit->getNewOAID();
$wohneinheit->save();
$w++;
}
}
}