public bool SendStatistic() { Ipaybox.AddToLog(Ipaybox.Logs.Main, "Формирование инкассации."); if (Ipaybox.Incass.incass_amount > 0) { string data = "<request>"; data += "<protocol>1.00</protocol>"; data += "<type>1.00</type>"; data += "<terminal>" + Ipaybox.Terminal.terminal_id + "</terminal>"; data += "<pass>" + Ipaybox.Terminal.terminal_pass + "</pass>"; XmlDocument inc = new XmlDocument(); inc.Load(Ipaybox.StartupPath + @"\incass.xml"); XmlElement el = inc.CreateElement("incass-stop-date"); el.InnerText = DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss"); inc.DocumentElement.InsertAfter(el, inc.DocumentElement.LastChild); data += "<statistic> " + inc.DocumentElement.InnerXml + "</statistic>"; data += "</request>"; Ipaybox.AddToLog(Ipaybox.Logs.Main, "Посылаем инкассацию на сервер..."); string response = TryPostData(data); if (response != "") { try { XmlDocument resp = new XmlDocument(); resp.LoadXml(response); XmlElement root = resp.DocumentElement; for (int i = 0; i < root.ChildNodes.Count; i++) { XmlElement row = (XmlElement)root.ChildNodes[i]; if (row.Name == "incass") { string res = row.GetAttribute("result"); string comment = row.GetAttribute("comment"); if (res != "0") { // все плохо Ipaybox.AddToLog(Ipaybox.Logs.Main, "...Сервер не принял инкассацию."); return(false); } else { Ipaybox.AddToLog(Ipaybox.Logs.Main, "...Успешно. Формируем инкассационный чек."); string check = "IPAYBOX ZEUS CORE V" + Ipaybox.CoreVersion + "\r\n" + Ipaybox.Terminal.jur_name + "\r\nТерминал: " + Ipaybox.Terminal.terminal_id + "\r\n"; check += "ИНКАССАЦИОННЫЙ ЧЕК\r\n_____________________\r\n"; check += "СУММА: " + Ipaybox.Incass.incass_amount.ToString() + "\r\n"; check += "Кол-во купюр: " + Ipaybox.Incass.count + "\r\n"; check += "Кол-во купюр 10 руб: " + Ipaybox.Incass.CountR10 + "\r\n"; check += "Кол-во купюр 50 руб: " + Ipaybox.Incass.CountR50 + "\r\n"; check += "Кол-во купюр 100 руб: " + Ipaybox.Incass.CountR100 + "\r\n"; check += "Кол-во купюр 500 руб: " + Ipaybox.Incass.CountR500 + "\r\n"; check += "Кол-во купюр 1000 руб: " + Ipaybox.Incass.CountR1000 + "\r\n"; check += "Кол-во купюр 5000 руб: " + Ipaybox.Incass.CountR5000 + "\r\n"; check += "Кол-во чеков: " + Ipaybox.Incass.countchecks + "\r\n"; check += "Дата начала: " + Ipaybox.Incass.incass_date_start.ToString() + "\r\n"; check += "Дата инкасс: " + DateTime.Now.ToString() + "\r\n"; check += "____________________\r\n"; check += "Сервер инкасации: " + res + "\\" + comment + "\r\n"; check += "Bytes send: " + Ipaybox.Incass.bytesSend + "\r\n"; check += "Bytes recieve: " + Ipaybox.Incass.bytesRead + "\r\n"; Ipaybox.AddToLog(Ipaybox.Logs.Main, "...Печатаем чек."); PrintCheck = check; if (!Ipaybox.WindowsPrinter) { Ipaybox.Printer.Print(check); } else { doc.Print(); } Ipaybox.AddToLog(Ipaybox.Logs.Main, "...Чек распечатан. Очистка статистики."); Ipaybox.Incass.bytesRead = 0; Ipaybox.Incass.bytesSend = 0; Ipaybox.Incass.count = 0; Ipaybox.Incass.CountR10 = 0; Ipaybox.Incass.CountR50 = 0; Ipaybox.Incass.CountR100 = 0; Ipaybox.Incass.CountR500 = 0; Ipaybox.Incass.CountR1000 = 0; Ipaybox.Incass.CountR5000 = 0; Ipaybox.Incass.countchecks = 0; Ipaybox.Incass.incass_amount = 0; Ipaybox.Incass.incass_date_start = DateTime.Now; Ipaybox.FlushStatistic(); Ipaybox.LoadIncass(); Ipaybox.AddToLog(Ipaybox.Logs.Main, "...Инкассация успешно проведена."); return(true); } } } } catch (Exception ex) { HelperClass.CrashLog.AddCrash(ex); Ipaybox.AddToLog(Ipaybox.Logs.Main, "Ошибка при инкассации нераспознанный ответ сервера.\r\n-----\r\n" + response + "\r\n-----"); return(false); } } else { return(false); } } else { return(true); } return(false); }