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{ 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; } public function inactiveMissingInvoiceItemDetails($where,$missingValues){ $dataToUpdate = ['isactive' => 0]; $this->db->table('invoiceitems')->where($where)->whereIn('invoice_child_id',$missingValues)->update($dataToUpdate); } public function updateData($table, $data, $where) { $this->db->table($table)->update($data, $where); $affected_rows = $this->db->affectedRows(); return $affected_rows; } public function getSubscriptionInvoiceDetail($where) { $result = $this->getJoinedData($where); // print_r($result);die; if(!empty($result)){ foreach ($result as $i => $item) { $invoiceId = $item['invoice_id']; $scheme_name = []; $from_subscription = []; $to_subscription = []; $invoiceItems = $this->getInvoiceItems($invoiceId,''); foreach ($invoiceItems as $j => $child) { if ($child->category_name == 'Membership') { $scheme_name[] = $child->title; $from_subscription[] = ($j == 0 && !empty($child->from_subscription) && $child->from_subscription !== null) ? date('d/m/Y', strtotime($child->from_subscription)) : ""; $to_subscription[] = ($j == 0 && !empty($child->to_subscription) && $child->from_subscription !== null ) ? date('d/m/Y', strtotime($child->to_subscription)) : ""; } } $result[$i]['scheme_name'] = !empty($scheme_name) ? implode(", ", $scheme_name) : ''; $result[$i]['from_subscription'] = !empty($from_subscription) ? implode(" ", $from_subscription) : ''; $result[$i]['to_subscription'] = !empty($to_subscription) ? implode(" ", $to_subscription) : ''; $result[$i]['invoice_items_details'] = $invoiceItems; } } return $result; } public function getJoinedData($where) { return $this->db->table($this->table.' as I' ) ->join('customers as C', 'C.doner_id = I.doner_id', 'left') ->join('Campaign as E', 'E.Campaign_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, (C.first_name," ",C.last_name) as customer_name , I.business_id, I.created_on, I.created_by,concat(U1.first_name," ",U1.last_name) as created_by_name, I.updated_on, I.updated_by,concat(U2.first_name," ",U2.last_name) as updated_by_name, I.isactive,C.email as customer_email,C.mobile_no as customer_mobile') ->where($where) ->orderBy('invoice_id', 'DESC') ->get() ->getResultArray(); // I.shipping_address_id, I.billing_address_id, } public function getDetailForApproveNotifications($where) { $result = $this->getJoinedData($where); if(!empty($result)){ foreach ($result as $object) { $invoiceId = $object['invoice_id']; $items = $this->getInvoiceItems($invoiceId,''); } }else{ $items = []; } $data['invoice'] = $result; $data['item'] = $items; return $data; } public function getData($table, $where = null) { $query = $this->db->table($table); if ($where) { $query->where($where); } return $query->get()->getResult(); } public function getInvoiceData($id) { // Fetch invoice data return $this->db->table('receipt') ->where('receipt_id', $id) ->join('customers as C','C.doner_id= receipt.doner_id','left') ->join('business as B','B.business_id = receipt.business_id','left') ->select('receipt.*,concat(C.first_name," ",C.last_name) as customer_name,C.address, C.postal_code,C.city, C.state,C.mobile_no as customer_mobile, C.pan_no as cust_pan_no') ->select('B.title ,B.business_logo,B.terms,B.address,B.city,B.state,B.postal_code,B.email,B.mobile_no, B.pan_no, B.org_reg_no') ->get() ->getResult(); } // // this function Also Used For Approve Notification. // public function getInvoiceItems($id,$stringflag) // { // if ($stringflag == 'groupby') { // $select = 'invoiceitems.*, B.*, GROUP_CONCAT(C.name SEPARATOR \',\') as name'; // $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('causes as B', 'B.causes_id = invoiceitems.product', '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) // { // $data = $this->db->table('subscription as S') // ->join('customers as C', 'C.doner_id = S.doner_id', 'left') // ->join('category as CM', 'CM.id = S.scheme_id', 'left') // ->join('book_categories as BC', 'BC.category_id = S.scheme_id', 'left') // ->join('causes as BK', 'BC.causes_id = BK.causes_id', 'left') // ->select('S.doner_id, CONCAT(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.created_on, CM.name, BK.title, BK.causes_id') // ->where('CM.name', strtolower($category)) // ->where('S.doner_id', $id) // ->groupBy('S.sub_id') // ->orderBy('S.created_on', 'ASC') // ->get() // ->getResultArray(); // return $data; // } public function getProductImgs($productId) { $data = $this->db->table('book_images') ->where(['causes_id' => $productId]) // ->join('causes as B', 'B.causes_id = invoiceitems.product', 'left') // ->join('book_images as BI', 'BI.causes_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() { return $this->db->table('causes') ->join('book_categories', 'book_categories.causes_id= causes.causes_id', 'left') ->join('category','category.id=book_categories.category_id') ->where('category.name', 'membership') ->get() ->getResult(); } public function getNonMembershipCategoryBooks() { $data = $this->db->table('causes') ->select('causes.*') ->join('book_categories', 'book_categories.causes_id= causes.causes_id', 'left') ->join('category','category.id=book_categories.category_id') ->where('category.name !=', 'membership') ->groupBy('causes.causes_id') ->get() ->getResult(); return $data; } public function insertSubscriptionData($data) { return $this->db->table('subscription')->insert($data); } // ***********************REPORT********************** public function get_general_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') ->where('invoice.isactive', 1) ->where('invoice.invoice_type', 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); } $result = $query->join('customers', 'customers.doner_id = invoice.doner_id', 'left') ->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id', 'left') ->join('causes', 'causes.causes_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 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') ->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.doner_id = invoice.doner_id', 'left') ->join('invoiceitems', 'invoiceitems.invoice_id = invoice.invoice_id', 'left') ->join('causes', 'causes.causes_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.*, causes.* , COUNT(invoiceitems.product) as item_count , sum(invoiceitems.product * invoiceitems.unit_price) as item_cost') ->where('invoice.isactive', 1) ->where('causes.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('causes', 'causes.causes_id = invoiceitems.product', 'left') ->groupBy('causes.causes_id') ->get() ->getResult(); return $result; } }