Пример #1
0
 public function addMonthlyConsumptionDraft()
 {
     $data = $this->form_values;
     $str_qry_detail = "DELETE hf_data_detail_draft.*\n                        FROM\n                       hf_data_master_draft,hf_data_detail_draft \n                       where\n                       hf_data_master_draft.pk_id = hf_data_detail_draft.hf_data_master_id\n                        and hf_data_master_draft.warehouse_id='" . $data['wh_id'] . "'\n                      and DATE_FORMAT(hf_data_master_draft.reporting_start_date, '%Y-%m-%d') = '" . $data['rpt_date'] . "'";
     $this->_em = Zend_Registry::get('doctrine');
     $row_detail = $row = $this->_em->getConnection()->prepare($str_qry_detail);
     $row_detail->execute();
     $str_qry_master = "DELETE hf_data_master_draft.*\n                        FROM\n                       hf_data_master_draft\n                       where\n                       hf_data_master_draft.warehouse_id='" . $data['wh_id'] . "'\n                      and DATE_FORMAT(hf_data_master_draft.reporting_start_date, '%Y-%m-%d') = '" . $data['rpt_date'] . "'";
     $this->_em = Zend_Registry::get('doctrine');
     $row_master = $row = $this->_em->getConnection()->prepare($str_qry_master);
     $row_master->execute();
     $this->_em->flush();
     $posted_array = $data['flitm_id'];
     $opening_array = $data['opening_balance'];
     $received_array = $data['received'];
     $dispensed_array = $data['dispensed'];
     $vials_used_array = $data['vials_used'];
     $unusable_vials_array = $data['unusable_vials'];
     $closing_balance_array = $data['closing_balance'];
     $nearest_expiry_array = $data['nearest_expiry'];
     $doses_per_unit_array = $data['doses_per_unit'];
     $record_array = $data['record_id'];
     foreach ($closing_balance_array as $key => $val) {
         if ($val != '' && $val >= 0) {
             $vials_used = $vials_used_array[$key];
             $wh_id = $data['wh_id'];
             $year_month = $data['yearmonth'];
             $doses = $doses_per_unit_array[$key];
             $issue = $dispensed_array[$key];
             $itemid = $posted_array[$key];
             $wh_adj = $unusable_vials_array[$key] * $doses;
             $wastages = $vials_used * $doses - $issue + abs($wh_adj);
             $wh_data = new HfDataMasterDraft();
             $item = $this->_em->getRepository('ItemPackSizes')->find($posted_array[$key]);
             $warehouse = $this->_em->getRepository('Warehouses')->find($data['wh_id']);
             $wh_data->setItemPackSize($item);
             $wh_data->setWarehouse($warehouse);
             $user = $this->_em->getRepository('Users')->find($this->_user_id);
             $wh_data->setCreatedBy($user);
             $wh_data->setModifiedBy($user);
             $wh_data->setOpeningBalance($opening_array[$key]);
             $wh_data->setReceivedBalance($received_array[$key]);
             $wh_data->setIssueBalance($issue);
             $wh_data->setClosingBalance($val);
             $wh_data->setVialsUsed($vials_used_array[$key]);
             $wh_data->setAdjustments($unusable_vials_array[$key] * $doses);
             $wh_data->setReportingStartDate(new \DateTime(App_Controller_Functions::dateToDbFormat($data['rpt_date'])));
             if (!empty($nearest_expiry_array[$key])) {
                 $wh_data->setNearestExpiry(new \DateTime(App_Controller_Functions::dateToDbFormat($nearest_expiry_array[$key])));
             }
             $wh_data->setWastages($wastages);
             $wh_data->setCreatedDate(App_Tools_Time::now());
             $wh_data->setModifiedDate(App_Tools_Time::now());
             $this->_em->persist($wh_data);
             $this->_em->flush();
             $hf_data_master_id = $wh_data->getPkId();
             $hf_data_detail = new HfDataDetailDraft();
             $hf_data_detail->setFixedInsideUcFemale($issue);
             $hf_data_master_i = $this->_em->getRepository('HfDataMasterDraft')->find($hf_data_master_id);
             $hf_data_detail->setHfDataMaster($hf_data_master_i);
             $hf_data_detail->setCreatedBy($user);
             $hf_data_detail->setModifiedBy($user);
             $this->_em->persist($hf_data_detail);
             $this->_em->flush();
         }
     }
 }