https://t.me/RX1948
Server : Apache/2.4.18 (Ubuntu)
System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64
User : oppastar ( 1041)
PHP Version : 7.0.33-0ubuntu0.16.04.15
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
Directory :  /var/www/rabbithabit.com/public_html/application/controllers/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //var/www/rabbithabit.com/public_html/application/controllers/admin/Pembelian.php
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Pembelian extends Admin_Controller {
		
	function __construct() {
		parent::__construct();	
		$this->load->model('transaction_m');

        if ($this->data['membership_type']=="starter" || $this->data['membership_type']=="business") {
            redirect('admin/dashboard');
        }
	} 
		
	//this is to list all homepage
	public function index() {
		
		//load view
		$this->data['subview'] = 'admin/pembelian/index';
		$this->load->view('admin/templates/header', $this->data_header); 
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');		
    }

    public function jx_get_data_product(){
    	$act = $this->input->post('act');
    	$rs = [];

    	switch ($act) {
    		case 'get_sku':
    			$id = $this->input->post('id');
		    	$quer = $this->db->query("select * from product_details where product_id=".$id)->result();
		    	$rs = array(
		    		// "msg"=> $id,
		    		"data"=> $quer,
		    	);
    			break;
    		case 'get_stock':
    			$id_product = $this->input->post('id_product');
    			$id_sku = $this->input->post('id_sku');
    			$quer = $this->db->query("select * from stock where 
    				id_product_detail=".$id_sku.
    				" and id_product=".$id_product."")->result();
		    	$rs = array(
		    		// "msg"=> $id_product,
		    		"data"=> $quer,
		    	);
    			break;
    		
    		default:
    			# code...
    			break;
    	}

    	echo json_encode($rs);
    }

    function request(){

        // if (!in_array('pembelian_request', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }

    	$this->data['transaction'] = 
    	$this->db
    	->select('*')
    	->from('transaction')
    	->join('warehouse', 'warehouse.id = transaction.warehouse_id')
    	/*->where('(transaction.transaction_status = 1) OR (transaction.transaction_status = 2) OR (transaction.transaction_status = 3) OR (transaction.transaction_status = 6)')*/
    	->order_by('transaction.id_transaction','DESC')
    	->get()
    	->result();
    	//load view
		$this->data['subview'] = 'admin/pembelian_request/index';
		$this->load->view('admin/templates/header', $this->data_header); 
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');
    }


    function request_add(){

        // if (!in_array('pembelian_request', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }

        // if($this->data['allowed'] == false) { redirect('admin/dashboard'); }

    	$this->data['transaction'] 				= $this->transaction_m->get_new();
    	$this->data['product'] 					= $this->db->select('id_products,title')->from('products')->order_by('title','ASC')->get()->result();
    	$this->data['warehouse']				= $this->db->select('*')->from('warehouse')->get()->result();
    	$this->data['count_transaction_detail']	= '';

        $config = $this->transaction_m->rules;

        $this->load->library('form_validation');
        $this->form_validation->set_error_delimiters('<div class="error">', '</div>'); //above is to add class to form validation error, to be styled

        $this->form_validation->set_rules($config); 
        $this->form_validation->set_error_delimiters('<div class="error">', '</div>');

        // if($this->form_validation->run($this) == TRUE) {
        //     /*cek kelengkapan product request*/
        //     $product_id         = $this->input->post('id_product'); 
        //     $count_product      = count($product_id);

        //     $arr_quantitas_beli     = $this->input->post('quantitas_beli'); 
        //     $id_unit_convertion = $this->input->post('id_unit_convertion');
        //     foreach ($arr_quantitas_beli as $item) {
        //         if($item != 0){
        //             $quantitas_beli[] = $item;
        //         }
        //     }

        //     if($count_product != 0){
        //         for($a=0;$a<$count_product;$a++){
        //             if($id_unit_convertion[$a] > 0){
        //                 if($quantitas_beli[$a] == 0){
        //                     $this->session->set_flashdata('success', '<br>
        //                         <p style="background:red; color:white; padding:5px; font-weight:bold;">Complete all Quantity on Product</p>');
        //                     redirect('admin/pembelian/request_add');
        //                 }
        //             }
        //             else{
        //                 $this->session->set_flashdata('success', '<br>
        //                     <p style="background:red; color:white; padding:5px; font-weight:bold;">Complete all Convertion on Product</p>');
        //                 redirect('admin/pembelian/request_add');
        //             }
        //         }
        //     }
        //     else{
        //         $this->session->set_flashdata('success', '<br>
        //             <p style="background:red; color:white; padding:5px; font-weight:bold;">No Product Data Input</p>');
        //         redirect('admin/pembelian/request_add');
        //     }
        //     /*cek kelengkapan product request*/


        // 	$lampiran_filename = '';

        //     /*UPLOAD LAMPIRAN*/
        //     if ($_FILES['lampiran']['size'] != 0) {
        //         $config['upload_path']      = './uploads/lampiran/'; 
        //         $config['allowed_types']    = 'jpg|png'; 
        //         $config['max_size']         = '300';
        //         $config['max_width']        = '1100';
        //         $config['max_height']       = '733';

        //         $this->load->library('upload', $config);  
        //         $this->upload->initialize($config);

        //         if ( ! $this->upload->do_upload('lampiran')) {
        //             $this->session->set_flashdata('success', '<br>
        //                 <p style="background:red; color:white; padding:5px; font-weight:bold;">Image Upload Error. Wrong format or size.</p>');
        //             redirect('admin/pembelian/request_add');
        //         } 
        //         else {
        //             $lampiran          = $this->upload->data();
        //             $lampiran_filename = $lampiran['file_name'];
        //         }   
        //     }
        //     /*UPLOAD LAMPIRAN*/

        //     /*get current transaction number*/
        //     error_reporting(0);
        //     $t_number = $this->db->select('no_transaksi')->from('transaction')->order_by('tgl_transaksi','DESC')->get()->row()->no_transaksi;
        //     if($t_number == null){
        //         $transaction_number = '1';
        //     }
        //     else{
        //         $current = substr($t_number,16,4);
        //         $transaction_number = $current + 1;
        //     }
        //     $no_transaksi = '#PO/SSS/'.date("m").'/'.date("Y").'/'.$transaction_number;
        //     /*get current transaction number*/

        //     /*buat request or save as draft*/
        //     $submit = $this->input->post('submit');
        //     if($submit == "Buat Request"){
        //         $transaction_status = '3';
        //     }
        //     elseif($submit == "Save as Draft"){
        //         $transaction_status = '1';
        //     }
        //     /*buat request or save as draft*/

        //     $transaction = array(
        //         'no_transaksi'      	=> $no_transaksi, 
        //         'transaction_status'    => $transaction_status,
        //         'transaction_message'   => $this->security->xss_clean($this->input->post('note')),
        //         'transaction_file'      => $lampiran_filename,
        //         'warehouse_id'      	=> $this->input->post('id_warehouse'),
        //     );
        //     $transaction_id = (int) $this->transaction_m->add_transaction($transaction);

        //     for($a=0;$a<$count_product;$a++){

        //         $satuan_beli_id = $this->db->select('satuan_beli_id')->from('unit_convertion')->where('id_unit_convertion',$id_unit_convertion[$a])->get()->row()->satuan_beli_id;
        //         $satuan_jual_id = $this->db->select('satuan_jual_id')->from('unit_convertion')->where('id_unit_convertion',$id_unit_convertion[$a])->get()->row()->satuan_jual_id;
        //         $transaction_detail = array(
        //             'id_product'        => $product_id[$a],
        //             'id_transaction'    => $transaction_id,
        //             'kuantitas_beli'    => $quantitas_beli[$a],
        //             'satuan_beli_id'    => $satuan_beli_id,
        //             'satuan_jual_id'    => $satuan_jual_id
        //         );
        //         $this->db->insert('transaction_detail', $transaction_detail);
        //     }
        //     $this->session->set_flashdata('success', '<br>
        //             <p style="background:green; color:white; padding:5px; font-weight:bold;">Input Request Success</p>');
        //     redirect('admin/pembelian/request');
        // }

        // edit ---------------------------------------
        // $submit = $this->input->post('submit');
        // if(isset($submit)){
	       //  // echo $submit;
	       //  if($submit === "Buat Request"){
	        	
	       //  }
	       //  if($submit === "Save as Draft"){

	       //  }	
	       //  // exit();
        // }

        // edit ---------------------------------------
        $act_ca = $this->input->post("act_ca");    
        if(isset($act_ca)){
            if($act_ca === "save_req"){
                $data_jx = $this->input->post("data_jx");

                $transaction_message = $data_jx['noted'];
                $warehouse_id = $data_jx['wh_val'];
                $transaction_file = $data_jx['nm_file'];
                $data_dt_ajax = $data_jx['data_tb'];

                if(empty($data_jx)){
                    redirect('admin/pembelian/request_add'); 
                }

                /*get current transaction number*/ 
                $transaction_number = '1';
                $t_number = $this->db->query("select no_transaksi from transaction order by tgl_transaksi desc limit 0,1"); 
                if($t_number->num_rows() == 0){
                    $transaction_number = '1';
                }
                else{
                    $current = substr($t_number->row()->no_transaksi,16,4);
                    $transaction_number = $current + 1;
                }
                $no_transaksi = '#PO/SSS/'.date("m").'/'.date("Y").'/'.$transaction_number;
                /*get current transaction number*/

                $data_hd = array(
                    "no_transaksi"=>$no_transaksi,
                    "transaction_message"=>$transaction_message,
                    "warehouse_id"=>$warehouse_id,
                    'transaction_status' => 3,
                    "transaction_file"=>$transaction_file,
                );
                $ins_hd = $this->db->insert('transaction', $data_hd);
                $msg_rs = "";
                
                $id_transaction = $this->db->query("select * from transaction order by id_transaction desc limit 0,1")->row()->id_transaction;

                foreach ($data_dt_ajax as $key) {

                    $data_dt = array(
                        "id_product"=>$key['idproduk'],
                        "id_transaction"=>$id_transaction,
                        "kuantitas_beli"=>$key['qty'], 
                    );
                    $ins_dt = $this->db->insert('transaction_detail', $data_dt);

                    if($ins_dt){
                        $msg_rs = "Sukses";
                    }else{
                        $msg_rs = "Gagal";
                    }
                }
                echo json_encode(array(
                    "msg"=>$msg_rs,
                ));
            }
        exit();
        }
        // end edit -----------------------------------

    	//load view
		$this->data['subview'] = 'admin/pembelian_request/edit';
		$this->load->view('admin/templates/header', $this->data_header); 
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');
    }

    function request_edit($id_transaction){

        // if (!in_array('pembelian_request', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }


    	$this->data['transaction'] 				= $this->transaction_m->get_current($id_transaction);
    	$this->data['product'] 					= $this->db->select('id_products,title')->from('products')->get()->result();
    	$this->data['warehouse']				= $this->db->select('*')->from('warehouse')->get()->result();

    	$this->data['transaction_detail']		= $this->transaction_m->get_current_detail($id_transaction);
    	$this->data['count_transaction_detail']	= count($this->data['transaction_detail']);

    	$config = $this->transaction_m->rules;

        $this->load->library('form_validation');
        $this->form_validation->set_error_delimiters('<div class="error">', '</div>'); //above is to add class to form validation error, to be styled

        $this->form_validation->set_rules($config); 
        $this->form_validation->set_error_delimiters('<div class="error">', '</div>');

        if($this->form_validation->run($this) == TRUE) {
        	/*cek warehouse_id*/
        	$old_warehouse = $this->data['transaction']->warehouse_id;
        	$new_warehouse = $this->input->post('id_warehouse');
        	if($old_warehouse != $new_warehouse){
        		$this->session->set_flashdata('success', '<br>
        			<p style="background:red; color:white; padding:5px; font-weight:bold;">You Can`t Change The Warehouse!!</p>');
        		redirect('admin/pembelian/request_edit/'.$id_transaction);
        	}
        	/*cek warehouse_id*/

            /*cek kelengkapan product request*/
            $product_id         = $this->input->post('id_product'); 
            $count_product      = count($product_id);

            $arr_quantitas_beli     = $this->input->post('quantitas_beli'); 
            $id_unit_convertion = $this->input->post('id_unit_convertion');
            foreach ($arr_quantitas_beli as $item) {
                if($item != 0){
                    $quantitas_beli[] = $item;
                }
            }

            if($count_product != 0){
                for($a=0;$a<$count_product;$a++){
                    if($id_unit_convertion[$a] > 0){
                        if($quantitas_beli[$a] == 0){
                            $this->session->set_flashdata('success', '<br>
                                <p style="background:red; color:white; padding:5px; font-weight:bold;">Complete all Quantity on Product</p>');
                            redirect('admin/pembelian/request_edit/'.$id_transaction);
                        }
                    }
                    else{
                        $this->session->set_flashdata('success', '<br>
                            <p style="background:red; color:white; padding:5px; font-weight:bold;">Complete all Convertion on Product</p>');
                        redirect('admin/pembelian/request_edit/'.$id_transaction);
                    }
                }
            }
            else{
                $this->session->set_flashdata('success', '<br>
                    <p style="background:red; color:white; padding:5px; font-weight:bold;">No Product Data Input</p>');
                redirect('admin/pembelian/request_edit/'.$id_transaction);
            }
            /*cek kelengkapan product request*/

        	$lampiran_filename = $this->data['transaction']->transaction_file;

            /*UPLOAD LAMPIRAN*/
            if ($_FILES['lampiran']['size'] != 0) {
                $config['upload_path']      = './uploads/lampiran/'; 
                $config['allowed_types']    = 'jpg|png'; 
                $config['max_size']         = '300';
                $config['max_width']        = '1100';
                $config['max_height']       = '733';

                $this->load->library('upload', $config);  
                $this->upload->initialize($config);

                if ( ! $this->upload->do_upload('lampiran')) {
                    $this->session->set_flashdata('success', '<br>
                        <p style="background:red; color:white; padding:5px; font-weight:bold;">Image Upload Error. Wrong format or size.</p>');
                    redirect('admin/pembelian/request_edit/'.$id_transaction);
                } 
                else {
                	/*NEW IMAGE UPLOADED, DELETE OLD IMAGE*/
                	unlink(FCPATH .'/uploads/lampiran/'. $this->data['transaction']->transaction_file);
            		/*NEW IMAGE UPLOADED, DELETE OLD IMAGE*/

                    $lampiran          = $this->upload->data();
                    $lampiran_filename = $lampiran['file_name'];
                }   
            }
            /*UPLOAD LAMPIRAN*/

            /*buat request or save as draft*/
            $submit = $this->input->post('submit');
            if($submit == "Buat Request"){
            	if($this->data['transaction']->transaction_status == 2){
            		$this->session->set_flashdata('success', '<br>
                        <p style="background:red; color:white; padding:5px; font-weight:bold;">Progress Failed</p>');
                    redirect('admin/pembelian/request');
            	}
                $transaction_status = '3';
            }
            elseif($submit == "Save as Draft"){
            	if($this->data['transaction']->transaction_status == 2){
            		$this->session->set_flashdata('success', '<br>
                        <p style="background:red; color:white; padding:5px; font-weight:bold;">Progress Failed</p>');
                    redirect('admin/pembelian/request');
            	}
                $transaction_status = '1';
            }
            /*buat request or save as draft*/

            $transaction = array(
                'transaction_status'    => $transaction_status,
                'transaction_message'   => $this->security->xss_clean($this->input->post('note')),
                'transaction_file'      => $lampiran_filename,
                'warehouse_id'          => $this->input->post('id_warehouse'),
            );

            $this->transaction_m->edit_transaction($id_transaction,$transaction);

        	/*first delete old transaction_detail*/
    		$this->db->where('id_transaction',$id_transaction);
    		$this->db->delete('transaction_detail');
    		/*first delete old transaction_detail*/

        	for($a=0;$a<$count_product;$a++){
        		$satuan_beli_id = $this->db->select('satuan_beli_id')->from('unit_convertion')->where('id_unit_convertion',$id_unit_convertion[$a])->get()->row()->satuan_beli_id;
        		$satuan_jual_id = $this->db->select('satuan_jual_id')->from('unit_convertion')->where('id_unit_convertion',$id_unit_convertion[$a])->get()->row()->satuan_jual_id;
        		$transaction_detail = array(
                    'id_product'        => $product_id[$a],
                    'id_transaction'    => $id_transaction,
                    'kuantitas_beli'    => $quantitas_beli[$a],
                    'satuan_beli_id'    => $satuan_beli_id,
                    'satuan_jual_id'    => $satuan_jual_id
                );
                $this->db->insert('transaction_detail', $transaction_detail);
            }
            $this->session->set_flashdata('success', '<br>
            		<p style="background:green; color:white; padding:5px; font-weight:bold;">Edit Request Success</p>');
            redirect('admin/pembelian/request');
        }
    	//load view
		$this->data['subview'] = 'admin/pembelian_request/edit';
		$this->load->view('admin/templates/header', $this->data_header); 
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');
    }


    function req_edit($id_trans){
        $query_trans_header = $this->db->get_where("transaction",
                            array("id_transaction"=>$id_trans));
        
        $query_trans_detail = $this->db->get_where("transaction_detail",
                            array("id_transaction"=>$id_trans));

        $this->data['transaction'] = $query_trans_header->row();
        $this->data['subview'] = 'admin/pembelian_request/edit';

        $this->load->view('admin/templates/header', $this->data_header); 
        $this->load->view('admin/_layout_main', $this->data);
        $this->load->view('admin/templates/footer');

    }



    function pemesanan(){

        // if (!in_array('pembelian_pemesanan', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }

        $this->data['transaction'] = 
        $this->db
        ->select('*')
        ->from('transaction')
        ->where('(transaction_status = 2) OR (transaction_status = 3) OR (transaction_status = 4) OR (transaction_status = 5) OR (transaction_status = 6)')
        ->order_by('id_transaction','DESC')
        ->get()
        ->result();
    	//load view
		$this->data['subview'] = 'admin/pembelian_pemesanan/index';
		$this->load->view('admin/templates/header', $this->data_header); 
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');
    }

    function pemesanan_detail($id_transaction){

        // if (!in_array('pembelian_pemesanan', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }

        $this->data['transaction']              = $this->db->select('*')->from('transaction')->where('id_transaction',$id_transaction)->get()->row();
        $this->data['supplier']                 = $this->db->select('*')->from('supplier')->order_by('id','ASC')->get()->result();
        $this->data['syarat_pembayaran']        = $this->db->select('*')->from('syarat_pembayaran')->where('status','0')->order_by('id','ASC')->get()->result();
        $this->data['transaction_detail']       = $this->db->select('*')->from('transaction_detail')->where('id_transaction',$id_transaction)->order_by('id','ASC')->get()->result();
        $this->data['count_transaction_detail'] = count($this->data['transaction_detail']);


        $config = $this->transaction_m->pemesanan_rules;

        $this->load->library('form_validation');
        $this->form_validation->set_error_delimiters('<div class="error">', '</div>'); //above is to add class to form validation error, to be styled

        $this->form_validation->set_rules($config); 
        $this->form_validation->set_error_delimiters('<div class="error">', '</div>');

        if($this->form_validation->run($this) == TRUE) {
            /*tabel transaction*/
            if($this->security->xss_clean($this->input->post('submit')) == 'save'){
                $transaction_status = '3';
                if($this->data['transaction']->transaction_status != 3){
                	$this->session->set_flashdata('success', '<br>
		                <p style="background:red; color:white; padding:5px; font-weight:bold;">Progress Failed</p>');
		            redirect('admin/pembelian/pemesanan');
                }
            }
            elseif($this->security->xss_clean($this->input->post('submit')) == 'ban'){
                $transaction_status = '2';
                if($this->data['transaction']->transaction_status != 3){
                	$this->session->set_flashdata('success', '<br>
		                <p style="background:red; color:white; padding:5px; font-weight:bold;">Progress Failed</p>');
		            redirect('admin/pembelian/pemesanan');
                }
            }
            elseif($this->security->xss_clean($this->input->post('submit')) == 'approve'){
                $transaction_status = '6';
                if($this->data['transaction']->transaction_status != 3){
                	$this->session->set_flashdata('success', '<br>
		                <p style="background:red; color:white; padding:5px; font-weight:bold;">Progress Failed</p>');
		            redirect('admin/pembelian/pemesanan');
                }
            }
            $transaction = array(
                'transaction_status'    => $transaction_status,
                'supplier_id'           => $this->security->xss_clean($this->input->post('supplier')),
                'no_referensi'          => $this->security->xss_clean($this->input->post('no_referensi')),
                'syarat_pembayaran_id'  => $this->security->xss_clean($this->input->post('syarat_pembayaran')),
                'tgl_jth_tempo'         => $this->security->xss_clean($this->input->post('tgl_jth_tempo')),
                'sub_total'             => $this->security->xss_clean($this->input->post('sub_total')),
                'diskon_per_baris'      => $this->security->xss_clean($this->input->post('diskon_per_baris')),
                'ppn_result'            => $this->security->xss_clean($this->input->post('ppn_value')),
                'total'                 => $this->security->xss_clean($this->input->post('total')),
            );
            $this->db->where('id_transaction',$id_transaction);
            $this->db->update('transaction',$transaction);
            /*tabel transaction*/

            /*tabel transaction detail*/
            $id_unit_convertion     = $this->security->xss_clean($this->input->post('id_unit_convertion'));
            $quantitas_beli         = $this->security->xss_clean($this->input->post('quantitas_beli'));
            $harga_satuan           = $this->security->xss_clean($this->input->post('harga_satuan'));
            $ppn_satuan             = $this->security->xss_clean($this->input->post('ppn_satuan'));
            $diskon_product         = $this->security->xss_clean($this->input->post('diskon_product'));
            $total_product          = $this->security->xss_clean($this->input->post('total_product'));
            
            for ($a=0; $a < $this->data['count_transaction_detail'] ; $a++) { 
                /*get id transaction_detail*/
                $id_transaction_detail  = $this->data['transaction_detail'][$a]->id;
                /*get id transaction_detail*/

                $satuan_beli_id = $this->db->select('satuan_beli_id')->from('unit_convertion')->where('id_unit_convertion',$id_unit_convertion[$a])->get()->row()->satuan_beli_id;
                $satuan_jual_id = $this->db->select('satuan_jual_id')->from('unit_convertion')->where('id_unit_convertion',$id_unit_convertion[$a])->get()->row()->satuan_jual_id;
                $transaction_detail = array(
                    'kuantitas_beli'    => $quantitas_beli[$a],
                    'satuan_beli_id'    => $satuan_beli_id,
                    'satuan_jual_id'    => $satuan_jual_id,
                    'harga_satuan'      => $harga_satuan[$a],
                    'diskon_satuan'     => $diskon_product[$a],
                    'ppn_satuan'        => $ppn_satuan[$a],
                    'jumlah_satuan'     => $total_product[$a],
                );
                /*update into transaction_detail*/
                $this->db->where('id',$id_transaction_detail);
                $this->db->update('transaction_detail',$transaction_detail);
                /*update into transaction_detail*/
            }
            /*tabel transaction detail*/

            if($this->security->xss_clean($this->input->post('submit')) == 'ban'){
            	$this->session->set_flashdata('success', '<br>
		            <p style="background:red; color:white; padding:5px; font-weight:bold;">Reject Pemesanan Success</p>');
		        redirect('admin/pembelian/pemesanan');
            }
            else{
            	$this->session->set_flashdata('success', '<br>
	                <p style="background:green; color:white; padding:5px; font-weight:bold;">Buat Pemesanan Success</p>');
	            redirect('admin/pembelian/pemesanan');	
            }
        }

    	//load view
		$this->data['subview'] = 'admin/pembelian_pemesanan/detail';
		$this->load->view('admin/templates/header', $this->data_header); 
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');
    }
    function reject_request($id_transaction){

        // if (!in_array('pembelian_pemesanan', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }

    	$this->data['transaction']	= $this->db->select('*')->from('transaction')->where('id_transaction',$id_transaction)->get()->row();
    	if($this->data['transaction']->transaction_status != 3){
    		$this->session->set_flashdata('success', '<br>
	            <p style="background:red; color:white; padding:5px; font-weight:bold;">Progress Failed</p>');
	        redirect('admin/pembelian/pemesanan');
    	}
    	$transaction = array(
    		'transaction_status'    => '2',
    	);
        $this->db->where('id_transaction',$id_transaction);
        $this->db->update('transaction',$transaction);
        $this->session->set_flashdata('success', '<br>
            <p style="background:red; color:white; padding:5px; font-weight:bold;">Reject Pemesanan Success</p>');
        redirect('admin/pembelian/pemesanan');
    }
    function generate_po_pdf($id) {
        error_reporting(0);
        //add PDF attachment DOMPDF 

        //get detail po
        $data['transaction']        = $this->db->select('*')->from('transaction')->where('id_transaction',$id)->get()->row();
        $data['transaction_detail'] = $this->db->select('*')->from('transaction_detail')->where('id_transaction',$id)->get()->result();
        $data['syarat_pembayaran']  = $this->db->select('syarat_pembayaran_name')->from('syarat_pembayaran')->where('id',$data['transaction']->syarat_pembayaran_id)->get()->row()->syarat_pembayaran_name;

        $data['warehouse']          = $this->db->select('*')->from('warehouse')->where('id',$data['transaction']->warehouse_id)->get()->row();
        $data['warehouse_province'] = $this->db->select('province')->from('indonesia_provinces')->where('id_indonesia_provinces',$data['warehouse']->id_province)->get()->row()->province;
        $data['warehouse_district'] = $this->db->select('district')->from('indonesia_districts')->where('rajaongkir_id_district',$data['warehouse']->id_district)->get()->row()->district;
        $data['warehouse_subdistrict'] = $this->db->select('subdistrict')->from('indonesia_subdistricts')->where('rajaongkir_id_subdistrict',$data['warehouse']->id_subdistrict)->get()->row()->subdistrict;

        $data['supplier']               = $this->db->select('*')->from('supplier')->where('id',$data['transaction']->supplier_id)->get()->row();
        $data['supplier_province']      = $this->db->select('province')->from('indonesia_provinces')->where('id_indonesia_provinces',$data['supplier']->supplier_province_id)->get()->row()->province;
        $data['supplier_district']      = $this->db->select('district')->from('indonesia_districts')->where('rajaongkir_id_district',$data['supplier']->supplier_district_id)->get()->row()->district;
        $data['supplier_subdistrict']   = $this->db->select('subdistrict')->from('indonesia_subdistricts')->where('id_indonesia_subdistricts',$data['supplier']->supplier_subdistrict_id)->get()->row()->subdistrict;

        $data['title'] = $data['transaction']->no_transaksi; 

        $this->db->select('logo')->from('configuration')->where('id_configuration', 1);
        $data['logo'] = $this->db->get()->row()->logo;

        $this->load->library('dompdf_gen');
        $html= $this->load->view('pesanan_pembelian_pdf', $data ,true);
        echo $html;die();
        $this->dompdf->load_html($html);
        $this->dompdf->render(); 
        $this->dompdf->stream('pesanan_pembelian.pdf', array("Attachment" => 0));
        $output = $this->dompdf->output(); 
        $file_to_save = 'uploads/pdf/pesanan_pembelian.pdf'; 
        file_put_contents($file_to_save, $output);  
    }




    function approval(){

        // if (!in_array('pembelian_approval', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }

    	$this->data['transaction'] = 
        $this->db
        ->select('*')
        ->from('transaction')
        ->where('(transaction_status = 4) OR (transaction_status = 5) OR (transaction_status = 6)')
        ->order_by('id_transaction','DESC')
        ->get()
        ->result();

        if($this->security->xss_clean($this->input->post('submit')) == 'approved'){
            $id_transaction 	= $this->security->xss_clean($this->input->post('id_transaction'));
            $checked_count 		= count($id_transaction);

            if ($id_transaction == null) {
            	$this->session->set_flashdata('success', '<br>
                <p style="background:red; color:white; padding:5px; font-weight:bold;">Not Found Transaction Checked</p>');
                redirect('admin/pembelian/approval');
            }
            else{
            	/*cek transaction_status*/
	            for ($a=0; $a < $checked_count ; $a++) { 
	            	$current_transaction_status = $this->db->select('transaction_status')->from('transaction')->where('id_transaction',$id_transaction[$a])->get()->row()->transaction_status;
	            	if($current_transaction_status != 6){
	            		$this->session->set_flashdata('success', '<br>
			                <p style="background:red; color:white; padding:5px; font-weight:bold;">Progress Failed</p>');
			            redirect('admin/pembelian/approval');
	            	}
	            }
	            /*cek transaction_status*/

	            $transaction_status = '5';

	            /*update transaction_status*/
	            for ($b=0; $b < $checked_count ; $b++) { 
	            	$transaction = array(
		                'transaction_status'    => $transaction_status,
		            );
		            $this->db->where('id_transaction',$id_transaction[$b]);
		            $this->db->update('transaction',$transaction);
	            }
	            /*update transaction_status*/

	            $this->session->set_flashdata('success', '<br>
	            	<p style="background:green; color:white; padding:5px; font-weight:bold;">Multiple Approved Success</p>');
	            redirect('admin/pembelian/approval');
            }
        }
        elseif($this->security->xss_clean($this->input->post('submit')) == 'rejected'){
            $id_transaction 	= $this->security->xss_clean($this->input->post('id_transaction'));
            $checked_count 		= count($id_transaction);

            if ($id_transaction == null) {
            	$this->session->set_flashdata('success', '<br>
                <p style="background:red; color:white; padding:5px; font-weight:bold;">Not Found Transaction Checked</p>');
                redirect('admin/pembelian/approval');
            }
            else{
            	/*cek transaction_status*/
	            for ($a=0; $a < $checked_count ; $a++) { 
	            	$current_transaction_status = $this->db->select('transaction_status')->from('transaction')->where('id_transaction',$id_transaction[$a])->get()->row()->transaction_status;
	            	if($current_transaction_status != 6){
	            		$this->session->set_flashdata('success', '<br>
			                <p style="background:red; color:white; padding:5px; font-weight:bold;">Progress Failed</p>');
			            redirect('admin/pembelian/approval');
	            	}
	            }
	            /*cek transaction_status*/

	            $transaction_status = '4';

	            /*update transaction_status*/
	            for ($b=0; $b < $checked_count ; $b++) { 
	            	$transaction = array(
		                'transaction_status'    => $transaction_status,
		            );
		            $this->db->where('id_transaction',$id_transaction[$b]);
		            $this->db->update('transaction',$transaction);
	            }
	            /*update transaction_status*/

	            $this->session->set_flashdata('success', '<br>
	            	<p style="background:red; color:white; padding:5px; font-weight:bold;">Multiple Rejected Success</p>');
	            redirect('admin/pembelian/approval');
            }
        }

    	//load view
		$this->data['subview'] = 'admin/pembelian_approval/index';
		$this->load->view('admin/templates/header', $this->data_header); 
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');
    }

    function approval_detail($id_transaction){

        //  if (!in_array('pembelian_approval', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }

    	$this->data['transaction']              = $this->db->select('*')->from('transaction')->where('id_transaction',$id_transaction)->get()->row();
        $this->data['supplier']                 = $this->db->select('*')->from('supplier')->order_by('id','ASC')->get()->result();
        $this->data['syarat_pembayaran']        = $this->db->select('*')->from('syarat_pembayaran')->order_by('id','ASC')->get()->result();
        $this->data['transaction_detail']       = $this->db->select('*')->from('transaction_detail')->where('id_transaction',$id_transaction)->order_by('id','ASC')->get()->result();

        if($this->security->xss_clean($this->input->post('submit')) == 'approved'){
            $transaction_status = '5';
            if($this->data['transaction']->transaction_status != 6){
            	$this->session->set_flashdata('success', '<br>
	                <p style="background:red; color:white; padding:5px; font-weight:bold;">Progress Failed</p>');
	            redirect('admin/pembelian/approval');
            }
            $transaction = array(
                'transaction_status'    => $transaction_status,
            );
            $this->db->where('id_transaction',$id_transaction);
            $this->db->update('transaction',$transaction);
            $this->session->set_flashdata('success', '<br>
                <p style="background:green; color:white; padding:5px; font-weight:bold;">'.$this->data['transaction']->no_transaksi.' Approved Success</p>');
            redirect('admin/pembelian/approval');
        }
        elseif($this->security->xss_clean($this->input->post('submit')) == 'rejected'){
            $transaction_status = '4';
            if($this->data['transaction']->transaction_status != 6){
            	$this->session->set_flashdata('success', '<br>
	                <p style="background:red; color:white; padding:5px; font-weight:bold;">Progress Failed</p>');
	            redirect('admin/pembelian/approval');
            }
            $transaction = array(
                'transaction_status'    => $transaction_status,
            );
            $this->db->where('id_transaction',$id_transaction);
            $this->db->update('transaction',$transaction);
            $this->session->set_flashdata('success', '<br>
                <p style="background:red; color:white; padding:5px; font-weight:bold;">'.$this->data['transaction']->no_transaksi.' Rejected Success</p>');
            redirect('admin/pembelian/approval');
        }
    	//load view
		$this->data['subview'] = 'admin/pembelian_approval/detail';
		$this->load->view('admin/templates/header', $this->data_header); 
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');
    }

    function penerimaan(){

        // if (!in_array('pembelian_penerimaan', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }

    	$this->data['transaction'] = $this->db->select('*')->from('transaction_receiving')->order_by('id','DESC')->get()->result();

    	//load view
		$this->data['subview'] = 'admin/pembelian_penerimaan/index';
		$this->load->view('admin/templates/header', $this->data_header); 
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');
    }
    function penerimaan_add(){

        //  if (!in_array('pembelian_penerimaan', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }

    	$this->data['transaction'] = $this->db->select('*')->from('transaction')->where('transaction_status','5')->get()->result();

    	$config = $this->transaction_m->penerimaan_rules;

        $this->load->library('form_validation');
        $this->form_validation->set_error_delimiters('<div class="error">', '</div>'); //above is to add class to form validation error, to be styled

        $this->form_validation->set_rules($config); 
        $this->form_validation->set_error_delimiters('<div class="error">', '</div>');

        if($this->form_validation->run($this) == TRUE) {
        	$id_transaction 	= $this->security->xss_clean($this->input->post('id_transaction'));

        	/*cek transaction_status*/
        	$transaction_status = $this->db->select('transaction_status')->from('transaction')->where('id_transaction',$id_transaction)->get()->row()->transaction_status;
        	if($transaction_status != 5){
        		$this->session->set_flashdata('success', '<br>
	                <p style="background:red; color:white; padding:5px; font-weight:bold;">Progress Failed</p>');
	            redirect('admin/pembelian/penerimaan');
        	}
        	/*cek transaction_status*/

        	/*get all current transaction detail*/
        	$current_qty_beli 		= $this->db->select('*')->from('transaction_detail')->where('id_transaction',$id_transaction)->order_by('id','ASC')->get()->result();
        	$count_current_qty_beli	= count($current_qty_beli);
        	/*get all current transaction detail*/

        	/*get all coming qty*/
        	$coming_qty			= $this->input->post('coming_qty');
        	/*get all coming qty*/

        	/*cek submit*/
        	$submit 			= $this->input->post('submit');
        	if($submit == 'save'){
        		/*cek current save draft*/
        		$cek_current_save = $this->db->select('*')->from('transaction_receiving')->where('transaction_id',$id_transaction)->where('status_penerimaan','7')->get()->result();
        		if($cek_current_save != null){
        			$this->session->set_flashdata('success', '<br>
        				<p style="background:red; color:white; padding:5px; font-weight:bold;">Already Save for This Transaction, Save as Draft Failed</p>');
        			redirect('admin/pembelian/penerimaan');
        		}
        		/*cek current save draft*/

        		/*cek current closed transaction*/
        		$cek_current_closed = $this->db->select('*')->from('transaction_receiving')->where('transaction_id',$id_transaction)->where('status_penerimaan','9')->get()->result();
        		if($cek_current_closed != null){
        			$this->session->set_flashdata('success', '<br>
        				<p style="background:red; color:white; padding:5px; font-weight:bold;">This Transaction Already Closed</p>');
        			redirect('admin/pembelian/penerimaan');
        		}
        		/*cek current closed transaction*/

        		$status_penerimaan = 7;
        		$this->session->set_flashdata('success', '<br>
	    		<p style="background:green; color:white; padding:5px; font-weight:bold;">Save as Draft Penerimaan Berhasil</p>');
        	}
        	elseif($submit == 'confirm'){

        		/*cek partially sent or closed*/
	        	$cek_partially_sent = 0;
	    		for ($a=0; $a < $count_current_qty_beli; $a++) { 
	    			if($current_qty_beli[$a]->kuantitas_beli_penerimaan != 0){
	    				if(($coming_qty[$a]+$current_qty_beli[$a]->kuantitas_beli_penerimaan) < $current_qty_beli[$a]->kuantitas_beli){
		        			$cek_partially_sent = $cek_partially_sent + 1;
		        		}
	    			}
	    			else{
	    				if($coming_qty[$a] < $current_qty_beli[$a]->kuantitas_beli){
		        			$cek_partially_sent = $cek_partially_sent + 1;
		        		}
	    			}
	        	}
	        	if($cek_partially_sent > 0){
	        		$status_penerimaan = 8;
	        	}
	        	else{
	        		/*cek current closed transaction*/
	        		$cek_current_closed = $this->db->select('*')->from('transaction_receiving')->where('transaction_id',$id_transaction)->where('status_penerimaan','9')->get()->result();
	        		if($cek_current_closed != null){
	        			$this->session->set_flashdata('success', '<br>
	        				<p style="background:red; color:white; padding:5px; font-weight:bold;">This Transaction Already Closed</p>');
	        			redirect('admin/pembelian/penerimaan');
	        		}
	        		/*cek current closed transaction*/
	        		$status_penerimaan = 9;
	        	}
	        	/*cek partially sent or closed*/

        		$this->session->set_flashdata('success', '<br>
	    		<p style="background:green; color:white; padding:5px; font-weight:bold;">Konfirmasi Penerimaan Berhasil</p>');
        	}
        	else{
        		$this->session->set_flashdata('success', '<br>
	                <p style="background:red; color:white; padding:5px; font-weight:bold;">Progress Failed</p>');
	            redirect('admin/pembelian/penerimaan');
        	}
        	/*cek submit*/

        	/*get current transaction number*/
            error_reporting(0);
            $t_number = $this->db->select('no_ttb')->from('transaction_receiving')->order_by('id','DESC')->get()->row()->no_ttb;
            if($t_number == null){
                $transaction_number = '1';
            }
            else{
                $current = substr($t_number,17,4);
                $transaction_number = $current + 1;
            }
            $no_transaksi = '#TTB/SSS/'.date("m").'/'.date("Y").'/'.$transaction_number;	
            /*get current transaction number*/

            /*insert into transaction_receiving*/

        	$transaction_receiving = array(
        		'no_ttb' 			=> $no_transaksi,
        		'status_penerimaan' => $status_penerimaan,
	    		'transaction_id' 	=> $id_transaction,
	    		'ongkos_pengiriman' => $this->security->xss_clean($this->input->post('ongkos_pengiriman'))
	    	);
	    	$transaction_receiving_id = (int) $this->transaction_m->add_transaction_receiving($transaction_receiving);
	    	/*insert into transaction_receiving*/

	    	/*insert into transaction_receiving_detail*/
	    	for ($b=0; $b < $count_current_qty_beli  ; $b++) { 
	    		$transaction_receiving_detail = array(
		    		'transaction_receiving_id' 	=> $transaction_receiving_id, 
		    		'qty_receiving'				=> $coming_qty[$b]
		    	);
		    	$this->db->insert('transaction_receiving_detail',$transaction_receiving_detail);
	    	}
	    	/*insert into transaction_receiving_detail*/

	    	/*update into transaction_detail*/
	    	if($submit == 'confirm'){
	    		for ($c=0; $c < $count_current_qty_beli; $c++) { 
	    			if($current_qty_beli[$c]->kuantitas_beli_penerimaan != 0){
	    				$qty_coming = $current_qty_beli[$c]->kuantitas_beli_penerimaan + $coming_qty[$c];
	    			}
	    			else{
	    				$qty_coming = $coming_qty[$c];
	    			}
		    		$transaction_receiving_detail = array(
			    		'kuantitas_beli_penerimaan' => $qty_coming, 
			    	);
			    	$this->db->where('id_product',$current_qty_beli[$c]->id_product);
			    	$this->db->where('id_transaction',$id_transaction);
			    	$this->db->update('transaction_detail',$transaction_receiving_detail);
		    	}
	    	}
	    	/*update into transaction_detail*/

            /*update stock*/
            $warehouse_id       = $this->db->select('warehouse_id')->from('transaction')->where('id_transaction',$id_transaction)->get()->row()->warehouse_id;
            $id_product         = $this->db->select('id_product')->from('transaction_detail')->where('id_transaction',$id_transaction)->order_by('id','ASC')->get()->result();
            $count_product_stock= count($id_product);
            for ($d=0; $d < $count_product_stock; $d++) { 
                $current_stock  = $this->db->select('stock')->from('stock')->where('id_product',$id_product[$d]->id_product)->where('warehouse_id',$warehouse_id)->get()->row()->stock;
                if($current_stock != null){
                    $final_stock    = $current_stock + $coming_qty[$d];
                    $final_stock1   = array(
                        'stock' => $final_stock, 
                    );
                    $this->db->where('id_product',$id_product[$d]->id_product)->where('warehouse_id',$warehouse_id);
                    $this->db->update('stock',$final_stock1);
                }
                else{
                    $final_stock= $coming_qty[$d];
                    $final_stock1   = array(
                        'id_product'    => $id_product[$d]->id_product,
                        'warehouse_id'  => $warehouse_id,   
                        'stock'         => $final_stock, 
                    );
                    $this->db->insert('stock',$final_stock1);
                }
            }
            /*update stock*/

	    	redirect('admin/pembelian/penerimaan');
        }

    	//load view
		$this->data['subview'] = 'admin/pembelian_penerimaan/detail';
		$this->load->view('admin/templates/header', $this->data_header); 
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');
    }

    function penerimaan_detail($id_transaction_receiving){

        // if (!in_array('pembelian_penerimaan', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }


    	error_reporting(0);
    	$this->data['current_transaction_receiving']= 'yes';

    	$this->data['transaction_receiving'] 		= $this->db->select('*')->from('transaction_receiving')->where('id',$id_transaction_receiving)->get()->row();
    	$this->data['transaction_receiving_detail']	= $this->db->select('*')->from('transaction_receiving_detail')->where('transaction_receiving_id',$id_transaction_receiving)->get()->result();

		$this->data['transaction']					= $this->db->select('*')->from('transaction')->where('id_transaction',$this->data['transaction_receiving']->transaction_id)->get()->row();
		$this->data['supplier']						= $this->db->select('*')->from('supplier')->where('id',$this->data['transaction']->supplier_id)->get()->row();
		$this->data['transaction_detail']			= $this->db->select('*')->from('transaction_detail')->where('id_transaction',$this->data['transaction_receiving']->transaction_id)->get()->result();
		$this->data['syarat_pembayaran']			= $this->db->select('syarat_pembayaran_name')->from('syarat_pembayaran')->where('id',$this->data['transaction']->syarat_pembayaran_id)->get()->row()->syarat_pembayaran_name;
		$this->data['warehouse'] 					= $this->db->select('name')->from('warehouse')->where('id',$this->data['transaction']->warehouse_id)->get()->row()->name;

		$config = $this->transaction_m->penerimaan_rules;

        $this->load->library('form_validation');
        $this->form_validation->set_error_delimiters('<div class="error">', '</div>'); //above is to add class to form validation error, to be styled

        $this->form_validation->set_rules($config); 
        $this->form_validation->set_error_delimiters('<div class="error">', '</div>');

        if($this->form_validation->run($this) == TRUE) {
        	$id_transaction 	= $this->data['transaction_receiving']->transaction_id;

        	/*cek transaction_status*/
        	$transaction_status = $this->db->select('transaction_status')->from('transaction')->where('id_transaction',$id_transaction)->get()->row()->transaction_status;
        	if($transaction_status != 5){
        		$this->session->set_flashdata('success', '<br>
	                <p style="background:red; color:white; padding:5px; font-weight:bold;">Progress Failed</p>');
	            redirect('admin/pembelian/penerimaan');
        	}
        	/*cek transaction_status*/

        	/*get all current transaction detail*/
        	$current_qty_beli 		= $this->db->select('*')->from('transaction_detail')->where('id_transaction',$id_transaction)->order_by('id','ASC')->get()->result();
        	$count_current_qty_beli	= count($current_qty_beli);
        	/*get all current transaction detail*/

        	/*get all coming qty*/
        	$coming_qty			= $this->input->post('coming_qty');
        	/*get all coming qty*/

        	/*cek submit*/
        	$submit 			= $this->input->post('submit');
        	if($submit == 'save'){
        		/*cek current closed transaction*/
        		$cek_current_closed = $this->db->select('*')->from('transaction_receiving')->where('transaction_id',$id_transaction)->where('status_penerimaan','9')->get()->result();
        		if($cek_current_closed != null){
        			$this->session->set_flashdata('success', '<br>
        				<p style="background:red; color:white; padding:5px; font-weight:bold;">This Transaction Already Closed</p>');
        			redirect('admin/pembelian/penerimaan');
        		}
        		/*cek current closed transaction*/

        		$status_penerimaan = 7;
        		$this->session->set_flashdata('success', '<br>
	    		<p style="background:green; color:white; padding:5px; font-weight:bold;">Save as Draft Penerimaan Berhasil</p>');
        	}
        	elseif($submit == 'confirm'){

        		/*cek partially sent or closed*/
	        	$cek_partially_sent = 0;
	    		for ($a=0; $a < $count_current_qty_beli; $a++) { 
	    			if($current_qty_beli[$a]->kuantitas_beli_penerimaan != 0){
	    				if(($coming_qty[$a]+$current_qty_beli[$a]->kuantitas_beli_penerimaan) < $current_qty_beli[$a]->kuantitas_beli){
		        			$cek_partially_sent = $cek_partially_sent + 1;
		        		}
	    			}
	    			else{
	    				if($coming_qty[$a] < $current_qty_beli[$a]->kuantitas_beli){
		        			$cek_partially_sent = $cek_partially_sent + 1;
		        		}
	    			}
	        	}
	        	if($cek_partially_sent > 0){
	        		$status_penerimaan = 8;
	        	}
	        	else{
	        		/*cek current closed transaction*/
	        		$cek_current_closed = $this->db->select('*')->from('transaction_receiving')->where('transaction_id',$id_transaction)->where('status_penerimaan','9')->get()->result();
	        		if($cek_current_closed != null){
	        			$this->session->set_flashdata('success', '<br>
	        				<p style="background:red; color:white; padding:5px; font-weight:bold;">This Transaction Already Closed</p>');
	        			redirect('admin/pembelian/penerimaan');
	        		}
	        		/*cek current closed transaction*/
	        		$status_penerimaan = 9;
	        	}
	        	/*cek partially sent or closed*/

        		$this->session->set_flashdata('success', '<br>
	    		<p style="background:green; color:white; padding:5px; font-weight:bold;">Konfirmasi Penerimaan Berhasil</p>');
        	}
        	else{
        		$this->session->set_flashdata('success', '<br>
	                <p style="background:red; color:white; padding:5px; font-weight:bold;">Progress Failed</p>');
	            redirect('admin/pembelian/penerimaan');
        	}
        	/*cek submit*/

            /*update into transaction_receiving*/
        	$transaction_receiving = array(
        		'status_penerimaan' => $status_penerimaan,
	    		'ongkos_pengiriman' => $this->security->xss_clean($this->input->post('ongkos_pengiriman'))
	    	);
	    	$this->db->where('id',$id_transaction_receiving);
	    	$this->db->update('transaction_receiving',$transaction_receiving);
	    	/*update into transaction_receiving*/

	    	/*update into transaction_receiving_detail*/
	    	for ($b=0; $b < $count_current_qty_beli  ; $b++) { 
	    		$transaction_receiving_detail = array(
		    		'qty_receiving'				=> $coming_qty[$b]
		    	);
		    	$this->db->where('id',$this->data['transaction_receiving_detail'][$b]->id);
		    	$this->db->update('transaction_receiving_detail',$transaction_receiving_detail);
	    	}
	    	/*update into transaction_receiving_detail*/

	    	/*update into transaction_detail*/
	    	if($submit == 'confirm'){
	    		for ($c=0; $c < $count_current_qty_beli; $c++) { 
	    			if($current_qty_beli[$c]->kuantitas_beli_penerimaan != 0){
	    				$qty_coming = $current_qty_beli[$c]->kuantitas_beli_penerimaan + $coming_qty[$c];
	    			}
	    			else{
	    				$qty_coming = $coming_qty[$c];
	    			}
		    		$transaction_receiving_detail = array(
			    		'kuantitas_beli_penerimaan' => $qty_coming, 
			    	);
			    	$this->db->where('id_product',$current_qty_beli[$c]->id_product);
			    	$this->db->where('id_transaction',$id_transaction);
			    	$this->db->update('transaction_detail',$transaction_receiving_detail);
		    	}
	    	}
	    	/*update into transaction_detail*/

	    	redirect('admin/pembelian/penerimaan');
        }

    	//load view
		$this->data['subview'] = 'admin/pembelian_penerimaan/detail';
		$this->load->view('admin/templates/header', $this->data_header); 
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');
    }


    function faktur(){

        // if (!in_array('pembelian_faktur', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }

        $this->data['transaction']  = $this->db->select('*')->from('transaction_faktur')->where('(status_faktur = 11) OR (status_faktur = 12) OR (status_faktur = 13) OR (status_faktur = 14)')->order_by('id','DESC')->get()->result();

    	//load view
		$this->data['subview'] = 'admin/pembelian_faktur/index';
		$this->load->view('admin/templates/header', $this->data_header); 
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');
    }

    function faktur_add(){

        // if (!in_array('pembelian_faktur', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }

        $this->data['no_ttb'] = $this->db->select('*')->from('transaction_receiving')->where('(status_penerimaan = 8) OR (status_penerimaan = 9)')->get()->result();

        $config = $this->transaction_m->faktur_rules;

        $this->load->library('form_validation');
        $this->form_validation->set_error_delimiters('<div class="error">', '</div>'); //above is to add class to form validation error, to be styled

        $this->form_validation->set_rules($config); 
        $this->form_validation->set_error_delimiters('<div class="error">', '</div>');

        if($this->form_validation->run($this) == TRUE) {
            $id_transaction_receiving = $this->security->xss_clean($this->input->post('id_transaction_receiving'));

            /*get current transaction number*/
            error_reporting(0);
            $t_number = $this->db->select('no_faktur')->from('transaction_faktur')->order_by('id','DESC')->get()->row()->no_faktur;
            if($t_number == null){
                $transaction_number = '1';
            }
            else{
                $current = substr($t_number,16,4);
                $transaction_number = $current + 1;
            }
            $no_faktur = '#FP/SSS/'.date("m").'/'.date("Y").'/'.$transaction_number;    
            /*get current transaction number*/

            $transaction_faktur = array(
                'no_faktur'                 => $no_faktur, 
                'status_faktur'             => '12',
                'transaction_receiving_id'  => $id_transaction_receiving,
                'sub_total'                 => $this->security->xss_clean($this->input->post('sub_total')),
                'diskon_per_baris'          => $this->security->xss_clean($this->input->post('diskon_per_baris')),
                'ppn_result'                => $this->security->xss_clean($this->input->post('ppn_value')),
                'total'                     => $this->security->xss_clean($this->input->post('total')),
                'ongkos_kirim'              => $this->security->xss_clean($this->input->post('ongkos_kirim')),
                'sisa_tagihan'              => $this->security->xss_clean($this->input->post('sisa_tagihan')),
            );
            $transaction_faktur_id = (int) $this->transaction_m->add_transaction_faktur($transaction_faktur);

            /*update ongkos_kirim*/
            $ongkos_kirim = array(
                'ongkos_pengiriman' => $this->security->xss_clean($this->input->post('ongkos_kirim')), 
            );
            $this->db->where('id',$id_transaction_receiving);
            $this->db->update('transaction_receiving',$ongkos_kirim);
            /*update ongkos_kirim*/

            /*update status penerimaan*/
            $current_status = $this->db->select('status_penerimaan')->from('transaction_receiving')->where('id',$id_transaction_receiving)->get()->row()->status_penerimaan;
            if($current_status == 8){
                $status_penerimaan = array(
                    'status_penerimaan' => 10, 
                );
                $this->db->where('id',$id_transaction_receiving);
                $this->db->update('transaction_receiving',$status_penerimaan);
            }
            elseif($current_status == 9){
                $status_penerimaan = array(
                    'status_penerimaan' => 11, 
                );
                $this->db->where('id',$id_transaction_receiving);
                $this->db->update('transaction_receiving',$status_penerimaan);
            }
            /*update status penerimaan*/

            $this->session->set_flashdata('success', '<br>
                <p style="background:green; color:white; padding:5px; font-weight:bold;">New Faktur Created</p>');
            redirect('admin/pembelian/faktur');
        }

        //load view
        $this->data['subview'] = 'admin/pembelian_faktur/detail';
        $this->load->view('admin/templates/header', $this->data_header); 
        $this->load->view('admin/_layout_main', $this->data);
        $this->load->view('admin/templates/footer');
    }
    function faktur_detail($id_transaction_faktur){

        //  if (!in_array('pembelian_faktur', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }

        $this->data['current_faktur'] = "yes";

        $this->data['transaction_faktur']       = $this->db->select('*')->from('transaction_faktur')->where('id',$id_transaction_faktur)->get()->row();

        $this->data['transaction_receiving']    = $this->db->select('*')->from('transaction_receiving')->where('id',$this->data['transaction_faktur']->transaction_receiving_id)->get()->row();
        $this->data['transaction_receiving_detail'] = $this->db->select('*')->from('transaction_receiving_detail')->where('transaction_receiving_id',$this->data['transaction_receiving']->id)->get()->result();

        $this->data['transaction']              = $this->db->select('*')->from('transaction')->where('id_transaction',$this->data['transaction_receiving']->transaction_id)->get()->row();
        $this->data['transaction_detail']       = $this->db->select('*')->from('transaction_detail')->where('id_transaction',$this->data['transaction']->id_transaction)->get()->result();

        $this->data['supplier']                 = $this->db->select('*')->from('supplier')->where('id',$this->data['transaction']->supplier_id)->get()->row();
        $this->data['syarat_pembayaran_name']   = $this->db->select('syarat_pembayaran_name')->from('syarat_pembayaran')->where('id',$this->data['transaction']->syarat_pembayaran_id)->get()->row()->syarat_pembayaran_name;
        $this->data['warehouse']                = $this->db->select('name')->from('warehouse')->where('id',$this->data['transaction']->warehouse_id)->get()->row()->name;
        
    	//load view
		$this->data['subview'] = 'admin/pembelian_faktur/detail';
		$this->load->view('admin/templates/header', $this->data_header); 
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');
    }
    function faktur_paid($id_transaction_faktur){

        // if (!in_array('pembelian_faktur', $this->data['allowed_module'])) {
        //     $this->data['allowed'] = false;
        // } else {
        //     $this->data['allowed'] = true;
        // }

        $transaction = array(
            'status_faktur'    => '13',
        );
        $this->db->where('id',$id_transaction_faktur);
        $this->db->update('transaction_faktur',$transaction);
        $this->session->set_flashdata('success', '<br>
            <p style="background:green; color:white; padding:5px; font-weight:bold;">Confirm Faktur Success</p>');
        redirect('admin/pembelian/faktur');
    }


    /*ajax request*/
    function ajax_get_unit_convertion(){
        $id_products               = (int) $this->input->post('id_product');
        $data['unit_convertion']   = 
        $this->db
        ->select('*')
        ->from('unit_convertion')
        ->where('product_id',$id_products)
        ->get()
        ->result();
        $this->load->view('admin/pembelian_request/ajax_get_unit_convertion', $data);
    }
    function ajax_get_stock(){
        error_reporting(0);
        $id_products    = (int) $this->input->post('id_product');
        $id_warehouse   = (int) $this->input->post('id_warehouse');
        $stock          = 0;
        $stocks         = $this->db->select('stock')->from('stock')->where('id_product',$id_products)->where('warehouse_id',$id_warehouse)->get()->row()->stock;
        if ($stocks != null) {
            $stock = $stocks;
        }
        else{
            $stock = $stock;
        }
        echo $stock;
    }
    function ajax_get_unit_convertion_result(){
    	error_reporting(0);
        $id_uc      = (int) $this->input->post('id_uc');
        $qtybeli    = (int) $this->input->post('qtybeli');
        $konversi   = $this->db->select('konversi')->from('unit_convertion')->where('id_unit_convertion',$id_uc)->get()->row()->konversi;
        $hasil      = $konversi * $qtybeli;
        echo $hasil;
    }
    function ajax_get_title_sale() {
        error_reporting(0);
        $id_uc          = (int) $this->input->post('id_uc');
        $satuan_beli_id = $this->db->select('satuan_beli_id')->from('unit_convertion')->where('id_unit_convertion',$id_uc)->get()->row()->satuan_beli_id;
        $name           = $this->db->select('conversion')->from('conversion')->where('id_conversion',$satuan_beli_id)->get()->row()->conversion;
        echo '/ '.$name;
    }
    /*ajax request*/

    /*ajax pemesanan*/
    function ajax_get_supplier_detail(){
        error_reporting(0);
        $id_supplier        = (int) $this->input->post('id_supplier');
        $address            = $this->db->select('*')->from('supplier')->where('id',$id_supplier)->get()->row();
        $result['address']  = $address->supplier_address;
        $result['email']    = $address->supplier_email;
        echo json_encode($result);
    }
    function ajax_set_tgl_jth_tempo(){
        error_reporting(0);
        $id_syarat_pembayaran       = (int) $this->input->post('id_syarat_pembayaran');
        $value                      = $this->db->select('syarat_pembayaran_value')->from('syarat_pembayaran')->where('id',$id_syarat_pembayaran)->get()->row()->syarat_pembayaran_value;
        $date_now                   = date('Y-m-d');
        $tgl_jth_tempo              = date('Y-m-d', strtotime('+'.$value.' days', strtotime($date_now)));
        echo $tgl_jth_tempo;
    }
    /*ajax pemesanan*/

    /*ajax penerimaan*/
    function ajax_penerimaan_get_supplier_detail(){
    	$id_transaction 	= (int) $this->input->post('id_transaction');
    	$id_supplier 		= $this->db->select('supplier_id')->from('transaction')->where('id_transaction',$id_transaction)->get()->row()->supplier_id;
    	$data['supplier']   = $this->db->select('*')->from('supplier')->where('id',$id_supplier)->get()->row();
    	$data['transaction']= $this->db->select('*')->from('transaction')->where('id_transaction',$id_transaction)->get()->row();
    	$data['warehouse']	= $this->db->select('name')->from('warehouse')->where('id',$data['transaction']->warehouse_id)->get()->row();
    	echo json_encode($data);
    }
    function ajax_penerimaan_get_syarat_pembayaran(){
    	$id_transaction 				= (int) $this->input->post('id_transaction');
    	$data['syarat_pembayaran_id']	= $this->db->select('syarat_pembayaran_id')->from('transaction')->where('id_transaction',$id_transaction)->get()->row()->syarat_pembayaran_id;
    	$data['syarat_pembayaran']		= $this->db->select('*')->from('syarat_pembayaran')->order_by('id','ASC')->get()->result();
    	$this->load->view('admin/pembelian_penerimaan/ajax_penerimaan_get_syarat_pembayaran', $data);
    }
    function ajax_penerimaan_get_transaction_detail(){
    	$id_transaction 				= (int) $this->input->post('id_transaction');
    	$data['transaction']			= $this->db->select('warehouse_id')->from('transaction')->where('id_transaction',$id_transaction)->get()->row()->warehouse_id;
    	$data['transaction_detail']		= $this->db->select('*')->from('transaction_detail')->where('id_transaction',$id_transaction)->order_by('id','ASC')->get()->result();
    	$this->load->view('admin/pembelian_penerimaan/ajax_penerimaan_get_transaction_detail', $data);   
    }
    /*ajax penerimaan*/

    /*ajax faktur*/
    function ajax_faktur_get_transaction(){
    	$id_ttb 								= (int) $this->input->post('id_ttb');

        /*get all data transaction_receiving*/
    	$data['transaction_receiving']			= $this->db->select('*')->from('transaction_receiving')->where('id',$id_ttb)->get()->row();
        $data['transaction_receiving_detail']   = $this->db->select('*')->from('transaction_receiving_detail')->where('transaction_receiving_id',$id_ttb)->get()->result();
        /*get all data transaction_receiving*/

        /*get all data transaction*/
    	$data['transaction']					= $this->db->select('*')->from('transaction')->where('id_transaction',$data['transaction_receiving']->transaction_id)->get()->row();
        $data['transaction_detail']             = $this->db->select('*')->from('transaction_detail')->where('id_transaction',$data['transaction_receiving']->transaction_id)->get()->result();
        $data['count_transaction']              = count($data['transaction_detail']);
        /*get all data transaction*/

    	$data['supplier'] 						= $this->db->select('*')->from('supplier')->where('id',$data['transaction']->supplier_id)->get()->row();
    	$data['syarat_pembayaran']				= $this->db->select('syarat_pembayaran_name')->from('syarat_pembayaran')->where('id',$data['transaction']->syarat_pembayaran_id)->get()->row()->syarat_pembayaran_name;
    	$data['warehouse'] 						= $this->db->select('name')->from('warehouse')->where('id',$data['transaction']->warehouse_id)->get()->row()->name;
    	echo json_encode($data);
    }
    function ajax_faktur_get_transaction_detail(){
        $id_ttb                                 = (int) $this->input->post('id_ttb');
        $transaction_receiving                  = $this->db->select('*')->from('transaction_receiving')->where('id',$id_ttb)->get()->row();
        $data['transaction_receiving_detail']   = $this->db->select('*')->from('transaction_receiving_detail')->where('transaction_receiving_id',$id_ttb)->get()->result();
        $data['transaction']                    = $this->db->select('*')->from('transaction')->where('id_transaction',$transaction_receiving->transaction_id)->get()->row();
        $data['transaction_detail']             = $this->db->select('*')->from('transaction_detail')->where('id_transaction',$data['transaction']->id_transaction)->get()->result();
        $this->load->view('admin/pembelian_faktur/ajax_faktur_get_transaction_detail', $data);
    }
    /*ajax faktur*/
    		
}

https://t.me/RX1948 - 2025