Example #1
0
        //打印小票
        private static void PrintTicket(Hashtable hashTable)
        {
            //打印小票前要查看交易是否成功
            //如果交易成功,要更新本地数据库交易表中的交易流水,再打印小票
            StreamReader sr = new StreamReader(Environment.CurrentDirectory + "/template.tpl");
            string printString = "";
            printString = sr.ReadToEnd();
            sr.Close();
            string shop_no = "";
            string terminal_no = "";
            string card_no = "";
            string trans_date = "";
            string trans_time = "";
            string batch_no = "";
            string trace_no = "";
            string trans_name = "";
            double amount = 0.00; ;
            string current_points = "";
            string total_points = "";
            double balance = 0.00;

            string key = "";
            foreach (DictionaryEntry de in hashTable)
            {
                key = de.Key.ToString().Trim();
                if (key == "shop_no")
                {
                    shop_no = de.Value.ToString().Trim();  //返回的商户号
                }
                if (key == "terminal_no")
                {
                    terminal_no = de.Value.ToString().Trim(); // 返回的终端号
                }
                if (key == "card_no")
                {
                    card_no = de.Value.ToString().Trim(); // 返回的卡号
                }
                if (key == "trans_date")
                {
                    trans_date = de.Value.ToString().Trim(); // 返回原交易日期
                }
                if (key == "trans_time")
                {
                    trans_time = de.Value.ToString().Trim(); // 返回的交易时间
                }
                if (key == "batch_no")
                {
                    batch_no = de.Value.ToString().Trim(); // 返回的批次号
                }
                if (key == "trace_no")
                {
                    trace_no = de.Value.ToString().Trim(); // 返回的流水号
                }
                if (key == "trans_code")
                {
                    trans_name = de.Value.ToString().Trim(); // 返回的交易名称(英文)
                }
                if (key == "amount")
                {
                    if (de.Value.ToString().Trim() == "")
                    {
                        amount = Convert.ToDouble(0.00);
                    }
                    else
                    {
                        if (trans_name == "000050" || trans_name == "000070" || trans_name == "000060" || trans_name == "000080") //积分相关的交易不能除以100
                        {
                            amount = Convert.ToDouble(de.Value.ToString().Trim());
                        }
                        else
                        {
                            amount = Convert.ToDouble(de.Value.ToString().Trim()) / 100; // 因为金额在系统中是以[分]表示,显示时要转换成[元]
                        }
                    }
                }
                if (key == "current_points")
                {
                    current_points = de.Value.ToString().Trim(); // 本次积分
                }
                if (key == "total_points")
                {
                    total_points = de.Value.ToString().Trim(); // 可用积分
                }
                if (key == "balance")
                {
                    balance = Convert.ToDouble ( de.Value.ToString().Trim())/100; // 可用余额
                }
            }

            // printString = string.Format(printString, "商户存根", shop_no, terminal_no, trans_date, trans_time, batch_no,trace_no, CoolCard.Config .GetConfig ("TRANSCODE", trans_name), amount, current_points, total_points, balance, "", "");
            printString = printString.Replace("{shop_num}", shop_no);
            printString = printString.Replace("{terminal_num}", terminal_no);
            printString = printString.Replace("{date}", trans_date);
            printString = printString.Replace("{time}", trans_time);
            printString = printString.Replace("{batch_num}", batch_no);
            printString = printString.Replace("{trace_num}", trace_no);
            printString = printString.Replace("{type}", CoolCard.Config .GetConfig ("TRANSCODE", trans_name));
            printString = printString.Replace("{card_num}", card_no);
            printString = printString.Replace("{amount}", amount.ToString());
            printString = printString.Replace("{current_points}", current_points);
            printString = printString.Replace("{valid_points}", total_points);
            printString = printString.Replace("{balance}", balance.ToString());
            printString = printString.Replace("{remark}", "");

            // 不打印
            if (CoolCard.Config .GetConfig("SETTINGS", "ticket_pages", "1") == "0")
            {
                printString  = printString.Replace("{ticket_type}", "商户存根").Replace("{signature}", "持卡人签名");
                MessageBox.Show(printString);
            }

            // 开始打印
            if (CoolCard.Config .GetConfig("SETTINGS", "ticket_pages", "1") == "1")
            {
                TicketsPrinter ticketsPrinter = new TicketsPrinter();
                ticketsPrinter.PrintString = printString.Replace("{ticket_type}", "商户存根").Replace("{signature}", "持卡人签名");
                ticketsPrinter.printTicket();
            }

            // 打印第二联
            if (CoolCard.Config .GetConfig("SETTINGS", "ticket_pages", "1") == "2")
            {
                Thread.Sleep(3000);
                TicketsPrinter ticketsPrinter = new TicketsPrinter();
                ticketsPrinter.PrintString = printString.Replace("{ticket_type}", "持卡人留存").Replace("{signature}", "");
                ticketsPrinter.printTicket();
            }
        }
