/// <summary>
        /// Insert a ProduceInDepot.
        /// </summary>
        public void Insert(Model.ProduceInDepot produceInDepot)
        {
            Validate(produceInDepot);
            try
            {
                BL.V.BeginTransaction();
                produceInDepot.InsertTime = DateTime.Now;
                produceInDepot.UpdateTime = DateTime.Now;
                TiGuiExists(produceInDepot);

                string invoiceKind   = this.GetInvoiceKind().ToLower();
                string sequencekey_y = string.Format("{0}-y-{1}", invoiceKind, produceInDepot.InsertTime.Value.Year);
                string sequencekey_m = string.Format("{0}-m-{1}-{2}", invoiceKind, produceInDepot.InsertTime.Value.Year, produceInDepot.InsertTime.Value.Month);
                string sequencekey_d = string.Format("{0}-d-{1}", invoiceKind, produceInDepot.InsertTime.Value.ToString("yyyy-MM-dd"));
                string sequencekey   = string.Format(invoiceKind);
                SequenceManager.Increment(sequencekey_y);
                SequenceManager.Increment(sequencekey_m);
                SequenceManager.Increment(sequencekey_d);
                SequenceManager.Increment(sequencekey);
                accessor.Insert(produceInDepot);
                addDetail(produceInDepot);
                BL.V.CommitTransaction();
            }
            catch
            {
                BL.V.RollbackTransaction();
                throw;
            }
        }
Пример #2
0
        private int isUpdate = 0; //修改状态

        public void _Update(Model.ProduceInDepot produceInDepot)
        {
            isUpdate = 1;
            produceInDepot.UpdateTime = DateTime.Now;
            accessor.Update(produceInDepot);

            IList <Model.ProduceInDepotDetail> olddetail = DetailAccessor.Select(produceInDepot);

            calEffectUpdate(olddetail);
            //Model.ProduceInDepot oldProduceInDepot = GetDetails(produceInDepot.ProduceInDepotId);
            //calEffectUpdate(oldProduceInDepot.Details);
            DetailAccessor.DeleteByHeader(produceInDepot);

            //先将原数据删除,对应的后续单据合计数量修改。如果不这样,会出现一种情况,修改时,删除某一项明细,该明细对应的后续合计数量不变
            //this.UpdateDetailHjSum(oldProduceInDepot);  //这样太慢,改为下面单独针对删除的项目做合计修改
            foreach (var item in olddetail)
            {
                if (!produceInDepot.Details.Any(d => d.ProduceInDepotDetailId == item.ProduceInDepotDetailId))
                {
                    IList <Model.ProduceInDepotDetail> updatelist = DetailAccessor.Select_ByWorkHosueAndPronoteId(produceInDepot.WorkHouseId, item.PronoteHeaderId);
                    foreach (Model.ProduceInDepotDetail indetail in updatelist)
                    {
                        indetail.HeJiProceduresSum = (from i in updatelist where i.ProduceInDepot.InsertTime < indetail.ProduceInDepot.InsertTime select i.ProceduresSum).Sum() + indetail.ProceduresSum;
                        indetail.HeJiCheckOutSum   = (from i in updatelist where i.ProduceInDepot.InsertTime < indetail.ProduceInDepot.InsertTime select i.CheckOutSum).Sum() + indetail.CheckOutSum;
                        DetailAccessor.Update(indetail);
                    }
                }
            }

            addDetail(produceInDepot);
            //修改详细合计生产数量,合计合格数量 2012年6月7日10:38:42
            //this.UpdateDetailHjSum(produceInDepot);
            isUpdate = 0;
        }
        private void Validate(Model.ProduceInDepot produceInDepot)
        {
            if (string.IsNullOrEmpty(produceInDepot.ProduceInDepotId))
            {
                throw new Helper.RequireValueException(Model.ProduceInDepot.PRO_ProduceInDepotId);
            }
            if (string.IsNullOrEmpty(produceInDepot.WorkHouseId))
            {
                throw new Helper.RequireValueException(Model.ProduceInDepot.PRO_WorkHouseId);
            }
            foreach (var item in produceInDepot.Details)
            {
                if (item.ProduceQuantity > item.CheckOutSum)
                {
                    throw new Helper.MessageValueException("入庫數量不能大於合格數量");
                }
                if (item.ProduceTransferQuantity > item.CheckOutSum)
                {
                    throw new Helper.MessageValueException("轉生產數量不能大於合格數量");
                }
            }

            //foreach (Model.ProduceInDepotDetail d in produceInDepot.Details)
            //{
            //    if ((d.HeJiProceduresSum.HasValue ? d.HeJiProceduresSum.Value : 0) > (d.beforeTransferQuantity.HasValue ? d.beforeTransferQuantity.Value : 0))
            //        throw new Helper.InvalidValueException(Model.ProduceInDepotDetail.PRO_HeJiProceduresSum);
            //}
        }
