public List <ExternalTransferOrderDetail> GetNewData(InternalTransferOrder internalTransferOrder) { List <ExternalTransferOrderDetail> list = new List <ExternalTransferOrderDetail>(); foreach (InternalTransferOrderDetail internalTransferOrderDetail in internalTransferOrder.InternalTransferOrderDetails) { ExternalTransferOrderDetail externalTransferOrderDetail = new ExternalTransferOrderDetail(); externalTransferOrderDetail.ITODetailId = internalTransferOrderDetail.Id; externalTransferOrderDetail.TRDetailId = internalTransferOrderDetail.TRDetailId; externalTransferOrderDetail.ProductId = internalTransferOrderDetail.ProductId; externalTransferOrderDetail.ProductCode = internalTransferOrderDetail.ProductCode; externalTransferOrderDetail.ProductName = internalTransferOrderDetail.ProductName; externalTransferOrderDetail.DefaultQuantity = internalTransferOrderDetail.Quantity; externalTransferOrderDetail.DefaultUomId = internalTransferOrderDetail.UomId; externalTransferOrderDetail.DefaultUomUnit = internalTransferOrderDetail.UomUnit; externalTransferOrderDetail.DealQuantity = internalTransferOrderDetail.Quantity; externalTransferOrderDetail.DealUomId = internalTransferOrderDetail.UomId; externalTransferOrderDetail.DealUomUnit = internalTransferOrderDetail.UomUnit; externalTransferOrderDetail.Convertion = 1; externalTransferOrderDetail.Price = 2000; externalTransferOrderDetail.Grade = internalTransferOrderDetail.Grade; externalTransferOrderDetail.ProductRemark = internalTransferOrderDetail.ProductRemark; list.Add(externalTransferOrderDetail); } return(list); }
public ExternalTransferOrder MapToModel(ExternalTransferOrderViewModel viewModel) { ExternalTransferOrder model = new ExternalTransferOrder(); PropertyCopier <ExternalTransferOrderViewModel, ExternalTransferOrder> .Copy(viewModel, model); model.OrderDivisionId = viewModel.OrderDivision._id; model.OrderDivisionCode = viewModel.OrderDivision.code; model.OrderDivisionName = viewModel.OrderDivision.name; model.DeliveryDivisionId = viewModel.DeliveryDivision._id; model.DeliveryDivisionCode = viewModel.DeliveryDivision.code; model.DeliveryDivisionName = viewModel.DeliveryDivision.name; model.CurrencyId = viewModel.Currency._id; model.CurrencyCode = viewModel.Currency.code; model.CurrencyRate = viewModel.Currency.rate; model.CurrencySymbol = viewModel.Currency.symbol; model.CurrencyDescription = viewModel.Currency.description; model.ExternalTransferOrderItems = new List <ExternalTransferOrderItem>(); foreach (ExternalTransferOrderItemViewModel externalTransferOrderItemViewModel in viewModel.ExternalTransferOrderItems) { ExternalTransferOrderItem externalTransferOrderItem = new ExternalTransferOrderItem(); PropertyCopier <ExternalTransferOrderItemViewModel, ExternalTransferOrderItem> .Copy(externalTransferOrderItemViewModel, externalTransferOrderItem); externalTransferOrderItem.UnitId = externalTransferOrderItemViewModel.Unit._id; externalTransferOrderItem.UnitCode = externalTransferOrderItemViewModel.Unit.code; externalTransferOrderItem.UnitName = externalTransferOrderItemViewModel.Unit.name; externalTransferOrderItem.ExternalTransferOrderDetails = new List <ExternalTransferOrderDetail>(); foreach (ExternalTransferOrderDetailViewModel externalTransferOrderDetailViewModel in externalTransferOrderItemViewModel.ExternalTransferOrderDetails) { ExternalTransferOrderDetail externalTransferOrderDetail = new ExternalTransferOrderDetail(); PropertyCopier <ExternalTransferOrderDetailViewModel, ExternalTransferOrderDetail> .Copy(externalTransferOrderDetailViewModel, externalTransferOrderDetail); externalTransferOrderDetail.ProductId = externalTransferOrderDetailViewModel.Product._id; externalTransferOrderDetail.ProductCode = externalTransferOrderDetailViewModel.Product.code; externalTransferOrderDetail.ProductName = externalTransferOrderDetailViewModel.Product.name; externalTransferOrderDetail.DefaultUomId = externalTransferOrderDetailViewModel.DefaultUom._id; externalTransferOrderDetail.DefaultUomUnit = externalTransferOrderDetailViewModel.DefaultUom.unit; externalTransferOrderDetail.DealUomId = externalTransferOrderDetailViewModel.DealUom._id; externalTransferOrderDetail.DealUomUnit = externalTransferOrderDetailViewModel.DealUom.unit; externalTransferOrderItem.ExternalTransferOrderDetails.Add(externalTransferOrderDetail); } model.ExternalTransferOrderItems.Add(externalTransferOrderItem); } return(model); }
public override async Task <int> UpdateModel(int Id, ExternalTransferOrder Model) { int Updated = 0; using (var Transaction = this.DbContext.Database.BeginTransaction()) { try { ExternalTransferOrderItemService externalTransferOrderItemService = ServiceProvider.GetService <ExternalTransferOrderItemService>(); externalTransferOrderItemService.Username = this.Username; ExternalTransferOrderDetailService externalTransferOrderDetailService = ServiceProvider.GetService <ExternalTransferOrderDetailService>(); externalTransferOrderDetailService.Username = this.Username; HashSet <int> ExternalTransferOrderItemIds = new HashSet <int>( this.DbContext.ExternalTransferOrderItems .Where(p => p.ETOId.Equals(Id)) .Select(p => p.Id) ); foreach (int itemId in ExternalTransferOrderItemIds) { HashSet <int> ExternalTransferOrderDetailIds = new HashSet <int>( this.DbContext.ExternalTransferOrderDetails .Where(p => p.ETOItemId.Equals(itemId)) .Select(p => p.Id) ); ExternalTransferOrderItem externalTransferOrderItem = Model.ExternalTransferOrderItems.FirstOrDefault(p => p.Id.Equals(itemId)); // cek item apakah dihapus (sesuai data yang diubah) if (externalTransferOrderItem == null) { ExternalTransferOrderItem item = this.DbContext.ExternalTransferOrderItems .Include(d => d.ExternalTransferOrderDetails) .FirstOrDefault(p => p.Id.Equals(itemId)); if (item != null) { foreach (var detail in item.ExternalTransferOrderDetails) { TransferRequestDetail transferRequestDetail = this.DbContext.TransferRequestDetails.FirstOrDefault(s => s.Id == detail.TRDetailId); transferRequestDetail.Status = "Sudah diterima Pembelian"; InternalTransferOrderDetail internalTransferOrderDetail = this.DbContext.InternalTransferOrderDetails.FirstOrDefault(s => s.Id == detail.ITODetailId); internalTransferOrderDetail.Status = "TO Internal belum diorder"; } InternalTransferOrder internalTransferOrder = this.DbContext.InternalTransferOrders.FirstOrDefault(s => s.Id == item.ITOId); internalTransferOrder.IsPost = false; } foreach (int detailId in ExternalTransferOrderDetailIds) { ExternalTransferOrderDetail externalTransferOrderDetail = this.DbContext.ExternalTransferOrderDetails.FirstOrDefault(p => p.Id.Equals(detailId)); await externalTransferOrderDetailService.DeleteModel(detailId); } await externalTransferOrderItemService.DeleteModel(itemId); } else { await externalTransferOrderItemService.UpdateModel(itemId, externalTransferOrderItem); foreach (int detailId in ExternalTransferOrderDetailIds) { ExternalTransferOrderDetail externalTransferOrderDetail = externalTransferOrderItem.ExternalTransferOrderDetails.FirstOrDefault(p => p.Id.Equals(detailId)); await externalTransferOrderDetailService.UpdateModel(detailId, externalTransferOrderDetail); } } } Updated = await this.UpdateAsync(Id, Model); foreach (ExternalTransferOrderItem item in Model.ExternalTransferOrderItems) { if (item.Id == 0) { await externalTransferOrderItemService.CreateModel(item); foreach (var detail in item.ExternalTransferOrderDetails) { TransferRequestDetail transferRequestDetail = this.DbContext.TransferRequestDetails.FirstOrDefault(s => s.Id == detail.TRDetailId); transferRequestDetail.Status = "Sudah dibuat TO Eksternal"; InternalTransferOrderDetail internalTransferOrderDetail = this.DbContext.InternalTransferOrderDetails.FirstOrDefault(s => s.Id == detail.ITODetailId); internalTransferOrderDetail.Status = "Sudah dibuat TO Eksternal"; } InternalTransferOrder internalTransferOrder = this.DbContext.InternalTransferOrders.FirstOrDefault(s => s.Id == item.ITOId); internalTransferOrder.IsPost = true; } } this.DbContext.SaveChanges(); Transaction.Commit(); } catch (Exception) { Transaction.Rollback(); } } return(Updated); }
public override async Task <int> DeleteModel(int Id) { int Deleted = 0; using (var Transaction = this.DbContext.Database.BeginTransaction()) { try { //ExternalTransferOrder externalTransferOrder = await this.ReadModelById(Id); TransferDeliveryOrderItemService transferDeliveryOrderItemService = ServiceProvider.GetService <TransferDeliveryOrderItemService>(); transferDeliveryOrderItemService.Username = this.Username; TransferDeliveryOrderDetailService transferDeliveryOrderDetailService = ServiceProvider.GetService <TransferDeliveryOrderDetailService>(); transferDeliveryOrderDetailService.Username = this.Username; HashSet <int> TransferDeliveryOrderItemIds = new HashSet <int>( this.DbContext.TransferDeliveryOrderItems .Where(p => p.DOId.Equals(Id)) .Select(p => p.Id) ); foreach (int itemId in TransferDeliveryOrderItemIds) { HashSet <int> TransferDeliveryOrderDetailIds = new HashSet <int>( this.DbContext.TransferDeliveryOrderDetails .Where(p => p.DOItemId.Equals(itemId)) .Select(p => p.Id) ); foreach (int detailId in TransferDeliveryOrderDetailIds) { await transferDeliveryOrderDetailService.DeleteModel(detailId); TransferDeliveryOrderItem item = this.DbContext.TransferDeliveryOrderItems .Include(d => d.transferDeliveryOrderDetail) .FirstOrDefault(p => p.Id.Equals(itemId)); if (item != null) { foreach (var detail in item.transferDeliveryOrderDetail) { ExternalTransferOrderDetail externalTransferOrderDetail = this.DbContext.ExternalTransferOrderDetails.FirstOrDefault(s => s.Id == detail.ETODetailId); externalTransferOrderDetail.DOQuantity = (externalTransferOrderDetail.DOQuantity) - (detail.DOQuantity); externalTransferOrderDetail.RemainingQuantity = (externalTransferOrderDetail.RemainingQuantity) + (detail.DOQuantity); externalTransferOrderDetail._LastModifiedUtc = DateTime.UtcNow; externalTransferOrderDetail._LastModifiedAgent = "Service"; externalTransferOrderDetail._LastModifiedBy = this.Username; if (externalTransferOrderDetail.DealQuantity == detail.RemainingQuantity) { TransferRequestDetail transRequestDetail = this.DbContext.TransferRequestDetails.FirstOrDefault(s => s.Id == detail.TRDetailId); transRequestDetail.Status = "Sudah diorder ke Penjualan"; transRequestDetail._LastModifiedUtc = DateTime.UtcNow; transRequestDetail._LastModifiedAgent = "Service"; transRequestDetail._LastModifiedBy = this.Username; InternalTransferOrderDetail internTransferOrderDetail = this.DbContext.InternalTransferOrderDetails.FirstOrDefault(s => s.Id == detail.ITODetailId); transRequestDetail.Status = "Sudah diorder ke Penjualan"; transRequestDetail._LastModifiedUtc = DateTime.UtcNow; transRequestDetail._LastModifiedAgent = "Service"; transRequestDetail._LastModifiedBy = this.Username; } else if (externalTransferOrderDetail.RemainingQuantity <= 0) { TransferRequestDetail transRequestDetail = this.DbContext.TransferRequestDetails.FirstOrDefault(s => s.Id == detail.TRDetailId); transRequestDetail.Status = "Sudah diorder semua ke Unit Pengirim"; transRequestDetail._LastModifiedUtc = DateTime.UtcNow; transRequestDetail._LastModifiedAgent = "Service"; transRequestDetail._LastModifiedBy = this.Username; InternalTransferOrderDetail internTransferOrderDetail = this.DbContext.InternalTransferOrderDetails.FirstOrDefault(s => s.Id == detail.ITODetailId); transRequestDetail.Status = "Sudah diorder semua ke Unit Pengirim"; transRequestDetail._LastModifiedUtc = DateTime.UtcNow; transRequestDetail._LastModifiedAgent = "Service"; transRequestDetail._LastModifiedBy = this.Username; } else if (externalTransferOrderDetail.RemainingQuantity > 0) { TransferRequestDetail transRequestDetail = this.DbContext.TransferRequestDetails.FirstOrDefault(s => s.Id == detail.TRDetailId); transRequestDetail.Status = "Sudah diorder sebagian ke Unit Pengirim"; transRequestDetail._LastModifiedUtc = DateTime.UtcNow; transRequestDetail._LastModifiedAgent = "Service"; transRequestDetail._LastModifiedBy = this.Username; InternalTransferOrderDetail internTransferOrderDetail = this.DbContext.InternalTransferOrderDetails.FirstOrDefault(s => s.Id == detail.ITODetailId); transRequestDetail.Status = "Sudah diorder sebagian ke Unit Pengirim"; transRequestDetail._LastModifiedUtc = DateTime.UtcNow; transRequestDetail._LastModifiedAgent = "Service"; transRequestDetail._LastModifiedBy = this.Username; } } } } await transferDeliveryOrderItemService.DeleteModel(itemId); } Deleted = await this.DeleteAsync(Id); this.DbContext.SaveChanges(); Transaction.Commit(); } catch (Exception) { Transaction.Rollback(); } } return(Deleted); }
public override async Task <int> CreateModel(TransferDeliveryOrder Model) { int Created = 0; using (var transaction = this.DbContext.Database.BeginTransaction()) { try { Model.DONo = await this.GenerateTransferDeliveryOrderNo(Model); Created = await this.CreateAsync(Model); foreach (var item in Model.TransferDeliveryOrderItem) { foreach (var detail in item.transferDeliveryOrderDetail) { ExternalTransferOrderDetail externalTransferOrderDetail = this.DbContext.ExternalTransferOrderDetails.FirstOrDefault(s => s.Id == detail.ETODetailId); externalTransferOrderDetail.DOQuantity = (externalTransferOrderDetail.DOQuantity) + (detail.DOQuantity); externalTransferOrderDetail.RemainingQuantity = (externalTransferOrderDetail.RemainingQuantity) - (detail.DOQuantity); externalTransferOrderDetail._LastModifiedUtc = DateTime.UtcNow; externalTransferOrderDetail._LastModifiedAgent = "Service"; externalTransferOrderDetail._LastModifiedBy = this.Username; if (externalTransferOrderDetail.RemainingQuantity > 0) { TransferRequestDetail transferRequestDetail = this.DbContext.TransferRequestDetails.FirstOrDefault(s => s.Id == detail.TRDetailId); transferRequestDetail.Status = "Sudah diorder sebagian ke Unit Pengirim"; transferRequestDetail._LastModifiedUtc = DateTime.UtcNow; transferRequestDetail._LastModifiedAgent = "Service"; transferRequestDetail._LastModifiedBy = this.Username; InternalTransferOrderDetail internalTransferOrderDetail = this.DbContext.InternalTransferOrderDetails.FirstOrDefault(s => s.Id == detail.ITODetailId); internalTransferOrderDetail.Status = "Sudah diorder sebagian ke Unit Pengirim"; internalTransferOrderDetail._LastModifiedUtc = DateTime.UtcNow; internalTransferOrderDetail._LastModifiedAgent = "Service"; internalTransferOrderDetail._LastModifiedBy = this.Username; } else if (externalTransferOrderDetail.RemainingQuantity <= 0) { TransferRequestDetail transferRequestDetail = this.DbContext.TransferRequestDetails.FirstOrDefault(s => s.Id == detail.TRDetailId); transferRequestDetail.Status = "Sudah diorder semua ke Unit Pengirim"; transferRequestDetail._LastModifiedUtc = DateTime.UtcNow; transferRequestDetail._LastModifiedAgent = "Service"; transferRequestDetail._LastModifiedBy = this.Username; InternalTransferOrderDetail internalTransferOrderDetail = this.DbContext.InternalTransferOrderDetails.FirstOrDefault(s => s.Id == detail.ITODetailId); internalTransferOrderDetail.Status = "Sudah diorder semua ke Unit Pengirim"; internalTransferOrderDetail._LastModifiedUtc = DateTime.UtcNow; internalTransferOrderDetail._LastModifiedAgent = "Service"; internalTransferOrderDetail._LastModifiedBy = this.Username; } } } this.DbContext.SaveChanges(); transaction.Commit(); } catch (ServiceValidationExeption e) { throw new ServiceValidationExeption(e.ValidationContext, e.ValidationResults); } catch (Exception e) { transaction.Rollback(); } } return(Created); }
public override async Task <int> UpdateModel(int Id, TransferShippingOrder Model) { int Updated = 0; using (var Transaction = this.DbContext.Database.BeginTransaction()) { try { TransferShippingOrderItemService shippingOrderItemService = ServiceProvider.GetService <TransferShippingOrderItemService>(); shippingOrderItemService.Username = this.Username; TransferShippingOrderDetailService shippingOrderDetailService = ServiceProvider.GetService <TransferShippingOrderDetailService>(); shippingOrderDetailService.Username = this.Username; HashSet <int> ShippingOrderItemIds = new HashSet <int>( this.DbContext.TransferShippingOrderItems .Where(p => p.SOId.Equals(Id)) .Select(p => p.Id) ); foreach (int itemId in ShippingOrderItemIds) { HashSet <int> ShippingOrderDetailIds = new HashSet <int>( this.DbContext.TransferShippingOrderDetails .Where(p => p.SOItemId.Equals(itemId)) .Select(p => p.Id) ); TransferShippingOrderItem shippingOrderItemNew = Model.TransferShippingOrderItems.FirstOrDefault(p => p.Id.Equals(itemId)); if (shippingOrderItemNew == null) { TransferShippingOrderItem item = this.DbContext.TransferShippingOrderItems .Include(d => d.TransferShippingOrderDetails) .FirstOrDefault(p => p.Id.Equals(itemId)); if (item != null) { foreach (var detail in item.TransferShippingOrderDetails) { TransferDeliveryOrderDetail transferDeliveryOrderDetail = this.DbContext.TransferDeliveryOrderDetails.FirstOrDefault(s => s.Id == detail.DODetailId); transferDeliveryOrderDetail.ShippingOrderQuantity -= (int)detail.DeliveryQuantity; transferDeliveryOrderDetail.RemainingQuantity += (int)detail.DeliveryQuantity; TransferRequestDetail transferRequestDetail = this.DbContext.TransferRequestDetails.FirstOrDefault(s => s.Id == detail.TRDetailId); transferRequestDetail._LastModifiedUtc = DateTime.UtcNow; transferRequestDetail._LastModifiedAgent = "Service"; transferRequestDetail._LastModifiedBy = this.Username; InternalTransferOrderDetail internalTransferOrderDetail = this.DbContext.InternalTransferOrderDetails.FirstOrDefault(s => s.Id == detail.ITODetailId); internalTransferOrderDetail._LastModifiedUtc = DateTime.UtcNow; internalTransferOrderDetail._LastModifiedAgent = "Service"; internalTransferOrderDetail._LastModifiedBy = this.Username; if (transferDeliveryOrderDetail.RemainingQuantity == transferDeliveryOrderDetail.DOQuantity) { ExternalTransferOrderDetail externalTransferOrderDetail = this.DbContext.ExternalTransferOrderDetails.FirstOrDefault(s => s.Id == detail.ETODetailId); transferRequestDetail.Status = externalTransferOrderDetail.RemainingQuantity > 0 ? "Barang Sudah dikirim sebagian ke Unit Pengirim" : "Barang Sudah dikirim semua ke Unit Pengirim"; internalTransferOrderDetail.Status = externalTransferOrderDetail.RemainingQuantity > 0 ? "Barang Sudah dikirim sebagian ke Unit Pengirim" : "Barang Sudah dikirim semua ke Unit Pengirim"; } else { transferRequestDetail.Status = transferDeliveryOrderDetail.RemainingQuantity > 0 ? "Barang Sudah dikirim sebagian" : "Barang Sudah dikirim semua"; internalTransferOrderDetail.Status = transferDeliveryOrderDetail.RemainingQuantity > 0 ? "Barang Sudah dikirim sebagian" : "Barang Sudah dikirim semua"; } } } foreach (int detailId in ShippingOrderDetailIds) { await shippingOrderDetailService.DeleteModel(detailId); } await shippingOrderItemService.DeleteModel(itemId); } else { await shippingOrderItemService.UpdateModel(itemId, shippingOrderItemNew); foreach (int detailId in ShippingOrderDetailIds) { TransferShippingOrderDetail shippingOrderDetailNew = shippingOrderItemNew.TransferShippingOrderDetails.FirstOrDefault(p => p.Id.Equals(detailId)); if (shippingOrderDetailNew == null) { await shippingOrderDetailService.DeleteModel(detailId); } else { await shippingOrderDetailService.UpdateModel(detailId, shippingOrderDetailNew); TransferShippingOrderDetail shippingOrderDetailOld = this.DbContext.TransferShippingOrderDetails.FirstOrDefault(p => p.Id.Equals(detailId)); TransferDeliveryOrderDetail transferDeliveryOrderDetail = this.DbContext.TransferDeliveryOrderDetails.FirstOrDefault(s => s.Id == shippingOrderDetailNew.DODetailId); transferDeliveryOrderDetail.ShippingOrderQuantity = transferDeliveryOrderDetail.ShippingOrderQuantity - (int)shippingOrderDetailOld.DeliveryQuantity + (int)shippingOrderDetailNew.DeliveryQuantity; transferDeliveryOrderDetail.RemainingQuantity = transferDeliveryOrderDetail.RemainingQuantity + (int)shippingOrderDetailOld.DeliveryQuantity - (int)shippingOrderDetailNew.DeliveryQuantity; TransferRequestDetail transferRequestDetail = this.DbContext.TransferRequestDetails.FirstOrDefault(s => s.Id == shippingOrderDetailNew.TRDetailId); transferRequestDetail._LastModifiedUtc = DateTime.UtcNow; transferRequestDetail._LastModifiedAgent = "Service"; transferRequestDetail._LastModifiedBy = this.Username; InternalTransferOrderDetail internalTransferOrderDetail = this.DbContext.InternalTransferOrderDetails.FirstOrDefault(s => s.Id == shippingOrderDetailNew.ITODetailId); internalTransferOrderDetail._LastModifiedUtc = DateTime.UtcNow; internalTransferOrderDetail._LastModifiedAgent = "Service"; internalTransferOrderDetail._LastModifiedBy = this.Username; if (transferDeliveryOrderDetail.RemainingQuantity == transferDeliveryOrderDetail.DOQuantity) { ExternalTransferOrderDetail externalTransferOrderDetail = this.DbContext.ExternalTransferOrderDetails.FirstOrDefault(s => s.Id == shippingOrderDetailNew.ETODetailId); transferRequestDetail.Status = externalTransferOrderDetail.RemainingQuantity > 0 ? "Barang Sudah dikirim sebagian ke Unit Pengirim" : "Barang Sudah dikirim semua ke Unit Pengirim"; internalTransferOrderDetail.Status = externalTransferOrderDetail.RemainingQuantity > 0 ? "Barang Sudah dikirim sebagian ke Unit Pengirim" : "Barang Sudah dikirim semua ke Unit Pengirim"; } else { transferRequestDetail.Status = transferDeliveryOrderDetail.RemainingQuantity > 0 ? "Barang Sudah dikirim sebagian" : "Barang Sudah dikirim semua"; internalTransferOrderDetail.Status = transferDeliveryOrderDetail.RemainingQuantity > 0 ? "Barang Sudah dikirim sebagian" : "Barang Sudah dikirim semua"; } } } } } Updated = await this.UpdateAsync(Id, Model); foreach (TransferShippingOrderItem item in Model.TransferShippingOrderItems) { if (item.Id == 0) { await shippingOrderItemService.CreateModel(item); foreach (var detail in item.TransferShippingOrderDetails) { TransferDeliveryOrderDetail transferDeliveryOrderDetail = this.DbContext.TransferDeliveryOrderDetails.FirstOrDefault(s => s.Id == detail.DODetailId); transferDeliveryOrderDetail.ShippingOrderQuantity += (int)detail.DeliveryQuantity; transferDeliveryOrderDetail.RemainingQuantity -= (int)detail.DeliveryQuantity; TransferRequestDetail transferRequestDetail = this.DbContext.TransferRequestDetails.FirstOrDefault(s => s.Id == detail.TRDetailId); transferRequestDetail._LastModifiedUtc = DateTime.UtcNow; transferRequestDetail._LastModifiedAgent = "Service"; transferRequestDetail._LastModifiedBy = this.Username; InternalTransferOrderDetail internalTransferOrderDetail = this.DbContext.InternalTransferOrderDetails.FirstOrDefault(s => s.Id == detail.ITODetailId); internalTransferOrderDetail._LastModifiedUtc = DateTime.UtcNow; internalTransferOrderDetail._LastModifiedAgent = "Service"; internalTransferOrderDetail._LastModifiedBy = this.Username; if (transferDeliveryOrderDetail.RemainingQuantity == transferDeliveryOrderDetail.DOQuantity) { ExternalTransferOrderDetail externalTransferOrderDetail = this.DbContext.ExternalTransferOrderDetails.FirstOrDefault(s => s.Id == detail.ETODetailId); transferRequestDetail.Status = externalTransferOrderDetail.RemainingQuantity > 0 ? "Barang Sudah dikirim sebagian ke Unit Pengirim" : "Barang Sudah dikirim semua ke Unit Pengirim"; internalTransferOrderDetail.Status = externalTransferOrderDetail.RemainingQuantity > 0 ? "Barang Sudah dikirim sebagian ke Unit Pengirim" : "Barang Sudah dikirim semua ke Unit Pengirim"; } else { transferRequestDetail.Status = transferDeliveryOrderDetail.RemainingQuantity > 0 ? "Barang Sudah dikirim sebagian" : "Barang Sudah dikirim semua"; internalTransferOrderDetail.Status = transferDeliveryOrderDetail.RemainingQuantity > 0 ? "Barang Sudah dikirim sebagian" : "Barang Sudah dikirim semua"; } } } } this.DbContext.SaveChanges(); Transaction.Commit(); } catch (Exception) { Transaction.Rollback(); } } return(Updated); }