= CONCAT(YEAR(NOW()) - IF(MONTH(NOW()) >= 1 AND MONTH(NOW()) <= 3, 1, 0), "-01-01")', 'campaign.created_on < CONCAT(YEAR(NOW()) + IF(MONTH(NOW()) >= 1 AND MONTH(NOW()) <= 3, 1, 0), "-01-01")' ]; if (!empty($session_role) && $session_role !== "sadmin") { $where = ['campaign.business_id' => (int)$session_bid]; } else { $where = ['campaign.business_id != ' => NULL]; } // $where = array_merge($where, $default_financial_year_condition); $EventModel = new EventModel(); $data['page_name'] = 'Campaign Details'; $campaigns = $EventModel->where($where)->orderBy('campaign_id', 'DESC')->findAll(); // Retrieve the campaigns // Sort the campaigns by ID in descending order (newest first) // usort($campaigns, function ($a, $b) { // return $b['id'] - $a['id']; // }); $data['campaign'] = $campaigns; // Assign the sorted array to $data['campaign'] $data['session_bid'] = $session_bid; // echo '
';
            // print_r($data); die;

            $this->render_page('event_list', $data);
        } else {
            return redirect()->to('login');
        }
    }

    public function new_campaign($id)
    {
        helper('session');
        $session_bid = get_business_id();
        if ($id === '0') {
            $data['page_name']    = 'Add Campaign';
            $data['campaign'] = [];
        } else if ($id !== '0') {
            $data['page_name']    = 'Edit Campaign';
            $model = new EventModel();
            $model->setTable('campaign');
            $edit_campaign_details = $model->where(['campaign_id' => $id])->first();
            $data['campaign'] = $edit_campaign_details;
        }

        $data['session_bid'] = $session_bid;

        $this->render_page('event_form', $data);
    }

    public function insert_event()
    {
        $this->logger->info("campaign: Inserting/Updating Details");
        try {
            helper('session');
            $session_bid = get_business_id();
            $session_uid = get_logged_user_id();
            $EventModel = new EventModel();
            $inputdate1 = date("Y-m-d", strtotime($this->request->getVar('start_date')));
            $inputdate2 = date("Y-m-d", strtotime($this->request->getVar('end_date')));
           
            $data = [
                'name' => $this->request->getPost('name'),
                'description' => $this->request->getPost('description'),
                'start_date' =>$inputdate1,
                'end_date' =>$inputdate2 ,
                'business_id' => $this->request->getPost('business_id')
            ];

        
            $campaign_id = $this->request->getPost('campaign_id'); // Get the business ID for update

            if (empty($campaign_id)) {
                // It's an insert operation
                $data['created_by'] = $session_uid;

                if ($EventModel->insert($data)) {

                    session()->setFlashdata('success', 'campaign has been added successfully.');
                    $this->logger->info("campaign : has been added successfully. Inserted ID = " . $EventModel->insertID());
                } else {
                    session()->setFlashdata('error', 'campaign could not be added. Please try again..');
                    $this->logger->error("campaign: Err data could not be added. Please try again.");
                }
            } else {
                // It's an update operation
                $data['updated_by'] = $session_uid;
                if ($EventModel->update($campaign_id, $data)) {
                    session()->setFlashdata('success', 'campaign has been updated successfully.');
                    $this->logger->info("campaign: has been updated successfully. Updated campaign ID = " . $campaign_id);
                } else {
                    session()->setFlashdata('error', 'campaign update failed. Please try again.');
                    $this->logger->error("campaign: Err Failed to update ID =" . $campaign_id);
                }
            }
        } catch (\Exception $e) {
            $this->logger->error("campaign: Err Occur = " . $e->getMessage() . " Line = " . $e->getLine() . " File = " . $e->getFile());
            session()->setFlashdata('error', 'Message: ' . $e->getMessage());
        }
        return redirect()->route('campaign_list');
    }

}