Пример #4
0
        /// <summary>
        /// Delete ProduceInDepot by primary key.
        /// </summary>
        public void Delete(string produceInDepotId)
        {
            Model.ProduceInDepot model = this.Get(produceInDepotId);
            string invoiceKind         = this.GetInvoiceKind().ToLower();
            string sequencekey_d       = string.Format("{0}-d-{1}", invoiceKind, model.InsertTime.Value.ToString("yyyy-MM-dd"));

            SequenceManager.Decrement(sequencekey_d);


            accessor.Delete(produceInDepotId);
        }
        private int isUpdate = 0; //修改状态

        public void _Update(Model.ProduceInDepot produceInDepot)
        {
            isUpdate = 1;
            produceInDepot.UpdateTime = DateTime.Now;
            accessor.Update(produceInDepot);

            IList <Model.ProduceInDepotDetail> olddetail = DetailAccessor.Select(produceInDepot);

            calEffectUpdate(olddetail);
            DetailAccessor.DeleteByHeader(produceInDepot);
            addDetail(produceInDepot);
            //修改详细合计生产数量,合计合格数量 2012年6月7日10:38:42
            //this.UpdateDetailHjSum(produceInDepot);
            isUpdate = 0;
        }
        //修改详细合计生产数量,合计合格数量 2012年6月7日10:38:42
        private void UpdateDetailHjSum(Model.ProduceInDepot produceindepot)
        {
            foreach (Model.ProduceInDepotDetail detail in produceindepot.Details)
            {
                if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId))
                {
                    continue;
                }

                IList <Model.ProduceInDepotDetail> updatelist = DetailAccessor.Select_ByWorkHosueAndPronoteId(produceindepot.WorkHouseId, detail.PronoteHeaderId);
                foreach (Model.ProduceInDepotDetail indetail in updatelist)
                {
                    indetail.HeJiProceduresSum = (from i in updatelist where i.ProduceInDepot.InsertTime < indetail.ProduceInDepot.InsertTime select i.ProceduresSum).Sum() + indetail.ProceduresSum;
                    indetail.HeJiCheckOutSum   = (from i in updatelist where i.ProduceInDepot.InsertTime < indetail.ProduceInDepot.InsertTime select i.CheckOutSum).Sum() + indetail.CheckOutSum;
                    DetailAccessor.Update(indetail);
                }
            }
        }
 private void TiGuiExists(Model.ProduceInDepot model)
 {
     if (this.ExistsPrimary(model.ProduceInDepotId))
     {
         //设置KEY值
         string invoiceKind   = this.GetInvoiceKind().ToLower();
         string sequencekey_y = string.Format("{0}-y-{1}", invoiceKind, model.ProduceInDepotDate.Value.Year);
         string sequencekey_m = string.Format("{0}-m-{1}-{2}", invoiceKind, model.ProduceInDepotDate.Value.Year, model.ProduceInDepotDate.Value.Month);
         string sequencekey_d = string.Format("{0}-d-{1}", invoiceKind, model.ProduceInDepotDate.Value.ToString("yyyy-MM-dd"));
         string sequencekey   = string.Format(invoiceKind);
         SequenceManager.Increment(sequencekey_y);
         SequenceManager.Increment(sequencekey_m);
         SequenceManager.Increment(sequencekey_d);
         SequenceManager.Increment(sequencekey);
         model.ProduceInDepotId = this.GetId(model.ProduceInDepotDate.Value);
         TiGuiExists(model);
     }
 }
 public void Update(Model.ProduceInDepot produceInDepot)
 {
     Validate(produceInDepot);
     //若已有修改,则抛出异常
     //if (produceInDepot.UpdateTime != this.JudgeHasNewVersion<Model.ProduceInDepot>(produceInDepot, produceInDepot.ProduceInDepotId))
     //{
     //    throw new Helper.VersionOverTimeException();
     //}
     try
     {
         BL.V.BeginTransaction();
         this._Update(produceInDepot);
         BL.V.CommitTransaction();
     }
     catch
     {
         BL.V.RollbackTransaction();
         throw;
     }
 }
 public void Delete(Model.ProduceInDepot produceInDepot)
 {
     //
     // todo:add other logic here
     //
     try
     {
         BL.V.BeginTransaction();
         calEffectDelete(DetailAccessor.Select(produceInDepot));
         accessor.Delete(produceInDepot.ProduceInDepotId);
         //修改详细合计生产数量,合计合格数量 2012年6月7日10:38:42
         this.UpdateDetailHjSum(produceInDepot);
         BL.V.CommitTransaction();
     }
     catch
     {
         BL.V.RollbackTransaction();
         throw;
     }
 }
 public bool HasRowsBefore(Model.ProduceInDepot e)
 {
     return(sqlmapper.QueryForObject <bool>("ProduceInDepot.has_rows_before", e));
 }
Пример #11
0
 public Model.ProduceInDepot GetPrev(Model.ProduceInDepot e)
 {
     return(accessor.GetPrev(e));
 }
Пример #12
0
 public Model.ProduceInDepot GetNext(Model.ProduceInDepot e)
 {
     return(accessor.GetNext(e));
 }
