コード例 #1
0
        public void UpdateStockProcessBalance(StockProcess StockProcess)
        {
            StockProcessBalance StockProcessBalance = Find(StockProcess.ProductId, StockProcess.Dimension1Id, StockProcess.Dimension2Id, StockProcess.ProcessId, StockProcess.LotNo, StockProcess.GodownId, StockProcess.CostCenterId);

            if (StockProcessBalance == null)
            {
                StockProcessBalance StockProcessBalance_NewRecord = new StockProcessBalance();

                StockProcessBalance_NewRecord.ProductId    = StockProcess.ProductId;
                StockProcessBalance_NewRecord.Dimension1Id = StockProcess.Dimension1Id;
                StockProcessBalance_NewRecord.Dimension2Id = StockProcess.Dimension2Id;
                StockProcessBalance_NewRecord.ProcessId    = StockProcess.ProcessId;
                StockProcessBalance_NewRecord.GodownId     = StockProcess.GodownId ?? 0;
                StockProcessBalance_NewRecord.CostCenterId = StockProcess.CostCenterId;
                StockProcessBalance_NewRecord.LotNo        = StockProcess.LotNo;
                if (StockProcess.Qty_Iss != 0)
                {
                    StockProcessBalance_NewRecord.Qty = -StockProcess.Qty_Iss;
                }
                if (StockProcess.Qty_Rec != 0)
                {
                    StockProcessBalance_NewRecord.Qty = StockProcess.Qty_Rec;
                }

                Create(StockProcessBalance_NewRecord);
            }
            else
            {
                StockProcessBalance.Qty = StockProcessBalance.Qty - StockProcess.Qty_Iss;
                StockProcessBalance.Qty = StockProcessBalance.Qty + StockProcess.Qty_Rec;

                StockProcessBalance.ObjectState = Model.ObjectState.Added;
                Update(StockProcessBalance);
            }
        }
コード例 #2
0
        public void DeleteStockProcessDB(int StockProcessId)
        {
            StockProcess StockProcess = Find(StockProcessId);

            StockProcessBalance StockProcessBalance = (from p in _unitOfWork.Repository <StockProcessBalance>().Instance
                                                       where p.ProductId == StockProcess.ProductId &&
                                                       p.Dimension1Id == StockProcess.Dimension1Id &&
                                                       p.Dimension2Id == StockProcess.Dimension2Id &&
                                                       p.ProcessId == StockProcess.ProcessId &&
                                                       p.LotNo == StockProcess.LotNo &&
                                                       p.GodownId == StockProcess.GodownId &&
                                                       p.CostCenterId == StockProcess.CostCenterId
                                                       select p).FirstOrDefault();

            if (StockProcessBalance != null)
            {
                StockProcessBalance.Qty         = StockProcessBalance.Qty + StockProcess.Qty_Iss;
                StockProcessBalance.Qty         = StockProcessBalance.Qty - StockProcess.Qty_Rec;
                StockProcessBalance.ObjectState = Model.ObjectState.Modified;

                _stockProcessBalanceService.Update(StockProcessBalance);
            }
            StockProcess.ObjectState = Model.ObjectState.Deleted;

            Delete(StockProcessId);
        }
コード例 #3
0
        public StockProcessBalance FindStockProcessBalance(int ProductId, int?Dimension1Id, int?Dimension2Id, int?ProcessId, string LotNo, int GodownId, int?CostCenterId)
        {
            StockProcessBalance StockProcessbalance = (from L in _unitOfWork.Repository <StockProcessBalance>().Instance
                                                       where L.ProductId == ProductId && L.Dimension1Id == Dimension1Id && L.Dimension2Id == Dimension2Id && L.ProcessId == ProcessId && L.LotNo == LotNo && L.GodownId == GodownId && L.CostCenterId == CostCenterId
                                                       select L).FirstOrDefault();

            return(StockProcessbalance);
        }
