Exemple #1
0
        /// <summary>
        /// Saves the voucher.
        /// </summary>
        /// <param name="session">The session.</param>
        /// <param name="voucherdDate">The voucherd date.</param>
        /// <param name="voucherAmount">The voucher amount.</param>
        /// <param name="voucherType">Type of the voucher.</param>
        /// <param name="referenceId">The reference identifier.</param>
        /// <param name="description">The description.</param>
        /// <param name="userId">The user identifier.</param>
        /// <param name="locationId">The location identifier.</param>
        /// <returns></returns>
        public ResponseCode SaveVoucher(CurrentSession session, DateTime voucherdDate, double voucherAmount, string voucherType, string referenceId, string description)
        {
            if (session.HasFeaturePermission("BILLING_MODULE"))
            {
                IKnockOff      mgr     = (IKnockOff)ObjectFactory.CreateInstance("BusinessProcess.Billing.BKnockOff, BusinessProcess.Billing");
                PaymentVoucher voucher = new PaymentVoucher()
                {
                    Amount      = voucherAmount,
                    DeleteBy    = null,
                    DeleteDate  = null,
                    Description = description,
                    LocationId  = session.Facility.Id,
                    UserId      = session.User.Id,
                    VoucherDate = voucherdDate,
                    VoucherType = voucherType,
                    ReferenceId = referenceId,
                    Id          = -1
                };
                PaymentVoucher newVoucher = mgr.SaveVoucher(voucher, session.User.Id);

                mgr = null;
                return(ResponseCode.Ok);
            }
            return(ResponseCode.Unauthorized);
        }
Exemple #2
0
        /// <summary>
        /// Knocks the off transaction.
        /// </summary>
        /// <param name="session">The session.</param>
        /// <param name="voucherId">The voucher identifier.</param>
        /// <param name="transaction">The transaction.</param>
        /// <returns></returns>
        public ResponseCode KnockOffTransaction(CurrentSession session, int voucherId, List <KnockOff> transaction)
        {
            IKnockOff mgr = (IKnockOff)ObjectFactory.CreateInstance("BusinessProcess.Billing.BKnockOff, BusinessProcess.Billing");

            if (session.HasFeaturePermission("BILLING_MODULE"))
            {
                PaymentVoucher voucher = mgr.GetVoucherById(voucherId, false);

                if (voucher != null && voucher.LocationId == session.Facility.Id)
                {
                    Double amountToKO = transaction.Sum(t => t.KnockOffAmount);
                    if (voucher.AmountAvailable < amountToKO)
                    {
                        return(ResponseCode.ExceedKnockOffAmount);
                    }
                    List <KnockOff> _validKnockOff = new List <KnockOff>();
                    foreach (KnockOff k in transaction)
                    {
                        //remove duplicates or excess knockof
                        Double          knockedOffAmt = 0.0D;
                        Double          tranAmount    = k.TransactionAmount;
                        List <KnockOff> tranKO        = GetTransactionKnockOffs(k.TransactionId);
                        if (tranKO != null && tranKO.Count > 0)
                        {
                            knockedOffAmt = tranKO.Sum(o => o.KnockOffAmount);
                            tranAmount    = tranKO.FirstOrDefault().TransactionAmount;
                        }
                        if (k.KnockOffAmount + knockedOffAmt <= tranAmount)
                        {
                            _validKnockOff.Add(k);
                        }
                    }
                    if (_validKnockOff.Count > 0)
                    {
                        mgr.KnockOffTransactions(voucher, session.User.Id, _validKnockOff);
                        return(ResponseCode.Ok);
                    }
                    else
                    {
                        return(ResponseCode.BadRequest);
                    }
                }
                else
                {
                    return(ResponseCode.ResourceNotFound);
                }
            }
            else
            {
                return(ResponseCode.Unauthorized);
            }
        }
Exemple #3
0
        /// <summary>
        /// Deletes the voucher.
        /// </summary>
        /// <param name="voucherId">The voucher identifier.</param>
        /// <param name="session">The session.</param>
        public void DeleteVoucher(int voucherId, CurrentSession session)
        {
            IKnockOff mgr = (IKnockOff)ObjectFactory.CreateInstance("BusinessProcess.Billing.BKnockOff, BusinessProcess.Billing");

            if (session.HasFeaturePermission("BILLING_MODULE"))
            {
                PaymentVoucher voucher = mgr.GetVoucherById(voucherId, false);
                if (voucher != null && voucher.KnockOffs == null && voucher.LocationId == session.Facility.Id)
                {
                    mgr.DeleteVoucher(voucher.Id, session.User.Id);
                }
            }
        }
Exemple #4
0
        /// <summary>
        /// Gets the vouchers.
        /// </summary>
        /// <param name="session">The session.</param>
        /// <param name="fromDate">From date.</param>
        /// <param name="toDate">To date.</param>
        /// <param name="voucherType">Type of the voucher.</param>
        /// <param name="withDetails">if set to <c>true</c> [with details].</param>
        /// <param name="openOnly">if set to <c>true</c> [open only].</param>
        /// <returns></returns>
        public List <PaymentVoucher> GetVouchers(CurrentSession session, DateRange range, string voucherType = "", bool withDetails = false, bool openOnly = false)
        {
            IKnockOff             mgr      = (IKnockOff)ObjectFactory.CreateInstance("BusinessProcess.Billing.BKnockOff, BusinessProcess.Billing");
            List <PaymentVoucher> vouchers = new List <PaymentVoucher>();

            if (range == null)
            {
                vouchers = mgr.GetAllVouchers(session.Facility.Id, null, null, voucherType, withDetails);
            }
            else
            {
            }
            if (openOnly)
            {
                return(vouchers.Where(v => v.AmountAvailable > 0.0D).ToList());
            }
            return(vouchers);
        }
Exemple #5
0
        List <KnockOff> GetTransactionKnockOffs(int transactionId)
        {
            IKnockOff mgr = (IKnockOff)ObjectFactory.CreateInstance("BusinessProcess.Billing.BKnockOff, BusinessProcess.Billing");

            return(mgr.GetKnockOffs(transactionId, null));
        }
Exemple #6
0
        /// <summary>
        /// Gets the credit transactions.
        /// </summary>
        /// <param name="session">The session.</param>
        /// <param name="fromDate">From date.</param>
        /// <param name="toDate">To date.</param>
        /// <param name="paymentType">Type of the payment.</param>
        /// <param name="billNumber">The bill number.</param>
        /// <param name="voucher">The voucher.</param>
        /// <returns></returns>
        public DataTable GetCreditTransactions(CurrentSession session, DateRange range, int paymentType, string billNumber = "", PaymentVoucher voucher = null)
        {
            IKnockOff mgr = (IKnockOff)ObjectFactory.CreateInstance("BusinessProcess.Billing.BKnockOff, BusinessProcess.Billing");

            return(mgr.GetCreditTransactions(session.Facility.Id, range.DateFrom, range.DateTo, paymentType, billNumber, voucher));
        }