Пример #1
0
 public CashSalesReturn VPaidObject(CashSalesReturn cashSalesReturn, ICashBankService _cashBankService)
 {
     VIsNotPaid(cashSalesReturn);
     if (!isValid(cashSalesReturn))
     {
         return(cashSalesReturn);
     }
     VIsConfirmed(cashSalesReturn);
     if (!isValid(cashSalesReturn))
     {
         return(cashSalesReturn);
     }
     VHasCashBank(cashSalesReturn, _cashBankService);
     //if (!isValid(cashSalesReturn)) { return cashSalesReturn; }
     //VIsCashBankTypeNotBank(cashSalesReturn, _cashBankService);
     if (!isValid(cashSalesReturn))
     {
         return(cashSalesReturn);
     }
     VIsValidTotal(cashSalesReturn);
     if (!isValid(cashSalesReturn))
     {
         return(cashSalesReturn);
     }
     VIsValidAllowance(cashSalesReturn);
     return(cashSalesReturn);
 }
Пример #2
0
        public CashSalesReturn UnpaidObject(CashSalesReturn cashSalesReturn, IPaymentVoucherService _paymentVoucherService, IPaymentVoucherDetailService _paymentVoucherDetailService,
                                            ICashBankService _cashBankService, IPayableService _payableService, ICashMutationService _cashMutationService,
                                            IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService, IClosingService _closingService)
        {
            if (_validator.ValidUnpaidObject(cashSalesReturn))
            {
                Payable payable = _payableService.GetObjectBySource(Core.Constants.Constant.PayableSource.CashSalesReturn, cashSalesReturn.Id);
                IList <PaymentVoucher> paymentVouchers = _paymentVoucherService.GetObjectsByCashBankId((int)cashSalesReturn.CashBankId.GetValueOrDefault());
                foreach (var paymentVoucher in paymentVouchers)
                {
                    if (paymentVoucher.ContactId == payable.ContactId)
                    {
                        paymentVoucher.Errors = new Dictionary <string, string>();
                        _paymentVoucherService.UnconfirmObject(paymentVoucher, _paymentVoucherDetailService, _cashBankService, _payableService,
                                                               _cashMutationService, _generalLedgerJournalService, _accountService, _closingService);

                        IList <PaymentVoucherDetail> paymentVoucherDetails = _paymentVoucherDetailService.GetObjectsByPaymentVoucherId(paymentVoucher.Id);
                        foreach (var paymentVoucherDetail in paymentVoucherDetails)
                        {
                            paymentVoucherDetail.Errors = new Dictionary <string, string>();
                            _paymentVoucherDetailService.SoftDeleteObject(paymentVoucherDetail);
                        }
                        _paymentVoucherService.SoftDeleteObject(paymentVoucher, _paymentVoucherDetailService);
                    }
                }
                payable.AllowanceAmount = 0;
                _payableService.UpdateObject(payable);
                cashSalesReturn.Allowance = 0;
                cashSalesReturn           = _repository.UnpaidObject(cashSalesReturn);
            }
            return(cashSalesReturn);
        }
Пример #3
0
 public CashSalesReturn ConfirmObject(CashSalesReturn cashSalesReturn, DateTime ConfirmationDate, decimal Allowance,
                                      ICashSalesReturnDetailService _cashSalesReturnDetailService, IContactService _contactService,
                                      ICashSalesInvoiceService _cashSalesInvoiceService, ICashSalesInvoiceDetailService _cashSalesInvoiceDetailService,
                                      IPriceMutationService _priceMutationService, IPayableService _payableService,
                                      ICashSalesReturnService _cashSalesReturnService, IWarehouseItemService _warehouseItemService,
                                      IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService,
                                      IStockMutationService _stockMutationService, IClosingService _closingService)
 {
     cashSalesReturn.ConfirmationDate = ConfirmationDate;
     cashSalesReturn.Allowance        = Allowance;
     if (_validator.ValidConfirmObject(cashSalesReturn, _cashSalesReturnDetailService, _cashSalesReturnService, _cashSalesInvoiceService, _cashSalesInvoiceDetailService))
     {
         IList <CashSalesReturnDetail> cashSalesReturnDetails = _cashSalesReturnDetailService.GetObjectsByCashSalesReturnId(cashSalesReturn.Id);
         foreach (var cashSalesReturnDetail in cashSalesReturnDetails)
         {
             cashSalesReturnDetail.Errors = new Dictionary <string, string>();
             _cashSalesReturnDetailService.ConfirmObject(cashSalesReturnDetail, _cashSalesReturnService, _cashSalesInvoiceService, _cashSalesInvoiceDetailService,
                                                         _warehouseItemService, _warehouseService, _itemService, _barringService, _stockMutationService, _cashSalesReturnDetailService);
         }
         // DueDate untuk Payable dari mana ?
         Contact contact = _contactService.GetObjectByName(Core.Constants.Constant.BaseContact);
         Payable payable = _payableService.CreateObject(contact.Id, Core.Constants.Constant.PayableSource.CashSalesReturn, cashSalesReturn.Id, cashSalesReturn.Code, cashSalesReturn.Total, ConfirmationDate.Add(Core.Constants.Constant.PaymentDueDateTimeSpan));
         cashSalesReturn = _repository.ConfirmObject(cashSalesReturn);
     }
     else
     {
         cashSalesReturn.ConfirmationDate = null;
         cashSalesReturn.Allowance        = 0;
     }
     return(cashSalesReturn);
 }
