Ejemplo n.º 1
0
 public GroupItemPrice VSameGroupId(GroupItemPrice groupItemPrice, int oldGroupId)
 {
     if (groupItemPrice.ContactGroupId != oldGroupId)
     {
         groupItemPrice.Errors.Add("ContactGroupId", "Tidak boleh beda");
     }
     return(groupItemPrice);
 }
Ejemplo n.º 2
0
 public GroupItemPrice VNonNegativePrice(GroupItemPrice groupItemPrice)
 {
     if (groupItemPrice.Price < 0)
     {
         groupItemPrice.Errors.Add("Price", "Tidak boleh negative");
     }
     return(groupItemPrice);
 }
Ejemplo n.º 3
0
 public GroupItemPrice VSameItemId(GroupItemPrice groupItemPrice, int oldItemId)
 {
     if (groupItemPrice.ItemId != oldItemId)
     {
         groupItemPrice.Errors.Add("ItemId", "Tidak boleh beda");
     }
     return(groupItemPrice);
 }
Ejemplo n.º 4
0
 public GroupItemPrice VHasUniqueIdCombination(GroupItemPrice groupItemPrice, IGroupItemPriceService _groupItemPriceService)
 {
     if (_groupItemPriceService.IsGroupItemPriceDuplicated(groupItemPrice))
     {
         groupItemPrice.Errors.Add("Generic", "Kombinasi ItemId & GroupId Tidak boleh ada duplikasi");
     }
     return(groupItemPrice);
 }
Ejemplo n.º 5
0
        public GroupItemPrice VIsValidItem(GroupItemPrice groupItemPrice, IItemService _itemService)
        {
            Item item = _itemService.GetObjectById(groupItemPrice.ItemId);

            if (item == null)
            {
                groupItemPrice.Errors.Add("ItemId", "Tidak valid");
            }
            return(groupItemPrice);
        }
Ejemplo n.º 6
0
        public GroupItemPrice VIsValidGroup(GroupItemPrice groupItemPrice, IContactGroupService _contactGroupService)
        {
            ContactGroup contactGroup = _contactGroupService.GetObjectById(groupItemPrice.ContactGroupId);

            if (contactGroup == null)
            {
                groupItemPrice.Errors.Add("ContactGroupId", "Tidak valid");
            }
            return(groupItemPrice);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 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);
 }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
 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);
 }
Ejemplo n.º 11
0
 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);
 }
Ejemplo n.º 12
0
 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);
 }
Ejemplo n.º 13
0
 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));
 }
Ejemplo n.º 14
0
 public GroupItemPrice SoftDeleteObject(GroupItemPrice groupItemPrice)
 {
     return(groupItemPrice = _validator.ValidDeleteObject(groupItemPrice) ?
                             _repository.SoftDeleteObject(groupItemPrice) : groupItemPrice);
 }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
 public GroupItemPrice VDeleteObject(GroupItemPrice groupItemPrice)
 {
     return(groupItemPrice);
 }
Ejemplo n.º 17
0
 public bool ValidCreateObject(GroupItemPrice groupItemPrice, IGroupItemPriceService _groupItemPriceService, IContactGroupService _contactGroupService, IItemService _itemService)
 {
     VCreateObject(groupItemPrice, _groupItemPriceService, _contactGroupService, _itemService);
     return(isValid(groupItemPrice));
 }
Ejemplo n.º 18
0
        public bool isValid(GroupItemPrice obj)
        {
            bool isValid = !obj.Errors.Any();

            return(isValid);
        }
Ejemplo n.º 19
0
 public bool ValidDeleteObject(GroupItemPrice groupItemPrice)
 {
     groupItemPrice.Errors.Clear();
     VDeleteObject(groupItemPrice);
     return(isValid(groupItemPrice));
 }
Ejemplo n.º 20
0
        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);
            };
        }