public bool ValidUpdateObject(PurchaseReceivalDetail purchaseReceivalDetail, IPurchaseReceivalDetailService _purchaseReceivalDetailService,
                               IPurchaseReceivalService _purchaseReceivalService, IPurchaseOrderDetailService _purchaseOrderDetailService, IItemService _itemService)
 {
     purchaseReceivalDetail.Errors.Clear();
     VUpdateObject(purchaseReceivalDetail, _purchaseReceivalDetailService, _purchaseReceivalService, _purchaseOrderDetailService, _itemService);
     return(isValid(purchaseReceivalDetail));
 }
예제 #2
0
 public PurchaseReceival VDeleteObject(PurchaseReceival purchaseReceival, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     VHasNotBeenConfirmed(purchaseReceival);
     if (!isValid(purchaseReceival))
     {
         return(purchaseReceival);
     }
     VHasNoPurchaseReceivalDetail(purchaseReceival, _purchaseReceivalDetailService);
     return(purchaseReceival);
 }
예제 #3
0
 public PurchaseOrderController()
 {
     _itemService                   = new ItemService(new ItemRepository(), new ItemValidator());
     _warehouseItemService          = new WarehouseItemService(new WarehouseItemRepository(), new WarehouseItemValidator());
     _stockMutationService          = new StockMutationService(new StockMutationRepository(), new StockMutationValidator());
     _barringService                = new BarringService(new BarringRepository(), new BarringValidator());
     _purchaseOrderService          = new PurchaseOrderService(new PurchaseOrderRepository(), new PurchaseOrderValidator());
     _purchaseOrderDetailService    = new PurchaseOrderDetailService(new PurchaseOrderDetailRepository(), new PurchaseOrderDetailValidator());
     _contactService                = new ContactService(new ContactRepository(), new ContactValidator());
     _purchaseReceivalService       = new PurchaseReceivalService(new PurchaseReceivalRepository(), new PurchaseReceivalValidator());
     _purchaseReceivalDetailService = new PurchaseReceivalDetailService(new PurchaseReceivalDetailRepository(), new PurchaseReceivalDetailValidator());
 }
예제 #4
0
 public PaymentRequestController()
 {
     _purchaseOrderService          = new PurchaseOrderService(new PurchaseOrderRepository(), new PurchaseOrderValidator());
     _purchaseOrderDetailService    = new PurchaseOrderDetailService(new PurchaseOrderDetailRepository(), new PurchaseOrderDetailValidator());
     _paymentRequestService         = new PaymentRequestService(new PaymentRequestRepository(), new PaymentRequestValidator());
     _contactService                = new ContactService(new ContactRepository(), new ContactValidator());
     _purchaseReceivalService       = new PurchaseReceivalService(new PurchaseReceivalRepository(), new PurchaseReceivalValidator());
     _purchaseReceivalDetailService = new PurchaseReceivalDetailService(new PurchaseReceivalDetailRepository(), new PurchaseReceivalDetailValidator());
     _paymentVoucherDetailService   = new PaymentVoucherDetailService(new PaymentVoucherDetailRepository(), new PaymentVoucherDetailValidator());
     _payableService                = new PayableService(new PayableRepository(), new PayableValidator());
     _itemService = new ItemService(new ItemRepository(), new ItemValidator());
 }
예제 #5
0
 public PurchaseInvoiceDetail UnconfirmObject(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseReceivalService _purchaseReceivalService,
                                              IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     if (_validator.ValidUnconfirmObject(purchaseInvoiceDetail))
     {
         purchaseInvoiceDetail = _repository.UnconfirmObject(purchaseInvoiceDetail);
         // reverse purchase receival detail PendingInvoiceQuantity
         PurchaseReceivalDetail purchaseReceivalDetail = _purchaseReceivalDetailService.GetObjectById(purchaseInvoiceDetail.PurchaseReceivalDetailId);
         _purchaseReceivalDetailService.UndoInvoiceObject(purchaseReceivalDetail, purchaseInvoiceDetail.Quantity, _purchaseReceivalService);
     }
     return(purchaseInvoiceDetail);
 }
