Ejemplo n.º 1
0
        public static string  PrintCheckByMe(string xmlIn)
        {
            double      AllSumm = 0;
            XmlDocument Xd      = new XmlDocument();

            Xd.LoadXml(xmlIn);
            XmlNodeList Xn          = Xd.GetElementsByTagName("CHECKID");
            string      Num         = Xn[0].FirstChild.Value;
            XmlNodeList Xp          = Xd.GetElementsByTagName("PRINTER");
            string      PrNum       = Xp[0].FirstChild.Value;
            int         CheckId     = Convert.ToInt32(Num);
            string      innerString = GetInnerString(xmlIn);
            bool        Closed      = xmlIn.Contains("Check Closed") || xmlIn.Contains("Чек закрыт");



            if (!PrintedChecks.Contains(CheckId))
            {
                if ((!Closed))
                {
                    GuestCount.GuestCount.SetGuestCount(CheckId);
                }

                PrintedChecks.Clear();
                List <int> AlreadyPrintedCheck = new List <int>();
                AlohaTSClass.CheckWindow();
                List <int> Chks = AlohaTSClass.GetChecksIdInThisTable(CheckId, out AlreadyPrintedCheck);
                if (Chks.Count > 1)
                {
                    MessageForm ManyChecksMsg = new MessageForm("Печатать все чеки на столе?");
                    ManyChecksMsg.button1.Text = "Да";
                    ManyChecksMsg.button2.Text = "Нет";
                    // ManyChecksMsg.button2.Visible = false;
                    ManyChecksMsg.ShowDialog();

                    if (ManyChecksMsg.Result == 1)
                    {
                        if (AlreadyPrintedCheck.Count > 0)
                        {
                            string Mess = "";
                            foreach (int nn in AlreadyPrintedCheck)
                            {
                                Mess += "Предчек #" + AlohaTSClass.GetCheckById(nn).CheckShortNum + " уже напечатан. " + Environment.NewLine;
                            }
                            AlohaTSClass.ShowMessage(Mess);
                        }
                        foreach (int ChId in Chks)
                        {
                            PrintedChecks.Add(ChId);
                            AlohaTSClass.PrintPredCheckByXml(ChId, Convert.ToInt32(PrNum));
                            try
                            {
                                AlohaTSClass.PrintPredCheck(ChId, true); //Это чтобы чек считался распечатанным в алохе.
                            }
                            catch
                            { }
                        }
                        AlohaTSClass.PrintAllPredchecksById(CheckId, Convert.ToInt32(PrNum), Chks);
                        return("");
                    }
                }
                else
                {
                    PrintedChecks.Remove(CheckId);
                }
            }
            else
            {
                PrintedChecks.Remove(CheckId);
                return("");
            }


            return(AlohaTSClass.GetPrintPredcheckById(CheckId, Convert.ToInt32(PrNum), false, null, innerString, Closed));
        }