<?php

class Financial_FeeCreditNoteController extends Ec_Controller_Action
{
    public function preDispatch()
    {
        $this->tplDirectory = "financial/views/transfer/";
        $this->serviceClass = new Service_FeeCreditNote();
    }

    public function listAction()
    {
        $settlementCode = Process_BillConfig::settlementCode('auto');
        if ($this->_request->isPost()) {
            $page = $this->_request->getParam('page', 1);
            $pageSize = $this->_request->getParam('pageSize', 20);

            $page = $page ? $page : 1;
            $pageSize = $pageSize ? $pageSize : 20;

            $return = array(
                "state" => 0,
                "message" => "No Data"
            );

            $params = $this->_request->getParams();

            $condition = $this->serviceClass->getMatchFields($params);


            $condition['dateFor'] = isset($params['dateFor']) ? $params['dateFor'] . ' 00:00:00' : '';
            $condition['dateTo'] = isset($params['dateTo']) ? $params['dateTo'] . ' 23:59:59' : '';

            $count = $this->serviceClass->getAllByCondition($condition, 'count(*)');
            $return['total'] = $count;

            if ($count) {
                $showFields = array(

                    'payer_code',
                    'so_code',
                    'ft_code',
                    'fcn_code',
                    'fcn_reference_no',
                    'fcn_status',
                    'fcn_amount',
                    'fcn_currency_code',
                    'fcn_desc',
                    'fcn_note',
                    'fcn_creator_id',
                    'fcn_confirm_id',
                    'fcn_delete_id',
                    'fcn_confirm_time',
                    'fcn_delete_time',
                    'fcn_add_time',
                    'fcn_id',
                );
                //     $showFields = $this->serviceClass->getFieldsAlias($showFields);
                $rows = $this->serviceClass->getAllByCondition($condition, $showFields, $pageSize, $page, array('fcn_id desc'));
                $return['data'] = $rows;
                $return['state'] = 1;
                $return['message'] = "";
                $return['settlementCode'] = $settlementCode;
                $return['feeCreditNoteStatus'] = Process_BillConfig::feeCreditNoteStatus('auto');

            }
            die(Zend_Json::encode($return));
        }
        $this->view->dateFor = date("Y-m-d", strtotime("-32 days"));
        $this->view->dateTo = date("Y-m-d");
        $this->view->settlementCode = $settlementCode;
        $this->view->feeType = Service_FeeType::getByCondition(array(), '*', 0);
        echo Ec::renderTpl($this->tplDirectory . "fee_credit_note_index.tpl", 'layout');
    }

    public function deleteAction()
    {
        $result = array(
            "state" => 0,
            "message" => "Fail."
        );
        if ($this->_request->isPost()) {
            $paramId = $this->_request->getPost('paramId');
            if (!empty($paramId)) {
                $row['fcn_status'] = 0;
                $row['fcn_delete_id'] = Service_User::getUserId();
                $date = date('Y-m-d H:i:s');
                $row['fcn_delete_time'] = $date;
                $row['fcn_update_time'] = $date;
                if ($this->serviceClass->update($row, $paramId)) {
                    $result['state'] = 1;
                    $result['message'] = '操作成功';
                }
            }
        }
        die(Zend_Json::encode($result));
    }

    /**
     * @desc 确认已完成
     */
    public function completedAction()
    {
        $result = array(
            "state" => 0,
            "message" => "Fail."
        );
        if ($this->_request->isPost()) {
            $paramId = $this->_request->getPost('paramId');
            if (!empty($paramId)) {
                $row['fcn_status'] = 2;
                $row['fcn_confirm_id'] = Service_User::getUserId();
                $date = date('Y-m-d H:i:s');
                $row['fcn_confirm_time'] = $date;
                $row['fcn_update_time'] = $date;
                if ($this->serviceClass->update($row, $paramId)) {
                    $result['state'] = 1;
                    $result['message'] = '操作成功';
                }
            }
        }
        die(Zend_Json::encode($result));
    }

}