예제 #1
0
        private void BindOrderList()
        {
            DataTable tmpDT = new DataTable();

            if (Session["DT" + ltlempid.Text] != null)
            {
                tmpDT = Session["DT" + ltlempid.Text] as DataTable;
            }
            else
            {
                tmpDT = CreateTable();
            }
            if (Session[ltlempid.Text] != null)
            {
                DataTable dt = (DataTable)Session[ltlempid.Text];
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    //检测订单是否重复
                    if (getck(dt.Rows[i]["C_ID"].ToString()))
                    {
                        Mod_TMO_ORDER mod = tmo_order.GetModel(dt.Rows[i]["C_ID"].ToString());
                        if (mod != null)
                        {
                            ltltype.Text     = mod.N_TYPE.ToString();         //发运类型
                            ltlcon_no.Text   = mod.C_CON_NO;                  //合同号
                            ltlcustname.Text = mod.C_CUST_NAME;               //客户

                            string areafalg = ts_dic.GetAreaFlag(mod.C_AREA); //获取区域是否按客户发运Y/N

                            //线材
                            if (dropsfxc.SelectedItem.Text == "是")
                            {
                                if (mod.C_STL_GRD == "GCr15")
                                {
                                    tmpDT.Rows.Add(new object[] {
                                        dt.Rows[i]["C_ID"],
                                        mod.C_CON_NO,
                                        mod.C_STL_GRD,
                                        mod.C_SPEC,
                                        mod.C_STD_CODE,
                                        mod.C_FREE1,
                                        mod.C_FREE2,
                                        mod.C_PACK,
                                        mod.N_WGT,
                                        mod.C_VDEF1,         //质量等级
                                        mod.C_AREA,          //区域
                                        mod.C_MAT_CODE,
                                        mod.C_MAT_NAME,
                                        mod.C_CUST_NAME,          //订货单位
                                        mod.C_RECEIPTCORPID,      //收货单位
                                        mod.C_RECEIPTAREAID,      //收货地区
                                        mod.C_RECEIVEADDRESS,     //收货地址
                                        mod.N_TYPE,
                                        mod.C_CUST_NO,
                                        dt.Rows[i]["PKPLAN"], //日计划主键
                                        dt.Rows[i]["YLXWGT"], //已履行量
                                        dt.Rows[i]["DLXWGT"], //待履行量
                                        "",                   //可发运量
                                        ""                    //可发支数
                                    });
                                }
                                else
                                {
                                    #region //引用线材自由项
                                    DataTable dtroll = tmo_order.GetFyd_Roll_Prodcut(mod.C_MAT_CODE, mod.C_STD_CODE, mod.C_AREA).Tables[0];

                                    if (dtroll.Rows.Count > 0)
                                    {
                                        #region               //可发运量/可发支数

                                        decimal sumztwgt = 0; //在途总量
                                        decimal sumztzs  = 0; //在途总支数
                                        decimal sumkcwgt = 0; //库存总量
                                        decimal sumkczs  = 0; //库存总支数
                                        decimal kfwgt    = 0; //可发重量
                                        decimal kfzs     = 0; //可发支数

                                        Mod_TQB_CHECKSTATE modzl = tqb_checkstate.GetModel(mod.C_VDEF1);

                                        DataTable dtztwgt = areafalg == "N" ? tmo_order.ZTWGT(mod.C_MAT_CODE, dtroll.Rows[0]["C_STD_CODE"].ToString(), mod.C_AREA, dtroll.Rows[0]["C_BZYQ"].ToString(), modzl.C_CHECKSTATE_NAME).Tables[0] : tmo_order.ZTWGT(mod.C_MAT_CODE, dtroll.Rows[0]["C_STD_CODE"].ToString(), mod.C_AREA, dtroll.Rows[0]["C_BZYQ"].ToString(), modzl.C_CHECKSTATE_NAME, mod.C_CUST_NAME, mod.C_CON_NO).Tables[0];
                                        if (dtztwgt.Rows.Count > 0)
                                        {
                                            sumztwgt = Convert.ToDecimal(dtztwgt.Compute("sum(N_FYWGT)", "true")); //在途量
                                            sumztzs  = Convert.ToDecimal(dtztwgt.Compute("sum(N_FYZS)", "true"));  //在途支数
                                        }
                                        DataTable dtkcwgt = areafalg == "N" ? tmo_order.KCWGT(mod.C_MAT_CODE, dtroll.Rows[0]["C_STD_CODE"].ToString(), mod.C_AREA, dtroll.Rows[0]["C_BZYQ"].ToString(), modzl.C_CHECKSTATE_NAME).Tables[0] : tmo_order.KCWGT(mod.C_MAT_CODE, dtroll.Rows[0]["C_STD_CODE"].ToString(), mod.C_AREA, dtroll.Rows[0]["C_BZYQ"].ToString(), modzl.C_CHECKSTATE_NAME, mod.C_CUST_NAME, mod.C_CON_NO).Tables[0];
                                        if (dtkcwgt.Rows.Count > 0)
                                        {
                                            sumkcwgt = Convert.ToDecimal(dtkcwgt.Rows[0]["N_WGT"]);   //库存量
                                            sumkczs  = Convert.ToDecimal(dtkcwgt.Rows[0]["jianshu"]); //库存支数
                                        }
                                        kfwgt = sumkcwgt - sumztwgt;
                                        kfzs  = sumkczs - sumztzs;
                                        #endregion

                                        tmpDT.Rows.Add(new object[] {
                                            dt.Rows[i]["C_ID"],
                                            mod.C_CON_NO,
                                            mod.C_STL_GRD,
                                            mod.C_SPEC,
                                            mod.C_STD_CODE,
                                            dtroll.Rows[0]["C_ZYX1"].ToString(),
                                            dtroll.Rows[0]["C_ZYX2"].ToString(),
                                            dtroll.Rows[0]["C_BZYQ"].ToString(),
                                            mod.N_WGT,
                                            mod.C_VDEF1,         //质量等级
                                            mod.C_AREA,          //区域
                                            mod.C_MAT_CODE,
                                            mod.C_MAT_NAME,
                                            mod.C_CUST_NAME,          //订货单位
                                            mod.C_RECEIPTCORPID,      //收货单位
                                            mod.C_RECEIPTAREAID,      //收货地区
                                            mod.C_RECEIVEADDRESS,     //收货地址
                                            mod.N_TYPE,
                                            mod.C_CUST_NO,
                                            dt.Rows[i]["PKPLAN"],    //日计划主键
                                            dt.Rows[i]["YLXWGT"],    //已履行量
                                            dt.Rows[i]["DLXWGT"],    //待履行量
                                            kfwgt.ToString(),        //可发运量
                                            kfzs.ToString()          //可发支数
                                        });
                                    }
                                    else
                                    {
                                        #region               //可发运量/可发支数

                                        decimal sumztwgt = 0; //在途总量
                                        decimal sumztzs  = 0; //在途总支数
                                        decimal sumkcwgt = 0; //库存总量
                                        decimal sumkczs  = 0; //库存总支数
                                        decimal kfwgt    = 0; //可发重量
                                        decimal kfzs     = 0; //可发支数

                                        Mod_TQB_CHECKSTATE modzl = tqb_checkstate.GetModel(mod.C_VDEF1);

                                        DataTable dtztwgt = areafalg == "N" ? tmo_order.ZTWGT(mod.C_MAT_CODE, mod.C_STD_CODE, mod.C_AREA, mod.C_PACK, modzl.C_CHECKSTATE_NAME).Tables[0] : tmo_order.ZTWGT(mod.C_MAT_CODE, mod.C_STD_CODE, mod.C_AREA, mod.C_PACK, modzl.C_CHECKSTATE_NAME, mod.C_CUST_NAME, mod.C_CON_NO).Tables[0];
                                        if (dtztwgt.Rows.Count > 0)
                                        {
                                            sumztwgt = Convert.ToDecimal(dtztwgt.Compute("sum(N_FYWGT)", "true"));
                                            sumztzs  = Convert.ToDecimal(dtztwgt.Compute("sum(N_FYZS)", "true"));
                                        }
                                        DataTable dtkcwgt = areafalg == "N" ? tmo_order.KCWGT(mod.C_MAT_CODE, mod.C_STD_CODE, mod.C_AREA, mod.C_PACK, modzl.C_CHECKSTATE_NAME).Tables[0] : tmo_order.KCWGT(mod.C_MAT_CODE, mod.C_STD_CODE, mod.C_AREA, mod.C_PACK, modzl.C_CHECKSTATE_NAME, mod.C_CUST_NAME, mod.C_CON_NO).Tables[0];
                                        if (dtkcwgt.Rows.Count > 0)
                                        {
                                            sumkcwgt = Convert.ToDecimal(dtkcwgt.Rows[0]["N_WGT"]);
                                            sumkczs  = Convert.ToDecimal(dtkcwgt.Rows[0]["jianshu"]);
                                        }
                                        kfwgt = sumkcwgt - sumztwgt;
                                        kfzs  = sumkczs - sumztzs;
                                        #endregion

                                        tmpDT.Rows.Add(new object[] {
                                            dt.Rows[i]["C_ID"],
                                            mod.C_CON_NO,
                                            mod.C_STL_GRD,
                                            mod.C_SPEC,
                                            mod.C_STD_CODE,
                                            mod.C_FREE1,
                                            mod.C_FREE2,
                                            mod.C_PACK,
                                            mod.N_WGT,
                                            mod.C_VDEF1,         //质量等级
                                            mod.C_AREA,          //区域
                                            mod.C_MAT_CODE,
                                            mod.C_MAT_NAME,
                                            mod.C_CUST_NAME,          //订货单位
                                            mod.C_RECEIPTCORPID,      //收货单位
                                            mod.C_RECEIPTAREAID,      //收货地区
                                            mod.C_RECEIVEADDRESS,     //收货地址
                                            mod.N_TYPE,
                                            mod.C_CUST_NO,
                                            dt.Rows[i]["PKPLAN"],    //日计划主键
                                            dt.Rows[i]["YLXWGT"],    //已履行量
                                            dt.Rows[i]["DLXWGT"],    //待履行量
                                            kfwgt.ToString(),        //可发运量
                                            kfzs.ToString()          //可发支数
                                        });
                                    }
                                    #endregion
                                }
                            }
                            else
                            {
                                #region //钢坯
                                tmpDT.Rows.Add(new object[] {
                                    dt.Rows[i]["C_ID"],
                                    mod.C_CON_NO,
                                    mod.C_STL_GRD,
                                    mod.C_SPEC,
                                    mod.C_STD_CODE,
                                    mod.C_FREE1,
                                    mod.C_FREE2,
                                    mod.C_PACK,
                                    mod.N_WGT,
                                    mod.C_VDEF1,         //质量等级
                                    mod.C_AREA,          //区域
                                    mod.C_MAT_CODE,
                                    mod.C_MAT_NAME,
                                    mod.C_CUST_NAME,          //订货单位
                                    mod.C_RECEIPTCORPID,      //收货单位
                                    mod.C_RECEIPTAREAID,      //收货地区
                                    mod.C_RECEIVEADDRESS,     //收货地址
                                    mod.N_TYPE,
                                    mod.C_CUST_NO,
                                    dt.Rows[i]["PKPLAN"], //日计划主键
                                    dt.Rows[i]["YLXWGT"], //已履行量
                                    dt.Rows[i]["DLXWGT"], //待履行量
                                    "",                   //可发运量
                                    ""                    //可发支数
                                });

                                #endregion
                            }
                        }
                    }
                }
            }
            if (tmpDT.Rows.Count > 0)
            {
                rptList.DataSource            = tmpDT;
                Session["DT" + ltlempid.Text] = tmpDT;
                rptList.DataBind();
                Session[ltlempid.Text] = null;
            }
            else
            {
                rptList.DataSource            = null;
                Session["DT" + ltlempid.Text] = null;
                rptList.DataBind();
                txtcount.Value  = "";
                txtsumwgt.Value = "";

                Session[ltlempid.Text] = null;
            }
        }