private void BTN_PRINT_TEST_Click(object sender, EventArgs e) { try { setWaitCursor(true); if (COM_PRINTER.SelectedItem == null || string.Empty.Equals(COM_PRINTER.SelectedItem.ToString().Trim())) { MetroMessageBox.Show(this, Constants.getMessage("PRINTER_NOTHING"), "Print Info", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { GTF_ReceiptPrinter printer = new GTF_ReceiptPrinter(null); printer.setPrinter(COM_PRINTER.SelectedItem.ToString()); printer.PrintSlip_Test(); } } finally { setWaitCursor(false); BTN_PRINT_TEST.Focus(); } /* * PrintDocument printDoc = new PrintDocument(); * printDoc.PrinterSettings.PrinterName = COM_PRINTER.SelectedItem.ToString(); * printDoc.PrintPage += new PrintPageEventHandler(printDoc_PrintPage); * printDoc.Print(); */ }
private void BTN_OPOS_TEST_Click(object sender, EventArgs e) { try { setWaitCursor(true); if (COM_OPOS.SelectedItem != null && !"".Equals(COM_OPOS.SelectedItem.ToString())) { GTF_ReceiptPrinter printer = new GTF_ReceiptPrinter(null); printer.PrintSlip_sg(COM_OPOS.SelectedItem.ToString()); } } finally { setWaitCursor(false); BTN_OPOS_TEST.Focus(); } }
private void BTN_PRINT_TEST_Click(object sender, EventArgs e) { try { setWaitCursor(true); if (COM_PRINTER.SelectedItem == null || "".Equals(COM_PRINTER.SelectedItem.ToString().Trim())) { MetroMessageBox.Show(this, "Printer is not working properly", "Passport Info", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { GTF_ReceiptPrinter printer = new GTF_ReceiptPrinter(null); printer.setPrinter(COM_PRINTER.SelectedItem.ToString()); printer.PrintSlip_Test(); } } finally { setWaitCursor(false); BTN_PRINT_TEST.Focus(); } }
private void metroGrid1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 12 && e.RowIndex >= 0) { if (!Constants.OPEN_DATE.Equals(m_strLastSearchDate)) { MetroMessageBox.Show(this, Constants.getMessage("ERROR_PRINT_DATE"), "Search", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string strSlipNo = GRD_SLIP[2, e.RowIndex].Value.ToString(); string printCnt = (GRD_SLIP[12, e.RowIndex].Value == null || string.Empty.Equals(GRD_SLIP[12, e.RowIndex].Value.ToString().Trim())) ? "0":GRD_SLIP[12, e.RowIndex].Value.ToString(); Transaction tran = new Transaction(); PrintSlipLangForm langForm = new PrintSlipLangForm(m_Logger); langForm.ShowDialog(this); string strSlipLang = string.Empty; if (langForm.m_SelectLang != null && !string.Empty.Equals(langForm.m_SelectLang.Trim())) { strSlipLang = langForm.m_SelectLang; } else { MetroMessageBox.Show(this, "Select Lang.", "Search", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (langForm.DialogResult != DialogResult.OK) { return; } JObject jsonDocs = tran.GetPrintDocs(strSlipNo); if (jsonDocs != null)//출력 { string docid, retailer, goods, tourist, adsinfo, signInfo, preview = string.Empty; docid = jsonDocs["DOCID"].ToString(); retailer = jsonDocs["RETAILER"].ToString(); goods = jsonDocs["GOODS"].ToString(); tourist = jsonDocs["TOURIST"].ToString(); adsinfo = jsonDocs["ADSINFO"].ToString(); preview = jsonDocs["PREVIEW"].ToString(); signInfo = jsonDocs["SIGN"].ToString(); docid = strSlipLang + docid.Substring(2); try { GTF_ReceiptPrinter printer = new GTF_ReceiptPrinter(m_Logger); printer.setPrinter(Constants.PRINTER_TYPE); #if DEBUG printer.PrintSlip_ja(docid.Replace("[REPUBLISH]", "1"), retailer, goods, tourist, adsinfo, true, signInfo); #else printer.PrintSlip_ja(docid.Replace("[REPUBLISH]", "1"), retailer, goods, tourist, adsinfo, "Y".Equals(preview), signInfo); #endif } catch (Exception ex) { m_Logger.Error(ex.StackTrace); } JObject tempObj = new JObject(); JObject tempObj2 = new JObject(); tempObj.Add("SLIP_NO", strSlipNo); tempObj2.Add(Constants.PRINT_CNT, (Int32.Parse(printCnt) + 1).ToString()); if (GRD_SLIP[13, e.RowIndex].Value == null || !"02".Equals(GRD_SLIP[13, e.RowIndex].Value.ToString())) { MessageForm msgForm = new MessageForm(Constants.getMessage("SLIP_CONFIRM"), null, MessageBoxButtons.YesNo); msgForm.ShowDialog(this); if (msgForm.DialogResult == DialogResult.Yes) { string refunddt = System.DateTime.Now.ToString("yy'/'MM'/'dd HH:mm:ss"); tempObj2.Add("SLIP_STATUS_CODE", "02"); tempObj2.Add("REFUNDDT", refunddt); refunddt = ""; } } tran.UpdateSlip(tempObj, tempObj2); tempObj.RemoveAll(); tempObj2.RemoveAll(); tempObj = null; tempObj2 = null; BTN_SEARCH_Click(null, null); } else { MetroMessageBox.Show(this, "Print Error", "Search", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } }
private void BTN_PRINT_Click(object sender, EventArgs e) { if (strRefundStatusCode.Equals("04")) { MetroMessageBox.Show(this, Constants.getMessage("ALREADYCANCELREFUND"), "Issue", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (Constants.PRINTER_TYPE == null || string.Empty.Equals(Constants.PRINTER_TYPE.Trim())) { MetroMessageBox.Show(this, Constants.getMessage("PASSPORT_NOTHING"), "Issue", MessageBoxButtons.OK, MessageBoxIcon.Warning); setWaitCursor(false); return; } PrintSlipLangForm langForm = new PrintSlipLangForm(m_Logger); langForm.ShowDialog(this); string strSlipLang = string.Empty; if (langForm.m_SelectLang != null && !string.Empty.Equals(langForm.m_SelectLang.Trim())) { strSlipLang = langForm.m_SelectLang; } else { MetroMessageBox.Show(this, "Select Lang.", "Search", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (langForm.DialogResult != DialogResult.OK) { return; } Transaction tran = new Transaction();//거래내용 조회 GTF_ReceiptPrinter printer = new GTF_ReceiptPrinter(null); printer.setPrinter(Constants.PRINTER_TYPE); string strSlip_no = m_SlipNo; string retailer = ""; string docid = ""; string goods = ""; string tourist = ""; string singinfo = ""; string adsinfo = ""; JArray arrComm = new JArray(); JArray arrExComm = new JArray(); JToken signToken; string strRes = tran.getSlipPrintInfo(strSlip_no); JObject result = JObject.Parse(strRes); JToken retailerToken = result["retailerInfo"].DeepClone(); JToken touristToken = result["touristInfo"].DeepClone(); JToken refundToken = result["refundInfo"].DeepClone(); JToken saleToken = result["saleInfo"].DeepClone(); if (result["signInfo"] != null) { signToken = result["signInfo"].DeepClone(); } else { signToken = null; } JArray goodsList = JArray.Parse(result["goodsList"].ToString()); tourist = touristToken["PASSPORT_TYPE"].ToString() + "|"; tourist += touristToken["PASSPORT_SERIAL_NO"].ToString() + "|"; tourist += touristToken["BUYER_NAME"].ToString() + "|"; tourist += touristToken["NATIONALITY"].ToString() + "|"; tourist += touristToken["BUYER_BIRTH"].ToString() + "|"; tourist += touristToken["RESIDENCE"].ToString() + "|"; tourist += touristToken["ENTRYDT"].ToString() + "|"; retailer = retailerToken["TAXOFFICE_NAME"].ToString() + "|"; retailer += retailerToken["TAX_ADDR1"].ToString() + "|"; retailer += retailerToken["TAX_ADDR2"].ToString() + "|"; retailer += retailerToken["MERCHANT_JPNM"].ToString() + "|"; retailer += retailerToken["JP_ADDR1"].ToString() + "|"; retailer += retailerToken["JP_ADDR2"].ToString() + "|"; retailer += retailerToken["OPT_CORP_JPNM"].ToString() + "|"; docid += strSlipLang + "|"; //출력언어 if (Constants.PRINT_TYPE != "ALL") { docid += "1" + "|"; //출력전표 갯수 docid += "01" + "|"; //출력 } else { docid += "2" + "|"; //출력전표 갯수 docid += "01/02" + "|"; //출력 } docid += "[REPUBLISH]" + "|"; //출력유형 docid += strSlip_no + "|"; docid += "N" + "|"; //합산전표 출력여부 docid += refundToken["REFUND_WAY_CODE"].ToString() + "|"; // docid += refundToken["REFUND_WAY_CODE_DESC"].ToString() + "|"; docid += refundToken["MASK_REMIT_NO"].ToString() + "|"; docid += retailerToken["UNIKEY"].ToString(); goods = retailerToken["SALEDT"].ToString() + "|"; long com_cnt = Int64.Parse(saleToken["COM_COUNT"].ToString()); long excom_cnt = Int64.Parse(saleToken["EXCOM_COUNT"].ToString()); if (com_cnt > 0 && excom_cnt > 0) { goods += "2" + "|"; } else if (com_cnt > 0 || excom_cnt > 0) { goods += "1" + "|"; } else { MetroMessageBox.Show(this, Constants.getMessage("ERROR_ISSUE"), "Issue", MessageBoxButtons.OK, MessageBoxIcon.Warning); //setWaitCursor(false); return; } for (int i = 0; i < goodsList.Count; i++) { JObject tempObj = (JObject)goodsList[i]; string item_code = tempObj["GOODS_ITEMS_CODE"].ToString(); if (item_code.Equals("A0002")) { arrComm.Add(tempObj); } else { arrExComm.Add(tempObj); } } if (arrComm != null && arrComm.Count > 0) { goods += "01" + "|"; //물품종류(소비) goods += arrComm.Count + "|"; //물품갯수 for (int i = 0; i < arrComm.Count; i++) { JObject tempObj = (JObject)arrComm[i]; goods += tempObj["GOODS_NAME"].ToString() + "|"; goods += tempObj["GOODS_UNIT_PRICE"].ToString() + "|"; goods += tempObj["GOODS_QTY"].ToString() + "|"; goods += tempObj["GOODS_AMT"].ToString() + "|"; } goods += saleToken["TOTAL_COMM_SALE_AMT"].ToString() + "|"; goods += saleToken["TOTAL_COMM_TAX_AMT"].ToString() + "|"; goods += saleToken["TOTAL_COMM_REFUND_AMT"].ToString() + "|"; goods += "|";; } if (arrExComm != null && arrExComm.Count > 0) { goods += "02" + "|"; //물품종류(일반) goods += arrExComm.Count + "|"; //물품갯수 for (int i = 0; i < arrExComm.Count; i++) { JObject tempObj = (JObject)arrExComm[i]; goods += tempObj["GOODS_NAME"].ToString() + "|"; goods += tempObj["GOODS_UNIT_PRICE"].ToString() + "|"; goods += tempObj["GOODS_QTY"].ToString() + "|"; goods += tempObj["GOODS_AMT"].ToString() + "|"; } goods += saleToken["TOTAL_EXCOMM_SALE_AMT"].ToString() + "|"; goods += saleToken["TOTAL_EXCOMM_TAX_AMT"].ToString() + "|"; goods += saleToken["TOTAL_EXCOMM_REFUND_AMT"].ToString() + "|"; goods += "|"; } goods += Int64.Parse(saleToken["TOTAL_EXCOMM_TAX_AMT"].ToString()) + Int64.Parse(saleToken["TOTAL_COMM_TAX_AMT"].ToString()) + "|"; goods += Int64.Parse(saleToken["TOTAL_EXCOMM_SALE_AMT"].ToString()) + Int64.Parse(saleToken["TOTAL_COMM_SALE_AMT"].ToString()) + "|"; goods += ((Int64.Parse(saleToken["TOTAL_EXCOMM_TAX_AMT"].ToString()) + Int64.Parse(saleToken["TOTAL_COMM_TAX_AMT"].ToString())) - (Int64.Parse(saleToken["TOTAL_EXCOMM_REFUND_AMT"].ToString()) + Int64.Parse(saleToken["TOTAL_COMM_REFUND_AMT"].ToString()))) + "|"; goods += Int64.Parse(saleToken["TOTAL_EXCOMM_REFUND_AMT"].ToString()) + Int64.Parse(saleToken["TOTAL_COMM_REFUND_AMT"].ToString()) + "|"; if (signToken != null) { singinfo = signToken["SIGN_DATA"].ToString(); } #if DEBUG printer.PrintSlip_ja(docid.Replace("[REPUBLISH]", "0"), retailer, goods, tourist, adsinfo, true, singinfo); #else printer.PrintSlip_ja(docid.Replace("[REPUBLISH]", "0"), retailer, goods, tourist, adsinfo, false, singinfo); #endif }
public int PrintRefundSlip(JObject slipData) { int nRet = 0; //string filePath_QR = Directory.GetCurrentDirectory() + "/../Image/gtf_qr.bmp"; //string filePath_LOGO = Directory.GetCurrentDirectory() + "/../Image/gtf_logo.bmp"; //string filePath_ROUND_LOGO = Directory.GetCurrentDirectory() + "/../Image/gtf_logo_round.bmp"; //string filePath_Combine = Directory.GetCurrentDirectory() + "/../Image/combine_QR.jpg"; if (Constants.PRINTER_SELECT_TYPE == 0) //일반프린터 { writer = new BarcodeWriter { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Width = 120, Height = 120 } }; } else if (Constants.PRINTER_SELECT_TYPE == 1) //영수증 프린터 { writer = new BarcodeWriter { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Width = 160, Height = 160 } }; } qrbmp = new Bitmap(writer.Write(slipData["buy_serial_no"].ToString())); using (var stream = new FileStream(Constants.filePath_QR, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { ImageConverter converter = new ImageConverter(); byte[] qrBytes = (byte[])converter.ConvertTo(qrbmp, typeof(byte[])); stream.Write(qrBytes, 0, qrBytes.Length); stream.Close(); } if (Constants.PRINTER_SELECT_TYPE == 0) //일반프린터 { bmap = new Bitmap(214, 120); Graphics g = Graphics.FromImage(bmap); img = Bitmap.FromFile(Constants.filePath_ROUND_LOGO_NORMAL); img2 = Bitmap.FromFile(Constants.filePath_QR); g.DrawImage(img, 0, 0); g.DrawImage(img2, 94, 0); bmap.Save(Constants.filePath_Combine, ImageFormat.Jpeg); bmap.Dispose(); img.Dispose(); img2.Dispose(); } else if (Constants.PRINTER_SELECT_TYPE == 1) //영수증 프린터 { bmap = new Bitmap(126 + 160, 160); Graphics g = Graphics.FromImage(bmap); img = Bitmap.FromFile(Constants.filePath_ROUND_LOGO); img2 = Bitmap.FromFile(Constants.filePath_QR); g.DrawImage(img, 0, 0); g.DrawImage(img2, 126, 0); bmap.Save(Constants.filePath_Combine, ImageFormat.Jpeg); bmap.Dispose(); img.Dispose(); img2.Dispose(); } GTF_ReceiptPrinter dd = new GTF_ReceiptPrinter(); WindowPrinterUtil wpu = new WindowPrinterUtil(); if (Constants.PRINTER_SELECT_TYPE == 0) //일반프린터 { //dd.PrintHotelRefundSlip_Printer(Constants.PRINTER_OPOS_TYPE, Constants.PRINTER_OPOS_TYPE); wpu.PrintRefundSlip(slipData); } else if (Constants.PRINTER_SELECT_TYPE == 1) //영수증 프린터 { try { Utils util = new Utils(); System.DateTime sd = new System.DateTime(Int32.Parse(slipData["sale_date"].ToString().Substring(0, 4)), Int32.Parse(slipData["sale_date"].ToString().Substring(4, 2)) , Int32.Parse(slipData["sale_date"].ToString().Substring(6, 2))); sd = sd.AddMonths(3); Encoding enc = Encoding.Default; //Constants.PRINTER_OPOS_TYPE = "BIXOLON350"; Boolean bOpen = dd.OpenOPOS(Constants.PRINTER_OPOS_TYPE); StringBuilder sb = new StringBuilder(); dd.PrintOPOS_Text(ESC + "|cA" + ESC + "|N" + CRLF); //로고는 이미지로 대체 //dd.PrintOPOS_Text( ESC + "|2C" + ESC + "|cA" +ESC + "!0" + "GLOBAL TAX FREE " + CRLF); dd.PrintOPOS_BMP(Constants.filePath_LOGO); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + "-".PadRight(nPaddingLen, '-') + CRLF); dd.PrintOPOS_Text(ESC + "|cA" + ESC + "!0" + "숙 박 용 역" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + "-".PadRight(nPaddingLen, '-') + CRLF); dd.font_change_Big(); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + "Hotel Tax Refund" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + "This Document is authorized by Korea NTS" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + "국세청장이 인정한 서식임" + CRLF); dd.PrintOPOS_BMP(Constants.filePath_Combine); //dd.PrintOPOS_BMP(filePath_QR); //dd.PrintOPOS_BMP(filePath_ROUND_LOGO); //dd.PrintOPOS_BMP(filePath_Combine2); //bool bTest = true; //if (bTest) //{ // dd.PrintOPOS_Text(ESC + "|N" + "Guest's Signature" + CRLF + CRLF + CRLF + CRLF + CRLF + CRLF + CRLF + CRLF + CRLF + CRLF); // return 0; //} dd.font_change_Small(); string strBuySerialNo = slipData["buy_serial_no"].ToString(); dd.PrintOPOS_Text(ESC + "|N" + "[email protected] www.global-taxfree.com" + CRLF); dd.font_change_Big(); dd.PrintOPOS_Text(ESC + "|N" + "Contact Us : +82 2 518 0837" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "단말기 ID " + slipData["tml_id"].ToString() + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "구매일련번호 " + strBuySerialNo.Substring(0, 2) + "-" + strBuySerialNo.Substring(2, 5) + "-" + strBuySerialNo.Substring(7, 5) + "-" + strBuySerialNo.Substring(12, 2) + "-" + strBuySerialNo.Substring(14) + CRLF); dd.font_change_Small(); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + "-".PadRight(nPaddingLen, '-') + CRLF); dd.font_change_Big(); dd.PrintOPOS_Text(ESC + "E" + FONT_BOLD + "호텔/Hotel" + CRLF); String strBizPermitNo = slipData["biz_permit_no"].ToString(); strBizPermitNo = strBizPermitNo.Substring(0, 3) + "-" + strBizPermitNo.Substring(3, 2) + "-" + strBizPermitNo.Substring(5); dd.PrintOPOS_Text(ESC + "|N" + "사업자번호 " + strBizPermitNo.PadLeft(nPaddingLen_big - 11, ' ') + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "관광사업등록번호 " + "".PadLeft(nPaddingLen_big - 17 - enc.GetByteCount(slipData["company_reg_no"].ToString()), ' ') + slipData["company_reg_no"].ToString() + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "상호 " + "".PadLeft(util.getPaddingLen(nPaddingLen_big - 5 - enc.GetByteCount(slipData["shop_name"].ToString())), ' ') + slipData["shop_name"].ToString() + CRLF); int nCeoNameCnt = enc.GetByteCount(slipData["ceo_name"].ToString()); dd.PrintOPOS_Text(ESC + "|N" + "대표자 " + "".PadLeft(nPaddingLen_big - 7 - enc.GetByteCount(slipData["ceo_name"].ToString()), ' ') + slipData["ceo_name"].ToString() + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "주소 " + "".PadLeft(util.getPaddingLen(nPaddingLen_big - 5 - enc.GetByteCount(slipData["shop_addr"].ToString())), ' ') + slipData["shop_addr"].ToString() + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "연락처 " + slipData["shop_phone"].ToString().PadLeft(nPaddingLen_big - 7, ' ') + CRLF); dd.font_change_Small(); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + "-".PadRight(nPaddingLen, '-') + CRLF); dd.font_change_Big(); string strDate = slipData["sale_date"].ToString(); strDate = strDate.Substring(0, 4) + "-" + strDate.Substring(4, 2) + "-" + strDate.Substring(6, 2); dd.PrintOPOS_Text(ESC + "|N" + "Date of sale " + strDate.PadLeft(nPaddingLen_big - 13, ' ') + CRLF); dd.font_change_Small(); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + "-".PadRight(nPaddingLen, '-') + CRLF); dd.font_change_Big(); dd.PrintOPOS_Text(ESC + "E" + FONT_BOLD + "숙박내역/Description of Accommodation " + CRLF); if (slipData["buyList"] != null) { if (slipData["buyList"] is JArray) { JArray arrBuyData = (JArray)slipData["buyList"]; for (int i = 0; i < arrBuyData.Count(); i++) { dd.PrintOPOS_Text((i + 1) + ". " + arrBuyData[i]["goods_name"].ToString() + (arrBuyData[i]["qty"].ToString() + " Nights") .PadLeft(nPaddingLen_big - enc.GetByteCount((i + 1) + ". " + arrBuyData[i]["goods_name"].ToString()), ' ') + CRLF); dd.PrintOPOS_Text(" 공급가격 Payment(Inc.Tax) " + string.Format(CultureInfo.CreateSpecificCulture("en-US"), "{0:n0}", Int64.Parse(arrBuyData[i]["sales_amount"].ToString())).PadLeft(nPaddingLen_big - 29, ' ') + CRLF); dd.PrintOPOS_Text(" 부가세 V.A.T " + string.Format(CultureInfo.CreateSpecificCulture("en-US"), "{0:n0}", Int64.Parse(arrBuyData[i]["tax_amount"].ToString())).PadLeft(nPaddingLen_big - 18, ' ') + CRLF); } } } dd.font_change_Small(); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + "-".PadRight(nPaddingLen, '-') + CRLF); dd.font_change_Big(); dd.PrintOPOS_Text("합계 Total " + CRLF); dd.PrintOPOS_Text("공급가격 Payment(Inc.Tax) " + string.Format(CultureInfo.CreateSpecificCulture("en-US"), "{0:n0}", Int64.Parse(slipData["sales_amount"].ToString())).PadLeft(nPaddingLen_big - 28, ' ') + CRLF); dd.PrintOPOS_Text("부가세 V.A.T" + string.Format(CultureInfo.CreateSpecificCulture("en-US"), "{0:n0}", Int64.Parse(slipData["tax_amount"].ToString())).PadLeft(nPaddingLen_big - 16, ' ') + CRLF); dd.PrintOPOS_Text("환급액 Refund Amount" + string.Format(CultureInfo.CreateSpecificCulture("en-US"), "{0:n0}", Int64.Parse(slipData["refund_amount"].ToString())).PadLeft(nPaddingLen_big - 24, ' ') + CRLF); dd.PrintOPOS_Text("환급유효기간/Refund Expiry date " + sd.ToString("yyyy-MM-dd").PadLeft(nPaddingLen_big - 33, ' ') + CRLF); dd.font_change_Small(); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + "-".PadRight(nPaddingLen, '-') + CRLF); dd.font_change_Big(); dd.PrintOPOS_Text(ESC + "E" + FONT_BOLD + "투숙객/GUEST Your Passport Info in English" + CRLF); dd.font_change_Big(); dd.PrintOPOS_Text(ESC + "|N" + "Passport Full Name " + CRLF); String passportName = slipData["passport_name"] != null ? slipData["passport_name"].ToString().PadLeft(nPaddingLen_big, ' ') :""; String passportNat = slipData["passport_nat"] != null ? slipData["passport_nat"].ToString() : ""; String passportNo = slipData["passport_no"] != null ? slipData["passport_no"].ToString() :""; dd.PrintOPOS_Text(ESC + "|N" + passportName + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "Passport No " + passportNo.PadLeft(nPaddingLen_big - 12, ' ') + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "Nationality " + passportNat.PadLeft(nPaddingLen_big - 12, ' ') + CRLF); dd.font_change_Small(); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + "-".PadRight(nPaddingLen, '-') + CRLF); dd.font_change_Big(); dd.PrintOPOS_Text(ESC + "E" + FONT_BOLD + "환급수단/Refund Option " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "[ ]Credit Card (Visa/Master/JCB/CUP)" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "Card No." + CRLF + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "[ ]QQ Number" + CRLF + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "[ ]Alipay" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "(Alipay Mobile phone number 11digits)" + CRLF + CRLF); dd.font_change_Small(); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + "-".PadRight(nPaddingLen, '-') + CRLF); dd.font_change_Big(); //출력데이터 추가 dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + ESC + "|uC" + "Consent to collect, use and disclose" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + ESC + "|uC" + "of personal information" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "1. Personal Information Recipients" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " Hotel Tax Refund Processing Government " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " organizations" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "2. Purpose of collection and use of personal" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " information" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " - To confirm identification and check departure " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " for V.A.T. refund of foreign tourists received " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " hotel accommodation." + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "3. Categories for collecting personal information" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " - Personal Information : Name, Date of Birth, " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " Nationality, Passport No., Date of Departure," + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " Date of arrival" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " - Unique Identification Information : Passport " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " No." + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "4. Period of holding and using personal " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " information" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " - The taxation period which includes The date " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " when the V.A.T. refund or remittance is " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " received" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "5. Withdrawal of consent and contents of " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " disadvantage" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " - You have right to withdraw consents.However, " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " consequence follows(You may only receive V.A.T. " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " refund at the refund counter within the airport " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " or port of departure)" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " - Personal information will not be disclosed " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + " for any other collected purpose" + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "I will consent to disclosure of personal " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "information." + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "I will consent to disclosure of unique " + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "identification information. " + CRLF); //String strCurrntDate = DateTime.Now.ToString("yyyy.MM.dd"); String strCurrntDate = slipData["sale_date"].ToString().Substring(0, 4) + "." + slipData["sale_date"].ToString().Substring(4, 2) + "." + slipData["sale_date"].ToString().Substring(6, 2); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + strCurrntDate + CRLF); dd.PrintOPOS_Text(ESC + "|N" + "Name " + passportName.Trim().PadLeft(nPaddingLen_big - 5, ' ') + CRLF); //2018.04.03 영수증프린터 출력 데이터 변경 //dd.PrintOPOS_Text(ESC + "|N" + "I agree to voluntarily provide personal INFO." + CRLF + CRLF); //dd.PrintOPOS_Text(ESC + "|N" + "Guest's Signature" + CRLF + CRLF ); dd.PrintOPOS_Text(ESC + "|N" + "Signature" + CRLF + CRLF); if (slipData["sign_img"] != null && !"".Equals(slipData["sign_img"].ToString().Trim())) { byte[] sign_buff = System.Convert.FromBase64String(slipData["sign_img"].ToString()); ImageConverter imageConverter = new ImageConverter(); Image image = (Image)imageConverter.ConvertFrom(sign_buff); Image resizeImage = new Bitmap(image, new Size(360, 96)); resizeImage.Save(Constants.filePath_Sign, ImageFormat.Jpeg); image.Dispose(); resizeImage.Dispose(); dd.PrintOPOS_BMP(Constants.filePath_Sign); } else { dd.PrintOPOS_Text(CRLF + CRLF + CRLF + CRLF + CRLF + CRLF + CRLF + CRLF); } dd.PrintOPOS_Text(CRLF); dd.font_change_Small(); dd.PrintOPOS_Text(ESC + "|N" + ESC + "|cA" + "ver." + Properties.Resources.appVer + CRLF + CRLF); dd.PrintOPOS_Text(CRLF + CRLF + CRLF + CRLF + CRLF + CRLF + CRLF + CRLF); } catch (Exception e) { m_Logger.Error(e.Message, e); Console.WriteLine(e.Message); }finally { if (dd != null) { dd.CusPaper(); dd.CloseOPOS(); } if (writer != null) { writer = null; } if (qrbmp != null) { qrbmp.Dispose(); qrbmp = null; } if (bmap != null) { bmap.Dispose(); bmap = null; } if (img != null) { img.Dispose(); img = null; } if (img2 != null) { img2.Dispose(); img2 = null; } } } try { if (System.IO.File.Exists(Constants.filePath_QR)) { System.IO.File.Delete(Constants.filePath_QR); } if (System.IO.File.Exists(Constants.filePath_Combine)) { System.IO.File.Delete(Constants.filePath_Combine); } if (System.IO.File.Exists(Constants.filePath_Sign)) { System.IO.File.Delete(Constants.filePath_Sign); } } catch (Exception ex) { Console.WriteLine(ex.Message); } return(nRet); }