<?php
/**
 * Created by JetBrains PhpStorm.
 * User: Administrator
 * Date: 17-12-12
 * Time: 下午2:37
 * To change this template use File | Settings | File Templates.
 */
class Product_SwapOrderDetailController  extends Ec_Controller_Action
{
    public function preDispatch()
    {
        $this->tplDirectory = "product/views/product/";
        $this->serviceClass = new Service_SwapOrderDetail();
        $userAuth = new Zend_Session_Namespace('userAuthorization');
        $this->user_id = $userAuth->userId;
    }

    /*产品列表*/
    public function listAction()
    {
        $status=Service_ProductProcess::getProductStatus();
        $receiving=Service_ProductProcess::getProductReceivingStatus();
        if ($this->_request->isPost()) {
            $page = $this->_request->getParam('page', 1);
            $pageSize = $this->_request->getParam('pageSize', 20);
            //$isSellable = trim($this->_request->getParam('pi_sellable', ''));
            //$warehoseId = trim($this->_request->getParam('warehouse_id', ''));

            $page = $page ? $page : 1;
            $pageSize = $pageSize ? $pageSize : 20;

            $return = array(
                "state" => 0,
                "message" => "No Data"
            );

            //$params = $this->_request->getParams();

            //$condition = $this->serviceClass->getMatchFields($params);

            /*if ('largeZero' === $isSellable && '' !== $warehoseId) {
                $condition['pi_sellable'] = 'largeZero';
                $condition['warehouse_id'] = $warehoseId;
            }*/
            $condition['swo_status'] = 5;
            $condition['product_barcode'] = $this->_request->getParam('product_barcode', "");
            $condition['product_sku'] = $this->_request->getParam('product_sku', "");
            $condition['customer_code'] = $this->_request->getParam('customer_code', "");
            //$condition['dateFor'] = isset($params['dateFor'])?$params['dateFor']:'';
            //$condition['dateTo'] = isset($params['dateTo'])?$params['dateTo']:'';
            $count = Service_SwapOrderDetail::getJoinProductAndSwapOrderByCondition($condition, 'count(*)');
            $return['total'] = $count;

            if ($count) {

                $rows = Service_SwapOrderDetail::getJoinProductAndSwapOrderByCondition($condition,"*", $pageSize, $page, array('product.product_id desc'));
                foreach($rows as $key=>$value){
                    $fromProduct = Service_Product::getByField($value['product_id'],"product_id","*");
                    $rows[$key]['from_goods_id'] = $fromProduct['goods_id'];
                    $inventoryBatch = Service_InventoryBatch::getByCondition(array('receiving_code'=>$value['swo_code'],'product_id'=>$value['to_product_id']),"*");
                    if(!empty($inventoryBatch)){
                        $rows[$key]['ib_quantity'] = $inventoryBatch[0]['ib_quantity'];
                    }else{
                        $rows[$key]['ib_quantity'] = 0;
                    }
                }

                $return['data'] = $rows;
                $return['state'] = 1;
                $return['status'] = $status;
                $return['receiving'] = $receiving;
                $return['message'] = "";
            }
            die(Zend_Json::encode($return));
        }
        $this->view->status=$status;
        $this->view->receiving=$receiving;
        echo Ec::renderTpl($this->tplDirectory . "swap_order_detail_index.tpl", 'layout');
    }

}
