<?php

/**
 * Class Clearance_DecalaInfoController
 * User: Yao
 * Date: 2021/7/6
 * Note:报关单
 */
class Clearance_DecalarInfoController extends Ec_Controller_Action
{
    protected $tplDirectory = '';

    public function preDispatch() {
        $this->tplDirectory = "clearance/views/decalar/";
    }

    /**
     * Note:获取列表的提交参数，导出和查询都会用到，放在一个地方
     * User: Yao
     * Date: 2019/2/16
     * Time: 11:20
     */
    private function getCondition() {
        $condition = array();
        $dateFor = $this->_request->getParam('dateFor', '');
        $dateTo = $this->_request->getParam('dateTo', '');
        $isSearchDate = false;
        $conditionTemp['dateFor'] = !empty($dateFor) ? $dateFor : '';
        $conditionTemp['dateTo'] = !empty($dateTo) ? $dateTo : '';
        if (!empty($conditionTemp['dateFor'])) {
            $isSearchDate = true;
            $conditionTemp['dateFor'] = date('Y-m-d H:i:s', strtotime($conditionTemp['dateFor']));
        }
        if (!empty($conditionTemp['dateTo'])) {
            $isSearchDate = true;
            $conditionTemp['dateTo'] = date('Y-m-d H:i:s', strtotime($conditionTemp['dateTo']));
        }
        $params = $this->_request->getParams();
        Common_Common::trim_blank($params);
        $condition = $params;
        if ($isSearchDate) {
            if ($params['timeType'] == 0) {
                $condition['declare_date_start'] = $conditionTemp['dateFor'];
                $condition['declare_date_to'] = $conditionTemp['dateTo'];
            } else {
                $condition['enter_out_date_start'] = $conditionTemp['dateFor'];
                $condition['enter_out_date_to'] = $conditionTemp['dateTo'];
            }
        }

        return $condition;
    }

    /**/
    public function listAction() {
        if ($this->_request->isPost()) {
            $return = array(
                "state" => 0,
                "message" => "No Data"
            );
            $page = $this->_request->getParam('page', 1);
            $pageSize = $this->_request->getParam('pageSize', 20);

            $page = $page ? $page : 1;
            $pageSize = $pageSize ? $pageSize : 20;
            $condition = $this->getCondition();
            $showFields = [
                'domestic_consignee_no',
                'pre_no',
                'h.idi_id',
                'enter_out_date',
                'declare_date',
                'inv_no',
                'd.product_title',
                'enter_out_clearance',
                'd.goods_code',
                'd.price',
                'd.total_price',
                'd.currency',
                'd.hs_uom1_quantity',
                'd.hs_uom2_quantity',
                'd.decalar_quantity',
                'd.original_country',
                'h.idi_id',
            ];
            $count = Service_InvtDecalarInfo::getLeftJoinByCondition($condition, 'count(*)');
            $return['total'] = $count;
            if ($count > 0) {
                $rows = Service_InvtDecalarInfo::getLeftJoinByCondition($condition, $showFields, $pageSize, $page, 'h.idi_id desc');
                $return['state'] = $count ? 1 : 0;
                $return['data'] = $rows;
            }
            $return['size'] = $pageSize;
            $return['page'] = $page;
            die(Zend_Json::encode($return));
        }
        echo Ec::renderTpl($this->tplDirectory . "list.tpl", 'layout');
    }

    /**
     * Note:详情查看
     * User: Yao
     * Date: 2019/12/27
     * Time: 14:48
     */
    public function viewAction() {
        $id = $this->_request->getParam('id', '');
        if (empty($id)) {
            $this->redirect("/default/error/error");
        }
        $invList = Service_InvtList::getByField($id);
        if (empty($invList)) {
            $this->redirect("/default/error/error");
        }
        $log = Service_InvtListLog::getByCondition([
            'il_id' => $invList['il_id']
        ], '*', '', '', "ill_id desc");
        $invtManifestInvt = Service_InvtManifiestInvt::getByCondition([
            'etps_inner_invt_no' => $invList['EtpsInnerInvtNo'],
        ]);
        $this->view->invtManifestInvt = $invtManifestInvt[0];
        $this->view->invList = $invList;
        $this->view->dcltypecd = Service_InvtList::getdclTypecdStatus();//申报类型
        $this->view->invtType = Service_InvtList::getInvtType();//清单类型
        $this->view->dclusFlag = Service_InvtList::getDclusFlag();//
        $this->view->bwlType = Service_InvtList::getbwlType();
        $this->view->supvModecd = Service_InvtList::getsupvModecd();
        $this->view->trspModeecd = Service_InvtList::getTrspMethod();
        $this->view->mtpckEndprdMarkcd = Service_InvtList::getMtpckEndprdMarkd();
        $this->view->imepxpMarkcd = Service_InvtList::getImepexpMarkcdStatus();
        $this->view->impexpPortcd = Service_InvtList::getImexpPortcd();
        $this->view->genDecFlag = Service_InvtList::getGenDecFlag();
        $this->view->status = Service_InvtList::getStatus();
        $this->view->log = $log;
        echo Ec::renderTpl($this->tplDirectory . 'detail.tpl', 'layout');
    }


}