private void CheckDetails(Guid hhtHeaderId, Guid stkHeaderId, Guid workplaceId)
        {
            using (var ctx = new EF6.RT2020Entities())
            {
                var hhtDetailList = ctx.StockTakeDetails_HHT.Where(x => x.HeaderId == hhtHeaderId).OrderBy(x => x.LineNumber);
                foreach (var hhtDetail in hhtDetailList)
                {
                    //sql = "HeaderId = '" + stkHeaderId + "' AND ProductId = '" + hhtDetail.ProductId.ToString() + "'";
                    var stkDetail = ctx.StockTakeDetails.Where(x => x.HeaderId == stkHeaderId && x.ProductId == hhtDetail.ProductId).FirstOrDefault();
                    //StockTakeDetails stkDetail = StockTakeDetails.LoadWhere(sql);
                    if (stkDetail == null)
                    {
                        stkDetail             = new EF6.StockTakeDetails();
                        stkDetail.DetailsId   = Guid.NewGuid();
                        stkDetail.HeaderId    = stkHeaderId;
                        stkDetail.ProductId   = hhtDetail.ProductId;
                        stkDetail.TxNumber    = hhtDetail.TxNumber;
                        stkDetail.WorkplaceId = workplaceId;

                        stkDetail.HHTQty = hhtDetail.Qty;
                    }
                    stkDetail.AverageCost = ProductCurrentSummaryEx.GetAverageCode(stkDetail.ProductId.Value);
                    stkDetail.HHTQty      = (stkDetail.HHTQty == null ? 0 : stkDetail.HHTQty) + hhtDetail.Qty;
                    ctx.SaveChanges();
                }
            }
        }
Exemplo n.º 2
0
        private void CreateSTKDetails(System.Guid headerId, string txNumber, Guid workplaceId)
        {
            decimal amount = 0, qty = 0;

            using (var ctx = new EF6.RT2020Entities())
            {
                using (var scope = ctx.Database.BeginTransaction())
                {
                    try
                    {
                        /**
                         * string sql = "WorkplaceId = '" + workplaceId.ToString() + "' ";
                         * if (rbtnNonZeroQtyItems.Checked)
                         * {
                         *  sql += " AND CDQTY > 0";
                         * }
                         */
                        var wpItemList = ctx.ProductWorkplace
                                         .Where(x => x.WorkplaceId == workplaceId && (rbtnNonZeroQtyItems.Checked ? x.CDQTY > 0 : true));
                        foreach (var wpItem in wpItemList)
                        {
                            decimal avgCost   = ProductCurrentSummaryEx.GetAverageCode(wpItem.ProductId);
                            var     stkDetail = new EF6.StockTakeDetails();

                            stkDetail.DetailsId   = Guid.NewGuid();
                            stkDetail.TxNumber    = txNumber;
                            stkDetail.HeaderId    = headerId;
                            stkDetail.WorkplaceId = workplaceId;
                            stkDetail.ProductId   = wpItem.ProductId;
                            stkDetail.CapturedQty = wpItem.CDQTY;
                            stkDetail.AverageCost = avgCost;

                            stkDetail.ModifiedBy = ConfigHelper.CurrentUserId;
                            stkDetail.ModifiedOn = DateTime.Now;

                            ctx.StockTakeDetails.Add(stkDetail);
                            ctx.SaveChanges();

                            qty    += wpItem.CDQTY;
                            amount += wpItem.CDQTY * avgCost;
                        }

                        var oHeader = ctx.StockTakeHeader.Find(headerId);
                        if (oHeader != null)
                        {
                            oHeader.CapturedQty    = qty;
                            oHeader.CapturedAmount = amount;
                            ctx.SaveChanges();
                        }
                        scope.Commit();
                    }
                    catch (Exception ex)
                    {
                        scope.Rollback();
                    }
                }
            }
        }
Exemplo n.º 3
0
 public static EF6.StockTakeDetails Get(Guid id)
 {
     EF6.StockTakeDetails result = null;
     using (var ctx = new EF6.RT2020Entities())
     {
         result = ctx.StockTakeDetails.Find(id);
     }
     return(result);
 }