コード例 #4
0
        public void DeleteStockProcessDBMultiple(List <int> StockProcessId)
        {
            var StockProcIdArray = StockProcessId.ToArray();

            var StockProcess = (from p in _StockProcessRepository.Instance
                                where StockProcIdArray.Contains(p.StockProcessId)
                                select p).ToList();

            var GroupedStockProc = (from p in StockProcess
                                    group p by new
            {
                p.ProductId,
                p.Dimension1Id,
                p.Dimension2Id,
                p.ProcessId,
                p.LotNo,
                p.GodownId,
                p.CostCenterId,
            } into g
                                    select g).ToList();

            foreach (var item in GroupedStockProc)
            {
                StockProcessBalance StockProcessBalance = (from p in _unitOfWork.Repository <StockProcessBalance>().Instance
                                                           where p.ProductId == item.Key.ProductId &&
                                                           p.Dimension1Id == item.Key.Dimension1Id &&
                                                           p.Dimension2Id == item.Key.Dimension2Id &&
                                                           p.ProcessId == item.Key.ProcessId &&
                                                           p.LotNo == item.Key.LotNo &&
                                                           p.GodownId == item.Key.GodownId &&
                                                           p.CostCenterId == item.Key.CostCenterId
                                                           select p).FirstOrDefault();

                if (StockProcessBalance != null)
                {
                    StockProcessBalance.Qty         = StockProcessBalance.Qty + item.Sum(m => m.Qty_Iss);
                    StockProcessBalance.Qty         = StockProcessBalance.Qty - item.Sum(m => m.Qty_Rec);
                    StockProcessBalance.ObjectState = Model.ObjectState.Modified;

                    _stockProcessBalanceService.Update(StockProcessBalance);
                }

                foreach (var IStockProc in item)
                {
                    IStockProc.ObjectState = Model.ObjectState.Deleted;

                    Delete(IStockProc);
                }
            }
        }
コード例 #5
0
        public void DeleteStockProcess(int StockProcessId)
        {
            StockProcess StockProcess = Find(StockProcessId);

            StockProcessBalance StockProcessBalance = _stockProcessBalanceService.Find(StockProcess.ProductId, StockProcess.Dimension1Id, StockProcess.Dimension2Id, StockProcess.ProcessId, StockProcess.LotNo, StockProcess.GodownId, StockProcess.CostCenterId);

            if (StockProcessBalance != null)
            {
                StockProcessBalance.Qty = StockProcessBalance.Qty + StockProcess.Qty_Iss;
                StockProcessBalance.Qty = StockProcessBalance.Qty - StockProcess.Qty_Rec;

                _stockProcessBalanceService.Update(StockProcessBalance);
            }
            Delete(StockProcessId);
        }
コード例 #6
0
        public void DeleteStockProcessForDocHeader(int DocHeaderId, int DocTypeId, int SiteId, int DivisionId)
        {
            IEnumerable <StockProcess> StockProcessList = (from L in _StockProcessRepository.Instance
                                                           join H in _unitOfWork.Repository <StockHeader>().Instance on L.StockHeaderId equals H.StockHeaderId into StockHeaderTable
                                                           from StockHeaderTab in StockHeaderTable.DefaultIfEmpty()
                                                           where StockHeaderTab.DocHeaderId == DocHeaderId && StockHeaderTab.DocTypeId == DocTypeId && StockHeaderTab.SiteId == SiteId && StockHeaderTab.DivisionId == DivisionId
                                                           select L).ToList();

            if (StockProcessList != null && StockProcessList.Count() > 0)
            {
                int i = 0;
                foreach (StockProcess item in StockProcessList)
                {
                    try
                    {
                        StockProcessBalance StockProcessbalance = (from L in _unitOfWork.Repository <StockProcessBalance>().Instance
                                                                   where L.ProductId == item.ProductId && L.Dimension1Id == item.Dimension1Id && L.Dimension2Id == item.Dimension2Id && L.ProcessId == item.ProcessId &&
                                                                   L.LotNo == item.LotNo && L.GodownId == item.GodownId && L.CostCenterId == item.CostCenterId
                                                                   select L).FirstOrDefault();

                        if (StockProcessbalance != null)
                        {
                            StockProcessbalance.Qty = StockProcessbalance.Qty - item.Qty_Rec;
                            StockProcessbalance.Qty = StockProcessbalance.Qty + item.Qty_Iss;

                            if (StockProcessbalance.Qty == 0)
                            {
                                item.ObjectState = Model.ObjectState.Deleted;
                                _unitOfWork.Repository <StockProcessBalance>().Delete(StockProcessbalance);
                            }
                            else
                            {
                                i = i + 1;
                                StockProcessbalance.ObjectState = Model.ObjectState.Modified;
                                _unitOfWork.Repository <StockProcessBalance>().Add(StockProcessbalance);
                            }
                        }

                        Delete(item);
                    }
                    catch (Exception e)
                    {
                        string str = e.Message;
                    }
                }
                _stockHeaderService.Delete(StockProcessList.FirstOrDefault().StockHeaderId);
            }
        }
