コード例 #1
0
 public CustomPurchaseInvoiceController()
 {
     _contactService                     = new ContactService(new ContactRepository(), new ContactValidator());
     _itemService                        = new ItemService(new ItemRepository(), new ItemValidator());
     _itemTypeService                    = new ItemTypeService(new ItemTypeRepository(), new ItemTypeValidator());
     _uoMService                         = new UoMService(new UoMRepository(), new UoMValidator());
     _warehouseItemService               = new WarehouseItemService(new WarehouseItemRepository(), new WarehouseItemValidator());
     _warehouseService                   = new WarehouseService(new WarehouseRepository(), new WarehouseValidator());
     _stockMutationService               = new StockMutationService(new StockMutationRepository(), new StockMutationValidator());
     _barringService                     = new BarringService(new BarringRepository(), new BarringValidator());
     _priceMutationService               = new PriceMutationService(new PriceMutationRepository(), new PriceMutationValidator());
     _contactGroupService                = new ContactGroupService(new ContactGroupRepository(), new ContactGroupValidator());
     _purchaseOrderDetailService         = new PurchaseOrderDetailService(new PurchaseOrderDetailRepository(), new PurchaseOrderDetailValidator());
     _salesOrderDetailService            = new SalesOrderDetailService(new SalesOrderDetailRepository(), new SalesOrderDetailValidator());
     _stockAdjustmentDetailService       = new StockAdjustmentDetailService(new StockAdjustmentDetailRepository(), new StockAdjustmentDetailValidator());
     _cashBankService                    = new CashBankService(new CashBankRepository(), new CashBankValidator());
     _cashMutationService                = new CashMutationService(new CashMutationRepository(), new CashMutationValidator());
     _customPurchaseInvoiceService       = new CustomPurchaseInvoiceService(new CustomPurchaseInvoiceRepository(), new CustomPurchaseInvoiceValidator());
     _customPurchaseInvoiceDetailService = new CustomPurchaseInvoiceDetailService(new CustomPurchaseInvoiceDetailRepository(), new CustomPurchaseInvoiceDetailValidator());
     _cashSalesReturnService             = new CashSalesReturnService(new CashSalesReturnRepository(), new CashSalesReturnValidator());
     _quantityPricingService             = new QuantityPricingService(new QuantityPricingRepository(), new QuantityPricingValidator());
     _payableService                     = new PayableService(new PayableRepository(), new PayableValidator());
     _paymentVoucherService              = new PaymentVoucherService(new PaymentVoucherRepository(), new PaymentVoucherValidator());
     _paymentVoucherDetailService        = new PaymentVoucherDetailService(new PaymentVoucherDetailRepository(), new PaymentVoucherDetailValidator());
     _receivableService                  = new ReceivableService(new ReceivableRepository(), new ReceivableValidator());
     _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());
 }
コード例 #2
0
        public RetailSalesInvoice UnpaidObject(RetailSalesInvoice retailSalesInvoice, IReceiptVoucherService _receiptVoucherService, IReceiptVoucherDetailService _receiptVoucherDetailService,
                                               ICashBankService _cashBankService, IReceivableService _receivableService, ICashMutationService _cashMutationService,
                                               IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService, IClosingService _closingService)
        {
            if (_validator.ValidUnpaidObject(retailSalesInvoice))
            {
                Receivable             receivable      = _receivableService.GetObjectBySource(Core.Constants.Constant.ReceivableSource.RetailSalesInvoice, retailSalesInvoice.Id);
                IList <ReceiptVoucher> receiptVouchers = _receiptVoucherService.GetObjectsByCashBankId((int)retailSalesInvoice.CashBankId.GetValueOrDefault());
                foreach (var receiptVoucher in receiptVouchers)
                {
                    if (receiptVoucher.ContactId == retailSalesInvoice.ContactId)
                    {
                        receiptVoucher.Errors = new Dictionary <string, string>();
                        _receiptVoucherService.UnconfirmObject(receiptVoucher, _receiptVoucherDetailService, _cashBankService, _receivableService,
                                                               _cashMutationService, _generalLedgerJournalService, _accountService, _closingService);

                        IList <ReceiptVoucherDetail> receiptVoucherDetails = _receiptVoucherDetailService.GetObjectsByReceiptVoucherId(receiptVoucher.Id);
                        foreach (var receiptVoucherDetail in receiptVoucherDetails)
                        {
                            _receiptVoucherDetailService.SoftDeleteObject(receiptVoucherDetail);
                        }
                        _receiptVoucherService.SoftDeleteObject(receiptVoucher, _receiptVoucherDetailService);
                    }
                }
                retailSalesInvoice.AmountPaid    = 0;
                retailSalesInvoice.IsFullPayment = false;
                retailSalesInvoice = _repository.UnpaidObject(retailSalesInvoice);
            }
            return(retailSalesInvoice);
        }
