diff --git a/app/Models/InvoiceModel.php b/app/Models/InvoiceModel.php
index b8e3cf20..44aaf304 100755
--- a/app/Models/InvoiceModel.php
+++ b/app/Models/InvoiceModel.php
@@ -1,143 +1,148 @@
-db->table('invoiceitems')->where('invoice_child_id', $id)->update($row);// Update the row with the specified id
- $affectedRows = $this->db->affectedRows();
- $statement[$i] = "Invoice Item - ".$id." ".$affectedRows ? " Updated":" Not Updated";
- }else{
- if (!empty($row['updated_by'])){
- unset($row['updated_by']); // bcoz here data are inserting here.
- }
- $this->db->table('invoiceitems')->insert($row);
- $insertID = $this->db->insertID();
- $statement[$i] = "Invoice Item - ".$insertID." Inserted";
+ public function saveInvoiceItemDetails($data)
+ {
+ $i = 0;
+ $statement = [];
+ foreach ($data as $row) {
+ $id = isset($row['invoice_child_id']) ? $row['invoice_child_id'] : '';
+ if ($id != '') {
+ unset($row['invoice_child_id']); // Remove the id from the data to avoid updating it
+ unset($row['created_by']); // bcoz here data are Updating here.
+
+ $this->db->table('invoiceitems')->where('invoice_child_id', $id)->update($row); // Update the row with the specified id
+ $affectedRows = $this->db->affectedRows();
+ $statement[$i] = "Invoice Item - " . $id . " " . $affectedRows ? " Updated" : " Not Updated";
+ } else {
+ if (!empty($row['updated_by'])) {
+ unset($row['updated_by']); // bcoz here data are inserting here.
+ }
+ $this->db->table('invoiceitems')->insert($row);
+ $insertID = $this->db->insertID();
+ $statement[$i] = "Invoice Item - " . $insertID . " Inserted";
+ }
}
+ return $statement;
}
- return $statement;
-}
-public function inactiveMissingInvoiceItemDetails($where,$missingValues){
- $dataToUpdate = ['isactive' => 0];
- $this->db->table('invoiceitems')->where($where)->whereIn('invoice_child_id',$missingValues)->update($dataToUpdate);
-}
+ public function inactiveMissingInvoiceItemDetails($where, $missingValues)
+ {
+ $dataToUpdate = ['isactive' => 0];
+ $this->db->table('invoiceitems')->where($where)->whereIn('invoice_child_id', $missingValues)->update($dataToUpdate);
+ }
-public function deleteMissingInvoiceItemDetails($where, $missingValues) {
- $this->db->table('invoiceitems')
- ->where($where)
- ->whereIn('invoice_child_id', $missingValues)
- ->delete();
-}
+ public function deleteMissingInvoiceItemDetails($where, $missingValues)
+ {
+ $this->db->table('invoiceitems')
+ ->where($where)
+ ->whereIn('invoice_child_id', $missingValues)
+ ->delete();
+ }
-public function updateData($table, $data, $where)
-{
+ public function updateData($table, $data, $where)
+ {
$this->db->table($table)->update($data, $where);
$affected_rows = $this->db->affectedRows();
return $affected_rows;
-}
-
-public function InactiveSubscriptionDraftDetails($where,$update_by_id)
-{
- $result = $this->getJoinedData($where);
- $inactive_invoice_ids = array();
- foreach ($result as $item) {
- $inactive_invoice_ids[] = $item['invoice_id'];
}
- if(count($inactive_invoice_ids)>0){
- $this->db->table('subscription')
+ public function InactiveSubscriptionDraftDetails($where, $update_by_id)
+ {
+ $result = $this->getJoinedData($where);
+ $inactive_invoice_ids = array();
+ foreach ($result as $item) {
+ $inactive_invoice_ids[] = $item['invoice_id'];
+ }
+
+ if (count($inactive_invoice_ids) > 0) {
+ $this->db->table('subscription')
->whereIn('invoice_id', $inactive_invoice_ids)
->set('isactive', 0)
->set('updated_by', $update_by_id)
->update();
+ }
+
+ return $inactive_invoice_ids;
}
- return $inactive_invoice_ids;
-}
-
-public function deleteSubscriptionDraftDetails($where,$update_by_id)
-{
- $result = $this->getJoinedData($where);
- $delete_invoice_ids = array();
- foreach ($result as $item) {
- $delete_invoice_ids[] = $item['invoice_id'];
+ public function deleteSubscriptionDraftDetails($where, $update_by_id)
+ {
+ $result = $this->getJoinedData($where);
+ $delete_invoice_ids = array();
+ foreach ($result as $item) {
+ $delete_invoice_ids[] = $item['invoice_id'];
+ }
+ if (count($delete_invoice_ids) > 0) {
+ $this->db->table('subscription')
+ ->whereIn('invoice_id', $delete_invoice_ids)
+ ->delete();
+ }
+ return $delete_invoice_ids;
}
- if(count($delete_invoice_ids)>0){
- $this->db->table('subscription')
- ->whereIn('invoice_id', $delete_invoice_ids)
- ->delete();
- }
- return $delete_invoice_ids;
-}
-## check the customer the scheme already Exist
-public function existsSubscriptionDetails($where){
- $result = $this->getJoinedData($where);
- if(count($result)>0){
- return 1;
- }else{
- return 0;
- }
-}
-
-public function getSubscriptionInvoiceDetail($where)
-{
- $result = $this->getJoinedData($where);
- // print_r($result);die;
- if (!empty($result)) {
- foreach ($result as $i => $item) {
- $invoiceId = $item['invoice_id'];
- $schemes = [];
- $invoiceItems = $this->getInvoiceItems($invoiceId, '');
- foreach ($invoiceItems as $j => $child) {
- if (strtolower($child->category_name) == strtolower('Membership')) {
- $schemes[] = [
- 'scheme_name' => $child->title,
- 'scheme_code' => !empty($child->short_code)?$child->short_code:$child->title,
- ];
- }
- }
- $result[$i]['scheme_name'] = !empty($schemes) ? implode(", ", array_column($schemes, 'scheme_name')) : '';
- $result[$i]['scheme_code'] = !empty($schemes) ? implode(", ", array_column($schemes, 'scheme_code')) : '';
-
- $result[$i]['invoice_items_details'] = $invoiceItems;
+ ## check the customer the scheme already Exist
+ public function existsSubscriptionDetails($where)
+ {
+ $result = $this->getJoinedData($where);
+ if (count($result) > 0) {
+ return 1;
+ } else {
+ return 0;
}
}
- return $result;
-}
-public function getJoinedData($where, $orderby = [])
-{
- // dd($where);
- $query = $this->db->table($this->table.' as I' )
- ->join('customers as C', 'C.customer_id = I.customer_id', 'left')
- ->join('subscription as S', 'S.invoice_id = I.invoice_id', 'left')
- ->join('events as E', 'E.event_id = I.event_id', 'left')
- ->join('business as B', 'B.business_id = I.business_id', 'left')
- ->join('users as U1', 'U1.user_id = I.created_by', 'left')
- ->join('users as U2', 'U2.user_id = I.updated_by', 'left')
- ->select('I.invoice_id,I.wp_api_order_id,I.invoice_number, I.customer_id,CONCAT_WS(" ", C.first_name, C.last_name) as customer_name ,C.mobile_no, I.invoice_date, I.due_date, I.subtotal, I.tax, I.discount, I.total_amount,I.status, I.payment_status, I.order_number, I.payment_method,I.invoice_type, I.event_id,E.event_name, I.business_id,B.title as business_name,DATE_FORMAT(I.created_on, "%d/%m/%Y") as created_on_format,I.created_on, I.created_by,CONCAT_WS(" ", U1.first_name, U1.last_name) as created_by_name,DATE_FORMAT(I.updated_on, "%d/%m/%Y") as updated_on_format, I.updated_by,CONCAT_WS(" ", U2.first_name, U2.last_name) as updated_by_name, I.isactive,C.email as customer_email,C.mobile_no as customer_mobile,I.shipping_address_id,I.shipping_address,I.billing_address_id,I.billing_address,B.address as business_address,B.city as business_city,B.state as business_state,B.postal_code as business_postal_code,B.email as business_email,B.mobile_no as business_mobile_no,S.from_subscription,S.to_subscription,DATEDIFF(S.to_subscription, S.from_subscription) as subscription_in_days,S.scheme_id,(SELECT is_renew FROM subscription as sub WHERE S.sub_id = sub.is_renew LIMIT 1) as renewed')
- ->where($where);
+ public function getSubscriptionInvoiceDetail($where)
+ {
+ $result = $this->getJoinedData($where);
+ // print_r($result);die;
+ if (!empty($result)) {
+ foreach ($result as $i => $item) {
+ $invoiceId = $item['invoice_id'];
+ $schemes = [];
+ $invoiceItems = $this->getInvoiceItems($invoiceId, '');
+ foreach ($invoiceItems as $j => $child) {
+ if (strtolower($child->category_name) == strtolower('Membership')) {
+ $schemes[] = [
+ 'scheme_name' => $child->title,
+ 'scheme_code' => !empty($child->short_code) ? $child->short_code : $child->title,
+ ];
+ }
+ }
+ $result[$i]['scheme_name'] = !empty($schemes) ? implode(", ", array_column($schemes, 'scheme_name')) : '';
+ $result[$i]['scheme_code'] = !empty($schemes) ? implode(", ", array_column($schemes, 'scheme_code')) : '';
+
+ $result[$i]['invoice_items_details'] = $invoiceItems;
+ }
+ }
+ return $result;
+ }
+
+ public function getJoinedData($where, $orderby = [])
+ {
+ // dd($where);
+ $query = $this->db->table($this->table . ' as I')
+ ->join('customers as C', 'C.customer_id = I.customer_id', 'left')
+ ->join('subscription as S', 'S.invoice_id = I.invoice_id', 'left')
+ ->join('events as E', 'E.event_id = I.event_id', 'left')
+ ->join('business as B', 'B.business_id = I.business_id', 'left')
+ ->join('users as U1', 'U1.user_id = I.created_by', 'left')
+ ->join('users as U2', 'U2.user_id = I.updated_by', 'left')
+ ->select('I.invoice_id,I.wp_api_order_id,I.invoice_number, I.customer_id,CONCAT_WS(" ", C.first_name, C.last_name) as customer_name ,C.mobile_no, I.invoice_date, I.due_date, I.subtotal, I.tax, I.discount, I.total_amount,I.status, I.payment_status, I.order_number, I.payment_method,I.invoice_type, I.event_id,E.event_name, I.business_id,B.title as business_name,DATE_FORMAT(I.created_on, "%d/%m/%Y") as created_on_format,I.created_on, I.created_by,CONCAT_WS(" ", U1.first_name, U1.last_name) as created_by_name,DATE_FORMAT(I.updated_on, "%d/%m/%Y") as updated_on_format, I.updated_by,CONCAT_WS(" ", U2.first_name, U2.last_name) as updated_by_name, I.isactive,C.email as customer_email,C.mobile_no as customer_mobile,I.shipping_address_id,I.shipping_address,I.billing_address_id,I.billing_address,B.address as business_address,B.city as business_city,B.state as business_state,B.postal_code as business_postal_code,B.email as business_email,B.mobile_no as business_mobile_no,S.from_subscription,S.to_subscription,DATEDIFF(S.to_subscription, S.from_subscription) as subscription_in_days,S.scheme_id,(SELECT is_renew FROM subscription as sub WHERE S.sub_id = sub.is_renew LIMIT 1) as renewed')
+ ->where($where);
// if (!empty($orderby)) {
// $query->orderBy($orderby[0], $orderby[1]);
// } else {
@@ -147,55 +152,58 @@ public function getJoinedData($where, $orderby = [])
$query->orderBy('I.invoice_id', 'DESC');
// $query->groupBy('I.invoice_id');
$resultArray = $query->get()->getResultArray();
-
- // Print the last executed query
- //echo $this->db->getLastQuery();die;
- return $resultArray;
-}
+ // Print the last executed query
+ //echo $this->db->getLastQuery();die;
+
+ return $resultArray;
+ }
## subscription_inactive
- public function subscription_inactive(){
+ public function subscription_inactive()
+ {
$now = date('Y-m-d');
- $result = $this->db->table('subscription as S')
+ $result = $this->db->table('subscription as S')
->select('S.sub_id, S.scheme_id, S.customer_id, S.business_id,S.invoice_id,S.mode,S.from_subscription, S.to_subscription, S.is_renew, S.isactive')
- ->where("S.isactive",1)
- ->where("S.to_subscription < ",$now)
+ ->where("S.isactive", 1)
+ ->where("S.to_subscription < ", $now)
->get()
->getResultArray();
// echo "
";print_r($result);echo " ";die;
- $returnMessages = [];$i = 0 ;$j = 0;
+ $returnMessages = [];
+ $i = 0;
+ $j = 0;
if (!empty($result)) {
- foreach ($result as $row) {
- // $this->db->table('invoiceitems')->where(['invoice_id' => $row['invoice_id']])->update(['from_subscription' => NULL,'to_subscription' => NULL]);//first child
- $this->db->table('subscription')->where(['sub_id' => $row['sub_id']])->update(['isactive' => 0]);//second child
- $affectedRows = $this->db->affectedRows();
- if ($affectedRows) {
- $returnMessages['message'] = "Success for sub_id: " . $row['sub_id'];
- $returnMessages['success_rating'] = $i++;
- }else {
- $returnMessages['message'] = 'Failed to update subscription with sub_id ' . $row['sub_id'] . '. No rows were affected.';
- $returnMessages['error_rating'] = $j++;
- }
+ foreach ($result as $row) {
+ // $this->db->table('invoiceitems')->where(['invoice_id' => $row['invoice_id']])->update(['from_subscription' => NULL,'to_subscription' => NULL]);//first child
+ $this->db->table('subscription')->where(['sub_id' => $row['sub_id']])->update(['isactive' => 0]); //second child
+ $affectedRows = $this->db->affectedRows();
+ if ($affectedRows) {
+ $returnMessages['message'] = "Success for sub_id: " . $row['sub_id'];
+ $returnMessages['success_rating'] = $i++;
+ } else {
+ $returnMessages['message'] = 'Failed to update subscription with sub_id ' . $row['sub_id'] . '. No rows were affected.';
+ $returnMessages['error_rating'] = $j++;
}
+ }
return $returnMessages;
// return implode("\n", $returnMessages);
} else {
return "No data";
}
}
-
+
public function getDetailForApproveNotifications($where)
{
$result = $this->getJoinedData($where);
- if(!empty($result)){
+ if (!empty($result)) {
foreach ($result as $object) {
$invoiceId = $object['invoice_id'];
- $items = $this->getInvoiceItems($invoiceId,'');
+ $items = $this->getInvoiceItems($invoiceId, '');
}
- }else{
+ } else {
$items = [];
}
$data['invoice'] = $result;
@@ -226,7 +234,7 @@ public function getJoinedData($where, $orderby = [])
// // ->select(' customer_bill_country')
// ->get()
// ->getResult();
-
+
// }
public function getInvoiceData($id)
{
@@ -239,62 +247,61 @@ public function getJoinedData($where, $orderby = [])
// Fetch invoice data
return $this->db->table('invoice')
- ->where('invoice_id', $id)
- ->join('customers as C','C.customer_id= invoice.customer_id','left')
- ->join('business as B','B.business_id = invoice.business_id','left')
- ->join('customer_addresses as A','A.customer_address_id=invoice.billing_address_id AND A.address_type = 1','left')
- ->join('customer_addresses as S','S.customer_address_id=invoice.shipping_address_id AND S.address_type = 2','left')
- ->join('states', 'states.state_short_name = A.state AND A.country = "IN"', 'left')
- ->join('countries', 'countries.country_short_name = A.country', 'left')
- ->select('invoice.*,DATE_FORMAT(invoice.invoice_date, "%d/%m/%Y") AS formatted_invoice_date,DATE_FORMAT(invoice.due_date, "%d/%m/%Y") AS formatted_due_date ,CONCAT_WS(" ", C.first_name, C.last_name) as customer_name,C.mobile_no,C.email,A.address_1, A.address_2,A.postal_code,A.city, A.state,C.mobile_no as customer_mobile')
- ->select('B.title as company_name,B.business_logo,B.terms as company_terms,B.address as company_address,B.city as company_city,B.state as company_state,B.postal_code as company_postal_code,B.email as company_email,B.mobile_no as company_mobile_no')
- ->select('COALESCE(NULLIF(states.state_name, ""), A.state) AS customer_bill_state')
- ->select('COALESCE(NULLIF(states.state_name, ""), S.state) AS customer_ship_state')
- ->select('CONCAT_WS(" ", A.first_name, A.last_name) as customer_biller_name,concat(A.address_1," ", A.address_2) as customer_bill_address,A.postal_code as customer_bill_postal_code ,A.city as customer_bill_city, countries.country_name as customer_bill_country,A.country as bcountry,A.state as bstate,A.customer_address_id as baddr_id,A.email as bemail,A.mobile_no as bmobile')
- ->select('CONCAT_WS(" ", S.first_name, S.last_name) as customer_shipper_name,concat(S.address_1," ", S.address_2) as customer_ship_address,S.postal_code as customer_ship_postal_code ,S.city as customer_ship_city, countries.country_name as customer_ship_country,S.country as scountry,S.state as sstate,S.customer_address_id as saddr_id,S.email as semail,S.mobile_no as smobile')
- ->get()
- ->getResult();
-
+ ->where('invoice_id', $id)
+ ->join('customers as C', 'C.customer_id= invoice.customer_id', 'left')
+ ->join('business as B', 'B.business_id = invoice.business_id', 'left')
+ ->join('customer_addresses as A', 'A.customer_address_id=invoice.billing_address_id AND A.address_type = 1', 'left')
+ ->join('customer_addresses as S', 'S.customer_address_id=invoice.shipping_address_id AND S.address_type = 2', 'left')
+ ->join('states', 'states.state_short_name = A.state AND A.country = "IN"', 'left')
+ ->join('countries', 'countries.country_short_name = A.country', 'left')
+ ->select('invoice.*,DATE_FORMAT(invoice.invoice_date, "%d/%m/%Y") AS formatted_invoice_date,DATE_FORMAT(invoice.due_date, "%d/%m/%Y") AS formatted_due_date ,CONCAT_WS(" ", C.first_name, C.last_name) as customer_name,C.mobile_no,C.email,A.address_1, A.address_2,A.postal_code,A.city, A.state,C.mobile_no as customer_mobile')
+ ->select('B.title as company_name,B.business_logo,B.terms as company_terms,B.address as company_address,B.city as company_city,B.state as company_state,B.postal_code as company_postal_code,B.email as company_email,B.mobile_no as company_mobile_no')
+ ->select('COALESCE(NULLIF(states.state_name, ""), A.state) AS customer_bill_state')
+ ->select('COALESCE(NULLIF(states.state_name, ""), S.state) AS customer_ship_state')
+ ->select('CONCAT_WS(" ", A.first_name, A.last_name) as customer_biller_name,concat(A.address_1," ", A.address_2) as customer_bill_address,A.postal_code as customer_bill_postal_code ,A.city as customer_bill_city, countries.country_name as customer_bill_country,A.country as bcountry,A.state as bstate,A.customer_address_id as baddr_id,A.email as bemail,A.mobile_no as bmobile')
+ ->select('CONCAT_WS(" ", S.first_name, S.last_name) as customer_shipper_name,concat(S.address_1," ", S.address_2) as customer_ship_address,S.postal_code as customer_ship_postal_code ,S.city as customer_ship_city, countries.country_name as customer_ship_country,S.country as scountry,S.state as sstate,S.customer_address_id as saddr_id,S.email as semail,S.mobile_no as smobile')
+ ->get()
+ ->getResult();
}
// this function Also Used For Approve Notification.
- public function getInvoiceItems($id,$stringflag)
- {
+ public function getInvoiceItems($id, $stringflag)
+ {
- if ($stringflag == 'groupby') {
- $select = ' B.*, GROUP_CONCAT(C.name SEPARATOR \',\') as name,invoiceitems.*';
- $group_by = 'invoiceitems.invoice_child_id';
- } else {
- $select = 'invoiceitems.*, B.*, C.name as category_name';
- $group_by = "";
- }
-
- $data = $this->db->table('invoiceitems')
- ->where(['invoice_id' => $id, 'invoiceitems.isactive' => 1])
- ->join('books as B', 'B.book_id = invoiceitems.product', 'left')
- ->join('book_categories as BC', 'BC.book_id = invoiceitems.product', 'left')
- ->join('category as C', 'C.id = BC.category_id', 'left')
- ->select($select)
- ->groupBy($group_by) // Fixed the variable name here
- ->get()
- ->getResult();
- //->orderBy("book_img_id", "asc") // Order by book_img_id in ascending order
- //->limit(1,0)
-
-
- // print_r($this->db->getLastQuery());die;
- // print_r($data);die("ends -- here");
- return $data;
+ if ($stringflag == 'groupby') {
+ $select = ' B.*, GROUP_CONCAT(C.name SEPARATOR \',\') as name,invoiceitems.*';
+ $group_by = 'invoiceitems.invoice_child_id';
+ } else {
+ $select = 'invoiceitems.*, B.*, C.name as category_name';
+ $group_by = "";
}
-
- public function getMembershipListForCustomer($category, $id)
- {
+ $data = $this->db->table('invoiceitems')
+ ->where(['invoice_id' => $id, 'invoiceitems.isactive' => 1])
+ ->join('books as B', 'B.book_id = invoiceitems.product', 'left')
+ ->join('book_categories as BC', 'BC.book_id = invoiceitems.product', 'left')
+ ->join('category as C', 'C.id = BC.category_id', 'left')
+ ->select($select)
+ ->groupBy($group_by) // Fixed the variable name here
+ ->get()
+ ->getResult();
+ //->orderBy("book_img_id", "asc") // Order by book_img_id in ascending order
+ //->limit(1,0)
+
+
+ // print_r($this->db->getLastQuery());die;
+ // print_r($data);die("ends -- here");
+ return $data;
+ }
+
+
+ public function getMembershipListForCustomer($category, $id)
+ {
$result = $this->db->table('subscription as S')
->join('customers as C', 'C.customer_id = S.customer_id', 'left')
->join('books as BK', 'BK.book_id = S.scheme_id', 'left')
->join('book_categories as BC', 'BC.book_id = S.scheme_id', 'left')
- ->join('category as CM', 'CM.id = BC.category_id', 'left')
- ->join('invoice as I', 'I.invoice_id = S.invoice_id', 'left')
+ ->join('category as CM', 'CM.id = BC.category_id', 'left')
+ ->join('invoice as I', 'I.invoice_id = S.invoice_id', 'left')
->select('S.customer_id,BK.short_code,S.membership_id,S.status,I.status as invoice_status ,CONCAT_WS(" ", C.first_name, C.last_name) as customer_name, S.sub_id, S.scheme_id, DATE_FORMAT(S.from_subscription, "%d/%m/%Y") AS formatted_from_subscription, DATE_FORMAT(S.to_subscription, "%d/%m/%Y") AS formatted_to_subscription, S.from_subscription, S.to_subscription,S.isactive,S.is_renew, S.created_on, CM.name ,BK.title, BK.book_id,(SELECT is_renew FROM subscription as sub WHERE S.sub_id = sub.is_renew LIMIT 1)as renewed')
->where('LOWER(CM.name)', strtolower($category))
->where('S.customer_id', $id)
@@ -303,117 +310,89 @@ public function getJoinedData($where, $orderby = [])
->get()
->getResultArray();
return $result;
- }
+ }
- public function getProductImgs($productId)
- {
- $data = $this->db->table('book_images')
- ->where(['book_id' => $productId,'book_images.isactive'=>1])
- // ->join('books as B', 'B.book_id = invoiceitems.product', 'left')
- // ->join('book_images as BI', 'BI.book_id = invoiceitems.product', 'left')
- ->select('book_images.*')
- //->orderBy("book_img_id", "asc") // Order by book_img_id in ascending order
- //->limit(1,0)
- ->get()
- ->getResult();
+ public function getProductImgs($productId)
+ {
+ $data = $this->db->table('book_images')
+ ->where(['book_id' => $productId, 'book_images.isactive' => 1])
+ // ->join('books as B', 'B.book_id = invoiceitems.product', 'left')
+ // ->join('book_images as BI', 'BI.book_id = invoiceitems.product', 'left')
+ ->select('book_images.*')
+ //->orderBy("book_img_id", "asc") // Order by book_img_id in ascending order
+ //->limit(1,0)
+ ->get()
+ ->getResult();
- // print_r($this->db->getLastQuery());
- return $data;
- }
-
-
- public function getCategoryBooks($type)
- {
-
-
- // $where = ($type == 1) ? ['LOWER(category.name) !=' => strtolower('Membership')] : ['LOWER(category.name)' => strtolower('Membership')];
-
- // $data = $this->db->table('books')
- // ->select('books.book_id,books.business_id,books.wp_api_product_id,books.title,books.publication_date,books.publisher,books.author,books.genre,books.language,books.description,books.short_description,books.page_count,books.price,books.isbn_code,books.tax,books.sku,books.category,books.isactive')
- // ->join('book_categories', 'book_categories.book_id= books.book_id', 'left')
- // ->join('category','category.id=book_categories.category_id')
- // ->where($where)
- // ->groupBy('books.book_id')
- // ->get()
- // ->getResult();
- // print_r($this->db->getLastQuery());die;
- $data = $this->db->table('books')
- ->select('books.book_id,books.business_id,books.wp_api_product_id,books.title,books.publication_date,books.publisher,books.author,books.genre,books.language,books.description,books.short_description,books.page_count,books.price,books.isbn_code,books.tax,books.sku,books.category,books.isactive')
- ->join('book_categories', 'book_categories.book_id = books.book_id and book_categories.isactive = 1', 'left')
- ->join('category', 'category.id = book_categories.category_id', 'left');
+ // print_r($this->db->getLastQuery());
+ return $data;
+ }
- if ($type == 1) {
- $data->where("LOWER(category.name) != 'membership' OR category.id IS NULL");
- } else {
- $data->where('LOWER(category.name)', 'membership');
- }
- $data = $data->groupBy('books.book_id')
- ->get()
- ->getResult();
+ public function getCategoryBooks($type)
+ {
- return $data;
- }
-public function insertupdateSubscriptionData($data,$invoice_status)
-{
- if (!empty($data)) {
- $invoice_id = $data['invoice_id'];
- $customer_id = $data['customer_id'];
- $scheme_id = $data['scheme_id'];
- $data['isactive'] = $invoice_status === 'Approved' ? 1 : 0 ;
- $where = ['invoice_id' => $invoice_id]; // invoice id refer with srinivasan // initally invoice id, scheme id and customer id
- $query = $this->db->table('subscription')->select('sub_id')->where($where)->get()->getRow();
+ // $where = ($type == 1) ? ['LOWER(category.name) !=' => strtolower('Membership')] : ['LOWER(category.name)' => strtolower('Membership')];
- if (!empty($query)) {
- unset($data['created_by']);
- return $this->db->table('subscription')->where('sub_id', $query->sub_id)->update($data);
+ // $data = $this->db->table('books')
+ // ->select('books.book_id,books.business_id,books.wp_api_product_id,books.title,books.publication_date,books.publisher,books.author,books.genre,books.language,books.description,books.short_description,books.page_count,books.price,books.isbn_code,books.tax,books.sku,books.category,books.isactive')
+ // ->join('book_categories', 'book_categories.book_id= books.book_id', 'left')
+ // ->join('category','category.id=book_categories.category_id')
+ // ->where($where)
+ // ->groupBy('books.book_id')
+ // ->get()
+ // ->getResult();
+ // print_r($this->db->getLastQuery());die;
+ $data = $this->db->table('books')
+ ->select('books.book_id,books.business_id,books.wp_api_product_id,books.title,books.publication_date,books.publisher,books.author,books.genre,books.language,books.description,books.short_description,books.page_count,books.price,books.isbn_code,books.tax,books.sku,books.category,books.isactive')
+ ->join('book_categories', 'book_categories.book_id = books.book_id and book_categories.isactive = 1', 'left')
+ ->join('category', 'category.id = book_categories.category_id', 'left');
+
+ if ($type == 1) {
+ $data->where("LOWER(category.name) != 'membership' OR category.id IS NULL");
} else {
- unset($data['updated_by']);
- return $this->db->table('subscription')->insert($data);
+ $data->where('LOWER(category.name)', 'membership');
}
- }
- return false;
-}
-// ***********************REPORT**********************
+ $data = $data->groupBy('books.book_id')
+ ->get()
+ ->getResult();
-public function get_general_invoice_data($f_date = null, $t_date = null)
-{
- // Fetch invoice data
- $query = $this->db->table('invoice')
- ->select('invoice.*,DATE_FORMAT(invoice.invoice_date, "%d/%m/%Y") AS formatted_invoice_date, customers.*, COUNT(invoiceitems.product) as item_count')
- ->where('invoice.isactive', 1)
-
- ->where('invoiceitems.isactive', 1);
-
- // Add date range filter if provided
- if ($f_date !== null && $t_date !== null) {
- $query->where('invoice.invoice_date >=', $f_date)
- ->where('invoice.invoice_date <=', $t_date);
+ return $data;
}
- $result = $query->join('customers', 'customers.customer_id = invoice.customer_id', 'left')
- ->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id', 'left')
- ->join('books', 'books.book_id = invoiceitems.product', 'left')
- ->orderBy("invoice.invoice_date", "DESC")
- ->groupBy('invoice.invoice_id') // Assuming invoice_id is the primary key of the invoice table
- ->get()
- ->getResult();
+ public function insertupdateSubscriptionData($data, $invoice_status)
+ {
+ if (!empty($data)) {
+ $invoice_id = $data['invoice_id'];
+ $customer_id = $data['customer_id'];
+ $scheme_id = $data['scheme_id'];
+ $data['isactive'] = $invoice_status === 'Approved' ? 1 : 0;
+ $where = ['invoice_id' => $invoice_id]; // invoice id refer with srinivasan // initally invoice id, scheme id and customer id
+ $query = $this->db->table('subscription')->select('sub_id')->where($where)->get()->getRow();
- return $result;
-}
+ if (!empty($query)) {
+ unset($data['created_by']);
+ return $this->db->table('subscription')->where('sub_id', $query->sub_id)->update($data);
+ } else {
+ unset($data['updated_by']);
+ return $this->db->table('subscription')->insert($data);
+ }
+ }
+ return false;
+ }
+ // ***********************REPORT**********************
-public function get_mem_invoice_data($f_date = null, $t_date = null)
-{
- // Fetch invoice data
- $query = $this->db->table('invoice')
- ->select('invoice.*, customers.*, COUNT(invoiceitems.product) as item_count,DATE_FORMAT(invoice.invoice_date, "%d/%m/%Y") AS formatted_invoice_date,subscription.from_subscription,subscription.to_subscription,DATE_FORMAT(subscription.from_subscription, "%d/%m/%Y") AS formatted_from_date,DATE_FORMAT(subscription.to_subscription, "%d/%m/%Y") AS formatted_to_date')
- ->join('subscription', 'subscription.invoice_id = invoice.invoice_id', 'left')
- ->where('invoice.isactive', 1)
- ->where('invoice.invoice_type', 2)
- ->where('invoiceitems.isactive', 1);
+ public function get_general_invoice_data($f_date = null, $t_date = null)
+ {
+ // Fetch invoice data
+ $query = $this->db->table('invoice')
+ ->select('invoice.*,DATE_FORMAT(invoice.invoice_date, "%d/%m/%Y") AS formatted_invoice_date, customers.*, COUNT(invoiceitems.product) as item_count')
+ ->where('invoice.isactive', 1)
+
+ ->where('invoiceitems.isactive', 1);
// Add date range filter if provided
if ($f_date !== null && $t_date !== null) {
@@ -421,415 +400,442 @@ public function get_mem_invoice_data($f_date = null, $t_date = null)
->where('invoice.invoice_date <=', $t_date);
}
- $result = $query->join('customers', 'customers.customer_id = invoice.customer_id', 'left')
- ->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id', 'left')
- ->join('books', 'books.book_id = invoiceitems.product', 'left')
- ->groupBy('invoice.invoice_id') // Assuming invoice_id is the primary key of the invoice table
- ->get()
- ->getResult();
+ $result = $query->join('customers', 'customers.customer_id = invoice.customer_id', 'left')
+ ->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id', 'left')
+ ->join('books', 'books.book_id = invoiceitems.product', 'left')
+ ->orderBy("invoice.invoice_date", "DESC")
+ ->groupBy('invoice.invoice_id') // Assuming invoice_id is the primary key of the invoice table
+ ->get()
+ ->getResult();
return $result;
-
-}
-
-// public function itemwise_report_data($f_date = null, $t_date = null)
-// {
-// // Fetch invoice data
-// $query = $this->db->table('invoice')
-// ->select('invoice.*, books.* , COUNT(invoiceitems.product) as item_count , sum(invoiceitems.product * invoiceitems.unit_price) as item_cost')
-// ->where('invoice.isactive', 1)
-// ->where('books.isactive', 1);
-
-// // Add date range filter if provided
-// if ($f_date !== null && $t_date !== null) {
-// $query->where('invoice.invoice_date >=', $f_date)
-// ->where('invoice.invoice_date <=', $t_date);
-// }
-
-// $result = $query->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id', 'left')
-// ->join('books', 'books.book_id = invoiceitems.product', 'left')
-// ->groupBy('books.book_id')
-// ->get()
-// ->getResult();
-
-// return $result;
-// }
-public function itemwise_report_data($f_date = null, $t_date = null)
-{
-
- // Fetch invoice data
- $query = $this->db->table('invoice')
- ->select('books.publishers_code, COUNT(invoiceitems.product) as publisher_item_count, books.title as book_name, COUNT(invoiceitems.product) as item_count, SUM(invoiceitems.quantity * invoiceitems.unit_price) as total_cost ,DATE_FORMAT(books.publication_date, "%d/%m/%Y") AS book_publication_date');
-
- $query->where('invoice.isactive', 1)
- ->where('invoice.invoice_type',1)
- ->where('books.isactive', 1);
-
- // Add date range filter if provided
- if ($f_date !== null && $t_date !== null) {
- $newf_date = date("Y-m-d", strtotime($f_date));
- $newt_date = date("Y-m-d", strtotime($t_date));
- $query->where('books.publication_date >=', $newf_date)
- ->where('books.publication_date <=', $newt_date);
}
-
- $result = $query->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id', 'left')
- ->join('books', 'books.book_id = invoiceitems.product', 'left')
- ->groupBy('books.publishers_code, books.title')
- ->get()
- ->getResult();
- // print_r($result);
- // // Group by publisher_code and include books
- // var_dump($result);
- // die();
- $groupedResult = [];
- foreach ($result as $row) {
- $publisherCode = $row->publishers_code;
- if (!isset($groupedResult[$publisherCode])) {
- $groupedResult[$publisherCode] = (object)[
- 'publisher_code' => $publisherCode,
- 'publisher_item_count' => 0,
- 'publisher_total_cost' => 0,
- 'books' => [],
- 'book_name'=>'',
-
+ public function get_mem_invoice_data($f_date = null, $t_date = null)
+ {
+ // Fetch invoice data
+ $query = $this->db->table('invoice')
+ ->select('invoice.*, customers.*, COUNT(invoiceitems.product) as item_count,DATE_FORMAT(invoice.invoice_date, "%d/%m/%Y") AS formatted_invoice_date,subscription.from_subscription,subscription.to_subscription,DATE_FORMAT(subscription.from_subscription, "%d/%m/%Y") AS formatted_from_date,DATE_FORMAT(subscription.to_subscription, "%d/%m/%Y") AS formatted_to_date')
+ ->join('subscription', 'subscription.invoice_id = invoice.invoice_id', 'left')
+ ->where('invoice.isactive', 1)
+ ->where('invoice.invoice_type', 2)
+ ->where('invoiceitems.isactive', 1);
+
+ // Add date range filter if provided
+ if ($f_date !== null && $t_date !== null) {
+ $query->where('invoice.invoice_date >=', $f_date)
+ ->where('invoice.invoice_date <=', $t_date);
+ }
+
+ $result = $query->join('customers', 'customers.customer_id = invoice.customer_id', 'left')
+ ->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id', 'left')
+ ->join('books', 'books.book_id = invoiceitems.product', 'left')
+ ->groupBy('invoice.invoice_id') // Assuming invoice_id is the primary key of the invoice table
+ ->get()
+ ->getResult();
+
+ return $result;
+ }
+
+ // public function itemwise_report_data($f_date = null, $t_date = null)
+ // {
+ // // Fetch invoice data
+ // $query = $this->db->table('invoice')
+ // ->select('invoice.*, books.* , COUNT(invoiceitems.product) as item_count , sum(invoiceitems.product * invoiceitems.unit_price) as item_cost')
+ // ->where('invoice.isactive', 1)
+ // ->where('books.isactive', 1);
+
+ // // Add date range filter if provided
+ // if ($f_date !== null && $t_date !== null) {
+ // $query->where('invoice.invoice_date >=', $f_date)
+ // ->where('invoice.invoice_date <=', $t_date);
+ // }
+
+ // $result = $query->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id', 'left')
+ // ->join('books', 'books.book_id = invoiceitems.product', 'left')
+ // ->groupBy('books.book_id')
+ // ->get()
+ // ->getResult();
+
+ // return $result;
+ // }
+ public function itemwise_report_data($f_date = null, $t_date = null)
+ {
+
+ // Fetch invoice data
+ $query = $this->db->table('invoice')
+ ->select('books.publishers_code, COUNT(invoiceitems.product) as publisher_item_count, books.title as book_name, COUNT(invoiceitems.product) as item_count, SUM(invoiceitems.quantity * invoiceitems.unit_price) as total_cost ,DATE_FORMAT(books.publication_date, "%d/%m/%Y") AS book_publication_date');
+
+ $query->where('invoice.isactive', 1)
+ ->where('invoice.invoice_type', 1)
+ ->where('books.isactive', 1);
+
+ // Add date range filter if provided
+ if ($f_date !== null && $t_date !== null) {
+ $newf_date = date("Y-m-d", strtotime($f_date));
+ $newt_date = date("Y-m-d", strtotime($t_date));
+ $query->where('books.publication_date >=', $newf_date)
+ ->where('books.publication_date <=', $newt_date);
+ }
+
+
+ $result = $query->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id', 'left')
+ ->join('books', 'books.book_id = invoiceitems.product', 'left')
+ ->groupBy('books.publishers_code, books.title')
+ ->get()
+ ->getResult();
+ // print_r($result);
+
+ // // Group by publisher_code and include books
+ // var_dump($result);
+ // die();
+ $groupedResult = [];
+ foreach ($result as $row) {
+ $publisherCode = $row->publishers_code;
+ if (!isset($groupedResult[$publisherCode])) {
+ $groupedResult[$publisherCode] = (object)[
+ 'publisher_code' => $publisherCode,
+ 'publisher_item_count' => 0,
+ 'publisher_total_cost' => 0,
+ 'books' => [],
+ 'book_name' => '',
+
+ ];
+ }
+
+ // Add book information to the grouped result
+ $groupedResult[$publisherCode]->publisher_item_count += $row->item_count;
+ $groupedResult[$publisherCode]->publisher_total_cost += $row->total_cost;
+ $groupedResult[$publisherCode]->books[] = (object)[
+ 'book_name' => $row->book_name,
+ 'item_count' => $row->item_count,
+ 'total_cost' => $row->total_cost,
+ 'book_publication_date' => $row->book_publication_date,
];
}
- // Add book information to the grouped result
- $groupedResult[$publisherCode]->publisher_item_count += $row->item_count;
- $groupedResult[$publisherCode]->publisher_total_cost += $row->total_cost;
- $groupedResult[$publisherCode]->books[] = (object)[
- 'book_name' => $row->book_name,
- 'item_count' => $row->item_count,
- 'total_cost' => $row->total_cost,
- 'book_publication_date' =>$row->book_publication_date,
- ];
+ return array_values($groupedResult);
}
-
- return array_values($groupedResult);
-}
-public function getInvoiceIdByMd5($md5Hash)
-{
- $result = $this->db->table($this->table)
- ->select('invoice_id')
- ->get()
- ->getResult();
+ public function getInvoiceIdByMd5($md5Hash)
+ {
+ $result = $this->db->table($this->table)
+ ->select('invoice_id')
+ ->get()
+ ->getResult();
- foreach ($result as $row) {
- if (md5($row->invoice_id) === $md5Hash) {
- return $row->invoice_id;
+ foreach ($result as $row) {
+ if (md5($row->invoice_id) === $md5Hash) {
+ return $row->invoice_id;
+ }
}
+
+ return null;
}
+ // public function getExpiredCustomers($f_date = null, $t_date = null)
+ // {
+ // $now = date('Y-m-d');
+ // $futureDate = date('Y-m-d', strtotime($now . ' +30 days'));
- return null;
-}
-// public function getExpiredCustomers($f_date = null, $t_date = null)
-// {
-// $now = date('Y-m-d');
-// $futureDate = date('Y-m-d', strtotime($now . ' +30 days'));
+ // $query = $this->db->table('subscription as S'); // Define $query here
-// $query = $this->db->table('subscription as S'); // Define $query here
+ // if ($f_date !== null && $t_date !== null) {
+ // $query->where('S.to_subscription >=', $f_date)
+ // ->where('S.to_subscription <=', $t_date);
+ // }
-// if ($f_date !== null && $t_date !== null) {
-// $query->where('S.to_subscription >=', $f_date)
-// ->where('S.to_subscription <=', $t_date);
-// }
+ // $result = $query
+ // ->select('S.customer_id,S.sub_id, S.from_subscription, S.to_subscription, C.first_name, C.last_name, C.email, C.mobile_no, S.scheme_id,B.short_code')
+ // ->join('customers as C', 'C.customer_id = S.customer_id', 'left')
+ // ->join('books as B', 'B.book_id = S.scheme_id', 'left')
+ // ->where('S.isactive', 1)
+ // ->where('S.to_subscription <', $futureDate)
+ // ->get()
+ // ->getResultArray();
+ // // print_r($result);
+ // // echo "";
+ // // echo $this->db->getLastQuery();
+ // // echo " ";die;
+ // echo $this->db->getLastQuery();
+ // die();
-// $result = $query
-// ->select('S.customer_id,S.sub_id, S.from_subscription, S.to_subscription, C.first_name, C.last_name, C.email, C.mobile_no, S.scheme_id,B.short_code')
-// ->join('customers as C', 'C.customer_id = S.customer_id', 'left')
-// ->join('books as B', 'B.book_id = S.scheme_id', 'left')
-// ->where('S.isactive', 1)
-// ->where('S.to_subscription <', $futureDate)
-// ->get()
-// ->getResultArray();
-// // print_r($result);
-// // echo "";
-// // echo $this->db->getLastQuery();
-// // echo " ";die;
-// echo $this->db->getLastQuery();
-// die();
+ // return $result;
-// return $result;
+ // }
+ public function getExpiredCustomers($f_date = null, $t_date = null)
+ {
+ // Set timezone for accurate date calculation
+ date_default_timezone_set('Asia/Kolkata');
-// }
-public function getExpiredCustomers($f_date = null, $t_date = null)
-{
- // Set timezone for accurate date calculation
- date_default_timezone_set('Asia/Kolkata');
+ // Calculate the date 30 days from now
+ $futureDate = date('Y-m-d', strtotime('+30 days'));
- // Calculate the date 30 days from now
- $futureDate = date('Y-m-d', strtotime('+30 days'));
+ $query = $this->db->table('subscription as S');
-$query = $this->db->table('subscription as S');
+ if (!empty($f_date) && !empty($t_date)) {
+ $query->where('S.to_subscription >=', $f_date)
+ ->where('S.to_subscription <=', $t_date);
+ } else {
+ $query->where('S.to_subscription >=', date('Y-m-d'))
+ ->where('S.to_subscription <=', $futureDate);
+ }
-if (!empty($f_date) && !empty($t_date)) {
- $query->where('S.to_subscription >=', $f_date)
- ->where('S.to_subscription <=', $t_date);
-} else {
- $query->where('S.to_subscription >=', date('Y-m-d'))
- ->where('S.to_subscription <=', $futureDate);
-}
+ $subquery = $this->db->table('subscription as S2')
+ ->select('S.sub_id')
+ ->where('S2.customer_id = S.customer_id')
+ ->where('S.sub_id = S2.is_renew');
-$subquery = $this->db->table('subscription as S2')
- ->select('S.sub_id')
- ->where('S2.customer_id = S.customer_id')
- ->where('S.sub_id = S2.is_renew');
-
-$result = $query
- ->select('S.customer_id, S.sub_id, S.from_subscription, S.to_subscription,
+ $result = $query
+ ->select('S.customer_id, S.sub_id, S.from_subscription, S.to_subscription,
C.first_name, C.last_name, C.email, C.mobile_no,
S.scheme_id, B.short_code, S.membership_id')
- ->join('customers as C', 'C.customer_id = S.customer_id', 'left')
- ->join('books as B', 'B.book_id = S.scheme_id', 'left')
- ->where('S.isactive', 1)
- ->whereNotIn('S.sub_id', $subquery)
- ->orderBy('S.to_subscription', 'ASC')
- ->get();
+ ->join('customers as C', 'C.customer_id = S.customer_id', 'left')
+ ->join('books as B', 'B.book_id = S.scheme_id', 'left')
+ ->where('S.isactive', 1)
+ ->whereNotIn('S.sub_id', $subquery)
+ ->orderBy('S.to_subscription', 'ASC')
+ ->get();
- // Debugging: output the generated SQL query
- // echo $this->db->getLastQuery();
- // die();
+ // Debugging: output the generated SQL query
+ // echo $this->db->getLastQuery();
+ // die();
- // Fetch results as an associative array
- return $result->getResultArray();
-}
-public function getActiveMembers(){
- $result =
- $this->db->table('subscription as S')
- ->select('S.customer_id, S.sub_id, S.from_subscription, S.to_subscription,
+ // Fetch results as an associative array
+ return $result->getResultArray();
+ }
+ public function getActiveMembers()
+ {
+ $result =
+ $this->db->table('subscription as S')
+ ->select('S.customer_id, S.sub_id, S.from_subscription, S.to_subscription,
C.first_name, C.last_name, C.email, C.mobile_no,
S.scheme_id, B.short_code, S.membership_id')
- ->join('customers as C', 'C.customer_id = S.customer_id', 'left')
- ->join('books as B', 'B.book_id = S.scheme_id', 'left')
- ->where('S.isactive', 1)
- ->where('S.to_subscription>now()')
- ->orderBy('S.to_subscription', 'ASC')
- ->get();
- return $result->getResultArray();
-
-}
-
-public function itemwise_report_data_with_publish_code($f_date = null, $t_date = null)
-{
- // Fetch invoice data
- $query = $this->db->table('invoice')
- ->select('invoice.*, books.* , COUNT(invoiceitems.product) as item_count , sum(invoiceitems.product * invoiceitems.unit_price) as item_cost')
- ->where('invoice.isactive', 1)
- ->where('books.isactive', 1)
- ->where('books.publishers_code', 'VJB'); // Additional condition for publish_code
-
- // Add date range filter if provided
- if ($f_date !== null && $t_date !== null) {
- $query->where('invoice.invoice_date >=', $f_date)
- ->where('invoice.invoice_date <=', $t_date);
+ ->join('customers as C', 'C.customer_id = S.customer_id', 'left')
+ ->join('books as B', 'B.book_id = S.scheme_id', 'left')
+ ->where('S.isactive', 1)
+ ->where('S.to_subscription>now()')
+ ->orderBy('S.to_subscription', 'ASC')
+ ->get();
+ return $result->getResultArray();
}
- $result = $query->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id', 'left')
- ->join('books', 'books.book_id = invoiceitems.product', 'left')
- ->groupBy('books.book_id')
- ->get()
- ->getResult();
+ public function itemwise_report_data_with_publish_code($f_date = null, $t_date = null)
+ {
+ // Fetch invoice data
+ $query = $this->db->table('invoice')
+ ->select('invoice.*, books.* , COUNT(invoiceitems.product) as item_count , sum(invoiceitems.product * invoiceitems.unit_price) as item_cost')
+ ->where('invoice.isactive', 1)
+ ->where('books.isactive', 1)
+ ->where('books.publishers_code', 'VJB'); // Additional condition for publish_code
+
+ // Add date range filter if provided
+ if ($f_date !== null && $t_date !== null) {
+ $query->where('invoice.invoice_date >=', $f_date)
+ ->where('invoice.invoice_date <=', $t_date);
+ }
+
+ $result = $query->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id', 'left')
+ ->join('books', 'books.book_id = invoiceitems.product', 'left')
+ ->groupBy('books.book_id')
+ ->get()
+ ->getResult();
// print_r($result);die;
- return $result;
-}
+ return $result;
+ }
-public function userwise_eventwise_report($f_date = null, $t_date = null){
-
-
- $builder = $this->db->table('invoice');
-
- $builder->select([
- 'users.user_id',
- 'users.first_name',
- 'users.role',
- 'events.event_name',
- 'COUNT(invoice.created_by) AS books_sold',
- 'ABS(SUM(invoice.exact_total_amount)) AS total_amount',
- 'invoice.payment_method',
- 'invoice.invoice_date'
- ]);
-
- $builder->join('users', 'users.user_id = invoice.created_by');
- $builder->join('events', 'events.event_id = invoice.event_id');
- $builder->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id');
- $builder->join('books', 'books.book_id = invoiceitems.product');
+ public function userwise_eventwise_report($f_date = null, $t_date = null) {
+ $builder = $this->db->table('invoice');
- $builder->where('invoice.event_id <>', 0);
- if ($f_date !== null && $t_date !== null) {
- $builder->where('invoice.invoice_date >=', $f_date)
- ->where('invoice.invoice_date <=', $t_date);
+ $builder->select([
+ 'users.user_id',
+ 'users.first_name',
+ 'users.role',
+ 'events.event_name',
+ 'COUNT(invoice.created_by) AS books_sold',
+ 'ABS(SUM(invoice.exact_total_amount)) AS total_amount',
+ 'invoice.payment_method',
+ // 'DATE(invoice.invoice_date) AS invoice_date' // Convert to DATE
+ 'invoice.invoice_date'
+ ]);
+
+ $builder->join('users', 'users.user_id = invoice.created_by');
+ $builder->join('events', 'events.event_id = invoice.event_id');
+ $builder->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id');
+ $builder->join('books', 'books.book_id = invoiceitems.product');
+
+ $builder->where('invoice.event_id <>', 0);
+
+ if ($f_date !== null && $t_date !== null) {
+ $builder->where('invoice.invoice_date >=', $f_date)
+ ->where('invoice.invoice_date <=', $t_date);
+ }
+
+ $builder->groupBy([
+ 'invoice_date',
+ 'users.user_id',
+ 'events.event_name'
+ ]);
+
+ // Order by the converted date
+ $builder->orderBy('invoice_date', 'DESC');
+
+ $query = $builder->get();
+
+ $result = $query->getResultArray();
+ // dd($result);
+ return $result;
}
- $builder->groupBy([
- 'users.user_id',
- 'users.first_name',
- 'events.event_name',
- 'payment_method'
- ]);
- $query = $builder->get();
+ public function getPaymentReport($f_date = null, $t_date = null)
+ {
- $results = $query->getResultArray();
- return $results;
-}
-
-public function getPaymentReport($f_date = null, $t_date = null)
-{
-
- $builder = $this->db->table('invoice');
- $builder->select('invoice.invoice_number, customers.first_name, invoice.total_amount, invoice.payment_status, invoice.payment_method, invoice.invoice_date');
- $builder->join('customers', 'invoice.customer_id = customers.customer_id', 'inner');
- if ($f_date !== null && $t_date !== null) {
- $builder->where('invoice.invoice_date >=', $f_date)
- ->where('invoice.invoice_date <=', $t_date);
+ $builder = $this->db->table('invoice');
+ $builder->select('invoice.invoice_number, customers.first_name, invoice.total_amount, invoice.payment_status, invoice.payment_method, invoice.invoice_date');
+ $builder->join('customers', 'invoice.customer_id = customers.customer_id', 'inner');
+ if ($f_date !== null && $t_date !== null) {
+ $builder->where('invoice.invoice_date >=', $f_date)
+ ->where('invoice.invoice_date <=', $t_date);
+ }
+ $builder->where('invoice.status', 'Approved');
+ $query = $builder->get();
+ $result1 = $query->getResultArray();
+ $builder->select('payment_method, SUM(exact_total_amount) as total_amount');
+ if ($f_date !== null && $t_date !== null) {
+ $builder->where('invoice.invoice_date >=', $f_date)
+ ->where('invoice.invoice_date <=', $t_date);
+ }
+ $builder->groupBy('payment_method');
+ $query2 = $builder->get();
+ $paymentMethodTotals = $query2->getResultArray();
+ $paymentMethodMap = [];
+ foreach ($paymentMethodTotals as $row) {
+ $paymentMethodMap[$row['payment_method']] = $row['total_amount'];
+ }
+ $result2 = $paymentMethodMap;
+ // log_message('info',json_encode($results));
+ // dd($results);
+ $results = [
+ 'result1' => $result1,
+ 'result2' => $result2
+ ];
+ return $results;
}
- $builder->where('invoice.status','Approved');
- $query = $builder->get();
- $result1 = $query->getResultArray();
- $builder->select('payment_method, SUM(exact_total_amount) as total_amount');
- if ($f_date !== null && $t_date !== null) {
- $builder->where('invoice.invoice_date >=', $f_date)
- ->where('invoice.invoice_date <=', $t_date);
- }
- $builder->groupBy('payment_method');
- $query2 = $builder->get();
- $paymentMethodTotals = $query2->getResultArray();
- $paymentMethodMap = [];
-foreach ($paymentMethodTotals as $row) {
- $paymentMethodMap[$row['payment_method']] = $row['total_amount'];
-}
- $result2 = $paymentMethodMap;
-// log_message('info',json_encode($results));
-// dd($results);
- $results = [
- 'result1'=>$result1,
- 'result2'=>$result2
- ];
- return $results;
-}
-public function itemwise_report_data_with_payment_method($f_date = null, $t_date = null)
-{
- $builder = $this->db->table('invoice');
- $builder->select('books.publishers_code,
+ public function itemwise_report_data_with_payment_method($f_date = null, $t_date = null)
+ {
+ $builder = $this->db->table('invoice');
+ $builder->select('books.publishers_code,
COUNT(invoiceitems.product) AS publisher_item_count,
books.title AS book_name,
COUNT(invoiceitems.product) AS item_count,
SUM(invoiceitems.quantity * invoiceitems.unit_price) AS total_cost,
invoice.payment_method,
DATE_FORMAT(invoice.invoice_date, "%d-%m-%Y") AS invoice_date');
- $builder->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id', 'left');
- $builder->join('books', 'books.book_id = invoiceitems.product', 'left');
- $builder->where('invoice.isactive', 1);
- $builder->where('invoice.invoice_type', 1);
- $builder->where('books.isactive', 1);
- if ($f_date !== null && $t_date !== null) {
- $builder->where('invoice_date >=', $f_date)
- ->where('invoice_date <=', $t_date);
- }
- $builder->groupBy(['books.publishers_code', 'books.title', 'invoice.payment_method']);
-
- $query = $builder->get();
- $results = $query->getResultArray();
-
- $groupedResult = [];
- foreach ($results as $row) {
- // Use a unique key for each combination of publisher and payment method
- $publisherCode = $row['publishers_code'];
- $paymentMethod = $row['payment_method'];
- $uniqueKey = $publisherCode . '-' . $paymentMethod; // Unique key for grouping
-
- // Initialize the group if it does not exist
- if (!isset($groupedResult[$uniqueKey])) {
- $groupedResult[$uniqueKey] = (object)[
- 'publisher_code' => $publisherCode,
- 'publisher_item_count' => 0,
- 'publisher_total_cost' => 0,
- 'books' => [],
- 'payment_method' => $paymentMethod,
+ $builder->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id', 'left');
+ $builder->join('books', 'books.book_id = invoiceitems.product', 'left');
+ $builder->where('invoice.isactive', 1);
+ $builder->where('invoice.invoice_type', 1);
+ $builder->where('books.isactive', 1);
+ if ($f_date !== null && $t_date !== null) {
+ $builder->where('invoice_date >=', $f_date)
+ ->where('invoice_date <=', $t_date);
+ }
+ $builder->groupBy(['books.publishers_code', 'books.title', 'invoice.payment_method']);
+
+ $query = $builder->get();
+ $results = $query->getResultArray();
+
+ $groupedResult = [];
+ foreach ($results as $row) {
+ // Use a unique key for each combination of publisher and payment method
+ $publisherCode = $row['publishers_code'];
+ $paymentMethod = $row['payment_method'];
+ $uniqueKey = $publisherCode . '-' . $paymentMethod; // Unique key for grouping
+
+ // Initialize the group if it does not exist
+ if (!isset($groupedResult[$uniqueKey])) {
+ $groupedResult[$uniqueKey] = (object)[
+ 'publisher_code' => $publisherCode,
+ 'publisher_item_count' => 0,
+ 'publisher_total_cost' => 0,
+ 'books' => [],
+ 'payment_method' => $paymentMethod,
+ ];
+ }
+
+ // Update the group’s cumulative values
+ $groupedResult[$uniqueKey]->publisher_item_count += $row['publisher_item_count'];
+ $groupedResult[$uniqueKey]->publisher_total_cost += $row['total_cost'];
+
+ // Add the book-specific information to the books array
+ $groupedResult[$uniqueKey]->books[] = (object)[
+ 'book_name' => $row['book_name'],
+ 'item_count' => $row['item_count'],
+ 'total_cost' => $row['total_cost'],
+ 'invoice_date' => $row['invoice_date'],
];
}
-
- // Update the group’s cumulative values
- $groupedResult[$uniqueKey]->publisher_item_count += $row['publisher_item_count'];
- $groupedResult[$uniqueKey]->publisher_total_cost += $row['total_cost'];
-
- // Add the book-specific information to the books array
- $groupedResult[$uniqueKey]->books[] = (object)[
- 'book_name' => $row['book_name'],
- 'item_count' => $row['item_count'],
- 'total_cost' => $row['total_cost'],
- 'invoice_date' => $row['invoice_date'],
- ];
+
+ return array_values($groupedResult);
}
-
- return array_values($groupedResult);
-}
-public function updateInvoiceStatus($invoiceId, $voidReason)
-{
- // Assuming 'invoices' is the name of your table
- $builder = $this->db->table('invoice');
+ public function updateInvoiceStatus($invoiceId, $voidReason)
+ {
+ // Assuming 'invoices' is the name of your table
+ $builder = $this->db->table('invoice');
- // Define the data to be updated
- $data = [
- 'status' => 'Void', // Set the status to 'Void'
- 'reason' => $voidReason, // Set the void reason
- // You can add more fields to update here if needed
- ];
+ // Define the data to be updated
+ $data = [
+ 'status' => 'Void', // Set the status to 'Void'
+ 'reason' => $voidReason, // Set the void reason
+ // You can add more fields to update here if needed
+ ];
- // Set the where condition to identify the invoice by its ID
- $builder->where('invoice_id', $invoiceId);
+ // Set the where condition to identify the invoice by its ID
+ $builder->where('invoice_id', $invoiceId);
- // Perform the update and check if successful
- $updated = $builder->update($data);
+ // Perform the update and check if successful
+ $updated = $builder->update($data);
- return $updated;
+ return $updated;
+ }
+ public function updateInvoiceCancelStatus($invoiceIds, $cancelReason)
+ {
+ // Assuming 'invoices' is the name of your table
+ $builder = $this->db->table('invoice');
+
+ // Define the data to be updated
+ $data = [
+ 'status' => 'Cancelled', // Set the status to 'Canceled'
+ 'reason' => $cancelReason, // Set the cancel reason
+ // You can add more fields to update here if needed
+ ];
+
+ // Set the where condition to identify the invoices by their IDs
+ $builder->where('invoice_id', $invoiceIds);
+
+ // Perform the update and check if successful
+ $updated = $builder->update($data);
+
+ return $updated;
+ }
+ public function getActiveSchemes()
+ {
+ $builder = $this->db->table($this->table . ' as I');
+ $builder->select('books.short_code');
+ $builder->join('subscription', 'subscription.invoice_id = I.invoice_id');
+ $builder->join('invoiceitems', 'invoiceitems.invoice_id = I.invoice_id');
+ $builder->join('books', 'invoiceitems.product = books.book_id');
+ $builder->groupBy('short_code');
+
+ $query = $builder->get();
+ $results = $query->getResultArray();
+
+ return $results;
+ }
}
-public function updateInvoiceCancelStatus($invoiceIds, $cancelReason)
-{
- // Assuming 'invoices' is the name of your table
- $builder = $this->db->table('invoice');
-
- // Define the data to be updated
- $data = [
- 'status' => 'Cancelled', // Set the status to 'Canceled'
- 'reason' => $cancelReason, // Set the cancel reason
- // You can add more fields to update here if needed
- ];
-
- // Set the where condition to identify the invoices by their IDs
- $builder->where('invoice_id', $invoiceIds);
-
- // Perform the update and check if successful
- $updated = $builder->update($data);
-
- return $updated;
-}
-public function getActiveSchemes(){
- $builder = $this->db->table($this->table.' as I' );
- $builder->select('books.short_code');
- $builder->join('subscription','subscription.invoice_id = I.invoice_id');
- $builder->join('invoiceitems','invoiceitems.invoice_id = I.invoice_id');
- $builder->join('books','invoiceitems.product = books.book_id');
- $builder->groupBy('short_code');
-
- $query = $builder->get();
- $results = $query->getResultArray();
-
- return $results;
-}
-
-
-
-
-}
-
diff --git a/app/Views/notify_the_expiry_subscribers.php b/app/Views/notify_the_expiry_subscribers.php
index 5f69d1fb..92152e8e 100755
--- a/app/Views/notify_the_expiry_subscribers.php
+++ b/app/Views/notify_the_expiry_subscribers.php
@@ -5,202 +5,208 @@
-
+
-
+
+
+
+
+ function regenerateFilters(table) {
+ $('#datatable-buttons thead tr:eq(1)').remove();
+ $('#datatable-buttons thead tr').clone(true).appendTo('#datatable-buttons thead');
+
+ $('#datatable-buttons thead tr:eq(1) th').each(function(i) {
+ var title = $(this).text();
+ var column = table.column(i);
+
+ var uniqueValues = column.data().unique().sort();
+
+ var select = $('Search ' + title + ' ')
+ .appendTo($(this).empty())
+ .on('change', function() {
+ var val = $.fn.dataTable.util.escapeRegex($(this).val());
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+
+ uniqueValues.each(function(d) {
+ if (d) {
+ select.append('' + d + ' ');
+ }
+ });
+ });
+ }
+
\ No newline at end of file
diff --git a/app/Views/payment_status_table.php b/app/Views/payment_status_table.php
index 6b35e71f..3c775a68 100644
--- a/app/Views/payment_status_table.php
+++ b/app/Views/payment_status_table.php
@@ -6,20 +6,20 @@
SCHEME Name
Date/Time
ORDER ID
- Payment Status
+ Payment Status
Amount
- = isset($row['customer_name'])?$row['customer_name']:"-"?>
- = isset($row['membership_id'])?$row['membership_id']:"-"?>
- = isset($row['scheme_name'])?$row['scheme_name']:"-"?>
- = isset($row['created_at'])? date("d/m/Y H:i:s", strtotime($row['created_at'])) : '-' ?>
- = isset($row['order_id'])?$row['order_id']:"-"?>
- = isset($row['payment_status'])?$row['payment_status']:"-" ?>
- = isset($row['amount'])?$row['amount']:"-"?>
+ = isset($row['customer_name'])?$row['customer_name']:"-"?>
+ = isset($row['membership_id'])?$row['membership_id']:"-"?>
+ = isset($row['scheme_name'])?$row['scheme_name']:"-"?>
+ = isset($row['created_at']) ? date("d/m/Y h:i A", strtotime($row['created_at'])) : '-' ?>
+ = isset($row['order_id'])?$row['order_id']:"-"?>
+ = isset($row['payment_status'])?$row['payment_status']:"-" ?>
+ = isset($row['amount'])?$row['amount']:"-"?>
diff --git a/app/Views/received_payments_report.php b/app/Views/received_payments_report.php
index 7a7ad1e0..9c1632ad 100644
--- a/app/Views/received_payments_report.php
+++ b/app/Views/received_payments_report.php
@@ -156,7 +156,7 @@
\ No newline at end of file