示例#1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                this._taskid = Convert.ToInt32(Request.QueryString["TaskID"]);
                using (MMSProDBDataContext db = new MMSProDBDataContext(ConfigurationManager.ConnectionStrings["mmsConString"].ConnectionString))
                {
                    SrinQualifiedReceipt sqr = db.SrinQualifiedReceipt.SingleOrDefault(u => u.TaskID.Equals(_taskid));
                    _receiptid = sqr.SrinQualifiedReceiptID;
                    bWriteOff  = sqr.NeedWriteOff;

                    if (db.TaskStorageIn.SingleOrDefault(u => u.TaskStorageID.Equals(_taskid)).TaskState.Equals("已完成"))
                    {
                        bFinished = true;
                    }
                }

                InitializeCustomControls();
                BindDataToCustomControls();
                ShowCustomControls();
            }
            catch (Exception ex)
            {
                MethodBase    mb      = MethodBase.GetCurrentMethod();
                LogToDBHelper lhelper = LogToDBHelper.Instance;
                lhelper.WriteLog(ex.Message, "错误", string.Format("{0}.{1}", mb.ReflectedType.Name, mb.Name));
                ClientScript.RegisterClientScriptBlock(typeof(string), "提示", string.Format("<script>alert('{0}')</script>", LogToDBHelper.LOG_MSG_LOADERROR));
            }
        }