Exemplo n.º 4
0
        private void CreatedStockTakeDetail(Guid stktkHeaderId, string txNumber, List <ImportDetailsInfo> detailList, Guid workplaceId, DateTime uploadedOn)
        {
            using (var ctx = new EF6.RT2020Entities())
            {
                using (var scope = ctx.Database.BeginTransaction())
                {
                    try
                    {
                        foreach (ImportDetailsInfo detail in detailList)
                        {
                            Guid productId = ProductBarcodeEx.GetProductIdByBarcode(detail.Barcode);

                            if (!string.IsNullOrEmpty(detail.Barcode.Trim()) && productId != Guid.Empty)
                            {
                                //string sql = "HeaderId = '" + stktkHeaderId.ToString() + "' AND TxNumber = '" + txNumber + "' AND ProductId = '" + productId.ToString() + "' AND WorkplaceId = '" + workplaceId.ToString() + "'";
                                var item = ctx.StockTakeDetails.Where(x => x.HeaderId == stktkHeaderId && x.TxNumber == txNumber && x.ProductId == productId && x.WorkplaceId == workplaceId).FirstOrDefault();
                                if (item == null)
                                {
                                    item             = new EF6.StockTakeDetails();
                                    item.DetailsId   = Guid.NewGuid();
                                    item.HeaderId    = stktkHeaderId;
                                    item.TxNumber    = txNumber;
                                    item.ProductId   = productId;
                                    item.WorkplaceId = workplaceId;

                                    item.ModifiedOn = uploadedOn;
                                    item.ModifiedBy = ConfigHelper.CurrentUserId;

                                    ctx.StockTakeDetails.Add(item);
                                }

                                ctx.SaveChanges();
                            }
                        }
                        scope.Commit();
                    }
                    catch (Exception ex)
                    {
                        scope.Rollback();
                    }
                }
            }
        }
Exemplo n.º 5
0
        private void CreateSTKDetails(System.Guid headerId, string txNumber, Guid workplaceId)
        {
            decimal amount = 0, qty = 0;

            using (var ctx = new EF6.RT2020Entities())
            {
                using (var scope = ctx.Database.BeginTransaction())
                {
                    try
                    {
                        var prodList = ctx.Product.SqlQuery(string.Format("Select * from Product Where {0}", GetProductListQueryString())).ToList();
                        foreach (var prod in prodList)
                        {
                            string sql = "WorkplaceId = '" + workplaceId.ToString() + "' AND ProductId = '" + prod.ProductId.ToString() + "'";
                            if (rbtnNonZeroQtyItems.Checked)
                            {
                                sql += " AND CDQTY > 0";
                            }

                            var wpItem = ctx.ProductWorkplace
                                         .SqlQuery(string.Format("Select * from ProductWorkplace Where {0}", sql))
                                         .FirstOrDefault();
                            if (wpItem != null)
                            {
                                decimal avgCost = ProductCurrentSummaryEx.GetAverageCode(prod.ProductId);

                                #region 一隻跟一隻 save detail
                                var stkDetail = new EF6.StockTakeDetails();
                                stkDetail.DetailsId   = Guid.NewGuid();
                                stkDetail.TxNumber    = txNumber;
                                stkDetail.HeaderId    = headerId;
                                stkDetail.WorkplaceId = workplaceId;
                                stkDetail.ProductId   = prod.ProductId;
                                stkDetail.CapturedQty = wpItem.CDQTY;
                                stkDetail.AverageCost = avgCost;

                                stkDetail.ModifiedBy = ConfigHelper.CurrentUserId;
                                stkDetail.ModifiedOn = DateTime.Now;

                                ctx.StockTakeDetails.Add(stkDetail);
                                ctx.SaveChanges();
                                #endregion

                                qty    += wpItem.CDQTY;
                                amount += wpItem.CDQTY * avgCost;
                            }
                        }

                        #region save header
                        var oHeader = ctx.StockTakeHeader.Find(headerId);
                        if (oHeader != null)
                        {
                            oHeader.CapturedQty    = qty;
                            oHeader.CapturedAmount = amount;
                            ctx.SaveChanges();
                        }
                        #endregion

                        scope.Commit();
                    }
                    catch (Exception ex)
                    {
                        scope.Rollback();
                    }
                }
            }
        }