예제 #6
0
 public PurchaseInvoiceController()
 {
     _purchaseOrderService          = new PurchaseOrderService(new PurchaseOrderRepository(), new PurchaseOrderValidator());
     _purchaseOrderDetailService    = new PurchaseOrderDetailService(new PurchaseOrderDetailRepository(), new PurchaseOrderDetailValidator());
     _purchaseInvoiceService        = new PurchaseInvoiceService(new PurchaseInvoiceRepository(), new PurchaseInvoiceValidator());
     _purchaseInvoiceDetailService  = new PurchaseInvoiceDetailService(new PurchaseInvoiceDetailRepository(), new PurchaseInvoiceDetailValidator());
     _purchaseReceivalService       = new PurchaseReceivalService(new PurchaseReceivalRepository(), new PurchaseReceivalValidator());
     _purchaseReceivalDetailService = new PurchaseReceivalDetailService(new PurchaseReceivalDetailRepository(), new PurchaseReceivalDetailValidator());
     _paymentVoucherDetailService   = new PaymentVoucherDetailService(new PaymentVoucherDetailRepository(), new PaymentVoucherDetailValidator());
     _payableService = new PayableService(new PayableRepository(), new PayableValidator());
     _itemService    = new ItemService(new ItemRepository(), new ItemValidator());
 }
예제 #7
0
 public PurchaseInvoiceDetail ConfirmObject(PurchaseInvoiceDetail purchaseInvoiceDetail, DateTime ConfirmationDate,
                                            IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     purchaseInvoiceDetail.ConfirmationDate = ConfirmationDate;
     if (_validator.ValidConfirmObject(purchaseInvoiceDetail, this, _purchaseReceivalDetailService))
     {
         purchaseInvoiceDetail = _repository.ConfirmObject(purchaseInvoiceDetail);
         // update purchase receival detail PendingInvoiceQuantity
         PurchaseReceivalDetail purchaseReceivalDetail = _purchaseReceivalDetailService.GetObjectById(purchaseInvoiceDetail.PurchaseReceivalDetailId);
         _purchaseReceivalDetailService.InvoiceObject(purchaseReceivalDetail, purchaseInvoiceDetail.Quantity);
     }
     return(purchaseInvoiceDetail);
 }
예제 #8
0
        public PurchaseInvoiceDetail CreateObject(int purchaseInvoiceId, int purchaseReceivalDetailId, int quantity, decimal amount,
                                                  IPurchaseInvoiceService _purchaseInvoiceService, IPurchaseOrderDetailService _purchaseOrderDetailService,
                                                  IPurchaseReceivalDetailService _purchaseReceivalDetailService)
        {
            PurchaseInvoiceDetail purchaseInvoiceDetail = new PurchaseInvoiceDetail
            {
                PurchaseInvoiceId        = purchaseInvoiceId,
                PurchaseReceivalDetailId = purchaseReceivalDetailId,
                Quantity = quantity
            };

            return(this.CreateObject(purchaseInvoiceDetail, _purchaseInvoiceService, _purchaseOrderDetailService, _purchaseReceivalDetailService));
        }
예제 #9
0
 public PurchaseReceival VConfirmObject(PurchaseReceival purchaseReceival, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     VHasConfirmationDate(purchaseReceival);
     if (!isValid(purchaseReceival))
     {
         return(purchaseReceival);
     }
     VHasNotBeenConfirmed(purchaseReceival);
     if (!isValid(purchaseReceival))
     {
         return(purchaseReceival);
     }
     VHasPurchaseReceivalDetails(purchaseReceival, _purchaseReceivalDetailService);
     return(purchaseReceival);
 }
 public RollerWarehouseMutationController()
 {
     _itemService                          = new ItemService(new ItemRepository(), new ItemValidator());
     _warehouseItemService                 = new WarehouseItemService(new WarehouseItemRepository(), new WarehouseItemValidator());
     _stockMutationService                 = new StockMutationService(new StockMutationRepository(), new StockMutationValidator());
     _barringService                       = new BarringService(new BarringRepository(), new BarringValidator());
     _rollerWarehouseMutationService       = new RollerWarehouseMutationService(new RollerWarehouseMutationRepository(), new RollerWarehouseMutationValidator());
     _rollerWarehouseMutationDetailService = new RollerWarehouseMutationDetailService(new RollerWarehouseMutationDetailRepository(), new RollerWarehouseMutationDetailValidator());
     _contactService                       = new ContactService(new ContactRepository(), new ContactValidator());
     _purchaseReceivalService              = new PurchaseReceivalService(new PurchaseReceivalRepository(), new PurchaseReceivalValidator());
     _purchaseReceivalDetailService        = new PurchaseReceivalDetailService(new PurchaseReceivalDetailRepository(), new PurchaseReceivalDetailValidator());
     _coreIdentificationService            = new CoreIdentificationService(new CoreIdentificationRepository(), new CoreIdentificationValidator());
     _coreIdentificationDetailService      = new CoreIdentificationDetailService(new CoreIdentificationDetailRepository(), new CoreIdentificationDetailValidator());
     _warehouseService                     = new WarehouseService(new WarehouseRepository(), new WarehouseValidator());
     _coreBuilderService                   = new CoreBuilderService(new CoreBuilderRepository(), new CoreBuilderValidator());
 }