コード例 #3
0
 public bool ValidUnconfirmObject(RetailSalesInvoice retailSalesInvoice, IRetailSalesInvoiceDetailService _retailSalesInvoiceDetailService,
                                  IReceivableService _receivableService, IReceiptVoucherDetailService _receiptVoucherDetailService)
 {
     retailSalesInvoice.Errors.Clear();
     VUnconfirmObject(retailSalesInvoice, _retailSalesInvoiceDetailService, _receivableService, _receiptVoucherDetailService);
     return(isValid(retailSalesInvoice));
 }
コード例 #4
0
 public RetailSalesInvoice VUnconfirmObject(RetailSalesInvoice retailSalesInvoice, IRetailSalesInvoiceDetailService _retailSalesInvoiceDetailService,
                                            IReceivableService _receivableService, IReceiptVoucherDetailService _receiptVoucherDetailService)
 {
     VIsNotDeleted(retailSalesInvoice);
     if (!isValid(retailSalesInvoice))
     {
         return(retailSalesInvoice);
     }
     VIsConfirmed(retailSalesInvoice);
     if (!isValid(retailSalesInvoice))
     {
         return(retailSalesInvoice);
     }
     VIsNotPaid(retailSalesInvoice);
     if (!isValid(retailSalesInvoice))
     {
         return(retailSalesInvoice);
     }
     VIsUnconfirmableRetailSalesInvoiceDetails(retailSalesInvoice, _retailSalesInvoiceDetailService);
     if (!isValid(retailSalesInvoice))
     {
         return(retailSalesInvoice);
     }
     VHasNoReceiptVoucherDetails(retailSalesInvoice, _receivableService, _receiptVoucherDetailService);
     return(retailSalesInvoice);
 }
コード例 #5
0
 public CashSalesInvoice UnconfirmObject(CashSalesInvoice cashSalesInvoice, ICashSalesInvoiceDetailService _cashSalesInvoiceDetailService,
                                         IReceivableService _receivableService, IReceiptVoucherDetailService _receiptVoucherDetailService,
                                         IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService, IItemService _itemService,
                                         IBarringService _barringService, IStockMutationService _stockMutationService,
                                         IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService,
                                         IClosingService _closingService)
 {
     if (_validator.ValidUnconfirmObject(cashSalesInvoice, _cashSalesInvoiceDetailService, _receivableService, _receiptVoucherDetailService,
                                         _closingService))
     {
         IList <CashSalesInvoiceDetail> cashSalesInvoiceDetails = _cashSalesInvoiceDetailService.GetObjectsByCashSalesInvoiceId(cashSalesInvoice.Id);
         foreach (var cashSalesInvoiceDetail in cashSalesInvoiceDetails)
         {
             cashSalesInvoiceDetail.Errors = new Dictionary <string, string>();
             _cashSalesInvoiceDetailService.UnconfirmObject(cashSalesInvoiceDetail, _warehouseItemService, _warehouseService, _itemService, _barringService, _stockMutationService);
         }
         Receivable receivable = _receivableService.GetObjectBySource(Core.Constants.Constant.ReceivableSource.CashSalesInvoice, cashSalesInvoice.Id);
         _receivableService.SoftDeleteObject(receivable);
         _generalLedgerJournalService.CreateUnconfirmationJournalForCashSalesInvoice(cashSalesInvoice, _accountService);
         cashSalesInvoice.CoGS     = 0;
         cashSalesInvoice.Total    = 0;
         cashSalesInvoice.Discount = 0;
         cashSalesInvoice.Tax      = 0;
         cashSalesInvoice          = _repository.UnconfirmObject(cashSalesInvoice);
     }
     return(cashSalesInvoice);
 }
