load->model('finance_model'); $this->load->model('doctor/doctor_model'); $this->load->model('patient/patient_model'); $this->load->model('finance/pharmacy_model'); $this->load->model('accountant/accountant_model'); $this->load->model('receptionist/receptionist_model'); $this->load->module('sms'); require APPPATH . 'third_party/stripe/stripe-php/init.php'; $this->load->module('paypal'); if (!$this->ion_auth->in_group(array('admin', 'Accountant', 'Receptionist', 'Nurse', 'Laboratorist', 'Doctor'))) { redirect('home/permission'); } } public function index() { redirect('finance/financial_report'); } public function payment() { if (!$this->ion_auth->logged_in()) { redirect('auth/login', 'refresh'); } $data['settings'] = $this->settings_model->getSettings(); $this->load->view('home/dashboard'); // just the header file $this->load->view('payment', $data); $this->load->view('home/footer'); // just the header file } function amountDistribution() { if (!$this->ion_auth->logged_in()) { redirect('auth/login', 'refresh'); } $data['settings'] = $this->settings_model->getSettings(); $data['payments'] = $this->finance_model->getPayment(); $this->load->view('home/dashboard'); // just the header file $this->load->view('amount_distribution', $data); $this->load->view('home/footer'); // just the header file } public function addPaymentView() { $data = array(); $data['discount_type'] = $this->finance_model->getDiscountType(); $data['settings'] = $this->settings_model->getSettings(); $data['categories'] = $this->finance_model->getPaymentCategory(); $data['gateway'] = $this->finance_model->getGatewayByName($data['settings']->payment_gateway); $data['patients'] = $this->patient_model->getPatient(); $data['doctors'] = $this->doctor_model->getDoctor(); $this->load->view('home/dashboard'); // just the header file $this->load->view('add_payment_view', $data); $this->load->view('home/footer'); // just the header file } public function addPayment() { $id = $this->input->post('id'); $item_selected = array(); $quantity = array(); $category_selected = array(); // $amount_by_category = $this->input->post('category_amount'); $category_selected = $this->input->post('category_name'); $item_selected = $this->input->post('category_id'); $quantity = $this->input->post('quantity'); $remarks = $this->input->post('remarks'); if (empty($item_selected)) { $this->session->set_flashdata('feedback', 'Select a Item'); redirect('finance/addPaymentView'); } else { $item_quantity_array = array(); $item_quantity_array = array_combine($item_selected, $quantity); } $cat_and_price = array(); if (!empty($item_quantity_array)) { foreach ($item_quantity_array as $key => $value) { $current_item = $this->finance_model->getPaymentCategoryById($key); $category_price = $current_item->c_price; $category_type = $current_item->type; $qty = $value; $cat_and_price[] = $key . '*' . $category_price . '*' . $category_type . '*' . $qty; $amount_by_category[] = $category_price * $qty; } $category_name = implode(',', $cat_and_price); } else { $this->session->set_flashdata('feedback', 'Atend The Required Fields'); redirect('finance/addPaymentView'); } $patient = $this->input->post('patient'); $p_name = $this->input->post('p_name'); $p_email = $this->input->post('p_email'); if (empty($p_email)) { $p_email = $p_name . '-' . rand(1, 1000) . '-' . $p_name . '-' . rand(1, 1000) . '@example.com'; } if (!empty($p_name)) { $password = $p_name . '-' . rand(1, 100000000); } $p_phone = $this->input->post('p_phone'); $p_age = $this->input->post('p_age'); $p_gender = $this->input->post('p_gender'); $add_date = date('m/d/y'); $patient_id = rand(10000, 1000000); $d_name = $this->input->post('d_name'); $d_email = $this->input->post('d_email'); if (empty($d_email)) { $d_email = $d_name . '-' . rand(1, 1000) . '-' . $d_name . '-' . rand(1, 1000) . '@example.com'; } if (!empty($d_name)) { $password = $d_name . '-' . rand(1, 100000000); } $d_phone = $this->input->post('d_phone'); $doctor = $this->input->post('doctor'); $date = time(); $date_string = date('d-m-y', $date); $discount = $this->input->post('discount'); if (empty($discount)) { $discount = 0; } $amount_received = $this->input->post('amount_received'); $deposit_type = $this->input->post('deposit_type'); $user = $this->ion_auth->get_user_id(); $this->load->library('form_validation'); $this->form_validation->set_error_delimiters('
', '
'); // Validating Category Field // $this->form_validation->set_rules('category_amount[]', 'Category', 'min_length[1]|max_length[100]'); // Validating Price Field $this->form_validation->set_rules('patient', 'Patient', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Price Field $this->form_validation->set_rules('discount', 'Discount', 'trim|min_length[1]|max_length[100]|xss_clean'); if ($this->form_validation->run() == FALSE) { redirect('finance/addPaymentView'); } else { if (!empty($p_name)) { $data_p = array( 'patient_id' => $patient_id, 'name' => $p_name, 'email' => $p_email, 'phone' => $p_phone, 'sex' => $p_gender, 'age' => $p_age, 'add_date' => $add_date, 'how_added' => 'from_pos' ); $username = $this->input->post('p_name'); // Adding New Patient if ($this->ion_auth->email_check($p_email)) { $this->session->set_flashdata('feedback', 'This Email Address Is Already Registered'); } else { $dfg = 5; $this->ion_auth->register($username, $password, $p_email, $dfg); $ion_user_id = $this->db->get_where('users', array('email' => $p_email))->row()->id; $this->patient_model->insertPatient($data_p); $patient_user_id = $this->db->get_where('patient', array('email' => $p_email))->row()->id; $id_info = array('ion_user_id' => $ion_user_id); $this->patient_model->updatePatient($patient_user_id, $id_info); } // } } if (!empty($d_name)) { $data_d = array( 'name' => $d_name, 'email' => $d_email, 'phone' => $d_phone, ); $username = $this->input->post('d_name'); // Adding New Patient if ($this->ion_auth->email_check($d_email)) { $this->session->set_flashdata('feedback', 'This Email Address Is Already Registered'); } else { $dfgg = 4; $this->ion_auth->register($username, $password, $d_email, $dfgg); $ion_user_id = $this->db->get_where('users', array('email' => $d_email))->row()->id; $this->doctor_model->insertDoctor($data_d); $doctor_user_id = $this->db->get_where('doctor', array('email' => $d_email))->row()->id; $id_info = array('ion_user_id' => $ion_user_id); $this->doctor_model->updateDoctor($doctor_user_id, $id_info); } } if ($patient == 'add_new') { $patient = $patient_user_id; } if ($doctor == 'add_new') { $doctor = $doctor_user_id; } $amount = array_sum($amount_by_category); $sub_total = $amount; $discount_type = $this->finance_model->getDiscountType(); if (!empty($doctor)) { $all_cat_name = explode(',', $category_name); foreach ($all_cat_name as $indiviual_cat_nam) { $indiviual_cat_nam1 = explode('*', $indiviual_cat_nam); $qty = $indiviual_cat_nam1[3]; $d_commission = $this->finance_model->getPaymentCategoryById($indiviual_cat_nam1[0])->d_commission; $h_commission = 100 - $d_commission; $hospital_amount_per_unit = $indiviual_cat_nam1[1] * $h_commission / 100; $hospital_amount_by_category[] = $hospital_amount_per_unit * $qty; } $hospital_amount = array_sum($hospital_amount_by_category); if ($discount_type == 'flat') { $flat_discount = $discount; $gross_total = $sub_total - $flat_discount; $doctor_amount = $amount - $hospital_amount - $flat_discount; } else { $flat_discount = $sub_total * ($discount / 100); $gross_total = $sub_total - $flat_discount; $doctor_amount = $amount - $hospital_amount - $flat_discount; } } else { $doctor_amount = '0'; if ($discount_type == 'flat') { $flat_discount = $discount; $gross_total = $sub_total - $flat_discount; $hospital_amount = $gross_total; } else { $flat_discount = $amount * ($discount / 100); $gross_total = $sub_total - $flat_discount; $hospital_amount = $gross_total; } } $data = array(); if (!empty($patient)) { $patient_details = $this->patient_model->getPatientById($patient); $patient_name = $patient_details->name; $patient_phone = $patient_details->phone; $patient_address = $patient_details->address; $patient_email = $patient_details->email; } else { $patient_name = 0; $patient_phone = 0; $patient_address = 0; } if (!empty($doctor)) { $doctor_details = $this->doctor_model->getDoctorById($doctor); $doctor_name = $doctor_details->name; } else { $doctor_name = 0; } if (empty($id)) { $data = array( 'category_name' => $category_name, 'patient' => $patient, 'date' => $date, 'amount' => $sub_total, 'doctor' => $doctor, 'discount' => $discount, 'flat_discount' => $flat_discount, 'gross_total' => $gross_total, 'status' => 'unpaid', 'hospital_amount' => $hospital_amount, 'doctor_amount' => $doctor_amount, 'user' => $user, 'patient_name' => $patient_name, 'patient_phone' => $patient_phone, 'patient_address' => $patient_address, 'doctor_name' => $doctor_name, 'date_string' => $date_string, 'remarks' => $remarks ); $this->finance_model->insertPayment($data); $inserted_id = $this->db->insert_id(); //sms $set['settings'] = $this->settings_model->getSettings(); $autosms = $this->sms_model->getAutoSmsByType('payment'); $message = $autosms->message; $to = $patient_phone; $name1 = explode(' ', $patient_name); if (!isset($name1[1])) { $name1[1] = null; } $data1 = array( 'firstname' => $name1[0], 'lastname' => $name1[1], 'name' => $patient_name, 'amount' => $gross_total, ); if ($autosms->status == 'Active') { $messageprint = $this->parser->parse_string($message, $data1); $data2[] = array($to => $messageprint); $this->sms->sendSms($to, $message, $data2); } //end //email $autoemail = $this->email_model->getAutoEmailByType('payment'); if ($autoemail->status == 'Active') { $emailSettings = $this->email_model->getEmailSettings(); $message1 = $autoemail->message; $messageprint1 = $this->parser->parse_string($message1, $data1); $this->email->from($emailSettings->admin_email); $this->email->to($patient_email); $this->email->subject('Appointment confirmation'); $this->email->message($messageprint1); $this->email->send(); } //end if ($deposit_type == 'Card') { $gateway = $this->settings_model->getSettings()->payment_gateway; if ($gateway == 'PayPal') { $card_type = $this->input->post('card_type'); $card_number = $this->input->post('card_number'); $expire_date = $this->input->post('expire_date'); $cvv = $this->input->post('cvv'); $all_details = array( 'patient' => $patient, 'date' => $date, 'amount' => $sub_total, 'doctor' => $doctor, 'discount' => $discount, 'flat_discount' => $flat_discount, 'gross_total' => $gross_total, 'status' => 'unpaid', 'hospital_amount' => $hospital_amount, 'doctor_amount' => $doctor_amount, 'patient_name' => $patient_name, 'patient_phone' => $patient_phone, 'patient_address' => $patient_address, 'doctor_name' => $doctor_name, 'date_string' => $date_string, 'remarks' => $remarks, 'deposited_amount' => $amount_received, 'payment_id' => $inserted_id, 'card_type' => $card_type, 'card_number' => $card_number, 'expire_date' => $expire_date, 'cvv' => $cvv, 'from' => 'pos', 'user' => $user ); // $data_payments['all_details'] = $all_details; // $this->load->view('home/dashboard'); // just the header file // $this->load->view('paypal/confirmation', $data_payments); // $this->load->view('home/footer'); // just the header file $this->paypal->Do_direct_payment($all_details); } elseif ($gateway == 'Stripe') { $card_number = $this->input->post('card_number'); $expire_date = $this->input->post('expire_date'); $cvv = $this->input->post('cvv'); $token = $this->input->post('token'); $stripe = $this->db->get_where('paymentGateway', array('name =' => 'Stripe'))->row(); \Stripe\Stripe::setApiKey($stripe->secret); $charge = \Stripe\Charge::create(array( "amount" => $amount_received * 100, "currency" => "usd", "source" => $token )); $chargeJson = $charge->jsonSerialize(); redirect("finance/invoice?id=" . "$inserted_id"); } elseif ($gateway == 'Pay U Money') { redirect("payu/check1?deposited_amount=" . "$amount_received" . '&payment_id=' . $inserted_id); } else { $this->session->set_flashdata('feedback', 'Payment failed. No Gateway Selected'); redirect("finance/invoice?id=" . "$inserted_id"); } } else { $data1 = array( 'date' => $date, 'patient' => $patient, 'deposited_amount' => $amount_received, 'payment_id' => $inserted_id, 'amount_received_id' => $inserted_id . '.' . 'gp', 'deposit_type' => $deposit_type, 'user' => $user ); $this->finance_model->insertDeposit($data1); $data_payment = array('amount_received' => $amount_received, 'deposit_type' => $deposit_type); $this->finance_model->updatePayment($inserted_id, $data_payment); $this->session->set_flashdata('feedback', 'Added'); redirect("finance/invoice?id=" . "$inserted_id"); } } else { $deposit_edit_amount = $this->input->post('deposit_edit_amount'); $deposit_edit_id = $this->input->post('deposit_edit_id'); if (!empty($deposit_edit_amount)) { $deposited_edit = array_combine($deposit_edit_id, $deposit_edit_amount); foreach ($deposited_edit as $key_deposit => $value_deposit) { $data_deposit = array( 'deposited_amount' => $value_deposit ); $this->finance_model->updateDeposit($key_deposit, $data_deposit); } } $a_r_i = $id . '.' . 'gp'; $deposit_id = $this->db->get_where('patient_deposit', array('amount_received_id' => $a_r_i))->row(); $data = array( 'category_name' => $category_name, 'patient' => $patient, 'doctor' => $doctor, 'amount' => $sub_total, 'discount' => $discount, 'flat_discount' => $flat_discount, 'gross_total' => $gross_total, 'amount_received' => $amount_received, 'hospital_amount' => $hospital_amount, 'doctor_amount' => $doctor_amount, 'user' => $user, 'patient_name' => $patient_details->name, 'patient_phone' => $patient_details->phone, 'patient_address' => $patient_details->address, 'doctor_name' => $doctor_details->name, 'remarks' => $remarks ); if (!empty($deposit_id->id)) { $data1 = array( 'date' => $date, 'patient' => $patient, 'payment_id' => $id, 'deposited_amount' => $amount_received, 'user' => $user ); $this->finance_model->updateDeposit($deposit_id->id, $data1); } else { $data1 = array( 'date' => $date, 'patient' => $patient, 'payment_id' => $id, 'deposited_amount' => $amount_received, 'amount_received_id' => $id . '.' . 'gp', 'user' => $user ); $this->finance_model->insertDeposit($data1); } $this->finance_model->updatePayment($id, $data); $this->session->set_flashdata('feedback', 'Updated'); redirect("finance/invoice?id=" . "$id"); } } } function editPayment() { if ($this->ion_auth->in_group(array('admin', 'Accountant', 'Receptionist'))) { $data = array(); $data['discount_type'] = $this->finance_model->getDiscountType(); $data['settings'] = $this->settings_model->getSettings(); $data['categories'] = $this->finance_model->getPaymentCategory(); // $data['patients'] = $this->patient_model->getPatient(); // $data['doctors'] = $this->doctor_model->getDoctor(); $id = $this->input->get('id'); $data['payment'] = $this->finance_model->getPaymentById($id); $data['patients'] = $this->patient_model->getPatientById($data['payment']->patient); $data['doctors'] = $this->doctor_model->getDoctorById($data['payment']->doctor); $this->load->view('home/dashboard'); // just the header file $this->load->view('add_payment_view', $data); $this->load->view('home/footer'); // just the footer file } } function delete() { if ($this->ion_auth->in_group(array('admin', 'Accountant', 'Receptionist'))) { $id = $this->input->get('id'); $this->finance_model->deletePayment($id); $this->finance_model->deleteDepositByInvoiceId($id); $this->session->set_flashdata('feedback', 'Deleted'); redirect('finance/payment'); } } public function otPayment() { if (!$this->ion_auth->logged_in()) { redirect('auth/login', 'refresh'); } $data['settings'] = $this->settings_model->getSettings(); $data['ot_payments'] = $this->finance_model->getOtPayment(); $this->load->view('home/dashboard'); // just the header file $this->load->view('ot_payment', $data); $this->load->view('home/footer'); // just the header file } public function addOtPaymentView() { $data = array(); $data['doctors'] = $this->doctor_model->getDoctor(); $data['discount_type'] = $this->finance_model->getDiscountType(); $data['settings'] = $this->settings_model->getSettings(); $data['categories'] = $this->finance_model->getPaymentCategory(); $data['patients'] = $this->patient_model->getPatient(); $this->load->view('home/dashboard'); // just the header file $this->load->view('add_ot_payment', $data); $this->load->view('home/footer'); // just the header file } public function addOtPayment() { $id = $this->input->post('id'); $patient = $this->input->post('patient'); $doctor_c_s = $this->input->post('doctor_c_s'); $doctor_a_s_1 = $this->input->post('doctor_a_s_1'); $doctor_a_s_2 = $this->input->post('doctor_a_s_2'); $doctor_anaes = $this->input->post('doctor_anaes'); $n_o_o = $this->input->post('n_o_o'); $c_s_f = $this->input->post('c_s_f'); $a_s_f_1 = $this->input->post('a_s_f_1'); $a_s_f_2 = $this->input->post('a_s_f_2'); $anaes_f = $this->input->post('anaes_f'); $ot_charge = $this->input->post('ot_charge'); $cab_rent = $this->input->post('cab_rent'); $seat_rent = $this->input->post('seat_rent'); $others = $this->input->post('others'); $discount = $this->input->post('discount'); $vat = $this->input->post('vat'); $amount_received = $this->input->post('amount_received'); $date = time(); $user = $this->ion_auth->get_user_id(); $this->load->library('form_validation'); $this->form_validation->set_error_delimiters('
', '
'); // Validating Patient Field $this->form_validation->set_rules('patient', 'Patient', 'trim|required|min_length[2]|max_length[100]|xss_clean'); // Validating Consultant surgeon Field $this->form_validation->set_rules('doctor_c_s', 'Consultant surgeon', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Assistant Surgeon Field $this->form_validation->set_rules('doctor_a_s_1', 'Assistant Surgeon (1)', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Assistant Surgeon Field $this->form_validation->set_rules('doctor_a_s_2', 'Assistant Surgeon(2)', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Anaesthisist Field $this->form_validation->set_rules('doctor_anaes', 'Anaesthisist', 'trim|min_length[2]|max_length[100]|xss_clean'); // Validating Nature Of Operation Field $this->form_validation->set_rules('n_o_o', 'Nature Of Operation', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Consultant Surgeon Fee Field $this->form_validation->set_rules('c_s_f', 'Consultant Surgeon Fee', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Assistant surgeon fee Field $this->form_validation->set_rules('a_s_f_1', 'Assistant surgeon fee', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Assistant surgeon fee Field $this->form_validation->set_rules('a_s_f_2', 'Assistant surgeon fee', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Anaesthesist Field $this->form_validation->set_rules('anaes_f', 'Anaesthesist', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating OT Charge Field $this->form_validation->set_rules('ot_charge', 'OT Charge', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Cabin Rent Field $this->form_validation->set_rules('cab_rent', 'Cabin Rent', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Seat Rent Field $this->form_validation->set_rules('seat_rent', 'Seat Rent', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Others Field $this->form_validation->set_rules('others', 'Others', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Discount Field $this->form_validation->set_rules('discount', 'Discount', 'trim|min_length[1]|max_length[100]|xss_clean'); if ($this->form_validation->run() == FALSE) { echo 'form validate noe nai re'; // redirect('accountant/add_new'); } else { $doctor_fees = $c_s_f + $a_s_f_1 + $a_s_f_2 + $anaes_f; $hospital_fees = $ot_charge + $cab_rent + $seat_rent + $others; $amount = $doctor_fees + $hospital_fees; $discount_type = $this->finance_model->getDiscountType(); if ($discount_type == 'flat') { $amount_with_discount = $amount - $discount; $gross_total = $amount_with_discount + $amount_with_discount * ($vat / 100); $flat_discount = $discount; $flat_vat = $amount_with_discount * ($vat / 100); $hospital_fees = $hospital_fees - $flat_discount; } else { $flat_discount = $amount * ($discount / 100); $amount_with_discount = $amount - $amount * ($discount / 100); $gross_total = $amount_with_discount + $amount_with_discount * ($vat / 100); $discount = $discount . '*' . $amount * ($discount / 100); $flat_vat = $amount_with_discount * ($vat / 100); $hospital_fees = $hospital_fees - $flat_discount; } $data = array(); if (empty($id)) { $data = array( 'patient' => $patient, 'doctor_c_s' => $doctor_c_s, 'doctor_a_s_1' => $doctor_a_s_1, 'doctor_a_s_2' => $doctor_a_s_2, 'doctor_anaes' => $doctor_anaes, 'n_o_o' => $n_o_o, 'c_s_f' => $c_s_f, 'a_s_f_1' => $a_s_f_1, 'a_s_f_2' => $a_s_f_2, 'anaes_f' => $anaes_f, 'ot_charge' => $ot_charge, 'cab_rent' => $cab_rent, 'seat_rent' => $seat_rent, 'others' => $others, 'discount' => $discount, 'date' => $date, 'amount' => $amount, 'doctor_fees' => $doctor_fees, 'hospital_fees' => $hospital_fees, 'gross_total' => $gross_total, 'flat_discount' => $flat_discount, 'amount_received' => $amount_received, 'status' => 'unpaid', 'user' => $user ); $this->finance_model->insertOtPayment($data); $inserted_id = $this->db->insert_id(); $data1 = array( 'date' => $date, 'patient' => $patient, 'deposited_amount' => $amount_received, 'amount_received_id' => $inserted_id . '.' . 'ot', 'user' => $user ); $this->finance_model->insertDeposit($data1); $this->session->set_flashdata('feedback', 'Added'); redirect("finance/otInvoice?id=" . "$inserted_id"); } else { $a_r_i = $id . '.' . 'ot'; $deposit_id = $this->db->get_where('patient_deposit', array('amount_received_id' => $a_r_i))->row()->id; $data = array( 'patient' => $patient, 'doctor_c_s' => $doctor_c_s, 'doctor_a_s_1' => $doctor_a_s_1, 'doctor_a_s_2' => $doctor_a_s_2, 'doctor_anaes' => $doctor_anaes, 'n_o_o' => $n_o_o, 'c_s_f' => $c_s_f, 'a_s_f_1' => $a_s_f_1, 'a_s_f_2' => $a_s_f_2, 'anaes_f' => $anaes_f, 'ot_charge' => $ot_charge, 'cab_rent' => $cab_rent, 'seat_rent' => $seat_rent, 'others' => $others, 'discount' => $discount, 'amount' => $amount, 'doctor_fees' => $doctor_fees, 'hospital_fees' => $hospital_fees, 'gross_total' => $gross_total, 'flat_discount' => $flat_discount, 'amount_received' => $amount_received, 'user' => $user ); $data1 = array( 'date' => $date, 'patient' => $patient, 'deposited_amount' => $amount_received, 'user' => $user ); $this->finance_model->updateDeposit($deposit_id, $data1); $this->finance_model->updateOtPayment($id, $data); $this->session->set_flashdata('feedback', 'Updated'); redirect("finance/otInvoice?id=" . "$id"); } } } function editOtPayment() { if ($this->ion_auth->in_group(array('admin', 'Accountant'))) { $data = array(); $data['discount_type'] = $this->finance_model->getDiscountType(); $data['settings'] = $this->settings_model->getSettings(); $data['patients'] = $this->patient_model->getPatient(); $id = $this->input->get('id'); $data['ot_payment'] = $this->finance_model->getOtPaymentById($id); $data['doctors'] = $this->doctor_model->getDoctor(); $this->load->view('home/dashboard'); // just the header file $this->load->view('add_ot_payment', $data); $this->load->view('home/footer'); // just the footer file } } function otInvoice() { $id = $this->input->get('id'); $data['settings'] = $this->settings_model->getSettings(); $data['discount_type'] = $this->finance_model->getDiscountType(); $data['ot_payment'] = $this->finance_model->getOtPaymentById($id); $this->load->view('home/dashboard'); // just the header file $this->load->view('ot_invoice', $data); $this->load->view('home/footer'); // just the footer fi } function otPaymentDetails() { $id = $this->input->get('id'); $patient = $this->input->get('patient'); $data['patient'] = $this->patient_model->getPatientByid($patient); $data['settings'] = $this->settings_model->getSettings(); $data['discount_type'] = $this->finance_model->getDiscountType(); $data['ot_payment'] = $this->finance_model->getOtPaymentById($id); $this->load->view('home/dashboard'); // just the header file $this->load->view('ot_payment_details', $data); $this->load->view('home/footer'); // just the footer fi } function otPaymentDelete() { if ($this->ion_auth->in_group(array('admin', 'Accountant'))) { $id = $this->input->get('id'); $this->finance_model->deleteOtPayment($id); $this->session->set_flashdata('feedback', 'Deleted'); redirect('finance/otPayment'); } } function addPaymentByPatient() { $data = array(); $id = $this->input->get('id'); $data['patient'] = $this->patient_model->getPatientById($id); $this->load->view('home/dashboard'); // just the header file $this->load->view('choose_payment_type', $data); $this->load->view('home/footer'); // just the footer fi } function addPaymentByPatientView() { $id = $this->input->get('id'); $type = $this->input->get('type'); $data = array(); $data['discount_type'] = $this->finance_model->getDiscountType(); $data['settings'] = $this->settings_model->getSettings(); $data['categories'] = $this->finance_model->getPaymentCategory(); $data['gateway'] = $this->finance_model->getGatewayByName($data['settings']->payment_gateway); $data['doctors'] = $this->doctor_model->getDoctor(); $data['patient'] = $this->patient_model->getPatientById($id); if ($type == 'gen') { $this->load->view('home/dashboard'); // just the header file $this->load->view('add_payment_view_single', $data); $this->load->view('home/footer'); // just the footer fi } else { $this->load->view('home/dashboard'); // just the header file $this->load->view('add_ot_payment_view_single', $data); $this->load->view('home/footer'); // just the footer fi } } public function paymentCategory() { if (!$this->ion_auth->logged_in()) { redirect('auth/login', 'refresh'); } $data['categories'] = $this->finance_model->getPaymentCategory(); $data['settings'] = $this->settings_model->getSettings(); $this->load->view('home/dashboard'); // just the header file $this->load->view('payment_category', $data); $this->load->view('home/footer'); // just the header file } public function addPaymentCategoryView() { $this->load->view('home/dashboard'); // just the header file $this->load->view('add_payment_category'); $this->load->view('home/footer'); // just the header file } public function addPaymentCategory() { $id = $this->input->post('id'); $category = $this->input->post('category'); $type = $this->input->post('type'); $description = $this->input->post('description'); $c_price = $this->input->post('c_price'); $d_commission = $this->input->post('d_commission'); if (empty($c_price)) { $c_price = 0; } $this->load->library('form_validation'); $this->form_validation->set_error_delimiters('
', '
'); // Validating Category Name Field $this->form_validation->set_rules('category', 'Category', 'trim|required|min_length[1]|max_length[100]|xss_clean'); // Validating Description Field $this->form_validation->set_rules('description', 'Description', 'trim|required|min_length[1]|max_length[100]|xss_clean'); // Validating Description Field $this->form_validation->set_rules('c_price', 'Category price', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Doctor Commission Rate Field $this->form_validation->set_rules('d_commission', 'Doctor Commission rate', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Description Field $this->form_validation->set_rules('type', 'Type', 'trim|min_length[1]|max_length[100]|xss_clean'); if ($this->form_validation->run() == FALSE) { if (!empty($id)) { $this->session->set_flashdata('feedback', 'Validation Error !'); redirect('finance/editPaymentCategory?id=' . $id); } else { $data = array(); $data['setval'] = 'setval'; $this->load->view('home/dashboard'); // just the header file $this->load->view('add_payment_category', $data); $this->load->view('home/footer'); // just the header file } } else { $data = array(); $data = array('category' => $category, 'description' => $description, 'type' => $type, 'c_price' => $c_price, 'd_commission' => $d_commission ); if (empty($id)) { $this->finance_model->insertPaymentCategory($data); $this->session->set_flashdata('feedback', 'Added'); } else { $this->finance_model->updatePaymentCategory($id, $data); $this->session->set_flashdata('feedback', 'Updated'); } redirect('finance/paymentCategory'); } } function editPaymentCategory() { $data = array(); $id = $this->input->get('id'); $data['category'] = $this->finance_model->getPaymentCategoryById($id); $this->load->view('home/dashboard'); // just the header file $this->load->view('add_payment_category', $data); $this->load->view('home/footer'); // just the footer file } function deletePaymentCategory() { $id = $this->input->get('id'); $this->finance_model->deletePaymentCategory($id); redirect('finance/paymentCategory'); } public function expense() { if (!$this->ion_auth->logged_in()) { redirect('auth/login', 'refresh'); } $data['settings'] = $this->settings_model->getSettings(); $data['expenses'] = $this->finance_model->getExpense(); $this->load->view('home/dashboard'); // just the header file $this->load->view('expense', $data); $this->load->view('home/footer'); // just the header file } public function addExpenseView() { $data = array(); $data['settings'] = $this->settings_model->getSettings(); $data['categories'] = $this->finance_model->getExpenseCategory(); $this->load->view('home/dashboard'); // just the header file $this->load->view('add_expense_view', $data); $this->load->view('home/footer'); // just the header file } public function addExpense() { $id = $this->input->post('id'); $category = $this->input->post('category'); $date = time(); $amount = $this->input->post('amount'); $user = $this->ion_auth->get_user_id(); $note = $this->input->post('note'); $this->load->library('form_validation'); $this->form_validation->set_error_delimiters('
', '
'); // Validating Category Field $this->form_validation->set_rules('category', 'Category', 'trim|required|min_length[1]|max_length[100]|xss_clean'); // Validating Generic Name Field $this->form_validation->set_rules('amount', 'Amount', 'trim|required|min_length[1]|max_length[100]|xss_clean'); // Validating Note Field $this->form_validation->set_rules('note', 'Note', 'trim|min_length[1]|max_length[100]|xss_clean'); if ($this->form_validation->run() == FALSE) { if (!empty($id)) { $this->session->set_flashdata('feedback', 'Validation Error !'); redirect('finance/editExpense?id=' . $id); } else { $data = array(); $data['setval'] = 'setval'; $data['settings'] = $this->settings_model->getSettings(); $data['categories'] = $this->finance_model->getExpenseCategory(); $this->load->view('home/dashboard'); // just the header file $this->load->view('add_expense_view', $data); $this->load->view('home/footer'); // just the header file } } else { $data = array(); if (empty($id)) { $data = array( 'category' => $category, 'date' => $date, 'datestring' => date('d/m/y', $date), 'amount' => $amount, 'note' => $note, 'user' => $user ); } else { $data = array( 'category' => $category, 'amount' => $amount, 'note' => $note, 'user' => $user, ); } if (empty($id)) { $this->finance_model->insertExpense($data); $this->session->set_flashdata('feedback', 'Added'); } else { $this->finance_model->updateExpense($id, $data); $this->session->set_flashdata('feedback', 'Updated'); } redirect('finance/expense'); } } function editExpense() { $data = array(); $data['categories'] = $this->finance_model->getExpenseCategory(); $data['settings'] = $this->settings_model->getSettings(); $id = $this->input->get('id'); $data['expense'] = $this->finance_model->getExpenseById($id); $this->load->view('home/dashboard'); // just the header file $this->load->view('add_expense_view', $data); $this->load->view('home/footer'); // just the footer file } function deleteExpense() { $id = $this->input->get('id'); $this->finance_model->deleteExpense($id); redirect('finance/expense'); } public function expenseCategory() { if (!$this->ion_auth->logged_in()) { redirect('auth/login', 'refresh'); } $data['categories'] = $this->finance_model->getExpenseCategory(); $this->load->view('home/dashboard'); // just the header file $this->load->view('expense_category', $data); $this->load->view('home/footer'); // just the header file } public function addExpenseCategoryView() { $this->load->view('home/dashboard'); // just the header file $this->load->view('add_expense_category'); $this->load->view('home/footer'); // just the header file } public function addExpenseCategory() { $id = $this->input->post('id'); $category = $this->input->post('category'); $description = $this->input->post('description'); $this->load->library('form_validation'); $this->form_validation->set_error_delimiters('
', '
'); // Validating Category Name Field $this->form_validation->set_rules('category', 'Category', 'trim|required|min_length[1]|max_length[100]|xss_clean'); // Validating Description Field $this->form_validation->set_rules('description', 'Description', 'trim|required|min_length[1]|max_length[100]|xss_clean'); if ($this->form_validation->run() == FALSE) { if (!empty($id)) { $this->session->set_flashdata('feedback', 'Validation Error !'); redirect('finance/editExpenseCategory?id=' . $id); } else { $data = array(); $data['setval'] = 'setval'; $this->load->view('home/dashboard'); // just the header file $this->load->view('add_expense_category', $data); $this->load->view('home/footer'); // just the header file } } else { $data = array(); $data = array('category' => $category, 'description' => $description ); if (empty($id)) { $this->finance_model->insertExpenseCategory($data); $this->session->set_flashdata('feedback', 'Added'); } else { $this->finance_model->updateExpenseCategory($id, $data); $this->session->set_flashdata('feedback', 'Updated'); } redirect('finance/expenseCategory'); } } function editExpenseCategory() { $data = array(); $id = $this->input->get('id'); $data['category'] = $this->finance_model->getExpenseCategoryById($id); $this->load->view('home/dashboard'); // just the header file $this->load->view('add_expense_category', $data); $this->load->view('home/footer'); // just the footer file } function deleteExpenseCategory() { $id = $this->input->get('id'); $this->finance_model->deleteExpenseCategory($id); redirect('finance/expenseCategory'); } function invoice() { $id = $this->input->get('id'); $data['settings'] = $this->settings_model->getSettings(); $data['discount_type'] = $this->finance_model->getDiscountType(); $data['payment'] = $this->finance_model->getPaymentById($id); $this->load->view('home/dashboard'); // just the header file $this->load->view('invoice', $data); $this->load->view('home/footer'); // just the footer fi } function printInvoice() { $id = $this->input->get('id'); $data['settings'] = $this->settings_model->getSettings(); $data['discount_type'] = $this->finance_model->getDiscountType(); $data['payment'] = $this->finance_model->getPaymentById($id); $this->load->view('home/dashboard'); // just the header file $this->load->view('print_invoice', $data); $this->load->view('home/footer'); // just the footer fi } function expenseInvoice() { $id = $this->input->get('id'); $data['settings'] = $this->settings_model->getSettings(); $data['expense'] = $this->finance_model->getExpenseById($id); $this->load->view('home/dashboard'); // just the header file $this->load->view('expense_invoice', $data); $this->load->view('home/footer'); // just the footer fi } function amountReceived() { $id = $this->input->post('id'); $amount_received = $this->input->post('amount_received'); $previous_amount_received = $this->db->get_where('payment', array('id' => $id))->row()->amount_received; $amount_received = $amount_received + $previous_amount_received; $data = array(); $data = array('amount_received' => $amount_received); $this->finance_model->amountReceived($id, $data); redirect('finance/invoice?id=' . $id); } function otAmountReceived() { $id = $this->input->post('id'); $amount_received = $this->input->post('amount_received'); $previous_amount_received = $this->db->get_where('ot_payment', array('id' => $id))->row()->amount_received; $amount_received = $amount_received + $previous_amount_received; $data = array(); $data = array('amount_received' => $amount_received); $this->finance_model->otAmountReceived($id, $data); redirect('finance/oTinvoice?id=' . $id); } function patientPaymentHistory() { if (!$this->ion_auth->logged_in()) { redirect('auth/login', 'refresh'); } $patient = $this->input->get('patient'); if (empty($patient)) { $patient = $this->input->post('patient'); } $data['settings'] = $this->settings_model->getSettings(); $date_from = strtotime($this->input->post('date_from')); $date_to = strtotime($this->input->post('date_to')); if (!empty($date_to)) { $date_to = $date_to + 86399; } $data['date_from'] = $date_from; $data['date_to'] = $date_to; if (!empty($date_from)) { $data['payments'] = $this->finance_model->getPaymentByPatientIdByDate($patient, $date_from, $date_to); $data['deposits'] = $this->finance_model->getDepositByPatientIdByDate($patient, $date_from, $date_to); $data['gateway'] = $this->finance_model->getGatewayByName($data['settings']->payment_gateway); } else { $data['payments'] = $this->finance_model->getPaymentByPatientId($patient); $data['pharmacy_payments'] = $this->pharmacy_model->getPaymentByPatientId($patient); $data['ot_payments'] = $this->finance_model->getOtPaymentByPatientId($patient); $data['deposits'] = $this->finance_model->getDepositByPatientId($patient); $data['gateway'] = $this->finance_model->getGatewayByName($data['settings']->payment_gateway); } $data['patient'] = $this->patient_model->getPatientByid($patient); $this->load->view('home/dashboard'); // just the header file $this->load->view('patient_deposit', $data); $this->load->view('home/footer'); // just the header file } function deposit() { $id = $this->input->post('id'); $patient = $this->input->post('patient'); $payment_id = $this->input->post('payment_id'); $date = time(); $deposited_amount = $this->input->post('deposited_amount'); $deposit_type = $this->input->post('deposit_type'); if (empty($deposit_type)) { $deposit_type = 'Cash'; } $user = $this->ion_auth->get_user_id(); $this->load->library('form_validation'); $this->form_validation->set_error_delimiters('
', '
'); // Validating Patient Name Field $this->form_validation->set_rules('patient', 'Patient', 'trim|min_length[1]|max_length[100]|xss_clean'); // Validating Deposited Amount Field $this->form_validation->set_rules('deposited_amount', 'Deposited Amount', 'trim|min_length[1]|max_length[100]|xss_clean'); if ($this->form_validation->run() == FALSE) { redirect('finance/patientPaymentHistory?patient=' . $patient); } else { $data = array(); $data = array('patient' => $patient, 'date' => $date, 'payment_id' => $payment_id, 'deposited_amount' => $deposited_amount, 'deposit_type' => $deposit_type, 'user' => $user ); if (empty($id)) { if ($deposit_type == 'Card') { $payment_details = $this->finance_model->getPaymentById($payment_id); $gateway = $this->settings_model->getSettings()->payment_gateway; if ($gateway == 'PayPal') { $card_type = $this->input->post('card_type'); $card_number = $this->input->post('card_number'); $expire_date = $this->input->post('expire_date'); $cvv = $this->input->post('cvv'); $all_details = array( 'patient' => $payment_details->patient, 'date' => $payment_details->date, 'amount' => $payment_details->amount, 'doctor' => $payment_details->doctor_name, 'discount' => $payment_details->discount, 'flat_discount' => $payment_details->flat_discount, 'gross_total' => $payment_details->gross_total, 'status' => 'unpaid', 'patient_name' => $payment_details->patient_name, 'patient_phone' => $payment_details->patient_phone, 'patient_address' => $payment_details->patient_address, 'deposited_amount' => $deposited_amount, 'payment_id' => $payment_details->id, 'card_type' => $card_type, 'card_number' => $card_number, 'expire_date' => $expire_date, 'cvv' => $cvv, 'from' => 'patient_payment_details', 'user' => $user ); $this->paypal->Do_direct_payment($all_details); } elseif ($gateway == 'Stripe') { $card_number = $this->input->post('card_number'); $expire_date = $this->input->post('expire_date'); $cvv = $this->input->post('cvv'); $token = $this->input->post('token'); $stripe = $this->db->get_where('paymentGateway', array('name =' => 'Stripe'))->row(); \Stripe\Stripe::setApiKey($stripe->secret); $charge = \Stripe\Charge::create(array( "amount" => $deposited_amount * 100, "currency" => "usd", "source" => $token )); $chargeJson = $charge->jsonSerialize(); // redirect("finance/invoice?id=" . "$inserted_id"); } elseif ($gateway == 'Pay U Money') { redirect("payu/check?deposited_amount=" . "$deposited_amount" . '&payment_id=' . $payment_id); } else { $this->session->set_flashdata('feedback', 'Payment failed. No Gateway Selected'); redirect("finance/invoice?id=" . "$payment_id"); } } else { $this->finance_model->insertDeposit($data); $this->session->set_flashdata('feedback', 'Added'); } } else { $this->finance_model->updateDeposit($id, $data); $amount_received_id = $this->finance_model->getDepositById($id)->amount_received_id; if (!empty($amount_received_id)) { $amount_received_payment_id = explode('.', $amount_received_id); $payment_id = $amount_received_payment_id[0]; $data_amount_received = array('amount_received' => $deposited_amount); $this->finance_model->updatePayment($amount_received_payment_id[0], $data_amount_received); } $this->session->set_flashdata('feedback', 'Updated'); } redirect('finance/patientPaymentHistory?patient=' . $patient); } } function editDepositByJason() { $id = $this->input->get('id'); $data['deposit'] = $this->finance_model->getDepositById($id); echo json_encode($data); } function deleteDeposit() { $id = $this->input->get('id'); $patient = $this->input->get('patient'); $amount_received_id = $this->finance_model->getDepositById($id)->amount_received_id; if (!empty($amount_received_id)) { $amount_received_payment_id = explode('.', $amount_received_id); $payment_id = $amount_received_payment_id[0]; $data_amount_received = array('amount_received' => NULL); $this->finance_model->updatePayment($amount_received_payment_id[0], $data_amount_received); } $this->finance_model->deleteDeposit($id); redirect('finance/patientPaymentHistory?patient=' . $patient); } function invoicePatientTotal() { $id = $this->input->get('id'); $data['settings'] = $this->settings_model->getSettings(); $data['discount_type'] = $this->finance_model->getDiscountType(); $data['payments'] = $this->finance_model->getPaymentByPatientIdByStatus($id); $data['ot_payments'] = $this->finance_model->getOtPaymentByPatientIdByStatus($id); $data['patient_id'] = $id; $this->load->view('home/dashboard'); // just the header file $this->load->view('invoicePT', $data); $this->load->view('home/footer'); // just the footer fi } function lastPaidInvoice() { $id = $this->input->get('id'); $data['settings'] = $this->settings_model->getSettings(); $data['discount_type'] = $this->finance_model->getDiscountType(); $data['payments'] = $this->finance_model->lastPaidInvoice($id); $data['ot_payments'] = $this->finance_model->lastOtPaidInvoice($id); $data['patient_id'] = $id; $this->load->view('home/dashboard'); // just the header file $this->load->view('LPInvoice', $data); $this->load->view('home/footer'); // just the footer fi } function makePaid() { $id = $this->input->get('id'); $patient_id = $this->finance_model->getPaymentById($id)->patient; $data = array(); $data = array('status' => 'paid'); $data1 = array(); $data1 = array('status' => 'paid-last'); $this->finance_model->makeStatusPaid($id, $patient_id, $data, $data1); $this->session->set_flashdata('feedback', 'Paid'); redirect('finance/invoice?id=' . $id); } function makePaidByPatientIdByStatus() { $id = $this->input->get('id'); $data = array(); $data = array('status' => 'paid-last'); $data1 = array(); $data1 = array('status' => 'paid'); $this->finance_model->makePaidByPatientIdByStatus($id, $data, $data1); $this->session->set_flashdata('feedback', 'Paid'); redirect('patient'); } function makeOtStatusPaid() { $id = $this->input->get('id'); $this->finance_model->makeOtStatusPaid($id); $this->session->set_flashdata('feedback', 'Paid'); redirect("finance/otInvoice?id=" . "$id"); } function doctorsCommission() { $date_from = strtotime($this->input->post('date_from')); $date_to = strtotime($this->input->post('date_to')); if (!empty($date_to)) { $date_to = $date_to + 86399; } $data['doctors'] = $this->doctor_model->getDoctor(); $data['payments'] = $this->finance_model->getPaymentByDate($date_from, $date_to); $data['ot_payments'] = $this->finance_model->getOtPaymentByDate($date_from, $date_to); $data['settings'] = $this->settings_model->getSettings(); $data['from'] = $this->input->post('date_from'); $data['to'] = $this->input->post('date_to'); $this->load->view('home/dashboard'); // just the header file $this->load->view('doctors_commission', $data); $this->load->view('home/footer'); // just the footer fi } function docComDetails() { $date_from = strtotime($this->input->post('date_from')); $date_to = strtotime($this->input->post('date_to')); if (!empty($date_to)) { $date_to = $date_to + 86399; } $doctor = $this->input->get('id'); if (empty($doctor)) { $doctor = $this->input->post('doctor'); } $data['doctor'] = $doctor; if (!empty($date_from)) { $data['payments'] = $this->finance_model->getPaymentByDoctorDate($doctor, $date_from, $date_to); } else { $data['payments'] = $this->finance_model->getPaymentByDoctor($doctor); } $data['settings'] = $this->settings_model->getSettings(); $data['from'] = $this->input->post('date_from'); $data['to'] = $this->input->post('date_to'); $this->load->view('home/dashboard'); // just the header file $this->load->view('doc_com_view', $data); $this->load->view('home/footer'); // just the footer fi } function financialReport() { $date_from = strtotime($this->input->post('date_from')); $date_to = strtotime($this->input->post('date_to')); if (!empty($date_to)) { $date_to = $date_to + 86399; } $data = array(); $data['payment_categories'] = $this->finance_model->getPaymentCategory(); $data['expense_categories'] = $this->finance_model->getExpenseCategory(); // if(empty($date_from)&&empty($date_to)) { // $data['payments']=$this->finance_model->get_payment(); // $data['ot_payments']=$this->finance_model->get_ot_payment(); // $data['expenses']=$this->finance_model->get_expense(); // } // else{ $data['payments'] = $this->finance_model->getPaymentByDate($date_from, $date_to); $data['ot_payments'] = $this->finance_model->getOtPaymentByDate($date_from, $date_to); $data['deposits'] = $this->finance_model->getDepositsByDate($date_from, $date_to); $data['expenses'] = $this->finance_model->getExpenseByDate($date_from, $date_to); // } $data['from'] = $this->input->post('date_from'); $data['to'] = $this->input->post('date_to'); $data['settings'] = $this->settings_model->getSettings(); $this->load->view('home/dashboard'); // just the header file $this->load->view('financial_report', $data); $this->load->view('home/footer'); // just the footer fi } function UserActivityReport() { if (!$this->ion_auth->logged_in()) { redirect('auth/login', 'refresh'); } if ($this->ion_auth->in_group(array('Accountant'))) { $user = $this->ion_auth->get_user_id(); $data['user'] = $this->accountant_model->getAccountantByIonUserId($user); } if ($this->ion_auth->in_group(array('Receptionist'))) { $user = $this->ion_auth->get_user_id(); $data['user'] = $this->receptionist_model->getReceptionistByIonUserId($user); } $hour = 0; $TODAY_ON = $this->input->get('today'); $YESTERDAY_ON = $this->input->get('yesterday'); $ALL = $this->input->get('all'); $today = strtotime($hour . ':00:00'); $today_last = strtotime($hour . ':00:00') + 86399; $data['payments'] = $this->finance_model->getPaymentByUserIdByDate($user, $today, $today_last); $data['ot_payments'] = $this->finance_model->getOtPaymentByUserIdByDate($user, $today, $today_last); $data['deposits'] = $this->finance_model->getDepositByUserIdByDate($user, $today, $today_last); $data['day'] = 'Today'; if (!empty($YESTERDAY_ON)) { $today = strtotime($hour . ':00:00'); $yesterday = strtotime('-1 day', $today); $data['day'] = 'Yesterday'; $data['payments'] = $this->finance_model->getPaymentByUserIdByDate($user, $yesterday, $today); $data['ot_payments'] = $this->finance_model->getOtPaymentByUserIdByDate($user, $yesterday, $today); $data['deposits'] = $this->finance_model->getDepositByUserIdByDate($user, $yesterday, $today); } if (!empty($ALL)) { $data['day'] = 'All'; $data['payments'] = $this->finance_model->getPaymentByUserId($user); $data['ot_payments'] = $this->finance_model->getOtPaymentByUserId($user); $data['deposits'] = $this->finance_model->getDepositByUserId($user); } $data['settings'] = $this->settings_model->getSettings(); $this->load->view('home/dashboard'); // just the header file $this->load->view('user_activity_report', $data); $this->load->view('home/footer'); // just the header file } function UserActivityReportDateWise() { $data = array(); if (!$this->ion_auth->logged_in()) { redirect('auth/login', 'refresh'); } if ($this->ion_auth->in_group(array('Accountant'))) { $user = $this->input->post('user'); $data['user'] = $this->accountant_model->getAccountantByIonUserId($user); } if ($this->ion_auth->in_group(array('Receptionist'))) { $user = $this->input->post('user'); $data['user'] = $this->receptionist_model->getReceptionistByIonUserId($user); } $date_from = strtotime($this->input->post('date_from')); $date_to = strtotime($this->input->post('date_to')); if (!empty($date_to)) { $date_to = $date_to + 86399; } $data['date_from'] = $date_from; $data['date_to'] = $date_to; $data['payments'] = $this->finance_model->getPaymentByUserIdByDate($user, $date_from, $date_to); $data['ot_payments'] = $this->finance_model->getOtPaymentByUserIdByDate($user, $date_from, $date_to); $data['deposits'] = $this->finance_model->getDepositByUserIdByDate($user, $date_from, $date_to); $data['settings'] = $this->settings_model->getSettings(); $this->load->view('home/dashboard'); // just the header file $this->load->view('user_activity_report', $data); $this->load->view('home/footer'); // just the header file } function AllUserActivityReport() { if (!$this->ion_auth->logged_in()) { redirect('auth/login', 'refresh'); } $user = $this->input->get('user'); if (!empty($user)) { $user_group = $this->db->get_where('users_groups', array('user_id' => $user))->row()->group_id; if ($user_group == '3') { $data['user'] = $this->accountant_model->getAccountantByIonUserId($user); } if ($user_group == '10') { $data['user'] = $this->receptionist_model->getReceptionistByIonUserId($user); } $data['settings'] = $this->settings_model->getSettings(); $hour = 0; $TODAY_ON = $this->input->get('today'); $YESTERDAY_ON = $this->input->get('yesterday'); $ALL = $this->input->get('all'); $today = strtotime($hour . ':00:00'); $today_last = strtotime($hour . ':00:00') + 86399; $data['payments'] = $this->finance_model->getPaymentByUserIdByDate($user, $today, $today_last); $data['ot_payments'] = $this->finance_model->getOtPaymentByUserIdByDate($user, $today, $today_last); $data['deposits'] = $this->finance_model->getDepositByUserIdByDate($user, $today, $today_last); $data['day'] = 'Today'; if (!empty($YESTERDAY_ON)) { $today = strtotime($hour . ':00:00'); $yesterday = strtotime('-1 day', $today); $data['payments'] = $this->finance_model->getPaymentByUserIdByDate($user, $yesterday, $today); $data['ot_payments'] = $this->finance_model->getOtPaymentByUserIdByDate($user, $yesterday, $today); $data['deposits'] = $this->finance_model->getDepositByUserIdByDate($user, $yesterday, $today); $data['day'] = 'Yesterday'; } if (!empty($ALL)) { $data['payments'] = $this->finance_model->getPaymentByUserId($user); $data['ot_payments'] = $this->finance_model->getOtPaymentByUserId($user); $data['deposits'] = $this->finance_model->getDepositByUserId($user); $data['day'] = 'All'; } $this->load->view('home/dashboard'); // just the header file $this->load->view('user_activity_report', $data); $this->load->view('home/footer'); // just the header file } if (empty($user)) { $hour = 0; $today = strtotime($hour . ':00:00'); $today_last = strtotime($hour . ':00:00') + 86399; $data['accountants'] = $this->accountant_model->getAccountant(); $data['receptionists'] = $this->receptionist_model->getReceptionist(); $data['settings'] = $this->settings_model->getSettings(); $data['payments'] = $this->finance_model->getPaymentByDate($today, $today_last); $data['ot_payments'] = $this->finance_model->getOtPaymentByDate($today, $today_last); $data['deposits'] = $this->finance_model->getDepositsByDate($today, $today_last); $this->load->view('home/dashboard'); // just the header file $this->load->view('all_user_activity_report', $data); $this->load->view('home/footer'); // just the header file } } function AllUserActivityReportDateWise() { if (!$this->ion_auth->logged_in()) { redirect('auth/login', 'refresh'); } $user = $this->input->post('user'); if (!empty($user)) { $user_group = $this->db->get_where('users_groups', array('user_id' => $user))->row()->group_id; if ($user_group == '3') { $data['user'] = $this->accountant_model->getAccountantByIonUserId($user); } if ($user_group == '10') { $data['user'] = $this->receptionist_model->getReceptionistByIonUserId($user); } $date_from = strtotime($this->input->post('date_from')); $date_to = strtotime($this->input->post('date_to')); if (!empty($date_to)) { $date_to = $date_to + 86399; } $data['settings'] = $this->settings_model->getSettings(); $data['date_from'] = $date_from; $data['date_to'] = $date_to; $data['payments'] = $this->finance_model->getPaymentByUserIdByDate($user, $date_from, $date_to); $data['ot_payments'] = $this->finance_model->getOtPaymentByUserIdByDate($user, $date_from, $date_to); $data['deposits'] = $this->finance_model->getDepositByUserIdByDate($user, $date_from, $date_to); $this->load->view('home/dashboard'); // just the header file $this->load->view('user_activity_report', $data); $this->load->view('home/footer'); // just the header file } if (empty($user)) { $hour = 0; $today = strtotime($hour . ':00:00'); $today_last = strtotime($hour . ':00:00') + 86399; $data['accountants'] = $this->accountant_model->getAccountant(); $data['receptionists'] = $this->receptionist_model->getReceptionist(); $data['settings'] = $this->settings_model->getSettings(); $data['payments'] = $this->finance_model->getPaymentByDate($today, $today_last); $data['ot_payments'] = $this->finance_model->getOtPaymentByDate($today, $today_last); $data['deposits'] = $this->finance_model->getDepositsByDate($today, $today_last); $this->load->view('home/dashboard'); // just the header file $this->load->view('all_user_activity_report', $data); $this->load->view('home/footer'); // just the header file } } function getPayment() { $requestData = $_REQUEST; $start = $requestData['start']; $limit = $requestData['length']; $search = $this->input->post('search')['value']; $settings = $this->settings_model->getSettings(); if ($limit == -1) { if (!empty($search)) { $data['payments'] = $this->finance_model->getPaymentBysearch($search); } else { $data['payments'] = $this->finance_model->getPayment(); } } else { if (!empty($search)) { $data['payments'] = $this->finance_model->getPaymentByLimitBySearch($limit, $start, $search); } else { $data['payments'] = $this->finance_model->getPaymentByLimit($limit, $start); } } // $data['payments'] = $this->finance_model->getPayment(); foreach ($data['payments'] as $payment) { $date = date('d-m-y', $payment->date); $discount = $payment->discount; if (empty($discount)) { $discount = 0; } if ($this->ion_auth->in_group(array('admin', 'Accountant'))) { $options1 = ' ' . lang('edit') . ''; } $options2 = ' ' . lang('invoice') . ''; $options4 = ' ' . lang('print') . ''; if ($this->ion_auth->in_group(array('admin', 'Accountant'))) { $options3 = ' ' . lang('delete') . ''; } if (empty($options1)) { $options1 = ''; } if (empty($options3)) { $options3 = ''; } $doctor_details = $this->doctor_model->getDoctorById($payment->doctor); if (!empty($doctor_details)) { $doctor = $doctor_details->name; } else { if (!empty($payment->doctor_name)) { $doctor = $payment->doctor_name; } else { $doctor = $payment->doctor_name; } } $patient_info = $this->db->get_where('patient', array('id' => $payment->patient))->row(); if (!empty($patient_info)) { $patient_details = $patient_info->name . '
' . $patient_info->address . '
' . $patient_info->phone . '
'; } else { $patient_details = ' '; } $info[] = array( $payment->id, $patient_details, $doctor, $date, $settings->currency . '' . $payment->amount, $settings->currency . '' . $discount, $settings->currency . '' . $payment->gross_total, $settings->currency . '' . $this->finance_model->getDepositAmountByPaymentId($payment->id), $settings->currency . '' . ($payment->gross_total - $this->finance_model->getDepositAmountByPaymentId($payment->id)), $payment->remarks, $options1 . ' ' . $options2 . ' ' . $options4 . ' ' . $options3, // $options2 ); } if (!empty($data['payments'])) { $output = array( "draw" => intval($requestData['draw']), "recordsTotal" => $this->db->get('payment')->num_rows(), "recordsFiltered" => $this->db->get('payment')->num_rows(), "data" => $info ); } else { $output = array( // "draw" => 1, "recordsTotal" => 0, "recordsFiltered" => 0, "data" => [] ); } echo json_encode($output); } function previousInvoice() { $id = $this->input->get('id'); $data1 = $this->finance_model->getFirstRowPaymentById(); if ($id == $data1->id) { $data = $this->finance_model->getLastRowPaymentById(); redirect('finance/invoice?id=' . $data->id); } else { for ($id1 = $id - 1; $id1 >= $data1->id; $id1--) { $data = $this->finance_model->getPreviousPaymentById($id1); if (!empty($data)) { redirect('finance/invoice?id=' . $data->id); break; } elseif ($id1 == $data1->id) { $data = $this->finance_model->getLastRowPaymentById(); redirect('finance/invoice?id=' . $data->id); } else { continue; } } } } function nextInvoice() { $id = $this->input->get('id'); $data1 = $this->finance_model->getLastRowPaymentById(); // echo $data1->id; // echo $id; // die(); //$id1 = $id + 1; if ($id == $data1->id) { $data = $this->finance_model->getFirstRowPaymentById(); redirect('finance/invoice?id=' . $data->id); } else { for ($id1 = $id + 1; $id1 <= $data1->id; $id1++) { $data = $this->finance_model->getNextPaymentById($id1); if (!empty($data)) { redirect('finance/invoice?id=' . $data->id); break; } elseif ($id1 == $data1->id) { $data = $this->finance_model->getFirstRowPaymentById(); redirect('finance/invoice?id=' . $data->id); } else { continue; } } } } function daily() { $data = array(); $year = $this->input->get('year'); $month = $this->input->get('month'); if (empty($year)) { $year = date('Y'); } if (empty($month)) { $month = date('m'); } $first_minute = mktime(0, 0, 0, $month, 1, $year); $last_minute = mktime(23, 59, 59, $month, date("t", $first_minute), $year); $payments = $this->finance_model->getPaymentByDate($first_minute, $last_minute); $all_payments = array(); foreach ($payments as $payment) { $date = date('D d-m-y', $payment->date); if (array_key_exists($date, $all_payments)) { $all_payments[$date] = $all_payments[$date] + $payment->gross_total; } else { $all_payments[$date] = $payment->gross_total; } } $data['year'] = $year; $data['month'] = $month; $data['first_minute'] = $first_minute; $data['last_minute'] = $last_minute; $data['all_payments'] = $all_payments; $this->load->view('home/dashboard', $data); // just the header file $this->load->view('daily', $data); $this->load->view('home/footer'); // just the header file } function dailyExpense() { $data = array(); $year = $this->input->get('year'); $month = $this->input->get('month'); if (empty($year)) { $year = date('Y'); } if (empty($month)) { $month = date('m'); } $first_minute = mktime(0, 0, 0, $month, 1, $year); $last_minute = mktime(23, 59, 59, $month, date("t", $first_minute), $year); $expenses = $this->finance_model->getExpenseByDate($first_minute, $last_minute); $all_expenses = array(); foreach ($expenses as $expense) { $date = date('D d-m-y', $expense->date); if (array_key_exists($date, $all_expenses)) { $all_expenses[$date] = $all_expenses[$date] + $expense->amount; } else { $all_expenses[$date] = $expense->amount; } } $data['year'] = $year; $data['month'] = $month; $data['first_minute'] = $first_minute; $data['last_minute'] = $last_minute; $data['all_expenses'] = $all_expenses; $this->load->view('home/dashboard', $data); // just the header file $this->load->view('daily_expense', $data); $this->load->view('home/footer'); // just the header file } function monthly() { $data = array(); $year = $this->input->get('year'); if (empty($year)) { $year = date('Y'); } $first_minute = mktime(0, 0, 0, 1, 1, $year); $last_minute = mktime(23, 59, 59, 12, 31, $year); $payments = $this->finance_model->getPaymentByDate($first_minute, $last_minute); $all_payments = array(); foreach ($payments as $payment) { $month = date('m-Y', $payment->date); if (array_key_exists($month, $all_payments)) { $all_payments[$month] = $all_payments[$month] + $payment->gross_total; } else { $all_payments[$month] = $payment->gross_total; } } $data['year'] = $year; $data['first_minute'] = $first_minute; $data['last_minute'] = $last_minute; $data['all_payments'] = $all_payments; $this->load->view('home/dashboard', $data); // just the header file $this->load->view('monthly', $data); $this->load->view('home/footer'); // just the header file } function monthlyExpense() { $data = array(); $year = $this->input->get('year'); if (empty($year)) { $year = date('Y'); } $first_minute = mktime(0, 0, 0, 1, 1, $year); $last_minute = mktime(23, 59, 59, 12, 31, $year); $expenses = $this->finance_model->getExpenseByDate($first_minute, $last_minute); $all_expenses = array(); foreach ($expenses as $expense) { $month = date('m-Y', $expense->date); if (array_key_exists($month, $all_expenses)) { $all_expenses[$month] = $all_expenses[$month] + $expense->amount; } else { $all_expenses[$month] = $expense->amount; } } $data['year'] = $year; $data['first_minute'] = $first_minute; $data['last_minute'] = $last_minute; $data['all_expenses'] = $all_expenses; $this->load->view('home/dashboard', $data); // just the header file $this->load->view('monthly_expense', $data); $this->load->view('home/footer'); // just the header file } function getExpense() { $requestData = $_REQUEST; $start = $requestData['start']; $limit = $requestData['length']; $search = $this->input->post('search')['value']; $settings = $this->settings_model->getSettings(); if ($limit == -1) { if (!empty($search)) { $data['expenses'] = $this->finance_model->getExpenseBysearch($search); } else { $data['expenses'] = $this->finance_model->getExpense(); } } else { if (!empty($search)) { $data['expenses'] = $this->finance_model->getExpenseByLimitBySearch($limit, $start, $search); } else { $data['expenses'] = $this->finance_model->getExpenseByLimit($limit, $start); } } // $data['payments'] = $this->finance_model->getPayment(); foreach ($data['expenses'] as $expense) { if ($this->ion_auth->in_group(array('admin'))) { $options1 = ' '; } $options2 = ' '; //$options4 = ' ' . lang('print') . ''; if ($this->ion_auth->in_group(array('admin'))) { $options3 = ' '; } if (empty($options1)) { $options1 = ''; } if (empty($options3)) { $options3 = ''; } $info[] = array( $expense->category, date('d/m/y', $expense->date), $expense->note, $settings->currency . '' . $expense->amount, $options1 . ' ' . $options2 . ' ' . $options3, // $options2 ); } if (!empty($data['expenses'])) { $output = array( "draw" => intval($requestData['draw']), "recordsTotal" => $this->db->get('expense')->num_rows(), "recordsFiltered" => $this->db->get('expense')->num_rows(), "data" => $info ); } else { $output = array( // "draw" => 1, "recordsTotal" => 0, "recordsFiltered" => 0, "data" => [] ); } echo json_encode($output); } } /* End of file finance.php */ /* Location: ./application/modules/finance/controllers/finance.php */