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 UnitViewModel GetFromExternalTransferOrderByExternalTransferOrderId(int Id) { InternalTransferOrder internalTransferOrder = this.DbContext.InternalTransferOrders.FirstOrDefault(p => p.Id.Equals(Id)); return(new UnitViewModel() { _id = internalTransferOrder.UnitId, code = internalTransferOrder.UnitCode, name = internalTransferOrder.UnitName, }); }
public override async Task <int> CreateModel(ExternalTransferOrder Model) { int Created = 0; using (var Transaction = this.DbContext.Database.BeginTransaction()) { try { Model.ETONo = await this.GenerateExternalTransferOrderNo(Model); Created = await this.CreateAsync(Model); foreach (var item in Model.ExternalTransferOrderItems) { foreach (var detail in item.ExternalTransferOrderDetails) { TransferRequestDetail transferRequestDetail = this.DbContext.TransferRequestDetails.FirstOrDefault(s => s.Id == detail.TRDetailId); transferRequestDetail.Status = "Sudah dibuat TO Eksternal"; 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 dibuat TO Eksternal"; internalTransferOrderDetail._LastModifiedUtc = DateTime.UtcNow; internalTransferOrderDetail._LastModifiedAgent = "Service"; internalTransferOrderDetail._LastModifiedBy = this.Username; } InternalTransferOrder internalTransferOrder = this.DbContext.InternalTransferOrders.FirstOrDefault(s => s.Id == item.ITOId); internalTransferOrder.IsPost = true; internalTransferOrder._LastModifiedUtc = DateTime.UtcNow; internalTransferOrder._LastModifiedAgent = "Service"; internalTransferOrder._LastModifiedBy = this.Username; } this.DbContext.SaveChanges(); Transaction.Commit(); } catch (ServiceValidationExeption e) { throw new ServiceValidationExeption(e.ValidationContext, e.ValidationResults); } catch (Exception) { Transaction.Rollback(); } } return(Created); }
public bool Cancel(int Id) { bool IsSuccessful = false; using (var Transaction = this.DbContext.Database.BeginTransaction()) { try { var data = this.DbSet .Include(d => d.ExternalTransferOrderItems) .ThenInclude(d => d.ExternalTransferOrderDetails) .FirstOrDefault(tr => tr.Id == Id && tr._IsDeleted == false); data.IsCanceled = true; data._LastModifiedUtc = DateTime.UtcNow; data._LastModifiedAgent = "Service"; data._LastModifiedBy = this.Username; foreach (var item in data.ExternalTransferOrderItems) { InternalTransferOrder internalTransferOrder = this.DbContext.InternalTransferOrders.FirstOrDefault(s => s.Id == item.ITOId); internalTransferOrder.IsCanceled = true; internalTransferOrder._LastModifiedUtc = DateTime.UtcNow; internalTransferOrder._LastModifiedAgent = "Service"; internalTransferOrder._LastModifiedBy = this.Username; TransferRequest transferRequest = this.DbContext.TransferRequests.FirstOrDefault(s => s.Id == item.TRId); transferRequest.IsCanceled = true; transferRequest._LastModifiedUtc = DateTime.UtcNow; transferRequest._LastModifiedAgent = "Service"; transferRequest._LastModifiedBy = this.Username; } this.DbContext.SaveChanges(); IsSuccessful = true; Transaction.Commit(); } catch (DbUpdateConcurrencyException) { Transaction.Rollback(); throw; } } return(IsSuccessful); }
public ExternalTransferOrderItem GetNewData() { Task <InternalTransferOrder> internalTransferOrderTask = Task.Run(() => internalTransferOrderDataUtil.GetTestData()); internalTransferOrderTask.Wait(); InternalTransferOrder internalTransferOrder = internalTransferOrderTask.Result; return(new ExternalTransferOrderItem { ITOId = internalTransferOrder.Id, ITONo = internalTransferOrder.ITONo, TRId = internalTransferOrder.Id, TRNo = internalTransferOrder.TRNo, UnitId = internalTransferOrder.UnitId, UnitCode = internalTransferOrder.UnitCode, UnitName = internalTransferOrder.UnitName, ExternalTransferOrderDetails = externalTransferOrderDetailDataUtil.GetNewData(internalTransferOrder) }); }
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); 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) ); foreach (int detailId in ExternalTransferOrderDetailIds) { await externalTransferOrderDetailService.DeleteModel(detailId); 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; } } await externalTransferOrderItemService.DeleteModel(itemId); } Deleted = await this.DeleteAsync(Id); this.DbContext.SaveChanges(); Transaction.Commit(); } catch (Exception) { Transaction.Rollback(); } } return(Deleted); }
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); }