Added Admin function mass prouductchange

This commit is contained in:
Frank Schubert
2025-06-03 12:33:00 +02:00
parent cd759272ac
commit 26a59fb588
8 changed files with 935 additions and 107 deletions
+21 -7
View File
@@ -200,15 +200,15 @@ class ContractModel {
* @param Contract $contract
* @return bool|Contract
*/
public static function createCreditForContract($contract) {
public static function createCreditForContract($contract, $crediting_partner_id_override = null) {
$log = mfLoghandler::singleton();
$me = new User();
$me->loadMe();
if(!$contract->id) {
/*if(!$contract->id) {
$log->warning(__METHOD__."(): Invalid Contract object");
return false;
}
}*/
$product = $contract->product;
$owner = $contract->owner;
@@ -224,18 +224,26 @@ class ContractModel {
$crediting_partner_id = false;
$crediting_partner_rate = false;
if($crediting_partner_id_override) {
$crediting_partner_id = $crediting_partner_id_override;
}
$product_attribs = $product->attributes;
if(is_array($product_attribs) && array_key_exists("crediting_partner", $product_attribs) && $product_attribs["crediting_partner"] && is_object($product_attribs["crediting_partner"])) {
if($product_attribs["crediting_partner"]->value) {
$crediting_partner_id = $product_attribs["crediting_partner"]->value;
if(!$crediting_partner_id_override) {
if($product_attribs["crediting_partner"]->value) {
$crediting_partner_id = $product_attribs["crediting_partner"]->value;
}
}
if($product_attribs["crediting_rate"]->value) {
$crediting_partner_rate = str_replace(",", ".",$product_attribs["crediting_rate"]->value);
}
}
//var_dump($crediting_partner_rate, $product);
// or from netowner if anschluss product
if(!$crediting_partner_id && $contract->termination_id) {
if(!$crediting_partner_id_override && !$crediting_partner_id && $contract->termination_id) {
$crediting_partner_id = $contract->termination->building->network->owner_id;
}
@@ -551,6 +559,8 @@ class ContractModel {
} elseif($termination_id) {
$termination_id = FronkDB::singleton()->escape($filter['termination_id']);
$where .= " AND Contract.termination_id = $termination_id";
} elseif($termination_id === null || $termination_id === false || $termination_id == 0) {
$where .= " AND (Contract.termination_id = 0 OR Contract.termination_id IS NULL)";
}
}
@@ -624,8 +634,12 @@ class ContractModel {
if(array_key_exists("billing_period", $filter)) {
$billing_period = $filter['billing_period'];
if(is_numeric($billing_period)) {
if($billing_period == ">0") {
$where .= " AND Contract.billing_period > 0";
}elseif(is_numeric($billing_period)) {
$where .= " AND Contract.billing_period=$billing_period";
}elseif(is_array($billing_period) && count($billing_period)) {
$where .= " AND Contract.billing_period IN (".implode(",", $billing_period).")";
}
}