コード例 #7
0
        public StockProcessBalance Find(int ProductId, int?Dimension1Id, int?Dimension2Id, int?ProcessId, string LotNo, int?GodownId, int?CostCenterId)
        {
            //var StockProcessbalance = (from L in db.StockProcessBalance
            //                             where L.ProductId == ProductId && L.Dimension1Id == Dimension1Id && L.Dimension2Id == Dimension2Id && L.ProcessId == ProcessId && L.LotNo == LotNo && L.GodownId == GodownId && L.CostCenterId == CostCenterId
            //                             select L);


            StockProcessBalance stockprocessbalance = _StockProcessBalanceRepository.Query().Get().Where(i => i.ProductId == ProductId &&
                                                                                                         i.Dimension1Id == Dimension1Id &&
                                                                                                         i.Dimension2Id == Dimension2Id &&
                                                                                                         i.ProcessId == ProcessId &&
                                                                                                         i.LotNo == LotNo &&
                                                                                                         i.GodownId == GodownId &&
                                                                                                         i.CostCenterId == CostCenterId).FirstOrDefault();

            return(stockprocessbalance);
        }
コード例 #8
0
 public StockProcessBalance Add(StockProcessBalance pt)
 {
     _unitOfWork.Repository <StockProcessBalance>().Insert(pt);
     return(pt);
 }
コード例 #9
0
 public void Update(StockProcessBalance pt)
 {
     pt.ObjectState = ObjectState.Modified;
     _unitOfWork.Repository <StockProcessBalance>().Update(pt);
 }
コード例 #10
0
 public void Delete(StockProcessBalance pt)
 {
     _unitOfWork.Repository <StockProcessBalance>().Delete(pt);
 }
コード例 #11
0
 public StockProcessBalance Create(StockProcessBalance pt)
 {
     pt.ObjectState = ObjectState.Added;
     _unitOfWork.Repository <StockProcessBalance>().Insert(pt);
     return(pt);
 }
