/**
 * 对账模块-用于对账入库凭证查询首页JS
 *
 * Created by li.kui on 2020/7/31.
 */
'use strict';
var el = {
    searchForm: '#searchForm',
    receiveCode: '#receiveCode',
    supplierCode: '#supplierCode',
    supplierName: '#supplierName',
    paymentExpireDateStart: '#paymentExpireDateStart',
    paymentExpireDateEnd: '#paymentExpireDateEnd',
    poCode: '#poCode',
    materialCode: '#materialCode',
    materialName: '#materialName',
    pgCode: '#pgCode',
    companyCode: '#companyCode',
    postTimeStart: '#postTimeStart',
    postTimeEnd: '#postTimeEnd',
    factoryCode: '#factoryCode',
    voucherType: '#voucherType',
    isAllowAccount: '#isAllowAccount',
    isReconcile: '#isReconcile',
    isSearchRepeat: '#isSearchRepeat',
    cvCode: '#cvCode',
    tb: '#tb',

    dataSyncDialog: '#dataSyncDialog',
    poTypeName: '#poTypeName',
    poType: '#poType',
    startPostTime: '#startPostTime',
    endPostTime: '#endPostTime',
    receiptVoucherNo: '#receiptVoucherNo',
    syncCompanyCode: '#syncCompanyCode',
    syncSupCode: '#syncSupCode',
    syncMaterialCode: '#syncMaterialCode',
    syncVoucherType: '#syncVoucherType',
    //定义初始列
    defaultColumns:[],

    bodyHeight: document.documentElement.clientHeight
};


/**
 * 文档就绪
 */
