SM45640_SaveTJ保存并提交

using Salien.Utility;
using Salien.Utility.SUWF;
using Salien.Utility.WebControls;
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Web.UI.WebControls;

namespace WXSMZP
{
    public class SM45640_SaveTJ : ISuwfBus /*提交*/
    {
        /// <summary>
        /// 成员
        /// </summary>
        private SlnSuwfPage _page;
        SalienGridView grdTest;
        /// <summary>
        /// 初始化页面
        /// </summary>
        /// <param name="page"></param>
        void ISuwfBus.Initial(SlnSuwfPage page)
        {
            try
            {
                this._page = page;
                grdTest = (SalienGridView)_page.FindControl("grdTest");
                _page.Load += new EventHandler(Page_Load);
                ClsPubFunction.BindButtonEvent(_page, "btnSaveTJ", this.BtnSaveTJ_Click);
            }
            catch (Exception ex)
            {
                page.ShowMessage(ex.Message);
            }
        }
        #region 页面加载 Page_Load(object sender, EventArgs e)   
        /// <summary>
        /// 页面加载
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!_page.IsPostBack)
                {
                    DoAfterFillGrid();
                }
            }
            catch (Exception ex)
            {
                _page.ShowMessage(ex.Message);
            }
        }
        #endregion

        #region 提交事件 BtnSaveTJ_Click
        /// <summary>
        /// "提交"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>   
        private void BtnSaveTJ_Click(object sender, EventArgs e)
        {
            try
            {
                string pks = _page.GetRowDataPrimaryKeys();

                if (pks.Length == 0)
                {
                    _page.ShowMessage("请选择网格数据!");
                    return;
                }
                string JTRWID = _page.GetValueByName("JTRWID");
                if (JTRWID == "")
                {
                    _page.ShowMessage("订单任务ID为空");
                    return;
                }
                string BZID = _page.GetRowDataByKey(0, "BZID");
                if (BZID == "")
                {
                    _page.ShowMessage("班组ID为空");
                    return;
                }
                string SCDDMXID = _page.GetValueByName("SCDDMXID");

                if (SCDDMXID == "" || SCDDMXID.Length == 0)
                {
                    _page.ShowMessage(SlnString.ScriptAlertMessage("请生产订单表ID为空"));
                    return;
                }
                List<string> lstSQL = new List<string>();
                GridView grd = _page.MainGrid;

                /*保存的值限制条件*/
                ClsGridEdit gridEdit = new ClsGridEdit(this._page);
                string sMsg = gridEdit.CheckGridData();
                if (!string.IsNullOrEmpty(sMsg))
                {
                    _page.ShowMessage(gridEdit.CheckGridData());
                    return;
                }
                foreach (GridViewRow gridRow in grd.Rows)
                {
                    if (_page.GridRowIsSelected(gridRow.RowIndex))
                    {
                        string DJZT = _page.GetRowDataByKey(gridRow.RowIndex, "DJZT");/*产品大类*/
                        if (DJZT == "10")
                        {
                            _page.ShowMessage("第【" + (gridRow.RowIndex + 1).ToString() + "】行已审核,不能重复审核");
                            return;
                        }
                        string ID = this._page.GetRowDataByKey(gridRow.RowIndex, "ID");
                        string JGSL = this._page.GetRowDataByKey(gridRow.RowIndex, "JGSL");
                        string GJ = _page.GetRowDataByKey(gridRow.RowIndex, "GJ");

                        string DJLX = _page.GetRowDataByKey(gridRow.RowIndex, "DJLX");
                        string GZNR = this._page.GetRowDataByKey(gridRow.RowIndex, "GZNR");
                        string BZDEID = _page.GetRowDataByKey(gridRow.RowIndex, "BZDEID");
                        if (DJLX == "1")
                        {
                            if (SlnString.IsNull(BZDEID) )
                            {
                                _page.ShowMessage("" + (gridRow.RowIndex + 1).ToString() + "行无包装定额工价ID,保存失败");
                                return;
                            }

                            string GJ_BZDE = ConvertFunction.ObjToStr(SlnDataAccess.GetValueBySql("select GJ From SM_ZP_GPTBZDE_TB Where ID=" + BZDEID));

                            if (ClsPubFunction.AtoiExt(GJ) != ClsPubFunction.AtoiExt(GJ_BZDE) )
                            {
                                _page.ShowMessage("" + (gridRow.RowIndex + 1).ToString() + "行工价信息出错");
                                return;
                            }
                        }
                        string YGID = _page.GetRowDataByKey(gridRow.RowIndex, "YGID");
                        if (SlnString.IsNull(YGID))
                        {
                            _page.ShowMessage("" + (gridRow.RowIndex + 1).ToString() + "行缺失员工信息(YGID)");
                            return;
                        }

                        if (SlnString.IsNull(JGSL) || ConvertFunction.ObjToDouble(JGSL) == 0.0)
                        {
                            _page.ShowMessage("" + (gridRow.RowIndex + 1).ToString() + "行缺失记工数量JGSL信息");
                            return;
                        }
                        if (SlnString.IsNull(GJ) || ConvertFunction.ObjToDouble(GJ) == 0.0)
                        {
                            _page.ShowMessage("" + (gridRow.RowIndex + 1).ToString() + "行缺失工价GJ信息");
                            return;
                        }
                        string sql = "update SM_ZP_GZHS_TB set";
                        int i = 0;
                        if (_page.GridCellIsModified(gridRow.RowIndex, "JGSL") && _page.GridCellIsModified(gridRow.RowIndex, "GJ"))
                        {
                            sql = sql + " JGSL='" + JGSL + "',GJ='" + GJ + "',";
                            i++;
                        }
                        if (_page.GridCellIsModified(gridRow.RowIndex, "JGSL") && !_page.GridCellIsModified(gridRow.RowIndex, "GJ"))
                        {
                            sql = sql + " JGSL='" + JGSL + "',";
                            i++;
                        }
                        if (!_page.GridCellIsModified(gridRow.RowIndex, "JGSL") && _page.GridCellIsModified(gridRow.RowIndex, "GJ"))
                        {
                            sql = sql + " GJ='" + GJ + "',";
                            i++;
                        }
                        if (_page.GridCellIsModified(gridRow.RowIndex, "GZNR"))
                        {
                            sql = sql + " GZNR='" + GZNR + "',";
                            i++;
                        }
                        if (_page.GridCellIsModified(gridRow.RowIndex, "BZDEID"))
                        {
                            sql = sql + " BZDEID='" + BZDEID + "',";
                            i++;
                        }
                        if (i > 0)
                        {
                            sql = sql.Substring(0, sql.Length - 1);
                            lstSQL.Add(sql + " where id =" + ID);
                        }
                    }
                } /*end of foreach*/
                string msg = "";
                /* string sql= "select count(id) from SM_ZP_GZHS_TB where djzt=0 and id in ("+pks+")";*/
                if (lstSQL != null && lstSQL.Count > 0)
                {
                    if ((msg = SlnDataAccess.ExecuteSQL(lstSQL)) == "") { msg += "数据更新成功->"; }
                    else
                    {
                        msg += "数据更新失败->";
                    }

                }
                else if (IsZero(pks) > 0)
                {
                    msg += "数据有未提交->";
                }
                else
                {
                    msg += "数据已提交的->";
                }
                if (msg.Contains("更新成功") || msg.Contains("未提交"))
                {
                    DataTable dt = CheckGHSLAndZPJE(JTRWID);
                    decimal FPSL = ClsPubFunction.Atoi(ClsTable.GetMAX("FPSL", dt.Rows).ToString());
                    decimal GJ_HJ = ClsPubFunction.Atoi(ClsTable.GetMAX("GJ_HJ", dt.Rows).ToString());
                    decimal sumJGSL = ClsPubFunction.Atoi(ClsTable.GetSUM("JGSL", dt.Select("DJLX=1")).ToString());
                    decimal sumJGGJ_HJ = ClsPubFunction.Atoi(ClsTable.GetSUM("JGGJ_HJ", dt.Select("DJLX=0")).ToString());
                    //   double SubGH = CalcSub_sumJGSL_FPSL(sumJGSL.ToString(), FPSL.ToString());
                    //  double SubZP = CalcSub_JGGJ_HJ_GJ_HJ(sumJGGJ_HJ.ToString(), GJ_HJ.ToString());
                    //    if(SubGH > 0.000000001)
                    if (Math.Round(sumJGSL - FPSL, 4) > 0.0000m)
                    {
                        msg += "归货情况下,记工数量的和【" + sumJGSL + "】不能大于分配数量【" + FPSL + "";
                    }
                    else if (Math.Round(sumJGGJ_HJ - GJ_HJ, 4) > 0.0000m)
                    //   else if (sumJGGJ_HJ > GJ_HJ)
                    {
                        msg += "装配情况下,记工工价合计【" + sumJGGJ_HJ + "】不能超过总工价【" + GJ_HJ + "";
                    }
                    else
                    {
                        msg += SlnDataAccess.ExecuteProcedure("SM45640_SaveTJ_SP('" + SCDDMXID + "','" + pks + "')");
                        msg += "->提交成功";
                       /*  _page.ClientScript.RegisterStartupScript(this.GetType(), "Save", "<script type='text/javascript'>var r=window.confirm('" + msg + ",是否确定关闭?');"
+ @"if (r==true){
                  var pWin = getParentWin();
                               pWin.document.all.btnQuery.click();
                               closeWin();
}</script>");
       */                
                        _page.ClientScript.RegisterStartupScript(this.GetType(), "Save", "<script type='text/javascript'>var r=window.confirm('" + msg + ",是否确定关闭?');"
+ @"if (r==true){
var pWindow = window.parent.opener;
                     if(pWindow != null && pWindow.document.all.btnQuery != null)
                     {pWindow.document.all.btnQuery.click();}
                     pWindow = window.parent.parent;
                     if(pWindow != null && pWindow.gridframe != null && pWindow.gridframe.document.all.btnQuery != null)
                     {pWindow.gridframe.document.all.btnQuery.click();}
window.close();}
</script>");                 
                
                        return;
                    }
                }
                else
                {
                    msg += "->数据录入失败";
                }

                _page.ShowMessage(msg);
                _page.btnQuery_Click(null, null);
                return;
            }
            catch (Exception ex)
            {
                _page.ShowMessage("SM45640_SaveTJ|" + ex.Message);
            }
        }
        #endregion
        DataTable CheckGHSLAndZPJE(string JTRWID)
        {
            string sql = @"Select hs.JGSL,hs.GJ,hs.DJLX,hs.JTRWID,sm45640_qrgzhsd_fc(JTRWID) as GJ_HJ,jtrw.FPSL
                             ,jtrw.fpsl * jtrw.gj as JGGJ_HJ from SM_ZP_GZHS_TB hs left join 
                         SM_SC_ZPJTRW_TB jtrw on jtrw.id = hs.jtrwid Where JTRWID='" + JTRWID + "'";
            return SlnDataAccess.GetDataTable(sql);
        }

        /// <summary>
        /// 红单变色
        /// </summary>
        void DoAfterFillGrid()
        {
            int index = _page.Unit.ProgUnit.FieldList.GetFieldByKey("HDBZ").Index;/*红单标志所在列*/
            int DJZTindex = _page.Unit.ProgUnit.FieldList.GetFieldByKey("DJZT").Index;/*红单标志所在列*/
            for (int i = 0; i < grdTest.Rows.Count; i++)
            {
                string strT = Convert.ToString(_page.GridData.Rows[i][index]);
                if (strT.Contains("红单"))
                {
                    grdTest.Rows[i].Cells[index].BackColor = Color.Yellow;
                }
                string DJZT = Convert.ToString(_page.GridData.Rows[i][DJZTindex]);
                if (DJZT.Contains("审核"))
                {
                    grdTest.Rows[i].Cells[DJZTindex].BackColor = Color.LightGreen;
                }
                if (DJZT.Contains("提交"))
                {
                    grdTest.Rows[i].Cells[DJZTindex].BackColor = Color.YellowGreen;
                }

            }
        }

        #region 
        int IsZero(string pks)
        {
            string sql = "select count(id) from SM_ZP_GZHS_TB where djzt=0 and id in (" + pks + ")";
            return ConvertFunction.ObjToInt32(SlnDataAccess.GetValueBySql(sql));
        }
        #endregion
    }
}

 

posted @ 2025-10-31 06:38  知行一体2  阅读(2)  评论(0)    收藏  举报