예제 #11
0
 public PurchaseOrder UnconfirmObject(PurchaseOrder purchaseOrder, IPurchaseOrderDetailService _purchaseOrderDetailService, IPurchaseReceivalService _purchaseReceivalService,
                                      IPurchaseReceivalDetailService _purchaseReceivalDetailService, IStockMutationService _stockMutationService,
                                      IItemService _itemService, IBarringService _barringService, IWarehouseItemService _warehouseItemService)
 {
     if (_validator.ValidUnconfirmObject(purchaseOrder, _purchaseReceivalService))
     {
         IList <PurchaseOrderDetail> purchaseOrderDetails = _purchaseOrderDetailService.GetObjectsByPurchaseOrderId(purchaseOrder.Id);
         foreach (var detail in purchaseOrderDetails)
         {
             detail.Errors = new Dictionary <string, string>();
             _purchaseOrderDetailService.UnconfirmObject(detail, _purchaseReceivalDetailService, _stockMutationService, _itemService, _barringService, _warehouseItemService);
         }
         _repository.UnconfirmObject(purchaseOrder);
     }
     return(purchaseOrder);
 }
 public PurchaseReceivalDetail VConfirmObject(PurchaseReceivalDetail purchaseReceivalDetail,
                                              IPurchaseReceivalDetailService _purchaseReceivalDetailService,
                                              IPurchaseOrderDetailService _purchaseOrderDetailService)
 {
     VHasConfirmationDate(purchaseReceivalDetail);
     if (!isValid(purchaseReceivalDetail))
     {
         return(purchaseReceivalDetail);
     }
     VHasNotBeenConfirmed(purchaseReceivalDetail);
     if (!isValid(purchaseReceivalDetail))
     {
         return(purchaseReceivalDetail);
     }
     VQuantityOfPurchaseReceivalDetailsIsLessThanOrEqualPurchaseOrderDetail(purchaseReceivalDetail, _purchaseReceivalDetailService, _purchaseOrderDetailService);
     return(purchaseReceivalDetail);
 }
예제 #13
0
 public PaymentVoucherController()
 {
     _cashBankService               = new CashBankService(new CashBankRepository(), new CashBankValidator());
     _cashMutationService           = new CashMutationService(new CashMutationRepository(), new CashMutationValidator());
     _purchaseOrderService          = new PurchaseOrderService(new PurchaseOrderRepository(), new PurchaseOrderValidator());
     _purchaseOrderDetailService    = new PurchaseOrderDetailService(new PurchaseOrderDetailRepository(), new PurchaseOrderDetailValidator());
     _purchaseInvoiceService        = new PurchaseInvoiceService(new PurchaseInvoiceRepository(), new PurchaseInvoiceValidator());
     _purchaseInvoiceDetailService  = new PurchaseInvoiceDetailService(new PurchaseInvoiceDetailRepository(), new PurchaseInvoiceDetailValidator());
     _purchaseReceivalService       = new PurchaseReceivalService(new PurchaseReceivalRepository(), new PurchaseReceivalValidator());
     _purchaseReceivalDetailService = new PurchaseReceivalDetailService(new PurchaseReceivalDetailRepository(), new PurchaseReceivalDetailValidator());
     _paymentVoucherDetailService   = new PaymentVoucherDetailService(new PaymentVoucherDetailRepository(), new PaymentVoucherDetailValidator());
     _payableService              = new PayableService(new PayableRepository(), new PayableValidator());
     _itemService                 = new ItemService(new ItemRepository(), new ItemValidator());
     _paymentVoucherService       = new PaymentVoucherService(new PaymentVoucherRepository(), new PaymentVoucherValidator());
     _contactService              = new ContactService(new ContactRepository(), new ContactValidator());
     _accountService              = new AccountService(new AccountRepository(), new AccountValidator());
     _generalLedgerJournalService = new GeneralLedgerJournalService(new GeneralLedgerJournalRepository(), new GeneralLedgerJournalValidator());
     _closingService              = new ClosingService(new ClosingRepository(), new ClosingValidator());
     _validCombService            = new ValidCombService(new ValidCombRepository(), new ValidCombValidator());
 }
