Advertisement
ekoyusufp

Controller New

Jan 24th, 2017
368
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 9.41 KB | None | 0 0
  1. <?php
  2.  
  3. defined('BASEPATH') OR exit('No direct script access allowed');
  4.  
  5. /**
  6.  * POS API
  7.  * @version 1.0
  8.  * Egi adtya
  9.  */
  10. include_once(APPPATH.'core/API_Controller.php');
  11.  
  12. class V1 extends API_Controller {
  13.    
  14.     public function __construct() {
  15.         parent::__construct();
  16.          $this->load->model(array(
  17.             'api_model/Sales_m',
  18.             'api_model/User_m'
  19.         ));
  20.     }
  21.  
  22.     public function login_post(){
  23.         $user_id = $this->post('user_id');
  24.         $user_pass = $this->post('user_pass');
  25.         @$user = $this->User_m->get_login($user_id, $user_pass);
  26.            if ($user->num_rows() > 0) {
  27.                $user = $user->row();
  28.                $user_data = array(
  29.                    'user_id' => $user->UserID,
  30.                    'user_name' => $user->Name,
  31.                    'store_id' => $user->StoreID,
  32.                    'store' => $user->Description,
  33.                    'brand' => $user->Brand,
  34.                    'type' => $user->Type
  35.                 );
  36.                $this->set_response_message('Login Berhasil');
  37.                $this->api_response($user_data, 200);
  38.            }else{
  39.                $this->set_response_message('Salah memasukan User ID atau password');
  40.                $this->api_response(NULL, 400);                    
  41.            }
  42.     }
  43.  
  44.     public function login_get(){
  45.         $user_id = $this->get('user_id');
  46.         $user_pass = $this->get('user_pass');
  47.         @$user = $this->User_m->get_login($user_id, $user_pass);
  48.            if ($user->num_rows() > 0) {
  49.                $user = $user->row();
  50.                $user_data = array(
  51.                    'user_id' => $user->UserID,
  52.                    'user_name' => $user->Name,
  53.                    'store_id' => $user->StoreID,
  54.                    'store' => $user->Description,
  55.                    'brand' => $user->Brand,
  56.                    'type' => $user->Type
  57.                 );
  58.                $this->set_response_message('Login Berhasil');
  59.                $this->api_response($user_data, 200);
  60.            }else{
  61.                $this->set_response_message('Salah memasukan User ID atau password');
  62.                $this->api_response(NULL, 400);                    
  63.            }
  64.     }
  65.  
  66.     public function sales_get() {
  67.         $store_id = $this->get("store_id");
  68.         $from_date = $this->get("from_date");
  69.         $to_date = $this->get("to_date");
  70.         $user_id = $this->get("user_id");
  71.         @$sales = $this->Sales_m->get_sales_by_date($store_id,$from_date,$to_date,$user_id);
  72.        
  73.         if($sales->num_rows() > 0){
  74.             $sales_result = array();
  75.             foreach ($sales->result() as $sale) {
  76.                 $sales_detail = $this->Sales_m->get_sales_detail($sale->SaleID)->result();
  77.                 $sales_result[] = array(
  78.                     "sale_id" => $sale->SaleID,
  79.                     "store_id" => $sale->StoreID,
  80.                     "user_id" => $sale->UserID,
  81.                     "date" => $sale->Date,
  82.                     "approve_date" => $sale->ApproveDate,
  83.                     "amount" => $sale->Amount,
  84.                     "discount" => $sale->Discount,
  85.                     "total" => $sale->Total,
  86.                     "is_approved" => $sale->Approve == 1 ? true :false,
  87.                     "approve_by" => $sale->ApproveBy,
  88.                     "transaction_item" => $sales_detail
  89.                 );
  90.             }
  91.             $data['data'] = $sales_result;
  92.             $this->api_response($data, 200);
  93.         } else {
  94.             $this->set_response_message('Couldn\'t find any sales');
  95.            $this->api_response(NULL, 404);
  96.        }
  97.    }    
  98.  
  99.    public function style_get(){
  100.         $brand = $this->get("brand");
  101.         $styles = $this->Sales_m->get_style($brand);
  102.         if($styles->num_rows() > 0){
  103.             $data['data'] = $styles->result();
  104.            $this->api_response($data, 200);
  105.         } else {
  106.            $this->set_response_message('Couldn\'t find any style');
  107.            $this->api_response(NULL, 404);
  108.        }
  109.    }  
  110.  
  111.    public function sku_get(){
  112.         $sku = $this->Sales_m->get_sku();
  113.         if($sku->num_rows() > 0){
  114.             $data['data'] = $sku->result();
  115.            $this->api_response($data, 200);
  116.         } else {
  117.            $this->set_response_message('Couldn\'t find any sku');
  118.            $this->api_response(NULL, 404);
  119.        }
  120.    }
  121.  
  122.    public function sales_post(){
  123.         $input = file_get_contents('php://input');
  124.        $input = json_decode($input, TRUE);
  125.         $date = new DateTime($input["date"]);
  126.        $no_sale_flag = $input['no_sale'] ? "n" : "";
  127.        $last_id = $this->Sales_m->get_last_sales_id($input["store_id"],$date->format('Ym'));
  128.        if ($last_id != null) {
  129.             $last_increment = substr($last_id->SaleID, -6) + 10;
  130.        }else{
  131.             $last_increment = 10;
  132.        }      
  133.        $sales_head = array(
  134.             "SaleID" =>$input["store_id"].$date->format('ym').sprintf("%06d", $last_increment).$no_sale_flag,
  135.             "StoreID" => $input["store_id"],
  136.             "Date" => $date->format("Y-m-d H:i:s"),
  137.             "UserID" => $input["user_id"],
  138.             "Amount" =>$input["total"],
  139.             "Total" => $input["total"],
  140.             "SourceID" => 5,
  141.             "Approve" => 1,
  142.            "ApproveBy" => $input["user_id"],
  143.            "ApproveDate" => $date->format("Y-m-d H:i:s"),
  144.            "SysDate" => $date->format("Y-m-d H:i:s"),
  145.             "Currency" => "IDR"
  146.             );
  147.        if ($this->Sales_m->save_sales_head($sales_head)) {
  148.             $item_index = 1;
  149.             foreach ($input["transaction_item"] as $item) {
  150.                 $sales_detail = array(
  151.                    "SaleID" =>$input["store_id"].$date->format('ym').sprintf("%06d", $last_increment),
  152.                    "StyleID" => $item["style_no"],
  153.                    "Quantity" => 1,
  154.                    "SKUCode" => $item["sku_no"],
  155.                    "Price" =>$item["price"],
  156.                    "Discount" =>(($item["price"]-$item["qty"])/$item["price"])*100,
  157.                    "Amount" => $item["amount"],
  158.                    "IDDet" => $item_index++
  159.                    );
  160.                 $this->Sales_m->save_sales_detail($sales_detail);
  161.             }
  162.            $payment = array(
  163.                "SaleID" => $input["store_id"].$date->format('ym').sprintf("%06d", $last_increment),
  164.                "PaymentID" => 1,
  165.                "Refference" => 1,
  166.                "Remarks" => $input['remarks'],
  167.                "IDDet" => 1,
  168.                "Amount" =>$input["total"],
  169.                "Quantity" => $input["total"],
  170.                "BankID" => "BCA"
  171.                    );
  172.            if (!$input['no_sale']) {
  173.                $this->Sales_m->save_payment($payment);
  174.            }
  175.             $this->api_response(NULL,200);
  176.        }else{
  177.             $this->api_response(NULL,500);
  178.        }
  179.    }
  180.  
  181.    public function receive_post(){
  182.        $input = file_get_contents('php://input');
  183.        $input = json_decode($input, TRUE);
  184.        $date = new DateTime($input["date"]);
  185.        $receive_head = array(
  186.            "ReceiveNo" => $input["issue_no"],
  187.            "Date" => $date->format("Y-m-d H:i:s"),
  188.            "UserID" => $input["user_id"],
  189.            "Origin" =>$input["origin"],
  190.            "Destination" => $input["destination"],
  191.            "IssueNo" => $input["issue_no"],
  192.            "Approve" => 1,
  193.            "ApproveBy" => $input["user_id"],
  194.            "ApproveDate" => $date->format("Y-m-d H:i:s"),
  195.            "SysDate" => $date->format("Y-m-d H:i:s"),
  196.            "SourceID" => "5"
  197.            );
  198.        if ($this->Sales_m->save_receive_head($receive_head)) {
  199.            $item_index = 1;
  200.            foreach ($input["receive_item"] as $item) {
  201.                $receive_detail = array(
  202.                    "ReceiveNo" => $item["receive_no"],
  203.                    "StyleID" => $item["style_id"],
  204.                    "Quantity" =>$item["qty"]
  205.                    );
  206.                $this->Sales_m->save_receive_detail($receive_detail);
  207.            }
  208.            $this->api_response(NULL,200);
  209.        }else{
  210.            $this->api_response(NULL,500);
  211.        }
  212.    }
  213.  
  214.    public function search_issue_get(){
  215.         $issue_no = $this->get("store_id");
  216.         @$issue_head = $this->Sales_m->get_ini($issue_no);
  217.         if($issue_head->num_rows() > 0){
  218.             $issue_result = array();
  219.             foreach ($issue_head->result() as $issue) {
  220.                 $issue_detail = $this->Sales_m->get_issue_detail($issue->issue_no)->result();
  221.                 $issue_result[] = array(
  222.                     "user_id" => $issue->user_id,
  223.                     "remarks" => $issue->remarks,
  224.                     "date" => $issue->date,
  225.                     "origin_store_name" => $issue->origin_store_name,
  226.                     "origin_store_id" => $issue->origin_store_id,
  227.                     "issue_no" => $issue->issue_no,
  228.                     "issue_detail" => $issue_detail
  229.                 );
  230.             }
  231.             $data['data'] = $issue_result;
  232.            $this->api_response($data, 200);
  233.         } else {
  234.            $this->set_response_message('Couldn\'t find any Issue');
  235.            $this->api_response(NULL, 404);
  236.        }
  237.    }
  238.  
  239.    public function stores_get(){
  240.        $user_id = $this->get("user");
  241.        $stores = $this->Sales_m->get_stores($user_id);
  242.        if($stores->num_rows() > 0){
  243.            $data['data'] = $stores->result();
  244.            $this->api_response($data, 200);
  245.        } else {
  246.            $this->set_response_message('Couldn\'t find any store');
  247.            $this->api_response(NULL, 404);
  248.        }
  249.    }
  250.  
  251.    public function delete_sales_post(){
  252.         $sale_id = $this->post("sale_id");
  253.         if ($this->Sales_m->delete_sales($sale_id)) {
  254.             $this->Sales_m->delete_sales_detail($sale_id);
  255.             $this->api_response(NULL,200);
  256.         }else{
  257.             $this->api_response(NULL,500);
  258.         }
  259.    }
  260. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement