public bool Update(WAMS_PURCHASE_ORDER entity, List<V3_Pe_Detail_Data> entityDetails, string lstDeleteDetailItem) { _repository.Update(entity); foreach (var detail in entityDetails) { if (detail.Id != 0) { var detailEntity = _repositoryDetail.GetByKey(detail.Id); detailEntity.vProductID = detail.StockId; detailEntity.fQuantity = decimal.Parse(detail.Quantity, new CultureInfo(Constants.MyCultureInfo)); detailEntity.PriceId = detail.Price_Id; detailEntity.fUnitPrice = decimal.Parse(detail.UnitPrice, new CultureInfo(Constants.MyCultureInfo)); detailEntity.iDiscount = int.Parse(detail.Discount, new CultureInfo(Constants.MyCultureInfo)); detailEntity.fVAT = int.Parse(detail.VAT, new CultureInfo(Constants.MyCultureInfo)); detailEntity.fItemTotal = decimal.Parse(detail.ItemTotal, new CultureInfo(Constants.MyCultureInfo)); detailEntity.vRemark = detail.Remark; detailEntity.dModified = DateTime.Now; detailEntity.iModified = entity.iModified; _repositoryDetail.Update(detailEntity); } else { var detailEntity = new WAMS_PO_DETAILS { vPOID = entity.Id, vMRF = detail.MRFId, iDiscount = int.Parse(detail.Discount, new CultureInfo(Constants.MyCultureInfo)), vProductID = detail.StockId, fQuantity = decimal.Parse(detail.Quantity, new CultureInfo(Constants.MyCultureInfo)), fVAT = int.Parse(detail.VAT, new CultureInfo(Constants.MyCultureInfo)), fItemTotal = decimal.Parse(detail.ItemTotal, new CultureInfo(Constants.MyCultureInfo)), vRemark = detail.Remark, vPODetailStatus = "Open", fUnitPrice = decimal.Parse(detail.UnitPrice, new CultureInfo(Constants.MyCultureInfo)), PriceId = detail.Price_Id, iEnable = true, dDateAssign = entity.dCreated, dCreated = entity.dCreated, iCreated = entity.iCreated }; _repositoryDetail.Add(detailEntity); } } if (!string.IsNullOrEmpty(lstDeleteDetailItem)) { var listStrLineElements = lstDeleteDetailItem.Split(';').ToList(); foreach (var itemDetail in listStrLineElements) { _customRepository.DeleteDetail(Convert.ToInt32(itemDetail)); } } _unitOfWork.CommitChanges(); // Update Total PE _customRepository.UpdatePeTotal(entity.Id); // Insert New Payment Type _customRepository.UpdatePaymentType(entity.vTermOfPayment); return true; }
public bool Insert(WAMS_PURCHASE_ORDER entity, List<V3_Pe_Detail_Data> entityDetails) { _repository.Add(entity); _unitOfWork.CommitChanges(); var listRequisitionUpdate = new List<PeRequisitionUpdate>(); foreach (var detail in entityDetails) { var detailEntity = new WAMS_PO_DETAILS { vPOID = entity.Id, vMRF = detail.MRFId, iDiscount = int.Parse(detail.Discount, new CultureInfo(Constants.MyCultureInfo)), vProductID = detail.StockId, fQuantity = decimal.Parse(detail.Quantity, new CultureInfo(Constants.MyCultureInfo)), fVAT = int.Parse(detail.VAT, new CultureInfo(Constants.MyCultureInfo)), fItemTotal = decimal.Parse(detail.ItemTotal, new CultureInfo(Constants.MyCultureInfo)), vRemark = detail.Remark, vPODetailStatus = "Open", fUnitPrice = decimal.Parse(detail.UnitPrice, new CultureInfo(Constants.MyCultureInfo)), PriceId = detail.Price_Id, iEnable = true, dDateAssign = entity.dCreated, dCreated = entity.dCreated, iCreated = entity.iCreated }; _repositoryDetail.Add(detailEntity); var listMrf = detail.MRFId.Split(';').ToList(); listRequisitionUpdate.AddRange(listMrf.Select(mrf => new PeRequisitionUpdate { Mrf = Convert.ToInt32(mrf), Stock = detail.StockId, Quantity = decimal.Parse(detail.Quantity, new CultureInfo(Constants.MyCultureInfo)) })); } _unitOfWork.CommitChanges(); // Update Total PE // Update Requisition : Store insert PO foreach (var requistionUpdate in listRequisitionUpdate) { _customRepository.UpdateRequisition(requistionUpdate.Mrf, requistionUpdate.Stock, requistionUpdate.Quantity); } _customRepository.UpdatePeTotal(entity.Id); // Insert New Payment Type _customRepository.UpdatePaymentType(entity.vTermOfPayment); return true; }