예제 #14
0
 public SalesInvoiceController()
 {
     _purchaseOrderService          = new PurchaseOrderService(new PurchaseOrderRepository(), new PurchaseOrderValidator());
     _purchaseOrderDetailService    = new PurchaseOrderDetailService(new PurchaseOrderDetailRepository(), new PurchaseOrderDetailValidator());
     _purchaseInvoiceService        = new PurchaseInvoiceService(new PurchaseInvoiceRepository(), new PurchaseInvoiceValidator());
     _purchaseInvoiceDetailService  = new PurchaseInvoiceDetailService(new PurchaseInvoiceDetailRepository(), new PurchaseInvoiceDetailValidator());
     _purchaseReceivalService       = new PurchaseReceivalService(new PurchaseReceivalRepository(), new PurchaseReceivalValidator());
     _purchaseReceivalDetailService = new PurchaseReceivalDetailService(new PurchaseReceivalDetailRepository(), new PurchaseReceivalDetailValidator());
     _paymentVoucherDetailService   = new PaymentVoucherDetailService(new PaymentVoucherDetailRepository(), new PaymentVoucherDetailValidator());
     _payableService              = new PayableService(new PayableRepository(), new PayableValidator());
     _itemService                 = new ItemService(new ItemRepository(), new ItemValidator());
     _salesInvoiceService         = new SalesInvoiceService(new SalesInvoiceRepository(), new SalesInvoiceValidator());
     _salesInvoiceDetailService   = new SalesInvoiceDetailService(new SalesInvoiceDetailRepository(), new SalesInvoiceDetailValidator());
     _deliveryOrderDetailService  = new DeliveryOrderDetailService(new DeliveryOrderDetailRepository(), new DeliveryOrderDetailValidator());
     _receiptVoucherDetailService = new ReceiptVoucherDetailService(new ReceiptVoucherDetailRepository(), new ReceiptVoucherDetailValidator());
     _receivableService           = new ReceivableService(new ReceivableRepository(), new ReceivableValidator());
     _salesOrderService           = new SalesOrderService(new SalesOrderRepository(), new SalesOrderValidator());
     _deliveryOrderDetailService  = new DeliveryOrderDetailService(new DeliveryOrderDetailRepository(), new DeliveryOrderDetailValidator());
     _salesOrderDetailService     = new SalesOrderDetailService(new SalesOrderDetailRepository(), new SalesOrderDetailValidator());
     _deliveryOrderService        = new DeliveryOrderService(new DeliveryOrderRepository(), new DeliveryOrderValidator());
 }
예제 #15
0
 public PurchaseInvoiceDetail VConfirmObject(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceDetailService _purchaseInvoiceDetailService, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     VHasConfirmationDate(purchaseInvoiceDetail);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VHasNotBeenConfirmed(purchaseInvoiceDetail);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VQuantityIsLessThanOrEqualPendingInvoiceQuantity(purchaseInvoiceDetail, _purchaseReceivalDetailService);
     return(purchaseInvoiceDetail);
 }
예제 #16
0
 public PurchaseInvoiceDetail VUpdateObject(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceService _purchaseInvoiceService,
                                            IPurchaseInvoiceDetailService _purchaseInvoiceDetailService, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     VHasNotBeenConfirmed(purchaseInvoiceDetail);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VCreateObject(purchaseInvoiceDetail, _purchaseInvoiceService, _purchaseInvoiceDetailService, _purchaseReceivalDetailService);
     return(purchaseInvoiceDetail);
 }