$(function () {
    initDict('movement_type,payment_method')
    initNecessaryDatas('pc/sys/purchaseGroup/rest/listAll')
    //定义初始列
    el.defaultColumns =  [
        {
            field: 'asNo',
            title: '对账单号',
            width: 120,
            sortable: true
        },
        {
            field: 'accountStatementFlag',
            title: '允许对账',
            width: 80,
            exportEnum:[
                {code:1,codeWithDesc:'允许'},
                {code:0,codeWithDesc:'不允许'},
            ],
            formatter: function (value) {
                if (value === 1) {
                    return '<span style="color: green;">允许</span>';
                }else {
                    return '<span style="color: red;">不允许</span>';
                }
            }
        },
        {
            field: 'mvCode',
            title: '物料凭证号',
            width: 90,
            sortable: true
        },
        {
            field: 'mvItemNo',
            title: '行号',
            width: 50,
            sortable: true
        },
        {
            field: 'mvYear',
            title: '年度',
            width: 100
        },
        {
            field: 'voucherType',
            title: '凭证类型',
            width: 100,
            exportEnum:[
                {code:1,codeWithDesc:'常规'},
                {code:2,codeWithDesc:'寄售'},
                {code:3,codeWithDesc:'费用'}
            ],
            formatter: function (value) {
                if (value === 1) {
                    return '常规';
                }else if (value === 2){
                    return '寄售';
                }else if (value === 3){
                    return '费用';
                }
            }
        },
        {
            field: 'mvPostDate',
            title: '凭证过账日期',
            width: 100,
            sortable: true,
            exportDateFormatter:'date',
            formatter: function (value) {
                if (!value) {
                    return '';
                }
                return moment(value).format('YYYY-MM-DD');
            }
        },
        {
            field: 'purPostDate',
            title: '质检入库日期',
            width: 100,
            sortable: true,
            exportDateFormatter:'date',
            formatter: function (value) {
                if (!value) {
                    return '';
                }
                return moment(value).format('YYYY-MM-DD');
            }
        },

        {
            field: 'voucherFlag',
            title: '入库标识',
            width: 70,
            sortable: true,
            exportEnum:[
                {code:'S',codeWithDesc:'入库'},
                {code:'H',codeWithDesc:'退货'}
            ],
            formatter: function (value) {
                if (value === 'S') {
                    return '<span style="color: green;">入库</span>';
                }else {
                    return '<span style="color: red;">退货</span>';
                }
            }
        },
        {
            field: 'extendFiled1',
            title: '免检标识',
            width: 100
        },
        {
            field: 'headUpText',
            title: '送货单号',
            width: 100
        },
        {
            field: 'materialCode',
            title: '物料编码',
            width: 90,
            sortable: true
        },
        {
            field: 'materialName',
            title: '物料名称',
            width: 280,
            sortable: true
        },
        {
            field: 'materialDesc',
            title: '物料描述',
            width: 180,
            sortable: true
        },
        // {
        //     field: 'specs',
        //     title: '物料规格',
        //     width: 280
        // },
        {
            field: 'poMeterUnit',
            title: '采购单位',
            width: 70,
            sortable: true
        },
        {
            field: 'mvNum',
            title: '入库数量',
            width: 70,
            sortable: true
        },
        {
            field: 'taxCode',
            title: '税率',
            width: 60,
            sortable: true
        },
        {
            field: 'taxDesc',
            title: '税率描述',
            width: 150,
            sortable: true
        },
        {
            field: 'notTaxPrice',
            title: '未税单价',
            width: 90,
            sortable: true,
            formatter: function (value) {
                return formatterPrice(value);
            }
        },
        {
            field: 'taxPrice',
            title: '含税单价',
            width: 90,
            sortable: true,
            formatter: function (value) {
                return formatterPrice(value);
            }
        },

        {
            field: 'deductionRatio',
            title: '其他折扣',
            width: 90,
            sortable: true,
            formatter: function (value) {
                return formatterPrice(value);
            }
        },
        {
            field: 'notTaxAmount',
            title: '未税金额',
            width: 90,
            sortable: true,
            formatter: function (value) {
                return formatterPrice(value);
            }
        },
        {
            field: 'taxAmount',
            title: '含税金额',
            width: 90,
            sortable: true,
            formatter: function (value) {
                return formatterPrice(value);
            }
        },
        {
            field: 'originalTaxAmount',
            title: '原含税金额',
            width: 90,
            sortable: true,
            formatter: function (value) {
                return formatterPrice(value);
            }
        },
        {
            field: 'diffTaxAmount',
            title: '税额',
            width: 80,
            sortable: true,
            formatter: function (value) {
                return formatterPrice(value);
            }
        },
        {
            field: 'cvCode',
            title: '参考凭证号',
            width: 90
        },
        {
            field: 'cvItemNo',
            title: '参考凭证行号',
            width: 100
        },
        {
            field: 'cvYear',
            title: '参考凭证年度',
            width: 100
        },
        {
            field: 'invoicedCode',
            title: 'MIRO凭证号',
            width: 100
        },
        {
            field: 'paymentExpireDate',
            title: '付款到期日',
            width: 120,
            sortable: true,
            exportDateFormatter:'date',
            formatter: function (value, row) {
                if (!value) {
                    return '';
                }
                return '<span style="color: red;">' + moment(value).format('YYYY-MM-DD') + '</span>';
            }
        },
        // {
        //     field: 'invoicedNum',
        //     title: '发票过账数量',
        //     width: 90,
        //     sortable: true
        // },
        // {
        //     field: 'invoicedAmount',
        //     title: '发票过账金额',
        //     width: 90,
        //     sortable: true,
        //     formatter: function (value) {
        //         if (!value) {
        //             return '';
        //         }
        //         return formatNumber(value, 2, 1);
        //     }
        // },
        {
            field: 'qualityTestingNo',
            title: '质检单号',
            width: 90
        },
        // {
        //     field: 'zlsdh',
        //     title: 'SC订单号',
        //     width: 90
        // },
        {
            field: 'poCode',
            title: 'SAP订单号',
            width: 90,
            sortable: true
        },
        {
            field: 'poItemNo',
            title: '订单行号',
            width: 70,
            sortable: true
        },
        {
            field: 'poType',
            title: '订单类型编号',
            width: 90
        },
        {
            field: 'poTypeName',
            title: '订单类型名称',
            width: 100
        },
        {
            field: 'supplierCode',
            title: '供应商编码',
            width: 90,
            sortable: true
        },
        {
            field: 'supplierName',
            title: '供应商名称',
            width: 190,
            sortable: true
        },
        {
            field: 'companyName',
            title: '公司名称',
            width: 220,
            sortable: true,
            formatter: function (value, row) {
                if (value) {
                    return '(' + row.companyCode + ')' + value;
                }
                return '';
            }
        },
        {
            field: 'supplierName2',
            title: '物流公司',
            width: 220,
            sortable: true,
            formatter: function (value, row) {
                if (value) {
                    return '(' + row.supplierCode2 + ')' + value;
                }
                return '';
            }
        },
        {
            field: 'factoryCode',
            title: '工厂编码',
            width: 200,
            sortable: true,
            // formatter: function (value, row) {
            //     if (value) {
            //         return '(' + row.factoryCode + ')' + value;
            //     }
            //     return '';
            // }
        },
        {
            field: 'sapMoveType',
            title: '移动类型',
            width: 120,
            sortable: true,
            exportEnum:getDictList('movement_type'),
            formatter: function (value, row) {
                return getDicName('movement_type',value)
            }
        },
        // {
        //     field: 'currencyCode',
        //     title: '币种',
        //     width: 60,
        //     sortable: true
        // },
        // {
        //     field: 'pgCode',
        //     title: '采购组',
        //     width: 110,
        //     sortable: true,
        //     exportEnum:getNecessaryDataList('pc/sys/purchaseGroup/rest/listAll'),
        //     formatter: function (value, row) {
        //         return getNecessaryDataName('pc/sys/purchaseGroup/rest/listAll',value);
        //     }
        // },
        // {
        //     field: 'supplierPurchaseGroupCode',
        //     title: '对账采购组',
        //     width: 110,
        //     sortable: true,
        //     exportEnum:getNecessaryDataList('pc/sys/purchaseGroup/rest/listAll'),
        //     formatter: function (value, row) {
        //         return getNecessaryDataName('pc/sys/purchaseGroup/rest/listAll',value);
        //     }
        // },
        // {
        //     field: 'paymentTermCode',
        //     title: '付款条件',
        //     width: 140,
        //     sortable: true,
        //     exportEnum:getDictList('payment_method'),
        //     formatter: function (value, row) {
        //         return getDicName('payment_method',value)
        //     }
        // },
        // {
        //     field: 'sapRemark',
        //     title: '行文本',
        //     width: 150,
        //     sortable: true
        // },
        //
        // {
        //     field: 'syncTime',
        //     title: '同步时间',
        //     width: 130,
        //     sortable: true,
        //     exportDateFormatter: 'dateTime',
        //     formatter: function (value) {
        //         if (value) {
        //             return moment(value).format("YYYY-MM-DD HH:mm:ss");
        //         }
        //         return '';
        //     }
        // },
        // {
        //     field: 'lastUpdateTime',
        //     title: '最后同步时间',
        //     width: 130,
        //     sortable: true,
        //     exportDateFormatter: 'dateTime',
        //     formatter: function (value) {
        //         if (value) {
        //             return moment(value).format("YYYY-MM-DD HH:mm:ss");
        //         }
        //         return '';
        //     }
        // }
    ];
    //从后台查询动态列
    // let column = getRemoteColumnSort(columnSortCodeEnum.RECEIVE,el.defaultColumns);
    //赋值到表
    loadGrid(el.defaultColumns );
});


/**
 * 初始化页面数据表格
 */
function loadGrid(columns) {
    var searchHeight = $(el.searchForm).outerHeight();
    var pager = initGridPagerNew(el.bodyHeight - searchHeight, 37, 40);

    $(el.tb).datagrid({
        loadMsg: '数据加载中, 请耐心等待...',
        url: g.ctx + 'pc/finance/receipt/voucher/rest/list',
        height: el.bodyHeight - searchHeight,
        singleSelect: false,
        rownumbers: true,
        // 定义从服务器对数据进行排序
        remoteSort: true,
        // 定义是否允许多列排序
        // multiSort: true,
        pagination: true,
        pageSize: pager.pageSize,
        pageList: pager.pageList,
        queryParams: {
            headUpText:$('#headUpText').val()
        },
        frozenColumns: [
            [
            ]
        ],
        columns: [columns],
    });
}