//打印小票 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(); } }
//打印小票 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(); } }