Order (multiple voicenumbers) and Contract changes
This commit is contained in:
@@ -256,6 +256,7 @@
|
||||
<?php if(is_array($address->contracts) && count($address->contracts)): ?>
|
||||
<ul class="list-group list-group-flush">
|
||||
<?php foreach($address->contracts as $contract): ?>
|
||||
<?php if($contract->owner_id != $address->id) continue; ?>
|
||||
<li class="list-group-item">
|
||||
<a href="<?=self::getUrl("Contract", "View", ["id" => $contract->id])?>" class="<?=($contract->price < 0) ? "text-danger" : ""?>">
|
||||
<?=$contract->product_name?> <?=($contract->matchcode) ? "[".$contract->matchcode."]" : ""?>
|
||||
|
||||
@@ -386,7 +386,7 @@
|
||||
* billingaddress autocomplete
|
||||
*/
|
||||
<?php if($contract->billingaddress_id && is_object($contract->billingaddress)): ?>
|
||||
$('#billingaddress_id').autoComplete('set', { value: <?=$contract->billingaddress_id?>, text: '<?=($contract->billingaddress_id) ? str_replace("'", "\\'", str_replace(["\n", "\r"], " ", $contract->billingaddress->getCompanyOrName()))." (".$contract->billingaddress->zip." ".$contract->billingaddress->city.", ".$contract->billingaddress->street.")" : ""?>'});
|
||||
$('#billingaddress_id').autoComplete('set', { value: <?=$contract->billingaddress_id?>, text: '<?=($contract->billingaddress_id) ? str_replace("'", "\\'", str_replace(["\n", "\r"], " ", $contract->billingaddress->getCompanyOrName()))." (".$contract->billingaddress->zip." ".$contract->billingaddress->city.", ".$contract->billingaddress->street.")".(($contract->owner->customer_number) ? " [".$contract->owner->customer_number."]" : "") : ""?>'});
|
||||
<?php else: ?>
|
||||
$('#billingaddress_id').autoComplete();
|
||||
<?php endif; ?>
|
||||
|
||||
@@ -241,7 +241,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card border-top-warning">
|
||||
<div class="card-header">
|
||||
<h5>Journaleinträge</h5>
|
||||
|
||||
@@ -664,31 +664,57 @@
|
||||
<div class="col-6">
|
||||
<!-- line to input voicenumber -->
|
||||
<?php if(is_array($product->voicenumbers) && count($product->voicenumbers)): ?>
|
||||
Rufnummer: <strong><?=implode("\n<br />", $product->voicenumbers)?></strong> <i class="fas fa-pencil pointer text-primary" onclick="toggleVoicenumberEdit(<?=$i?>)"></i>
|
||||
Rufnummer: <i class="fas fa-pencil pointer text-primary" onclick="toggleVoicenumberEdit(<?=$i?>)"></i>
|
||||
<?php $numbers = []; foreach($product->voicenumbers as $voicenumber) { $numbers[] = $voicenumber->getPrettyNumber(); } ?>
|
||||
<?php if(count($numbers)): ?>
|
||||
<strong><?=implode(", ", $numbers)?></strong>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="row <?=is_array($product->voicenumbers) && count($product->voicenumbers) ? "hidden" : ""?>" id="voicenumber-edit-<?=$i?>">
|
||||
<div class="col-4" id="voicenumberblock-<?=$i?>-line">
|
||||
<label class="form-label" for="voicenumberblock-<?=$i?>">Nummernblock *</label>
|
||||
<select name="voicenumberblock_id" id="voicenumberblock_id-<?=$i?>" class="form-control select2" onchange="loadVoicenumbers(<?=$i?>)">
|
||||
<option></option>
|
||||
<option value="portin">Rufnummernportierung</option>
|
||||
<?php foreach(VoicenumberblockModel::getAll() as $block): ?>
|
||||
<option value="<?=$block->id?>">+<?=$block->countrycode?> <?=$block->areacode?> (<?=$block->name?>)</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-4 hidden" id="voicenumber-select-<?=$i?>-line">
|
||||
<label class="form-label" for="voicenumber-<?=$i?>">Rufnummer wählen *</label>
|
||||
<select name="products[<?=$i?>][voicenumber]" id="voicenumber-<?=$i?>" class="form-control select2">
|
||||
</select>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col-4" id="voicenumberblock-voiceplan-<?=$i?>-line">
|
||||
<label class="form-label" for="voicenumberblock-<?=$i?>">Sprachtarif *</label>
|
||||
<select name="products[<?=$i?>][voiceplan_id]" id="voiceplan_id-<?=$i?>" class="form-control">
|
||||
<option></option>
|
||||
<?php foreach(VoiceplanModel::getAll() as $plan): ?>
|
||||
<option value="<?=$plan->id?>" <?=($product->voiceplan_id == $plan->id) ? "selected='selected'" : ""?>><?=$plan->name?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="number-lines mt-2">
|
||||
<?php $num = 0; ?>
|
||||
<?php foreach($product->voicenumbers as $voicenumber): ?>
|
||||
<div class="row" id="voicenumber-<?=$i?>-line-<?=$num?>">
|
||||
<div class="col-4" id="voicenumberblock-<?=$i?>-line-<?=$num?>">
|
||||
<label class="form-label" for="voicenumberblock-<?=$i?>-<?=$num?>">Nummernblock *</label>
|
||||
<select name="voicenumberblock_id" id="voicenumberblock_id-<?=$i?>-<?=$num?>" class="form-control select2" onchange="loadVoicenumbers(<?=$i?>, <?=$num?>)" data-i="<?=$i?>" data-num="<?=$num?>" data-number="<?=$voicenumber->getPrettyNumber()?>">
|
||||
<option></option>
|
||||
<option value="portin" <?=(!$voicenumber->voicenumberblock_id) ? "selected='selected'" : ""?>>Rufnummernportierung</option>
|
||||
<?php foreach(VoicenumberblockModel::getAll() as $block): ?>
|
||||
<option value="<?=$block->id?>" <?=($voicenumber->voicenumberblock_id == $block->id) ? "selected='selected'" : ""?>>+<?=$block->countrycode?> <?=$block->areacode?> (<?=$block->name?>)</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-4 hidden" id="voicenumber-custom-<?=$i?>-line">
|
||||
<label class="form-label" for="voicenumber_custom-<?=$i?>">Rufnummer eingeben *</label>
|
||||
<input type="text" class="form-control" name="products[<?=$i?>][voicenumber_custom]" id="voicenumber_custom-<?=$i?>" value="" placeholder="Gesamte Rufnummer (+43 123 456 78 )" />
|
||||
</div>
|
||||
<div class="col-4 hidden" id="voicenumber-select-<?=$i?>-line-<?=$num?>">
|
||||
<label class="form-label" for="voicenumber-<?=$i?>-<?=$num?>">Rufnummer wählen *</label>
|
||||
<select name="products[<?=$i?>][voicenumber][<?=$num?>]" id="voicenumber-<?=$i?>-<?=$num?>" class="form-control select2" data-number="<?=$voicenumber->number?>" data-number_id="<?=$voicenumber->id?>">
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-4 hidden" id="voicenumber-custom-<?=$i?>-line-<?=$num?>">
|
||||
<label class="form-label" for="voicenumber_custom-<?=$i?>-<?=$num?>">Rufnummer eingeben *</label>
|
||||
<input type="text" class="form-control" name="products[<?=$i?>][voicenumber_custom][<?=$num?>]" id="voicenumber_custom-<?=$i?>-<?=$num?>" value="<?=$voicenumber->getPrettyNumber()?>" placeholder="Gesamte Rufnummer (+43 123 456 78 )" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php $num++; endforeach; ?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -808,30 +834,50 @@
|
||||
|
||||
<div class="row mt-1 mb-2 hidden" id="voicenumber-<?=$i?>-line">
|
||||
<div class="col-6">
|
||||
<!-- line to input voicenumber -->
|
||||
<div class="row">
|
||||
<div class="col-4" id="voicenumberblock-<?=$i?>-line">
|
||||
<label class="form-label" for="voicenumberblock-<?=$i?>">Nummernblock *</label>
|
||||
<select name="voicenumberblock_id" id="voicenumberblock_id-<?=$i?>" class="form-control select2" onchange="loadVoicenumbers(<?=$i?>)">
|
||||
<option></option>
|
||||
<option value="portin">Rufnummernportierung</option>
|
||||
<?php foreach(VoicenumberblockModel::getAll() as $block): ?>
|
||||
<option value="<?=$block->id?>">+<?=$block->countrycode?> <?=$block->areacode?> (<?=$block->name?>)</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-4 hidden" id="voicenumber-select-<?=$i?>-line">
|
||||
<label class="form-label" for="voicenumber-<?=$i?>">Rufnummer wählen *</label>
|
||||
<select name="products[<?=$i?>][voicenumber]" id="voicenumber-<?=$i?>" class="form-control select2">
|
||||
</select>
|
||||
</div>
|
||||
<div class="row" id="voicenumber-edit-<?=$i?>">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col-4" id="voicenumberblock-voiceplan-<?=$i?>-line">
|
||||
<label class="form-label" for="voicenumberblock-<?=$i?>">Sprachtarif *</label>
|
||||
<select name="products[<?=$i?>][voiceplan_id]" id="voiceplan_id-<?=$i?>" class="form-control">
|
||||
<option></option>
|
||||
<?php foreach(VoiceplanModel::getAll() as $plan): ?>
|
||||
<option value="<?=$plan->id?>"><?=$plan->name?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="number-lines mt-2">
|
||||
<?php $num = 0; ?>
|
||||
<div class="row" id="voicenumber-<?=$i?>-line-<?=$num?>">
|
||||
<div class="col-4" id="voicenumberblock-<?=$i?>-line-<?=$num?>">
|
||||
<label class="form-label" for="voicenumberblock-<?=$i?>-<?=$num?>">Nummernblock *</label>
|
||||
<select name="voicenumberblock_id" id="voicenumberblock_id-<?=$i?>-<?=$num?>" class="form-control select2" onchange="loadVoicenumbers(<?=$i?>, <?=$num?>)">
|
||||
<option></option>
|
||||
<option value="portin">Rufnummernportierung</option>
|
||||
<?php foreach(VoicenumberblockModel::getAll() as $block): ?>
|
||||
<option value="<?=$block->id?>">+<?=$block->countrycode?> <?=$block->areacode?> (<?=$block->name?>)</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-4 hidden" id="voicenumber-custom-<?=$i?>-line">
|
||||
<label class="form-label" for="voicenumber_custom-<?=$i?>">Rufnummer eingeben *</label>
|
||||
<input type="text" class="form-control" name="products[<?=$i?>][voicenumber_custom]" id="voicenumber_custom-<?=$i?>" value="" placeholder="Gesamte Rufnummer (+43 123 456 78 )" />
|
||||
<div class="col-4 hidden" id="voicenumber-select-<?=$i?>-line-<?=$num?>">
|
||||
<label class="form-label" for="voicenumber-<?=$i?>-<?=$num?>">Rufnummer wählen *</label>
|
||||
<select name="products[<?=$i?>][voicenumber][<?=$num?>]" id="voicenumber-<?=$i?>-<?=$num?>" class="form-control select2">
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-4 hidden" id="voicenumber-custom-<?=$i?>-line-<?=$num?>">
|
||||
<label class="form-label" for="voicenumber_custom-<?=$i?>-<?=$num?>">Rufnummer eingeben *</label>
|
||||
<input type="text" class="form-control" name="products[<?=$i?>][voicenumber_custom][<?=$num?>]" id="voicenumber_custom-<?=$i?>-<?=$num?>" value="" placeholder="Gesamte Rufnummer (+43 123 456 78 )" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php $num++; ?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1004,8 +1050,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(".select2").select2({
|
||||
@@ -1286,7 +1330,19 @@
|
||||
addNewProductLine(Number(id) + 1);
|
||||
|
||||
}
|
||||
|
||||
|
||||
$("select[name=voicenumberblock_id]").each(function(i) {
|
||||
var i = $(this).data("i");
|
||||
var num = $(this).data("num");
|
||||
var number = $(this).data("number");
|
||||
|
||||
console.log(i, num, number);
|
||||
|
||||
if($(this).val().length) {
|
||||
loadVoicenumbers(i, num, number);
|
||||
}
|
||||
});
|
||||
|
||||
function toggleVoicenumberEdit(id) {
|
||||
$('#voicenumber-edit-' + id).toggle();
|
||||
|
||||
@@ -1295,16 +1351,17 @@
|
||||
|
||||
}
|
||||
|
||||
function loadVoicenumbers(id) {
|
||||
var block_id = $("#voicenumberblock_id-" + id).val();
|
||||
function loadVoicenumbers(id, num, number = false) {
|
||||
var block_id = $("#voicenumberblock_id-" + id + "-" + num).val();
|
||||
|
||||
if(block_id == "portin") {
|
||||
$("#voicenumber-select-" + id + "-line").hide();
|
||||
$("#voicenumber-select-" + id + "-line select").val("");
|
||||
$("#voicenumber-" + id).empty();
|
||||
|
||||
$("#voicenumber-custom-" + id + "-line").show();
|
||||
//$("#voicenumberblock-" + id + "-line").hide();
|
||||
$("#voicenumber-select-" + id + "-line-" + num).hide();
|
||||
$("#voicenumber-select-" + id + "-line-" + num + " select").val("");
|
||||
$("#voicenumber-" + id + "-" + num).empty();
|
||||
|
||||
$("#voicenumber-custom-" + id + "-line-" + num).show();
|
||||
addPhoneLine(id, num);
|
||||
//$("#voicenumberblock-" + id + "-line-" + num).hide();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1313,25 +1370,39 @@
|
||||
$.ajax({
|
||||
url: "<?=self::getUrl("Voicenumberblock", "api")?>",
|
||||
type: "POST",
|
||||
context: id,
|
||||
context: {
|
||||
id: id,
|
||||
num: num,
|
||||
default_value: number
|
||||
},
|
||||
data: {
|
||||
do: "getFreeNumbers",
|
||||
id: block_id
|
||||
},
|
||||
success: function(success) {
|
||||
id = this.id;
|
||||
num = this.num;
|
||||
default_value = this.default_value;
|
||||
//console.log(success, id);
|
||||
if(success.status != "OK") return;
|
||||
|
||||
if(("numbers" in success.result) && success.result.numbers.length) {
|
||||
$("#voicenumber-" + id).empty();
|
||||
success.result.numbers.forEach(function(num) {
|
||||
$("#voicenumber-" + id).append("<option value='" + num + "'>+" + num + "</option>");
|
||||
$("#voicenumber-" + id + "-" + num).empty();
|
||||
success.result.numbers.forEach(function(number) {
|
||||
if(number == default_value) {
|
||||
$("#voicenumber-" + id + "-" + num).append("<option value='" + number + "' selected='selected'>+" + number + "</option>");
|
||||
} else {
|
||||
$("#voicenumber-" + id + "-" + num).append("<option value='" + number + "'>+" + number + "</option>");
|
||||
}
|
||||
|
||||
});
|
||||
//$("#voicenumberblock-" + id + "-line").hide();
|
||||
$("#voicenumber-custom-" + id + "-line").hide();
|
||||
$("#voicenumber-custom-" + id + "-line input").val("");
|
||||
//$("#voicenumberblock-" + id + "-line-" + num).hide();
|
||||
$("#voicenumber-custom-" + id + "-line-" + num).hide();
|
||||
$("#voicenumber-custom-" + id + "-line-" + num + " input").val("");
|
||||
|
||||
$("#voicenumber-select-" + id + "-line").show();
|
||||
$("#voicenumber-select-" + id + "-line-" + num).show();
|
||||
|
||||
addPhoneLine(id, num);
|
||||
|
||||
}
|
||||
},
|
||||
@@ -1339,6 +1410,51 @@
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function addPhoneLine(id, num) {
|
||||
++num;
|
||||
|
||||
console.log(id, num);
|
||||
|
||||
if($('#voicenumber-' + id + '-line-' + num).length) {
|
||||
return;
|
||||
}
|
||||
|
||||
console.log("adding " + id + ", " + num);
|
||||
|
||||
new_line = '<div class="row" id="voicenumber-' + id + '-line-' + num + '"> \
|
||||
<div class="col-4 mt-2" id="voicenumberblock-' + id + '-line-' + num + '"> \
|
||||
<label class="form-label" for="voicenumberblock-' + id + '-' + num + '">Nummernblock</label> \
|
||||
<select name="voicenumberblock_id" id="voicenumberblock_id-' + id + '-' + num + '" class="form-control select2" onchange="loadVoicenumbers(' + id + ', ' + num + ')"> \
|
||||
<option></option> \
|
||||
<option value="portin">Rufnummernportierung</option>';
|
||||
|
||||
<?php foreach(VoicenumberblockModel::getAll() as $block): ?>
|
||||
new_line += '<option value="<?=$block->id?>">+<?=$block->countrycode?> <?=$block->areacode?> (<?=$block->name?>)</option>';
|
||||
<?php endforeach; ?>
|
||||
|
||||
new_line += '</select> \
|
||||
</div> \
|
||||
\
|
||||
<div class="col-4 hidden mt-2" id="voicenumber-select-' + id + '-line-' + num + '"> \
|
||||
<label class="form-label" for="voicenumber-' + id + '-' + num + '">Rufnummer wählen *</label> \
|
||||
<select name="products[' + id + '][voicenumber][' + num + ']" id="voicenumber-' + id + '-' + num + '" class="form-control select2"> \
|
||||
</select> \
|
||||
</div> \
|
||||
\
|
||||
<div class="col-4 hidden mt-2" id="voicenumber-custom-' + id + '-line-' + num + '"> \
|
||||
<label class="form-label" for="voicenumber_custom-' + id + '-' + num + '">Rufnummer eingeben *</label> \
|
||||
<input type="text" class="form-control" name="products[' + id + '][voicenumber_custom][' + num + ']" id="voicenumber_custom-' + id + '-' + num + '" value="" placeholder="Gesamte Rufnummer (+43 123 456 78 )" /> \
|
||||
</div> \
|
||||
</div>';
|
||||
|
||||
$("#voicenumber-edit-" + id + " .number-lines").append(new_line);
|
||||
|
||||
$("#voicenumber " + id + "-".select2").select2({
|
||||
allowClear: true,
|
||||
placeholder: ""
|
||||
});
|
||||
}
|
||||
|
||||
/*********************
|
||||
* Form validation
|
||||
@@ -1564,7 +1680,7 @@
|
||||
|
||||
console.log("empty: " + checkEmpty);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1704,8 +1820,7 @@
|
||||
<label class="form-label" for="termination_id-' + i +'">Anschluss</label> \
|
||||
<select name="products[' + i +'][termination_id]" id="termination_id-' + i +'" class="form-control select2"> \
|
||||
<option></option>';
|
||||
|
||||
<?php foreach($terminations as $t): ?>
|
||||
<?php foreach($terminations as $t): ?>
|
||||
new_line += '<option value="<?=$t->id?>"><?=$t->code?> - <?=$t->getAddress(true)?></option>';
|
||||
<?php endforeach; ?>
|
||||
new_line += '</select> \
|
||||
@@ -1715,12 +1830,52 @@
|
||||
<div class="row mt-1 mb-2 hidden" id="voicenumber-' + i + '-line"> \
|
||||
<!-- line to input voicenumber --> \
|
||||
<div class="col-6"> \
|
||||
<label class="form-label" for="voicenumber-' + i + '">Rufnummer</label> \
|
||||
<textarea class="form-control" name="products[' + i + '][voicenumber]" id="voicenumber-' + i + '" placeholder="Eine Rufnummer pro Zeile (+43 123 456 78)" /></textarea> \
|
||||
<small>Wenn Rufnummern bekannt sind oder portiert werden (Eine Rufnummer pro Zeile (+43 123 456 78))</small> \
|
||||
<div class="row"> \
|
||||
<div class="col-4" id="voicenumberblock-voiceplan-' + i + '-line"> \
|
||||
<label class="form-label" for="voicenumberblock-' + i + '">Sprachtarif *</label> \
|
||||
<select name="products[' + i + '][voiceplan_id]" id="voiceplan_id-' + i + '" class="form-control"> \
|
||||
<option></option>';
|
||||
<?php foreach(VoiceplanModel::getAll() as $plan): ?>
|
||||
new_line += '<option value="<?=$plan->id?>"><?=$plan->name?></option>';
|
||||
<?php endforeach; ?>
|
||||
new_line += '</select> \
|
||||
</div> \
|
||||
</div> \
|
||||
<div class="row mt-2" id="voicenumber-edit-' + i + '"> \
|
||||
<div class="col"> \
|
||||
<!-- line to input voicenumber --> \
|
||||
<div class="number-lines"> \
|
||||
<div class="row" id="voicenumber-' + i + '-line-0"> \
|
||||
<div class="col-4" id="voicenumberblock-' + i + '-line-0"> \
|
||||
<label class="form-label" for="voicenumberblock-' + i + '-0">Nummernblock *</label> \
|
||||
<select name="voicenumberblock_id" id="voicenumberblock_id-' + i + '-0" class="form-control select2" onchange="loadVoicenumbers(' + i + ', 0)"> \
|
||||
<option></option> \
|
||||
<option value="portin">Rufnummernportierung</option>';
|
||||
<?php foreach(VoicenumberblockModel::getAll() as $block): ?>
|
||||
new_line += '<option value="<?=$block->id?>">+<?=$block->countrycode?> <?=$block->areacode?> (<?=$block->name?>)</option>';
|
||||
<?php endforeach; ?>
|
||||
new_line += '</select> \
|
||||
</div> \
|
||||
\
|
||||
<div class="col-4 hidden" id="voicenumber-select-' + i + '-line-0"> \
|
||||
<label class="form-label" for="voicenumber-' + i + '-0">Rufnummer wählen *</label> \
|
||||
<select name="products[' + i + '][voicenumber][0]" id="voicenumber-' + i + '-0" class="form-control select2"> \
|
||||
</select> \
|
||||
</div> \
|
||||
\
|
||||
<div class="col-4 hidden" id="voicenumber-custom-' + i + '-line-0"> \
|
||||
<label class="form-label" for="voicenumber_custom-' + i + '-0">Rufnummer eingeben *</label> \
|
||||
<input type="text" class="form-control" name="products[' + i + '][voicenumber_custom][0]" id="voicenumber_custom-' + i + '-0" value="" placeholder="Gesamte Rufnummer (+43 123 456 78 )" /> \
|
||||
</div> \
|
||||
</div> \
|
||||
</div> \
|
||||
</div> \
|
||||
\
|
||||
</div> \
|
||||
\
|
||||
</div> \
|
||||
</div> \
|
||||
\
|
||||
\
|
||||
<div class="row mt-1 mb-2"> \
|
||||
<!-- line 2 --> \
|
||||
<div class="col-6"> \
|
||||
@@ -1729,7 +1884,7 @@
|
||||
</div> \
|
||||
<div class="col-2"> \
|
||||
<label class="form-label" for="contract_term-' + i + '">Mindestvertragslaufzeit</label> \
|
||||
<select class="form-control" name="products[' + i + '][contract_term]" id="contract_term-<?=$i?>" placeholder="Mindestvertragslaufzeit"> \
|
||||
<select class="form-control" name="products[' + i + '][contract_term]" id="contract_term-' + i +'" placeholder="Mindestvertragslaufzeit"> \
|
||||
<option value="0">Keine</option> \
|
||||
<option value="1">1 Monat</option> \
|
||||
<option value="12">12 Monate</option> \
|
||||
@@ -1759,9 +1914,9 @@
|
||||
</div> \
|
||||
</div> \
|
||||
';
|
||||
|
||||
|
||||
$('#products-form').append(new_line);
|
||||
|
||||
|
||||
$("#product_id-" + i).select2({
|
||||
allowClear: true,
|
||||
placeholder: ""
|
||||
|
||||
@@ -779,10 +779,10 @@ class ContractController extends mfBaseController
|
||||
$contract_data['amount'] = ($r->amount) ? (float)$r->amount : 1;
|
||||
$contract_data['vatgroup_id'] = $r->vatgroup_id;
|
||||
$contract_data['sla_id'] = $r->sla_id;
|
||||
$contract_data['price'] = (float)$r->price;
|
||||
$contract_data['price_setup'] = (float)$r->price_setup;
|
||||
$contract_data['price_nne'] = (float)$r->price_nne;
|
||||
$contract_data['price_nbe'] = (float)$r->price_nbe;
|
||||
$contract_data['price'] = (float)Layout::commaToDot($r->price);
|
||||
$contract_data['price_setup'] = (float)Layout::commaToDot($r->price_setup);
|
||||
$contract_data['price_nne'] = (float)Layout::commaToDot($r->price_nne);
|
||||
$contract_data['price_nbe'] = (float)Layout::commaToDot($r->price_nbe);
|
||||
$contract_data['billing_period'] = (int)$r->billing_period;
|
||||
$contract_data['billing_delay'] = (int)$r->billing_delay;
|
||||
$contract_data['note'] = $r->note;
|
||||
|
||||
@@ -931,7 +931,7 @@ class OrderController extends mfBaseController {
|
||||
|
||||
$ext_products = false;
|
||||
$int_products = false;
|
||||
|
||||
|
||||
$ext_products_nbe = 0;
|
||||
|
||||
//var_dump($r->products);exit;
|
||||
@@ -964,8 +964,8 @@ class OrderController extends mfBaseController {
|
||||
$product_data['amount'] = (!empty($p['amount'])) ? $p['amount'] : 1;
|
||||
$product_data["pos"] = ($p["pos"]) ? $p['pos'] : $order->getNewPos();
|
||||
$product_data["description"] = $p["description"];
|
||||
$product_data["price"] = $p["price"] ? Layout::commaToDot($p["price"]) : 0;
|
||||
$product_data["price_setup"] = $p["price_setup"] ? Layout::commaToDot($p["price_setup"]) : 0;
|
||||
$product_data["price"] = trim($p["price"]) ? Layout::commaToDot(trim($p["price"])) : 0;
|
||||
$product_data["price_setup"] = trim($p["price_setup"]) ? Layout::commaToDot(trim($p["price_setup"])) : 0;
|
||||
|
||||
if($this->me->is("Admin") && $p["price_nne"]) {
|
||||
$product_data["price_nne"] = Layout::commaToDot($p["price_nne"]);
|
||||
@@ -1003,29 +1003,44 @@ class OrderController extends mfBaseController {
|
||||
}
|
||||
|
||||
if(array_key_exists(TT_ATTRIB_VOICENUMBER_REQUIRED_NAME, $prod->attributes) && $prod->attributes[TT_ATTRIB_VOICENUMBER_REQUIRED_NAME]->value == 1) {
|
||||
$voicenumbers = [];
|
||||
//var_dump($p);exit;
|
||||
//if($p["voicenumber_custom"]);
|
||||
|
||||
if(array_key_exists("voicenumber", $p) && $p["voicenumber"]) {
|
||||
$number = $p["voicenumber"];
|
||||
}
|
||||
if(array_key_exists("voicenumber_custom", $p) && $p["voicenumber_custom"]) {
|
||||
$number = $p["voicenumber_custom"];
|
||||
}
|
||||
|
||||
$number = preg_replace('/\D/', '', trim($number));
|
||||
if(substr($number, 0, 2) == "00") $number = "+".substr($number, 2);
|
||||
if(preg_match('/^0[^0]/', $number)) {
|
||||
$number = "+43".substr($number, 1);
|
||||
}
|
||||
if(substr($number, 0, 1) != "+") $number = "+$number";
|
||||
//if($number && !in_array($number, $voicenumbers)) $voicenumbers[] = $number;
|
||||
|
||||
$voicenumbers[] = $number;
|
||||
|
||||
$product_data['voicenumber'] = json_encode($voicenumbers);
|
||||
//var_dump($product_data);exit;
|
||||
$voicenumbers = [];
|
||||
//var_dump($p);exit;
|
||||
//if($p["voicenumber_custom"]);
|
||||
|
||||
$numbers = [];
|
||||
if(array_key_exists("voicenumber", $p) && is_array($p["voicenumber"]) && count($p["voicenumber"])) {
|
||||
$numbers = $p["voicenumber"];
|
||||
}
|
||||
if(array_key_exists("voicenumber_custom", $p) && is_array($p["voicenumber_custom"]) && count($p["voicenumber_custom"])) {
|
||||
$numbers = array_merge($numbers, $p["voicenumber_custom"]);
|
||||
}
|
||||
|
||||
foreach($numbers as $number) {
|
||||
if(!$number) continue;
|
||||
|
||||
$number = preg_replace('/\D/', '', trim($number));
|
||||
if(substr($number, 0, 2) == "00") $number = "+" . substr($number, 2);
|
||||
if(preg_match('/^0[^0]/', $number)) {
|
||||
$number = "+43" . substr($number, 1);
|
||||
}
|
||||
if(substr($number, 0, 1) != "+") $number = "+$number";
|
||||
//if($number && !in_array($number, $voicenumbers)) $voicenumbers[] = $number;
|
||||
|
||||
$voicenumbers[] = $number;
|
||||
}
|
||||
|
||||
if($voicenumbers) {
|
||||
$product_data['voicenumber'] = json_encode($voicenumbers);
|
||||
if($p["voiceplan_id"]) {
|
||||
$product_data["voiceplan_id"] = $p["voiceplan_id"];
|
||||
} else {
|
||||
$this->layout()->setFlash("Bitte Sprachtarif bei allen Rufnummern eintragen", "error");
|
||||
}
|
||||
//var_dump($product_data);exit;
|
||||
}
|
||||
|
||||
|
||||
//var_dump($product_data);exit;
|
||||
} else {
|
||||
$product_data['voicenumber'] = null;
|
||||
}
|
||||
@@ -1038,7 +1053,8 @@ class OrderController extends mfBaseController {
|
||||
$product = new OrderProduct($orderproduct_id);
|
||||
$product->update($product_data);
|
||||
}
|
||||
|
||||
|
||||
//var_dump($product);
|
||||
if(!$product->save()) {
|
||||
$this->log->warn("Unable to save OrderProduct:".print_r($product, true));
|
||||
}
|
||||
@@ -1052,6 +1068,7 @@ class OrderController extends mfBaseController {
|
||||
$int_products = true;
|
||||
}
|
||||
}
|
||||
//exit;
|
||||
|
||||
|
||||
if(!$ext_products && !$owner->customer_number) {
|
||||
|
||||
@@ -7,6 +7,7 @@ class OrderProduct extends mfBaseModel {
|
||||
private $cpeprovisioning;
|
||||
private $contract;
|
||||
private $voicenumbers;
|
||||
private $voiceplan;
|
||||
private $editor;
|
||||
private $creator;
|
||||
|
||||
@@ -58,8 +59,38 @@ class OrderProduct extends mfBaseModel {
|
||||
$json = json_decode($this->voicenumber);
|
||||
|
||||
if(!is_array($json)) return [];
|
||||
$this->voicenumbers = $json;
|
||||
|
||||
|
||||
$voicenumbers = [];
|
||||
foreach($json as $number) {
|
||||
$number = str_replace("+","",$number);
|
||||
$voicenumber = VoicenumberModel::getFirst(["number" => $number]);
|
||||
if($voicenumber) {
|
||||
$voicenumbers[] = $voicenumber;
|
||||
} else {
|
||||
// find block
|
||||
$block_id = null;
|
||||
|
||||
$block = Voicenumberblock::findBlock($number);
|
||||
if($block) {
|
||||
$block_id = $block->id;
|
||||
}
|
||||
$voicenumber = VoicenumberModel::create([
|
||||
'voicenumberblock_id' => $block_id,
|
||||
"contract_id" => null,
|
||||
'active' => 1,
|
||||
'activated_date' => date('U'),
|
||||
'routing' => "kolmisoft",
|
||||
'number' => $number,
|
||||
'disabled' => 0
|
||||
]);
|
||||
$voicenumbers[] = $voicenumber;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$this->voicenumbers = $voicenumbers;
|
||||
|
||||
return $this->voicenumbers;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ class OrderProductModel
|
||||
public $product_id;
|
||||
public $termination_id;
|
||||
public $voicenumber;
|
||||
public $voiceplan_id;
|
||||
public $domain;
|
||||
public $upgrade;
|
||||
public $amount;
|
||||
|
||||
@@ -27,7 +27,7 @@ class Voicenumber extends mfBaseModel {
|
||||
$return = "0";
|
||||
}
|
||||
$prefix .= $this->block->areacode;
|
||||
$return .= $this->block->areacode." ".substr($this->number, strlen($prefix));
|
||||
$return .= $this->block->areacode." ".substr($this->number, strlen($prefix)-1);
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
use Phinx\Migration\AbstractMigration;
|
||||
|
||||
final class OrderProductAddVoiceplanId extends AbstractMigration
|
||||
{
|
||||
public function up(): void
|
||||
{
|
||||
if($this->getEnvironment() == "thetool") {
|
||||
$table = $this->table("OrderProduct");
|
||||
$table->addColumn("voiceplan_id", "integer", ["null" => true, "default" => null, "after" => "voicenumber"]);
|
||||
$table->update();
|
||||
}
|
||||
|
||||
if($this->getEnvironment() == "addressdb") {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function down(): void
|
||||
{
|
||||
if($this->getEnvironment() == "thetool") {
|
||||
$this->table("OrderProduct")->removeColumn("voiceplan_id")->save();
|
||||
}
|
||||
|
||||
if($this->getEnvironment() == "addressdb") {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user