コード例 #6
0
 public ReceiptVoucher CreateObject(ReceiptVoucher receiptVoucher, IReceiptVoucherDetailService _receiptVoucherDetailService,
                                    IReceivableService _receivableService, IContactService _contactService, ICashBankService _cashBankService)
 {
     receiptVoucher.Errors = new Dictionary <String, String>();
     return(_validator.ValidCreateObject(receiptVoucher, this, _receiptVoucherDetailService, _receivableService, _contactService, _cashBankService) ?
            _repository.CreateObject(receiptVoucher) : receiptVoucher);
 }
コード例 #7
0
        public ReceiptVoucher ConfirmObject(ReceiptVoucher receiptVoucher, DateTime ConfirmationDate, IReceiptVoucherDetailService _receiptVoucherDetailService,
                                            ICashBankService _cashBankService, IReceivableService _receivableService, ICashMutationService _cashMutationService,
                                            IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService, IClosingService _closingService)
        {
            receiptVoucher.ConfirmationDate = ConfirmationDate;
            if (_validator.ValidConfirmObject(receiptVoucher, this, _receiptVoucherDetailService, _cashBankService, _receivableService, _closingService))
            {
                IList <ReceiptVoucherDetail> details = _receiptVoucherDetailService.GetObjectsByReceiptVoucherId(receiptVoucher.Id);
                foreach (var detail in details)
                {
                    detail.Errors = new Dictionary <string, string>();
                    _receiptVoucherDetailService.ConfirmObject(detail, ConfirmationDate, this, _receivableService);
                }
                _repository.ConfirmObject(receiptVoucher);

                if (!receiptVoucher.IsGBCH)
                {
                    CashBank     cashBank     = _cashBankService.GetObjectById(receiptVoucher.CashBankId);
                    CashMutation cashMutation = _cashMutationService.CreateCashMutationForReceiptVoucher(receiptVoucher, cashBank);
                    _cashMutationService.CashMutateObject(cashMutation, _cashBankService);
                    _generalLedgerJournalService.CreateConfirmationJournalForReceiptVoucher(receiptVoucher, cashBank, _accountService);
                }
            }
            return(receiptVoucher);
        }
コード例 #8
0
        public ReceiptVoucher UnconfirmObject(ReceiptVoucher receiptVoucher, IReceiptVoucherDetailService _receiptVoucherDetailService,
                                              ICashBankService _cashBankService, IReceivableService _receivableService, ICashMutationService _cashMutationService)
        {
            if (_validator.ValidUnconfirmObject(receiptVoucher))
            {
                IList <ReceiptVoucherDetail> details = _receiptVoucherDetailService.GetObjectsByReceiptVoucherId(receiptVoucher.Id);
                foreach (var detail in details)
                {
                    detail.Errors = new Dictionary <string, string>();
                    _receiptVoucherDetailService.UnconfirmObject(detail, this, _receivableService);
                }
                _repository.UnconfirmObject(receiptVoucher);

                if (!receiptVoucher.IsGBCH)
                {
                    CashBank             cashBank      = _cashBankService.GetObjectById(receiptVoucher.CashBankId);
                    IList <CashMutation> cashMutations = _cashMutationService.SoftDeleteCashMutationForReceiptVoucher(receiptVoucher, cashBank);
                    foreach (var cashMutation in cashMutations)
                    {
                        _cashMutationService.ReverseCashMutateObject(cashMutation, _cashBankService);
                    }
                }
            }
            return(receiptVoucher);
        }