Пример #4
0
 public CashSalesReturn VUnconfirmObject(CashSalesReturn cashSalesReturn, ICashSalesReturnDetailService _cashSalesReturnDetailService,
                                         IPayableService _payableService, IPaymentVoucherDetailService _paymentVoucherDetailService)
 {
     VIsNotDeleted(cashSalesReturn);
     if (!isValid(cashSalesReturn))
     {
         return(cashSalesReturn);
     }
     VIsConfirmed(cashSalesReturn);
     if (!isValid(cashSalesReturn))
     {
         return(cashSalesReturn);
     }
     VIsNotPaid(cashSalesReturn);
     if (!isValid(cashSalesReturn))
     {
         return(cashSalesReturn);
     }
     VHasNoPaymentVoucherDetails(cashSalesReturn, _payableService, _paymentVoucherDetailService);
     if (!isValid(cashSalesReturn))
     {
         return(cashSalesReturn);
     }
     VIsUnconfirmableCashSalesReturnDetails(cashSalesReturn, _cashSalesReturnDetailService);
     return(cashSalesReturn);
 }
Пример #5
0
 public bool ValidConfirmObject(CashSalesReturn cashSalesReturn, ICashSalesReturnDetailService _cashSalesReturnDetailService, ICashSalesReturnService _cashSalesReturnService,
                                ICashSalesInvoiceService _cashSalesInvoiceService, ICashSalesInvoiceDetailService _cashSalesInvoiceDetailService)
 {
     cashSalesReturn.Errors.Clear();
     VConfirmObject(cashSalesReturn, _cashSalesReturnDetailService, _cashSalesReturnService, _cashSalesInvoiceService, _cashSalesInvoiceDetailService);
     return(isValid(cashSalesReturn));
 }
Пример #6
0
        public dynamic GetInfo(int Id)
        {
            CashSalesReturn model = new CashSalesReturn();

            try
            {
                model = _cashSalesReturnService.GetObjectById(Id);
            }
            catch (Exception ex)
            {
                LOG.Error("GetInfo", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Id,
                model.Code,
                model.Description,
                model.ReturnDate,
                model.Allowance,
                model.Total,
                model.CashBankId,
                CashBank = _cashBankService.GetObjectById((int)model.CashBankId.GetValueOrDefault()).Name,
                model.CashSalesInvoiceId,
                CashSalesInvoice = _cashSalesInvoiceService.GetObjectById(model.CashSalesInvoiceId).Code,
                model.Errors
            }, JsonRequestBehavior.AllowGet));
        }
Пример #7
0
 public bool ValidUnconfirmObject(CashSalesReturn cashSalesReturn, ICashSalesReturnDetailService _cashSalesReturnDetailService,
                                  IPayableService _payableService, IPaymentVoucherDetailService _paymentVoucherDetailService)
 {
     cashSalesReturn.Errors.Clear();
     VUnconfirmObject(cashSalesReturn, _cashSalesReturnDetailService, _payableService, _paymentVoucherDetailService);
     return(isValid(cashSalesReturn));
 }
Пример #8
0
        public dynamic Delete(CashSalesReturn model)
        {
            try
            {
                if (!AuthenticationModel.IsAllowed("Delete", Core.Constants.Constant.MenuName.CashSalesReturn, Core.Constants.Constant.MenuGroupName.Transaction))
                {
                    Dictionary <string, string> Errors = new Dictionary <string, string>();
                    Errors.Add("Generic", "You are Not Allowed to Delete Record");

                    return(Json(new
                    {
                        Errors
                    }, JsonRequestBehavior.AllowGet));
                }

                var data = _cashSalesReturnService.GetObjectById(model.Id);
                model = _cashSalesReturnService.SoftDeleteObject(data, _cashSalesReturnDetailService);
            }
            catch (Exception ex)
            {
                LOG.Error("Delete Failed", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Errors
            }));
        }
