diff --git a/app/Controllers/Customer.php b/app/Controllers/Customer.php
index a2931183..0b76818c 100644
--- a/app/Controllers/Customer.php
+++ b/app/Controllers/Customer.php
@@ -3,6 +3,7 @@
namespace App\Controllers;
use App\Models\CustomerModel;
+use App\Models\SubscriptionModel;
class Customer extends BaseController
{
@@ -38,22 +39,35 @@ class Customer extends BaseController
helper('session');
$session_bid = get_business_id();
if ($id === '0') {
+ // Add Customer
$data['page_name'] = 'Add Customer';
$data['customer'] = [];
$data['customer_billing'] = [];
$data['customer_shipping'] = [];
+ $data['subscriptionData'] = [];
+ $data['invoices'] = [];
} else if ($id !== '0') {
+ // Edit Customer
$data['page_name'] = 'Edit Customer';
+ $subscriptionModel = new SubscriptionModel();
+ $subscriptionData = $subscriptionModel->getSubscriptionsByCustomerId($id);
$model = new CustomerModel();
$model->setTable('customers');
$edit_user_details = $model->where(['customer_id' => $id])->first();
$data['customer'] = $edit_user_details;
- $data['customer_billing'] = $this->get_customer_address($id,1);
- $data['customer_shipping'] = $this->get_customer_address($id,2);
+ $data['customer_billing'] = $this->get_customer_address($id, 1);
+ $data['customer_shipping'] = $this->get_customer_address($id, 2);
+ $data['subscriptionData'] = $subscriptionData;
+
+ // Fetch invoice data for the customer
+ $CustomerModel = new CustomerModel();
+ $invoices = $CustomerModel->getInvoicesByCustomerId($id);
+ $data['invoices'] = $invoices;
}
$data['session_bid'] = $session_bid;
$this->render_page('customer_form', $data);
}
+
## For inserting/updating details of customer
public function insert_customer()
diff --git a/app/Controllers/Invoice.php b/app/Controllers/Invoice.php
index 6fe26b8a..bb60f0e8 100644
--- a/app/Controllers/Invoice.php
+++ b/app/Controllers/Invoice.php
@@ -232,26 +232,26 @@ class Invoice extends BaseController
}
}
// echo "
....................";
- $count = count($itemid);
- $invoiceitem_arr = [];
- if($count > 0){
- for ($x = 0; $x < $count; $x++) {
- $invoiceitem_arr[$x]['invoice_id'] = $id;
- $invoiceitem_arr[$x]['product'] = (int)$requestData['item_details'][$x];
- $invoiceitem_arr[$x]['quantity'] = (int)$requestData['quantity'][$x];
- $invoiceitem_arr[$x]['tax'] = (int)$requestData['tax'][$x];
- $invoiceitem_arr[$x]['unit_price'] = (int)$requestData['rate'][$x];
- $invoiceitem_arr[$x]['subtotal'] = (int)$requestData['amount'][$x];
- $invoiceitem_arr[$x]['discount_amount'] = (int)$requestData['discount_amount'][$x];
- $invoiceitem_arr[$x]['discount_type'] =$requestData['discount_type'][$x];
- $invoiceitem_arr[$x]['created_by'] = (int)get_logged_user_id();
- $invoiceitem_arr[$x]['updated_by'] = (int)get_logged_user_id();
- $invoiceitem_arr[$x]['isactive'] = 1;
- $invoiceitem_arr[$x]['invoice_child_id'] = $itemid[$x];
- }
- $statement = $model->saveInvoiceItemDetails($invoiceitem_arr);
+ $count = count($itemid);
+ $invoiceitem_arr = [];
+ if ($count > 0) {
+ for ($x = 0; $x < $count; $x++) {
+ $invoiceitem_arr[$x]['invoice_id'] = $id;
+ $invoiceitem_arr[$x]['product'] = (int)$requestData['item_details'][$x];
+ $invoiceitem_arr[$x]['quantity'] = (int)$requestData['quantity'][$x];
+ $invoiceitem_arr[$x]['tax'] = (int)$requestData['tax'][$x];
+ $invoiceitem_arr[$x]['unit_price'] = (int)$requestData['rate'][$x];
+ $invoiceitem_arr[$x]['subtotal'] = (int)$requestData['amount'][$x];
+ $invoiceitem_arr[$x]['discount_amount'] = (int)$requestData['discount_amount'][$x];
+ $invoiceitem_arr[$x]['discount_type'] =$requestData['discount_type'][$x];
+ $invoiceitem_arr[$x]['created_by'] = (int)get_logged_user_id();
+ $invoiceitem_arr[$x]['updated_by'] = (int)get_logged_user_id();
+ $invoiceitem_arr[$x]['isactive'] = 1;
+ $invoiceitem_arr[$x]['invoice_child_id'] = $itemid[$x];
}
- return $statement;
+ $statement = $model->saveInvoiceItemDetails($invoiceitem_arr);
+ }
+ return $statement;
}
## To Retrive Invoice item details based on invoice ID
@@ -275,17 +275,30 @@ class Invoice extends BaseController
$existed = $model->where($where)->findAll();
$this->logger->Info("Invoice : Going to Inactive ID = " . $id);
- if ($existed) {
- $data['isactive'] = 0;
- $data['updated_by'] = get_logged_user_id();
- $model->update($id, $data);
- $getInvoiceItemDetails = $this->get_invoice_item($id);
- if ($getInvoiceItemDetails) {
- $update_where = ['invoice_id' => (int)$id];
- $model->updateData('invoiceitems', $data, $update_where);
- }
- }
+ if ($existed) {
+ $data['isactive'] = 0;
+ $data['updated_by'] = get_logged_user_id();
+ if ($model->update($id, $data)) {
+ session()->setFlashdata('success', 'Deleted successfully.');
+ $this->logger->info("Invoice: has been Inactived successfully. Inactived ID = " . $id);
+ } else {
+ $this->logger->error("Invoice: Not able to Inactive ID =" . $id);
+ throw new \Exception("Data Not able to Deleted");
+ }
+ $getInvoiceItemDetails = $this->get_invoice_item($id);
+ if ($getInvoiceItemDetails) {
+ $update_where = ['invoice_id' => (int)$id];
+ $model->updateData('invoiceitems', $data, $update_where);
+ }
+ } else {
+ $this->logger->error("Invoice: Does Not Exist To Inactive, ID = " . $id);
+ throw new \Exception("Invoice Already Deleted");
+ }
+ } catch (\Exception $e) {
+ $this->logger->error("Invoice: Err Occur = " . $e->getMessage());
+ session()->setFlashdata('error', 'Message: ' . $e->getMessage());
+ }
return redirect()->route('invoice_list');
}
diff --git a/app/Models/CustomerModel.php b/app/Models/CustomerModel.php
index 8fa07ee0..b3ee3a4a 100644
--- a/app/Models/CustomerModel.php
+++ b/app/Models/CustomerModel.php
@@ -90,6 +90,13 @@ class CustomerModel extends Model
$dataToUpdate = ['isactive' => 0];
$this->db->table('customer_addresses')->where($where)->whereIn('customer_address_id',$missingValues)->update($dataToUpdate);
}
-
+ public function getInvoicesByCustomerId($customer_id)
+{
+ return $this->db->table('invoice')
+ ->select('invoice_number, subtotal, invoice_date')
+ ->where('customer_id', $customer_id)
+ ->get()
+ ->getResult();
+}
}
?>
\ No newline at end of file
diff --git a/app/Models/InvoiceModel.php b/app/Models/InvoiceModel.php
index eed5dc03..017b9a30 100644
--- a/app/Models/InvoiceModel.php
+++ b/app/Models/InvoiceModel.php
@@ -116,6 +116,7 @@ public function updateData($table, $data, $where)
->get()
->getResult();
}
+
}
diff --git a/app/Models/SubscriptionModel.php b/app/Models/SubscriptionModel.php
index 4ab630fe..5992885e 100644
--- a/app/Models/SubscriptionModel.php
+++ b/app/Models/SubscriptionModel.php
@@ -147,7 +147,14 @@ public function getAllCustomerDetailsBySchemeName($schemeName)
return $customerDetails;
}
-
+ public function getSubscriptionsByCustomerId($customerId)
+ {
+ $builder = $this->db->table('subscription');
+ $builder->select('schemes.scheme_name,from_subscription,to_subscription');
+ $builder->join('schemes', 'schemes.scheme_id = subscription.scheme_id');
+ // Query to retrieve subscription records for a specific customer
+ return $builder->get()->getResultArray();
+ }
}
diff --git a/app/Views/customer_form.php b/app/Views/customer_form.php
index 7955c90d..3508f406 100644
--- a/app/Views/customer_form.php
+++ b/app/Views/customer_form.php
@@ -4,9 +4,34 @@
-