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);
        }
Ejemplo n.º 3
0
        static private ArcusSlip GetSlip(int Num)
        {
            ArcusSlips AS = ArcusAlohaIntegrator.ReadArcusSlips();

            foreach (ArcusSlip S in AS.Slips)
            {
                if (S.Num == Num)
                {
                    return(S);
                }
            }
            return(null);
        }
Ejemplo n.º 4
0
        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);
            }
        }