Пример #9
0
        public dynamic Insert(CashSalesReturn model)
        {
            try
            {
                if (!AuthenticationModel.IsAllowed("Create", Core.Constants.Constant.MenuName.CashSalesReturn, Core.Constants.Constant.MenuGroupName.Transaction))
                {
                    Dictionary <string, string> Errors = new Dictionary <string, string>();
                    Errors.Add("Generic", "You are Not Allowed to Add record");

                    return(Json(new
                    {
                        Errors
                    }, JsonRequestBehavior.AllowGet));
                }
                model = _cashSalesReturnService.CreateObject(model, _cashSalesInvoiceService, _cashBankService);
            }
            catch (Exception ex)
            {
                LOG.Error("Insert Failed", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Errors
            }));
        }
Пример #10
0
        public CashSalesReturn VConfirmObject(CashSalesReturn cashSalesReturn, ICashSalesReturnDetailService _cashSalesReturnDetailService, ICashSalesReturnService _cashSalesReturnService,
                                              ICashSalesInvoiceService _cashSalesInvoiceService, ICashSalesInvoiceDetailService _cashSalesInvoiceDetailService)
        {
            VIsNotConfirmed(cashSalesReturn);
            if (!isValid(cashSalesReturn))
            {
                return(cashSalesReturn);
            }
            VIsValidCashSalesInvoice(cashSalesReturn, _cashSalesInvoiceService);
            if (!isValid(cashSalesReturn))
            {
                return(cashSalesReturn);
            }
            VHasCashSalesReturnDetails(cashSalesReturn, _cashSalesReturnDetailService);
            if (!isValid(cashSalesReturn))
            {
                return(cashSalesReturn);
            }
            VIsConfirmableCashSalesReturnDetails(cashSalesReturn, _cashSalesReturnDetailService, _cashSalesInvoiceDetailService);
            if (!isValid(cashSalesReturn))
            {
                return(cashSalesReturn);
            }


            return(cashSalesReturn);
        }
Пример #11
0
 public CashSalesReturn VIsConfirmed(CashSalesReturn cashSalesReturn)
 {
     if (!cashSalesReturn.IsConfirmed)
     {
         cashSalesReturn.Errors.Add("Generic", "CashSalesReturn tidak terkonfirmasi");
     }
     return(cashSalesReturn);
 }
Пример #12
0
 public CashSalesReturn VIsValidTotal(CashSalesReturn cashSalesReturn)
 {
     if (cashSalesReturn.Allowance < 0)
     {
         cashSalesReturn.Errors.Add("Total", "Harus lebih besar atau sama dengan 0");
     }
     return(cashSalesReturn);
 }
Пример #13
0
 public CashSalesReturn VIsNotDeleted(CashSalesReturn cashSalesReturn)
 {
     if (cashSalesReturn.IsDeleted)
     {
         cashSalesReturn.Errors.Add("Generic", "CashSalesReturn tidak boleh terhapus");
     }
     return(cashSalesReturn);
 }
Пример #14
0
 public CashSalesReturn VHasReturnDate(CashSalesReturn cashSalesReturn)
 {
     if (cashSalesReturn.ReturnDate == null || cashSalesReturn.ReturnDate.Equals(DateTime.FromBinary(0)))
     {
         cashSalesReturn.Errors.Add("ReturnDate", "Tidak ada");
     }
     return(cashSalesReturn);
 }
Пример #15
0
 public CashSalesReturn VIsValidAllowance(CashSalesReturn cashSalesReturn)
 {
     if (cashSalesReturn.Allowance < 0 || cashSalesReturn.Allowance > cashSalesReturn.Total)
     {
         cashSalesReturn.Errors.Add("Allowance", "Harus diantara 0 sampai Total");
     }
     return(cashSalesReturn);
 }
Пример #16
0
 public CashSalesReturn VIsPaid(CashSalesReturn cashSalesReturn)
 {
     if (!cashSalesReturn.IsPaid)
     {
         cashSalesReturn.Errors.Add("Generic", "CashSalesReturn belum dibayar");
     }
     return(cashSalesReturn);
 }
Пример #17
0
 public CashSalesReturn VIsNotPaid(CashSalesReturn cashSalesReturn)
 {
     if (cashSalesReturn.IsPaid)
     {
         cashSalesReturn.Errors.Add("Generic", "CashSalesReturn sudah terbayar");
     }
     return(cashSalesReturn);
 }
