Beispiel #1
0
 private void AddEvent(string Event, int id)
 {
     try
     {
         OrderInfo order = new OrderInfo(db_connection, id);
         string body = "";
         for (int i = 0; i < order.OrderBody.Rows.Count; i++)
         {
             body += order.OrderBody.Rows[i][9].ToString() + "|" +
                     order.OrderBody.Rows[i][1].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][3].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][4].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][5].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][6].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][7].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][18].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][13].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][11].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][16].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][17].ToString().Trim();
             body += "#";
         }
         body = body.Substring(0, body.Length - 1);
         body = "$$" + body + "$$" + order.AdvancedPayment + "$$" + order.FinalPayment + "$$" + order.Bonus;
         SqlCommand _cmd = new SqlCommand("INSERT INTO [dbo].[orderevent] ([id_order], [event_user], [event_status], [event_point], [event_text]) VALUES (" +
                     order.Id + ", '" + usr.Name.Trim() + "', '" + order.Distanation + "', '" + prop.Order_prefics.Trim() +
                     "', '" + Event + body + "')", db_connection);
         _cmd.ExecuteNonQuery();
     }
     catch (Exception ex)
     {
     }
 }
Beispiel #2
0
 public frmOrder(UserInfo usr, bool New_Order, OrderInfo order)
 {
     InitializeComponent();
     this.Text = "Заказ";
     this.order = order;
     this.NewOrder = New_Order;
     this.usr = usr;
 }
Beispiel #3
0
 private void AddEvent(string Event, int id)
 {
     try
     {
         SqlConnection cn = new SqlConnection(prop.Connection_string);
         cn.Open();
         OrderInfo order = new OrderInfo(cn , id);
         string body = "";
         for (int i = 0; i < order.OrderBody.Rows.Count; i++)
         {
             body += order.OrderBody.Rows[i][9].ToString() + "|" +
                     order.OrderBody.Rows[i][1].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][3].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][4].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][5].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][6].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][7].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][18].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][13].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][11].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][16].ToString().Trim() + "|" +
                     order.OrderBody.Rows[i][17].ToString().Trim();
             body += "#";
         }
         if (body.Length > 0)
             body = body.Substring(0, body.Length - 1);
         body = "$$" + body + "$$" + order.AdvancedPayment + "$$" + order.FinalPayment + "$$" + order.Bonus;
         SqlCommand _cmd = new SqlCommand("INSERT INTO [dbo].[orderevent] ([id_order], [event_user], [event_status], [event_point], [event_text]) VALUES (" +
                     order.Id + ", '" + usr.Name.Trim() + "', '" + order.Distanation + "', '" + prop.Order_prefics.Trim() +
                     "', '" + Event + body + "')", cn);
         _cmd.ExecuteNonQuery();
     }
     catch (Exception ex)
     {
         MessageBox.Show("Ошибка записи в историю.\n" + ex.Message + "\n" + ex.Source);
     }
 }