Example #2
0
        //打印小票
        private static void PrintTicket(Hashtable hashTable)
        {
            //打印小票前要查看交易是否成功
            //如果交易成功,要更新本地数据库交易表中的交易流水,再打印小票
            StreamReader sr          = new StreamReader(Environment.CurrentDirectory + "/template.tpl");
            string       printString = "";

            printString = sr.ReadToEnd();
            sr.Close();
            string shop_no        = "";
            string terminal_no    = "";
            string card_no        = "";
            string trans_date     = "";
            string trans_time     = "";
            string batch_no       = "";
            string trace_no       = "";
            string trans_name     = "";
            double amount         = 0.00;;
            string current_points = "";
            string total_points   = "";
            double balance        = 0.00;

            string key = "";

            foreach (DictionaryEntry de in hashTable)
            {
                key = de.Key.ToString().Trim();
                if (key == "shop_no")
                {
                    shop_no = de.Value.ToString().Trim();  //返回的商户号
                }
                if (key == "terminal_no")
                {
                    terminal_no = de.Value.ToString().Trim(); // 返回的终端号
                }
                if (key == "card_no")
                {
                    card_no = de.Value.ToString().Trim();     // 返回的卡号
                }
                if (key == "trans_date")
                {
                    trans_date = de.Value.ToString().Trim(); // 返回原交易日期
                }
                if (key == "trans_time")
                {
                    trans_time = de.Value.ToString().Trim(); // 返回的交易时间
                }
                if (key == "batch_no")
                {
                    batch_no = de.Value.ToString().Trim(); // 返回的批次号
                }
                if (key == "trace_no")
                {
                    trace_no = de.Value.ToString().Trim(); // 返回的流水号
                }
                if (key == "trans_code")
                {
                    trans_name = de.Value.ToString().Trim(); // 返回的交易名称(英文)
                }
                if (key == "amount")
                {
                    if (de.Value.ToString().Trim() == "")
                    {
                        amount = Convert.ToDouble(0.00);
                    }
                    else
                    {
                        if (trans_name == "000050" || trans_name == "000070" || trans_name == "000060" || trans_name == "000080") //积分相关的交易不能除以100
                        {
                            amount = Convert.ToDouble(de.Value.ToString().Trim());
                        }
                        else
                        {
                            amount = Convert.ToDouble(de.Value.ToString().Trim()) / 100; // 因为金额在系统中是以[分]表示,显示时要转换成[元]
                        }
                    }
                }
                if (key == "current_points")
                {
                    current_points = de.Value.ToString().Trim(); // 本次积分
                }
                if (key == "total_points")
                {
                    total_points = de.Value.ToString().Trim(); // 可用积分
                }
                if (key == "balance")
                {
                    balance = Convert.ToDouble(de.Value.ToString().Trim()) / 100; // 可用余额
                }
            }

            // printString = string.Format(printString, "商户存根", shop_no, terminal_no, trans_date, trans_time, batch_no,trace_no, CoolCard.Config .GetConfig ("TRANSCODE", trans_name), amount, current_points, total_points, balance, "", "");
            printString = printString.Replace("{shop_num}", shop_no);
            printString = printString.Replace("{terminal_num}", terminal_no);
            printString = printString.Replace("{date}", trans_date);
            printString = printString.Replace("{time}", trans_time);
            printString = printString.Replace("{batch_num}", batch_no);
            printString = printString.Replace("{trace_num}", trace_no);
            printString = printString.Replace("{type}", CoolCard.Config.GetConfig("TRANSCODE", trans_name));
            printString = printString.Replace("{card_num}", card_no);
            printString = printString.Replace("{amount}", amount.ToString());
            printString = printString.Replace("{current_points}", current_points);
            printString = printString.Replace("{valid_points}", total_points);
            printString = printString.Replace("{balance}", balance.ToString());
            printString = printString.Replace("{remark}", "");

            // 不打印
            if (CoolCard.Config.GetConfig("SETTINGS", "ticket_pages", "1") == "0")
            {
                printString = printString.Replace("{ticket_type}", "商户存根").Replace("{signature}", "持卡人签名");
                MessageBox.Show(printString);
            }

            // 开始打印
            if (CoolCard.Config.GetConfig("SETTINGS", "ticket_pages", "1") == "1")
            {
                TicketsPrinter ticketsPrinter = new TicketsPrinter();
                ticketsPrinter.PrintString = printString.Replace("{ticket_type}", "商户存根").Replace("{signature}", "持卡人签名");
                ticketsPrinter.printTicket();
            }

            // 打印第二联
            if (CoolCard.Config.GetConfig("SETTINGS", "ticket_pages", "1") == "2")
            {
                Thread.Sleep(3000);
                TicketsPrinter ticketsPrinter = new TicketsPrinter();
                ticketsPrinter.PrintString = printString.Replace("{ticket_type}", "持卡人留存").Replace("{signature}", "");
                ticketsPrinter.printTicket();
            }
        }