예제 #1
0
 public OrderItem(string description, decimal quantity, long goodId, long unitId, GoodFullInfo goodFullInfo)
 {
     Description = description;
     Quantity = quantity;
     GoodId = goodId;
     MeasuringUnitId = unitId;
     CommonBussinessRule(goodFullInfo, unitId);
     OrderItemBalances = new List<OrderItemBalance>();
 }
예제 #2
0
 //BR_PO20
 private void GoodHaveValidSuplierAndTransporter(OrderItem orderItem, GoodFullInfo goodFullInfo)
 {
     _orderBaseType.ValidateGoodSuplierAndTransporter(this, goodFullInfo);
 }
예제 #3
0
        private void CheckCommonAddAndEditItemRules(OrderItem orderItem,
                                                    GoodFullInfo goodFullInfo)
        {
            //BR_PO04
            IsOnOpenState();

            //BR_PO9
            IsNotDuplicate(orderItem);

            // BR_17  developer Dont implement refrence in order

            //BR_PO18
            CanBeOrderThisGood(orderItem, goodFullInfo);

            //BR_PO20
            GoodHaveValidSuplierAndTransporter(orderItem, goodFullInfo);

            //ValidateGoodQuantity(orderItem, goodDomainService);

            //            //BR_PO21
            //            CanBeOrderWithReOrderLevelCheck(orderItem, goodDomainService);

            //            //BR_PO22
            //            MaxOfOrderCheck(orderItem.Quantity, orderItem, goodPartyAssignmentDomainService);
            //
            //            //BR_PO23
            //            FixOfOrderCheck(orderItem.Quantity, orderItem, goodPartyAssignmentDomainService);
        }
예제 #4
0
 //        //BR_PO10
 //        private void IsNotOnMiddleApprovedStates()
 //        {
 //            var isMiddleApprovedState = new IsOrderInMiddleApprovedState();
 //            if (isMiddleApprovedState.IsSatisfiedBy(this))
 //                throw new BusinessRuleException("BR_PO10", "Order in Middle Approve State");
 //        }
 //
 //        //BR_PO13
 //        private void IsOnMiddleApprovedStates()
 //        {
 //            var isMiddleApprovedState = new IsOrderInMiddleApprovedState();
 //            if (isMiddleApprovedState.IsSatisfiedBy(this))
 //                throw new BusinessRuleException("BR_PO10", "Order in Middle Approve State");
 //        }
 //BR_PO18
 private void CanBeOrderThisGood(OrderItem orderItem,
                                 GoodFullInfo goodFullInfo)
 {
     if (!goodFullInfo.CanBeOrderedThisGood)
         throw new BusinessRuleException("BR_PO18", "Good Order Cant Be Order ");
 }
예제 #5
0
        public OrderItem UpdateItem(long id, string description, decimal quantity, long goodId, long unitId,
                                    long? goodPartyAssignmentId, GoodFullInfo goodFullInfo
            )
        {
            var orderItem = OrderItems.Single(c => c.Id == id);
            if (orderItem == null)
                throw new ObjectNotFound("Order Item", id);

            orderItem.Update(description, quantity, goodId, unitId, goodFullInfo);
            CheckCommonAddAndEditItemRules(orderItem, goodFullInfo);

            return orderItem;
        }
예제 #6
0
 public void AddItem(OrderItem orderItem, GoodFullInfo goodFullDomainInStorageService)
 {
     OrderItems.Add(orderItem);
     CheckCommonAddAndEditItemRules(orderItem, goodFullDomainInStorageService);
 }
예제 #7
0
 //BR_PO19
 private void ValidateGoodUnit(GoodFullInfo goodFullInfo, long unitId)
 {
     if (goodFullInfo.CompanyGoodUnits == null || goodFullInfo.CompanyGoodUnits.All(c => c.Id != unitId))
         throw new BusinessRuleException("", " Unit  Dont Definition For Compony ");
 }
예제 #8
0
 private void CommonBussinessRule(GoodFullInfo goodFullInfo, long unitId)
 {
     //BR_PO5
     IsNotEmpty();
     //BR_PO8
     IsHaveValidQuantity();
     //BR_PO19
     ValidateGoodUnit(goodFullInfo, unitId);
 }
예제 #9
0
 internal void Update(string description, decimal quantity, long goodId, long unitId, GoodFullInfo goodFullInfo)
 {
     Description = description;
     Quantity = quantity;
     GoodId = goodId;
     MeasuringUnitId = unitId;
     CommonBussinessRule(goodFullInfo, unitId);
 }
예제 #10
0
 public OrderItem CreateFactoryOrderItemObject(Order order, string description, decimal quantity, long goodId,
                                               long unitId, GoodFullInfo goodFullDetails)
 {
     var orderItem = new OrderItem(description, quantity, goodId, unitId, goodFullDetails);
     return orderItem;
 }