Esempio n. 1
0
        /// <summary>
        /// Print the gift card balance receipt.
        /// </summary>
        /// <param name="cardNumber">Card number</param>
        /// <exception cref="GiftCardException"></exception>
        public void PrintGiftCardBalance(string cardNumber)
        {
            if (Printer.DeviceType == DeviceTypes.None)
            {
                throw new GiftCardException(ApplicationLocalizer.Language.Translate(10060));
            }

            // If balance already queried skip TS call.
            if ((string.IsNullOrEmpty(CardNumber)) || (!cardNumber.Equals(CardNumber, StringComparison.OrdinalIgnoreCase)))
            {
                this.GetGiftCardBalance(cardNumber);
            }

            if (Currency != ApplicationSettings.Terminal.StoreCurrency)
            {
                throw new GiftCardException(ApplicationLocalizer.Language.Translate(4324));
            }

            IGiftCardLineItem gcItem = GiftCard.InternalApplication.BusinessLogic.Utility.CreateGiftCardLineItem(
                ApplicationSettings.Terminal.StoreCurrency, GiftCard.InternalApplication.Services.Rounding, (IRetailTransaction)Transaction);

            gcItem.SerialNumber = CardNumber;
            gcItem.Balance      = Balance;
            // Required for receipt header
            ((IPosTransactionV2)Transaction).EndDateTime = DateTime.Now;

            GiftCard.InternalApplication.Services.Printing.PrintGiftCertificate(FormType.GiftCertificate, Transaction, gcItem, false);
        }
Esempio n. 2
0
        public void VoidGiftCard(ref bool voided, ref string comment, IGiftCardLineItem gcLineItem)
        {
            LogMessage("Voiding a gift card",
                       LSRetailPosis.LogTraceLevel.Trace,
                       "GiftCard.VoidGiftCard");

            if (this.Application.TransactionServices.CheckConnection())
            {
                this.Application.TransactionServices.VoidGiftCard(ref voided, ref comment, gcLineItem.SerialNumber);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Void a gift card deposit line item.
        /// </summary>
        /// <param name="voided">Return true if sucessful, false otherwise.</param>
        /// <param name="comment">Error text if failed.</param>
        /// <param name="gcLineItem">Gift card line item.</param>
        public void VoidAddToGiftCard(ref bool voided, ref string comment, IGiftCardLineItem gcLineItem)
        {
            LogMessage("Voiding money addition to gift card.",
                       LSRetailPosis.LogTraceLevel.Trace,
                       "GiftCard.VoidGiftCardDeposit");

            if (gcLineItem == null)
            {
                throw new ArgumentNullException("gcLineItem");
            }

            decimal balance = 0;

            if (this.Application.TransactionServices.CheckConnection())
            {
                this.Application.TransactionServices.AddToGiftCard(ref voided, ref comment, ref balance, gcLineItem.SerialNumber,
                                                                   gcLineItem.StoreId, gcLineItem.TerminalId, gcLineItem.StaffId, gcLineItem.TransactionId, gcLineItem.ReceiptId,
                                                                   ApplicationSettings.Terminal.StoreCurrency, decimal.Negate(gcLineItem.Amount), DateTime.Now);
            }
        }
Esempio n. 4
0
        public void PrintGiftCertificate(FormType formType, IPosTransaction posTransaction, IGiftCardLineItem giftCardLineItem, bool copyReceipt)
        {
            PrintingActions.Print(formType, copyReceipt, false, delegate(FormModulation formMod, FormInfo formInfo)
            {
                StringBuilder reportLayout = new StringBuilder();

                PrintingActions.PrepareReceiptHeader(reportLayout, posTransaction, 10068, copyReceipt);
                reportLayout.AppendLine(PrintingActions.SingleLine);

                reportLayout.AppendLine();
                reportLayout.AppendLine(PrintingActions.FormatTenderLine(ApplicationLocalizer.Language.Translate(10070), giftCardLineItem.SerialNumber));
                reportLayout.AppendLine(PrintingActions.FormatTenderLine(ApplicationLocalizer.Language.Translate(10071),
                                                                         Printing.InternalApplication.Services.Rounding.RoundForDisplay(giftCardLineItem.Balance,
                                                                                                                                        true, true)));
                reportLayout.AppendLine();
                reportLayout.AppendLine(PrintingActions.DoubleLine);

                return(reportLayout.ToString());
            });
        }