Advertisement
dahliamuerder13

Welcome

Sep 18th, 2019
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 40.44 KB | None | 0 0
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3.  
  4. class Welcome extends KBP_Controller {
  5.  
  6.     public function __construct() {
  7.         parent::__construct();
  8.         date_default_timezone_set("Asia/Bangkok");
  9.         $this->load->model('mreport');
  10.         if ($this->session->userdata('user_login') == FALSE) { redirect('auth/login'); }
  11.         $station = explode(',', $this->session->userdata('user_station'));
  12.         if ($station[0] == "KP") {
  13.             if ($this->session->userdata('station_management') == NULL && ! $this->input->is_ajax_request()) { echo '<script>alert(\'Pilih Station Management Terlebih Dahulu\');</script>'; }
  14.         }
  15.     }
  16.  
  17.     public function index() {
  18.         $data['data_station']   = $this->Crud->readData('station_code', 'station')->result_array();
  19.         $station = explode(',', $this->session->userdata('user_station'));
  20.         if ($station[0] == "KP") {
  21.             redirect('welcome/dashboard_direksi');
  22.         }
  23.  
  24.         $this->load->view('vHeader');
  25.         $this->load->view('vIndex_adm');
  26.         $this->load->view('vFooter');
  27.     }
  28.  
  29.     public function managestat() {
  30.         $this->load->helper('form');
  31.         $this->load->library('form_validation');
  32.         if ( ! $this->input->is_ajax_request()) { show_json(array('code' => 405, 'message' => 'No direct script access allowed'), 405); }
  33.         $this->form_validation->set_rules('station', 'Station', 'trim|required|alpha');
  34.         if ($this->form_validation->run()) {
  35.             $a = $this->Crud->readData('station_code', 'station', array('station_code' => $this->input->post('station')))->row_array();
  36.             if ($a === NULL) { show_json(array('code' => 404, 'message' => 'Not Found'), 404); }
  37.             $this->session->set_userdata('station_management', $a['station_code']);
  38.             show_json(array('code' => 200, 'message' => 'Success'));
  39.         }
  40.         else {
  41.             if (validation_errors() !== '<p></p>') { show_json(array('code' => 400, 'message' => validation_errors('', ''))); }
  42.         }
  43.     }
  44.  
  45.     public function administrator($division = NULL) {
  46.         $data['data_station']   = $this->Crud->readData('station_code', 'station')->result_array();
  47.         $this->load->view('vHeader', $data);
  48.         // $this->load->view('vIndex_adm', $data);
  49.         $this->load->view('vFooter');
  50.     }
  51.  
  52.     public function pm() {
  53.  
  54.         //GH
  55.         $user_cabang          = explode(",", $this->session->userdata('user_station'));
  56.         $data['data_station'] = $user_cabang[0];
  57.         $date_now = date("Y-m-d",strtotime("0 days"));
  58.         $wheres[] = $this->db->where_in('wo_flag', array('1','3'));
  59.         $wheres[] = $this->db->where('wo_date', $date_now);
  60.         $getAll = $this->Crud->readData('*', 'workorder', $wheres, '','','wo_date_transaction ASC')->result_array();
  61.         $data['getall'] = $getAll;
  62.         $tgl = $this->Crud->readData('wo_date_transaction', 'workorder')->result_array();
  63.         $flatten_tgl = array_map(function($value) {
  64.         if (is_null($value['wo_date_transaction'])) {
  65.         return "true";
  66.         }
  67.         return $value['wo_date_transaction'];
  68.         }, $getAll);
  69.         $data_tgl = array_count_values($flatten_tgl);
  70.         $data['tgl_sama'] = $data_tgl;
  71.         $data ['userkp'] =$user_cabang[0];
  72.         //print_r($data ['userkp']);die();
  73.         $option = $this->Crud->readData('user_station', 'users')->result_array();
  74.  
  75.  
  76.         /* GSE */
  77.         $insertFilter= $this->input->post('btn-filter');
  78.         if(isset($insertFilter)){
  79.         $year= $this->input->post('filter_year');
  80.         $month= $this->input->post('filter_month');
  81.         } else{
  82.         $year= date('Y');
  83.         $month= date('m');
  84.         }
  85.         $user_cabang = explode(",", $this->session->userdata('user_station'));
  86.         $data['data_station'] =$user_cabang[0];
  87.         $this->form_validation->set_rules('year', 'year', 'trim');
  88.         $this->form_validation->set_rules('month', 'month', 'trim');
  89.         $this->form_validation->set_rules('f_customer', 'f_customer', 'trim');
  90.  
  91.         $f_customer = $this->input->post('f_customer');
  92.         //$like = array('like' => array('gl_date' => "2018-"));
  93.         $join = array('equipment_master' => 'equipment_master.gse_equipment_id = workorder.wo_item');
  94.         $join = array('tbl_customer' => 'tbl_customer.customer_id = workorder.wo_ac_owner');
  95.  
  96.         $date_now = date("Y-m-d");
  97.         $date_now = date("Y-m-d",strtotime("0 days"));
  98.         $wheres[] = $this->db->where_in('wo_flag', array('2','4'));
  99.         // $wheres[] = $this->db->where('EXTRACT(YEAR FROM wo_date_transaction)=', $year);
  100.         // $wheres[] = $this->db->where('extract(month from wo_date_transaction)=', $month);
  101.         $wheres[] = $this->db->where('wo_date', $date_now);
  102.  
  103.         $orders[] = $this->db->order_by('wo_item');
  104.         if ($this->form_validation->run()) {
  105.         // $year    = $this->input->post('year');
  106.         // $month   = $this->input->post('month');
  107.         //$data['numberdayinmonth']=cal_days_in_month(CAL_GREGORIAN,$month,$year);
  108.         $caribulan=0;
  109.         $caribulan = $year."-".$month;
  110.         //$wheres[] = $this->db->like('cast(wo_date AS varchar)', $caribulan);
  111.         //$wheres[] = $this->db->where('wo_ac_owner', $f_customer);
  112.         } else {       
  113.         //$data['numberdayinmonth']=cal_days_in_month(CAL_GREGORIAN,date('m'),date('Y'));
  114.         //$wheres[] = $this->db->like('cast(wo_date AS varchar)', '2018-01');  
  115.         }
  116.  
  117.         $orders = $this->Crud->readData('customer_name,wo_ac_owner,wo_item,  count(wo_item) as add', 'workorder', $wheres,$join,'customer_name,wo_ac_owner,wo_item', $orders)->result_array();
  118.         // print_r($this->db->last_query());
  119.         // print_r($orders);
  120.         // die();
  121.         // echo $this->db->last_query(); exit();
  122.         $data['customers'] = $this->Crud->readData('*', 'customer', '','','', '')->result_array();
  123.         $ordersgse[] = $this->db->order_by('gse_equipment_code');
  124.  
  125.         $like =$this->db->not_Like('gse_equipment_name', 'Handling');
  126.         $gses = $this->Crud->readData('gse_equipment_code,gse_equipment_name,gse_equipment_id', 'equipment_master', $like,'','gse_equipment_code,gse_equipment_name,gse_equipment_id', $ordersgse)->result_array();
  127.  
  128.         // print $this->db->last_query(); exit();
  129.         //print_r($orders);
  130.         //$gse=sizeof($gses);
  131.  
  132.         //$airline = "";
  133.         //if (sizeof($orders) >0) {
  134.         //  $airline = $orders[0]['wo_station'];
  135.         //} else {
  136.         //  $airline='no data';
  137.         //}
  138.  
  139.         $items = array();
  140.         // $data['wo_item'] =$item;
  141.         foreach ($orders as $order) {
  142.         if (!array_key_exists($order['customer_name'], $items)) {
  143.         $items[$order['customer_name']]=array();
  144.         }
  145.  
  146.         $item=array();
  147.         //$item['tanggal'] = substr($order['wo_date'], 8);
  148.         $item['add']        = $order['add'];
  149.         $item['wo_item']     = $order['wo_item'];
  150.         array_push($items[$order['customer_name']], $item);
  151.         //echo $order['wo_item'];
  152.         }
  153.         $data['items']=$items;
  154.         $data['gse']=$gses;
  155.         //$data['airline'] =$airline;
  156.         $data['f_customer'] = $f_customer;
  157.         /* GSE */
  158.         $data['option_user'] = $option;
  159.         $data['option_user'] = $option;
  160.  
  161.         /* Count Contract Active */
  162.         $wGh        = array('contract_airlines_flag' => 1, 'contract_status_legal' => 1);
  163.         $data['contract_gh']        = $this->Crud->readData('contract_id', 'contract', $wGh)->num_rows();
  164.         $wGse       = array('contract_airlines_flag' => 2, 'contract_status_legal' => 1);
  165.         $data['contract_gse']       = $this->Crud->readData('contract_id', 'contract', $wGse)->num_rows();
  166.         $wGhAdhoc   = array('contract_airlines_flag' => 3, 'contract_status_legal' => 1);
  167.         $data['contract_gh_adhoc']  = $this->Crud->readData('contract_id', 'contract', $wGhAdhoc)->num_rows();
  168.         $wGseAdhoc  = array('contract_airlines_flag' => 4, 'contract_status_legal' => 1);
  169.         $data['contract_gse_adhoc'] = $this->Crud->readData('contract_id', 'contract', $wGseAdhoc)->num_rows();
  170.         /* Count Contract Active */
  171.  
  172.         /* Get Count Complain Internal & External */
  173.         $data['complain_int'] = $this->Crud->readData('complain_id', 'complain', array('complain_kesalahan' => 'Internal'))->num_rows();
  174.         $data['complain_eks'] = $this->Crud->readData('complain_id', 'complain', array('complain_kesalahan' => 'External'))->num_rows();
  175.         /* Get Count Complain Internal & External */
  176.                
  177.         $this->load->view('vHeader', $data);
  178.         $this->load->view('marketing/vDashboard', $data);
  179.         $this->load->view('vFooter');
  180.     }
  181.     public function dashboard_acc() {
  182.         $this->form_validation->set_rules('start_date', 'Start Date', 'trim');
  183.         $this->form_validation->set_rules('end_date', 'End Date', 'trim');
  184.         $start_date         = $this->input->post('start_date');
  185.         $end_date           = $this->input->post('end_date');
  186.         $search             = $this->input->post('search');
  187.         $data['start_date'] = $start_date;
  188.         $data['end_date']   = $end_date;
  189.         /* Start Data station */
  190.         $setStation = array();     
  191.         $rsStation  = $this->Crud->readData('station_code', 'station')->result_array();
  192.         foreach ($rsStation as $rss) { array_push($setStation, $rss['station_code']);}
  193.         $data['setStation'] = json_encode($setStation);
  194.         /* End Data station */
  195.  
  196.         /* Get data cashout per station */
  197.         $cashoutsStation    = array();
  198.         $cashoutsAmount     = array();
  199.         $rsCashouts         = $this->Crud->readData('SUM(cashouts_amount) AS cashouts_amount, cashouts_cabang', 'cashouts', array('cashouts_status >=' => '1'), array(), array('cashouts_cabang'))->result_array();        
  200.         foreach($rsCashouts AS $rsc) {
  201.             array_push($cashoutsStation, $rsc['cashouts_cabang']);
  202.             array_push($cashoutsAmount, $rsc['cashouts_amount']);
  203.         }
  204.         $data['cashoutsStation']    = json_encode($cashoutsStation);
  205.         $data['cashoutsAmount']     = json_encode($cashoutsAmount);
  206.         /* Get data cashout per station */
  207.  
  208.         /* Get data piutang AR per station */
  209.         $invStation     = array();
  210.         $invAmount      = array();
  211.         $wInvoice       = $this->db->where_in('invoice_status', array('0', '1'));
  212.         $rsInvoice      = $this->Crud->readData('SUM(invoice_amount) AS invoice_amount, invoice_station', 'invoice', $wInvoice, array(), array('invoice_station'))->result_array();        
  213.         foreach($rsInvoice AS $rsi) {
  214.             array_push($invStation, $rsi['invoice_station']);
  215.             array_push($invAmount, $rsi['invoice_amount']);
  216.         }
  217.         $data['invStation'] = json_encode($invStation);
  218.         $data['invAmount']  = json_encode($invAmount);
  219.         /* Get data piutang AR per station */
  220.  
  221.         /* Get data cashin AR per station */
  222.         $invCashStation = array();
  223.         $invCashAmount  = array();     
  224.         $rsCashInvoice  = $this->Crud->readData('SUM(invoice_amount) AS invoice_amount, invoice_station', 'invoice', array('invoice_status' => 2), array(), array('invoice_station'))->result_array();     
  225.         foreach($rsCashInvoice AS $rsci) {
  226.             array_push($invCashStation, $rsci['invoice_station']);
  227.             array_push($invCashAmount, $rsci['invoice_amount']);
  228.         }
  229.         $data['invCashStation'] = json_encode($invCashStation);
  230.         $data['invCashAmount']  = json_encode($invCashAmount);
  231.         /* Get data cashin AR per station */
  232.  
  233.         /* Get data cashins per station */
  234.         $cashinsStation = array();
  235.         $cashinsAmount  = array();
  236.         $rsCashins      = $this->Crud->readData('SUM(cashins_amount) AS cashins_amount, cashins_cabang', 'cashins', array('cashins_status >=' => '1'), array(), array('cashins_cabang'))->result_array();      
  237.         foreach($rsCashins AS $rscs) {
  238.             array_push($cashinsStation, $rscs['cashins_cabang']);
  239.             array_push($cashinsAmount, intval($rscs['cashins_amount']));
  240.         }
  241.         $data['cashinsStation'] = json_encode($cashinsStation);
  242.         $data['cashinsAmount']  = json_encode($cashinsAmount);
  243.         /* Get data cashins per station */
  244.  
  245.         /* Get total data vendor */
  246.         $dataVendor = array();
  247.         $rsVendor = $this->Crud->readData('COUNT(vendor_name) as vendor_name', 'vendor')->result_array();
  248.         foreach($rsVendor as $rsv) {
  249.             array_push($dataVendor, $rsv['vendor_name']);
  250.         }
  251.         $data['dataVendor'] = $dataVendor;
  252.  
  253.         /* Get total data customer */
  254.         $dataCust = array();
  255.         $rsCust = $this->Crud->readData('COUNT(customer_name) as customer_name', 'customer')->result_array();
  256.         foreach($rsCust as $rscst) {
  257.             array_push($dataCust, $rscst['customer_name']);
  258.         }
  259.         $data['dataCust'] = $dataCust;
  260.  
  261.         /* Get total data legal */
  262.         $dataLegal = array();
  263.         $rsLegal = $this->Crud->readData('COUNT(perijinan_pusat) as perijinan_pusat', 'perijinan_pusat')->result_array();
  264.         foreach($rsLegal as $rsl) {
  265.             array_push($dataLegal, $rsl['perijinan_pusat']);
  266.         }
  267.         $data['dataLegal'] = $dataLegal;
  268.  
  269.         /* Get hutang */
  270.         $mVendor = array();
  271.         $tMutasi = array();
  272.         $rsMutasi = $this->Crud->readData('credit, debet, sisa, vendor_code, vendor_name', 'vendor', array('sisa >' => '0'), array('left' => array('vBeli' => 'vendor_code = vendor')))->result_array();
  273.         foreach($rsMutasi as $rsm) {
  274.             array_push($mVendor, $rsm['vendor_code']);
  275.             array_push($tMutasi, $rsm['debet']);
  276.         }
  277.         $data['vendor_mutasi'] = json_encode($mVendor);
  278.         $data['ttl_mutasi'] = json_encode($tMutasi);
  279.         /* End get hutang */
  280.  
  281.         /* Get kontrak */
  282.         $tPegawai = array();
  283.         $rsPegawai = $this->Crud->readData('count(nrp) as nrp', 't_pegawai')->result_array();
  284.         foreach($rsPegawai as $rsp) {
  285.             array_push($tPegawai, $rsp['nrp']);
  286.         }
  287.         $data['data_sdm'] = $tPegawai;
  288.  
  289.         $tKontrakGH = array();
  290.         $rsKontrakGH = $this->Crud->readData('count(contract_airlines_flag) as flag', 'contract', array('contract_airlines_flag' => '1'))->result_array();
  291.         foreach($rsKontrakGH as $rsk1) {
  292.             array_push($tKontrakGH, $rsk1['flag']);
  293.         }
  294.         $data['kontrak_gh'] = $tKontrakGH;
  295.  
  296.         $tKontrakGSE = array();
  297.         $rsKontrakGSE = $this->Crud->readData('count(contract_airlines_flag) as flag', 'contract', array('contract_airlines_flag' => '2'))->result_array();
  298.         foreach($rsKontrakGSE as $rsk2) {
  299.             array_push($tKontrakGSE, $rsk2['flag']);
  300.         }
  301.         $data['kontrak_gse'] = $tKontrakGSE;
  302.  
  303.         $tKontrakAdGH = array();
  304.         $rsKontrakAdGH = $this->Crud->readData('count(contract_airlines_flag) as flag', 'contract', array('contract_airlines_flag' => '3'))->result_array();
  305.         foreach($rsKontrakAdGH as $rsk3) {
  306.             array_push($tKontrakAdGH, $rsk3['flag']);
  307.         }
  308.         $data['kontrak_adgh'] = $tKontrakAdGH;
  309.  
  310.         $tKontrakAdGSE = array();
  311.         $rsKontrakAdGSE = $this->Crud->readData('count(contract_airlines_flag) as flag', 'contract', array('contract_airlines_flag' => '4'))->result_array();
  312.         foreach($rsKontrakAdGSE as $rsk4) {
  313.             array_push($tKontrakAdGSE, $rsk4['flag']);
  314.         }
  315.         $data['kontrak_adgse'] = $tKontrakAdGSE;
  316.  
  317.         $tKontrakVip = array();
  318.         $rsKontrakVip = $this->Crud->readData('count(contract_airlines_flag) as flag', 'contract', array('contract_airlines_flag' => '5'))->result_array();
  319.         foreach($rsKontrakVip as $rsk5) {
  320.             array_push($tKontrakVip, $rsk5['flag']);
  321.         }
  322.         $data['kontrak_vip'] = $tKontrakVip;
  323.         /* End get kontrak */
  324.  
  325.         /* Get SDM by statuspeg */
  326.         $pegTetap = array();
  327.         $rsPegTetap = $this->Crud->readData('count(statuspeg) as status', 't_pegawai', array('statuspeg' => 'Tetap'))->result_array();
  328.         foreach($rsPegTetap as $rsTetap) {
  329.             array_push($pegTetap, $rsTetap['status']);
  330.         }
  331.         $data['sdm_tetap'] = $pegTetap;
  332.  
  333.         $pegReg = array();
  334.         $rsPegReg = $this->Crud->readData('count(statuspeg) as status', 't_pegawai', array('statuspeg' => 'Kontrak Reguler'))->result_array();
  335.         foreach($rsPegReg as $rsReg) {
  336.             array_push($pegReg, $rsReg['status']);
  337.         }
  338.         $data['sdm_reguler'] = $pegReg;
  339.  
  340.         $pegKhusus = array();
  341.         $rsPegKhusus = $this->Crud->readData('count(statuspeg) as status', 't_pegawai', array('statuspeg' => 'Kontrak Khusus'))->result_array();
  342.         foreach($rsPegKhusus as $rsKhusus) {
  343.             array_push($pegKhusus, $rsKhusus['status']);
  344.         }
  345.         $data['sdm_khusus'] = $pegKhusus;
  346.  
  347.         $pegEkspert = array();
  348.         $rsPegEkspert = $this->Crud->readData('count(statuspeg) as status', 't_pegawai', array('statuspeg' => 'Ekspert'))->result_array();
  349.         foreach($rsPegEkspert as $rsEkspert) {
  350.             array_push($pegEkspert, $rsEkspert['status']);
  351.         }
  352.         $data['sdm_ekspert'] = $pegEkspert;
  353.         /* End Get Sdm by statuspeg */
  354.  
  355.         /* Account Payble Source Code */
  356.         $wCashouts = array(
  357.             'cashouts_status'           => '1',
  358.             'cashouts_create_date >='   => (isset($search)) ? $start_date : date('Y-m-d'),
  359.             'cashouts_create_date <='   => (isset($search)) ? $end_date : date('Y-m-d')
  360.         );
  361.         $data['cashouts']       = $this->Crud->readData('SUM(cashouts_total) AS cashouts_total', 'cashouts', $wCashouts)->result_array();
  362.         $data['cashouts_ttl']   = $this->Crud->readData('cashouts_id', 'cashouts', $wCashouts)->num_rows();    
  363.         $wCashins = array(
  364.             'cashins_status'            => '1',
  365.             'cashins_create_date >='    => (isset($search)) ? $start_date : date('Y-m-d'),
  366.             'cashins_create_date <='    => (isset($search)) ? $end_date : date('Y-m-d'),
  367.         );
  368.         $data['cashins']        = $this->Crud->readData('SUM(cashins_total) AS cashins_total', 'cashins', $wCashins)->result_array();
  369.         $data['cashins_ttl']    = $this->Crud->readData('cashins_id', 'cashins', $wCashins)->num_rows();       
  370.         $wBankouts = array(
  371.             'bankouts_status'           => '1',
  372.             'bankouts_create_date >='   => (isset($search)) ? $start_date : date('Y-m-d'),
  373.             'bankouts_create_date <='   => (isset($search)) ? $end_date : date('Y-m-d'),
  374.         );
  375.         $data['bankouts']       = $this->Crud->readData('SUM(bankouts_total) AS bankouts_total', 'bankouts', $wBankouts)->result_array();
  376.         $data['bankouts_ttl']   = $this->Crud->readData('bankouts_id', 'bankouts', $wBankouts)->num_rows();
  377.  
  378.         $wBankins = array(
  379.             'bankins_status'            => '1',
  380.             'bankins_create_date >='    => (isset($search)) ? $start_date : date('Y-m-d'),
  381.             'bankins_create_date <='    => (isset($search)) ? $end_date : date('Y-m-d'),
  382.         );
  383.         $data['bankins']        = $this->Crud->readData('SUM(bankins_total) AS bankins_total', 'bankins', $wBankins)->result_array();
  384.         $data['bankins_ttl']    = $this->Crud->readData('bankins_id', 'bankins', $wBankins)->num_rows();               
  385.         /* Account Payble Source Code */
  386.  
  387.         /* Account Receivable Source Code */
  388.         $wInvGh = array(
  389.             'invoice_status'    => '1',
  390.             'invoice_type'      => 'GH',
  391.             'invoice_date >='   => (isset($search)) ? $start_date : date('Y-m-d'),
  392.             'invoice_date <='   => (isset($search)) ? $end_date : date('Y-m-d'),
  393.         );
  394.         $data['inv_gh']         = $this->Crud->readData('SUM(invoice_amount) AS inv_amount', 'invoice', $wInvGh)->result_array();
  395.         $data['inv_gh_ttl']     = $this->Crud->readData('SUM(invoice_amount) AS inv_amount', 'invoice', $wInvGh)->num_rows();
  396.        
  397.         $wInvGse = array(
  398.             'invoice_status'    => '1',
  399.             'invoice_type'      => 'GSE',
  400.             'invoice_date >='   => (isset($search)) ? $start_date : date('Y-m-d'),
  401.             'invoice_date <='   => (isset($search)) ? $end_date : date('Y-m-d'),
  402.         );
  403.         $data['inv_gse']        = $this->Crud->readData('SUM(invoice_amount) AS inv_amount', 'invoice', $wInvGse)->result_array();
  404.         $data['inv_gse_ttl']    = $this->Crud->readData('SUM(invoice_amount) AS inv_amount', 'invoice', $wInvGse)->num_rows();
  405.  
  406.         $woGh = array(
  407.             'wo_flag' => '1',
  408.             // 'wo_date' => (isset($search)) ? $start_date : date('Y-m-d'),
  409.             // 'wo_date' => (isset($search)) ? $end_date : date('Y-m-d'),
  410.         );
  411.         $data['wo_gh']  = $this->Crud->readData('wo_id', 'workorder', $woGh)->num_rows();
  412.  
  413.         $woGse = array(
  414.             'wo_flag' => '2',
  415.             // 'wo_date' => (isset($search)) ? $start_date : date('Y-m-d'),
  416.             // 'wo_date' => (isset($search)) ? $end_date : date('Y-m-d'),
  417.         );
  418.         $data['wo_gse']     = $this->Crud->readData('wo_id','workorder', $woGse)->num_rows();
  419.         /* Account Receivable Source Code */
  420.        
  421.         $this->load->view('vHeader');
  422.         $this->load->view('accounting/vDashboard', $data);
  423.         $this->load->view('vFooter');
  424.     }
  425.     public function dashboard_opr() {
  426.         $this->form_validation->set_rules('start_date', 'Start Date', 'trim');
  427.         $this->form_validation->set_rules('end_date', 'End Date', 'trim');
  428.         $start_date = $this->input->post('start_date');
  429.         $end_date   = $this->input->post('end_date');
  430.         $search     = $this->input->post('search');
  431.         $data['start_date'] = $start_date;
  432.         $data['end_date']   = $end_date;
  433.                
  434.         $data['gseavailibility'] = $this->Crud->readData('SUM(gseavailibility_s) gseavail_s, SUM(gseavailibility_us) gseavail_us', 'gseavailibility')->result_array();
  435.         $wPermintaan = array(
  436.             'permintaan_date >=' => (isset($search)) ? $start_date : date('Y-m-d'),
  437.             'permintaan_date <=' => (isset($search)) ? $end_date : date('Y-m-d')
  438.         )   ;
  439.         $data['data_permintaan_rtp'] = $this->Crud->readData('permintaan_id', 'permintaan', $wPermintaan)->num_rows();
  440.         $wRepair = array(
  441.             'repair_date >=' => (isset($search)) ? $start_date : date('Y-m-d'),
  442.             'repair_date <=' => (isset($search)) ? $end_date : date('Y-m-d')
  443.         );
  444.         $data['data_repair_rtr']     = $this->Crud->readData('repair_id', 'repair', $wRepair)->num_rows();
  445.         $this->load->view('vHeader');
  446.         $this->load->view('operation/vDashboard', $data);
  447.         $this->load->view('vFooter');
  448.     }
  449.     public function dashboard_proc() {     
  450.         $start_date = $this->input->post('start_date');
  451.         $end_date   = $this->input->post('end_date');
  452.         $search     = $this->input->post('search');
  453.         $data['start_date'] = $start_date;
  454.         $data['end_date']   = $end_date;
  455.  
  456.         $wPo = array(
  457.             'po_date >=' => (isset($search)) ? $start_date : date('Y-m-d'),
  458.             'po_date <=' => (isset($search)) ? $end_date : date('Y-m-d')
  459.         );
  460.         $data['purchase_order'] = $this->Crud->readData('SUM(po_ttl_harga) AS po_ttl_harga', 'purchaseorder', $wPo)->result_array();
  461.         $data['po_ttl']         = $this->Crud->readData('po_id', 'purchaseorder', $wPo)->num_rows();
  462.  
  463.         $wWo = array(
  464.             'wo_date >=' => (isset($search)) ? $start_date : date('Y-m-d'),
  465.             'wo_date <=' => (isset($search)) ? $end_date : date('Y-m-d')
  466.         );
  467.         $data['work_order']     = $this->Crud->readData('SUM(wo_ttl_harga) AS wo_ttl_harga', 'wo', $wWo)->result_array();
  468.         $data['wo_ttl']         = $this->Crud->readData('wo_id', 'wo', $wWo)->num_rows();
  469.  
  470.         $wSpk = array(
  471.             'spk_date >=' => (isset($search)) ? $start_date : date('Y-m-d'),
  472.             'spk_date <=' => (isset($search)) ? $end_date : date('Y-m-d')
  473.         );     
  474.         $data['spk_ttl']        = $this->Crud->readData('spk_id', 'spk', $wSpk)->num_rows();
  475.  
  476.         $this->load->view('vHeader');
  477.         $this->load->view('procurement/vDashboard', $data);
  478.         $this->load->view('vFooter');
  479.     }
  480.     public function dashboard_ssq() {      
  481.         $start_date = $this->input->post('start_date');
  482.         $end_date   = $this->input->post('end_date');
  483.         $search     = $this->input->post('search');
  484.  
  485.         $data['start_date'] = $start_date;
  486.         $data['end_date']   = $end_date;
  487.  
  488.         $wIrreg = array(
  489.             'irregularities_date >=' => (isset($search)) ? $start_date : date('Y-m-d'),
  490.             'irregularities_date <=' => (isset($search)) ? $end_date : date('Y-m-d')
  491.         );
  492.         $data['irreg']      = $this->Crud->readData('irregularities_id', 'irregularities', $wIrreg)->num_rows();           
  493.         $wIncident = array(
  494.             'incident_tanggal >=' => (isset($search)) ? $start_date : date('Y-m-d'),
  495.             'incident_tanggal <=' => (isset($search)) ? $end_date : date('Y-m-d')
  496.         );
  497.         $data['incident']   = $this->Crud->readData('incident_id', 'incident', $wIncident)->num_rows();
  498.         $wHazard = array(
  499.             'hazard_date >=' => (isset($search)) ? $start_date : date('Y-m-d'),
  500.             'hazard_date <=' => (isset($search)) ? $end_date : date('Y-m-d')
  501.         );
  502.         $data['hazard']     = $this->Crud->readData('hazard_id', 'hazard', $wHazard)->num_rows();      
  503.         $wSop = array(
  504.             'create_date >=' => (isset($search)) ? $start_date : date('Y-m-d'),
  505.             'create_date <=' => (isset($search)) ? $end_date : date('Y-m-d')
  506.         );
  507.         $data['sop']        = $this->Crud->readData('sop_id', 'sop', $wSop)->num_rows();   
  508.         $wNotice = array(
  509.             'notice_date >=' => (isset($search)) ? $start_date : date('Y-m-d'),
  510.             'notice_date <=' => (isset($search)) ? $end_date : date('Y-m-d')
  511.         );
  512.         $data['notice']     = $this->Crud->readData('notice_id', 'notice', $wNotice)->num_rows();  
  513.         $this->load->view('vHeader');
  514.         $this->load->view('ssq/vDashboard', $data);
  515.         $this->load->view('vFooter');
  516.     }
  517.     public function dashboard_hrd() {      
  518.         $set_year   = $this->input->post('set_year');      
  519.         $search     = $this->input->post('search');    
  520.         for($i = 1; $i <= 12; $i++) {  
  521.             $wAbsen = $this->db->like('tanggal', (isset($search)) ? date('/'. sprintf("%02d", $i) .'/'. $set_year .'') : date('/'. sprintf("%02d", $i) .'/Y'));
  522.             $data['absensi_'. $i .''] = $this->Crud->readData('id', 't_absensi_final', $wAbsen)->num_rows();               
  523.         }  
  524.         $data['inv_kantor'] = $this->Crud->readData('inv_kantor_id', 'inv_kantor')->num_rows();
  525.         $data['inv_kerja']  = $this->Crud->readData('inv_kerja_id', 'inv_kerja')->num_rows();
  526.  
  527.         $this->load->view('vHeader');
  528.         $this->load->view('hrd/vDashboard', $data);
  529.         $this->load->view('vFooter');
  530.     }
  531.     public function dashboard_training() {
  532.         /* Start Query Get Sum Training Requiremenet */
  533.         $numCat = $this->Crud->readData('id', 'training_category')->num_rows();
  534.         for($i = 1; $i <= $numCat; $i++) {
  535.             $data['training_req_'. $i .''] = $this->Crud->readData('id', 'training_requirement', array('category' => $i))->num_rows();
  536.         }
  537.         $data['numCat'] = $numCat;
  538.         /* End Query Get Sum Training Requiremenet */
  539.  
  540.         /* Start Query Get Sum Training Additional */
  541.         $data['training_internal']      = $this->Crud->readData('id', 'training_internal_student')->num_rows();
  542.         $data['training_internal_stkp'] = $this->Crud->readData('id', 'training_internal_stkp')->num_rows();
  543.         $data['training_external']      = $this->Crud->readData('id', 'training_external_student')->num_rows();
  544.         $data['training_external_stkp'] = $this->Crud->readData('id', 'training_external_stkp')->num_rows();       
  545.         $data['training_certificate']   = $this->Crud->readData('id', 'training_certificate')->num_rows();
  546.         $data['training_partner']       = $this->Crud->readData('id', 'training_partner')->num_rows();
  547.         $data['training_instructor']    = $this->Crud->readData('id', 'training_instructor')->num_rows();
  548.         /* End Query Get Sum Training Additional */
  549.  
  550.         /* Start query new & certificated training internal & external */
  551.         $data['training_internal_new']          = $this->Crud->readData('id', 'training_internal_student', array('status' => 'NEW'))->num_rows();
  552.         $data['training_external_new']          = $this->Crud->readData('id', 'training_external_student', array('status' => 'NEW'))->num_rows();
  553.         $data['training_internal_graduated']    = $this->Crud->readData('id', 'training_internal_student', array('status' => 'GRADUATED'))->num_rows();
  554.         $data['training_external_graduated']    = $this->Crud->readData('id', 'training_external_student', array('status' => 'GRADUATED'))->num_rows();
  555.         /* Start query new & certificated training internal & external */
  556.         $this->load->view('vHeader');
  557.         $this->load->view('training/vDashboard', $data);
  558.         $this->load->view('vFooter');
  559.     }
  560.     public function dashboard_legal() {
  561.         $data['contract_active']    = $this->Crud->readData('contract_id', 'contract', array('contract_status_legal' => 1))->num_rows();           
  562.         $data['contract_nonactive'] = $this->Crud->readData('contract_id', 'contract', array('contract_status_legal' => 2))->num_rows();   
  563.         $data['contract_kendaraan'] = $this->Crud->readData('kendaraan_id', 'kontrak_kendaraan')->num_rows();  
  564.         $data['contract_ruangan'] = $this->Crud->readData('ruangan_id', 'kontrak_ruangan')->num_rows();
  565.         $this->load->view('vHeader');
  566.         $this->load->view('legal/vDashboard', $data);
  567.         $this->load->view('vFooter');
  568.     }
  569.     public function dashboard_direksi() {
  570.         $data['data_station']   = $this->Crud->readData('station_code', 'station')->result_array();
  571.  
  572.         /* Chart Jumlah Transaksi */
  573.             $woGh = array(
  574.                 'wo_flag' => '1',
  575.                 // 'wo_date' => (isset($search)) ? $start_date : date('Y-m-d'),
  576.                 // 'wo_date' => (isset($search)) ? $end_date : date('Y-m-d'),
  577.             );
  578.             $data['wo_gh']  = $this->Crud->readData('wo_id', 'workorder', $woGh)->num_rows();
  579.  
  580.             $woGse = array(
  581.                 'wo_flag' => '2',
  582.                 // 'wo_date' => (isset($search)) ? $start_date : date('Y-m-d'),
  583.                 // 'wo_date' => (isset($search)) ? $end_date : date('Y-m-d'),
  584.             );
  585.             $data['wo_gse']     = $this->Crud->readData('wo_id','workorder', $woGse)->num_rows();
  586.         /* End Chart Jumlah Transaksi */
  587.  
  588.         /* Get data cashout per station */
  589.             $cashoutsStation    = array();
  590.             $cashoutsAmount     = array();
  591.             $rsCashouts         = $this->Crud->readData('SUM(cashouts_amount) AS cashouts_amount, cashouts_cabang', 'cashouts', array('cashouts_status >=' => '1'), array(), array('cashouts_cabang'))->result_array();        
  592.             foreach($rsCashouts AS $rsc) {
  593.                 array_push($cashoutsStation, $rsc['cashouts_cabang']);
  594.                 array_push($cashoutsAmount, $rsc['cashouts_amount']);
  595.             }
  596.             $data['cashoutsStation']    = json_encode($cashoutsStation);
  597.             $data['cashoutsAmount']     = json_encode($cashoutsAmount);
  598.         /* Get data cashout per station */
  599.  
  600.         /* Get data cashins per station  */
  601.             $cashinsStation = array();
  602.             $cashinsAmount  = array();
  603.             $rsCashins      = $this->Crud->readData('SUM(cashins_amount) AS cashins_amount, cashins_cabang', 'cashins', array('cashins_status >=' => '1'), array(), array('cashins_cabang'))->result_array();      
  604.             foreach($rsCashins AS $rscs) {
  605.                 array_push($cashinsStation, $rscs['cashins_cabang']);
  606.                 array_push($cashinsAmount, intval($rscs['cashins_amount']));
  607.             }
  608.             $data['cashinsStation'] = json_encode($cashinsStation);
  609.             $data['cashinsAmount']  = json_encode($cashinsAmount);
  610.         /* Get data cashins per station */
  611.  
  612.         /* Get data piutang AR per station */
  613.             $invStation     = array();
  614.             $invAmount      = array();
  615.             $wInvoice       = $this->db->where_in('invoice_status', array('0', '1'));
  616.             $rsInvoice      = $this->Crud->readData('SUM(invoice_amount) AS invoice_amount, invoice_station', 'invoice', $wInvoice, array(), array('invoice_station'))->result_array();        
  617.             foreach($rsInvoice AS $rsi) {
  618.                 array_push($invStation, $rsi['invoice_station']);
  619.                 array_push($invAmount, $rsi['invoice_amount']);
  620.             }
  621.             $data['invStation'] = json_encode($invStation);
  622.             $data['invAmount']  = json_encode($invAmount);
  623.         /* Get data piutang AR per station */
  624.  
  625.         /* Get data kontrak */
  626.         /* Get kontrak */
  627.             $tPegawai = array();
  628.             $rsPegawai = $this->Crud->readData('count(nrp) as nrp', 't_pegawai')->result_array();
  629.             foreach($rsPegawai as $rsp) {
  630.                 array_push($tPegawai, $rsp['nrp']);
  631.             }
  632.             $data['data_sdm'] = $tPegawai;
  633.  
  634.             $tKontrakGH = array();
  635.             $rsKontrakGH = $this->Crud->readData('count(contract_airlines_flag) as flag', 'contract', array('contract_airlines_flag' => '1'))->result_array();
  636.             foreach($rsKontrakGH as $rsk1) {
  637.                 array_push($tKontrakGH, $rsk1['flag']);
  638.             }
  639.             $data['kontrak_gh'] = $tKontrakGH;
  640.  
  641.             $tKontrakGSE = array();
  642.             $rsKontrakGSE = $this->Crud->readData('count(contract_airlines_flag) as flag', 'contract', array('contract_airlines_flag' => '2'))->result_array();
  643.             foreach($rsKontrakGSE as $rsk2) {
  644.                 array_push($tKontrakGSE, $rsk2['flag']);
  645.             }
  646.             $data['kontrak_gse'] = $tKontrakGSE;
  647.  
  648.             $tKontrakAdGH = array();
  649.             $rsKontrakAdGH = $this->Crud->readData('count(contract_airlines_flag) as flag', 'contract', array('contract_airlines_flag' => '3'))->result_array();
  650.             foreach($rsKontrakAdGH as $rsk3) {
  651.                 array_push($tKontrakAdGH, $rsk3['flag']);
  652.             }
  653.             $data['kontrak_adgh'] = $tKontrakAdGH;
  654.  
  655.             $tKontrakAdGSE = array();
  656.             $rsKontrakAdGSE = $this->Crud->readData('count(contract_airlines_flag) as flag', 'contract', array('contract_airlines_flag' => '4'))->result_array();
  657.             foreach($rsKontrakAdGSE as $rsk4) {
  658.                 array_push($tKontrakAdGSE, $rsk4['flag']);
  659.             }
  660.             $data['kontrak_adgse'] = $tKontrakAdGSE;
  661.  
  662.             $tKontrakVip = array();
  663.             $rsKontrakVip = $this->Crud->readData('count(contract_airlines_flag) as flag', 'contract', array('contract_airlines_flag' => '5'))->result_array();
  664.             foreach($rsKontrakVip as $rsk5) {
  665.                 array_push($tKontrakVip, $rsk5['flag']);
  666.             }
  667.             $data['kontrak_vip'] = $tKontrakVip;
  668.             /* End get kontrak */
  669.         /* End get */
  670.  
  671.         /* Get hutang */
  672.             $mVendor = array();
  673.             $tMutasi = array();
  674.             $rsMutasi = $this->Crud->readData('credit, debet, sisa, vendor_code, vendor_name', 'vendor', array('sisa >' => '0'), array('left' => array('vBeli' => 'vendor_code = vendor')))->result_array();
  675.             foreach($rsMutasi as $rsm) {
  676.                 array_push($mVendor, $rsm['vendor_code']);
  677.                 array_push($tMutasi, $rsm['debet']);
  678.             }
  679.             $data['vendor_mutasi'] = json_encode($mVendor);
  680.             $data['ttl_mutasi'] = json_encode($tMutasi);
  681.         /* End get hutang */
  682.  
  683.         /* Get SDM by statuspeg */
  684.             $pegAktif = array();
  685.             $rsPegAktif = $this->Crud->readData('count(peg_aktif) as aktif', 't_pegawai', array('peg_aktif' => 'Y'))->result_array();
  686.             foreach($rsPegAktif as $rsAktif) {
  687.                 array_push($pegAktif, $rsAktif['aktif']);
  688.             }
  689.             $data['sdm_aktif'] = $pegAktif;
  690.  
  691.             $pegNoAktif = array();
  692.             $rsPegNoAktif = $this->Crud->readData('count(peg_aktif) as aktif', 't_pegawai', array('peg_aktif' => 'N'))->result_array();
  693.             foreach($rsPegNoAktif as $rsNoAktif) {
  694.                 array_push($pegNoAktif, $rsNoAktif['aktif']);
  695.             }
  696.             $data['sdm_noaktif'] = $pegNoAktif;
  697.  
  698.             $pegTetap = array();
  699.             $rsPegTetap = $this->Crud->readData('count(statuspeg) as status', 't_pegawai', array('statuspeg' => 'Tetap'))->result_array();
  700.             foreach($rsPegTetap as $rsTetap) {
  701.                 array_push($pegTetap, $rsTetap['status']);
  702.             }
  703.             $data['sdm_tetap'] = $pegTetap;
  704.  
  705.             $pegReg = array();
  706.             $rsPegReg = $this->Crud->readData('count(statuspeg) as status', 't_pegawai', array('statuspeg' => 'Kontrak Reguler'))->result_array();
  707.             foreach($rsPegReg as $rsReg) {
  708.                 array_push($pegReg, $rsReg['status']);
  709.             }
  710.             $data['sdm_reguler'] = $pegReg;
  711.  
  712.             $pegKhusus = array();
  713.             $rsPegKhusus = $this->Crud->readData('count(statuspeg) as status', 't_pegawai', array('statuspeg' => 'Kontrak Khusus'))->result_array();
  714.             foreach($rsPegKhusus as $rsKhusus) {
  715.                 array_push($pegKhusus, $rsKhusus['status']);
  716.             }
  717.             $data['sdm_khusus'] = $pegKhusus;
  718.  
  719.             $pegEkspert = array();
  720.             $rsPegEkspert = $this->Crud->readData('count(statuspeg) as status', 't_pegawai', array('statuspeg' => 'Ekspert'))->result_array();
  721.             foreach($rsPegEkspert as $rsEkspert) {
  722.                 array_push($pegEkspert, $rsEkspert['status']);
  723.             }
  724.             $data['sdm_ekspert'] = $pegEkspert;
  725.         /* End Get Sdm by statuspeg */
  726.  
  727.         /* Get total data vendor */
  728.             $dataVendor = array();
  729.             $rsVendor = $this->Crud->readData('COUNT(vendor_name) as vendor_name', 'vendor')->result_array();
  730.             foreach($rsVendor as $rsv) {
  731.                 array_push($dataVendor, $rsv['vendor_name']);
  732.             }
  733.             $data['dataVendor'] = $dataVendor;
  734.  
  735.             /* Get total data customer */
  736.             $dataCust = array();
  737.             $rsCust = $this->Crud->readData('COUNT(customer_name) as customer_name', 'customer')->result_array();
  738.             foreach($rsCust as $rscst) {
  739.                 array_push($dataCust, $rscst['customer_name']);
  740.             }
  741.             $data['dataCust'] = $dataCust;
  742.  
  743.             /* Get total data legal */
  744.             $dataLegal = array();
  745.             $rsLegal = $this->Crud->readData('COUNT(perijinan_pusat) as perijinan_pusat', 'perijinan_pusat')->result_array();
  746.             foreach($rsLegal as $rsl) {
  747.                 array_push($dataLegal, $rsl['perijinan_pusat']);
  748.             }
  749.             $data['dataLegal'] = $dataLegal;
  750.         /* End get total */
  751.  
  752.         /* Get total vendor & customer */
  753.             $pCustomer = array();
  754.             $rsCustomer = $this->Crud->readData('COUNT(*) as total', 'customer')->result_array();
  755.             foreach($rsCustomer as $rsTtlCust) {
  756.                 array_push($pCustomer, $rsTtlCust['total']);
  757.             }
  758.             $data['total_customer'] = $pCustomer;
  759.  
  760.             $pVendor = array();
  761.             $rsTtlVendor = $this->Crud->readData('COUNT(*) as total', 'vendor')->result_array();
  762.             foreach($rsTtlVendor as $rstvendor) {
  763.                 array_push($pVendor, $rstvendor['total']);
  764.             }
  765.             $data['total_vendor'] = $pVendor;
  766.         /* End get total vendor & customer */
  767.  
  768.         $this->load->view('vHeader', $data);
  769.         $this->load->view('direksi/vDashboard', $data);
  770.         $this->load->view('vFooter');
  771.     }
  772.     public function dashboard_neraca() {
  773.         $dateEnd = ($this->input->get('dateEnd') !== NULL) ? date('Y-m-t', strtotime($this->input->get('dateEnd'))): date('Y-12-30');
  774.         $dateStart = ($this->input->get('dateStart') !== NULL) ? date('Y-m-d', strtotime($this->input->get('dateStart'))): date('Y-01-01');
  775.         $select = "gl_act, gl_ctr, gl_lvl, gl_parent, gl_name2, gl_cls, gl_child,";
  776.         for ($a = date("Ym", strtotime($dateStart)); $a <= date("Ym", strtotime($dateEnd)); $a++) {
  777.             $select .= "(SELECT CASE WHEN gl_cls = 'I' THEN SUM(saldo_debet) - SUM(saldo_credit) ELSE SUM(saldo_credit) - SUM(saldo_debet) END FROM saldo WHERE saldo_akun = gl_act AND saldo_cabang = gl_ctr AND saldo_period <= '" . date("Y-m-t", strtotime($a . "01 -1 month")) . "') AS \"" . date("My", strtotime($a . "01 -1 month")) . "\",";
  778.  
  779.             if ($a == date("Ym", strtotime($dateEnd))) { $select .= "(SELECT CASE WHEN gl_cls = 'I' THEN SUM(saldo_debet) - SUM(saldo_credit) ELSE SUM(saldo_credit) - SUM(saldo_debet) END FROM saldo WHERE saldo_akun = gl_act AND saldo_cabang = gl_ctr AND saldo_period <= '" . date("Y-m-t", strtotime($a . "01")) . "') AS \"" . date("My", strtotime($a . "01")) . "\""; }
  780.         }
  781.         $b = $this->Crud->readData($select, 'account', array('gl_cls' => 'I'), '', '', 'gl_act ASC, gl_ctr ASC')->result_array();
  782.         foreach ($b as $k => $v) {
  783.             for ($c = date('Ym', strtotime($dateStart)); $c <= date('Ym', strtotime($dateEnd)); $c++) {
  784.                 $b[$k][date('MY', strtotime($c . '01'))] = (is_numeric($v[date('My', strtotime($c . '01'))])) ? floatval($v[date('My', strtotime($c . '01'))]): 0;
  785.             }
  786.         }
  787.         $d = $this->Crud->readData($select, 'account', array('gl_cls' => 'L'), '', '', 'gl_act ASC, gl_ctr ASC')->result_array();
  788.         foreach ($d as $k => $v) {
  789.             for ($e = date('Ym', strtotime($dateStart)); $e <= date('Ym', strtotime($dateEnd)); $e++) {
  790.                 $d[$k][date('MY', strtotime($e . '01'))] = (is_numeric($v[date('My', strtotime($e . '01'))])) ? floatval($v[date('My', strtotime($e . '01'))]): 0;
  791.             }
  792.         }
  793.         // echo $this->db->last_query(); exit();
  794.         $data['asets'] = $b;
  795.         $data['dateEnd'] = $dateEnd;
  796.         $data['dateStart'] = $dateStart;
  797.         $data['liabilities'] = $d;
  798.         $station = $this->_get_station($this->fauthz->get_user_id());
  799.         $data['station'] = $this->Crud->readData('station_code, station_name', 'station', array('where_in' => array('station_code' => $station)), '', '', 'station_name ASC')->result_array();
  800.         // $data['kas_dan_setarakas'] = $this->Crud->readData('SUM(saldo_debet) - SUM(saldo_credit)', 'saldo', array('saldo_akun' => '1101101'));
  801.         $this->load->view('vHeader');
  802.         $this->load->view('direksi/vDashboard_nrc', $data);
  803.         $this->load->view('vFooter');
  804.     }
  805.     public function dashboard_labarugi() {
  806.         // $dateEnd = ($this->input->get('dateEnd') !== NULL) ? date('Y-m-t', strtotime($this->input->get('dateEnd'))): date('Y-12-30');
  807.         // $dateStart = ($this->input->get('dateStart') !== NULL) ? date('Y-m-d', strtotime($this->input->get('dateStart'))): date('Y-01-01');
  808.         // $data['dateEnd'] = $dateEnd;
  809.         // $data['dateStart'] = $dateStart;
  810.         // $data['expenses'] = $this->mreport->dashboard_labarugi('E', $dateStart, $dateEnd);
  811.         // $data['incomes'] = $this->mreport->dashboard_labarugi('I', $dateStart, $dateEnd);
  812.         // echo $this->db->last_query(); exit();
  813.         // $station = $this->_get_station($this->fauthz->get_user_id());
  814.         // $data['station'] = $this->Crud->readData('station_code, station_name', 'station', array('where_in' => array('station_code' => $station)), '', '', 'station_name ASC')->result_array();
  815.  
  816.         $dateEnd = ($this->input->get('dateEnd') !== NULL) ? date('Y-m-t', strtotime($this->input->get('dateEnd'))): date('Y-12-30');
  817.         $dateStart = ($this->input->get('dateStart') !== NULL) ? date('Y-m-d', strtotime($this->input->get('dateStart'))): date('Y-01-01');
  818.         $select = "gl_act, gl_ctr, gl_lvl, gl_parent, gl_name2, gl_cls, gl_child,";
  819.         for ($a = date("Ym", strtotime($dateStart)); $a <= date("Ym", strtotime($dateEnd)); $a++) {
  820.             $select .= "(SELECT CASE WHEN gl_cls = 'I' THEN SUM(saldo_debet) - SUM(saldo_credit) ELSE SUM(saldo_credit) - SUM(saldo_debet) END FROM saldo WHERE saldo_akun = gl_act AND saldo_cabang = gl_ctr AND saldo_period <= '" . date("Y-m-t", strtotime($a . "01 -1 month")) . "') AS \"" . date("My", strtotime($a . "01 -1 month")) . "\",";
  821.  
  822.             if ($a == date("Ym", strtotime($dateEnd))) { $select .= "(SELECT CASE WHEN gl_cls = 'I' THEN SUM(saldo_debet) - SUM(saldo_credit) ELSE SUM(saldo_credit) - SUM(saldo_debet) END FROM saldo WHERE saldo_akun = gl_act AND saldo_cabang = gl_ctr AND saldo_period <= '" . date("Y-m-t", strtotime($a . "01")) . "') AS \"" . date("My", strtotime($a . "01")) . "\""; }
  823.         }
  824.         $b = $this->Crud->readData($select, 'account', array('gl_cls' => 'I'), '', '', 'gl_act ASC, gl_ctr ASC')->result_array();
  825.         foreach ($b as $k => $v) {
  826.             for ($c = date('Ym', strtotime($dateStart)); $c <= date('Ym', strtotime($dateEnd)); $c++) {
  827.                 $b[$k][date('MY', strtotime($c . '01'))] = (is_numeric($v[date('My', strtotime($c . '01'))])) ? floatval($v[date('My', strtotime($c . '01'))]): 0;
  828.             }
  829.         }
  830.         $d = $this->Crud->readData($select, 'account', array('gl_cls' => 'L'), '', '', 'gl_act ASC, gl_ctr ASC')->result_array();
  831.         foreach ($d as $k => $v) {
  832.             for ($e = date('Ym', strtotime($dateStart)); $e <= date('Ym', strtotime($dateEnd)); $e++) {
  833.                 $d[$k][date('MY', strtotime($e . '01'))] = (is_numeric($v[date('My', strtotime($e . '01'))])) ? floatval($v[date('My', strtotime($e . '01'))]): 0;
  834.             }
  835.         }
  836.         // echo $this->db->last_query(); exit();
  837.         $data['asets'] = $b;
  838.         $data['dateEnd'] = $dateEnd;
  839.         $data['dateStart'] = $dateStart;
  840.         $data['liabilities'] = $d;
  841.         $station = $this->_get_station($this->fauthz->get_user_id());
  842.         $data['station'] = $this->Crud->readData('station_code, station_name', 'station', array('where_in' => array('station_code' => $station)), '', '', 'station_name ASC')->result_array();
  843.  
  844.         $this->load->view('vHeader');
  845.         $this->load->view('direksi/vDashboard_laba', $data);
  846.         $this->load->view('vFooter');
  847.     }
  848. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement