/*--------------------------文档信息-------------------------------------------
///功能：      仓库基本信息——维护画面
///创建人：  王群
///创建时间：2011年05月31日
///修改人：  --------------
///修改时间：--------------
///详细说明：--------------
-----------------------------------------------------------------------------*/
var strTableNameP0608 = 'TCkxx';    //定义全局变量 Table的Id
var strDialogP0608 = "divP0608";    //定义全局变量 供应商编辑窗口

/*-----------------------------------------------------------------------------
//功能：点击添加按钮，弹出对话框
//参数：
//strType:1：添加
//2：修改
//strTableName 表名
//title 弹出窗口的标题, title
-----------------------------------------------------------------------------*/
function alterRecord(strType) {
    try {
        $(".operate").remove();         //清除浮动按钮层
        $("#divP0608").empty();       //清空弹出窗口内容

        //添加
        if (strType == "1") {
            //选择操作的数据ID，添加时为0，修改时为选择行的id
            selRowId = "0";

            //值为1，插入数据；值为2，更新数据
            savesign = "1"; //初次保存insert数据

            //把弹出窗口框架及底部按钮添加到父窗口创建dialog中
            creatDiv_ShowDialog(strDialogP0608, "仓库基本信息", false, true, strTableNameP0608);
        }
        //修改
        else if (strType == "2") {
            selRowId = jQuery('#' + strTableNameP0608).jqGrid('getGridParam', 'selrow');
            savesign = "2"; //update数据        

            if (selRowId == "" || selRowId == null) {   //请选择要修改的记录
                window.parent.cihoAlert(msg.sz.edit.selEditRow);
                return;
            }

            //把弹出窗口框架及底部按钮添加到父窗口创建dialog中
            creatDiv_ShowDialog(strDialogP0608, "仓库基本信息", false, true, strTableNameP0608);
        }
        //添加表单到窗口中
        tableFormCkxx(strTableNameP0608, strType);
        //在窗口中的元素添加完毕后，给dialog定位
        //$("#" + strDialogP0608).dialog("option", "position", "center");
        $('#' + strDialogP0608 + "_content").css("margin-top", "50px");
        $("#a3", "#" + strDialogP0608).focus();
    } catch (e) { }
}

//创建表单
function tableFormCkxx(strTableNameP0608, strType) {
    var names = $('#' + strTableNameP0608).jqGrid('getGridParam', "colNames");      //存放表格中的列名
    var indexs = $('#' + strTableNameP0608).jqGrid('getGridParam', "colModel");       //存放表格中的列配置
    var sign = "";      //存放必填字段的标志位
    //开始创建表单
    var strForm = "";
    var strAppendTmp = "";
    strForm += "<ul>";
    for (var i = 1; i < names.length; i++) {
        //必填项，标识为红色星号
        if (indexs[i]["editrules"].required == true) {
            sign = "<font color='red'>*</font>";
        }
        else {
            sign = "";
        }
        //供应商序号；状态不显示
        if (indexs[i]["name"] == "ckdm" || indexs[i]["name"] == "zt" || indexs[i]["name"] == "id") {
            continue;
        }
        //编号自动生成，不可编辑
        if (indexs[i]["name"] == "a2") {
            var strBh = "";
            //新增
            if (strType == "1") {
                //系统生成编号
                var strBh = ParseData(window.external.DoOptions(strTableNameP0608, 'MakeBH', '{}'));
                strBh = strBh.BH;
            }
            else {//修改
                strBh = jQuery('#' + strTableNameP0608).jqGrid('getCell', selRowId, i);
            }
            strAppendTmp += "<li>";
            strAppendTmp += names[i] + "：";
            strAppendTmp += "<input type='text'  name='" + indexs[i]["name"] + "'";
            strAppendTmp += " value='" + strBh + "'";
            strAppendTmp += " id='" + indexs[i]["name"] + "' maxlength='10'";
            strAppendTmp += " onkeypress='return checkValidate(event)' onpaste='return validatePaste()'/>"; //限制输入，粘贴特殊字符
            strAppendTmp += "</li>";
            continue;
        }
        if (indexs[i]["edittype"] == "text") {
            strAppendTmp += "<li>";
            strAppendTmp += sign;
            strAppendTmp += names[i] + "：";
            strAppendTmp += "<input type='text'  value=''  name='" + indexs[i]["name"] + "'";
            strAppendTmp += " id='" + indexs[i]["name"] + "' maxlength='50'"; //限制输入长度
            strAppendTmp += " onkeypress='return checkValidate(event)' onpaste='return validatePaste()'/>"; //限制输入，粘贴特殊字符
            strAppendTmp += "</li>";
        }

    }
    strForm += strAppendTmp;
    strForm += "</ul>";
    $("#" + strDialogP0608 + "_divform").append(strForm);
    //修改时，加载value
    if (strType.toString() == '2') {
        for (var i = 0; i < indexs.length; i++) {
            $('#' + indexs[i].name, "#" + strDialogP0608 + "_divform").val(jQuery('#' + strTableNameP0608).jqGrid('getCell', selRowId, i));
        }
    }
    //form change设定
    $(":input", $("#" + strDialogP0608 + "_divform")).change(function () {
        $("#" + strDialogP0608 + "_divform").data("change", true);
    });
    //内存释放专区
    names = null;
    indexs = null;
    sign = null;
    strForm = null;
    strAppendTmp = null;
}