Пример #13
0
        private void addDetail(Model.ProduceInDepot produceInDepot)
        {
            foreach (Model.ProduceInDepotDetail produceInDepotDetail in produceInDepot.Details)
            {
                if (produceInDepotDetail.Product == null || string.IsNullOrEmpty(produceInDepotDetail.Product.ProductId))
                {
                    continue;
                }
                produceInDepotDetail.ProduceInDepotId = produceInDepot.ProduceInDepotId;

                //如果没有加工单号
                //if (string.IsNullOrEmpty(produceInDepotDetail.PronoteHeaderId))
                //{
                //    produceInDepotDetail.HeJiProceduresSum = 0;
                //    produceInDepotDetail.HeJiCheckOutSum = 0;
                //    produceInDepotDetail.HeJiProduceQuantity = 0;
                //    produceInDepotDetail.HeJiProduceTransferQuantity = 0;
                //    DetailAccessor.Insert(produceInDepotDetail);
                //}

                double?_InProceduresSum           = produceInDepot.Details.Where(d => d.Inumber <= produceInDepotDetail.Inumber && d.ProductId == produceInDepotDetail.ProductId && d.PronoteHeaderId == produceInDepotDetail.PronoteHeaderId).Sum(d => d.ProceduresSum);
                double?_InCheckOutSum             = produceInDepot.Details.Where(d => d.Inumber <= produceInDepotDetail.Inumber && d.ProductId == produceInDepotDetail.ProductId && d.PronoteHeaderId == produceInDepotDetail.PronoteHeaderId).Sum(d => d.CheckOutSum);
                double?_InProduceQuantity         = produceInDepot.Details.Where(d => d.Inumber <= produceInDepotDetail.Inumber && d.ProductId == produceInDepotDetail.ProductId && d.PronoteHeaderId == produceInDepotDetail.PronoteHeaderId).Sum(d => d.ProduceQuantity);
                double?_InProduceTransferQuantity = produceInDepot.Details.Where(d => d.Inumber <= produceInDepotDetail.Inumber && d.ProductId == produceInDepotDetail.ProductId && d.PronoteHeaderId == produceInDepotDetail.PronoteHeaderId).Sum(d => d.ProduceTransferQuantity);

                produceInDepotDetail.HeJiProceduresSum           = DetailAccessor.Get_HJForColumnName(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepotDetail.ProduceInDepotId, produceInDepotDetail.Inumber.Value, produceInDepot.InsertTime.Value, "ProceduresSum") + _InProceduresSum;
                produceInDepotDetail.HeJiCheckOutSum             = DetailAccessor.Get_HJForColumnName(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepotDetail.ProduceInDepotId, produceInDepotDetail.Inumber.Value, produceInDepot.InsertTime.Value, "CheckOutSum") + _InCheckOutSum;
                produceInDepotDetail.HeJiProduceQuantity         = DetailAccessor.Get_HJForColumnName(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepotDetail.ProduceInDepotId, produceInDepotDetail.Inumber.Value, produceInDepot.InsertTime.Value, "ProduceQuantity") + _InProduceQuantity;
                produceInDepotDetail.HeJiProduceTransferQuantity = DetailAccessor.Get_HJForColumnName(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepotDetail.ProduceInDepotId, produceInDepotDetail.Inumber.Value, produceInDepot.InsertTime.Value, "ProduceTransferQuantity") + _InProduceTransferQuantity;

                DetailAccessor.Insert(produceInDepotDetail);

                if (!string.IsNullOrEmpty(produceInDepotDetail.DepotPositionId))
                {
                    //Model.Stock stock = stockAccessor.GetStockByProductIdAndDepotPositionId(produceInDepotDetail.ProductId, produceInDepotDetail.DepotPositionId);
                    stockAccessor.Increment(new BL.DepotPositionManager().Get(produceInDepotDetail.DepotPositionId), produceInDepotDetail.Product, produceInDepotDetail.ProduceQuantity);
                    productManager.UpdateProduct_Stock(produceInDepotDetail.Product);
                }
                if (isUpdate == 1)
                {
                    IList <Model.ProduceInDepotDetail> _detailsList = DetailAccessor.select_NextbyPronHeaderId(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepot.InsertTime.Value);

                    var gbyHeaderId = from Model.ProduceInDepotDetail d in _detailsList
                                      group d by d.ProduceInDepotId;

                    foreach (IList <Model.ProduceInDepotDetail> outdetail in gbyHeaderId)
                    {
                        foreach (Model.ProduceInDepotDetail detail in outdetail)
                        {
                            double?_nProceduresSum           = outdetail.Where(d => d.Inumber <= detail.Inumber.Value).Sum(d => d.ProceduresSum);
                            double?_nCheckOutSum             = outdetail.Where(d => d.Inumber <= detail.Inumber).Sum(d => d.CheckOutSum);
                            double?_nProduceQuantity         = outdetail.Where(d => d.Inumber <= detail.Inumber).Sum(d => d.ProduceQuantity);
                            double?_nProduceTransferQuantity = outdetail.Where(d => d.Inumber <= detail.Inumber).Sum(d => d.ProduceTransferQuantity);

                            detail.HeJiProceduresSum           = DetailAccessor.Get_HJForColumnName(detail.PronoteHeaderId, produceInDepot.WorkHouseId, detail.ProductId, detail.ProduceInDepotId, detail.Inumber.Value, detail.ProduceInDepot.InsertTime.Value, "ProceduresSum") + _nProceduresSum;
                            detail.HeJiCheckOutSum             = DetailAccessor.Get_HJForColumnName(detail.PronoteHeaderId, produceInDepot.WorkHouseId, detail.ProductId, detail.ProduceInDepotId, detail.Inumber.Value, detail.ProduceInDepot.InsertTime.Value, "CheckOutSum") + _nCheckOutSum;
                            detail.HeJiProduceQuantity         = DetailAccessor.Get_HJForColumnName(detail.PronoteHeaderId, produceInDepot.WorkHouseId, detail.ProductId, detail.ProduceInDepotId, detail.Inumber.Value, detail.ProduceInDepot.InsertTime.Value, "ProduceQuantity") + _nProduceQuantity;
                            detail.HeJiProduceTransferQuantity = DetailAccessor.Get_HJForColumnName(detail.PronoteHeaderId, produceInDepot.WorkHouseId, detail.ProductId, detail.ProduceInDepotId, detail.Inumber.Value, detail.ProduceInDepot.InsertTime.Value, "ProduceTransferQuantity") + _nProduceTransferQuantity;

                            DetailAccessor.Update(detail);

                            //detail.HeJiProceduresSum = DetailAccessor.select_SumbyPronHeaderId(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId) + DetailAccessor.select_FrontSumByProduceIndepotIdAndProId(produceInDepot.ProduceInDepotId, produceInDepotDetail.ProductId, produceInDepotDetail.Inumber.Value) + detail.ProceduresSum;

                            //detail.HeJiCheckOutSum = DetailAccessor.select_CheckOutSumByPronHeaderId(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId) + DetailAccessor.select_FrontCheckoutSumByProduceIndepotIdAndProId(produceInDepot.ProduceInDepotId, produceInDepotDetail.ProductId, produceInDepotDetail.Inumber.Value) + detail.CheckOutSum;


                            //this.UpdateSql(@"update ProduceInDepotDetail set HeJiProceduresSum=" + (DetailAccessor.select_SumbyPronHeaderId(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId) + detail.ProceduresSum) + " , HeJiCheckOutSum=" + (DetailAccessor.select_CheckOutSumByPronHeaderId(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId) + detail.CheckOutSum) + " where produceInDepotDetailId='"+detail.ProduceInDepotDetailId+"'");
                        }
                    }
                }
                //更新加工单 已合格数量 和是否
                //if (!string.IsNullOrEmpty(produceInDepotDetail.PronoteHeaderId))
                //    pronoteHeaderAccessor.UpdatePronoteIsClose(produceInDepotDetail.PronoteHeaderId, produceInDepotDetail.CheckOutSum);
            }
        }
 public IList <Book.Model.ProduceInDepotDetail> Select(Model.ProduceInDepot produceInDepot)
 {
     return(accessor.Select(produceInDepot));
 }
