<form action="" method="post" id="inv_transaction" name="inv_transaction"> <?php echo (!empty($hidden_stmt)) ? $hidden_stmt : ""; ?> <!--create empty form or a single id when search is not clicked and the id is referred from other page --> <span class="heading"><?php echo gettext('Inventory Transaction ') ?></span> <div class='tabContainer'> <ul class='column header_field'> <li> <?php $f->l_select_field_from_object('org_id', org::find_all_inventory(), 'org_id', 'org', $$class->org_id, 'org_id', '', 1, $readonly1); ?> </li> <li> <?php echo!(empty($id_array)) ? $f->l_select_field_from_object('transaction_type_id', transaction_type::find_some_byIdArray($id_array), 'transaction_type_id', 'transaction_type', $$class->transaction_type_id, 'transaction_type_id', '', 1, $readonly1) : $f->l_select_field_from_object('transaction_type_id', transaction_type::find_all(), 'transaction_type_id', 'transaction_type', $$class->transaction_type_id, 'transaction_type_id', '', 1, $readonly1); ?> </li> </ul> </div> <div id ="form_line" class="form_line"><span class="heading">Transaction Details </span> <div id="tabsLine"> <ul class="tabMain"> <li><a href="#tabsLine-1"><?php echo gettext('General Info') ?></a></li> <li><a href="#tabsLine-2"><?php echo gettext('Transfer') ?> </a></li> <li><a href="#tabsLine-3"><?php echo gettext('Reference') ?> </a></li> <li><a href="#tabsLine-4"><?php echo gettext('Finance') ?></a></li> <li><a href="#tabsLine-5"><?php echo gettext('Lot & Serial') ?></a></li> </ul> <div class="tabContainer"> <div id="tabsLine-1" class="tabContent"> <table class="form_line_data_table"> <thead> <tr>
<!--create empty form or a single id when search is not clicked and the id is referred from other page --> <span class="heading"><?php echo gettext('Inventory Transaction '); ?> </span> <div class='tabContainer'> <ul class='column header_field'> <li> <?php $f->l_select_field_from_object('org_id', org::find_all_inventory(), 'org_id', 'org', ${$class}->org_id, 'org_id', '', 1, $readonly1); ?> </li> <li> <?php echo !empty($id_array) ? $f->l_select_field_from_object('transaction_type_id', transaction_type::find_some_byIdArray($id_array), 'transaction_type_id', 'transaction_type', ${$class}->transaction_type_id, 'transaction_type_id', '', 1, $readonly1) : $f->l_select_field_from_object('transaction_type_id', transaction_type::find_all(), 'transaction_type_id', 'transaction_type', ${$class}->transaction_type_id, 'transaction_type_id', '', 1, $readonly1); ?> </li> </ul> </div> <div id ="form_line" class="form_line"><span class="heading">Transaction Details </span> <div id="tabsLine"> <ul class="tabMain"> <li><a href="#tabsLine-1"><?php echo gettext('General Info'); ?> </a></li> <li><a href="#tabsLine-2"><?php echo gettext('Transfer'); ?>
<div id="tabsHeader-1" class="tabContent"> <ul class="column header_field"> <li><?php $f->l_text_field_dr_withSearch('qa_cp_assignment_header_id'); ?> <a name="show" href="form.php?class_name=qa_cp_assignment_header&<?php echo "mode={$mode}"; ?> " class="show document_id qa_cp_assignment_header_id"><i class="fa fa-refresh"></i></a> </li> <li><?php $f->l_select_field_from_object('qa_cp_header_id', qa_cp_header::find_all(), 'qa_cp_header_id', 'plan_name', ${$class}->qa_cp_header_id, 'qa_cp_header_id'); ?> </li> <li><?php $f->l_select_field_from_object('inv_transaction_id', transaction_type::find_all(), 'transaction_type_id', 'transaction_type', ${$class}->inv_transaction_id, 'inv_transaction_id'); ?> </li> <li><?php $f->l_text_field_d('description'); ?> </li> <li><?php $f->l_date_fieldAnyDay('effective_from', ${$class}->effective_from); ?> </li> <li><?php $f->l_date_fieldAnyDay('effective_to', ${$class}->effective_to); ?> </li> <li><?php
?> </span> <form action="" method="post" id="sys_auto_trigger" name="sys_auto_trigger"> <div id ="form_header"> <div id="tabsHeader"> <ul class="tabMain"> <li><a href="#tabsHeader-1"><?php echo gettext('Basic Info'); ?> </a></li> </ul> <div class="tabContainer"> <div id="tabsHeader-1" class="tabContent"> <ul class="column header_field"> <li><?php $f->l_select_field_from_object('transaction_type_id', transaction_type::find_all(), 'transaction_type_id', 'transaction_type', $transaction_type_id, 'transaction_type_id', ''); ?> </li> <li><?php $f->l_select_field_from_array('association_level', bc_label_auto_trigger::$association_level_a, ${$class}->association_level, 'association_level'); ?> <a name="show" href="form.php?class_name=bc_label_auto_trigger&<?php echo "mode={$mode}"; ?> " class="show2 document_id bc_label_auto_trigger_id"> <i class="fa fa-refresh"></i></a> </li> </ul> </div> </div> </div>
<i class='fa fa-refresh'></i></a> </li> <li><?php $f->l_text_field_d('transaction_type_number'); ?> </li> <li><?php $f->l_text_field_d('transaction_type'); ?> </li> <li><?php $f->l_select_field_from_object('type_class', transaction_type::transaction_type_class(), 'option_line_code', 'description', ${$class}->type_class, '', '', 1, $readonly1); ?> </li> <li><?php $f->l_select_field_from_object('transaction_action', transaction_type::transaction_action(), 'option_line_code', 'description', ${$class}->transaction_action, '', '', 1, $readonly); ?> </li> </ul> </div> <div id="tabsHeader-2" class="tabContent"> <div id="comments"> <div id="comment_list"> <?php echo !empty($comments) ? $comments : ""; ?> </div> <div id ="display_comment_form"> <?php $reference_table = 'transaction_type'; $reference_id = ${$class}->transaction_type_id;
public function save_edit() { $timestamp = ""; $patient = ""; $facility = ""; $user = ""; $record_no = ""; $soh = $this->input->post("soh"); //Get transaction type $transaction_type = transaction_type::getTransactionType("dispense", "0"); $transaction_type = $transaction_type->id; $transaction_type1 = transaction_type::getTransactionType("returns", "1"); $transaction_type1 = $transaction_type1->id; $original_qty = @$_POST["qty_hidden"]; $facility = $this->session->userdata("facility"); $user = $this->session->userdata("full_name"); $timestamp = date('Y-m-d H:i:s'); $patient = @$_POST['patient']; $expiry_date = @$_POST['expiry']; $ccc_id = @$_POST["ccc_id"]; //Define source and destination $source = $facility; $destination = $facility; //Get ccc_store_name $ccc_store = CCC_store_service_point::getCCC($ccc_id); $ccc_name = $ccc_store->Name; if (stripos($ccc_name, 'store')) { $source = $facility; $destination = ''; } //Get running balance in drug stock movement $sql_run_balance = $this->db->query("SELECT machine_code as balance FROM drug_stock_movement WHERE drug ='" . @$_POST['original_drug'] . "' AND ccc_store_sp ='{$ccc_id}' AND expiry_date >=CURDATE() ORDER BY id DESC LIMIT 1"); $run_balance_array = $sql_run_balance->result_array(); if (count($run_balance_array) > 0) { $prev_run_balance = $run_balance_array[0]["balance"]; } else { //If drug does not exist, initialise the balance to zero $prev_run_balance = 0; } //Get running balance in drug stock movement end --------- //If record is to be deleted if (@$_POST['delete_trigger'] == 1) { $sql = "update patient_visit set active='0' WHERE id='" . @$_POST["dispensing_id"] . "';"; $this->db->query($sql); $bal = $soh + @$_POST["qty_disp"]; $act_run_balance = $prev_run_balance + @$_POST["qty_disp"]; //Actual running balance //If deleting previous transaction, check if batch has not expired, if not, insert in drug stock balance table $today = strtotime(date("Y-m-d")); $original_expiry = strtotime(@$_POST["original_expiry_date"]); if ($today <= $original_expiry) { //If balance for this batch is greater than zero, update stock, otherwise, insert in drug stock balance $sql_batch_balance = "SELECT balance FROM drug_stock_balance WHERE drug_id='" . @$_POST["original_drug"] . "' AND batch_number='" . @$_POST["batch"] . "' AND expiry_date='" . @$_POST["original_expiry_date"] . "' AND stock_type='{$ccc_id}' AND facility_code='{$facility}'"; $query = $this->db->query($sql_batch_balance); $res = $query->result_array(); $prev_batch_balance = ""; if ($res) { $prev_batch_balance = $res[0]['balance']; } if ($prev_batch_balance > 0) { //Update drug_stock_balance $sql = "UPDATE drug_stock_balance SET balance=balance+" . @$_POST["qty_disp"] . " WHERE drug_id='" . @$_POST["original_drug"] . "' AND batch_number='" . @$_POST["batch"] . "' AND expiry_date='" . @$_POST["original_expiry_date"] . "' AND stock_type='{$ccc_id}' AND facility_code='{$facility}'"; //echo $sql;die(); $this->db->query($sql); } else { $sql = "INSERT INTO drug_stock_balance (balance,dug_id,batch_number,expiry_date,stock_type,facility_code) VALUES('" . @$_POST["qty_disp"] . "','" . @$_POST["original_drug"] . "','" . @$_POST["batch"] . "','" . @$_POST["original_expiry_date"] . "','{$ccc_id}','{$facility}')"; //echo $sql;die(); $this->db->query($sql); } } //Insert in drug stock movement //Get balance after update $sql = "SELECT balance FROM drug_stock_balance WHERE drug_id='" . @$_POST["original_drug"] . "' AND batch_number='" . @$_POST["batch"] . "' AND expiry_date='" . @$_POST["original_expiry_date"] . "' AND stock_type='{$ccc_id}' AND facility_code='{$facility}'"; $query = $this->db->query($sql); $results = $query->result_array(); $actual_balance = $results[0]['balance']; $sql = "INSERT INTO drug_stock_movement (drug, transaction_date, batch_number, transaction_type,source,destination,source_destination,expiry_date, quantity, balance, facility, machine_code,timestamp,ccc_store_sp) SELECT '" . @$_POST["original_drug"] . "','" . @$_POST["original_dispensing_date"] . "', '" . @$_POST["batch"] . "','{$transaction_type1}','{$source}','{$destination}','Dispensed To Patients','{$expiry_date}','" . @$_POST["qty_disp"] . "','" . @$actual_balance . "','{$facility}','{$act_run_balance}','{$timestamp}','{$ccc_id}' from drug_stock_movement WHERE batch_number= '" . @$_POST["batch"] . "' AND drug='" . @$_POST["original_drug"] . "' LIMIT 1;"; $this->db->query($sql); //Update drug consumption $period = date('Y-m-01'); $sql = "UPDATE drug_cons_balance SET amount=amount-" . $original_qty . " WHERE drug_id='" . @$_POST["original_drug"] . "' AND stock_type='{$ccc_id}' AND period='{$period}' AND facility='{$facility}'"; $this->db->query($sql); $this->session->set_userdata('dispense_deleted', 'success'); } else { //If record is edited $period = date('Y-m-01'); $sql = "UPDATE patient_visit SET dispensing_date = '" . @$_POST["dispensing_date"] . "', visit_purpose = '" . @$_POST["purpose"] . "', current_weight='" . @$_POST["weight"] . "', current_height='" . @$_POST["height"] . "', regimen='" . @$_POST["current_regimen"] . "', drug_id='" . @$_POST["drug"] . "', batch_number='" . @$_POST["batch"] . "', dose='" . @$_POST["dose"] . "', duration='" . @$_POST["duration"] . "', quantity='" . @$_POST["qty_disp"] . "', brand='" . @$_POST["brand"] . "', indication='" . @$_POST["indication"] . "', pill_count='" . @$_POST["pill_count"] . "', missed_pills='" . @$_POST["missed_pills"] . "', comment='" . @$_POST["comment"] . "',non_adherence_reason='" . @$_POST["non_adherence_reasons"] . "',adherence='" . @$_POST["adherence"] . "' WHERE id='" . @$_POST["dispensing_id"] . "';"; $this->db->query($sql); if (@$_POST["batch"] != @$_POST["batch_hidden"] || @$_POST["qty_disp"] != @$_POST["qty_hidden"]) { //Update drug_stock_balance //Balance=balance+(previous_qty_disp-actual_qty_dispense) $bal = $soh; //New qty dispensed=old qty - actual qty dispensed $new_qty_dispensed = $_POST["qty_hidden"] - $_POST["qty_disp"]; $act_run_balance = $prev_run_balance - $_POST["qty_disp"]; //If new quantity dispensed is less than qty previously dispensed //echo $new_qty_dispensed;die(); if ($new_qty_dispensed > 0) { $bal = $soh + $new_qty_dispensed; $sql = "UPDATE drug_stock_balance SET balance=balance+" . @$new_qty_dispensed . " WHERE drug_id='" . @$_POST["original_drug"] . "' AND batch_number='" . @$_POST["batch"] . "' AND expiry_date='" . @$_POST["original_expiry_date"] . "' AND stock_type='{$ccc_id}' AND facility_code='{$facility}'"; $this->db->query($sql); //Update drug consumption $sql = "UPDATE drug_cons_balance SET amount=amount-" . $new_qty_dispensed . " WHERE drug_id='" . @$_POST["original_drug"] . "' AND stock_type='{$ccc_id}' AND period='{$period}' AND facility='{$facility}'"; $this->db->query($sql); } else { if ($new_qty_dispensed < 0) { $bal = $soh - $new_qty_dispensed; $new_qty_dispensed = abs($new_qty_dispensed); $sql = "UPDATE drug_stock_balance SET balance=balance-" . @$new_qty_dispensed . " WHERE drug_id='" . @$_POST["original_drug"] . "' AND batch_number='" . @$_POST["batch"] . "' AND expiry_date='" . @$_POST["original_expiry_date"] . "' AND stock_type='{$ccc_id}' AND facility_code='{$facility}'"; $this->db->query($sql); //Update drug consumption $sql = "UPDATE drug_cons_balance SET amount=amount+" . $new_qty_dispensed . " WHERE drug_id='" . @$_POST["original_drug"] . "' AND stock_type='{$ccc_id}' AND period='{$period}' AND facility='{$facility}'"; $this->db->query($sql); } } //Balance after returns $bal1 = $soh + $original_qty; $act_run_balance1 = $prev_run_balance + $original_qty; //Actual running balance $act_run_balance = $act_run_balance + $original_qty; //Returns transaction $sql = "INSERT INTO drug_stock_movement (drug, transaction_date, batch_number, transaction_type,source,destination,source_destination,expiry_date, quantity,balance, facility, machine_code,timestamp,ccc_store_sp) SELECT '" . @$_POST["original_drug"] . "','" . @$_POST["original_dispensing_date"] . "', '" . @$_POST["batch_hidden"] . "','{$transaction_type1}','{$source}','{$destination}','Dispensed To Patients',expiry_date,'" . @$_POST["qty_hidden"] . "','{$bal1}','{$facility}','{$act_run_balance1}','{$timestamp}','{$ccc_id}' from drug_stock_movement WHERE batch_number= '" . @$_POST["batch_hidden"] . "' AND drug='" . @$_POST["original_drug"] . "' LIMIT 1;"; $this->db->query($sql); //Dispense transaction $sql = "INSERT INTO drug_stock_movement (drug, transaction_date, batch_number, transaction_type,source,destination,expiry_date, quantity_out,balance, facility, machine_code,timestamp,ccc_store_sp) SELECT '" . @$_POST["drug"] . "','" . @$_POST["original_dispensing_date"] . "', '" . @$_POST["batch"] . "','{$transaction_type}','{$source}','{$destination}',expiry_date,'" . @$_POST["qty_disp"] . "','{$bal}','{$facility}','{$act_run_balance}','{$timestamp}','{$ccc_id}' from drug_stock_movement WHERE batch_number= '" . @$_POST["batch"] . "' AND drug='" . @$_POST["drug"] . "' LIMIT 1;"; $this->db->query($sql); } $this->session->set_userdata('dispense_updated', 'success'); } $sql = "select * from patient where patient_number_ccc='{$patient}' and facility_code='{$facility}'"; $query = $this->db->query($sql); $results = $query->result_array(); $record_no = $results[0]['id']; $this->session->set_userdata('msg_save_transaction', 'success'); redirect("patient_management/load_view/details/{$record_no}"); }