Пример #18
0
        public CashSalesReturn VHasCashBank(CashSalesReturn cashSalesReturn, ICashBankService _cashBankService)
        {
            CashBank cashBank = _cashBankService.GetObjectById((int)cashSalesReturn.CashBankId.GetValueOrDefault());

            if (cashBank == null)
            {
                cashSalesReturn.Errors.Add("CashBankId", "Tidak valid");
            }
            return(cashSalesReturn);
        }
Пример #19
0
        public CashSalesReturnDetail VHasCashSalesReturn(CashSalesReturnDetail cashSalesReturnDetail, ICashSalesReturnService _cashSalesReturnService)
        {
            CashSalesReturn cashSalesReturn = _cashSalesReturnService.GetObjectById(cashSalesReturnDetail.CashSalesReturnId);

            if (cashSalesReturn == null)
            {
                cashSalesReturnDetail.Errors.Add("CashSalesReturnId", "Tidak valid");
            }
            return(cashSalesReturnDetail);
        }
Пример #20
0
        public CashSalesReturn VHasCashSalesInvoice(CashSalesReturn cashSalesReturn, ICashSalesInvoiceService _cashSalesInvoiceService)
        {
            CashSalesInvoice cashSalesInvoice = _cashSalesInvoiceService.GetObjectById(cashSalesReturn.CashSalesInvoiceId);

            if (cashSalesInvoice == null)
            {
                cashSalesReturn.Errors.Add("CashSalesInvoiceId", "Tidak valid");
            }
            return(cashSalesReturn);
        }
Пример #21
0
        public CashSalesReturn VHasCashSalesReturnDetails(CashSalesReturn cashSalesReturn, ICashSalesReturnDetailService _cashSalesReturnDetailService)
        {
            IList <CashSalesReturnDetail> cashSalesReturnDetails = _cashSalesReturnDetailService.GetObjectsByCashSalesReturnId(cashSalesReturn.Id);

            if (!cashSalesReturnDetails.Any())
            {
                cashSalesReturn.Errors.Add("Generic", "CashSalesReturnDetils Tidak ada");
            }
            return(cashSalesReturn);
        }
Пример #22
0
        public CashSalesReturn VHasNoCashSalesReturnDetails(CashSalesReturn cashSalesReturn, ICashSalesReturnDetailService _cashSalesReturnDetailService)
        {
            IList <CashSalesReturnDetail> cashSalesReturnDetails = _cashSalesReturnDetailService.GetObjectsByCashSalesReturnId(cashSalesReturn.Id);

            if (cashSalesReturnDetails.Any())
            {
                cashSalesReturn.Errors.Add("Generic", "Tidak boleh terasosiasi dengan CashSalesReturnDetails");
            }
            return(cashSalesReturn);
        }
 public CashSalesReturnDetail SoftDeleteObject(CashSalesReturnDetail cashSalesReturnDetail, ICashSalesReturnService _cashSalesReturnService)
 {
     if (_validator.ValidDeleteObject(cashSalesReturnDetail, _cashSalesReturnService))
     {
         CashSalesReturn cashSalesReturn = _cashSalesReturnService.GetObjectById(cashSalesReturnDetail.CashSalesReturnId);
         _repository.SoftDeleteObject(cashSalesReturnDetail);
         cashSalesReturn.Total = CalculateTotal(cashSalesReturn.Id);
         _cashSalesReturnService.GetRepository().Update(cashSalesReturn);
     }
     return(cashSalesReturnDetail);
 }
Пример #24
0
 public CashSalesReturn VHasConfirmationDate(CashSalesReturn cashSalesReturn)
 {
     if (cashSalesReturn.ConfirmationDate == null || cashSalesReturn.ConfirmationDate.Equals(DateTime.FromBinary(0)))
     {
         cashSalesReturn.Errors.Add("ConfirmationDate", "Tidak ada");
     }
     //else if (cashSalesReturn.ConfirmationDate.GetValueOrDefault().Date.AddDays(1) < cashSalesReturn.ReturnDate.GetValueOrDefault().Date)
     //{
     //    cashSalesReturn.Errors.Add("ConfirmationDate", "Harus lebih besar atau sama dengan Return Date");
     //}
     return(cashSalesReturn);
 }
Пример #25
0
        public string PrintError(CashSalesReturn obj)
        {
            string erroroutput = "";
            KeyValuePair <string, string> first = obj.Errors.ElementAt(0);

            erroroutput += first.Key + "," + first.Value;
            foreach (KeyValuePair <string, string> pair in obj.Errors.Skip(1))
            {
                erroroutput += Environment.NewLine;
                erroroutput += pair.Key + "," + pair.Value;
            }
            return(erroroutput);
        }
