コード例 #1
0
        public void InsertPurchaseReturn(PurchaseReturnColumnModel model)
        {
            try
            {
                using (this.unitOfWork)
                {
                    PurchaseReturn item = new PurchaseReturn()
                    {
                        MemoNumber       = model.MemoNumber,
                        CustomerId       = model.CustomerId,
                        ReturnDate       = model.ReturnDate,
                        AmountReturn     = model.AmountReturn,
                        Adjustment       = model.Adjustment,
                        TotalDebitAmount = model.TotalDebitAmount,
                        Remarks          = model.Remarks,
                        IsDeleted        = model.IsDeleted,
                        RecordedBy       = model.RecordedByUser,
                        ApprovedBy       = model.ApprovedByUser,
                        AmountUsed       = 0
                    };

                    if (model.Details.Count > 0)
                    {
                        foreach (PurchaseReturnDetailModel d in model.Details)
                        {
                            PurchaseReturnDetail detail = new PurchaseReturnDetail()
                            {
                                PartDetailId = d.PartDetailId,
                                PONumber     = d.PONumber,
                                Quantity     = d.Quantity,
                                UnitPrice    = d.UnitPrice,
                                TotalAmount  = d.TotalAmount,
                                Balance      = d.TotalAmount
                            };

                            item.PurchaseReturnDetail.Add(detail);

                            AutoPartDetail autoDetail = db.AutoPartDetail.FirstOrDefault(a => a.Id == d.PartDetailId);
                            if (autoDetail != null)
                            {
                                autoDetail.Quantity -= d.Quantity;
                            }
                        }
                    }

                    this.unitOfWork.Context.AddToPurchaseReturn(item);

                    string action = string.Format("Added New Purchase Return - {0}", item.MemoNumber);
                    this.actionLogController.AddToLog(action, UserInfo.UserId);

                    this.unitOfWork.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #2
0
        void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            if (e.Argument != null)
            {
                PurchaseReturnColumnModel model = (PurchaseReturnColumnModel)e.Argument;

                if (model.Id == 0)
                {
                    this.purchaseReturnController.InsertPurchaseReturn(model);
                }
                else
                {
                    this.purchaseReturnController.UpdatePurchaseReturn(model);
                }
            }
        }
コード例 #3
0
        private void SaveReturn()
        {
            LoadImage.Visible = true;
            ToggleButtons(false);

            PurchaseReturnColumnModel model = new PurchaseReturnColumnModel()
            {
                Id               = ReturnId,
                MemoNumber       = MemoTextbox.Text,
                CustomerId       = (int)SupplierDropdown.SelectedValue,
                IsDeleted        = false,
                ReturnDate       = ReturnDatePicker.Value,
                TotalDebitAmount = list.Sum(a => a.TotalAmount),
                Remarks          = RemarksTextbox.Text,
                Details          = list,
                RecordedByUser   = UserInfo.UserId,
                ApprovedByUser   = approver
            };

            worker.RunWorkerAsync(model);
        }
コード例 #4
0
        public void UpdatePurchaseReturn(PurchaseReturnColumnModel model)
        {
            try
            {
                using (this.unitOfWork)
                {
                    var item = FetchPurchaseReturnById(model.Id);
                    if (item != null)
                    {
                        //Delete old details
                        if (item.PurchaseReturnDetail.Any())
                        {
                            foreach (var d in item.PurchaseReturnDetail.ToList())
                            {
                                AutoPartDetail detail = db.AutoPartDetail.FirstOrDefault(a => a.Id == d.PartDetailId);
                                detail.Quantity += d.Quantity;

                                foreach (var payment in d.PurchasePayments.ToList())
                                {
                                    item.AmountUsed -= payment.Amount;
                                    db.DeleteObject(payment);
                                }

                                db.DeleteObject(d);
                            }
                        }

                        item.MemoNumber       = model.MemoNumber;
                        item.CustomerId       = model.CustomerId;
                        item.ReturnDate       = model.ReturnDate;
                        item.AmountReturn     = model.AmountReturn;
                        item.Adjustment       = model.Adjustment;
                        item.TotalDebitAmount = model.TotalDebitAmount;
                        item.Remarks          = model.Remarks;
                        item.IsDeleted        = model.IsDeleted;
                        item.RecordedBy       = model.RecordedByUser;
                        item.ApprovedBy       = model.ApprovedByUser;

                        //Add the new items
                        if (model.Details.Count > 0)
                        {
                            foreach (PurchaseReturnDetailModel d in model.Details)
                            {
                                var autoPart = db.AutoPartDetail.FirstOrDefault(a => a.Id == d.PartDetailId);
                                autoPart.Quantity -= d.Quantity;

                                PurchaseReturnDetail detail = new PurchaseReturnDetail()
                                {
                                    PartDetailId = d.PartDetailId,
                                    PONumber     = d.PONumber,
                                    Quantity     = d.Quantity,
                                    UnitPrice    = d.UnitPrice,
                                    TotalAmount  = d.TotalAmount,
                                    Balance      = d.TotalAmount
                                };

                                item.PurchaseReturnDetail.Add(detail);
                            }
                        }
                    }

                    string action = string.Format("Updated Purchase Return - {0}", item.MemoNumber);
                    this.actionLogController.AddToLog(action, UserInfo.UserId);

                    this.unitOfWork.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }