Пример #1
0
 public CustomPurchaseInvoice ConfirmObject(CustomPurchaseInvoice customPurchaseInvoice, DateTime ConfirmationDate, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService,
                                            IContactService _contactService, IPriceMutationService _priceMutationService, IPayableService _payableService,
                                            ICustomPurchaseInvoiceService _customPurchaseInvoiceService, IWarehouseItemService _warehouseItemService,
                                            IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService, IStockMutationService _stockMutationService,
                                            IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService, IClosingService _closingService)
 {
     customPurchaseInvoice.ConfirmationDate = ConfirmationDate;
     if (_validator.ValidConfirmObject(customPurchaseInvoice, _customPurchaseInvoiceDetailService, _customPurchaseInvoiceService, _warehouseItemService, _contactService, _closingService))
     {
         IList <CustomPurchaseInvoiceDetail> customPurchaseInvoiceDetails = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoice.Id);
         customPurchaseInvoice.Total = 0;
         customPurchaseInvoice.CoGS  = 0;
         foreach (var customPurchaseInvoiceDetail in customPurchaseInvoiceDetails)
         {
             customPurchaseInvoiceDetail.Errors = new Dictionary <string, string>();
             _customPurchaseInvoiceDetailService.ConfirmObject(customPurchaseInvoiceDetail, _customPurchaseInvoiceService, _warehouseItemService,
                                                               _warehouseService, _itemService, _barringService, _stockMutationService, _priceMutationService);
             customPurchaseInvoice.Total += customPurchaseInvoiceDetail.Amount;
             customPurchaseInvoice.CoGS  += customPurchaseInvoiceDetail.CoGS;
         }
         // Tax dihitung setelah discount
         //customPurchaseInvoice.Total = (customPurchaseInvoice.Total * (100 - customPurchaseInvoice.Discount) / 100) * (100 - customPurchaseInvoice.Tax) / 100;
         customPurchaseInvoice.Total = CalculateTotalAmountAfterDiscountAndTax(customPurchaseInvoice);
         Payable payable = _payableService.CreateObject(customPurchaseInvoice.ContactId, Core.Constants.Constant.PayableSource.CustomPurchaseInvoice, customPurchaseInvoice.Id, customPurchaseInvoice.Code, customPurchaseInvoice.Total, (DateTime)customPurchaseInvoice.DueDate.GetValueOrDefault());
         _generalLedgerJournalService.CreateConfirmationJournalForCustomPurchaseInvoice(customPurchaseInvoice, _accountService);
         customPurchaseInvoice = _repository.ConfirmObject(customPurchaseInvoice);
     }
     else
     {
         customPurchaseInvoice.ConfirmationDate = null;
     }
     return(customPurchaseInvoice);
 }
        public CustomPurchaseInvoice VHasNoCustomPurchaseInvoiceDetails(CustomPurchaseInvoice customPurchaseInvoice, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService)
        {
            IList <CustomPurchaseInvoiceDetail> customPurchaseInvoiceDetails = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoice.Id);

            if (customPurchaseInvoiceDetails.Any())
            {
                customPurchaseInvoice.Errors.Add("Generic", "Tidak boleh terasosiasi dengan CustomPurchaseInvoiceDetails");
            }
            return(customPurchaseInvoice);
        }
        public CustomPurchaseInvoice VHasCustomPurchaseInvoiceDetails(CustomPurchaseInvoice customPurchaseInvoice, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService)
        {
            IList <CustomPurchaseInvoiceDetail> customPurchaseInvoiceDetails = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoice.Id);

            if (!customPurchaseInvoiceDetails.Any())
            {
                customPurchaseInvoice.Errors.Add("Generic", "Tidak ada retail purchase invoice details");
            }
            return(customPurchaseInvoice);
        }
Пример #4
0
        public CustomPurchaseInvoiceDetail VUniqueItem(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService, IItemService _itemService)
        {
            IList <CustomPurchaseInvoiceDetail> details = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);

            foreach (var detail in details)
            {
                if (detail.ItemId == customPurchaseInvoiceDetail.ItemId && detail.Id != customPurchaseInvoiceDetail.Id)
                {
                    customPurchaseInvoiceDetail.Errors.Add("Generic", "Tidak boleh ada duplikasi item dalam 1 CustomPurchaseInvoice");
                }
            }
            return(customPurchaseInvoiceDetail);
        }
Пример #5
0
 public CustomPurchaseInvoice UnconfirmObject(CustomPurchaseInvoice customPurchaseInvoice, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService,
                                              IPayableService _payableService, IPaymentVoucherDetailService _paymentVoucherDetailService,
                                              IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService, IItemService _itemService,
                                              IBarringService _barringService, IStockMutationService _stockMutationService, IPriceMutationService _priceMutationService,
                                              IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService, IClosingService _closingService)
 {
     if (_validator.ValidUnconfirmObject(customPurchaseInvoice, _customPurchaseInvoiceDetailService, _payableService, _paymentVoucherDetailService, _closingService))
     {
         IList <CustomPurchaseInvoiceDetail> customPurchaseInvoiceDetails = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoice.Id);
         foreach (var customPurchaseInvoiceDetail in customPurchaseInvoiceDetails)
         {
             customPurchaseInvoiceDetail.Errors = new Dictionary <string, string>();
             _customPurchaseInvoiceDetailService.UnconfirmObject(customPurchaseInvoiceDetail, _warehouseItemService, _warehouseService, _itemService, _barringService, _stockMutationService, _priceMutationService);
         }
         Payable payable = _payableService.GetObjectBySource(Core.Constants.Constant.PayableSource.CustomPurchaseInvoice, customPurchaseInvoice.Id);
         _payableService.SoftDeleteObject(payable);
         customPurchaseInvoice.Total = 0;
         customPurchaseInvoice.CoGS  = 0;
         _generalLedgerJournalService.CreateUnconfirmationJournalForCustomPurchaseInvoice(customPurchaseInvoice, _accountService);
         customPurchaseInvoice = _repository.UnconfirmObject(customPurchaseInvoice);
     }
     return(customPurchaseInvoice);
 }
        public CustomPurchaseInvoice VIsUnconfirmableCustomPurchaseInvoiceDetails(CustomPurchaseInvoice customPurchaseInvoice, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService)
        {
            IList <CustomPurchaseInvoiceDetail> customPurchaseInvoiceDetails = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoice.Id);

            if (!customPurchaseInvoiceDetails.Any())
            {
                customPurchaseInvoice.Errors.Add("Generic", "CustomPurchaseInvoiceDetails Tidak ada");
            }
            else
            {
                ICustomPurchaseInvoiceDetailValidator validator = _customPurchaseInvoiceDetailService.GetValidator();
                foreach (var customPurchaseInvoiceDetail in customPurchaseInvoiceDetails)
                {
                    customPurchaseInvoiceDetail.Errors = new Dictionary <string, string>();
                    if (!validator.ValidUnconfirmObject(customPurchaseInvoiceDetail))
                    {
                        customPurchaseInvoice.Errors.Add("Generic", "Harus unconfirmable semua");
                        return(customPurchaseInvoice);
                    }
                }
            }
            return(customPurchaseInvoice);
        }