WIP 2025-03-14 Preorder Billing

This commit is contained in:
Frank Schubert
2025-03-17 12:22:03 +01:00
parent 094da4e7cf
commit 361fc5ee9a
21 changed files with 1782 additions and 146 deletions
@@ -52,8 +52,13 @@ class PreordercampaignOperatorModel {
$db = FronkDB::singleton();
$where = self::getSqlFilter($filter);
mfLoghandler::singleton()->debug($where);
$res = $db->select("PreordercampaignOperator", "*", "$where ORDER BY id");
$sql = "SELECT PreordercampaignOperator.* FROM PreordercampaignOperator
LEFT JOIN PreordercampaignOperatorIsp ON (PreordercampaignOperator.id = PreordercampaignOperatorIsp.campaignoperator_id)
WHERE $where
ORDER BY id
LIMIT 1";
//mfLoghandler::singleton()->debug($sql);
$res = $db->query($sql);
if($db->num_rows($res)) {
$data = $db->fetch_object($res);
$item = new PreordercampaignOperator($data);
@@ -66,32 +71,14 @@ class PreordercampaignOperatorModel {
return null;
}
public static function getFirstOaid($oaid) {
$db = FronkDB::singleton();
if(!$oaid) return null;
$where = self::getSqlFilter(["oaid" => $oaid]);
//mfLoghandler::singleton()->debug($where);
$res = $db->select("PreordercampaignOperator", "*", "$where ORDER BY id");
if($db->num_rows($res)) {
$data = $db->fetch_object($res);
$item = new PreordercampaignOperator($data);
if($item->id) {
return $item;
} else {
return null;
}
}
return null;
}
public static function count($filter) {
$db = FronkDB::singleton();
$where = self::getSqlFilter($filter);
$sql = "SELECT COUNT(*) as cnt FROM PreordercampaignOperator
WHERE $where
LEFT JOIN PreordercampaignOperatorIsp ON (PreordercampaignOperator.id = PreordercampaignOperatorIsp.campaignoperator_id)
WHERE $where
";
$res = $db->query($sql);
@@ -107,9 +94,10 @@ class PreordercampaignOperatorModel {
$db = FronkDB::singleton();
$where = self::getSqlFilter($filter);
$sql = "SELECT * FROM PreordercampaignOperator
WHERE $where
ORDER BY id";
$sql = "SELECT PreordercampaignOperator.* FROM PreordercampaignOperator
LEFT JOIN PreordercampaignOperatorIsp ON (PreordercampaignOperator.id = PreordercampaignOperatorIsp.campaignoperator_id)
WHERE $where
ORDER BY id";
if(is_array($limit) && count($limit)) {
if(is_numeric($limit['start']) && is_numeric($limit['count'])) {
@@ -142,14 +130,21 @@ class PreordercampaignOperatorModel {
if(array_key_exists("preordercampaign_id", $filter)) {
$preordercampaign_id = $filter['preordercampaign_id'];
if(is_numeric($preordercampaign_id)) {
$where .= " AND preordercampaign_id = $preordercampaign_id";
$where .= " AND PreordercampaignOperator.preordercampaign_id = $preordercampaign_id";
}
}
if(array_key_exists("operator_id", $filter)) {
$operator_id = $filter['operator_id'];
if(is_numeric($operator_id)) {
$where .= " AND operator_id = $operator_id";
$where .= " AND PreordercampaignOperator.operator_id = $operator_id";
}
}
if(array_key_exists("isp_id", $filter)) {
$isp_id = $filter['isp_id'];
if(is_numeric($isp_id)) {
$where .= " AND PreordercampaignOperatorIsp.isp_id = $isp_id";
}
}