コード例 #9
0
 public CashSalesInvoice VUnconfirmObject(CashSalesInvoice cashSalesInvoice, ICashSalesInvoiceDetailService _cashSalesInvoiceDetailService,
                                          IReceivableService _receivableService, IReceiptVoucherDetailService _receiptVoucherDetailService,
                                          IClosingService _closingService)
 {
     VIsNotDeleted(cashSalesInvoice);
     if (!isValid(cashSalesInvoice))
     {
         return(cashSalesInvoice);
     }
     VIsConfirmed(cashSalesInvoice);
     if (!isValid(cashSalesInvoice))
     {
         return(cashSalesInvoice);
     }
     VIsNotPaid(cashSalesInvoice);
     if (!isValid(cashSalesInvoice))
     {
         return(cashSalesInvoice);
     }
     VIsUnconfirmableCashSalesInvoiceDetails(cashSalesInvoice, _cashSalesInvoiceDetailService);
     if (!isValid(cashSalesInvoice))
     {
         return(cashSalesInvoice);
     }
     VHasNoReceiptVoucherDetails(cashSalesInvoice, _receivableService, _receiptVoucherDetailService);
     if (!isValid(cashSalesInvoice))
     {
         return(cashSalesInvoice);
     }
     VGeneralLedgerPostingHasNotBeenClosed(cashSalesInvoice, _closingService, 2);
     return(cashSalesInvoice);
 }
コード例 #10
0
        public ReceiptVoucher ReconcileObject(ReceiptVoucher receiptVoucher, DateTime ReconciliationDate,
                                              IReceiptVoucherDetailService _receiptVoucherDetailService, ICashMutationService _cashMutationService,
                                              ICashBankService _cashBankService, IReceivableService _receivableService)
        {
            receiptVoucher.ReconciliationDate = ReconciliationDate;
            if (_validator.ValidReconcileObject(receiptVoucher))
            {
                _repository.ReconcileObject(receiptVoucher);

                CashBank     cashBank     = _cashBankService.GetObjectById(receiptVoucher.CashBankId);
                CashMutation cashMutation = _cashMutationService.CreateCashMutationForReceiptVoucher(receiptVoucher, cashBank);
                _cashMutationService.CashMutateObject(cashMutation, _cashBankService);

                IList <ReceiptVoucherDetail> receiptVoucherDetails = _receiptVoucherDetailService.GetObjectsByReceiptVoucherId(receiptVoucher.Id);
                foreach (var receiptVoucherDetail in receiptVoucherDetails)
                {
                    Receivable receivable = _receivableService.GetObjectById(receiptVoucherDetail.ReceivableId);
                    receivable.PendingClearanceAmount -= receiptVoucherDetail.Amount;
                    if (receivable.PendingClearanceAmount == 0 && receivable.RemainingAmount == 0)
                    {
                        receivable.IsCompleted    = true;
                        receivable.CompletionDate = DateTime.Now;
                    }
                    _receivableService.UpdateObject(receivable);
                }
            }
            return(receiptVoucher);
        }
コード例 #11
0
 public bool ValidUpdateObject(ReceiptVoucher receiptVoucher, IReceiptVoucherService _receiptVoucherService, IReceiptVoucherDetailService _receiptVoucherDetailService,
                               IReceivableService _receivableService, IContactService _contactService, ICashBankService _cashBankService)
 {
     receiptVoucher.Errors.Clear();
     VUpdateObject(receiptVoucher, _receiptVoucherService, _receiptVoucherDetailService, _receivableService, _contactService, _cashBankService);
     return(isValid(receiptVoucher));
 }