Пример #15
0
 public bool HasRowsAfter(Model.ProduceInDepot e)
 {
     return(accessor.HasRowsAfter(e));
 }
Пример #16
0
        private void addDetail(Model.ProduceInDepot produceInDepot)
        {
            foreach (Model.ProduceInDepotDetail produceInDepotDetail in produceInDepot.Details)
            {
                if (produceInDepotDetail.Product == null || string.IsNullOrEmpty(produceInDepotDetail.Product.ProductId))
                {
                    continue;
                }
                produceInDepotDetail.ProduceInDepotId = produceInDepot.ProduceInDepotId;

                //如果没有加工单号
                if (string.IsNullOrEmpty(produceInDepotDetail.PronoteHeaderId) && !string.IsNullOrEmpty(produceInDepotDetail.InvoiceXOId))
                {
                    double?_InProceduresSum           = produceInDepot.Details.Where(d => d.Inumber <= produceInDepotDetail.Inumber && d.ProductId == produceInDepotDetail.ProductId && d.InvoiceXOId == produceInDepotDetail.InvoiceXOId).Sum(d => d.ProceduresSum);
                    double?_InCheckOutSum             = produceInDepot.Details.Where(d => d.Inumber <= produceInDepotDetail.Inumber && d.ProductId == produceInDepotDetail.ProductId && d.InvoiceXOId == produceInDepotDetail.InvoiceXOId).Sum(d => d.CheckOutSum);
                    double?_InProduceQuantity         = produceInDepot.Details.Where(d => d.Inumber <= produceInDepotDetail.Inumber && d.ProductId == produceInDepotDetail.ProductId && d.InvoiceXOId == produceInDepotDetail.InvoiceXOId).Sum(d => d.ProduceQuantity);
                    double?_InProduceTransferQuantity = produceInDepot.Details.Where(d => d.Inumber <= produceInDepotDetail.Inumber && d.ProductId == produceInDepotDetail.ProductId && d.InvoiceXOId == produceInDepotDetail.InvoiceXOId).Sum(d => d.ProduceTransferQuantity);

                    produceInDepotDetail.HeJiProceduresSum           = DetailAccessor.Get_HJForColumnNameByInvoiceXOId(produceInDepotDetail.InvoiceXOId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepot.InsertTime.Value, "ProceduresSum") + _InProceduresSum;
                    produceInDepotDetail.HeJiCheckOutSum             = DetailAccessor.Get_HJForColumnNameByInvoiceXOId(produceInDepotDetail.InvoiceXOId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepot.InsertTime.Value, "CheckOutSum") + _InCheckOutSum;
                    produceInDepotDetail.HeJiProduceQuantity         = DetailAccessor.Get_HJForColumnNameByInvoiceXOId(produceInDepotDetail.InvoiceXOId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepot.InsertTime.Value, "ProduceQuantity") + _InProduceQuantity;
                    produceInDepotDetail.HeJiProduceTransferQuantity = DetailAccessor.Get_HJForColumnNameByInvoiceXOId(produceInDepotDetail.InvoiceXOId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepot.InsertTime.Value, "ProduceTransferQuantity") + _InProduceTransferQuantity;
                }

                else
                {
                    double?_InProceduresSum           = produceInDepot.Details.Where(d => d.Inumber <= produceInDepotDetail.Inumber && d.ProductId == produceInDepotDetail.ProductId && d.PronoteHeaderId == produceInDepotDetail.PronoteHeaderId).Sum(d => d.ProceduresSum);
                    double?_InCheckOutSum             = produceInDepot.Details.Where(d => d.Inumber <= produceInDepotDetail.Inumber && d.ProductId == produceInDepotDetail.ProductId && d.PronoteHeaderId == produceInDepotDetail.PronoteHeaderId).Sum(d => d.CheckOutSum);
                    double?_InProduceQuantity         = produceInDepot.Details.Where(d => d.Inumber <= produceInDepotDetail.Inumber && d.ProductId == produceInDepotDetail.ProductId && d.PronoteHeaderId == produceInDepotDetail.PronoteHeaderId).Sum(d => d.ProduceQuantity);
                    double?_InProduceTransferQuantity = produceInDepot.Details.Where(d => d.Inumber <= produceInDepotDetail.Inumber && d.ProductId == produceInDepotDetail.ProductId && d.PronoteHeaderId == produceInDepotDetail.PronoteHeaderId).Sum(d => d.ProduceTransferQuantity);

                    produceInDepotDetail.HeJiProceduresSum           = DetailAccessor.Get_HJForColumnName(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepotDetail.ProduceInDepotId, produceInDepotDetail.Inumber.Value, produceInDepot.InsertTime.Value, "ProceduresSum") + _InProceduresSum;
                    produceInDepotDetail.HeJiCheckOutSum             = DetailAccessor.Get_HJForColumnName(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepotDetail.ProduceInDepotId, produceInDepotDetail.Inumber.Value, produceInDepot.InsertTime.Value, "CheckOutSum") + _InCheckOutSum;
                    produceInDepotDetail.HeJiProduceQuantity         = DetailAccessor.Get_HJForColumnName(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepotDetail.ProduceInDepotId, produceInDepotDetail.Inumber.Value, produceInDepot.InsertTime.Value, "ProduceQuantity") + _InProduceQuantity;
                    produceInDepotDetail.HeJiProduceTransferQuantity = DetailAccessor.Get_HJForColumnName(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepotDetail.ProduceInDepotId, produceInDepotDetail.Inumber.Value, produceInDepot.InsertTime.Value, "ProduceTransferQuantity") + _InProduceTransferQuantity;
                }

                //if (produceInDepotDetail.Product.Id.Substring(0, 1) == "A" && produceInDepotDetail.HeJiProduceQuantity > produceInDepotDetail.PronoteHeaderSum)
                //{
                //    if (pronoteHeaderAccessor.SelectXOIdByCondition(produceInDepotDetail.ProductId, produceInDepotDetail.PronoteHeaderId) != null)
                //        throw new Helper.MessageValueException("商品:" + produceInDepotDetail.Product.ToString() + " 合計入庫數量大於訂單數量\r前訂單:" + pronoteHeaderAccessor.SelectXOIdByCondition(produceInDepotDetail.ProductId, produceInDepotDetail.PronoteHeaderId) + " 中也有此商品!");
                //    else
                //        throw new Helper.MessageValueException("商品:" + produceInDepotDetail.Product.ToString() + " 合計入庫數量大於訂單數量");
                //}

                DetailAccessor.Insert(produceInDepotDetail);

                if (!string.IsNullOrEmpty(produceInDepotDetail.DepotPositionId))
                {
                    //Model.Stock stock = stockAccessor.GetStockByProductIdAndDepotPositionId(produceInDepotDetail.ProductId, produceInDepotDetail.DepotPositionId);
                    stockAccessor.Increment(new BL.DepotPositionManager().Get(produceInDepotDetail.DepotPositionId), produceInDepotDetail.Product, produceInDepotDetail.ProduceQuantity);
                    productManager.UpdateProduct_Stock(produceInDepotDetail.Product);
                }
                if (isUpdate == 1)
                {
                    if (!string.IsNullOrEmpty(produceInDepotDetail.PronoteHeaderId))
                    {
                        IList <Model.ProduceInDepotDetail> _detailsList = DetailAccessor.select_NextbyPronHeaderId(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepot.InsertTime.Value);

                        var gbyHeaderId = from Model.ProduceInDepotDetail d in _detailsList
                                          group d by d.ProduceInDepotId;

                        foreach (IList <Model.ProduceInDepotDetail> outdetail in gbyHeaderId)
                        {
                            foreach (Model.ProduceInDepotDetail detail in outdetail)
                            {
                                double?_nProceduresSum           = outdetail.Where(d => d.Inumber <= detail.Inumber.Value).Sum(d => d.ProceduresSum);
                                double?_nCheckOutSum             = outdetail.Where(d => d.Inumber <= detail.Inumber).Sum(d => d.CheckOutSum);
                                double?_nProduceQuantity         = outdetail.Where(d => d.Inumber <= detail.Inumber).Sum(d => d.ProduceQuantity);
                                double?_nProduceTransferQuantity = outdetail.Where(d => d.Inumber <= detail.Inumber).Sum(d => d.ProduceTransferQuantity);

                                detail.HeJiProceduresSum           = DetailAccessor.Get_HJForColumnName(detail.PronoteHeaderId, produceInDepot.WorkHouseId, detail.ProductId, detail.ProduceInDepotId, detail.Inumber.Value, detail.ProduceInDepot.InsertTime.Value, "ProceduresSum") + _nProceduresSum;
                                detail.HeJiCheckOutSum             = DetailAccessor.Get_HJForColumnName(detail.PronoteHeaderId, produceInDepot.WorkHouseId, detail.ProductId, detail.ProduceInDepotId, detail.Inumber.Value, detail.ProduceInDepot.InsertTime.Value, "CheckOutSum") + _nCheckOutSum;
                                detail.HeJiProduceQuantity         = DetailAccessor.Get_HJForColumnName(detail.PronoteHeaderId, produceInDepot.WorkHouseId, detail.ProductId, detail.ProduceInDepotId, detail.Inumber.Value, detail.ProduceInDepot.InsertTime.Value, "ProduceQuantity") + _nProduceQuantity;
                                detail.HeJiProduceTransferQuantity = DetailAccessor.Get_HJForColumnName(detail.PronoteHeaderId, produceInDepot.WorkHouseId, detail.ProductId, detail.ProduceInDepotId, detail.Inumber.Value, detail.ProduceInDepot.InsertTime.Value, "ProduceTransferQuantity") + _nProduceTransferQuantity;

                                //if (produceInDepotDetail.Product.Id.Substring(0, 1) == "A" && produceInDepotDetail.HeJiProduceQuantity > produceInDepotDetail.PronoteHeaderSum)
                                //{
                                //    if (pronoteHeaderAccessor.SelectXOIdByCondition(produceInDepotDetail.ProductId, produceInDepotDetail.PronoteHeaderId) != null)
                                //        throw new Helper.MessageValueException("商品:" + produceInDepotDetail.Product.ToString() + " 合計入庫數量大於訂單數量\r前訂單:" + pronoteHeaderAccessor.SelectXOIdByCondition(produceInDepotDetail.ProductId, produceInDepotDetail.PronoteHeaderId) + " 中也有此商品!");
                                //    else
                                //        throw new Helper.MessageValueException("商品:" + produceInDepotDetail.Product.ToString() + " 合計入庫數量大於訂單數量");
                                //}

                                DetailAccessor.Update(detail);

                                //detail.HeJiProceduresSum = DetailAccessor.select_SumbyPronHeaderId(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId) + DetailAccessor.select_FrontSumByProduceIndepotIdAndProId(produceInDepot.ProduceInDepotId, produceInDepotDetail.ProductId, produceInDepotDetail.Inumber.Value) + detail.ProceduresSum;

                                //detail.HeJiCheckOutSum = DetailAccessor.select_CheckOutSumByPronHeaderId(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId) + DetailAccessor.select_FrontCheckoutSumByProduceIndepotIdAndProId(produceInDepot.ProduceInDepotId, produceInDepotDetail.ProductId, produceInDepotDetail.Inumber.Value) + detail.CheckOutSum;


                                //this.UpdateSql(@"update ProduceInDepotDetail set HeJiProceduresSum=" + (DetailAccessor.select_SumbyPronHeaderId(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId) + detail.ProceduresSum) + " , HeJiCheckOutSum=" + (DetailAccessor.select_CheckOutSumByPronHeaderId(produceInDepotDetail.PronoteHeaderId, produceInDepot.WorkHouseId) + detail.CheckOutSum) + " where produceInDepotDetailId='"+detail.ProduceInDepotDetailId+"'");
                            }
                        }
                    }
                    else if (!string.IsNullOrEmpty(produceInDepotDetail.InvoiceXOId))
                    {
                        IList <Model.ProduceInDepotDetail> _detailsList = DetailAccessor.select_NextbyInvoiceXOId(produceInDepotDetail.InvoiceXOId, produceInDepot.WorkHouseId, produceInDepotDetail.ProductId, produceInDepot.InsertTime.Value);

                        var gbyHeaderId = from Model.ProduceInDepotDetail d in _detailsList
                                          group d by d.ProduceInDepotId;

                        foreach (IList <Model.ProduceInDepotDetail> outdetail in gbyHeaderId)
                        {
                            foreach (Model.ProduceInDepotDetail detail in outdetail)
                            {
                                double?_nProceduresSum           = outdetail.Where(d => d.Inumber <= detail.Inumber.Value).Sum(d => d.ProceduresSum);
                                double?_nCheckOutSum             = outdetail.Where(d => d.Inumber <= detail.Inumber).Sum(d => d.CheckOutSum);
                                double?_nProduceQuantity         = outdetail.Where(d => d.Inumber <= detail.Inumber).Sum(d => d.ProduceQuantity);
                                double?_nProduceTransferQuantity = outdetail.Where(d => d.Inumber <= detail.Inumber).Sum(d => d.ProduceTransferQuantity);

                                detail.HeJiProceduresSum           = DetailAccessor.Get_HJForColumnNameByInvoiceXOId(detail.InvoiceXOId, produceInDepot.WorkHouseId, detail.ProductId, detail.ProduceInDepot.InsertTime.Value, "ProceduresSum") + _nProceduresSum;
                                detail.HeJiCheckOutSum             = DetailAccessor.Get_HJForColumnNameByInvoiceXOId(detail.InvoiceXOId, produceInDepot.WorkHouseId, detail.ProductId, detail.ProduceInDepot.InsertTime.Value, "CheckOutSum") + _nCheckOutSum;
                                detail.HeJiProduceQuantity         = DetailAccessor.Get_HJForColumnNameByInvoiceXOId(detail.InvoiceXOId, produceInDepot.WorkHouseId, detail.ProductId, detail.ProduceInDepot.InsertTime.Value, "ProduceQuantity") + _nProduceQuantity;
                                detail.HeJiProduceTransferQuantity = DetailAccessor.Get_HJForColumnNameByInvoiceXOId(detail.InvoiceXOId, produceInDepot.WorkHouseId, detail.ProductId, detail.ProduceInDepot.InsertTime.Value, "ProduceTransferQuantity") + _nProduceTransferQuantity;

                                if (produceInDepotDetail.Product.Id.Substring(0, 1) == "A" && produceInDepotDetail.HeJiProduceQuantity > produceInDepotDetail.PronoteHeaderSum)
                                {
                                    if (pronoteHeaderAccessor.SelectXOIdByCondition(produceInDepotDetail.ProductId, produceInDepotDetail.PronoteHeaderId) != null)
                                    {
                                        throw new Helper.MessageValueException("商品:" + produceInDepotDetail.Product.ToString() + " 合計入庫數量大於訂單數量\r前訂單:" + pronoteHeaderAccessor.SelectXOIdByCondition(produceInDepotDetail.ProductId, produceInDepotDetail.PronoteHeaderId) + " 中也有此商品!");
                                    }
                                    else
                                    {
                                        throw new Helper.MessageValueException("商品:" + produceInDepotDetail.Product.ToString() + " 合計入庫數量大於訂單數量");
                                    }
                                }

                                DetailAccessor.Update(detail);
                            }
                        }
                    }
                }

                //更新加工单 已合格数量 和是否
                //if (!string.IsNullOrEmpty(produceInDepotDetail.PronoteHeaderId))
                //    pronoteHeaderAccessor.UpdatePronoteIsClose(produceInDepotDetail.PronoteHeaderId, produceInDepotDetail.CheckOutSum);
            }
        }
 public void Insert(Model.ProduceInDepot e)
 {
     this.Insert <Model.ProduceInDepot>(e);
 }
 public void Update(Model.ProduceInDepot e)
 {
     this.Update <Model.ProduceInDepot>(e);
 }
 public bool HasRowsAfter(Model.ProduceInDepot e)
 {
     return(sqlmapper.QueryForObject <bool>("ProduceInDepot.has_rows_after", e));
 }
 public Model.ProduceInDepot GetNext(Model.ProduceInDepot e)
 {
     return(sqlmapper.QueryForObject <Model.ProduceInDepot>("ProduceInDepot.get_next", e));
 }
