
let el = {
    tb: '#tb',
    useState: '#useState',
    deductionType: '#deductionType',
    shareFlag: '#shareFlag',
    whether: '#whether',
    taxCode: '#taxCode',
    searchForm: '#searchForm',
    bodyHeight: document.documentElement.clientHeight
}

$(function () {
    initDict('back_type,tax')
    initPageSelect();
    loadGrid();
});
/**
 * 初始化页面下拉框数据
 */
function initPageSelect() {
    $('#companyCode').combobox({
        valueField: 'code',
        textField: 'codeWithDesc',
        url: g.ctx + 'pc/sys/company/rest/listAll',
        editable: false,
        prompt: '--- 请选择 ---',
        panelHeight: 'auto',
        panelWidth: 300,
        onSelect:function (data) {
            $('#companyName').val(data.companyName);
        }
    });
    // 初始化是否使用下拉框
    $(el.whether).combobox({
        valueField: 'value',
        textField: 'label',
        value: -1,
        data: [
            {label: '全部', value: -1},
            {label: '未使用', value: 0},
            {label: '开票已使用', value: 1},
            {label: '线下使用', value: 2}
        ],
        editable: false,
        prompt: '-- 请选择 --',
        panelHeight: 'auto'
    });
    // 初始化是否分摊下拉框
    $(el.shareFlag).combobox({
        valueField: 'value',
        textField: 'label',
        value: -1,
        data: [
            {label: '全部', value: -1},
            {label: '不需要', value: 0},
            {label: '需要', value: 1}
        ],
        editable: false,
        prompt: '-- 请选择 --',
        panelHeight: 'auto'
    });
    // 初始化扣款类型下拉框
    $(el.deductionType).combobox({
        url: g.ctx + 'pc/sys/dict/getDicByType?type=back_type',
        panelHeight: 260,
        method: 'GET',
        valueField: 'code',
        textField: 'name',
        prompt: '-- 请选择 --',
        editable: false
    });
    // 初始化税率下拉框
    // $(el.taxCode).combobox({
    //     url: g.ctx + 'pc/sys/dict/getDicByType?type=tax',
    //     panelHeight: 260,
    //     method: 'GET',
    //     valueField: 'code',
    //     textField: 'name',
    //     prompt: '-- 请选择 --',
    //     editable: false
    // });
    $('#taxCode').combobox({
        valueField: 'taxCode',
        textField: 'taxName',
        url: g.ctx + 'pc/sys/tax/rest/listAll',
        editable: false,
        prompt: '--- 请选择 ---',
        panelHeight: 'auto',
        panelWidth: 300,
        tipPosition: 'bottom',
    });
}