コード例 #12
0
 public ReceiptVoucher VCreateObject(ReceiptVoucher receiptVoucher, IReceiptVoucherService _receiptVoucherService, IReceiptVoucherDetailService _receiptVoucherDetailService,
                                     IReceivableService _receivableService, IContactService _contactService, ICashBankService _cashBankService)
 {
     VHasContact(receiptVoucher, _contactService);
     if (!isValid(receiptVoucher))
     {
         return(receiptVoucher);
     }
     VHasCashBank(receiptVoucher, _cashBankService);
     if (!isValid(receiptVoucher))
     {
         return(receiptVoucher);
     }
     VHasReceiptDate(receiptVoucher);
     if (!isValid(receiptVoucher))
     {
         return(receiptVoucher);
     }
     VIfGBCHThenIsBank(receiptVoucher, _cashBankService);
     if (!isValid(receiptVoucher))
     {
         return(receiptVoucher);
     }
     VIfGBCHThenHasDueDate(receiptVoucher);
     return(receiptVoucher);
 }
コード例 #13
0
 public ReconciliationController(
     IGlobalService globalService,
     IReceivableService ReceivableService
     )
 {
     this._GlobalService     = globalService;
     this._ReceivableService = ReceivableService;
 }
コード例 #14
0
 public bool ValidUnconfirmObject(CashSalesInvoice cashSalesInvoice, ICashSalesInvoiceDetailService _cashSalesInvoiceDetailService,
                                  IReceivableService _receivableService, IReceiptVoucherDetailService _receiptVoucherDetailService,
                                  IClosingService _closingService)
 {
     cashSalesInvoice.Errors.Clear();
     VUnconfirmObject(cashSalesInvoice, _cashSalesInvoiceDetailService, _receivableService, _receiptVoucherDetailService, _closingService);
     return(isValid(cashSalesInvoice));
 }
コード例 #15
0
 public ReceivableReportController(
     IGlobalService globalService,
     IReceivableService ReceivableService
     )
 {
     this._GlobalService     = globalService;
     this._ReceivableService = ReceivableService;
 }
コード例 #16
0
 public bool ValidConfirmObject(ReceiptVoucher receiptVoucher, IReceiptVoucherService _receiptVoucherService,
                                IReceiptVoucherDetailService _receiptVoucherDetailService, ICashBankService _cashBankService,
                                IReceivableService _receivableService, IClosingService _closingService)
 {
     receiptVoucher.Errors.Clear();
     VConfirmObject(receiptVoucher, _receiptVoucherService, _receiptVoucherDetailService,
                    _cashBankService, _receivableService, _closingService);
     return(isValid(receiptVoucher));
 }
 public AssignedReceivablesPageViewModel(
     ISettingsService settingsService,
     IPageDialogService dialogService,
     INavigationService navigationService,
     IReceivableService receivableService
     ) : base(settingsService, dialogService, navigationService)
 {
     _receivableService = receivableService;
     Title = "Assigned Receivables";
 }
 public ReceivableListPageViewModel(
     ISettingsService settingsService,
     IPageDialogService dialogService,
     INavigationService navigationService,
     IReceivableService receivableService
     ) : base(settingsService, dialogService, navigationService)
 {
     _receivableService = receivableService;
     Title = "Receivable List";
 }
コード例 #19
0
 public ReceiptVoucher VUpdateObject(ReceiptVoucher receiptVoucher, IReceiptVoucherService _receiptVoucherService, IReceiptVoucherDetailService _receiptVoucherDetailService,
                                     IReceivableService _receivableService, IContactService _contactService, ICashBankService _cashBankService)
 {
     VHasNoReceiptVoucherDetail(receiptVoucher, _receiptVoucherDetailService);
     if (!isValid(receiptVoucher))
     {
         return(receiptVoucher);
     }
     VCreateObject(receiptVoucher, _receiptVoucherService, _receiptVoucherDetailService, _receivableService, _contactService, _cashBankService);
     return(receiptVoucher);
 }
コード例 #20
0
        public SalesInvoice VHasReceiptVoucherDetails(SalesInvoice salesInvoice, IReceivableService _receivableService, IReceiptVoucherDetailService _receiptVoucherDetailService)
        {
            Receivable receivable = _receivableService.GetObjectBySource(Constant.ReceivableSource.SalesInvoice, salesInvoice.Id);
            IList <ReceiptVoucherDetail> pvdetails = _receiptVoucherDetailService.GetObjectsByReceivableId(receivable.Id);

            if (pvdetails.Any())
            {
                salesInvoice.Errors.Add("Generic", "Tidak boleh sudah ada proses pembayaran");
            }
            return(salesInvoice);
        }
コード例 #21
0
 public ReceivableDetailPageViewModel(
     ISettingsService settingsService,
     IPageDialogService dialogService,
     INavigationService navigationService,
     IReceivableService receivableService,
     ITaskService taskService
     ) : base(settingsService, dialogService, navigationService)
 {
     _receivableService = receivableService;
     _taskService       = taskService;
     Title   = "Receivable Detail";
     HasTask = false;
 }
コード例 #22
0
        public ReceiptVoucherDetail CreateObject(int receiptVoucherId, int receivableId, decimal amount, string description,
                                                 IReceiptVoucherService _receiptVoucherService, ICashBankService _cashBankService,
                                                 IReceivableService _receivableService)
        {
            ReceiptVoucherDetail receiptVoucherDetail = new ReceiptVoucherDetail
            {
                ReceiptVoucherId = receiptVoucherId,
                ReceivableId     = receivableId,
                Amount           = amount,
                Description      = description,
            };

            return(this.CreateObject(receiptVoucherDetail, _receiptVoucherService, _cashBankService, _receivableService));
        }
コード例 #23
0
        public ReceiptVoucherDetail VUniqueReceivableId(ReceiptVoucherDetail receiptVoucherDetail, IReceiptVoucherDetailService _receiptVoucherDetailService,
                                                        IReceivableService _receivableService)
        {
            IList <ReceiptVoucherDetail> receiptVoucherDetails = _receiptVoucherDetailService.GetObjectsByReceiptVoucherId(receiptVoucherDetail.ReceiptVoucherId);
            Receivable receivable = _receivableService.GetObjectById(receiptVoucherDetail.ReceivableId);

            foreach (var detail in receiptVoucherDetails)
            {
                if (detail.ReceivableId == receiptVoucherDetail.ReceivableId && detail.Id != receiptVoucherDetail.Id)
                {
                    receiptVoucherDetail.Errors.Add("Generic", "ReceivableId harus unique dibandingkan receipt voucher details di dalam satu receipt voucher");
                    return(receiptVoucherDetail);
                }
            }
            return(receiptVoucherDetail);
        }
コード例 #24
0
        public ReportController()
        {
            _itemService       = new ItemService(new ItemRepository(), new ItemValidator());
            _itemTypeService   = new ItemTypeService(new ItemTypeRepository(), new ItemTypeValidator());
            _uoMService        = new UoMService(new UoMRepository(), new UoMValidator());
            _companyService    = new CompanyService(new CompanyRepository(), new CompanyValidator());
            _cashBankService   = new CashBankService(new CashBankRepository(), new CashBankValidator());
            _payableService    = new PayableService(new PayableRepository(), new PayableValidator());
            _receivableService = new ReceivableService(new ReceivableRepository(), new ReceivableValidator());

            _cashSalesInvoiceService            = new CashSalesInvoiceService(new CashSalesInvoiceRepository(), new CashSalesInvoiceValidator());
            _cashSalesInvoiceDetailService      = new CashSalesInvoiceDetailService(new CashSalesInvoiceDetailRepository(), new CashSalesInvoiceDetailValidator());
            _cashSalesReturnService             = new CashSalesReturnService(new CashSalesReturnRepository(), new CashSalesReturnValidator());
            _cashSalesReturnDetailService       = new CashSalesReturnDetailService(new CashSalesReturnDetailRepository(), new CashSalesReturnDetailValidator());
            _customPurchaseInvoiceService       = new CustomPurchaseInvoiceService(new CustomPurchaseInvoiceRepository(), new CustomPurchaseInvoiceValidator());
            _customPurchaseInvoiceDetailService = new CustomPurchaseInvoiceDetailService(new CustomPurchaseInvoiceDetailRepository(), new CustomPurchaseInvoiceDetailValidator());
        }
コード例 #25
0
 public RetailSalesInvoice UnconfirmObject(RetailSalesInvoice retailSalesInvoice, IRetailSalesInvoiceDetailService _retailSalesInvoiceDetailService,
                                           IReceivableService _receivableService, IReceiptVoucherDetailService _receiptVoucherDetailService,
                                           IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService, IItemService _itemService,
                                           IBarringService _barringService, IStockMutationService _stockMutationService, IClosingService _closingService)
 {
     if (_validator.ValidUnconfirmObject(retailSalesInvoice, _retailSalesInvoiceDetailService, _receivableService, _receiptVoucherDetailService))
     {
         retailSalesInvoice = _repository.UnconfirmObject(retailSalesInvoice);
         IList <RetailSalesInvoiceDetail> retailSalesInvoiceDetails = _retailSalesInvoiceDetailService.GetObjectsByRetailSalesInvoiceId(retailSalesInvoice.Id);
         foreach (var retailSalesInvoiceDetail in retailSalesInvoiceDetails)
         {
             retailSalesInvoiceDetail.Errors = new Dictionary <string, string>();
             _retailSalesInvoiceDetailService.UnconfirmObject(retailSalesInvoiceDetail, _warehouseItemService, _warehouseService, _itemService, _barringService, _stockMutationService);
         }
         Receivable receivable = _receivableService.GetObjectBySource(Core.Constants.Constant.ReceivableSource.RetailSalesInvoice, retailSalesInvoice.Id);
         _receivableService.SoftDeleteObject(receivable);
     }
     return(retailSalesInvoice);
 }
コード例 #26
0
 public ReceiptVoucher VConfirmObject(ReceiptVoucher receiptVoucher, IReceiptVoucherService _receiptVoucherService,
                                      IReceiptVoucherDetailService _receiptVoucherDetailService, ICashBankService _cashBankService,
                                      IReceivableService _receivableService, IClosingService _closingService)
 {
     VHasConfirmationDate(receiptVoucher);
     if (!isValid(receiptVoucher))
     {
         return(receiptVoucher);
     }
     VHasReceiptVoucherDetails(receiptVoucher, _receiptVoucherDetailService);
     if (!isValid(receiptVoucher))
     {
         return(receiptVoucher);
     }
     VTotalAmountIsNotZero(receiptVoucher, _receiptVoucherDetailService);
     if (!isValid(receiptVoucher))
     {
         return(receiptVoucher);
     }
     VHasNotBeenConfirmed(receiptVoucher);
     if (!isValid(receiptVoucher))
     {
         return(receiptVoucher);
     }
     VHasNotBeenDeleted(receiptVoucher);
     if (!isValid(receiptVoucher))
     {
         return(receiptVoucher);
     }
     VAllReceiptVoucherDetailsAreConfirmable(receiptVoucher, _receiptVoucherService, _receiptVoucherDetailService, _cashBankService, _receivableService);
     if (!isValid(receiptVoucher))
     {
         return(receiptVoucher);
     }
     VCashBankHasMoreAmountReceiptVoucherDetails(receiptVoucher, _receiptVoucherDetailService, _cashBankService);
     if (!isValid(receiptVoucher))
     {
         return(receiptVoucher);
     }
     VGeneralLedgerPostingHasNotBeenClosed(receiptVoucher, _closingService, 1);
     return(receiptVoucher);
 }
コード例 #27
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());
 }
コード例 #28
0
 public ReceiptVoucherController()
 {
     _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());
     _receivableService             = new ReceivableService(new ReceivableRepository(), new ReceivableValidator());
     _itemService                 = new ItemService(new ItemRepository(), new ItemValidator());
     _paymentVoucherService       = new PaymentVoucherService(new PaymentVoucherRepository(), new PaymentVoucherValidator());
     _contactService              = new ContactService(new ContactRepository(), new ContactValidator());
     _receiptVoucherService       = new ReceiptVoucherService(new ReceiptVoucherRepository(), new ReceiptVoucherValidator());
     _receiptVoucherDetailService = new ReceiptVoucherDetailService(new ReceiptVoucherDetailRepository(), new ReceiptVoucherDetailValidator());
     _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());
 }
