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; } }
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); } } }
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); }
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; } }