Пример #26
0
        public CashSalesReturn VIsValidCashSalesInvoice(CashSalesReturn cashSalesReturn, ICashSalesInvoiceService _cashSalesInvoiceService)
        {
            CashSalesInvoice cashSalesInvoice = _cashSalesInvoiceService.GetObjectById(cashSalesReturn.CashSalesInvoiceId);

            if (cashSalesInvoice == null)
            {
                cashSalesReturn.Errors.Add("Generic", "CashSalesInvoice Tidak valid");
            }
            else if (!(cashSalesInvoice.IsConfirmed && cashSalesInvoice.IsPaid))
            {
                cashSalesReturn.Errors.Add("Generic", "CashSalesInvoice Harus sudah terkonfirmasi dan terbayar");
            }
            return(cashSalesReturn);
        }
 public CashSalesReturnDetail UpdateObject(CashSalesReturnDetail cashSalesReturnDetail, ICashSalesReturnService _cashSalesReturnService,
                                           ICashSalesInvoiceDetailService _cashSalesInvoiceDetailService)
 {
     if (_validator.ValidUpdateObject(cashSalesReturnDetail, _cashSalesReturnService, this, _cashSalesInvoiceDetailService))
     {
         CashSalesReturn        cashSalesReturn        = _cashSalesReturnService.GetObjectById(cashSalesReturnDetail.CashSalesReturnId);
         CashSalesInvoiceDetail cashSalesInvoiceDetail = _cashSalesInvoiceDetailService.GetObjectById(cashSalesReturnDetail.CashSalesInvoiceDetailId);
         cashSalesReturnDetail.TotalPrice = (cashSalesInvoiceDetail.Amount / cashSalesInvoiceDetail.Quantity) * cashSalesReturnDetail.Quantity;
         cashSalesReturnDetail            = _repository.UpdateObject(cashSalesReturnDetail);
         cashSalesReturn.Total            = CalculateTotal(cashSalesReturn.Id);
         _cashSalesReturnService.GetRepository().Update(cashSalesReturn);
     }
     return(cashSalesReturnDetail);
 }
Пример #28
0
        /*public CashSalesReturn VIsCashBankTypeNotBank(CashSalesReturn cashSalesReturn, ICashBankService _cashBankService)
         * {
         *  CashBank cashBank = _cashBankService.GetObjectById((int)cashSalesReturn.CashBankId.GetValueOrDefault());
         *  if (cashBank.IsBank)
         *  {
         *      cashSalesReturn.Errors.Add("Generic", "CashBank harus bukan tipe Bank");
         *      return cashSalesReturn;
         *  }
         *  return cashSalesReturn;
         * }*/

        public CashSalesReturn VHasNoPaymentVoucherDetails(CashSalesReturn cashSalesReturn, IPayableService _payableService, IPaymentVoucherDetailService _paymentVoucherDetailService)
        {
            Payable payable = _payableService.GetObjectBySource(Core.Constants.Constant.PayableSource.CashSalesReturn, cashSalesReturn.Id);

            if (payable != null)
            {
                IList <PaymentVoucherDetail> paymentVoucherDetails = _paymentVoucherDetailService.GetObjectsByPayableId(payable.Id);
                if (paymentVoucherDetails.Any())
                {
                    cashSalesReturn.Errors.Add("Generic", "Tidak boleh terasosiasi dengan PaymentVoucherDetails");
                }
            }
            return(cashSalesReturn);
        }
Пример #29
0
 public CashSalesReturn VDeleteObject(CashSalesReturn cashSalesReturn, ICashSalesReturnDetailService _cashSalesReturnDetailService)
 {
     VIsNotDeleted(cashSalesReturn);
     if (!isValid(cashSalesReturn))
     {
         return(cashSalesReturn);
     }
     VIsNotConfirmed(cashSalesReturn);
     if (!isValid(cashSalesReturn))
     {
         return(cashSalesReturn);
     }
     VHasNoCashSalesReturnDetails(cashSalesReturn, _cashSalesReturnDetailService);
     return(cashSalesReturn);
 }
Пример #30
0
 public CashSalesReturn VUpdateObject(CashSalesReturn cashSalesReturn, ICashSalesInvoiceService _cashSalesInvoiceService, ICashBankService _cashBankService)
 {
     VIsNotDeleted(cashSalesReturn);
     if (!isValid(cashSalesReturn))
     {
         return(cashSalesReturn);
     }
     VIsNotConfirmed(cashSalesReturn);
     if (!isValid(cashSalesReturn))
     {
         return(cashSalesReturn);
     }
     VCreateObject(cashSalesReturn, _cashSalesInvoiceService, _cashBankService);
     return(cashSalesReturn);
 }