コード例 #29
0
        public ReceiptVoucher VAllReceiptVoucherDetailsAreConfirmable(ReceiptVoucher receiptVoucher, IReceiptVoucherService _receiptVoucherService,
                                                                      IReceiptVoucherDetailService _receiptVoucherDetailService, ICashBankService _cashBankService,
                                                                      IReceivableService _receivableService)
        {
            IList <ReceiptVoucherDetail> details = _receiptVoucherDetailService.GetObjectsByReceiptVoucherId(receiptVoucher.Id);

            foreach (var detail in details)
            {
                detail.ConfirmationDate = receiptVoucher.ConfirmationDate;
                if (!_receiptVoucherDetailService.GetValidator().ValidConfirmObject(detail, _receivableService))
                {
                    foreach (var error in detail.Errors)
                    {
                        receiptVoucher.Errors.Add(error.Key, error.Value);
                    }
                    if (receiptVoucher.Errors.Any())
                    {
                        return(receiptVoucher);
                    }
                }
            }
            return(receiptVoucher);
        }
コード例 #30
0
 public CashSalesInvoice ConfirmObject(CashSalesInvoice cashSalesInvoice, DateTime ConfirmationDate, decimal Discount, decimal Tax,
                                       ICashSalesInvoiceDetailService _cashSalesInvoiceDetailService, IContactService _contactService,
                                       IPriceMutationService _priceMutationService, IReceivableService _receivableService,
                                       ICashSalesInvoiceService _cashSalesInvoiceService, IWarehouseItemService _warehouseItemService,
                                       IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService,
                                       IStockMutationService _stockMutationService, ICashBankService _cashBankService,
                                       IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService, IClosingService _closingService)
 {
     cashSalesInvoice.ConfirmationDate = ConfirmationDate;
     if (_validator.ValidConfirmObject(cashSalesInvoice, _cashSalesInvoiceDetailService, _cashSalesInvoiceService, _warehouseItemService, _contactService,
                                       _cashBankService, _closingService))
     {
         cashSalesInvoice.Discount = Discount;
         cashSalesInvoice.Tax      = Tax;
         IList <CashSalesInvoiceDetail> cashSalesInvoiceDetails = _cashSalesInvoiceDetailService.GetObjectsByCashSalesInvoiceId(cashSalesInvoice.Id);
         cashSalesInvoice.Total = 0;
         cashSalesInvoice.CoGS  = 0;
         foreach (var cashSalesInvoiceDetail in cashSalesInvoiceDetails)
         {
             cashSalesInvoiceDetail.Errors = new Dictionary <string, string>();
             _cashSalesInvoiceDetailService.ConfirmObject(cashSalesInvoiceDetail, _cashSalesInvoiceService, _warehouseItemService,
                                                          _warehouseService, _itemService, _barringService, _stockMutationService);
             cashSalesInvoice.Total += cashSalesInvoiceDetail.Amount;
             cashSalesInvoice.CoGS  += cashSalesInvoiceDetail.CoGS;
         }
         // Tax dihitung setelah Discount
         cashSalesInvoice.Total = (cashSalesInvoice.Total * ((100 - cashSalesInvoice.Discount) / 100) * ((100 + cashSalesInvoice.Tax) / 100));
         Contact    contact    = _contactService.GetObjectByName(Core.Constants.Constant.BaseContact);
         Receivable receivable = _receivableService.CreateObject(contact.Id, Core.Constants.Constant.ReceivableSource.CashSalesInvoice, cashSalesInvoice.Id, cashSalesInvoice.Code, cashSalesInvoice.Total, (DateTime)cashSalesInvoice.DueDate.GetValueOrDefault());
         _generalLedgerJournalService.CreateConfirmationJournalForCashSalesInvoice(cashSalesInvoice, _accountService);
         cashSalesInvoice = _repository.ConfirmObject(cashSalesInvoice);
     }
     else
     {
         cashSalesInvoice.ConfirmationDate = null;
     }
     return(cashSalesInvoice);
 }