예제 #17
0
 public PurchaseInvoiceDetail VCreateObject(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceService _purchaseInvoiceService,
                                            IPurchaseInvoiceDetailService _purchaseInvoiceDetailService, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     VHasPurchaseInvoice(purchaseInvoiceDetail, _purchaseInvoiceService);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VHasPurchaseReceivalDetail(purchaseInvoiceDetail, _purchaseReceivalDetailService);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VPurchaseReceivalDetailAndPurchaseInvoiceMustHaveTheSamePurchaseReceival(purchaseInvoiceDetail, _purchaseReceivalDetailService, _purchaseInvoiceService);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VIsUniquePurchaseReceivalDetail(purchaseInvoiceDetail, _purchaseInvoiceDetailService, _purchaseReceivalDetailService);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VNonNegativeNorZeroQuantity(purchaseInvoiceDetail);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VQuantityIsLessThanOrEqualPendingInvoiceQuantity(purchaseInvoiceDetail, _purchaseReceivalDetailService);
     return(purchaseInvoiceDetail);
 }
예제 #18
0
 public PurchaseOrderDetail VUnconfirmObject(PurchaseOrderDetail purchaseOrderDetail, IPurchaseReceivalDetailService _purchaseReceivalDetailService, IItemService _itemService)
 {
     VHasConfirmationDate(purchaseOrderDetail);
     if (!isValid(purchaseOrderDetail))
     {
         return(purchaseOrderDetail);
     }
     VHasItemPendingReceival(purchaseOrderDetail, _itemService);
     if (!isValid(purchaseOrderDetail))
     {
         return(purchaseOrderDetail);
     }
     VHasNoPurchaseReceivalDetail(purchaseOrderDetail, _purchaseReceivalDetailService);
     return(purchaseOrderDetail);
 }
