/**
 * 对账单采购审批页面中选择扣款信息弹框JS
 *
 * Created by li.kui on 2020/8/4.
 */
'use strict';
var el = {
    searchForm: '#searchForm',
    userId: '#userId',
    supplierCode: '#supplierCode',
    companyCode: '#companyCode',
    supplierInfo: '#supplierInfo',
    statementNo: '#statementNo',
    createTimeStart: '#createTimeStart',
    createTimeEnd: '#createTimeEnd',
    status: '#status',
    orderType: '#orderType',
    oaProcessNo: '#oaProcessNo',
    tb: '#tb',
    addOrEditDialog: null,
    optConfirmDialog: null,
    forceDelDialog: null,
    lookDialog: null,
    bodyHeight: document.documentElement.clientHeight
};


$(function () {
    initNecessaryDatas('pc/sys/purchaseGroup/rest/listAll,pc/sys/company/rest/listAll')
    initPageComBoBox();

    initDataGrid();
});


/**
 * 初始化页面下拉框
 */
function initPageComBoBox() {
    // 初始化公司代码下拉框
    $(el.companyCode).combobox({
        url: g.ctx + 'pc/sys/company/rest/listAll?userId='+$(el.userId).val(),
        panelHeight: 300,
        panelWidth: 340,
        valueField: 'companyCode',
        textField: 'codeWithDesc',
        prompt: '--- 请选择 ---'
    });
}


/**
 * 初始化扣款数据列表
 */