/*-----------------------------------------------------------------------------
关闭按钮时 看看数据有没有变化时
-----------------------------------------------------------------------------*/
function closeMyDlg(dlgId, strType, strTableNameP0608) {
    if ($("#" + strDialogP0608 + "_divform").data("change")) {
        //数据有变化
        showAlert();
    }
    else {
        // $("#" + dlgId).dialog("close");
        cihoDlgClose(dlgId);                    //关闭弹出层
    }
    //数据有变化
}

//验证表单是否有变化
function showAlert() {
    //函数名称
    window.parent.cihoAlert(
            msg.other.haveChange                     //message information
            , msgBox.dlgBtn.YesNoCancel         //按钮类型msgBox.dlgBtn.YesNo  msgBox.dlgBtn.YesNoCancel
            , function (strRet) {                           //回调函数
                if (msgBox.dlgRst.Ok == strRet) {
                    window.parent.cihoAlert("确定");
                }
                else if (msgBox.dlgRst.Yes == strRet) {
                    saveMyData(strDialogP0608, "1", strTableNameP0608);
                }
                else if (msgBox.dlgRst.No == strRet) {
                    //$("#" + strDialogP0608).dialog("close");
                    cihoDlgClose(strDialogP0608);                   //关闭弹出层
                }
            }
        );
}

//数据有效性验证
function formDataValidate(saveType) {
    var arrIds = $("#" + strTableNameP0608).jqGrid("getDataIDs");           //存放表格中的ID
    var strBh = trim($("#a2").val());                                                               //取得编号的值
    var strCkmc = trim($("#a3").val());                                                          //取得仓库名称的值


    for (var i = 0; i < arrIds.length; i++) {                                                      //编号重复时的验证     
        if ($("#" + strTableNameP0608).jqGrid("getCell", arrIds[i], "a2") != "") {
            if (strBh == $("#" + strTableNameP0608).jqGrid("getCell", arrIds[i], "a2") && arrIds[i] != selRowId) {
                window.parent.cihoAlert(msg.sz.ck.numberingQqual, msgBox.dlgBtn.YesNo, function (strRet) {
                    if (msgBox.dlgRst.Yes == strRet) {
                        if (false == dataRequired(strTableNameP0608, strDialogP0608)) {             //验证仓库名称能为空
                            return false;
                        }
                        for (var i = 0; i < arrIds.length; i++) {                                                           //验证仓库的重名
                            if (strCkmc == $("#" + strTableNameP0608).jqGrid("getCell", arrIds[i], "a3") && arrIds[i] != selRowId) {
                                window.parent.cihoAlert(msg.sz.ck.nameQqual, null, getBinFocus);
                                return false;
                            }
                        }
                        SaveP0608(strDialogP0608, strTableNameP0608, saveType);
                    }
                    else {
                        $("#a2").focus();
                    }
                });
                return false;
            }
        }
    }

    if (false == dataRequired(strTableNameP0608, strDialogP0608)) {             //验证仓库名称能为空
        return false;
    }

    for (var i = 0; i < arrIds.length; i++) {                                                           //验证仓库的重名
        if (strCkmc == $("#" + strTableNameP0608).jqGrid("getCell", arrIds[i], "a3") && arrIds[i] != selRowId) {
            window.parent.cihoAlert(msg.sz.ck.nameQqual, null, getBinFocus);
            return false;
        }
    }
    return true;
    //释放一下内存
    arrIds = null;
    strCkmc = null;
}