예제 #19
0
        public PurchaseOrderDetail VHasNoPurchaseReceivalDetail(PurchaseOrderDetail purchaseOrderDetail, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
        {
            IList <PurchaseReceivalDetail> purchaseReceivalDetails = _purchaseReceivalDetailService.GetObjectsByPurchaseOrderDetailId(purchaseOrderDetail.Id);

            if (purchaseReceivalDetails.Any())
            {
                purchaseOrderDetail.Errors.Add("Generic", "Tidak boleh terasosiasi dengan purchase receival");
            }
            return(purchaseOrderDetail);
        }
예제 #20
0
        public PurchaseInvoice ConfirmObject(PurchaseInvoice purchaseInvoice, DateTime ConfirmationDate, IPurchaseInvoiceDetailService _purchaseInvoiceDetailService, IPurchaseOrderService _purchaseOrderService,
                                             IPurchaseReceivalService _purchaseReceivalService, IPurchaseReceivalDetailService _purchaseReceivalDetailService, IPayableService _payableService)
        {
            purchaseInvoice.ConfirmationDate = ConfirmationDate;
            if (_validator.ValidConfirmObject(purchaseInvoice, _purchaseInvoiceDetailService, _purchaseReceivalService, _purchaseReceivalDetailService))
            {
                // confirm details
                // add all amount into amountpayable
                IList <PurchaseInvoiceDetail> details = _purchaseInvoiceDetailService.GetObjectsByPurchaseInvoiceId(purchaseInvoice.Id);
                foreach (var detail in details)
                {
                    detail.Errors = new Dictionary <string, string>();
                    _purchaseInvoiceDetailService.ConfirmObject(detail, ConfirmationDate, _purchaseReceivalDetailService);
                }
                purchaseInvoice = CalculateAmountPayable(purchaseInvoice, _purchaseInvoiceDetailService);

                // confirm object
                // create payable
                purchaseInvoice = _repository.ConfirmObject(purchaseInvoice);
                PurchaseReceival purchaseReceival = _purchaseReceivalService.GetObjectById(purchaseInvoice.PurchaseReceivalId);
                _purchaseReceivalService.CheckAndSetInvoiceComplete(purchaseReceival, _purchaseReceivalDetailService);
                PurchaseOrder purchaseOrder = _purchaseOrderService.GetObjectById(purchaseReceival.PurchaseOrderId);
                Payable       payable       = _payableService.CreateObject(purchaseOrder.ContactId, Constant.PayableSource.PurchaseInvoice, purchaseInvoice.Id, purchaseInvoice.AmountPayable, purchaseInvoice.DueDate);
            }
            return(purchaseInvoice);
        }
예제 #21
0
 public PurchaseInvoice UnconfirmObject(PurchaseInvoice purchaseInvoice, IPurchaseInvoiceDetailService _purchaseInvoiceDetailService,
                                        IPurchaseReceivalService _purchaseReceivalService, IPurchaseReceivalDetailService _purchaseReceivalDetailService,
                                        IPaymentVoucherDetailService _paymentVoucherDetailService, IPayableService _payableService)
 {
     if (_validator.ValidUnconfirmObject(purchaseInvoice, _purchaseInvoiceDetailService, _paymentVoucherDetailService, _payableService))
     {
         IList <PurchaseInvoiceDetail> details = _purchaseInvoiceDetailService.GetObjectsByPurchaseInvoiceId(purchaseInvoice.Id);
         foreach (var detail in details)
         {
             detail.Errors = new Dictionary <string, string>();
             _purchaseInvoiceDetailService.UnconfirmObject(detail, _purchaseReceivalService, _purchaseReceivalDetailService);
         }
         _repository.UnconfirmObject(purchaseInvoice);
         PurchaseReceival purchaseReceival = _purchaseReceivalService.GetObjectById(purchaseInvoice.PurchaseReceivalId);
         _purchaseReceivalService.UnsetInvoiceComplete(purchaseReceival);
         Payable payable = _payableService.GetObjectBySource(Constant.PayableSource.PurchaseInvoice, purchaseInvoice.Id);
         _payableService.SoftDeleteObject(payable);
     }
     return(purchaseInvoice);
 }
예제 #22
0
        public PurchaseInvoiceDetail VIsUniquePurchaseReceivalDetail(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceDetailService _purchaseInvoiceDetail, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
        {
            IList <PurchaseInvoiceDetail> details = _purchaseInvoiceDetail.GetObjectsByPurchaseInvoiceId(purchaseInvoiceDetail.PurchaseInvoiceId);

            foreach (var detail in details)
            {
                if (detail.PurchaseReceivalDetailId == purchaseInvoiceDetail.PurchaseReceivalDetailId && detail.Id != purchaseInvoiceDetail.Id)
                {
                    purchaseInvoiceDetail.Errors.Add("PurchaseInvoiceDetail", "Tidak boleh memiliki lebih dari 2 Purchase Receival Detail");
                }
            }
            return(purchaseInvoiceDetail);
        }
예제 #23
0
        public PurchaseInvoiceDetail VHasPurchaseReceivalDetail(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
        {
            PurchaseReceivalDetail prd = _purchaseReceivalDetailService.GetObjectById(purchaseInvoiceDetail.PurchaseReceivalDetailId);

            if (prd == null)
            {
                purchaseInvoiceDetail.Errors.Add("PurchaseReceivalDetail", "Tidak boleh tidak ada");
            }
            return(purchaseInvoiceDetail);
        }
예제 #24
0
 public bool ValidCreateObject(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceService _purchaseInvoiceService,
                               IPurchaseInvoiceDetailService _purchaseInvoiceDetailService, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     VCreateObject(purchaseInvoiceDetail, _purchaseInvoiceService, _purchaseInvoiceDetailService, _purchaseReceivalDetailService);
     return(isValid(purchaseInvoiceDetail));
 }
예제 #25
0
 public bool ValidConfirmObject(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceDetailService _purchaseInvoiceDetailService, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     purchaseInvoiceDetail.Errors.Clear();
     VConfirmObject(purchaseInvoiceDetail, _purchaseInvoiceDetailService, _purchaseReceivalDetailService);
     return(isValid(purchaseInvoiceDetail));
 }
예제 #26
0
 public PurchaseReceival ConfirmObject(PurchaseReceival purchaseReceival, DateTime ConfirmationDate, IPurchaseReceivalDetailService _purchaseReceivalDetailService,
                                       IPurchaseOrderService _purchaseOrderService, IPurchaseOrderDetailService _purchaseOrderDetailService,
                                       IStockMutationService _stockMutationService, IItemService _itemService,
                                       IBarringService _barringService, IWarehouseItemService _warehouseItemService)
 {
     purchaseReceival.ConfirmationDate = ConfirmationDate;
     if (_validator.ValidConfirmObject(purchaseReceival, _purchaseReceivalDetailService))
     {
         IList <PurchaseReceivalDetail> purchaseReceivalDetails = _purchaseReceivalDetailService.GetObjectsByPurchaseReceivalId(purchaseReceival.Id);
         foreach (var detail in purchaseReceivalDetails)
         {
             detail.Errors = new Dictionary <string, string>();
             _purchaseReceivalDetailService.ConfirmObject(detail, ConfirmationDate, this, _purchaseOrderDetailService, _stockMutationService, _itemService, _barringService, _warehouseItemService);
         }
         _repository.ConfirmObject(purchaseReceival);
         PurchaseOrder purchaseOrder = _purchaseOrderService.GetObjectById(purchaseReceival.PurchaseOrderId);
         _purchaseOrderService.CheckAndSetReceivalComplete(purchaseOrder, _purchaseOrderDetailService);
     }
     return(purchaseReceival);
 }
예제 #27
0
        public PurchaseInvoiceDetail VPurchaseReceivalDetailAndPurchaseInvoiceMustHaveTheSamePurchaseReceival(PurchaseInvoiceDetail purchaseInvoiceDetail,
                                                                                                              IPurchaseReceivalDetailService _purchaseReceivalDetailService, IPurchaseInvoiceService _purchaseInvoiceService)
        {
            PurchaseReceivalDetail purchaseReceivalDetail = _purchaseReceivalDetailService.GetObjectById(purchaseInvoiceDetail.PurchaseReceivalDetailId);
            PurchaseInvoice        purchaseInvoice        = _purchaseInvoiceService.GetObjectById(purchaseInvoiceDetail.PurchaseInvoiceId);

            if (purchaseReceivalDetail.PurchaseReceivalId != purchaseInvoice.PurchaseReceivalId)
            {
                purchaseReceivalDetail.Errors.Add("Generic", "Purchase receival detail dan purchase invoice memiliki purchase receival berbeda");
            }
            return(purchaseInvoiceDetail);
        }
예제 #28
0
        public PurchaseInvoice VAllPurchaseInvoiceDetailsAreConfirmable(PurchaseInvoice purchaseInvoice, IPurchaseInvoiceDetailService _purchaseInvoiceDetailService, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
        {
            IList <PurchaseInvoiceDetail> details = _purchaseInvoiceDetailService.GetObjectsByPurchaseInvoiceId(purchaseInvoice.Id);

            foreach (var detail in details)
            {
                detail.ConfirmationDate = purchaseInvoice.ConfirmationDate;
                detail.Errors           = new Dictionary <string, string>();
                _purchaseInvoiceDetailService.GetValidator().VConfirmObject(detail, _purchaseInvoiceDetailService, _purchaseReceivalDetailService);
                foreach (var error in detail.Errors)
                {
                    purchaseInvoice.Errors.Add("Generic", error.Value);
                }
                if (!isValid(purchaseInvoice))
                {
                    return(purchaseInvoice);
                }
            }
            return(purchaseInvoice);
        }
예제 #29
0
        public PurchaseInvoiceDetail VQuantityIsLessThanOrEqualPendingInvoiceQuantity(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
        {
            PurchaseReceivalDetail purchaseReceivalDetail = _purchaseReceivalDetailService.GetObjectById(purchaseInvoiceDetail.PurchaseReceivalDetailId);

            if (purchaseInvoiceDetail.Quantity > purchaseReceivalDetail.PendingInvoicedQuantity)
            {
                purchaseInvoiceDetail.Errors.Add("Generic", "Quantity harus kurang dari atau sama dengan pending invoice quantity");
            }
            return(purchaseInvoiceDetail);
        }
예제 #30
0
 public PurchaseInvoice VConfirmObject(PurchaseInvoice purchaseInvoice, IPurchaseInvoiceDetailService _purchaseInvoiceDetailService,
                                       IPurchaseReceivalService _purchaseReceivalService, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     VHasConfirmationDate(purchaseInvoice);
     if (!isValid(purchaseInvoice))
     {
         return(purchaseInvoice);
     }
     VPurchaseReceivalHasNotBeenInvoiceCompleted(purchaseInvoice, _purchaseReceivalService);
     if (!isValid(purchaseInvoice))
     {
         return(purchaseInvoice);
     }
     VHasNotBeenDeleted(purchaseInvoice);
     if (!isValid(purchaseInvoice))
     {
         return(purchaseInvoice);
     }
     VHasNotBeenConfirmed(purchaseInvoice);
     if (!isValid(purchaseInvoice))
     {
         return(purchaseInvoice);
     }
     VHasPurchaseInvoiceDetails(purchaseInvoice, _purchaseInvoiceDetailService);
     if (!isValid(purchaseInvoice))
     {
         return(purchaseInvoice);
     }
     VAllPurchaseInvoiceDetailsAreConfirmable(purchaseInvoice, _purchaseInvoiceDetailService, _purchaseReceivalDetailService);
     return(purchaseInvoice);
 }