public static PurchaseOrderDetail FromDto(PurchaseOrderDetailDto dto) => new PurchaseOrderDetail(new Code(dto.ProductCode) , new Name(dto.Description) , dto.Cost , dto.Qty , dto.DiscountValue , dto.TaxPercent , null);
public async Task <PurchaseOrderDetailDto> GetPurchaseOrderDetail(int purchaseOrderID, int purchaseOrderDetailID, bool addIncludes) { DataModels.PurchaseOrderDetail resultDb = null; PurchaseOrderDetailDto result = null; if (addIncludes) { resultDb = await _purchaseOrderDetailRepository.All(_includes) .FirstOrDefaultAsync ( x => x.PurchaseOrderID == purchaseOrderID && x.PurchaseOrderDetailID == purchaseOrderDetailID ); } else { resultDb = await _purchaseOrderDetailRepository.FindAsync(purchaseOrderID, purchaseOrderDetailID); } result = _mapper.Map <PurchaseOrderDetailDto>(resultDb); return(result); }
public List <SalesOrderDto> GetPurchaseOrderSalesOrders(PurchaseOrderDetailDto searchedItems) { using (var workFlowEntities = new WorkFlowManagerDBEntities()) { var fabricquery = workFlowEntities.tbl_FabricAttriputes.Include("tbl_lkp_UoM").FirstOrDefault(x => x.FabricID == searchedItems.ItemId); var itemiserial = 0; if (fabricquery == null) { var accQuery = workFlowEntities.tbl_AccessoryAttributesHeader.FirstOrDefault(x => x.Code == searchedItems.ItemId); if (accQuery != null) { itemiserial = accQuery.Iserial; } } else { itemiserial = fabricquery.Iserial; } var reservedSalesOrders = workFlowEntities.Tbl_ReservationDetails .Where( x => x.Tbl_ReservationMainDetails1.Fabric == searchedItems.ItemId && x.Tbl_ReservationMainDetails1.FabricColor == searchedItems.FabricColor) .Select(w => new SalesOrderDto { SalesOrder = w.SalesOrder, SalesOrderColor = w.SalesOrderColor }); var salesOrders = (from bom in workFlowEntities.BOMs.Include("TblBOMStyleColors.TblColor").Include("TblBOMSizes").Include("TblSalesOrder1.TblStyle1").Include("TblSalesOrder1.TblSalesOrderColors.TblColor1") where bom.BOM_Fabric == itemiserial && bom.TblBOMStyleColors.Any(w => w.TblColor.Code == searchedItems.FabricColor) && bom.TblSalesOrder1.SalesOrderType == 2 && bom.TblSalesOrder1.TblStyle1.TblLkpSeason == searchedItems.TblSeason && bom.TblSalesOrder1.TblStyle1.Brand == searchedItems.Brand && bom.TblSalesOrder1.TblStyle1.TblLkpBrandSection == searchedItems.TblBrandSection select bom); var querylist = new List <SalesOrderDto>(); foreach (var bom in salesOrders.ToList()) { double?Temp = 0; if (bom.BOM_FabricType != "Accessories" && fabricquery.tbl_lkp_UoM.Code != "Meter") { Temp = bom.TblBOMSizes.Max(x => x.MaterialUsage) * ((fabricquery.WeightPerSquarMeterAsRawMax / 1000 * fabricquery.WidthAsRawMax / 100)); } else { Temp = bom.TblBOMSizes.Max(x => x.MaterialUsage); } foreach (var row in bom.TblBOMStyleColors.Where(x => x.TblColor != null && x.TblColor.Code.ToLower() == searchedItems.FabricColor.ToLower())) { if (!reservedSalesOrders.Any(x => x.SalesOrderColor == row.TblColor1.Code && x.SalesOrder == row.BOM1.TblSalesOrder1.SalesOrderCode)) { querylist.Add(new SalesOrderDto { SalesOrder = row.BOM1.TblSalesOrder1.SalesOrderCode, SalesOrderColor = row.TblColor1.Code, IntialQty = (float)(bom.TblSalesOrder1.TblSalesOrderColors.Where(x => x.TblColor1.Code.ToLower() == row.TblColor1.Code.ToLower()).Sum(x => x.Total) * Temp) }); } } } return(querylist); } }
public async Task <ActionResult> EditPurchaseOrder(PurchaseOrderHeaderDto dto) { foreach (var dtoItem in dto.PurchaseOrderDetails) { var check = await _stockService.CheckIfExist(dtoItem.ProductId); var old = await _purchaseOrderDetailsService.GetDetailsAsync(dtoItem.Id); if (old != null) { if (dtoItem.TotalPieces > old.TotalPieces) { var change = dtoItem.TotalPieces - old.TotalPieces; var tAmount = dtoItem.PricePerPiece * change; check.TotalPieces += change; check.Amount += tAmount; await _stockService.UpdateAsync(check); } else if (dtoItem.TotalPieces < old.TotalPieces) { var change = old.TotalPieces - dtoItem.TotalPieces; var tAmount = dtoItem.PricePerPiece * change; check.TotalPieces -= change; check.Amount -= tAmount; await _stockService.UpdateAsync(check); } } else { check.TotalPieces += dtoItem.TotalPieces; check.Amount += dtoItem.Amount; await _stockService.UpdateAsync(check); } } var updated = await _purchaseOderService.UpdateAsync(dto); foreach (var items in dto.PurchaseOrderDetails) { var getCheck = await _purchaseOrderDetailsService.GetAsync(new EntityDto <int>(items.Id)); if (getCheck == null) { var toCreate = new PurchaseOrderDetailDto { PurchaseOrderHeaderId = dto.PurchaseOrderId, ProductId = items.ProductId, Case = items.Case, ProdCase = items.ProdCase, Box = items.Box, ProdPiece = items.ProdPiece, Piece = items.Piece, Gross = items.Gross, Discount = items.Discount, Net = items.Net, TotalProductPrice = items.TotalProductPrice, }; await _purchaseOrderDetailsService.CreateAsync(toCreate); } else if (getCheck != null) { var toUpdate = new PurchaseOrderDetailDto { Id = items.Id, CreationTime = items.CreationTime, CreatorUserId = items.CreatorUserId, TenantId = items.TenantId, PurchaseOrderHeaderId = items.PurchaseOrderHeaderId, ProductId = items.ProductId, Case = items.Case, ProdCase = items.ProdCase, Box = items.Box, ProdPiece = items.ProdPiece, Piece = items.Piece, Gross = items.Gross, Discount = items.Discount, Net = items.Net, TotalProductPrice = items.TotalProductPrice, }; await _purchaseOrderDetailsService.UpdateAsync(toUpdate); } } return(Ok(updated)); }