示例#2
0
        private void BindDataToCustomControls()
        {
            using (MMSProDBDataContext db = new MMSProDBDataContext(ConfigurationManager.ConnectionStrings["mmsConString"].ConnectionString))
            {
                //初始化表头信息
                SrinQualifiedReceipt sqrp = db.SrinQualifiedReceipt.SingleOrDefault(u => u.SrinQualifiedReceiptID == _receiptid);

                ((Label)GetControltByMaster("lblProject")).Text = sqrp.SrinInspectorVerifyTransfer.SrinProduceVerifyTransfer.SrinVerifyTransfer.SrinReceipt.SrinStocktakingConfirm.SrinStocktaking.SrinSubDoc.ProjectInfo.ProjectName;
                ((Label)GetControltByMaster("lblDate")).Text    = string.Concat(sqrp.CreateTime.ToLongDateString(), sqrp.CreateTime.ToLongTimeString());
                ((Label)GetControltByMaster("lblCode")).Text    = sqrp.SrinQualifiedReceiptCode;

                //初始化调拨明细
                this.spgvMaterial.DataSource = from a in db.SrinAssetQualifiedDetails
                                               where a.SrinQualifiedReceiptID == _receiptid
                                               let mname                         = a.SrinInspectorVerifyDetails.SrinMaterialVerifyDetails.SrinDetails.SrinStocktakingDetails.SrinSubDetails.MaterialInfo.MaterialName
                                                                       let fcode = a.SrinInspectorVerifyDetails.SrinMaterialVerifyDetails.SrinDetails.SrinStocktakingDetails.SrinSubDetails.MaterialInfo.FinanceCode
                                                                                   let smodel = a.SrinInspectorVerifyDetails.SrinMaterialVerifyDetails.SrinDetails.SrinStocktakingDetails.SrinSubDetails.MaterialInfo.SpecificationModel
                                                                                                select new
                {
                    MaterialName = string.Format("{0}--规格型号:{1}", mname, smodel),
                    a.SrinInspectorVerifyDetails.SrinMaterialVerifyDetails.Manufacturer.ManufacturerName,
                    a.Gentaojian,
                    a.Metre,
                    a.Ton,
                    a.OutUnitPrice,
                    a.InUnitPrice,
                    a.Amount,
                    a.SrinInspectorVerifyDetails.SrinMaterialVerifyDetails.SrinDetails.SrinStocktakingDetails.SrinSubDetails.RetrieveCode,
                    a.SrinInspectorVerifyDetails.VerifyCode,
                    a.Remark,
                    Description = string.Format("财务编码:{0}--回收合格数量(根/台/套/件):{1}", fcode, a.SrinInspectorVerifyDetails.QualifiedGentaojian)
                };
                this.spgvMaterial.DataBind();

                //初始化表尾信息
                ((Label)GetControltByMaster("lblAsset")).Text    = sqrp.EmpInfo.EmpName;
                ((Label)GetControltByMaster("lblWriteOff")).Text = sqrp.NeedWriteOff?"执行冲销":"不执行冲销";
                if (!Page.IsPostBack)
                {
                    SrinAChiefQReceiptConfirm smrc = db.SrinAChiefQReceiptConfirm.SingleOrDefault(u => u.TaskID.Equals(_taskid));
                    if (smrc != null)//分支流程--已经确认的情况
                    {
                        txtRemark.Text = smrc.Remark;
                    }
                    else
                    {
                        txtRemark.Text = sqrp.Remark;
                    }
                }
            }
        }
        void btnOK_Click(object sender, EventArgs e)
        {
            try
            {
                if (Page.IsValid)
                {
                    //将确认结果保存到数据库
                    using (MMSProDBDataContext db = new MMSProDBDataContext(ConfigurationManager.ConnectionStrings["mmsConString"].ConnectionString))
                    {
                        //生成回收物资设备入库单(合格)
                        SrinQualifiedReceipt sqrp = db.SrinQualifiedReceipt.SingleOrDefault(u => u.SrinQualifiedReceiptID.Equals(_receiptid));
                        sqrp.SrinQualifiedReceiptCode = txtCode.Text.Trim();
                        sqrp.NeedWriteOff             = chbWriteOff.Checked;
                        sqrp.Remark     = ((TextBox)GetControltByMaster("txtRemark")).Text.Trim();
                        sqrp.CreateTime = ((DateTimeControl)GetControltByMaster("dtcCreateTime")).SelectedDate;

                        //修改合格物资明细


                        bool bselected;                 //标识物资是否已经被选择过
                        int  iDetailsID, iPricingIndex; //物资ID,计量单位对应的索引:根台套件、米或吨
                        SrinAssetQualifiedDetails saqd;
                        decimal dQuantity = 0;
                        foreach (GridViewRow gvr in spgvMaterial.Rows)
                        {
                            iPricingIndex = GetPricingIndex(gvr.Cells[9].Text);
                            bselected     = Convert.ToBoolean(gvr.Cells[11].Text);
                            iDetailsID    = Convert.ToInt32(gvr.Cells[13].Text);

                            if (bselected)//修改原有物资的情况
                            {
                                saqd            = db.SrinAssetQualifiedDetails.SingleOrDefault(u => u.SrinAssetQualifiedDetailsID.Equals(iDetailsID));
                                dQuantity       = Convert.ToDecimal((gvr.Cells[iPricingIndex].Controls[0] as TextBox).Text.Trim());
                                saqd.Gentaojian = Convert.ToDecimal((gvr.Cells[2].Controls[0] as TextBox).Text.Trim());

                                if (saqd.Gentaojian == 0)//回收(跟台套件)数量为0的情况--则删除此项
                                {
                                    db.SrinAssetQualifiedDetails.DeleteOnSubmit(saqd);
                                }
                                else//不为0则修改此物资
                                {
                                    saqd.Metre       = Convert.ToDecimal((gvr.Cells[3].Controls[0] as TextBox).Text.Trim());
                                    saqd.Ton         = Convert.ToDecimal((gvr.Cells[4].Controls[0] as TextBox).Text.Trim());
                                    saqd.InUnitPrice = Convert.ToDecimal((gvr.Cells[6].Controls[0] as TextBox).Text.Trim());
                                    saqd.Remark      = ((TextBox)gvr.Cells[10].Controls[0]).Text.Trim();
                                    saqd.Amount      = dQuantity * saqd.OutUnitPrice;
                                    saqd.CreateTime  = db.ExecuteQuery <DateTime>("select  getdate()", new object[] { }).First();
                                }
                            }
                            else//加入新物资的情况
                            {
                                saqd            = new SrinAssetQualifiedDetails();
                                saqd.Gentaojian = Convert.ToDecimal((gvr.Cells[2].Controls[0] as TextBox).Text.Trim());
                                if (saqd.Gentaojian == 0)
                                {
                                    continue;
                                }

                                saqd.SrinQualifiedReceiptID       = sqrp.SrinQualifiedReceiptID;
                                saqd.SrinInspectorVerifyDetailsID = iDetailsID;

                                saqd.Metre         = Convert.ToDecimal((gvr.Cells[3].Controls[0] as TextBox).Text.Trim());
                                saqd.Ton           = Convert.ToDecimal((gvr.Cells[4].Controls[0] as TextBox).Text.Trim());
                                saqd.OutUnitPrice  = Convert.ToDecimal(gvr.Cells[5].Text);
                                saqd.InUnitPrice   = Convert.ToDecimal((gvr.Cells[6].Controls[0] as TextBox).Text.Trim());
                                saqd.CurUnit       = gvr.Cells[9].Text;
                                saqd.ManufactureID = Convert.ToInt32(gvr.Cells[12].Text);
                                saqd.Remark        = (gvr.Cells[10].Controls[0] as TextBox).Text.Trim();
                                saqd.Amount        = Convert.ToDecimal((gvr.Cells[iPricingIndex].Controls[0] as TextBox).Text.Trim()) * Convert.ToDecimal(gvr.Cells[5].Text);
                                saqd.CreateTime    = db.ExecuteQuery <DateTime>("select  getdate()", new object[] { }).First();
                                saqd.Creator       = db.EmpInfo.SingleOrDefault(u => u.Account == SPContext.Current.Web.CurrentUser.LoginName).EmpID;
                                db.SrinAssetQualifiedDetails.InsertOnSubmit(saqd);
                            }
                        }
                        db.SubmitChanges();

                        Response.Redirect(string.Format("RiAssetQualifiedReceiptMessage.aspx?TaskID={0}", _taskid), false);
                    }
                }
            }
            catch (Exception ex)
            {
                MethodBase    mb      = MethodBase.GetCurrentMethod();
                LogToDBHelper lhelper = LogToDBHelper.Instance;
                lhelper.WriteLog(ex.Message, "错误", string.Format("{0}.{1}", mb.ReflectedType.Name, mb.Name));
                ClientScript.RegisterClientScriptBlock(typeof(string), "提示", string.Format("<script>alert('{0}')</script>", LogToDBHelper.LOG_MSG_INSERTERROR));
            }
        }
        private void BindDataToCustomControls()
        {
            using (MMSProDBDataContext db = new MMSProDBDataContext(ConfigurationManager.ConnectionStrings["mmsConString"].ConnectionString))
            {
                //初始化表头信息
                SrinQualifiedReceipt sqrp = db.SrinQualifiedReceipt.SingleOrDefault(u => u.SrinQualifiedReceiptID == _receiptid);

                ((Label)GetControltByMaster("lblProject")).Text   = sqrp.SrinInspectorVerifyTransfer.SrinProduceVerifyTransfer.SrinVerifyTransfer.SrinReceipt.SrinStocktakingConfirm.SrinStocktaking.SrinSubDoc.ProjectInfo.ProjectName;
                ((Label)GetControltByMaster("lblDate")).Text      = string.Concat(sqrp.SrinInspectorVerifyTransfer.CreateTime.ToLongDateString(), sqrp.SrinInspectorVerifyTransfer.CreateTime.ToLongTimeString());
                ((Label)GetControltByMaster("lblInspector")).Text = sqrp.SrinInspectorVerifyTransfer.EmpInfo.EmpName;

                //初始化质检合格物资
                //初始化物资出库明细列表
                var Details = (from a in db.SrinAssetQualifiedDetails.AsEnumerable()//已加入到出库表中的物资
                               where a.SrinQualifiedReceiptID == _receiptid
                               orderby a.SrinInspectorVerifyDetails.SrinMaterialVerifyDetails.SrinDetails.SrinStocktakingDetails.SrinSubDetails.MaterialID
                               let mname = a.SrinInspectorVerifyDetails.SrinMaterialVerifyDetails.SrinDetails.SrinStocktakingDetails.SrinSubDetails.MaterialInfo.MaterialName
                                           let fcode = a.SrinInspectorVerifyDetails.SrinMaterialVerifyDetails.SrinDetails.SrinStocktakingDetails.SrinSubDetails.MaterialInfo.FinanceCode
                                                       let smodel = a.SrinInspectorVerifyDetails.SrinMaterialVerifyDetails.SrinDetails.SrinStocktakingDetails.SrinSubDetails.MaterialInfo.SpecificationModel
                                                                    select new
                {
                    MaterialName = string.Format("{0}--规格型号:{1}", mname, smodel),
                    a.SrinInspectorVerifyDetails.SrinMaterialVerifyDetails.Manufacturer.ManufacturerName,
                    a.Gentaojian,
                    a.Metre,
                    a.Ton,
                    a.OutUnitPrice,
                    a.InUnitPrice,
                    a.CurUnit,
                    a.Amount,
                    a.SrinInspectorVerifyDetails.SrinMaterialVerifyDetails.SrinDetails.SrinStocktakingDetails.SrinSubDetails.RetrieveCode,
                    a.SrinInspectorVerifyDetails.VerifyCode,
                    a.Remark,
                    MID = a.ManufactureID,
                    Selected = true,
                    DetailsID = a.SrinAssetQualifiedDetailsID,
                    Description = string.Format("财务编码:{0}--回收合格数量(根/台/套/件):{1}", fcode, a.SrinInspectorVerifyDetails.QualifiedGentaojian)
                }).AsEnumerable().Union(
                    (from a in db.StorageOutRealDetails.AsEnumerable()
                     join d in db.StorageStocks.AsEnumerable() on new { a.StorageOutDetails.MaterialID, Status = a.MaterialStatus, a.StocksID } equals new { d.MaterialID, d.Status, d.StocksID }
                     where a.StorageOutNotice.ProjectID == sqrp.SrinInspectorVerifyTransfer.SrinProduceVerifyTransfer.SrinVerifyTransfer.SrinReceipt.SrinStocktakingConfirm.SrinStocktaking.SrinSubDoc.ProjectInfo.ProjectID &&
                     !(from e in db.SrinAssetQualifiedDetails.AsEnumerable()
                       where e.SrinQualifiedReceiptID == _receiptid
                       select e.OutUnitPrice).Contains(d.UnitPrice) &&                           //不包含当前选中物资的单价
                     (from b in db.SrinInspectorVerifyDetails.AsEnumerable()
                      where b.SrinInspectorVerifyTransferID.Equals(sqrp.SrinInspectorVerifyTransferID) && b.QualifiedGentaojian != 0
                      select b.SrinMaterialVerifyDetails.SrinDetails.SrinStocktakingDetails.SrinSubDetails.MaterialID).Contains(a.StorageOutDetails.MaterialID)                              //回收物资中的物资
                     join c in db.SrinInspectorVerifyDetails.AsEnumerable() on new { a.StorageOutDetails.MaterialID, TransferID = sqrp.SrinInspectorVerifyTransferID } equals new { c.SrinMaterialVerifyDetails.SrinDetails.SrinStocktakingDetails.SrinSubDetails.MaterialID, TransferID = c.SrinInspectorVerifyTransferID }
                     orderby a.StorageOutDetails.MaterialID
                     select new
                {
                    MaterialName = string.Format("{0}--规格型号:{1}", d.MaterialName, d.SpecificationModel),
                    d.ManufacturerName,
                    Gentaojian = Decimal.Zero,
                    Metre = Decimal.Zero,
                    Ton = Decimal.Zero,
                    OutUnitPrice = d.UnitPrice,
                    InUnitPrice = Decimal.Zero,
                    d.CurUnit,
                    Amount = Decimal.Zero,
                    c.SrinMaterialVerifyDetails.SrinDetails.SrinStocktakingDetails.SrinSubDetails.RetrieveCode,
                    c.VerifyCode,
                    c.Remark,
                    MID = d.ManufacturerID,
                    Selected = false,
                    DetailsID = c.SrinInspectorVerifyDetailsID,
                    Description = string.Format("财务编码:{0}--回收合格数量(根/台/套/件):{1}", d.FinanceCode, c.QualifiedGentaojian)
                }).Distinct()
                    ).AsEnumerable();
                this.spgvMaterial.DataSource = from a in Details
                                               orderby a.MaterialName
                                               select a;

                this.spgvMaterial.DataBind();

                //初始化回收入库单(合格)信息
                if (!Page.IsPostBack)
                {
                    txtCode.Text               = sqrp.SrinQualifiedReceiptCode;
                    txtRemark.Text             = sqrp.Remark;
                    dtcCreateTime.SelectedDate = sqrp.CreateTime;
                    chbWriteOff.Checked        = sqrp.NeedWriteOff;
                }
            }
        }