Пример #21
0
 public Model.ProduceInDepot GetDetails(string produceInDepotId)
 {
     Model.ProduceInDepot produceInDepot = accessor.Get(produceInDepotId);
     produceInDepot.Details = DetailAccessor.Select(produceInDepot);
     return(produceInDepot);
 }
 public Model.ProduceInDepot GetPrev(Model.ProduceInDepot e)
 {
     return(sqlmapper.QueryForObject <Model.ProduceInDepot>("ProduceInDepot.get_prev", e));
 }
Пример #23
0
        public RO(string produceInDepotId, int i)
        {
            InitializeComponent();
            this.produceInDepot = this.ProduceInDepotManager.Get(produceInDepotId);

            if (this.produceInDepot == null)
            {
                return;
            }

            this.produceInDepot.Details = this.ProduceInDepotDetailManager.Select(this.produceInDepot);
            foreach (var item in this.produceInDepot.Details)
            {
                item.CusXOId = InvoiceXOManager.SelectCusXOIdByPronoteHeaderId(item.PronoteHeaderId);
            }

            this.DataSource = this.produceInDepot.Details;

            //CompanyInfo
            this.xrLabelCompanyInfoName.Text = BL.Settings.CompanyChineseName;
            //this.xrLabelDataName.Text = Properties.Resources.ProduceInDepot;
            if (i == 1)
            {
                this.xrLabelDataName.Text = "商品入库";
            }
            else
            {
                this.xrLabelDataName.Text = "成品入库";
            }
            this.xrBarCodeId.Text      = this.produceInDepot.ProduceInDepotId;
            this.xrLabelPrinDate.Text += DateTime.Now.ToString("yyyy-MM-dd");
            //成品入庫
            this.xrLabelProduceInDepotId.Text        = this.produceInDepot.ProduceInDepotId;
            this.xrLabelProduceOtherInDepotDate.Text = this.produceInDepot.ProduceInDepotDate.Value.ToString("yyyy-MM-dd");
            if (this.produceInDepot.Employee0 != null)
            {
                this.xrLabelEmployee0.Text = this.produceInDepot.Employee0.EmployeeName;
            }
            //if (this.produceInDepot.Employee1 != null)
            //{
            //    this.xrLabelEmployee1.Text = this.produceInDepot.Employee1.EmployeeName;
            //}
            if (this.produceInDepot.WorkHouse != null)
            {
                this.xrLabelDepartment.Text = this.produceInDepot.WorkHouse.Workhousename;
            }
            this.xrLabelProduceOtherInDepotDesc.Text = this.produceInDepot.ProduceInDepotDesc;

            //明细
            this.xrTableProductId.DataBindings.Add("Text", this.DataSource, "Product." + Model.Product.PRO_Id);
            this.xrTableProductName.DataBindings.Add("Text", this.DataSource, "Product." + Model.Product.PRO_ProductName);
            if (produceInDepot.WorkHouse.Workhousename != null)
            {
                this.xrTableDepartment.DataBindings.Add("Text", this.DataSource, "ProduceInDepot.WorkHouse.Workhousename");
            }
            this.xrTableProduceQuantity.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_ProduceQuantity);
            this.xrTableCellCustomerProductName.DataBindings.Add("Text", this.DataSource, "Product." + Model.Product.PRO_CustomerProductName);
            this.TCPronoteHeaderId.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_PronoteHeaderId);
            this.TCCusXOId.DataBindings.Add("Text", this.DataSource, "CusXOId");
            this.TCHandBookId.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_HandbookId);
            this.TCHandBookProductId.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_HandbookProductId);


            //this.xrTableProduceInDepotDate.DataBindings.Add("Text", this.DataSource, "ProduceInDepot." + Model.ProduceInDepot.PRO_ProduceInDepotDate, "{0:yyyy-MM-dd}");
            //this.xrTableProductGuige.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_ProductGuige);
            //this.xrTableProducePrice.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_ProducePrice);
            //this.xrTableProduceMoney.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_ProduceMoney);
            //this.xrTableCellProduceTransferQuantity.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_ProduceTransferQuantity);
            //this.xrTableCellPronoteHeaderId.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_PronoteHeaderId);
            //this.xrTableCellHeJiProceduresSum.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_HeJiProceduresSum);
            //this.xrTableCellHeJiCheckOutSum.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_HeJiCheckOutSum);
            //this.xrTableCellBusinessHoursType.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_BusinessHoursType);
            //this.xrTableCellRejectionRate.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_RejectionRate);
            //this.xrTableCellZaZhi.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_ZaZhi);
            //this.xrTableCellHeJiProceduresSum.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_ProceduresSum);
            //this.xrTableCellCheckOutSum.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_CheckOutSum);
            //this.xrTableCellInvoiceQuantity.DataBindings.Add("Text", this.DataSource, Model.ProduceInDepotDetail.PRO_PronoteHeaderSum);
        }
Пример #24
0
 public bool HasRowsBefore(Model.ProduceInDepot e)
 {
     return(accessor.HasRowsBefore(e));
 }