Beispiel #4
0
 private void PrintCheck()
 {
     // Печатаем чек
     using (SqlConnection con = new SqlConnection(prop.Connection_string))
     {
         con.Open();
         foreach (DataRow r in _order.Rows)
         {
             OrderInfo prnOrder = new OrderInfo(con, r[14].ToString().Trim(), true);
             try
             {
                 if (prop.PathReportsTemplates != "")
                 {
                     rep.Load(prop.PathReportsTemplates, "Check");
                     rep.DataSource.Recordset = prnOrder.OrderBody;
                     decimal itog = 0;
                     decimal iitog = 0;
                     for (int i = 0; i < prnOrder.OrderBody.Rows.Count; i++)
                     {
                         itog += decimal.Parse(prnOrder.OrderBody.Rows[i]["price"].ToString()) *
                                 decimal.Parse(prnOrder.OrderBody.Rows[i]["quantity"].ToString());
                     }
                     rep.Fields["Total"].Text = itog.ToString().Replace(",", ".");
                     rep.Fields["BarCode"].Text = prnOrder.Orderno.Trim();
                     rep.Fields["OrderNo"].Text = prnOrder.Orderno.Trim();
                     rep.Fields["DateOut"].Text = prnOrder.Dateout + " " + prnOrder.Timeout;
                     rep.Fields["Client"].Text = prnOrder.Client.Name.Trim();
                     rep.Fields["AddonInfo"].Text = prop.ReklamBlock1;
                     rep.Fields["Priemka"].Text = "Заказ принят: " + prnOrder.Datein + " " + prnOrder.Timein + "\nЗаказ принял: " + prnOrder.Name_accept;
                     string tp = "";
                     switch (prnOrder.Crop)
                     {
                         case 1:
                             {
                                 tp = "Обрезать под формат; ";
                                 break;
                             }
                         case 2:
                             {
                                 tp = "Сохранить пропорции; ";
                                 break;
                             }
                         case 3:
                             {
                                 tp = "Реальный размер; ";
                                 break;
                             }
                     }
                     if (prnOrder.Preview > 0)
                         rep.Fields["PreView"].Visible = true;
                     if (prnOrder.Type == 1) tp += "Глянцевая бумага;";
                     if (prnOrder.Type == 2) tp += "Матовая бумага;";
                     rep.Fields["TypePaper"].Text = tp;
                     if (prnOrder.Discont != null)
                     {
                         rep.Fields["Discont"].Text = prnOrder.Discont.Discserv.ToString().Replace(",", ".");
                         iitog = itog - ((itog * prnOrder.Discont.Discserv) / 100);
                     }
                     else
                     {
                         rep.Fields["Discont"].Text = "0";
                         iitog = itog;
                     }
                     switch (prop.ModelRound)
                     {
                         case 0:
                             {
                                 break;
                             }
                         case 1:
                             {
                                 if (((iitog - ((int)iitog)) <= (decimal)0.25) && ((iitog - ((int)iitog)) > 0))
                                     iitog = ((int)iitog);
                                 else if (((iitog - ((int)iitog)) > (decimal)0.25) && ((iitog - ((int)iitog)) <= (decimal)0.75))
                                     iitog = ((int)iitog) + (decimal)0.5;
                                 else if ((iitog - ((int)iitog)) > (decimal)0.75)
                                     iitog = ((int)iitog) + 1;
                                 break;
                             }
                         case 2:
                             {
                                 if (((iitog - ((int)iitog)) <= (decimal)0.45) && ((iitog - ((int)iitog)) > 0))
                                     iitog = ((int)iitog);
                                 else if (((iitog - ((int)iitog)) > (decimal)0.45) && ((iitog - ((int)iitog)) <= (decimal)0.95))
                                     iitog = ((int)iitog) + (decimal)0.5;
                                 else if ((iitog - ((int)iitog)) > (decimal)0.95)
                                     iitog = ((int)iitog) + 1;
                                 break;
                             }
                         case 3:
                             {
                                 if (((iitog - ((int)iitog)) <= (decimal)0.15) && ((iitog - ((int)iitog)) > 0))
                                     iitog = (int)iitog;
                                 else if (((iitog - ((int)iitog)) > (decimal)0.15) && ((iitog - ((int)iitog)) <= (decimal)0.65))
                                     iitog = ((int)iitog) + (decimal)0.5;
                                 else if ((iitog - ((int)iitog)) > (decimal)0.65)
                                     iitog = ((int)iitog) + 1;
                                 break;
                             }
                         case 4:
                             {
                                 if (((iitog - ((int)iitog)) <= (decimal)0.49) && ((iitog - ((int)iitog)) > 0))
                                     iitog = (int)iitog;
                                 else if ((iitog - ((int)iitog)) > (decimal)0.49)
                                     iitog = ((int)iitog) + 1;
                                 break;
                             }
                         case 5:
                             {
                                 if (((iitog - ((int)iitog)) <= (decimal)0.5) && ((iitog - ((int)iitog)) > 0))
                                     iitog = ((int)iitog) + (decimal)0.5;
                                 else if ((iitog - ((int)iitog)) > (decimal)0.5)
                                     iitog = ((int)iitog) + 1;
                                 break;
                             }
                     }
                     rep.Fields["Itogo"].Text = iitog.ToString().Replace(",", ".");
                     decimal p = prnOrder.FinalPayment + prnOrder.AdvancedPayment;
                     rep.Fields["Payment"].Text = p.ToString().Replace(",", ".");
                     rep.Fields["EndPayment"].Text = (iitog - p).ToString().Replace(",", ".");
                     if (prop.CheckPreview)
                     {
                         PrintPreviewDialog pd = new PrintPreviewDialog();
                         pd.ClientSize = new Size(465, 680);
                         pd.StartPosition = FormStartPosition.CenterScreen;
                         pd.PrintPreviewControl.Zoom = 1.5;
                         pd.Document = rep.Document;
                         pd.ShowDialog();
                     }
                     else
                     {
                         rep.Document.Print();
                     }
                 }
                 else
                 {
                     MessageBox.Show("Не выбран файл шаблонов отчетов", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 }
             }
             catch (Exception ex)
             {
                 ErrorNfo.WriteErrorInfo(ex);
                 MessageBox.Show("Ошибка вывода чека\n" + ex.Message + "\n" + ex.Source + "\n" + ex.StackTrace, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
     }
 }
Beispiel #5
0
        public bool IsSame(OrderInfo order)
        {
            bool rezult = true;
            try
            {
                if (this.Distanation != order.Distanation)
                    rezult = false;
                else if (this.Orderno != order.Orderno)
                    rezult = false;
                else if (this.Timeout.ToString() != order.Timeout.ToString())
                    rezult = false;
                else if (this.OrderBody.Rows.Count != order.OrderBody.Rows.Count)
                    rezult = false;
                else if (this.OrderBody.Columns.Count != order.OrderBody.Columns.Count)
                    rezult = false;
                else if (this.FinalPayment != order.FinalPayment)
                    rezult = false;
                else if (this.Bonus != order.Bonus)
                    rezult = false;

                if(rezult)
                {
                    for(int i = 0; (i < this.OrderBody.Columns.Count || !rezult); i++)
                    {
                        for (int j = 0; (j < this.OrderBody.Rows.Count || !rezult); j++)
                        {
                            if(this.OrderBody.Rows[j][i].ToString() != order.OrderBody.Rows[j][i].ToString())
                                rezult = false;
                        }
                    }
                }

                if(rezult)
                {
                    if ((this.Discont != null) && (order.Discont != null))
                    {
                        if (this.Discont.Bonus != order.Discont.Bonus)
                            rezult = false;
                        else if (this.Discont.Discserv != order.Discont.Discserv)
                            rezult = false;
                        else if (this.Discont.Name_dcard != order.Discont.Name_dcard)
                            rezult = false;
                        else if (this.Discont.Id_dcard != order.Discont.Id_dcard)
                            rezult = false;
                    }
                    else if ((this.Discont != null) && (order.Discont == null))
                        rezult = false;
                    else if ((this.Discont == null) && (order.Discont != null))
                        rezult = false;
                }
            }
            catch (Exception)
            {
                rezult = false;
            }
            return rezult;
        }
Beispiel #6
0
        private void ReBild()
        {
            // Если заполняем из новой
            if (this.NewOrder)
            {
                // Если объект передан из визарда
                if (this.order != null)
                {
                    //Номер
                    lblOrderNo.Text = order.Orderno;
                    // дата поступления заказа
                    lblDateOrderInput.Text = order.Datein + " " + order.Timein;
                    // дата выдачи заказа
                    txtOrderDateOutput.Value = DateTime.Parse(order.Dateout);

                    double seltime = DateTime.Parse(order.Dateout.ToString()).Hour;

                    double t = prop.Time_begin_work;
                    while (t <= double.Parse(prop.Time_end_work.ToString()))
                    {
                        if (t.ToString().LastIndexOf(",5") > 0)
                        {
                            txtOrderTimeOutput.Items.Add(t.ToString().Replace(",5", "") + ":30");
                            if (seltime == t)
                                txtOrderTimeOutput.Text = t.ToString().Replace(",5", "") + ":30";
                        }
                        else
                        {
                            txtOrderTimeOutput.Items.Add(t.ToString() + ":00");
                            if (seltime == t)
                                txtOrderTimeOutput.Text = t.ToString() + ":00";
                        }
                    t += 0.5;
                    }

                    txtOrderTimeOutput.Text = order.Timeout;
                    // Клиент
                    if (this.order.Client != null)
                    {
                        lblClientName.Text = order.Client.Name;
                    }
                    else
                    {
                        lblClientName.Text = "";
                    }

                    //скидка
                    if (order.Discont != null)
                        lblOrderDiscont.Text = order.Discont.Discserv.ToString() + "%";
                    // предоплата
                    lblOrderAdvancedPayment.Text = order.AdvancedPayment.ToString();
                    // обрезка
                    switch (order.Crop)
                    {
                        case 1:
                            {
                                radioCrop1.Checked = true;
                                radioCrop2.Checked = false;
                                radioCrop3.Checked = false;
                                break;
                            }
                        case 2:
                            {
                                radioCrop2.Checked = true;
                                radioCrop1.Checked = false;
                                radioCrop3.Checked = false;
                                break;
                            }
                        case 3:
                            {
                                radioCrop3.Checked = true;
                                radioCrop1.Checked = false;
                                radioCrop2.Checked = false;
                                break;
                            }
                    }
                    //формат бумаги
                    switch (order.Type)
                    {
                        case 1:
                            {
                                radioPapperType1.Checked = true;
                                radioPapperType2.Checked = false;
                                break;
                            }
                        case 2:
                            {
                                radioPapperType2.Checked = true;
                                radioPapperType1.Checked = false;
                                break;
                            }
                    }
                    //загружаем таблицу
                    if (order.OrderBody != null)
                    {
                        tblPrintOrder = order.OrderBody;
                        gridFormats.Rows.Count = 1;
                        for (int i = 0; i < tblPrintOrder.Rows.Count; i++)
                        {
                            object[] r = new object[9];
                            r[0] = tblPrintOrder.Rows[i][0];
                            r[1] = tblPrintOrder.Rows[i][1];
                            r[2] = tblPrintOrder.Rows[i][2];
                            r[3] = tblPrintOrder.Rows[i][3];
                            r[4] = tblPrintOrder.Rows[i][4];
                            gridFormats.AddItem("\t" + r[0] + "\t" + r[1] + "\t" + r[2] + "\t" + r[3] + "\t" + r[4]);
                        }
                        UpdateFormatTable();
                    }

                }
                else
                {
                    order = new OrderInfo(db_connection);
                    this.order.Orderno = num.NewOrderNum(db_connection, usr);
                    //Номер
                    lblOrderNo.Text = order.Orderno;
                    // дата поступления заказа
                    order.Datein = DateTime.Now.ToShortDateString();
                    order.Timein = DateTime.Now.ToShortTimeString();
                    lblDateOrderInput.Text = order.Datein + " " + order.Timein;
                    // дата выдачи заказа

                    txtOrderDateOutput.Value = DateTime.Now;
                    if (DateTime.Now.AddHours(prop.Time_for_output).Hour > prop.Time_end_work)
                        txtOrderDateOutput.Value = DateTime.Now.AddDays(1);
                    else
                        txtOrderDateOutput.Value = DateTime.Now.AddHours(prop.Time_for_output);

                    double seltime = txtOrderDateOutput.Value.Hour;
                    if ((txtOrderDateOutput.Value.Minute > 15) && (txtOrderDateOutput.Value.Minute < 30))
                        seltime += 0.5;
                    if (txtOrderDateOutput.Value.Minute > 30)
                        seltime += 1;
                    if (seltime < prop.Time_begin_work)
                        seltime = prop.Time_begin_work;
                    if (seltime > prop.Time_end_work)
                        seltime = prop.Time_begin_work;

                    double t = prop.Time_begin_work;
                    while (t <= double.Parse(prop.Time_end_work.ToString()))
                    {
                        if (t.ToString().Replace(".", ",").LastIndexOf(",5") > 0)
                        {
                            txtOrderTimeOutput.Items.Add(t.ToString().Replace(".", ",").Replace(",5", "") + ":30");
                            if (seltime == t)
                                txtOrderTimeOutput.Text = t.ToString().Replace(".", ",").Replace(",5", "") + ":30";
                        }
                        else
                        {
                            txtOrderTimeOutput.Items.Add(t.ToString() + ":00");
                            if (seltime == t)
                                txtOrderTimeOutput.Text = t.ToString() + ":00";
                        }

                        t += 0.5;
                    }
                    order.Timeout = txtOrderTimeOutput.Text;

                    // Клиент
                    if (this.order.Client != null)
                    {
                        lblClientName.Text = order.Client.Name;
                    }
                    else
                    {
                        lblClientName.Text = "";
                    }
                    //скидка
                    if (order.Discont != null)
                        lblOrderDiscont.Text = order.Discont.Discserv.ToString() + "%";
                    // предоплата
                    lblOrderAdvancedPayment.Text = order.AdvancedPayment.ToString();
                    // обрезка
                    radioCrop1.Checked = false;
                    radioCrop2.Checked = false;
                    radioCrop3.Checked = false;
                    //формат бумаги
                    radioPapperType1.Checked = false;
                    radioPapperType2.Checked = false;
                    ReBildFormatTable();
                }
                tmr.Start();
            }
        }
Beispiel #7
0
        public frmOrderCloseRO(SqlConnection db_connection, UserInfo usr, int id_order)
        {
            InitializeComponent();

            __s.Add("000100", "В очереди на печать");
            __s.Add("000200", "В очереди на обработку");
            __s.Add("000110", "В процессе печати");
            __s.Add("000000", "На выдаче");
            __s.Add("000210", "В процессе обработки");
            __s.Add("000010", "На предпросмотре");
            __s.Add("100000", "Выдано");
            __s.Add("010000", "Отменено");
            __s.Add("000001", "В ожидании оплаты");
            __s.Add("200000", "Выдано (не оплачено)");
            __s.Add("300000", "Утерян");
            __s.Add("000111", "Готов после печати");
            __s.Add("000211", "Готов после обработки");
            __s.Add("000212", "Готов после обработки, предпросмотр");
            __s.Add("400000", "Списан");

            this.db_connection = db_connection;
            this.usr = usr;
            order = new OrderInfo(db_connection, id_order);
            this.Text = "Работа с заказом";

            LoadStatus("");

            // номер
            lblOrderNo.Text = order.Orderno;
            // дата поступления заказа
            lblDateOrderInput.Text = order.Datein + " " + order.Timein;
            // дата выдачи заказа
            txtOrderDateOutput.Value = DateTime.Parse(order.Dateout);

            double t = prop.Time_begin_work;
            while (t <= double.Parse(prop.Time_end_work.ToString()))
            {
                if (t.ToString().LastIndexOf(",5") > 0)
                {
                    txtOrderTimeOutput.Items.Add(t.ToString().Replace(",5", "") + ":30");
                    if (order.Timeout == t.ToString().Replace(",5", "") + ":30")
                        txtOrderTimeOutput.Text = t.ToString().Replace(",5", "") + ":30";
                }
                else
                {
                    txtOrderTimeOutput.Items.Add(t.ToString() + ":00");
                    if (order.Timeout == t.ToString() + ":00")
                        txtOrderTimeOutput.Text = t.ToString() + ":00";
                }
                t += 0.5;
            }
            // клиент
            lblClientName.Text = order.Client.Name;
            switch (order.Crop)
            {
                case 1:
                    {
                        radioCrop1.Checked = true;
                        radioCrop2.Checked = false;
                        radioCrop3.Checked = false;
                        break;
                    }
                case 2:
                    {
                        radioCrop2.Checked = true;
                        radioCrop1.Checked = false;
                        radioCrop3.Checked = false;
                        break;
                    }
                case 3:
                    {
                        radioCrop3.Checked = true;
                        radioCrop1.Checked = false;
                        radioCrop2.Checked = false;
                        break;
                    }
            }
            //формат бумаги
            switch (order.Type)
            {
                case 1:
                    {
                        radioPapperType1.Checked = true;
                        radioPapperType2.Checked = false;
                        break;
                    }
                case 2:
                    {
                        radioPapperType2.Checked = true;
                        radioPapperType1.Checked = false;
                        break;
                    }
            }
            //скидка
            if (order.Discont != null)
            {
                lblOrderDiscont.Text = order.Discont.Discserv + "%";
                if (order.Discont.Code_dcard.Trim() != "")
                {
                    newdcard = false;
                }
                else
                {
                    newdcard = true;
                }
            }
            // предоплата
            lblOrderAdvancedPayment.Text = order.AdvancedPayment.ToString();

            //коментрарий
            txtComment.Text = order.Comment;

            if (order.Preview == 1)
                checkPreview.Checked = true;
            else
                checkPreview.Checked = false;

            tmr.Interval = prop.UpdateOrderTableInAcceptance*1000;
            tmr.Start();
        }
Beispiel #8
0
 private void btnPrintCheck_Click(object sender, EventArgs e)
 {
     // Печатаем чек
     OrderInfo prnOrder = new OrderInfo(db_connection, lblOrderNo.Text.Trim(), true);
     try
     {
         if (prop.PathReportsTemplates != "")
         {
             rep.Load(prop.PathReportsTemplates, "Check");
             rep.DataSource.Recordset = prnOrder.OrderBody;
             decimal itog = 0;
             decimal iitog = 0;
             for (int i = 0; i < prnOrder.OrderBody.Rows.Count; i++)
             {
                 itog += decimal.Parse(prnOrder.OrderBody.Rows[i]["price"].ToString())*
                         (decimal.Parse(prnOrder.OrderBody.Rows[i]["quantity"].ToString()) - decimal.Parse(prnOrder.OrderBody.Rows[i]["defect_quantity"].ToString()));
             }
             rep.Fields["Total"].Text = itog.ToString().Replace(",", ".");
             rep.Fields["BarCode"].Text = prnOrder.Orderno.Trim();
             rep.Fields["OrderNo"].Text = prnOrder.Orderno.Trim();
             rep.Fields["DateOut"].Text = prnOrder.Dateout + " " + prnOrder.Timeout;
             rep.Fields["Client"].Text = prnOrder.Client.Name.Trim();
             rep.Fields["AddonInfo"].Text = prop.ReklamBlock1;
             rep.Fields["Priemka"].Text = "Заказ принят: " + prnOrder.Datein + " " + prnOrder.Timein + "\nЗаказ принял: " + prnOrder.Name_accept;
             string tp = "";
             switch(prnOrder.Crop)
             {
                 case 1:
                     {
                         tp = "Обрезать под формат; ";
                         break;
                     }
                 case 2:
                     {
                         tp = "Сохранить пропорции; ";
                         break;
                     }
                 case 3:
                     {
                         tp = "Реальный размер; ";
                         break;
                     }
             }
             if (prnOrder.Type == 1) tp += "Глянцевая бумага;";
             if (prnOrder.Type == 2) tp += "Матовая бумага;";
             rep.Fields["TypePaper"].Text = tp;
             if (prnOrder.Discont != null)
             {
                 rep.Fields["Discont"].Text = prnOrder.Discont.Discserv.ToString().Replace(",", ".");
                 iitog = itog - ((itog*prnOrder.Discont.Discserv)/100);
             }
             else
             {
                 rep.Fields["Discont"].Text = "0";
                 iitog = itog;
             }
             rep.Fields["Itogo"].Text = prop.DoRound(iitog).ToString().Replace(",", ".");
             decimal p = prnOrder.FinalPayment + prnOrder.AdvancedPayment;
             rep.Fields["Payment"].Text = p.ToString().Replace(",", ".");
             rep.Fields["EndPayment"].Text = (prop.DoRound(iitog) - p).ToString().Replace(",", ".");
             if (prop.CheckPreview)
             {
                 PrintPreviewDialog pd = new PrintPreviewDialog();
                 pd.ClientSize = new Size(465, 680);
                 pd.StartPosition = FormStartPosition.CenterScreen;
                 pd.PrintPreviewControl.Zoom = 1.5;
                 pd.Document = rep.Document;
                 pd.ShowDialog();
             }
             else
             {
                 for (int j = 0; j < prop.CheckCount; j++)
                 {
                     rep.Document.Print();
                 }
             }
         }
         else
         {
             MessageBox.Show("Не выбран файл шаблонов отчетов", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
     catch (Exception ex)
     {
         ErrorNfo.WriteErrorInfo(ex);
         MessageBox.Show("Ошибка вывода чека\n" + ex.Message + "\n" + ex.Source + "\n" + ex.StackTrace, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Beispiel #9
0
        private void SaveOrder(bool UseAdvPayment)
        {
            tmr.Stop();
            order.Dateout = txtOrderDateOutput.Value.ToShortDateString() + " " + txtOrderTimeOutput.Text;
            order.Timeout = txtOrderTimeOutput.Text;
            order.PType = int.Parse(txtPType.SelectedValue.ToString());
            order.Konvert = ((checkKonvert.Checked) ? 1 : 0);
            try
            {
                if (((order.Distanation.Trim() == "100000") || (order.Distanation.Trim() == "200000")) && (int.Parse(txtPType.SelectedValue.ToString()) == -1))
                {
                    MessageBox.Show("Перед выдачей заказа необходимо указать тип оплаты!", "Закрытие заказа", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    txtPType.Focus();
                }
                else
                {

                    OrderInfo etalon_order2 = new OrderInfo(db_connection, etalon_order.Id);
                    if (etalon_order.IsSame(etalon_order2))
                    {
                        bool ok = true;
                        int vozvrat = 0;
                        if ((sum_vozvrat <= (-1)) && (order.Distanation.Trim() == "100000"))
                        {
                            ok = false;
                            bool _tmp = false;
                            while (!_tmp)
                            {
                                if (MessageBox.Show(
                                        "Внимание! Необходимо сделать возврат на сумму " +
                                        (decimal.Round(sum_vozvrat, 2) * (-1)).ToString() + "р.\nПровести возврат?",
                                        "Возврат", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                                {
                                    frmQueryStorno fstorno = new frmQueryStorno();
                                    fstorno.Title = "Вариант возврата";
                                    if (order.Discont != null)
                                        fstorno.infoBonus = order.Bonus;
                                    else
                                        fstorno.infoBonus = 0;
                                    fstorno.infoMoney = order.AdvancedPayment + order.FinalPayment;
                                    fstorno.infoSum = sum_vozvrat * (-1);
                                    fstorno.goods = false;
                                    for (int i = 1; i < order.OrderBody.Rows.Count; i++)
                                    {
                                        if (CanPayBonus(order.OrderBody.Rows[i][2].ToString().Trim()))
                                        {
                                            fstorno.goods = true;
                                            break;
                                        }
                                    }
                                    if (order.Discont != null)
                                    {
                                        if (((order.Discont.BonusType.ToUpper().Trim().IndexOf('G') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('H') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('I') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('J') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('K') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('L') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('M') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('N') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('O') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('P') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('Q') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('R') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('S') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('T') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('U') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('V') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('W') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('X') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('Y') > -1) || (order.Discont.BonusType.ToUpper().Trim().IndexOf('Z') > -1)))
                                            fstorno.discont = false;
                                        else
                                            fstorno.discont = true;
                                    }
                                    else
                                    {
                                        fstorno.discont = true;
                                    }
                                    fstorno.ShowDialog();
                                    if (fstorno.DialogResult == DialogResult.OK)
                                    {
                                        vozvrat = fstorno.type;
                                        ok = true;
                                        _tmp = true;
                                    }
                                    else
                                    {
                                        _tmp = false;
                                    }
                                }
                                else
                                {
                                    _tmp = true;
                                }
                            }
                        }
                        if (order.Discont != null)
                        {
                            if ((order.Bonus != 0) && (order.Discont.Id_dcard != 777777777))
                            {
                                ok = false;
                                try
                                {
                                    string key = DateTime.Now.Year.ToString("D4") +
                                                DateTime.Now.Month.ToString("D2") +
                                                DateTime.Now.Day.ToString("D2") +
                                                DateTime.Now.Hour.ToString("D2") +
                                                DateTime.Now.Minute.ToString("D2") +
                                                DateTime.Now.Second.ToString("D2") +
                                                DateTime.Now.Millisecond.ToString("D2");
                                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://" + prop.DiscontServerAddress + "/card.get.php?code=" + order.Discont.Code_dcard + "&key=" + key + "&format=csv");
                                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                                    Stream resStream = response.GetResponseStream();
                                    byte[] buf = new byte[255];
                                    if (resStream.Read(buf, 0, 255) > 0)
                                    {
                                        ok = true;
                                    }
                                    else
                                    {
                                        ok = false;
                                        MessageBox.Show("Списание бонусов не возможно т.к. нет связи с сервером!", "Ошибка списания бонусов", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                }
                                catch
                                {
                                    ok = false;
                                    MessageBox.Show("Списание бонусов не возможно т.к. нет связи с сервером!", "Ошибка списания бонусов", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                            }

                        }

                        if (ok)
                        {
                            if (!order.UpdateOrder(usr, AddedFinalPayment, UseAdvPayment, false))
                            {
                                MessageBox.Show("При сохранении заказа произошла ошибка!\n" + order.Err, "Ошибка",
                                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                            else
                            {
                                if ((order.Orderno.Substring(0, 1) == prop.Order_terminal_prefics.Substring(0, 1)) && ((order.Distanation.Trim() == "100000") || (order.Distanation.Trim() == "200000")))
                                {
                                    try
                                    {
                                        using (SqlConnection cn_tmp = new SqlConnection(prop.Connection_string))
                                        {
                                            cn_tmp.Open();
                                            SqlCommand cmd_tmp = new SqlCommand("INSERT INTO [dbo].[kiosk_orders_ok] ([number], [status], [exported]) VALUES ('" + order.Orderno + "', 2, 0)", cn_tmp);
                                            cmd_tmp.ExecuteNonQuery();
                                        }
                                    }
                                    catch
                                    {
                                    }
                                }
                                if (order.Discont != null)
                                {
                                    if ((order.Discont.Id_dcard != 777777777) & (order.Bonus != 0))
                                    {
                                        try
                                        {
                                            string key = DateTime.Now.Year.ToString("D4") +
                                                        DateTime.Now.Month.ToString("D2") +
                                                        DateTime.Now.Day.ToString("D2") +
                                                        DateTime.Now.Hour.ToString("D2") +
                                                        DateTime.Now.Minute.ToString("D2") +
                                                        DateTime.Now.Second.ToString("D2") +
                                                        DateTime.Now.Millisecond.ToString("D2");
                                            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://" + prop.DiscontServerAddress + "/card.action.php?code=" + order.Discont.Code_dcard + "&key=" + key + "&order=" + order.Orderno.Trim() + "&dep=" + prop.Order_prefics + "&action=add&bonus=-" + order.Bonus.ToString().Replace(",", "."));
                                            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                                            Stream resStream = response.GetResponseStream();
                                            byte[] buf = new byte[255];
                                            if (resStream.Read(buf, 0, 255) > 0)
                                            {
                                                if (Encoding.ASCII.GetString(buf).ToLower().Trim('\0') == "OK. Confirm, please.".ToLower())
                                                {
                                                    AddEvent("Бонусы зарезервированы для списания");
                                                    request = (HttpWebRequest)WebRequest.Create("http://" + prop.DiscontServerAddress + "/card.action.php?code=" + order.Discont.Code_dcard + "&key=" + key + "&order=" + order.Orderno.Trim() + "&dep=" + prop.Order_prefics + "&action=confirm&bonus=-" + order.Bonus.ToString().Replace(",", "."));
                                                    response = (HttpWebResponse)request.GetResponse();
                                                    resStream = response.GetResponseStream();
                                                    buf = new byte[255];
                                                    resStream.Read(buf, 0, 255);
                                                    if (Encoding.ASCII.GetString(buf).ToLower().Trim('\0') == "OK.".ToLower())
                                                    {
                                                        AddEvent("Потверждено списание с карты " + order.Discont.Code_dcard + " " + order.Bonus.ToString()+ " бонусов");
                                                    }
                                                    else
                                                    {
                                                        AddEvent("Не удалось списать бонусы, повторная попытка");
                                                        key = DateTime.Now.Year.ToString("D4") +
                                                                DateTime.Now.Month.ToString("D2") +
                                                                DateTime.Now.Day.ToString("D2") +
                                                                DateTime.Now.Hour.ToString("D2") +
                                                                DateTime.Now.Minute.ToString("D2") +
                                                                DateTime.Now.Second.ToString("D2") +
                                                                DateTime.Now.Millisecond.ToString("D2");
                                                        request = (HttpWebRequest)WebRequest.Create("http://" + prop.DiscontServerAddress + "/card.action.php?code=" + order.Discont.Code_dcard + "&key=" + key + "&order=" + order.Orderno.Trim() + "&dep=" + prop.Order_prefics + "&action=add&bonus=-" + order.Bonus.ToString().Replace(",", "."));
                                                        response = (HttpWebResponse)request.GetResponse();
                                                        resStream = response.GetResponseStream();
                                                        buf = new byte[255];
                                                        if (resStream.Read(buf, 0, 255) > 0)
                                                        {
                                                            if (Encoding.ASCII.GetString(buf).ToLower().Trim('\0') == "OK. Confirm, please.".ToLower())
                                                            {
                                                                AddEvent("Бонусы зарезервированы для списания");
                                                                request = (HttpWebRequest)WebRequest.Create("http://" + prop.DiscontServerAddress + "/card.action.php?code=" + order.Discont.Code_dcard + "&key=" + key + "&order=" + order.Orderno.Trim() + "&dep=" + prop.Order_prefics + "&action=confirm&bonus=-" + order.Bonus.ToString().Replace(",", "."));
                                                                response = (HttpWebResponse)request.GetResponse();
                                                                resStream = response.GetResponseStream();
                                                                buf = new byte[255];
                                                                if (resStream.Read(buf, 0, 255) > 0)
                                                                {
                                                                    if (Encoding.ASCII.GetString(buf).ToLower().Trim('\0') == "OK.".ToLower())
                                                                    {
                                                                        AddEvent("Потверждено списание с карты " + order.Discont.Code_dcard + " " + order.Bonus.ToString() + " бонусов");
                                                                    }
                                                                    else
                                                                    {
                                                                        AddEvent("Не удалось списать бонусы.");
                                                                    }
                                                                }
                                                            }
                                                            else
                                                            {
                                                                switch (Encoding.ASCII.GetString(buf))
                                                                {
                                                                    case "Not enough bonuses.":
                                                                        {
                                                                            AddEvent("При списании бонусов сервер вернул - Not enough bonuses.");
                                                                            break;
                                                                        }
                                                                    case "Card not found.":
                                                                        {
                                                                            AddEvent("При списании бонусов сервер вернул - Card not found.");
                                                                            break;
                                                                        }
                                                                    case "Action not found.":
                                                                        {
                                                                            AddEvent("При списании бонусов сервер вернул - Action not found.");
                                                                            break;
                                                                        }
                                                                    default:
                                                                        {
                                                                            AddEvent("При списании бонусов сервер вернул - " + Encoding.ASCII.GetString(buf));
                                                                            break;
                                                                        }
                                                                }
                                                            }
                                                        }
                                                        else
                                                        {
                                                            ok = false;
                                                            MessageBox.Show("Списание бонусов не возможно т.к. нет связи с сервером!", "Ошибка списания бонусов", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    switch(Encoding.ASCII.GetString(buf))
                                                    {
                                                        case "Not enough bonuses.":
                                                            {
                                                                AddEvent("При списании бонусов сервер вернул - Not enough bonuses.");
                                                                break;
                                                            }
                                                        case "Card not found.":
                                                            {
                                                                AddEvent("При списании бонусов сервер вернул - Card not found.");
                                                                break;
                                                            }
                                                        case "Action not found.":
                                                            {
                                                                AddEvent("При списании бонусов сервер вернул - Action not found.");
                                                                break;
                                                            }
                                                        default:
                                                            {
                                                                AddEvent("При списании бонусов сервер вернул - " + Encoding.ASCII.GetString(buf));
                                                                break;
                                                            }
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                ok = false;
                                                MessageBox.Show("Списание бонусов не возможно т.к. нет связи с сервером!", "Ошибка списания бонусов", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                            }
                                        }
                                        catch
                                        {
                                            ok = false;
                                            MessageBox.Show("Списание бонусов не возможно т.к. нет связи с сервером!", "Ошибка списания бонусов", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                        }
                                    }
                                }
                                AddEvent("Сохранены изменения в заказе (на приемке)");
                                if (AddedFinalPayment)
                                    AddEvent("Внесена оплата за заказ " + order.FinalPayment.ToString().Replace(",", "."));
                                if ((sum_vozvrat <= (-1)) && (order.Distanation.Trim() == "100000"))
                                {
                                    // нет больше новых строчек
                                    for (int i = 1; i < order.OrderBody.Rows.Count; i++)
                                    {
                                        order.OrderBody.Rows[i][10] = true;
                                    }

                                    if (vozvrat == 1)
                                    {
                                        if ((order.Bonus + sum_vozvrat) < 0)
                                        {
                                            AddEvent("Сделан возврат бонусов на сумму " +
                                                         decimal.Round(order.Bonus, 2).ToString().Replace(",", "."));
                                        }
                                        else
                                        {
                                            AddEvent("Сделан возврат бонусов на сумму " +
                                                         decimal.Round(sum_vozvrat, 2).ToString().Replace(",", "."));
                                        }
                                        // списание с карты, потом наличные
                                        order.Bonus += sum_vozvrat;
                                        if (!order.UpdateOrder(usr, false, false, false))
                                        {
                                            MessageBox.Show("При сохранении возврата бонусов прозошла ошибка!\n" + order.Err, "Ошибка",
                                                            MessageBoxButtons.OK, MessageBoxIcon.Error);
                                        }

                                        if (order.Bonus < 0)
                                        {
                                            // бонусов не хватило для возврата;
                                            SqlCommand cmd_dc =
                                                new SqlCommand(
                                                    "INSERT INTO [dbo].[payments] ([date], [time], [id_user], [name_user], [number], [payment], [type], [comment], [payment_way], [exported]) VALUES (getdate(), '" + DateTime.Now.ToShortTimeString() + "', " + usr.Id_user + ", '" + usr.Name.Trim() + "', '" + order.Orderno + "', " + decimal.Round(order.Bonus, 2).ToString().Replace(",", ".") + ", 1, 'Автоматический возврат средств', 1, 0); UPDATE [dbo].[order] SET [final_payment] = [final_payment] + " + decimal.Round(order.Bonus, 2).ToString().Replace(",", ".") + " WHERE [id_order] = " + order.Id.ToString(),
                                                    db_connection);
                                            try
                                            {
                                                cmd_dc.CommandTimeout = 9000;
                                                cmd_dc.ExecuteNonQuery();
                                                AddEvent("Сделан возврат на сумму " +
                                                         decimal.Round(order.Bonus, 2).ToString().Replace(",", "."));
                                                order.FinalPayment += order.Bonus;
                                                order.Bonus = 0;
                                                if (!order.UpdateOrder(usr, false, false, false))
                                                {
                                                    MessageBox.Show("При закрытии возвратов произошла ошибка!\n" + order.Err, "Ошибка",
                                                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                }
                                                else
                                                {
                                                }
                                            }
                                            catch
                                            {
                                                MessageBox.Show(
                                                    "Ошибка при сохрании возврата, необходимо вручную провести сумму " +
                                                    decimal.Round(order.Bonus, 2).ToString(), "Ошибка сохранения возврата",
                                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                                            }

                                        }

                                    }
                                    if (vozvrat == 2)
                                    {
                                        if (((order.AdvancedPayment + order.FinalPayment) + sum_vozvrat) < 0)
                                        {
                                            SqlCommand cmd_dc =
                                                new SqlCommand(
                                                    "INSERT INTO [dbo].[payments] ([date], [time], [id_user], [name_user], [number], [payment], [type], [comment], [payment_way], [exported]) VALUES (getdate(), '" + DateTime.Now.ToShortTimeString() + "', " + usr.Id_user + ", '" + usr.Name.Trim() + "', '" + order.Orderno + "', " + decimal.Round((order.AdvancedPayment + order.FinalPayment) * (-1), 2).ToString().Replace(",", ".") + ", 1, 'Автоматический возврат средств', 1, 0); UPDATE [dbo].[order] SET [final_payment] = [final_payment] + " + decimal.Round((order.AdvancedPayment + order.FinalPayment) * (-1), 2).ToString().Replace(",", ".") + " WHERE [id_order] = " + order.Id.ToString(),
                                                    db_connection);
                                            try
                                            {
                                                cmd_dc.CommandTimeout = 9000;
                                                cmd_dc.ExecuteNonQuery();
                                                AddEvent("Сделан возврат на сумму " +
                                                         decimal.Round((order.AdvancedPayment + order.FinalPayment) * (-1), 2).ToString().Replace(",", "."));
                                                sum_vozvrat += (order.AdvancedPayment + order.FinalPayment);
                                                order.FinalPayment -= (order.AdvancedPayment + order.FinalPayment);
                                                if (!order.UpdateOrder(usr, false, false, false))
                                                {
                                                    MessageBox.Show("При закрытии возвратов произошла ошибка!\n" + order.Err, "Ошибка",
                                                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                }
                                            }
                                            catch
                                            {
                                                MessageBox.Show(
                                                    "Ошибка при сохрании возврата, необходимо вручную провести сумму " +
                                                    decimal.Round((order.AdvancedPayment + order.FinalPayment) * (-1), 2).ToString(), "Ошибка сохранения возврата",
                                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                                            }

                                        }
                                        else
                                        {
                                            SqlCommand cmd_dc =
                                                new SqlCommand(
                                                    "INSERT INTO [dbo].[payments] ([date], [time], [id_user], [name_user], [number], [payment], [type], [comment], [payment_way], [exported]) VALUES (getdate(), '" + DateTime.Now.ToShortTimeString() + "', " + usr.Id_user + ", '" + usr.Name.Trim() + "', '" + order.Orderno + "', " + decimal.Round(sum_vozvrat, 2).ToString().Replace(",", ".") + ", 1, 'Автоматический возврат средств', 1, 0); UPDATE [dbo].[order] SET [final_payment] = [final_payment] + " + decimal.Round(sum_vozvrat, 2).ToString().Replace(",", ".") + " WHERE [id_order] = " + order.Id.ToString(),
                                                    db_connection);
                                            try
                                            {
                                                cmd_dc.CommandTimeout = 9000;
                                                cmd_dc.ExecuteNonQuery();
                                                AddEvent("Сделан возврат на сумму " +
                                                         decimal.Round(sum_vozvrat, 2).ToString().Replace(",", "."));
                                                order.FinalPayment += sum_vozvrat;
                                                sum_vozvrat = 0;
                                                if (!order.UpdateOrder(usr, false, false, false))
                                                {
                                                    MessageBox.Show("При закрытии возвратов произошла ошибка!\n" + order.Err, "Ошибка",
                                                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                }
                                            }
                                            catch
                                            {
                                                MessageBox.Show(
                                                    "Ошибка при сохрании возврата, необходимо вручную провести сумму " +
                                                    decimal.Round(sum_vozvrat, 2).ToString(), "Ошибка сохранения возврата",
                                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                                            }
                                        }

                                        if (sum_vozvrat < 0)
                                        {
                                            // бонусов не хватило для возврата;

                                            AddEvent("Сделан возврат бонусов на сумму " +
                                                         decimal.Round(sum_vozvrat, 2).ToString().Replace(",", "."));

                                            order.Bonus += sum_vozvrat;
                                            if (!order.UpdateOrder(usr, false, false, false))
                                            {
                                                MessageBox.Show("При сохранении возврата бонусов прозошла ошибка!\n" + order.Err, "Ошибка",
                                                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                                            }

                                        }

                                    }
                                    /*
                                    cmd_dc =
                                        new SqlCommand(
                                            "INSERT INTO [dbo].[payments] ([date], [time], [id_user], [name_user], [number], [payment], [type], [comment], [payment_way], [exported]) VALUES (getdate(), '" + DateTime.Now.ToShortTimeString() + "', " + usr.Id_user + ", '" + usr.Name.Trim() + "', '" + order.Orderno + "', " + decimal.Round(sum_vozvrat, 2).ToString().Replace(",", ".") + ", 1, 'Автоматический возврат средств', 1, 0); UPDATE [dbo].[order] SET [final_payment] = [final_payment] + " + decimal.Round(sum_vozvrat, 2).ToString().Replace(",", ".") + " WHERE [id_order] = " + order.Id.ToString(),
                                            db_connection);
                                    try
                                    {
                                        cmd_dc.ExecuteNonQuery();
                                        AddEvent("Сделан возврат на сумму " +
                                                 decimal.Round(sum_vozvrat, 2).ToString().Replace(",", "."));
                                    }
                                    catch
                                    {
                                        MessageBox.Show(
                                            "Ошибка при сохрании возврата, необходимо вручную провести сумму " +
                                            (decimal.Round(sum_vozvrat, 2)).ToString(), "Ошибка сохранения возврата",
                                            MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                     */
                                }

                                // списание бонусов
                                if ((order.Discont.BonusType.Trim() != "Z") && (newdcard))
                                {
                                    SqlCommand cmd_dc =
                                        new SqlCommand(
                                            "UPDATE [dbo].[dcard] SET [bonus] = " +
                                            (order.Discont.Bonus - order.Bonus).ToString().Replace(",", ".") +
                                            " WHERE [code] = '" + order.Discont.Code_dcard.Trim() + "'", db_connection);
                                    try
                                    {
                                        cmd_dc.ExecuteNonQuery();
                                        AddEvent("Списано " + order.Bonus + " бонусов");
                                    }
                                    catch
                                    {
                                    }

                                    cmd_dc =
                                        new SqlCommand(
                                            "DECLARE @C int; SET @C = (SELECT COUNT(*) FROM [dbo].[dcarduse] WHERE [code] = '" +
                                            order.Discont.Code_dcard.Trim() +
                                            "'); IF(@C = 0) BEGIN INSERT INTO [dbo].[dcarduse]([code],[cnt]) VALUES ('" +
                                            order.Discont.Code_dcard.Trim() +
                                            "',1); END ELSE BEGIN DECLARE @CC int; SET @CC = (SELECT COUNT(*) FROM [dbo].[dcarduse] WHERE [code] = '" +
                                            order.Discont.Code_dcard.Trim() + "' AND ((lastdate >= CONVERT(DATETIME, '" +
                                            DateTime.Now.Year.ToString("D4") + "-" + DateTime.Now.Month.ToString("D2") + "-" +
                                            DateTime.Now.Day.ToString("D2") +
                                            " 00:00:00', 102)) AND (lastdate <= CONVERT(DATETIME, '" +
                                            DateTime.Now.Year.ToString("D4") + "-" + DateTime.Now.Month.ToString("D2") + "-" +
                                            DateTime.Now.Day.ToString("D2") +
                                            " 23:59:00', 102)))); IF(@CC = 0) BEGIN UPDATE [dbo].[dcarduse] SET [lastdate] = getdate(),[cnt] = 1 WHERE [code] = '" +
                                            order.Discont.Code_dcard.Trim() +
                                            "'; END ELSE BEGIN UPDATE [dbo].[dcarduse] SET [lastdate] = getdate(),[cnt] = [cnt] + 1 WHERE [code] = '" +
                                            order.Discont.Code_dcard.Trim() + "'; END END", db_connection);
                                    try
                                    {
                                        cmd_dc.ExecuteNonQuery();
                                    }
                                    catch
                                    {
                                    }

                                }
                                this.Close();
                            }
                        }
                    }

                    else
                    {
                        MessageBox.Show("Заказ не может быть сохранен!\nВероятно он уже был кем то изменен.\n" + order.Err, "Ошибка",
                                            MessageBoxButtons.OK, MessageBoxIcon.Error);
                        this.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorNfo.WriteErrorInfo(ex);
                MessageBox.Show("При сохранении заказа произошла ошибка!\n" + ex.Message + "\n" + ex.Source, "Ошибка",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.Close();
            }
        }
Beispiel #10
0
        private void initOrder(int id_order)
        {
            this.order = new OrderInfo(db_connection, id_order);
            etalon_order = new OrderInfo(db_connection, order.Id);
            this.Text = "Работа с заказом";

            try
            {
                if (order.AutoExport != 0)
                {
                    SqlCommand db_command = new SqlCommand("SELECT [name] FROM [place] WHERE [id_place] = " + order.Place.ToString(), db_connection);
                    if (order.AutoExport == -1)
                    {
                        lblAdvStatus.Text = "Заказ отправлен в " + db_command.ExecuteScalar().ToString().Trim();
                        lblAdvStatus.ForeColor = Color.Red;
                    }
                    if (order.AutoExport > 0)
                    {
                        lblAdvStatus.Text = "Заказ отправляется в " + db_command.ExecuteScalar().ToString().Trim();
                        lblAdvStatus.ForeColor = Color.Blue;
                    }
                }
            }
            catch { }

            // номер
            lblOrderNo.Text = order.Orderno;
            // дата поступления заказа
            lblDateOrderInput.Text = order.Datein + " " + order.Timein;
            // дата выдачи заказа
            txtOrderDateOutput.Value = DateTime.Parse(order.Dateout);

            double t = prop.Time_begin_work;
            txtOrderTimeOutput.Items.Clear();
            while (t <= double.Parse(prop.Time_end_work.ToString()))
            {
                if (t.ToString().LastIndexOf(",5") > 0)
                {
                    txtOrderTimeOutput.Items.Add(t.ToString().Replace(",5", "") + ":30");
                    if (order.Timeout == t.ToString().Replace(",5", "") + ":30")
                        txtOrderTimeOutput.Text = t.ToString().Replace(",5", "") + ":30";
                }
                else
                {
                    txtOrderTimeOutput.Items.Add(t.ToString() + ":00");
                    if (order.Timeout == t.ToString() + ":00")
                        txtOrderTimeOutput.Text = t.ToString() + ":00";
                }
                t += 0.5;
            }
            // клиент
            if (order.Client != null)
                lblClientName.Text = order.Client.Name;
            else
                lblClientName.Text = "Клиент не определен";
            switch (order.Crop)
            {
                case 1:
                    {
                        radioCrop1.Checked = true;
                        radioCrop2.Checked = false;
                        radioCrop3.Checked = false;
                        break;
                    }
                case 2:
                    {
                        radioCrop2.Checked = true;
                        radioCrop1.Checked = false;
                        radioCrop3.Checked = false;
                        break;
                    }
                case 3:
                    {
                        radioCrop3.Checked = true;
                        radioCrop1.Checked = false;
                        radioCrop2.Checked = false;
                        break;
                    }
            }
            //формат бумаги
            switch (order.Type)
            {
                case 1:
                    {
                        radioPapperType1.Checked = true;
                        radioPapperType2.Checked = false;
                        break;
                    }
                case 2:
                    {
                        radioPapperType2.Checked = true;
                        radioPapperType1.Checked = false;
                        break;
                    }
            }
            //скидка
            if (order.Discont != null)
            {
                lblOrderDiscont.Text = order.Discont.Discserv + "%";
                if (order.Discont.Code_dcard.Trim() != "")
                {
                    btnDescont.Enabled = false;
                    btnDescont.Visible = false;
                    btnDescontClear.Enabled = false;
                    btnDescontClear.Visible = false;
                    btnBonusAdd.Enabled = false;
                    btnBonusAdd.Visible = false;
                    btnBonusDel.Enabled = false;
                    btnBonusDel.Visible = false;
                    newdcard = false;
                }
                else
                {
                    newdcard = true;
                }
            }
            // предоплата
            lblOrderAdvancedPayment.Text = order.AdvancedPayment.ToString();

            //коментрарий
            txtComment.Text = order.Comment;

            if (order.Preview == 1)
                checkPreview.Checked = true;
            else
                checkPreview.Checked = false;

            if (order.FinalPayment == 0)
                paymentonload = false;
            else
                paymentonload = true;

            if (fixDouble)
            {
                btnDescont.Enabled = false;
                btnDescontClear.Enabled = false;
                btnBonusAdd.Enabled = false;
                btnBonusDel.Enabled = false;
                btnFinalPayment.Enabled = false;
                btnFinalPaymentClear.Enabled = false;
            }

            SqlCommand _ptype_cmd = new SqlCommand();
            _ptype_cmd.Connection = db_connection;
            _ptype_cmd.CommandText = "SELECT * FROM PTYPE WHERE ([DEL] = 0) OR (ID_PTYPE = " + order.PType + ") ORDER BY ID_PTYPE";
            _ptype_cmd.CommandTimeout = 9000;
            SqlDataAdapter _ptype_da = new SqlDataAdapter(_ptype_cmd);
            DataTable _ptype_tbl = new DataTable();
            _ptype_da.Fill(_ptype_tbl);
            DataRow _ptype_r = _ptype_tbl.NewRow();
            _ptype_r["id_ptype"] = -1;
            _ptype_r["name_ptype"] = "Не выбрано!";
            _ptype_tbl.Rows.InsertAt(_ptype_r, 0);
            txtPType.DataSource = _ptype_tbl;
            txtPType.DisplayMember = "name_ptype";
            txtPType.ValueMember = "id_ptype";
            txtPType.SelectedValue = -1;

            txtPType.SelectedValue = order.PType;

            if (order.Konvert == 1)
                checkKonvert.Checked = true;
            else
                checkKonvert.Checked = false;

                tmr.Stop();
            tmr.Interval = prop.UpdateOrderTableInAcceptance * 1000;
            tmr.Start();
        }
Beispiel #11
0
        private void StartWizard(bool auto)
        {
            // Данные из мастера!
            DataTable tblOrder;

            string OrderNum = num.NewOrderNum(db_connection, usr);

            // Начинаем прием
            // Первый шаг мастера
            Wizard.frmStep1 fStep1 = new frmStep1();
            Wizard.frmStep2 fStep2 = new frmStep2();
            Wizard.frmStep2a fStep2a = new frmStep2a();
            Wizard.frmStep3 fStep3 = new frmStep3();
            // Передаем данные о пользователе
            fStep1.usr = this.usr;
            fStep2.usr = this.usr;
            fStep2a.usr = this.usr;
            fStep3.usr = this.usr;
            // Передаем соединение с базой
            fStep1.db_connection = this.db_connection;
            fStep2.db_connection = this.db_connection;
            fStep2a.db_connection = this.db_connection;
            fStep3.db_connection = this.db_connection;
            // Задаем номер заказа
            fStep1.lblOrderNo.Text = OrderNum;
            fStep2.lblOrderNo.Text = OrderNum;
            fStep2a.lblOrderNo.Text = OrderNum;
            fStep3.lblOrderNo.Text = OrderNum;
            // если auto истина, то выставляем галку на третьем шаге
            fStep3.checkOpenOrder.Checked = !auto;
            // Открываем модально окно первого шага
            bool wizardok = false;
            string step = "";
            fStep1.ShowDialog();
            step = "step1";
            while (!wizardok)
            {
                switch (step)
                {
                    case "step1":
                        {
                            switch (fStep1.DialogResult)
                            {
                                case DialogResult.Cancel:
                                    {
                                        wizardok = true;
                                        step = "cancel";
                                        break;
                                    }
                                case DialogResult.Retry:
                                    {
                                        break;
                                    }
                                case DialogResult.OK:
                                    {
                                        tblOrder = fStep1.tblOrder;
                                        fStep2a.tblOrder = tblOrder;
                                        step = "step2";
                                        fStep2.ShowDialog();
                                        break;
                                    }
                            }
                            break;
                        }

                    case "step2":
                        {
                            switch (fStep2.DialogResult)
                            {
                                case DialogResult.Cancel:
                                    {
                                        wizardok = true;
                                        step = "cancel";
                                        break;
                                    }
                                case DialogResult.Retry:
                                    {
                                        step = "step1";
                                        fStep1.ShowDialog();
                                        break;
                                    }
                                case DialogResult.OK:
                                    {
                                        step = "step2a";
                                        fStep2a.client = fStep2.client;
                                        fStep2a.ShowDialog();
                                        break;
                                    }
                            }
                            break;
                        }

                    case "step2a":
                        {
                            switch (fStep2a.DialogResult)
                            {
                                case DialogResult.Cancel:
                                    {
                                        wizardok = true;
                                        step = "cancel";
                                        break;
                                    }
                                case DialogResult.Retry:
                                    {
                                        step = "step2";
                                        fStep2.ShowDialog();
                                        break;
                                    }
                                case DialogResult.OK:
                                    {
                                        step = "step3";
                                        fStep3.ShowDialog();
                                        break;
                                    }
                            }
                            break;
                        }

                    case "step3":
                        {
                            switch (fStep3.DialogResult)
                            {
                                case DialogResult.Cancel:
                                    {
                                        wizardok = true;
                                        step = "cancel";
                                        break;
                                    }
                                case DialogResult.Retry:
                                    {
                                        step = "step2a";
                                        fStep2a.ShowDialog();
                                        break;
                                    }
                                case DialogResult.OK:
                                    {
                                        step = "end";
                                        wizardok = true;
                                        break;
                                    }
                            }
                            break;
                        }
                }
            }

            // визард с горем пополам окончил работу
            // если не нажата отмена
            if ((step != "cancel") && (step != "") && (step == "end"))
            {
                OrderInfo Order = new OrderInfo(db_connection);

                Order.Usr = this.usr;
                Order.Client = fStep2.client;
                Order.Discont = fStep2a.discont;
                Order.OrderBody = fStep1.tblOrder;

                if (fStep1.radioCrop1.Checked)
                    Order.Crop = 1;
                if (fStep1.radioCrop2.Checked)
                    Order.Crop = 2;
                if (fStep1.radioCrop3.Checked)
                    Order.Crop = 3;

                if (fStep1.radioPapperType1.Checked)
                    Order.Type = 1;
                if (fStep1.radioPapperType2.Checked)
                    Order.Type = 2;

                Order.Datein = DateTime.Now.ToShortDateString();
                Order.Timein = DateTime.Now.ToShortTimeString();
                Order.Dateout = fStep3.cldrDate.SelectedDates[0].ToShortDateString();
                Order.Timeout = fStep3.gridTime.GetData(fStep3.gridTime.Row, fStep3.gridTime.ColSel).ToString();

                Order.AdvancedPayment = fStep2a.AdvancedPayment;
                Order.FinalPayment = fStep2a.FinalPayment;

                Order.Orderno = OrderNum;

                if (fStep3.checkOpenOrder.Checked)
                {
                    frmOrder fOrder = new frmOrder(usr, true, Order);
                    fOrder.db_connection = db_connection;
                    fOrder.ShowDialog();
                    if (fOrder.DialogResult == DialogResult.Cancel)
                    {
                        fStep1.tmr.Stop();
                        fStep1.Close();
                        fStep2.Close();
                        fStep2a.Close();
                        fStep3.Close();
                        fOrder.Close();
                        try
                        {
                            if (!prop.DenyDelete)
                            {
                                if (prop.QueryForDelete)
                                {
                                    if (MessageBox.Show("Удалить папку " + prop.Dir_print + "\\" + fso.GetDateSubFolders() + "\\" + OrderNum + " ?", "Debug", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                                    {
                                        Directory.Delete(prop.Dir_print + "\\" + fso.GetDateSubFolders() + "\\" + OrderNum, true);
                                    }
                                }
                                else
                                {
                                    Directory.Delete(prop.Dir_print + "\\" + fso.GetDateSubFolders() + "\\" + OrderNum, true);
                                }
                            }
                            if (!prop.DenyDelete)
                            {
                                if (prop.QueryForDelete)
                                {
                                    if (MessageBox.Show("Удалить папку " + prop.Dir_edit + "\\" + fso.GetDateSubFolders() + "\\" + OrderNum + " ?", "Debug", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                                    {
                                        Directory.Delete(prop.Dir_edit + "\\" + fso.GetDateSubFolders() + "\\" + OrderNum, true);
                                    }
                                }
                                else
                                {
                                    Directory.Delete(prop.Dir_edit + "\\" + fso.GetDateSubFolders() + "\\" + OrderNum, true);
                                }
                            }
                        }
                        catch(Exception ex)
                        {
                            ErrorNfo.WriteErrorInfo(ex);
                        }
                        MessageBox.Show("Заказ отменен!");
                    }
                    else
                    {
                        Order = fOrder.order;
                        fStep1.tmr.Stop();
                        fStep1.Close();
                        fStep2.Close();
                        fStep2a.Close();
                        fStep3.Close();
                        fOrder.Close();
                        // Сохраняем из расшир формы
                        if (!Order.SaveAdvOrder())
                        {
                            MessageBox.Show("Внимание! Ошибка при сохранении заказа!\nЗАКАЗ НЕ БУДЕТ СОХРАНЕН!!!\nДополнительная информация: " + Order.Err, "Сохранение заказа", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        else
                        {
                            if (!Order.SaveAdvTextFile())
                            {
                                MessageBox.Show("Ошибка сохранения информации о заказе в текстовый файл!\nДополнительная информация: " + Order.Err, "Сохранение дополнительной информации", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            PrintCheck(Order.Orderno);
                        }
                    }
                }
                else
                {
                    fStep1.tmr.Stop();
                    fStep1.Close();
                    fStep2.Close();
                    fStep2a.Close();
                    fStep3.Close();
                    // Сохраняем из мастера
                    if (!Order.SaveEasyOrder())
                    {
                        MessageBox.Show("Внимание! Ошибка при сохранении заказа!\nЗАКАЗ НЕ БУДЕТ СОХРАНЕН!!!\nДополнительная информация: " + Order.Err, "Сохранение заказа", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    {
                        if (!Order.SaveEasyTextFile())
                        {
                            MessageBox.Show("Ошибка сохранения информации о заказе в текстовый файл!\nДополнительная информация: " + Order.Err, "Сохранение дополнительной информации", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        PrintCheck(Order.Orderno);
                    }

                }
                fStep1.tmr.Stop();
                fStep1.Close();
                fStep2.Close();
                fStep2a.Close();
                fStep3.Close();
            }
            else
            {
                fStep1.tmr.Stop();
                fStep1.Close();
                fStep2.Close();
                fStep2a.Close();
                fStep3.Close();
                try
                {
                    if (!prop.DenyDelete)
                    {
                        if (prop.QueryForDelete)
                        {
                            if (MessageBox.Show("Удалить папку " + prop.Dir_print + "\\" + fso.GetDateSubFolders() + "\\" + OrderNum + " ?", "Debug", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                            {
                                Directory.Delete(prop.Dir_print + "\\" + fso.GetDateSubFolders() + "\\" + OrderNum, true);
                            }
                        }
                        else
                        {
                            Directory.Delete(prop.Dir_print + "\\" + fso.GetDateSubFolders() + "\\" + OrderNum, true);
                        }
                    }
                    if (!prop.DenyDelete)
                    {
                        if (prop.QueryForDelete)
                        {
                            if (MessageBox.Show("Удалить папку " + prop.Dir_edit + "\\" + fso.GetDateSubFolders() + "\\" + OrderNum + " ?", "Debug", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                            {
                                Directory.Delete(prop.Dir_edit + "\\" + fso.GetDateSubFolders() + "\\" + OrderNum, true);
                            }
                        }
                        else
                        {
                            Directory.Delete(prop.Dir_edit + "\\" + fso.GetDateSubFolders() + "\\" + OrderNum, true);
                        }
                    }
                }
                catch(Exception ex)
                {
                    ErrorNfo.WriteErrorInfo(ex);
                }
                MessageBox.Show("Заказ отменен!");
            }
        }
Beispiel #12
0
        private void OpenNewQuickOrder()
        {
            frmOrder fOrder = new frmOrder(usr, true);

            fOrder.db_connection = db_connection;
            fOrder.Momental.Visible = true;
            fOrder.ShowDialog();
            if (fOrder.DialogResult == DialogResult.OK)
            {
                OrderInfo Order = new OrderInfo(db_connection);
                Order = fOrder.order;
                fOrder.Close();
                Order.Distanation = "000000";
                // Сохраняем из расшир формы
                if (!Order.SaveAdvOrder(true))
                {
                    MessageBox.Show("Внимание! Ошибка при сохранении заказа!\nЗАКАЗ НЕ БУДЕТ СОХРАНЕН!!!\nДополнительная информация: " + Order.Err, "Сохранение заказа", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    if (!Order.SaveAdvTextFile())
                    {
                        MessageBox.Show("Ошибка сохранения информации о заказе в текстовый файл!\nДополнительная информация: " + Order.Err, "Сохранение дополнительной информации", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    PrintCheck(Order.Orderno);
                }
            }
            else
            {
                OrderInfo Order = new OrderInfo(db_connection);
                Order = fOrder.order;
                fOrder.Close();
                try
                {
                    if (!prop.DenyDelete)
                    {
                        if (prop.QueryForDelete)
                        {
                            if (MessageBox.Show("Удалить папку " + prop.Dir_print + "\\" + fso.GetDateSubFolders() + "\\" + Order.Orderno + " ?", "Debug", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                            {
                                Directory.Delete(prop.Dir_print + "\\" + fso.GetDateSubFolders() + "\\" + Order.Orderno, true);
                            }
                        }
                        else
                        {
                            Directory.Delete(prop.Dir_print + "\\" + fso.GetDateSubFolders() + "\\" + Order.Orderno, true);
                        }
                    }
                    if (!prop.DenyDelete)
                    {
                        if (prop.QueryForDelete)
                        {
                            if (MessageBox.Show("Удалить папку " + prop.Dir_edit + "\\" + fso.GetDateSubFolders() + "\\" + Order.Orderno + " ?", "Debug", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                            {
                                Directory.Delete(prop.Dir_edit + "\\" + fso.GetDateSubFolders() + "\\" + Order.Orderno, true);
                            }
                        }
                        else
                        {
                            Directory.Delete(prop.Dir_edit + "\\" + fso.GetDateSubFolders() + "\\" + Order.Orderno, true);
                        }
                    }
                }
                catch (Exception ex)
                {
                    ErrorNfo.WriteErrorInfo(ex);

                }
                MessageBox.Show("Заказ отменен!");
            }
        }
Beispiel #13
0
 private void PrintCheck(string order)
 {
     OrderInfo Order = new OrderInfo(db_connection, order, true);
     frmOrderClose frm = new frmOrderClose(db_connection, usr, Order.Id);
     frm.tmr.Stop();
     frm.PrintCheck();
 }