public static ArcusSlips ReadArcusSlips() { string FileName = iniFile.ArcusFilesPath + "Slips.xml"; if (!File.Exists(FileName)) { Utils.ToCardLog("Отсутствует файл слипов. " + FileName); return(new ArcusSlips()); } XmlReader XR = new XmlTextReader(FileName); try { //ToLog("[ReadVisitsFromFile] Читаю из файла " + Fi.FullName + "информацию о карте"); XmlSerializer XS = new XmlSerializer(typeof(ArcusSlips)); //XmlSerializer XS = new XmlSerializer(typeof(CardMooverInfo)); ArcusSlips CMI = (ArcusSlips)XS.Deserialize(XR); XR.Close(); return(CMI); } catch { XR.Close(); return(new ArcusSlips()); } }
/* * static private void PrintSlip(string Slip) * { * * * * * Slip += Convert.ToChar(31); * //ToShtrih.Conn(); * ToShtrih.PrintCardCheck(Slip); * } */ private static ArcusSlip GetSlip(int Num) { ArcusSlips AS = ReadArcusSlips(); foreach (ArcusSlip S in AS.Slips) { if (S.Num == Num) { return(S); } } return(null); }
static private ArcusSlip GetSlip(int Num) { ArcusSlips AS = ArcusAlohaIntegrator.ReadArcusSlips(); foreach (ArcusSlip S in AS.Slips) { if (S.Num == Num) { return(S); } } return(null); }
static internal void PrintShortReport() { Utils.ToCardLog("Печать краткого отчета"); ArcusSlips AS = ArcusAlohaIntegrator.ReadArcusSlips(); decimal Card = 0; int CardCount = 0; decimal Vozvr = 0; int VozvrCount = 0; foreach (ArcusSlip s in AS.Slips) { if (!s.Void) { Card += s.Sum / 100; CardCount++; } else { Vozvr += s.Sum / 100; VozvrCount++; } } List <string> ReportStrings = new List <string>(); ReportStrings.Add("ОБЩИЙ ОТЧЕТ && " + DateTime.Now.ToString("dd/MM/yyyy")); ReportStrings.Add("ПО ЭМИТЕНТАМ && " + DateTime.Now.ToString("HH:mm")); ReportStrings.Add(" "); ReportStrings.Add("ОПЛАТ && " + CardCount + " " + "RUR " + Card.ToString("0.00")); ReportStrings.Add(" "); ReportStrings.Add("ВОЗВРАТОВ && " + VozvrCount + " " + "RUR " + Vozvr.ToString("0.00")); ReportStrings.Add(" "); ReportStrings.Add("ИТОГО && " + (CardCount - VozvrCount) + " " + "RUR " + (Card - Vozvr).ToString("0.00")); ReportStrings.Add(" "); ReportStrings.Add(" "); string OutStr = ""; foreach (String s in ReportStrings) { OutStr += s + " " + char.ConvertFromUtf32(10)[0]; } Utils.ToCardLog("ReportStrings" + OutStr + char.ConvertFromUtf32(31)[0]); //ToShtrih.Init(); //ToShtrih.Conn(); PrintSlip(OutStr + char.ConvertFromUtf32(31)[0]); //ToShtrih.PrintCardCheck(OutStr + char.ConvertFromUtf32(31)[0]); }
internal static void WriteArcusSlips(ArcusSlips AllSlips) { try { if (!Directory.Exists(iniFile.ArcusFilesPath)) { Directory.CreateDirectory(iniFile.ArcusFilesPath); } XmlWriter XWriter = new XmlTextWriter(iniFile.ArcusFilesPath + @"\Slips.xml", System.Text.Encoding.UTF8); XmlSerializer XS = new XmlSerializer(typeof(ArcusSlips)); XS.Serialize(XWriter, AllSlips); XWriter.Close(); } catch { } }
private void RunOper() { try { Utils.ToCardLog("Запуск RunOper OperType=" + OperType.ToString() + " Amount= " + Amount.ToString()); OperInProcess = true; SAPacketObj Request = new SAPacketObj(); SAPacketObj Response = new SAPacketObj(); PCPOSTConnectorObj Conn = new PCPOSTConnectorObj(); Request.Amount = (Amount).ToString(); Request.OperationCode = OperType; Request.CurrencyCode = "643"; Request.DateTimeHost = DateTime.Now.ToString("yyyyMMddHHmmss"); //Conn.InitResources(); Conn.Exchange(ref Request, ref Response, 10); RespCode = Response.ResponseCodeHost.Trim(); Utils.ToCardLog(String.Format("[RunOper] Операция выполнена. Результат: {0}, TrxIDCRM {1}, TrxID {2}, ReferenceNumber {3}", RespCode, Response.TrxIDCRM, Response.TrxID, Response.ReferenceNumber)); try { Utils.ToCardLog(String.Format("[RunOper] Операция выполнена. Входящий запрос: {0}, TrxIDCRM {1}, TrxID {2}, ReferenceNumber {3}", RespCode, Request.TrxIDCRM, Request.TrxID, Request.ReferenceNumber)); } catch { } Receipt = ReadChequeFile(); if (((RespCode == "00") || (RespCode == "000")) && (!Receipt.ToUpper().Contains("НЕ ОПЛАЧИВАТЬ"))) { if ((OperType == 1) || (OperType == 4)) { string Tmp = Receipt; if (!iniFile.Arcus2PrintOneSlip) { Tmp += Convert.ToChar(31) + Environment.NewLine; Tmp += Receipt; Receipt = Tmp; } try { Utils.ToCardLog("[RunOper] Добавляю Слип в Файл."); ArcusSlips AS = Arcus2DataFromXML.ReadArcusSlips(); DateTime HDT = DateTime.Now; try { HDT = Convert.ToDateTime(Response.DateTimeCRM); } catch { } ArcusSlip S = new ArcusSlip() { HostDt = HDT, Sum = Convert.ToDecimal(Response.Amount), Void = (Response.OperationCode == 4), Num = Response.TrxIDCRM, RRN = Response.ReferenceNumber, AlohaCheckId = AlohaCheckId, AlohaCheckShortNum = AlohaCheckShortNum }; string[] Str = Receipt.Split(char.ConvertFromUtf32(10)[0]); foreach (string str in Str) { Utils.ToCardLog(str); S.Slip.Add(str); } decimal SummFromTxt = GetSummFromSlip(S.Slip); if ((SummFromTxt != 0) && (S.Sum != SummFromTxt * 100)) { Utils.ToCardLog("Error Разные суммы в слипе " + SummFromTxt.ToString() + " и ответе от терминала. " + S.Sum.ToString()); S.Sum = SummFromTxt * 100; } AS.Slips.Add(S); Arcus2DataFromXML.WriteArcusSlips(AS); Utils.ToCardLog("[RunOper] Добавлил Слип в Файл."); } catch (Exception e) { Utils.ToCardLog("[Error] Ошибка добавления слипа в файл." + e.Message); } } } else { try { EventSenderClass.SendAlohaAsincEvent(StopListService.AlohaEventType.ErrorCreditCardterminal, "", AlohaTSClass.AlohaCurentState.WaterId, AlohaTSClass.GetJobCode(AlohaTSClass.AlohaCurentState.WaterId), "", Convert.ToInt32(RespCode), (int)AlohaTSClass.AlohaCurentState.TableId, (int)AlohaTSClass.AlohaCurentState.CheckId); } catch { } } resOper = GetCodeDescr(RespCode); if (!Sinc) { RunOperationAsincComplitedVoid(OperType, RespCode, resOper, "", Receipt); } OperInProcess = false; Utils.ToCardLog("Отработал RunOper OperType=" + OperType.ToString() + " Amount= " + Amount.ToString()); } catch (Exception e) { resOper = "Ошибка программы. " + e.Message; RespCode = "-1"; if (!Sinc) { RunOperationAsincComplitedVoid(OperType, RespCode, resOper, "", ""); } Utils.ToCardLog("[Error] Запускa RunOper " + e.Message); } }