//获得仓库名称的焦点
function getBinFocus() {
    $("#a3").focus();
}

/*-----------------------------------------------------------------------------
//数据有效性验证：
// 必填项，是否为空；
//数据格式是否正确。
//正常：返回true
//否则false
-----------------------------------------------------------------------------*/
function saveMyData(dlgId, stype, strTableNameP0608) {

    var returnStates = formDataValidate(stype);            //数据有效性的验证
    if (returnStates) {                                                       //数据有效时执行保存的操作  
        SaveP0608(strDialogP0608, strTableNameP0608, stype);
    }
}

/*-----------------------------------------------------------------------------
//功能介绍：保存数据
//参   数：
strTableName, jqGrid名称
saveType，	保存类型
0：退出
3：保存新增
4：保存
//返回 值：
-----------------------------------------------------------------------------*/
function SaveP0608(dlgId, strTableNameP0608, saveType) {
    try {
        var strRet = saveDataP0608(strTableNameP0608, "ckdm", dlgId);       //同步保存数据
        if ("0" == strRet) {
            //保存新增
            if (saveType == '2') {
                selRowId = "0";
                savesign = "1";

                //清空元素中的数据
                $(":input").val("");
                //系统生成编号
                var strBh = ParseData(window.external.DoOptions(strTableNameP0608, 'MakeBH', '{}'));
                strBh = strBh.BH;
                $("#a2").val(strBh);
                $("#a3", "#" + strDialogP0608).focus();
            }
            else {
                // $('#' + strDialogP0608).dialog('close');
                cihoDlgClose(strDialogP0608);               //关闭弹出层
            }
            changeComboZt(strTableNameP0608);
            //resizeGrid(strTableNameP0608);
            resizeGridScroll(strTableNameP0608);
        }
        //释放一下内存
        strRet = null;
        strBh = null;
    } catch (e) { }
}

/*---------------------------------------------------------------
创建浮动层按钮
供应商基本信息中浮动层按钮有：修改|删除|启【停】用
-----------------------------------------------------------------*/
function fDCP0608(rowId) {
    var strZt = $("#" + strTableNameP0608).jqGrid('getCell', rowId, "zt");      //获取表格中状态值
    selRowId = rowId;
    if (strZt == "已启用") {
        var btn = "<a onclick=\"alterP0608('" + selRowId + "');\">修改</a>-<a onclick=\"deleteP0608('" + selRowId + "');\">删除</a>-<a onclick=\"alterSetP0608('" + selRowId + "');\">停用</a>";
    }
    else {
        var btn = "<a onclick=\"alterP0608('" + selRowId + "');\">修改</a>-<a onclick=\"deleteP0608('" + selRowId + "');\">删除</a>-<a onclick=\"alterSetP0608('" + selRowId + "');\">启用</a>";
    }
    createFloatButton.call(this, rowId, btn);
    //释放一下内存
    strZt = null;
    btn = null;
}

//调用修改的方法
function alterP0608(id) {
    if (id != null) {
        //打开修改窗口
        alterRecord("2");
    }
    else {
        window.parent.cihoAlert(msg.sz.edit.selEditRow);
    }
}

