예제 #1
0
 public RetailPurchaseInvoice ConfirmObject(RetailPurchaseInvoice retailPurchaseInvoice, DateTime ConfirmationDate, int ContactId,
                                            IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService, IContactService _contactService,
                                            IPriceMutationService _priceMutationService, IPayableService _payableService,
                                            IRetailPurchaseInvoiceService _retailPurchaseInvoiceService, IWarehouseItemService _warehouseItemService,
                                            IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService,
                                            IStockMutationService _stockMutationService, IClosingService _closingService)
 {
     retailPurchaseInvoice.ContactId        = ContactId;
     retailPurchaseInvoice.ConfirmationDate = ConfirmationDate;
     if (_validator.ValidConfirmObject(retailPurchaseInvoice, _retailPurchaseInvoiceDetailService, _retailPurchaseInvoiceService, _warehouseItemService, _contactService))
     {
         IList <RetailPurchaseInvoiceDetail> retailPurchaseInvoiceDetails = _retailPurchaseInvoiceDetailService.GetObjectsByRetailPurchaseInvoiceId(retailPurchaseInvoice.Id);
         retailPurchaseInvoice.Total = 0;
         retailPurchaseInvoice.CoGS  = 0;
         foreach (var retailPurchaseInvoiceDetail in retailPurchaseInvoiceDetails)
         {
             retailPurchaseInvoiceDetail.Errors = new Dictionary <string, string>();
             _retailPurchaseInvoiceDetailService.ConfirmObject(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceService, _warehouseItemService,
                                                               _warehouseService, _itemService, _barringService, _stockMutationService);
             retailPurchaseInvoice.Total += retailPurchaseInvoiceDetail.Amount;
             retailPurchaseInvoice.CoGS  += retailPurchaseInvoiceDetail.CoGS;
         }
         // Tax dihitung setelah discount
         retailPurchaseInvoice.Total = (retailPurchaseInvoice.Total * (100 - retailPurchaseInvoice.Discount) / 100) * (100 - retailPurchaseInvoice.Tax) / 100;
         Payable payable = _payableService.CreateObject(retailPurchaseInvoice.ContactId, Core.Constants.Constant.PayableSource.RetailPurchaseInvoice, retailPurchaseInvoice.Id, retailPurchaseInvoice.Code, retailPurchaseInvoice.Total, (DateTime)retailPurchaseInvoice.DueDate.GetValueOrDefault());
         retailPurchaseInvoice = _repository.ConfirmObject(retailPurchaseInvoice);
     }
     else
     {
         retailPurchaseInvoice.ConfirmationDate = null;
         //retailPurchaseInvoice.ContactId = 0; //null;
     }
     return(retailPurchaseInvoice);
 }
        public RetailPurchaseInvoice VHasNoRetailPurchaseInvoiceDetails(RetailPurchaseInvoice retailPurchaseInvoice, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService)
        {
            IList <RetailPurchaseInvoiceDetail> retailPurchaseInvoiceDetails = _retailPurchaseInvoiceDetailService.GetObjectsByRetailPurchaseInvoiceId(retailPurchaseInvoice.Id);

            if (retailPurchaseInvoiceDetails.Any())
            {
                retailPurchaseInvoice.Errors.Add("Generic", "Tidak boleh terasosiasi dengan RetailPurchaseInvoiceDetails");
            }
            return(retailPurchaseInvoice);
        }
        public RetailPurchaseInvoice VHasRetailPurchaseInvoiceDetails(RetailPurchaseInvoice retailPurchaseInvoice, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService)
        {
            IList <RetailPurchaseInvoiceDetail> retailPurchaseInvoiceDetails = _retailPurchaseInvoiceDetailService.GetObjectsByRetailPurchaseInvoiceId(retailPurchaseInvoice.Id);

            if (!retailPurchaseInvoiceDetails.Any())
            {
                retailPurchaseInvoice.Errors.Add("Generic", "Tidak ada retail purchase invoice details");
            }
            return(retailPurchaseInvoice);
        }
        public RetailPurchaseInvoiceDetail VUniqueItem(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService, IItemService _itemService)
        {
            IList <RetailPurchaseInvoiceDetail> details = _retailPurchaseInvoiceDetailService.GetObjectsByRetailPurchaseInvoiceId(retailPurchaseInvoiceDetail.RetailPurchaseInvoiceId);

            foreach (var detail in details)
            {
                if (detail.ItemId == retailPurchaseInvoiceDetail.ItemId && detail.Id != retailPurchaseInvoiceDetail.Id)
                {
                    retailPurchaseInvoiceDetail.Errors.Add("Generic", "Tidak boleh ada duplikasi item dalam 1 RetailPurchaseInvoice");
                }
            }
            return(retailPurchaseInvoiceDetail);
        }
예제 #5
0
 public RetailPurchaseInvoice UnconfirmObject(RetailPurchaseInvoice retailPurchaseInvoice, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService,
                                              IPayableService _payableService, IPaymentVoucherDetailService _paymentVoucherDetailService,
                                              IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService, IItemService _itemService,
                                              IBarringService _barringService, IStockMutationService _stockMutationService, IClosingService _closingService)
 {
     if (_validator.ValidUnconfirmObject(retailPurchaseInvoice, _retailPurchaseInvoiceDetailService, _payableService, _paymentVoucherDetailService))
     {
         retailPurchaseInvoice = _repository.UnconfirmObject(retailPurchaseInvoice);
         IList <RetailPurchaseInvoiceDetail> retailPurchaseInvoiceDetails = _retailPurchaseInvoiceDetailService.GetObjectsByRetailPurchaseInvoiceId(retailPurchaseInvoice.Id);
         foreach (var retailPurchaseInvoiceDetail in retailPurchaseInvoiceDetails)
         {
             retailPurchaseInvoiceDetail.Errors = new Dictionary <string, string>();
             _retailPurchaseInvoiceDetailService.UnconfirmObject(retailPurchaseInvoiceDetail, _warehouseItemService, _warehouseService, _itemService, _barringService, _stockMutationService);
         }
         Payable payable = _payableService.GetObjectBySource(Core.Constants.Constant.PayableSource.RetailPurchaseInvoice, retailPurchaseInvoice.Id);
         _payableService.SoftDeleteObject(payable);
     }
     return(retailPurchaseInvoice);
 }
        public RetailPurchaseInvoice VIsUnconfirmableRetailPurchaseInvoiceDetails(RetailPurchaseInvoice retailPurchaseInvoice, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService)
        {
            IList <RetailPurchaseInvoiceDetail> retailPurchaseInvoiceDetails = _retailPurchaseInvoiceDetailService.GetObjectsByRetailPurchaseInvoiceId(retailPurchaseInvoice.Id);

            if (!retailPurchaseInvoiceDetails.Any())
            {
                retailPurchaseInvoice.Errors.Add("Generic", "RetailPurchaseInvoiceDetails Tidak ada");
            }
            else
            {
                IRetailPurchaseInvoiceDetailValidator validator = _retailPurchaseInvoiceDetailService.GetValidator();
                foreach (var retailPurchaseInvoiceDetail in retailPurchaseInvoiceDetails)
                {
                    retailPurchaseInvoiceDetail.Errors = new Dictionary <string, string>();
                    if (!validator.ValidUnconfirmObject(retailPurchaseInvoiceDetail))
                    {
                        retailPurchaseInvoice.Errors.Add("Generic", "Harus unconfirmable semua");
                        return(retailPurchaseInvoice);
                    }
                }
            }
            return(retailPurchaseInvoice);
        }