コード例 #12
0
        public string StockProcessPostDB(ref StockProcessViewModel StockProcessViewModel)
        {
            string ErrorText = "";


            if (StockProcessViewModel.StockHeaderId == 0)
            {
                StockHeader H = new StockHeader();

                H.DocHeaderId  = StockProcessViewModel.DocHeaderId;
                H.DocTypeId    = StockProcessViewModel.DocTypeId;
                H.DocDate      = StockProcessViewModel.StockHeaderDocDate;
                H.DocNo        = StockProcessViewModel.DocNo;
                H.DivisionId   = StockProcessViewModel.DivisionId;
                H.SiteId       = StockProcessViewModel.SiteId;
                H.CurrencyId   = StockProcessViewModel.CurrencyId;
                H.PersonId     = StockProcessViewModel.PersonId;
                H.ProcessId    = StockProcessViewModel.HeaderProcessId;
                H.FromGodownId = StockProcessViewModel.HeaderFromGodownId;
                H.GodownId     = StockProcessViewModel.HeaderGodownId;
                H.Remark       = StockProcessViewModel.HeaderRemark;
                H.Status       = StockProcessViewModel.Status;
                H.CreatedBy    = StockProcessViewModel.CreatedBy;
                H.CreatedDate  = StockProcessViewModel.CreatedDate;
                H.ModifiedBy   = StockProcessViewModel.ModifiedBy;
                H.ModifiedDate = StockProcessViewModel.ModifiedDate;
                H.ObjectState  = Model.ObjectState.Added;

                _stockHeaderService.Create(H);

                StockProcessViewModel.StockHeaderId = H.StockHeaderId;
            }

            if (StockProcessViewModel.StockProcessId <= 0)
            {
                StockProcess L = new StockProcess();

                if (StockProcessViewModel.StockHeaderId != 0 && StockProcessViewModel.StockHeaderId != -1)
                {
                    L.StockHeaderId = StockProcessViewModel.StockHeaderId;
                }

                L.StockProcessId = StockProcessViewModel.StockProcessId;
                L.DocDate        = StockProcessViewModel.StockHeaderDocDate;
                L.ProductId      = StockProcessViewModel.ProductId;
                L.ProcessId      = StockProcessViewModel.ProcessId;
                L.GodownId       = StockProcessViewModel.GodownId;
                L.LotNo          = StockProcessViewModel.LotNo;
                L.CostCenterId   = StockProcessViewModel.CostCenterId;
                L.Qty_Iss        = StockProcessViewModel.Qty_Iss;
                L.Qty_Rec        = StockProcessViewModel.Qty_Rec;
                L.Rate           = StockProcessViewModel.Rate;
                L.ProductUidId   = StockProcessViewModel.ProductUidId;
                L.Remark         = StockProcessViewModel.Remark;
                L.ExpiryDate     = StockProcessViewModel.ExpiryDate;
                L.Specification  = StockProcessViewModel.Specification;
                L.Dimension1Id   = StockProcessViewModel.Dimension1Id;
                L.Dimension2Id   = StockProcessViewModel.Dimension2Id;
                L.CreatedBy      = StockProcessViewModel.CreatedBy;
                L.CreatedDate    = StockProcessViewModel.CreatedDate;
                L.ModifiedBy     = StockProcessViewModel.ModifiedBy;
                L.ModifiedDate   = StockProcessViewModel.ModifiedDate;
                L.ObjectState    = Model.ObjectState.Added;

                Create(L);


                StockProcessBalance StockProcessBalance = _stockProcessBalanceService.Find(L.ProductId, L.Dimension1Id, L.Dimension2Id, L.ProcessId, L.LotNo, L.GodownId, L.CostCenterId);

                if (StockProcessBalance == null)
                {
                    StockProcessBalance StockProcessBalance_NewRecord = new StockProcessBalance();

                    StockProcessBalance_NewRecord.ProductId    = L.ProductId;
                    StockProcessBalance_NewRecord.Dimension1Id = L.Dimension1Id;
                    StockProcessBalance_NewRecord.Dimension2Id = L.Dimension2Id;
                    StockProcessBalance_NewRecord.ProcessId    = L.ProcessId;
                    StockProcessBalance_NewRecord.GodownId     = L.GodownId;
                    StockProcessBalance_NewRecord.CostCenterId = L.CostCenterId;
                    StockProcessBalance_NewRecord.LotNo        = L.LotNo;
                    if (L.Qty_Iss != 0)
                    {
                        StockProcessBalance_NewRecord.Qty = -L.Qty_Iss;
                    }
                    if (L.Qty_Rec != 0)
                    {
                        StockProcessBalance_NewRecord.Qty = L.Qty_Rec;
                    }
                    StockProcessBalance_NewRecord.ObjectState = Model.ObjectState.Added;

                    _stockProcessBalanceService.Create(StockProcessBalance_NewRecord);
                }
                else
                {
                    StockProcessBalance.Qty         = StockProcessBalance.Qty - L.Qty_Iss;
                    StockProcessBalance.Qty         = StockProcessBalance.Qty + L.Qty_Rec;
                    StockProcessBalance.ObjectState = Model.ObjectState.Modified;

                    _stockProcessBalanceService.Update(StockProcessBalance);
                }

                StockProcessViewModel.StockProcessId = L.StockProcessId;
            }
            else
            {
                StockProcess L = Find(StockProcessViewModel.StockProcessId);

                //To Rollback Chenges in StockProcess Balance done by old entry.
                StockProcess Temp = new StockProcess();
                Temp.ProductId    = L.ProductId;
                Temp.Dimension1Id = L.Dimension1Id;
                Temp.Dimension2Id = L.Dimension2Id;
                Temp.ProcessId    = StockProcessViewModel.ProcessId;
                Temp.GodownId     = L.GodownId;
                Temp.CostCenterId = L.CostCenterId;
                Temp.LotNo        = L.LotNo;
                Temp.Qty_Iss      = L.Qty_Iss;
                Temp.Qty_Rec      = L.Qty_Rec;
                //new StockProcessBalanceService(_unitOfWork).UpdateStockProcessBalance(Temp);
                ///////////////////////////////////
                StockProcessBalance StockProcessBalance_Old = _stockProcessBalanceService.Find(Temp.ProductId, Temp.Dimension1Id, Temp.Dimension2Id, Temp.ProcessId, Temp.LotNo, Temp.GodownId, Temp.CostCenterId);


                L.DocDate       = StockProcessViewModel.StockProcessDocDate;
                L.ProductId     = StockProcessViewModel.ProductId;
                L.ProcessId     = StockProcessViewModel.ProcessId;
                L.GodownId      = StockProcessViewModel.GodownId;
                L.LotNo         = StockProcessViewModel.LotNo;
                L.CostCenterId  = StockProcessViewModel.CostCenterId;
                L.Qty_Iss       = StockProcessViewModel.Qty_Iss;
                L.Qty_Rec       = StockProcessViewModel.Qty_Rec;
                L.Rate          = StockProcessViewModel.Rate;
                L.ExpiryDate    = StockProcessViewModel.ExpiryDate;
                L.Specification = StockProcessViewModel.Specification;
                L.Dimension1Id  = StockProcessViewModel.Dimension1Id;
                L.Dimension2Id  = StockProcessViewModel.Dimension2Id;
                L.CreatedBy     = StockProcessViewModel.CreatedBy;
                L.CreatedDate   = StockProcessViewModel.CreatedDate;
                L.ModifiedBy    = StockProcessViewModel.ModifiedBy;
                L.ModifiedDate  = StockProcessViewModel.ModifiedDate;
                L.Remark        = StockProcessViewModel.Remark;
                L.ObjectState   = Model.ObjectState.Modified;

                Update(L);

                //new StockProcessBalanceService(_unitOfWork).UpdateStockProcessBalance(L);


                StockProcessBalance StockProcessBalance_New = _stockProcessBalanceService.Find(L.ProductId, L.Dimension1Id, L.Dimension2Id, L.ProcessId, L.LotNo, L.GodownId, L.CostCenterId);

                if (StockProcessBalance_New != null && StockProcessBalance_Old != null)
                {
                    if (StockProcessBalance_Old.StockProcessBalanceId != StockProcessBalance_New.StockProcessBalanceId)
                    {
                        if (StockProcessBalance_Old != null)
                        {
                            StockProcessBalance_Old.Qty         = StockProcessBalance_Old.Qty - Temp.Qty_Rec;
                            StockProcessBalance_Old.Qty         = StockProcessBalance_Old.Qty + Temp.Qty_Iss;
                            StockProcessBalance_Old.ObjectState = Model.ObjectState.Modified;

                            _stockProcessBalanceService.Update(StockProcessBalance_New);
                        }

                        if (StockProcessBalance_New == null)
                        {
                            StockProcessBalance StockProcessBalance_NewRecord = new StockProcessBalance();

                            StockProcessBalance_NewRecord.ProductId    = L.ProductId;
                            StockProcessBalance_NewRecord.Dimension1Id = L.Dimension1Id;
                            StockProcessBalance_NewRecord.Dimension2Id = L.Dimension2Id;
                            StockProcessBalance_NewRecord.ProcessId    = L.ProcessId;
                            StockProcessBalance_NewRecord.GodownId     = L.GodownId;
                            StockProcessBalance_NewRecord.CostCenterId = L.CostCenterId;
                            StockProcessBalance_NewRecord.LotNo        = L.LotNo;
                            if (L.Qty_Iss != 0)
                            {
                                StockProcessBalance_NewRecord.Qty = -L.Qty_Iss;
                            }
                            if (L.Qty_Rec != 0)
                            {
                                StockProcessBalance_NewRecord.Qty = L.Qty_Rec;
                            }
                            StockProcessBalance_NewRecord.ObjectState = Model.ObjectState.Added;

                            _stockProcessBalanceService.Create(StockProcessBalance_NewRecord);
                        }
                        else
                        {
                            StockProcessBalance_New.Qty         = StockProcessBalance_New.Qty - L.Qty_Iss;
                            StockProcessBalance_New.Qty         = StockProcessBalance_New.Qty + L.Qty_Rec;
                            StockProcessBalance_New.ObjectState = Model.ObjectState.Modified;

                            _stockProcessBalanceService.Update(StockProcessBalance_New);
                        }
                    }
                    else
                    {
                        StockProcessBalance_New.Qty         = StockProcessBalance_New.Qty + Temp.Qty_Iss - L.Qty_Iss;
                        StockProcessBalance_New.Qty         = StockProcessBalance_New.Qty - Temp.Qty_Rec + L.Qty_Rec;
                        StockProcessBalance_New.ObjectState = Model.ObjectState.Modified;

                        _stockProcessBalanceService.Update(StockProcessBalance_New);
                    }
                }

                StockProcessViewModel.StockProcessId = L.StockProcessId;
            }

            return(ErrorText);
        }
コード例 #13
0
 public StockProcessBalance Add(StockProcessBalance pt)
 {
     _StockProcessBalanceRepository.Insert(pt);
     return(pt);
 }
コード例 #14
0
 public void Update(StockProcessBalance pt)
 {
     pt.ObjectState = ObjectState.Modified;
     _StockProcessBalanceRepository.Update(pt);
 }
コード例 #15
0
 public void Delete(StockProcessBalance pt)
 {
     _StockProcessBalanceRepository.Delete(pt);
 }
コード例 #16
0
 public StockProcessBalance Create(StockProcessBalance pt)
 {
     pt.ObjectState = ObjectState.Added;
     _StockProcessBalanceRepository.Insert(pt);
     return(pt);
 }