public GroupItemPrice VSameGroupId(GroupItemPrice groupItemPrice, int oldGroupId) { if (groupItemPrice.ContactGroupId != oldGroupId) { groupItemPrice.Errors.Add("ContactGroupId", "Tidak boleh beda"); } return(groupItemPrice); }
public GroupItemPrice VNonNegativePrice(GroupItemPrice groupItemPrice) { if (groupItemPrice.Price < 0) { groupItemPrice.Errors.Add("Price", "Tidak boleh negative"); } return(groupItemPrice); }
public GroupItemPrice VSameItemId(GroupItemPrice groupItemPrice, int oldItemId) { if (groupItemPrice.ItemId != oldItemId) { groupItemPrice.Errors.Add("ItemId", "Tidak boleh beda"); } return(groupItemPrice); }
public GroupItemPrice VHasUniqueIdCombination(GroupItemPrice groupItemPrice, IGroupItemPriceService _groupItemPriceService) { if (_groupItemPriceService.IsGroupItemPriceDuplicated(groupItemPrice)) { groupItemPrice.Errors.Add("Generic", "Kombinasi ItemId & GroupId Tidak boleh ada duplikasi"); } return(groupItemPrice); }
public GroupItemPrice VIsValidItem(GroupItemPrice groupItemPrice, IItemService _itemService) { Item item = _itemService.GetObjectById(groupItemPrice.ItemId); if (item == null) { groupItemPrice.Errors.Add("ItemId", "Tidak valid"); } return(groupItemPrice); }
public GroupItemPrice VIsValidGroup(GroupItemPrice groupItemPrice, IContactGroupService _contactGroupService) { ContactGroup contactGroup = _contactGroupService.GetObjectById(groupItemPrice.ContactGroupId); if (contactGroup == null) { groupItemPrice.Errors.Add("ContactGroupId", "Tidak valid"); } return(groupItemPrice); }
public string PrintError(GroupItemPrice 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 GroupItemPrice CreateObject(GroupItemPrice groupItemPrice, IContactGroupService _contactGroupService, IItemService _itemService, IPriceMutationService _priceMutationService) { groupItemPrice.Errors = new Dictionary <String, String>(); if (_validator.ValidCreateObject(groupItemPrice, this, _contactGroupService, _itemService)) { Item item = _itemService.GetObjectById(groupItemPrice.ItemId); groupItemPrice.CreatedAt = DateTime.Now; PriceMutation priceMutation = _priceMutationService.CreateObject(item.Id, /*groupItemPrice.ContactGroupId,*/ item.SellingPrice, groupItemPrice.CreatedAt); groupItemPrice.PriceMutationId = priceMutation.Id; groupItemPrice = _repository.CreateObject(groupItemPrice); } return(groupItemPrice); }
public GroupItemPrice VHasDifferentPrice(GroupItemPrice groupItemPrice, IPriceMutationService _priceMutationService) { IList <PriceMutation> priceMutations = _priceMutationService.GetObjectsByIsActive(true, groupItemPrice.ItemId /*, groupItemPrice.ContactGroupId*/, 0); foreach (var priceMutation in priceMutations) { if (groupItemPrice.Price == priceMutation.Amount) { groupItemPrice.Errors.Add("Price", "Tidak boleh sama dengan current active price"); return(groupItemPrice); } } return(groupItemPrice); }
public GroupItemPrice UpdateObject(GroupItemPrice groupItemPrice, int oldGroupId, int oldItemId, IItemService _itemService, IPriceMutationService _priceMutationService) { if (_validator.ValidUpdateObject(groupItemPrice, oldGroupId, oldItemId, this, _priceMutationService)) { Item item = _itemService.GetObjectById(groupItemPrice.ItemId); PriceMutation oldpriceMutation = _priceMutationService.GetObjectById(item.PriceMutationId); groupItemPrice.UpdatedAt = DateTime.Now; PriceMutation priceMutation = _priceMutationService.CreateObject(item.Id, /*groupItemPrice.ContactGroupId,*/ item.SellingPrice, (DateTime)groupItemPrice.UpdatedAt.GetValueOrDefault()); groupItemPrice.PriceMutationId = priceMutation.Id; groupItemPrice = _repository.UpdateObject(groupItemPrice); _priceMutationService.DeactivateObject(oldpriceMutation, groupItemPrice.UpdatedAt); } return(groupItemPrice); }
public GroupItemPrice VCreateObject(GroupItemPrice groupItemPrice, IGroupItemPriceService _groupItemPriceService, IContactGroupService _contactGroupService, IItemService _itemService) { VNonNegativePrice(groupItemPrice); if (!isValid(groupItemPrice)) { return(groupItemPrice); } VHasUniqueIdCombination(groupItemPrice, _groupItemPriceService); if (!isValid(groupItemPrice)) { return(groupItemPrice); } VIsValidGroup(groupItemPrice, _contactGroupService); if (!isValid(groupItemPrice)) { return(groupItemPrice); } VIsValidItem(groupItemPrice, _itemService); return(groupItemPrice); }
public GroupItemPrice VUpdateObject(GroupItemPrice groupItemPrice, int oldGroupId, int oldItemId, IGroupItemPriceService _groupItemPriceService, IPriceMutationService _priceMutationService) { // TODO Bugfix: oldgroupItemPrice seems to have the same content with groupItemPrice causing new itemid/groupid looks the same with old id //GroupItemPrice oldgroupItemPrice = _groupItemPriceService.GetObjectById(groupItemPrice.Id); VSameGroupId(groupItemPrice, oldGroupId); if (!isValid(groupItemPrice)) { return(groupItemPrice); } VSameItemId(groupItemPrice, oldItemId); if (!isValid(groupItemPrice)) { return(groupItemPrice); } VHasDifferentPrice(groupItemPrice, _priceMutationService); if (!isValid(groupItemPrice)) { return(groupItemPrice); } VNonNegativePrice(groupItemPrice); return(groupItemPrice); }
public bool ValidUpdateObject(GroupItemPrice groupItemPrice, int oldGroupId, int oldItemId, IGroupItemPriceService _groupItemPriceService, IPriceMutationService _priceMutationService) { groupItemPrice.Errors.Clear(); VUpdateObject(groupItemPrice, oldGroupId, oldItemId, _groupItemPriceService, _priceMutationService); return(isValid(groupItemPrice)); }
public GroupItemPrice SoftDeleteObject(GroupItemPrice groupItemPrice) { return(groupItemPrice = _validator.ValidDeleteObject(groupItemPrice) ? _repository.SoftDeleteObject(groupItemPrice) : groupItemPrice); }
public bool IsGroupItemPriceDuplicated(GroupItemPrice groupItemPrice) { IQueryable <GroupItemPrice> groupItemPrices = _repository.FindAll(x => x.ItemId == groupItemPrice.ItemId && x.ContactGroupId == groupItemPrice.ContactGroupId && !x.IsDeleted && x.Id != groupItemPrice.Id); return(groupItemPrices.Count() > 0 ? true : false); }
public GroupItemPrice VDeleteObject(GroupItemPrice groupItemPrice) { return(groupItemPrice); }
public bool ValidCreateObject(GroupItemPrice groupItemPrice, IGroupItemPriceService _groupItemPriceService, IContactGroupService _contactGroupService, IItemService _itemService) { VCreateObject(groupItemPrice, _groupItemPriceService, _contactGroupService, _itemService); return(isValid(groupItemPrice)); }
public bool isValid(GroupItemPrice obj) { bool isValid = !obj.Errors.Any(); return(isValid); }
public bool ValidDeleteObject(GroupItemPrice groupItemPrice) { groupItemPrice.Errors.Clear(); VDeleteObject(groupItemPrice); return(isValid(groupItemPrice)); }
void groupitemprice_validation() { it["validates_groupitemprice"] = () => { d.groupItemPrice1.Errors.Count().should_be(0); }; it["groupitemprice_with_no_price"] = () => { GroupItemPrice groupitemprice2 = new GroupItemPrice() { Price = 0, ItemId = d.item.Id, ContactGroupId = d.baseGroup.Id }; groupitemprice2 = d._groupItemPriceService.CreateObject(groupitemprice2, d._contactGroupService, d._itemService, d._priceMutationService); groupitemprice2.Errors.Count().should_not_be(0); }; it["groupitemprice_with_no_itemid"] = () => { GroupItemPrice groupitemprice2 = new GroupItemPrice() { Price = 1000, ContactGroupId = d.baseGroup.Id }; groupitemprice2 = d._groupItemPriceService.CreateObject(groupitemprice2, d._contactGroupService, d._itemService, d._priceMutationService); groupitemprice2.Errors.Count().should_not_be(0); }; it["groupitemprice_with_no_groupid"] = () => { GroupItemPrice groupitemprice2 = new GroupItemPrice() { Price = 1000, ItemId = d.item.Id }; groupitemprice2 = d._groupItemPriceService.CreateObject(groupitemprice2, d._contactGroupService, d._itemService, d._priceMutationService); groupitemprice2.Errors.Count().should_not_be(0); }; it["groupitemprice_with_same_idcombination"] = () => { GroupItemPrice groupitemprice2 = new GroupItemPrice() { Price = 2000, ItemId = d.item.Id, ContactGroupId = d.baseGroup.Id }; groupitemprice2 = d._groupItemPriceService.CreateObject(groupitemprice2, d._contactGroupService, d._itemService, d._priceMutationService); groupitemprice2.Errors.Count().should_not_be(0); }; context["when creating groupitemprice"] = () => { before = () => { }; it["should create PriceMutation"] = () => { d._priceMutationService.GetObjectById(d.groupItemPrice1.PriceMutationId).should_not_be_null(); }; it["should have 1 active PriceMutation"] = () => { d._priceMutationService.GetObjectsByIsActive(true, d.groupItemPrice1.ItemId, /*d.groupItemPrice1.ContactGroupId,*/ 0).Count().should_be(1); }; }; it["update_with_zero_price"] = () => { d.groupItemPrice1.Price = 0; d.groupItemPrice1 = d._groupItemPriceService.UpdateObject(d.groupItemPrice1, d.groupItemPrice1.ContactGroupId, d.groupItemPrice1.ItemId, d._itemService, d._priceMutationService); d.groupItemPrice1.Errors.Count().should_not_be(0); }; it["update_with_active_price"] = () => { PriceMutation pricemutation1 = d._priceMutationService.GetObjectsByIsActive(true, d.item.Id /*, d.baseGroup.Id*/, 0).FirstOrDefault(); d.groupItemPrice1.Price = pricemutation1.Amount; d.groupItemPrice1 = d._groupItemPriceService.UpdateObject(d.groupItemPrice1, d.groupItemPrice1.ContactGroupId, d.groupItemPrice1.ItemId, d._itemService, d._priceMutationService); d.groupItemPrice1.Errors.Count().should_not_be(0); }; it["update_with_different_itemid"] = () => { Item item = new Item() { ItemTypeId = d._itemTypeService.GetObjectByName("Accessory").Id, Sku = "ABC1002", Name = "CBA", Category = "ABC123", UoMId = d.Pcs.Id }; item = d._itemService.CreateObject(item, d._uomService, d._itemTypeService, d._warehouseItemService, d._warehouseService, d._priceMutationService, d._contactGroupService); int oldGroupId = d.groupItemPrice1.ContactGroupId; int oldItemId = d.groupItemPrice1.ItemId; d.groupItemPrice1.ItemId = item.Id; GroupItemPrice oldone = d._groupItemPriceService.GetObjectById(d.groupItemPrice1.Id); // TODO : Check why oldone.ItemId have the same new value with d.groupItemPrice1.ItemId d.groupItemPrice1 = d._groupItemPriceService.UpdateObject(d.groupItemPrice1, oldGroupId, oldItemId, d._itemService, d._priceMutationService); d.groupItemPrice1.Errors.Count().should_not_be(0); }; it["update_with_different_groupid"] = () => { ContactGroup contactgroup = d._contactGroupService.CreateObject("Admin", "Administrators"); int oldGroupId = d.groupItemPrice1.ContactGroupId; int oldItemId = d.groupItemPrice1.ItemId; d.groupItemPrice1.ContactGroupId = contactgroup.Id; d.groupItemPrice1 = d._groupItemPriceService.UpdateObject(d.groupItemPrice1, oldGroupId, oldItemId, d._itemService, d._priceMutationService); d.groupItemPrice1.Errors.Count().should_not_be(0); }; }