using System;
using System.IO;
using System.Net;
using System.Text;
using MySql.Data.MySqlClient;
namespace SoM_PrnControl;
public class EpsonPrinterTMM30Service
{
private string printerIpAddress;
private string deviceId;
private int timeout;
public EpsonPrinterTMM30Service(string ipAddress, string deviceId, int timeout)
{
printerIpAddress = ipAddress;
this.deviceId = deviceId;
this.timeout = timeout;
}
public string PrintXml(string soapRequest)
{
try
{
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://" + printerIpAddress + "/cgi-bin/epos/service.cgi?devid=local_printer&timeout=10000");
httpWebRequest.Method = "POST";
httpWebRequest.ContentType = "text/xml";
Console.WriteLine("SOAP Request:");
Console.WriteLine(soapRequest);
using (Stream stream = httpWebRequest.GetRequestStream())
{
byte[] bytes = Encoding.UTF8.GetBytes(soapRequest);
stream.Write(bytes, 0, bytes.Length);
}
using HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using Stream stream2 = httpWebResponse.GetResponseStream();
StreamReader streamReader = new StreamReader(stream2, Encoding.UTF8);
string text = streamReader.ReadToEnd();
Console.WriteLine("SOAP Response:");
Console.WriteLine(text);
return text;
}
catch (Exception ex)
{
Console.WriteLine("エラー: " + ex.Message);
}
return "";
}
public void PrinterPapperCheck(string status, string park_id, MySqlConnection DBconnect)
{
uint num = uint.Parse(status);
string text = "";
string text2 = "";
string text3 = "";
if ((num & 0x20000) != 0)
{
text = "104";
text2 = "用紙残量少";
text3 = "プリンタ用紙を確認し、必要に応じて交換してください。";
InsertOperatorQue(park_id, text, text2, text3, DBconnect);
}
}
public string PrinterErrorHandling(string status, string park_id, MySqlConnection DBconnect)
{
uint num = uint.Parse(status);
string text = "";
string text2 = "";
string text3 = "";
string text4 = "";
if ((num & 1) != 0)
{
text = "102";
text2 = "TM プリンター無応答";
text3 = "プリンタを確認し、必要に応じて再起動してください。";
InsertOperatorQue(park_id, text, text2, text3, DBconnect);
}
if ((num & 8) != 0)
{
text = "102";
text2 = "プリンターオフライン";
text3 = "プリンタの接続を確認してください。";
InsertOperatorQue(park_id, text, text2, text3, DBconnect);
}
if ((num & 0x40) != 0 || (num & 0x200) != 0)
{
text = "102";
text2 = "紙送りスイッチ動作不良";
text3 = "紙送りスイッチを確認してください。";
InsertOperatorQue(park_id, text, text2, text3, DBconnect);
}
if ((num & 0x400) != 0)
{
text = "102";
text2 = "メカニカルエラー";
text3 = "プリンタが故障している可能性があります。";
InsertOperatorQue(park_id, text, text2, text3, DBconnect);
}
if ((num & 0x800) != 0)
{
text = "102";
text2 = "オートカッター動作不良";
text3 = "オートカッターが故障している可能性があります。";
InsertOperatorQue(park_id, text, text2, text3, DBconnect);
}
if ((num & 0x2000) != 0)
{
text = "102";
text2 = "復帰不可能エラー発生";
text3 = "プリンタに重大な問題が発生しています。";
InsertOperatorQue(park_id, text, text2, text3, DBconnect);
}
if ((num & 0x4000) != 0)
{
text = "102";
text2 = "自動復帰エラー";
text3 = "プリンタを手動で再起動してください。";
InsertOperatorQue(park_id, text, text2, text3, DBconnect);
}
if ((num & 0x80000) != 0)
{
text = "105";
text2 = "プリンタ用紙切れ";
text3 = "用紙を交換してください。";
InsertOperatorQue(park_id, text, text2, text3, DBconnect);
}
if ((num & 1) != 0 || (num & 8) != 0 || (num & 0x40) != 0 || (num & 0x200) != 0 || (num & 0x400) != 0 || (num & 0x800) != 0 || (num & 0x2000) != 0 || (num & 0x4000) != 0)
{
text4 = "pic_kessai_err_00.png";
}
if ((num & 0x80000) != 0)
{
text4 = "pic_kessai_err_p_out.png";
}
if ((num & 0x20) != 0)
{
text4 = "pic_kessai_err_c_open.png";
}
Console.Write(text4);
return text4;
}
private void InsertOperatorQue(string park_id, string que_class, string que_comment, string work_instructions, MySqlConnection DBconnect)
{
Console.WriteLine("parkId: " + park_id);
Console.WriteLine("queClass: " + que_class);
Console.WriteLine("queComment: " + que_comment);
Console.WriteLine("workInstructions: " + work_instructions);
string cmdText = "INSERT INTO operator_que (user_id, contract_id, park_id, que_class, que_comment, que_status, created_at, updated_at, operator_id, work_instructions) VALUES (NULL, NULL, @parkId, @queClass, @queComment, 1, NOW(), NOW(), NULL, @workInstructions)";
MySqlCommand mySqlCommand = new MySqlCommand(cmdText, DBconnect);
mySqlCommand.Parameters.AddWithValue("@parkId", park_id);
mySqlCommand.Parameters.AddWithValue("@queClass", que_class);
mySqlCommand.Parameters.AddWithValue("@queComment", que_comment);
mySqlCommand.Parameters.AddWithValue("@workInstructions", work_instructions);
mySqlCommand.ExecuteNonQuery();
}
public string GenerateSoapRequestPayee1(string username, string seven_no, string amount, string park_name, string userttype_subject1, string enable_months, string payment_due, string pay_code, string payee_name, string phone_number)
{
return "\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n【払込票】
\r\n\r\n受付方法:現金支払
\r\n\r\nお客様名:" + username + "\u3000様
\r\n\r\n払込先名:" + payee_name + "
\r\n(収納代行ウェルネット)
\r\n\r\n\r\n\r\n【セブンイレブンでのお支払い】
1. レジスタッフに「インターネット代金支払」をお申し出ください。
2.13桁の「" + seven_no + "」をレジスタッフに伝えお支払ください。
\r\n\r\n\r\n\r\n\r\n払込票番号
\r\n\r\n\r\n" + seven_no + "
\r\n\r\n\r\n\r\n払込金額
\r\n\r\n" + amount + "円
\r\n\r\n\r\n\r\n" + park_name + "
\r\n" + userttype_subject1 + "/" + enable_months + "ヶ月
\r\n支払期限
\r\n\r\n" + payment_due + "
\r\n\r\n※期限が切れた場合、下記連絡先にご連絡下さい。
\r\n\r\n\r\n株式会社ソーリン\u3000サポートセンター
\r\n" + phone_number + "
\r\n\r\n\r\n\r\n\r\n\r\n \r\n ";
}
public string GenerateSoapRequestPayee2(string username, string paycode, string amount, string park_name, string userttype_subject1, string enable_months, string payment_due, string pay_code, string payee_name, string phone_number)
{
return "\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n【払込票】
\r\n\r\n受付方法:現金支払
\r\n\r\nお客様名:" + username + "\u3000様
\r\n\r\n払込先名:" + payee_name + "
\r\n(収納代行ウェルネット)
\r\n\r\n\r\n【ファミリーマートでのお支払い】
1.マルチコピー機の画面から「コンビニでお支払い」のボタンを押します
2.「番号入力」を選択します
3.お客様番号 (" + paycode + ") を入力し、次の画面へ\u3000※入力時ハイフンは省く
4.確認番号 (" + pay_code + ") を入力し、次の画面へ
5.表示された画面を確認し、次の画面へ。申込券が発券されます。
6.30分以内にレジにてお支払い下さい。レシート・受領書を必ずお受け取りください。
\r\n\r\n\r\n\r\n\r\n払込票番号
\r\n\r\n\r\n" + paycode + "
\r\n\r\n\r\n\r\n確認番号
\r\n\r\n\r\n" + pay_code + "
\r\n\r\n\r\n\r\n払込金額
\r\n\r\n" + amount + "円
\r\n\r\n\r\n\r\n" + park_name + "
\r\n" + userttype_subject1 + "/" + enable_months + "ヶ月
\r\n支払期限
\r\n\r\n" + payment_due + "
\r\n\r\n※期限が切れた場合、下記連絡先にご連絡下さい。
\r\n\r\n\r\n株式会社ソーリン\u3000サポートセンター
\r\n" + phone_number + "
\r\n\r\n\r\n\r\n\r\n\r\n \r\n ";
}
public string GenerateSoapRequestPayee3(string username, string paycode, string amount, string park_name, string userttype_subject1, string enable_months, string payment_due, string pay_code, string payee_name, string phone_number)
{
return "\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n【払込票】
\r\n\r\n受付方法:現金支払
\r\n\r\nお客様名:" + username + "\u3000様
\r\n\r\n払込先名:" + payee_name + "
\r\n(収納代行ウェルネット)
\r\n\r\n\r\n\r\n【デイリーヤマザキでのお支払い】
1.店員に「オンライン決済」とお申し出下さい
2.レジの客面タッチパネルで" + paycode + "を入力「確定」ボタンをタッチ
3.画面に表示される内容、金額を確認後「確定」ボタンをタッチ
4.レシート・領収書(ご案内)は必ずお受け取り下さい
\r\n\r\n\r\n\r\n\r\n払込票番号
\r\n\r\n\r\n" + paycode + "
\r\n\r\n\r\n\r\n払込金額
\r\n\r\n" + amount + "円
\r\n\r\n\r\n\r\n" + park_name + "
\r\n" + userttype_subject1 + "/" + enable_months + "ヶ月
\r\n支払期限
\r\n\r\n" + payment_due + "
\r\n\r\n※期限が切れた場合、下記連絡先にご連絡下さい。
\r\n\r\n\r\n株式会社ソーリン\u3000サポートセンター
\r\n" + phone_number + "
\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n ";
}
public string GenerateSoapRequestPayee4(string username, string paycode, string amount, string park_name, string userttype_subject1, string enable_months, string payment_due, string pay_code, string payee_name, string phone_number)
{
return "\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n【払込票】
\r\n\r\n受付方法:現金支払
\r\n\r\nお客様名:" + username + "\u3000様
\r\n\r\n払込先名:" + payee_name + "
\r\n(収納代行ウェルネット)
\r\n\r\n\r\n\r\n【ローソン、ミニストップでのお支払い】
1. Loppi端末から「各種番号をお持ちの方」のボタンを押します
2.お客様番号 (" + paycode + ") を入力し、次の画面へ\u3000※入力時ハイフンは省く
3.確認番号 (" + pay_code + ") を入力し、次の画面へ
4.表示された画面を確認し、次の画面へ。申込券が発券されます。
5.30分以内にレジにてお支払い下さい。受領証を必ずお受け取りください。
\r\n\r\n\r\n\r\n\r\n払込票番号
\r\n\r\n\r\n" + paycode + "
\r\n\r\n\r\n\r\n確認番号
\r\n\r\n\r\n" + pay_code + "
\r\n\r\n\r\n\r\n払込金額
\r\n\r\n" + amount + "円
\r\n\r\n\r\n\r\n" + park_name + "
\r\n" + userttype_subject1 + "/" + enable_months + "ヶ月
\r\n支払期限
\r\n\r\n" + payment_due + "
\r\n\r\n※期限が切れた場合、下記連絡先にご連絡下さい。
\r\n\r\n\r\n\r\n株式会社ソーリン\u3000サポートセンター
\r\n" + phone_number + "
\r\n\r\n\r\n\r\n\r\n\r\n \r\n ";
}
}