//调用删除方法
function deleteP0608(rowId) {
    try {
        window.parent.cihoAlert(msg.del.delConfirm, msgBox.dlgBtn.YesNo, function (result) {
            if (result == msgBox.dlgRst.Yes) {
                var strJsonData = "{\"ckdm\":\"" + $("#" + strTableNameP0608).jqGrid("getCell", rowId, "ckdm") + "\"}";
                var objResult = ParseData(window.external.DoOptions(strTableNameP0608, 'Delete', strJsonData));
                //删除成功后，重新加载数据
                if (objResult.ReturnCode == 0) {
                    $("#" + strTableNameP0608).jqGrid("delRowData", rowId);
                    rowId = "";
                    changeComboZt(strTableNameP0608);
                    //resizeGrid(strTableNameP0608);
                    resizeGridScroll(strTableNameP0608);
                }
                else {
                    window.parent.cihoAlert(objResult.MSG);
                }
            }
        });
    } catch (e) { }
}

//修改状态
function alterSetP0608(id) {
    try {
        if (true == alterState(strTableNameP0608, id, 'zt', "ckdm")) {
            changeComboZt(strTableNameP0608);
        }
    } catch (e) { }
}

/*-----------------------------------------------------------------------------
//功能介绍：保存数据
//参   数：
//strTableName  表名，同时是该页面对应的模块的类名
//url           保存数据的URL
//saveType:
//          3：保存新增
//          4：保存
//          0：退出
//返回 值：NULL
-----------------------------------------------------------------------------*/
function saveDataP0608(strTableNameP0608, strKey, strDlgId) {
    var strRecord = "";
    //获取要保存的数据。
    if (savesign == "1") {
        strRecord = "{";
    }
    else {
        strRecord = "{\"" + strKey + "\":\"" + $("#" + strTableNameP0608).jqGrid("getCell", selRowId, strKey) + "\",";
    }
    $(":input", $("#" + strDlgId + "_divform")).each(function () {
        if ($(this).attr("name") != "" && $(this).attr("name") != null) {
            strRecord += "\"" + $(this).attr("name") + "\":\"" + trim($(this).val()) + "\",";
        }
    });
    //去掉最后的'，'
    strRecord = strRecord.substring(0, strRecord.length - 1);
    strRecord += "}";

    var s = "";
    //初次保存，savesign：1---insert数据 ；savesign：2---update数据
    if (savesign == "1") {
        //插入
        s = saveData(strTableNameP0608, strRecord, "1");
        selRowId = s.id;
        if ("0" == s.ReturnCode) {
            savesign = "2";
            $("#" + strTableNameP0608).jqGrid("addRowData", selRowId, ParseData(strRecord), "first");
            //设定a1：代码的值
            $("#" + strTableNameP0608).jqGrid("setCell", selRowId, strKey, s[strKey]);
            //设定状态值
            $("#" + strTableNameP0608).jqGrid("setCell", selRowId, "zt", "已启用");
            $("#" + strDlgId + "_divform").data('change', false);

        }
    }
    else {//更新
        s = saveData(strTableNameP0608, strRecord, "2");
        if ("0" == s.ReturnCode) {
            //更新数据到jqGrid
            $("#" + strTableNameP0608).jqGrid("setRowData", selRowId, ParseData(strRecord));
            $("#" + strDlgId + "_divform").data('change', false);
        }
    }
    return s.ReturnCode;
    //释放一下内存
    strRecord = null;
    arrGrid = null;
    objResult = null;
    strParsedData = null;
}

//加载设置状态的值
function formatterZtP0608() {
    var arrIds = $(this).jqGrid("getDataIDs");
    var strState = "1";
    for (var i = 0; i < arrIds.length; i++) {
        strState = $(this).jqGrid("getCell", arrIds[i], "zt");
        if (strState == "True") {
            //zt：状态
            $(this).jqGrid("setCell", arrIds[i], "zt", "已启用");
        }
        if (strState == "False") {
            $(this).jqGrid("setCell", arrIds[i], "zt", "已停用");
        }
    }
    //释放内存
    arrIds = null;
}

//新增:增加双击编辑事件
function funcDbClick(rowId) {
    alterRecord("2");
}