function loadGrid() {
    var searchHeight = $(el.searchForm).outerHeight();
    $('#tb').datagrid({
        url: g.ctx + "pc/finance/deduction/rest/list",
        iconCls: 'icon-list',
        title: '',
        // height: gridheight - 100,
        height: el.bodyHeight - searchHeight,
        width: gridwidth,
        singleSelect: true,
        pagination: true,
        idField: 'id',
        autoHeight: true,
        loadMsg: "数据加载中......",
        rownumbers: true,
        fitColumns: false,
        remoteSort: true,
        frozenColumns: [
            [
                {
                    field: 'ck',
                    checkbox: true
                },
                {
                    field: 'status',
                    title: '状态',
                    width: 80,
                    align:'center',
                    sortable: true,
                    formatter: function (value) {
                        switch (Number(value)) {
                            case 0:
                                return '<span style="color: grey;">新建</span>';
                            case 1:
                                return '<span style="color: blue;">OA审批中</span>';
                            case 2:
                                return '<span style="color: red;">OA审批拒绝</span>';
                            case 3:
                                return '<span style="color: green;">完成</span>';
                            case 4:
                                return '<span style="color: saddlebrown;">待采购确认</span>';
                            case 5:
                                return '<span style="color: red;">驳回</span>';
                            case 6:
                                return '<span style="color: orange;">待供方确认</span>';
                            default:
                                return '';
                        }
                    }
                },
                // {
                //     field: 'whether',
                //     title: '是否使用',
                //     width: 80,
                //     sortable: true,
                //     formatter: function (value) {
                //         switch (Number(value)) {
                //             case 0:
                //                 return '<span style="color: green;">未使用</span>';
                //             case 1:
                //                 return '<span style="color: red;">开票已使用</span>';
                //             case 2:
                //                 return '<span style="color: orange;">线下使用</span>';
                //             default:
                //                 return '';
                //         }
                //     }
                // },
                // {
                //     field: 'shareFlag',
                //     title: '是否分摊',
                //     width: 80,
                //     sortable: true,
                //     formatter: function (value) {
                //         switch (Number(value)) {
                //             case 0:
                //                 return '<span style="color: green;">不需要</span>';
                //             case 1:
                //                 return '<span style="color: red;">需要</span>';
                //             default:
                //                 return '';
                //         }
                //     }
                // },
                {
                    field: 'deductionNo',
                    title: '扣款编号',
                    width: 140,
                    sortable: true
                },
                {
                    field: 'deductionType',
                    title: '扣款类型',
                    width: 90,
                    sortable: true,
                    formatter: function (value) {
                        return getDicName('back_type',value);
                    }
                },
                {
                    field: 'deductionAmount',
                    title: '预计扣款金额(小写)',
                    width: 110,
                    sortable: true,
                    formatter: function (value) {
                        return formatNumber(value, 2, 1);
                    }
                }
            ]
        ],
        columns: [
            [
                {
                    field: 'dntAmount',
                    title: '未税扣款金额(小写)',
                    width: 110,
                    sortable: true,
                    formatter: function (value) {
                        return formatNumber(value, 2, 1);
                    }
                },
                {
                    field: 'taxCode',
                    title: '税率',
                    width: 60,
                    align:'center',
                    sortable: true,
                    // formatter: function (value) {
                    //     return getDicName('tax',value);
                    // }
                },
                // {
                //     field: 'deductionTime',
                //     title: '扣款时间',
                //     width: 90,
                //     sortable: true,
                //     formatter: function (value) {
                //         if (value) {
                //             return moment(value).format("YYYY-MM-DD");
                //         }
                //         return '';
                //     }
                // },
                {
                    field: 'deductionReason',
                    title: '扣款原因',
                    width: 300,
                    formatter: function(value, row, index) {
                        return '<a href="#" style="color: black" title="' + value + '" class="note">' + value + '</a>';
                    }
                },
                {
                    field: 'statementOrderCode',
                    title: '使用的对账单号',
                    width: 140,
                    sortable: true
                },
                {
                    field: 'supplierCode',
                    title: '供应商编码',
                    width: 90,
                    sortable: true
                },
                {
                    field: 'supplierName',
                    title: '供应商名称',
                    width: 270,
                    sortable: true
                },
                {
                    field: 'companyCode',
                    title: '公司代码',
                    width: 80,
                    sortable: true
                },
                {
                    field: 'companyName',
                    title: '公司名称',
                    width: 200,
                    sortable: true
                },
                {
                    field: 'erpSyncNo',
                    title: '关系PO号',
                    width: 140,
                },
                {
                    field: 'createUserName',
                    title: '扣款人',
                    width: 100,
                    align:'center',
                    sortable: true
                },
                {
                    field: 'createTime',
                    title: '创建时间',
                    width: 140,
                    sortable: true,
                    formatter: function (value) {
                        if (value) {
                            return moment(value).format("YYYY-MM-DD HH:mm:ss");
                        }
                        return '';
                    }
                },
                // {
                //     field: 'supReplyAttachment',
                //     title: '供应商盖章附件',
                //     width: '120px',
                //     align: 'left',
                //     formatter: function (value, row ,rec) {
                //         var sty = "";
                //         if (!row.supReplyAttachment) {
                //             sty = "color: #0C0C0C";
                //         }
                //         return '<a href="#" style="' + sty + '" onclick="uploadFilesDialog(\'' + row.supReplyAttachment + '\')">上传/下载</a>';
                //     }
                // },
                // {
                //     field: 'attachment',
                //     title: '附件',
                //     width: '15%',
                //     align: 'left',
                //     // hidden: isSupplier,
                //     formatter: function (value, row) {
                //         return '<a href="javascript:void(0)" onclick="uploadRequireFileUI(this)" data-value="' + row.attachment + '">下载</a>';
                //     }
                // },
                {
                    field: 'updateTime',
                    title: '最后更新时间',
                    width: 140,
                    sortable: true,
                    formatter: function (value) {
                        if (value) {
                            return moment(value).format("YYYY-MM-DD HH:mm:ss");
                        }
                        return '';
                    }
                },
            ]
        ],
        toolbar: ["-",
            {
                id: 'btn_edit',
                text: '查看',
                iconCls: 'icon-edit',
                handler: function () {
                    addOrEdit(1);
                }
            },
            '-',
            {
                id: 'btn_remove',
                text: '确认',
                iconCls: 'icon-remove',
                handler: function () {
                    addOrEdit(5);
                }
            },
            '-',
            // {
            //     id: 'btn_oa',
            //     text: '提交OA审批',
            //     iconCls: 'icon-ok',
            //     handler: function () {
            //         submitOa();
            //     }
            // },
        ],
        onLoadSuccess: function () {
            displayButtonByUserRole("supplier.deduction.confirm");
            $(el.tb).datagrid('clearSelections');
        },
        onCheck:function (rowIndex, field, value) {
            var rows = $('#tb').datagrid('getRows');
            var flag = rows[rowIndex].status;
            if(flag==0){ //  //数据状态 0:新建 1:OA审批中 2:OA审批拒绝 3:完成 4:待采购确认 5:驳回
                $('div.datagrid-toolbar a').eq(0).linkbutton('enable');
                $('div.datagrid-toolbar a').eq(1).linkbutton('disable');

            }else if(flag==1){   //数据状态 0:新建 1:OA审批中 2:OA审批拒绝 3:完成 4:待采购确认 5:驳回
                $('div.datagrid-toolbar a').eq(0).linkbutton('enable');
                $('div.datagrid-toolbar a').eq(1).linkbutton('disable');


            }else if(flag==2){   //数据状态 0:新建 1:OA审批中 2:OA审批拒绝 3:完成 4:待采购确认 5:驳回
                $('div.datagrid-toolbar a').eq(0).linkbutton('enable');
                $('div.datagrid-toolbar a').eq(1).linkbutton('enable');


            }else if(flag==3){   //数据状态 0:新建 1:OA审批中 2:OA审批拒绝 3:完成 4:待采购确认 5:驳回
                $('div.datagrid-toolbar a').eq(0).linkbutton('enable');
                $('div.datagrid-toolbar a').eq(1).linkbutton('disable');


            }else if(flag==4){   //数据状态 0:新建 1:OA审批中 2:OA审批拒绝 3:完成 4:待采购确认 5:驳回
                $('div.datagrid-toolbar a').eq(0).linkbutton('enable');
                $('div.datagrid-toolbar a').eq(1).linkbutton('disable');

            }else if(flag==5){
                $('div.datagrid-toolbar a').eq(0).linkbutton('enable');
                $('div.datagrid-toolbar a').eq(1).linkbutton('enable');

            }else if(flag==6){  //数据状态 0:新建 1:OA审批中 2:OA审批拒绝 3:完成 4:待采购确认 5:驳回 6:待供方确认
                $('div.datagrid-toolbar a').eq(0).linkbutton('enable');
                $('div.datagrid-toolbar a').eq(1).linkbutton('enable');
            }
        },
        onClickCell: function (rowIndex, field, value) {
        }
    });
}


