WIP Contract/Billing 2024-06-24

This commit is contained in:
Frank Schubert
2024-06-25 12:19:35 +02:00
parent da52a802ef
commit 4589e61ab8
9 changed files with 515 additions and 113 deletions

View File

@@ -4,6 +4,7 @@ class Admin_IvtContractImport {
private $request;
private $log;
private $static_ivt_order_match = [];
private $no_matchcode = [];
public function __construct($request = false) {
$this->request = $request;
@@ -77,6 +78,13 @@ class Admin_IvtContractImport {
16267 => 3079, // schmuck marianne
16786 => 3079
];
$this->no_matchcode = [
9,
2847,
3049,
5719
];
}
/* TODO: Credit */
@@ -166,14 +174,9 @@ class Admin_IvtContractImport {
$order_date = new DateTime($ivt_contract->created);
$order_date->setTime(0,0,0);
$finish_date = new DateTime($ivt_contract->lastdate);
$finish_date->modify("first day of this month");
$finish_date->setTime(0,0,0);
//$finish_date->setDate($finish_date->format("Y"), $finish_date->format("m"), 1);
//$finish_date->modify("+1 hours");
$contract_data = [];
$contract_data['owner_id'] = $customer->id;
@@ -186,23 +189,35 @@ class Admin_IvtContractImport {
$contract_data['price_nne'] = 0;
$contract_data['price_nbe'] = 0;
$contract_data['sla_id'] = $this->getNewSlaId($ivt_contract->sid);
$contract_data['order_date'] = $order_date->getTimestamp();
$contract_data['finish_date'] = $finish_date->getTimestamp();
$contract_data['finish_date_by'] = 1;
$contract_data['imported_from'] = "ivt";
$contract_data['imported_data'] = $ivt_contract->id;
$contract_data['create_by'] = 1;
$contract_data['edit_by'] = 1;
$finish_date = new DateTime($ivt_contract->lastdate);
switch($ip->interval) {
case 0:
$contract_data['billing_period'] = 1;
$finish_date->modify("+1 month");
break;
case 1:
$contract_data['billing_period'] = 12;
$finish_date->modify("+1 year");
break;
}
$order_date = new DateTime($ivt_contract->created);
$order_date->setTime(2,0,0);
$finish_date->modify("first day of this month");
$finish_date->setTime(2,0,0);
//$finish_date->setDate($finish_date->format("Y"), $finish_date->format("m"), 1);
//$finish_date->modify("+1 hours");
$contract_data['order_date'] = $order_date->getTimestamp();
$contract_data['finish_date'] = $finish_date->getTimestamp();
$contract_data['finish_date_by'] = 1;
$neu["customer"] = $customer;
$neu["ivtcustomer"] = $ivt_customer;
@@ -321,6 +336,8 @@ class Admin_IvtContractImport {
foreach($new_contracts as $ivt_customer_id => $contracts) {
$this->addVoipData($ivt_customer_id, $contracts);
if(in_array($ivt_contract->id, $this->no_matchcode)) break;
if(count($contracts) < 2) continue;
$prev_contracts = [];
$primary_matchcode = false;

View File

@@ -163,7 +163,9 @@ class Admin_IvtCreditImport {
$create_date->setTime(2,0);
$finish_date = new DateTime($cust_cred->lastdate);
$finish_date->setDate($finish_date->format("Y"), $finish_date->format("m"), 1);
$finish_date->modify("first day of this month");
$finish_date->setTime(2,0,0);
//$finish_date->setDate($finish_date->format("Y"), $finish_date->format("m"), 1);
$data["orderproduct_id"] = null;
$data["product_id"] = 336; // Mainproduct dummy for crediting import [IVT]
@@ -227,8 +229,7 @@ class Admin_IvtCreditImport {
$journal = ContractjournalModel::create([
'contract_id' => $primary_contract->id,
'type' => "credit_created",
'value' => $primary_contract->id,
//'text' => "IVT customer_credit ".$cust_cred->id."; cid: ".$cust_cred->cust_id."; pid: ".$ivt_cred_product->id." (".$ivt_cred_product->name.")"
'value' => $cred_contract->id,
]);
$journal_id = $journal->save();
if(!$journal_id) {