function initDataGrid() {
    var searchHeight = $(el.searchForm).outerHeight();
    var pager = initGridPagerNew(el.bodyHeight - searchHeight, 37, 40);

    $(el.tb).datagrid({
        loadMsg: '数据加载中, 请耐心等待......',
        url: g.ctx + 'pc/finance/cost/account/statement/rest/list?postStatus=5&&supplierCode='+$(el.supplierCode).val(),
        height: el.bodyHeight - searchHeight,
        rownumbers: true,
        singleSelect: true,
        pagination: true,
        pageSize: pager.pageSize,
        pageList: pager.pageList,
        queryParams: {
            status: 9,
            isComplete:0,
            isDuiZhang :1
        },
        frozenColumns: [
            [
                {
                    field: 'ck',
                    checkbox: true
                },
                {
                    field: 'status',
                    title: '数据状态',
                    width: 115,
                    sortable: true,
                    formatter: function (value) {
                        switch (value) {
                            case 1:
                                return '暂存对账单';
                            case 2:
                                return '<span style="color: blue;">待主管确认</span>';
                            case 3:
                                return '<span style="color: red;">采购拒绝</span>';
                            case 4:
                                return '<span style="color: orange;">待推送OA审批</span>';
                            case 5:
                                return '<span style="color: blue;">OA审批中</span>';
                            case 6:
                                return '<span style="color: red;">OA审批不通过</span>';
                            case 7:
                                return '<span style="color: orange;">待财务确认</span>';
                            case 8:
                                return '<span style="color: red;">财务拒绝对账单</span>';
                            case 9:
                                return '<span style="color: green;">对账单已确认</span>';
                            default:
                                return '';
                        }
                    }
                },
                {
                    field: 'accountStatementNo',
                    title: '对账单号',
                    width: 140,
                    sortable: true
                },
                {
                    field: 'remark',
                    title: '备注',
                    width: 120,
                    sortable: true
                },
                {
                    field: 'purchaseGroup',
                    title: '采购组',
                    width: 100,
                    formatter: function (value) {
                        return getNecessaryDataName('pc/sys/purchaseGroup/rest/listAll',value);
                    }
                }
            ]
        ],
        columns: [
            [
                // {
                //     field: 'orderType',
                //     title: '对账单类型',
                //     width: 90,
                //     sortable: true,
                //     formatter: function (value) {
                //         if(Number(value) === 1){
                //             return '材料类';
                //         }
                //         if(Number(value) === 2){
                //             return '运费类';
                //         }
                //         return '';
                //     }
                // },
                // {
                //     field: 'oaProcessNo',
                //     title: 'OA申请单号',
                //     width: 140,
                //     sortable: true,
                //     formatter: function (value, row) {
                //         var opId = row.oaProcessId;
                //         if(!row.oaProcessId){
                //             opId = value;
                //         }
                //         if(!opId){
                //             return '';
                //         }
                //         return '<a href="javascript:void(0)" onclick="lookOaApproveLog(this)" data-op="'+ opId +'">' + value + '</a>';
                //     }
                // },
                // {
                //     field: 'pushOaUserName',
                //     title: '推送OA员工姓名',
                //     width: 110,
                //     sortable: true,
                //     formatter: function (value, row) {
                //         if(!row.oaProcessId && !row.oaProcessNo){
                //             return '';
                //         }
                //         return value;
                //     }
                // },
                {
                    field: 'supplierCode',
                    title: '供应商编码',
                    width: 90,
                    sortable: true
                },
                {
                    field: 'supplierName',
                    title: '供应商名称',
                    width: 270,
                    sortable: true
                },
                // {
                //     field: 'notTaxAmount',
                //     title: '对账未税总金额',
                //     width: 110,
                //     sortable: true,
                //     formatter: function (value) {
                //         return formatNumber(value, 2, 1);
                //     }
                // },
                {
                    field: 'taxAmount',
                    title: '对账合计金额',
                    width: 110,
                    sortable: true,
                    formatter: function (value) {
                        return formatNumber(value, 2, 1);
                    }
                },
                // {
                //     field: 'diffTaxAmount',
                //     title: '对账总税额',
                //     width: 110,
                //     sortable: true,
                //     formatter: function (value, row) {
                //         return formatNumber(Number(row.taxAmount) - Number(row.notTaxAmount), 2, 1);
                //     }
                // },
                // {
                //     field: 'differenceAmount',
                //     title: '对账含税金额差异合计',
                //     width: 140,
                //     sortable: true,
                //     formatter: function (value) {
                //         if (!value) {
                //             return '0.00';
                //         }
                //         return formatNumber(value, 2, 1);
                //     }
                // },
                // {
                //     field: 'bpPayableBalance',
                //     title: '期初金额(暂估+应付)',
                //     width: 140,
                //     sortable: true,
                //     formatter: function (value, row) {
                //         if (!value && !row.bpEstimateBalance) {
                //             return '0.00';
                //         }
                //         if(value && !row.bpEstimateBalance){
                //             return formatNumber(value, 2, 1);
                //         }
                //         if(!value && row.bpEstimateBalance){
                //             return formatNumber(row.bpEstimateBalance, 2, 1);
                //         }
                //
                //         return formatNumber(Number(value) + Number(row.bpEstimateBalance), 2, 1);
                //     }
                // },
                // {
                //     field: 'etPayableBalance',
                //     title: '期末金额(暂估+应付)',
                //     width: 140,
                //     sortable: true,
                //     formatter: function (value, row) {
                //         if (!value && !row.etEstimateBalance) {
                //             return '0.00';
                //         }
                //         if(value && !row.etEstimateBalance){
                //             return formatNumber(value, 2, 1);
                //         }
                //         if(!value && row.etEstimateBalance){
                //             return formatNumber(row.etEstimateBalance, 2, 1);
                //         }
                //
                //         return formatNumber(Number(value) + Number(row.etEstimateBalance), 2, 1);
                //     }
                // },
                {
                    field: 'currPaymentAmount',
                    title: '本期付款金额',
                    width: 110,
                    sortable: true,
                    formatter: function (value, row) {
                        if (!value) {
                            return '0.00';
                        }
                        return formatNumber(row.currPaymentAmount, 2, 1);
                    }
                },
                {
                    field: 'invoiceCompleteFlag',
                    title: '是否开票',
                    width: 100,
                    sortable: true,
                    formatter: function (value) {
                        if (Number(value) === 0) {
                            return '否';
                        }
                        return '<span style="color: green;">是</span>';
                    }
                },
                {
                    field: 'companyCode',
                    title: '采购公司',
                    width: 240,
                    formatter: function (value, row) {
                        return getNecessaryDataName('pc/sys/company/rest/listAll',value);
                    }
                },
                {
                    field: 'currencyCode',
                    title: '币种',
                    width: 70,
                    sortable: true
                },
                {
                    field: 'createTime',
                    title: '创建时间',
                    width: 140,
                    sortable: true,
                    formatter: function (value) {
                        if (!value) {
                            return '';
                        }
                        return moment(value).format('YYYY-MM-DD HH:mm');
                    }
                },
                {
                    field: 'updateTime',
                    title: '最后更新时间',
                    width: 140,
                    sortable: true,
                    formatter: function (value) {
                        if (!value) {
                            return '';
                        }
                        return moment(value).format('YYYY-MM-DD HH:mm');
                    }
                },
                // {
                //     field: 'purchaseUser',
                //     title: '采购员',
                //     width: 140,
                // }
            ]
        ],
    });
}


/**
 * 确认选择
 */
function confirmChose(callback) {
    callback($(el.tb).datagrid('getSelected'));
}


/**
 * 查询对账单数据
 */
function searchAsData() {
    var queryParams = $(el.tb).datagrid('options').queryParams;
    queryParams.statementNo = $.trim($(el.statementNo).val());
    queryParams.supplierInfo = $.trim($(el.supplierInfo).val());
    // queryParams.oaProcessNo = $.trim($(el.oaProcessNo).val());
    queryParams.companyCode = $(el.companyCode).combobox('getValue');
    // queryParams.orderType = $(el.orderType).combobox('getValue');
    queryParams.createTimeStart = $(el.createTimeStart).datebox('getValue');
    queryParams.createTimeEnd = $(el.createTimeEnd).datebox('getValue');
    queryParams.roleType = 2;
    $(el.tb).datagrid('load');
}

/**
 * 重置查询
 */
function resetAsSearch() {
    $(el.supplierInfo).val('');
    // $(el.oaProcessNo).val('');
    $(el.statementNo).val('');
    $(el.companyCode).combobox('setValue', '');
    // $(el.orderType).combobox('setValue', -1);
    $(el.createTimeStart).datebox('setValue', '');
    $(el.createTimeEnd).datebox('setValue', '');

    searchAsData();
}