public Barring SoftDeleteObject(Barring barring, IItemTypeService _itemTypeService, IWarehouseItemService _warehouseItemService, IPriceMutationService _priceMutationService) { if (_validator.ValidDeleteObject(barring, _itemTypeService, _warehouseItemService)) { IList <WarehouseItem> allwarehouseitems = _warehouseItemService.GetObjectsByItemId(barring.Id); foreach (var warehouseitem in allwarehouseitems) { IWarehouseItemValidator warehouseItemValidator = _warehouseItemService.GetValidator(); if (!warehouseItemValidator.ValidDeleteObject(warehouseitem)) { barring.Errors.Add("Generic", "Tidak bisa menghapus item yang berhubungan dengan warehouse"); return(barring); } } foreach (var warehouseitem in allwarehouseitems) { _warehouseItemService.SoftDeleteObject(warehouseitem); } _repository.SoftDeleteObject(barring); IList <PriceMutation> priceMutations = _priceMutationService.GetActiveObjectsByItemId(barring.Id); foreach (var priceMutation in priceMutations) { _priceMutationService.DeactivateObject(priceMutation, barring.DeletedAt); } } return(barring); }
public Item SoftDeleteLegacyObject(Item item, IStockMutationService _stockMutationService, IItemTypeService _itemTypeService, IWarehouseItemService _warehouseItemService, IBarringService _barringService) { Barring barring = _barringService.GetObjectById(item.Id); if (barring != null) { _barringService.SoftDeleteObject(barring, _itemTypeService, _warehouseItemService); return(barring); } if (_validator.ValidDeleteLegacyObject(item, _stockMutationService, _itemTypeService, _warehouseItemService)) { IList <WarehouseItem> allwarehouseitems = _warehouseItemService.GetObjectsByItemId(item.Id); foreach (var warehouseitem in allwarehouseitems) { IWarehouseItemValidator warehouseItemValidator = _warehouseItemService.GetValidator(); if (!warehouseItemValidator.ValidDeleteObject(warehouseitem)) { item.Errors.Add("Generic", "Tidak bisa menghapus item yang berhubungan dengan warehouse"); return(item); } } foreach (var warehouseitem in allwarehouseitems) { _warehouseItemService.SoftDeleteObject(warehouseitem); } _repository.SoftDeleteObject(item); } return(item); }
public async Task <IActionResult> Edit(int id, [Bind("Idbarring,Code,NormalisedCode,Description,Status,FkCustomer")] Barring barring) { if (id != barring.Idbarring) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(barring); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BarringExists(barring.Idbarring)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(barring)); }
public Item SoftDeleteLegacyObject(Item item, IStockMutationService _stockMutationService, IItemTypeService _itemTypeService, IWarehouseItemService _warehouseItemService, IBarringService _barringService, IPurchaseOrderDetailService _purchaseOrderDetailService, IStockAdjustmentDetailService _stockAdjustmentDetailService, ISalesOrderDetailService _salesOrderDetailService, IPriceMutationService _priceMutationService) { Barring barring = _barringService.GetObjectById(item.Id); if (barring != null) { _barringService.SoftDeleteObject(barring, _itemTypeService, _warehouseItemService, _priceMutationService); return(barring); } if (_validator.ValidDeleteLegacyObject(item, _stockMutationService, _itemTypeService, _warehouseItemService, _purchaseOrderDetailService, _stockAdjustmentDetailService, _salesOrderDetailService)) { IList <WarehouseItem> allwarehouseitems = _warehouseItemService.GetObjectsByItemId(item.Id); foreach (var warehouseitem in allwarehouseitems) { IWarehouseItemValidator warehouseItemValidator = _warehouseItemService.GetValidator(); if (!warehouseItemValidator.ValidDeleteObject(warehouseitem)) { item.Errors.Add("Generic", "Tidak bisa menghapus item yang berhubungan dengan warehouse"); return(item); } } foreach (var warehouseitem in allwarehouseitems) { _warehouseItemService.SoftDeleteObject(warehouseitem); } _repository.SoftDeleteObject(item); IList <PriceMutation> priceMutations = _priceMutationService.GetActiveObjectsByItemId(item.Id); foreach (var priceMutation in priceMutations) { _priceMutationService.DeactivateObject(priceMutation, item.DeletedAt); } } return(item); }
public bool ValidUpdateObject(Barring barring, IBarringService _barringService, IUoMService _uomService, IItemService _itemService, IItemTypeService _itemTypeService, IContactService _contactService, IMachineService _machineService) { barring.Errors.Clear(); VUpdateObject(barring, _barringService, _uomService, _itemService, _itemTypeService, _contactService, _machineService); return(isValid(barring)); }
public Item UpdateLegacyObject(Item item, IUoMService _uomService, IItemTypeService _itemTypeService, IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService, IBarringService _barringService, IContactService _contactService, IMachineService _machineService, IPriceMutationService _priceMutationService, IContactGroupService _contactGroupService) { Barring barring = _barringService.GetObjectById(item.Id); if (barring != null) { _barringService.UpdateObject(barring, _barringService, _uomService, this, _itemTypeService, _contactService, _machineService, _warehouseItemService, _warehouseService, _contactGroupService, _priceMutationService); return(barring); } if (_validator.ValidUpdateLegacyObject(item, _uomService, this, _itemTypeService)) { ContactGroup contactGroup = _contactGroupService.GetObjectByIsLegacy(true); Item olditem = _repository.GetObjectById(item.Id); // Note: olditem might be pointing to the same memory with item (share the same contents) PriceMutation oldpriceMutation = _priceMutationService.GetObjectById(item.PriceMutationId); if (olditem.SellingPrice != item.SellingPrice) { DateTime priceMutationTimeStamp = DateTime.Now; PriceMutation priceMutation = _priceMutationService.CreateObject(item, /*contactGroup,*/ priceMutationTimeStamp); item.PriceMutationId = priceMutation.Id; _priceMutationService.DeactivateObject(oldpriceMutation, priceMutationTimeStamp); } item = _repository.UpdateObject(item); } return(item); }
public Barring UpdateObject(Barring barring, IBarringService _barringService, IUoMService _uomService, IItemService _itemService, IItemTypeService _itemTypeService, IContactService _contactService, IMachineService _machineService, IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService) { return(barring = _validator.ValidUpdateObject(barring, _barringService, _uomService, _itemService, _itemTypeService, _contactService, _machineService) ? _repository.UpdateObject(barring) : barring); }
public BarringOrder VQuantityIsInStock(BarringOrder barringOrder, IBarringOrderDetailService _barringOrderDetailService, IBarringService _barringService, IItemService _itemService, IWarehouseItemService _warehouseItemService) { IList <BarringOrderDetail> details = _barringOrderDetailService.GetObjectsByBarringOrderId(barringOrder.Id); // itemId contains Id of the blanket, leftbar, and rightbar IDictionary <int, int> ValuePairItemIdQuantity = new Dictionary <int, int>(); foreach (var detail in details) { Barring barring = _barringService.GetObjectById(detail.BarringId); // blanket if (ValuePairItemIdQuantity.ContainsKey(barring.BlanketItemId)) { ValuePairItemIdQuantity[barring.BlanketItemId] += 1; } else { ValuePairItemIdQuantity.Add(barring.BlanketItemId, 1); } // leftbar if (barring.LeftBarItemId != null) { if (ValuePairItemIdQuantity.ContainsKey((int)barring.LeftBarItemId)) { ValuePairItemIdQuantity[(int)barring.LeftBarItemId] += 1; } else { ValuePairItemIdQuantity.Add((int)barring.LeftBarItemId, 1); } } // rightbar if (barring.RightBarItemId != null) { if (ValuePairItemIdQuantity.ContainsKey((int)barring.RightBarItemId)) { ValuePairItemIdQuantity[(int)barring.RightBarItemId] += 1; } else { ValuePairItemIdQuantity.Add((int)barring.RightBarItemId, 1); } } } foreach (var ValuePair in ValuePairItemIdQuantity) { WarehouseItem warehouseItem = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, ValuePair.Key); if (warehouseItem.Quantity < ValuePair.Value) { barringOrder.Errors.Add("Generic", "Stock quantity BoM untuk barring tidak boleh kurang dari jumlah di dalam barring order"); return(barringOrder); } } return(barringOrder); }
public Barring VHasBar(Barring barring, int itemId, IItemService _itemService) { if (_itemService.GetObjectById(itemId) == null) { barring.Errors.Add("Generic", "Bar tidak terasosiasi di dalam system"); } return(barring); }
public Barring VHasNoBar(Barring barring, int itemId, IItemService _itemService) { if (_itemService.GetObjectById(itemId) != null) { barring.Errors.Add("Generic", "Bar tidak boleh terisi"); } return(barring); }
public Barring VHasName(Barring barring) { if (String.IsNullOrEmpty(barring.Name) || barring.Name.Trim() == "") { barring.Errors.Add("Name", "Tidak boleh kosong"); } return(barring); }
public Barring VHasCategory(Barring barring) { if (String.IsNullOrEmpty(barring.Category) || barring.Category.Trim() == "") { barring.Errors.Add("Category", "Tidak boleh kosong"); } return(barring); }
public Barring VHasContact(Barring barring, IContactService _contactService) { Contact contact = _contactService.GetObjectById(barring.ContactId); if (contact == null) { barring.Errors.Add("ContactId", "Tidak terasosiasi dengan contact"); } return(barring); }
public Barring VHasBlanket(Barring barring, IItemService _itemService) { Item blanket = _itemService.GetObjectById(barring.BlanketItemId); if (blanket == null) { barring.Errors.Add("BlanketItemId", "Tidak terasosiasi dengan blanket item"); } return(barring); }
public BarringOrderDetail VHasBarring(BarringOrderDetail barringOrderDetail, IBarringService _barringService) { Barring barring = _barringService.GetObjectById(barringOrderDetail.BarringId); if (barring == null) { barringOrderDetail.Errors.Add("BarringId", "Tidak terasosiasi dengan Barring"); } return(barringOrderDetail); }
public Barring VHasMachine(Barring barring, IMachineService _machineService) { Machine machine = _machineService.GetObjectById(barring.MachineId); if (machine == null) { barring.Errors.Add("MachineId", "Tidak terasosiasi dengan mesin"); } return(barring); }
public Barring VDeleteObject(Barring barring, IItemTypeService _itemTypeService, IWarehouseItemService _warehouseItemService) { VHasItemTypeAndIsLegacy(barring, _itemTypeService); if (!isValid(barring)) { return(barring); } VWarehouseQuantityMustBeZero(barring, _warehouseItemService); return(barring); }
public Barring VHasUoM(Barring barring, IUoMService _uomService) { UoM uom = _uomService.GetObjectById(barring.UoMId); if (uom == null) { barring.Errors.Add("UoMId", "Tidak terasosiasi dengan Unit of Measurement"); } return(barring); }
public Barring VCreateObject(Barring barring, IBarringService _barringService, IUoMService _uomService, IItemService _itemService, IItemTypeService _itemTypeService, IContactService _contactService, IMachineService _machineService) { // Item Validation VHasItemTypeAndIsLegacy(barring, _itemTypeService); if (!isValid(barring)) { return(barring); } VHasUniqueSku(barring, _barringService); if (!isValid(barring)) { return(barring); } VHasName(barring); if (!isValid(barring)) { return(barring); } VHasCategory(barring); if (!isValid(barring)) { return(barring); } VHasUoM(barring, _uomService); if (!isValid(barring)) { return(barring); } VNonNegativeQuantity(barring); if (!isValid(barring)) { return(barring); } // Bar Validation VHasBlanket(barring, _itemService); if (!isValid(barring)) { return(barring); } VHasContact(barring, _contactService); if (!isValid(barring)) { return(barring); } VHasMachine(barring, _machineService); if (!isValid(barring)) { return(barring); } VHasMeasurement(barring); return(barring); }
public Barring CreateObject(Barring barring, IBarringService _barringService, IUoMService _uomService, IItemService _itemService, IItemTypeService _itemTypeService, IContactService _contactService, IMachineService _machineService, IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService) { barring.Errors = new Dictionary <String, String>(); if (_validator.ValidCreateObject(barring, _barringService, _uomService, _itemService, _itemTypeService, _contactService, _machineService)) { barring = _repository.CreateObject(barring); } return(barring); }
public async Task <IActionResult> Create([Bind("Idbarring,Code,NormalisedCode,Description,Status,FkCustomer")] Barring barring) { if (ModelState.IsValid) { _context.Add(barring); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(barring)); }
public BarringOrderDetail FinishObject(BarringOrderDetail barringOrderDetail, DateTime FinishedDate, IBarringOrderService _barringOrderService, IStockMutationService _stockMutationService, IBarringService _barringService, IItemService _itemService, IWarehouseItemService _warehouseItemService) { barringOrderDetail.FinishedDate = FinishedDate; if (_validator.ValidFinishObject(barringOrderDetail, _barringOrderService)) { _repository.FinishObject(barringOrderDetail); // add barring order quantity final // if valid, complete barring order = true BarringOrder barringOrder = _barringOrderService.GetObjectById(barringOrderDetail.BarringOrderId); barringOrder.QuantityFinal += 1; _barringOrderService.AdjustQuantity(barringOrder); if (_barringOrderService.GetValidator().ValidCompleteObject(barringOrder, this)) { _barringOrderService.CompleteObject(barringOrder, this, _barringService, _itemService, _warehouseItemService); } bool CaseAdditionElse = false; bool CaseAdditionBarring = true; // add barring quantity Barring barring = _barringService.GetObjectById(barringOrderDetail.BarringId); WarehouseItem warehouseBarring = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, barring.Id); StockMutation stockMutation = _stockMutationService.CreateStockMutationForBarringOrder(barringOrderDetail, warehouseBarring, CaseAdditionBarring); _stockMutationService.StockMutateObject(stockMutation, _itemService, _barringService, _warehouseItemService); // deduce bars quantity if (barringOrderDetail.IsBarRequired) { Item leftbar = (barringOrderDetail.HasLeftBar && barring.LeftBarItemId != null) ? _itemService.GetObjectById((int)barring.LeftBarItemId) : null; Item rightbar = (barringOrderDetail.HasRightBar && barring.RightBarItemId != null) ? _itemService.GetObjectById((int)barring.RightBarItemId) : null; if (leftbar != null) { WarehouseItem warehouseLeftBar = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, leftbar.Id); StockMutation stockMutationLeftBar = _stockMutationService.CreateStockMutationForBarringOrder(barringOrderDetail, warehouseLeftBar, CaseAdditionElse); _stockMutationService.StockMutateObject(stockMutationLeftBar, _itemService, _barringService, _warehouseItemService); } if (rightbar != null) { WarehouseItem warehouseRightBar = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, rightbar.Id); StockMutation stockMutationRightBar = _stockMutationService.CreateStockMutationForBarringOrder(barringOrderDetail, warehouseRightBar, CaseAdditionElse); _stockMutationService.StockMutateObject(stockMutationRightBar, _itemService, _barringService, _warehouseItemService); } } // deduce blanket quantity WarehouseItem warehouseBlanket = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, barring.BlanketItemId); StockMutation stockMutationBlanket = _stockMutationService.CreateStockMutationForBarringOrder(barringOrderDetail, warehouseBlanket, CaseAdditionElse); _stockMutationService.StockMutateObject(stockMutationBlanket, _itemService, _barringService, _warehouseItemService); } return(barringOrderDetail); }
public BarringOrderDetail UnfinishObject(BarringOrderDetail barringOrderDetail, IBarringOrderService _barringOrderService, IStockMutationService _stockMutationService, IBarringService _barringService, IItemService _itemService, IWarehouseItemService _warehouseItemService) { if (_validator.ValidUnfinishObject(barringOrderDetail, _barringOrderService)) { _repository.UnfinishObject(barringOrderDetail); // deduce barring order quantity final BarringOrder barringOrder = _barringOrderService.GetObjectById(barringOrderDetail.BarringOrderId); barringOrder.QuantityFinal -= 1; _barringOrderService.AdjustQuantity(barringOrder); // reverse stock mutation Barring barring = _barringService.GetObjectById(barringOrderDetail.BarringId); WarehouseItem warehouseBarring = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, barring.Id); IList <StockMutation> stockMutations = _stockMutationService.SoftDeleteStockMutationForBarringOrder(barringOrderDetail, warehouseBarring); foreach (var stockMutation in stockMutations) { _stockMutationService.ReverseStockMutateObject(stockMutation, _itemService, _barringService, _warehouseItemService); } if (barringOrderDetail.IsBarRequired) { Item leftbar = (barringOrderDetail.HasLeftBar && barring.LeftBarItemId != null) ? _itemService.GetObjectById((int)barring.LeftBarItemId) : null; Item rightbar = (barringOrderDetail.HasRightBar && barring.RightBarItemId != null) ? _itemService.GetObjectById((int)barring.RightBarItemId) : null; if (leftbar != null) { WarehouseItem warehouseLeftBar = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, leftbar.Id); IList <StockMutation> stockMutationLeftBars = _stockMutationService.SoftDeleteStockMutationForBarringOrder(barringOrderDetail, warehouseLeftBar); foreach (var stockMutationLeftBar in stockMutationLeftBars) { _stockMutationService.ReverseStockMutateObject(stockMutationLeftBar, _itemService, _barringService, _warehouseItemService); } } if (rightbar != null) { WarehouseItem warehouseRightBar = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, rightbar.Id); IList <StockMutation> stockMutationRightBars = _stockMutationService.SoftDeleteStockMutationForBarringOrder(barringOrderDetail, warehouseRightBar); foreach (var stockMutationRightBar in stockMutationRightBars) { _stockMutationService.ReverseStockMutateObject(stockMutationRightBar, _itemService, _barringService, _warehouseItemService); } } } WarehouseItem warehouseBlanket = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, barring.BlanketItemId); IList <StockMutation> stockMutationBlankets = _stockMutationService.SoftDeleteStockMutationForBarringOrder(barringOrderDetail, warehouseBlanket); foreach (var stockMutationBlanket in stockMutationBlankets) { _stockMutationService.ReverseStockMutateObject(stockMutationBlanket, _itemService, _barringService, _warehouseItemService); } } return(barringOrderDetail); }
public Barring VHasUniqueSku(Barring barring, IBarringService _barringService) { if (String.IsNullOrEmpty(barring.Sku) || barring.Sku.Trim() == "") { barring.Errors.Add("Sku", "Tidak boleh kosong"); } else if (_barringService.IsSkuDuplicated(barring)) { barring.Errors.Add("Sku", "Tidak boleh diduplikasi"); } return(barring); }
public Barring VHasMeasurement(Barring barring) { if (barring.AC <= 0) { barring.Errors.Add("AC", "Tidak boleh negatif atau 0"); } else if (barring.AR <= 0) { barring.Errors.Add("AR", "Tidak boleh negatif atau 0"); } return(barring); }
public void StockMutateObject(StockMutation stockMutation, IItemService _itemService, IBarringService _barringService, IWarehouseItemService _warehouseItemService) { // decimal stockAdjustmentDetailPrice = (stockMutation.Status == Constant.MutationStatus.Addition) ? stockAdjustmentDetail.Price : ((-1) * stockAdjustmentDetail.Price); // item.AvgCost = _barringService.CalculateAvgCost(item, stockAdjustmentDetail.Quantity, stockAdjustmentDetailPrice); // barring.AvgCost = _barringService.CalculateAvgCost(barring, stockAdjustmentDetail.Quantity, stockAdjustmentDetailPrice); int Quantity = (stockMutation.Status == Constant.MutationStatus.Addition) ? stockMutation.Quantity : (-1) * stockMutation.Quantity; WarehouseItem warehouseItem = _warehouseItemService.GetObjectById(stockMutation.WarehouseItemId); Item item = _itemService.GetObjectById(stockMutation.ItemId); Barring barring = _barringService.GetObjectById(stockMutation.ItemId); if (warehouseItem != null) { if (stockMutation.ItemCase == Constant.ItemCase.Ready) { _warehouseItemService.AdjustQuantity(warehouseItem, Quantity); } } if (barring == null) { // itemService in action if (stockMutation.ItemCase == Constant.ItemCase.Ready) { _itemService.AdjustQuantity(item, Quantity); } else if (stockMutation.ItemCase == Constant.ItemCase.PendingDelivery) { _itemService.AdjustPendingDelivery(item, Quantity); } else if (stockMutation.ItemCase == Constant.ItemCase.PendingReceival) { _itemService.AdjustPendingReceival(item, Quantity); } } else { // barringService in action if (stockMutation.ItemCase == Constant.ItemCase.Ready) { _barringService.AdjustQuantity(barring, Quantity); } else if (stockMutation.ItemCase == Constant.ItemCase.PendingDelivery) { _barringService.AdjustPendingDelivery(barring, Quantity); } else if (stockMutation.ItemCase == Constant.ItemCase.PendingReceival) { _barringService.AdjustPendingReceival(barring, Quantity); } } }
public string PrintError(Barring obj) { string erroroutput = ""; KeyValuePair <string, string> first = obj.Errors.ElementAt(0); erroroutput += first.Key + "," + first.Value; foreach (KeyValuePair <string, string> pair in obj.Errors.Skip(1)) { erroroutput += Environment.NewLine; erroroutput += pair.Key + "," + pair.Value; } return(erroroutput); }
public Barring VWarehouseQuantityMustBeZero(Barring barring, IWarehouseItemService _warehouseItemService) { IList <WarehouseItem> warehouseItems = _warehouseItemService.GetObjectsByItemId(barring.Id); foreach (var warehouseitem in warehouseItems) { if (warehouseitem.Quantity > 0) { barring.Errors.Add("Generic", "Quantity di setiap warehouse harus 0"); return(barring); } } return(barring); }
public Item UpdateLegacyObject(Item item, IUoMService _uomService, IItemTypeService _itemTypeService, IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService, IBarringService _barringService, IContactService _contactService, IMachineService _machineService) { Barring barring = _barringService.GetObjectById(item.Id); if (barring != null) { _barringService.UpdateObject(barring, _barringService, _uomService, this, _itemTypeService, _contactService, _machineService, _warehouseItemService, _warehouseService); return(barring); } return(item = _validator.ValidUpdateLegacyObject(item, _uomService, this, _itemTypeService) ? _repository.UpdateObject(item) : item); }
public Barring VHasItemTypeAndIsLegacy(Barring barring, IItemTypeService _itemTypeService) { ItemType itemType = _itemTypeService.GetObjectById(barring.ItemTypeId); if (itemType == null) { barring.Errors.Add("ItemTypeId", "Tidak boleh tidak ada"); } else if (!itemType.IsLegacy) { barring.Errors.Add("ItemTypeId", "Harus berupa legacy item"); } return(barring); }