function addOrEdit(flag) {
    var id= '';
    if(flag===1 || flag===5){
        var cbox = $('#tb').datagrid('getSelected');
        if (cbox === null || cbox === undefined) {
            layer.msg("请选中一条记录");
            return;
        }
        id = cbox.id;
    }
    // var dntAmountInput = $('#form').getElementById('dntAmount');
    // var dntAmountInput = document.getElementById('dntAmount');
    // if (flag === 1) {
    //     dntAmountInput.removeAttribute('readonly'); // 可编辑状态
    // } else if (flag === 2) {
    //     dntAmountInput.setAttribute('readonly', true); // 不可编辑状态
    // }
    if(flag == 5){
        var button =  [
        {
            text: itablei8n.save,
            iconCls: 'icon-save',
            handler: function () {
                topWin.frames['deduction'].saveOrUpdate(function () {
                    topWin.layer.msg('数据保存成功', {icon: 1});
                    deductionDialog.dialog('close');
                    $(el.tb).datagrid('reload');
                });
            },
        },
        {
            text: itablei8n.close,
            iconCls: 'icon-cancel',
            handler: function () {
                deductionDialog.dialog('close');
            }
        }
    ]}
    if(flag == 1){
        var button =  [
        {
            text: itablei8n.close,
            iconCls: 'icon-cancel',
            handler: function () {
                deductionDialog.dialog('close');
            }
        }
    ]}

    var deductionDialog = openDialog('deduction', g.ctx + 'pc/finance/deduction/supplierDeductionConfirm/detail?id=' + id + '&flag='+ flag, {
        title: flag===5?'确认':'查看',
        width: '90%',
        height: '90%',
        cache: false,
        modal: true,
        border: false,
        draggable: false,
        shadow: false,
        onClose: function () {
            deductionDialog.dialog('destroy');
        },
         buttons: button,
             //[
        //     {
        //         text: itablei8n.save,
        //         iconCls: 'icon-save',
        //         handler: function () {
        //             topWin.frames['deduction'].saveOrUpdate(function () {
        //                 topWin.layer.msg('数据保存成功', {icon: 1});
        //                 deductionDialog.dialog('close');
        //                 $(el.tb).datagrid('reload');
        //             });
        //         }
        //     },
        //     {
        //         text: itablei8n.close,
        //         iconCls: 'icon-cancel',
        //         handler: function () {
        //             deductionDialog.dialog('close');
        //         }
        //     }
        // ]
    });
}
/**
 * 提交Oa
 */
function submitOa() {
    var cbox = $('#tb').datagrid('getSelected');
    if (cbox === null || cbox === undefined) {
        layer.msg("请选中一条记录");
        return;
    }
    var deduction = cbox.id;

    parent.layer.confirm('是否确认提交？', function (index) {
        var loading = top.layer.msg('处理中', {icon: 16, shade: [0.1, '#000'], time: false});
        var url = g.ctx + 'pc/finance/supplierDeduction/rest/submitOa';
        $.ajax({
            url: url,
            method: "post",
            data: {id: deduction},
            success: function (data) {
                parent.layer.close(index);
                $(el.tb).datagrid('reload');
            },
            complete: function(data) {
                top.layer.close(loading);
            },
            error: function (data) {
                layer.close(index);
                layer.alert(JSON.parse(data.responseText).message);
            }
        });
    });
}