예제 #1
0
        private void ModeLoadingInicializationReView()
        {
            Label lblPlacer = pnlCurrent.GetLabelByName("lblPlacer");

            lblPlacer.Text = (SS.Placer.Selected ? Helper.GetShortFIO(SS.Placer.Name) : "<не выбран>");
            Label lblWayBill = pnlCurrent.GetLabelByName("lblWayBill");

            lblWayBill.Text     = (SS.WayBill.View == null ? "<не выбран>" : SS.WayBill.View);
            lblAction.ForeColor = Color.Blue;
        }
예제 #2
0
        } // ModeSetCompleteReView

        private void ModeDownReView()
        {
            int   remain     = SS.DocDown.AllBoxes - SS.DocDown.Boxes;
            Label lblPrinter = pnlCurrent.GetLabelByName("lblPrinter");
            Label lblInfo1   = pnlCurrent.GetLabelByName("lblInfo1");
            Label lblKey1    = pnlCurrent.GetLabelByName("lblKey1");
            Label lblNumber  = pnlCurrent.GetLabelByName("lblNumber");
            Label lblAdress  = pnlCurrent.GetLabelByName("lblAdress");
            Label lblSetter  = pnlCurrent.GetLabelByName("lblSetter");

            lblPrinter.Text = SS.Printer.Description;
            lblInfo1.Text   = "Отобрано " + remain.ToString() + " из " + SS.DocDown.AllBoxes.ToString();
            lblNumber.Text  = SS.DocDown.NumberBill.Substring(SS.DocDown.NumberBill.Length - 5, 2) + " "
                              + SS.DocDown.NumberBill.Substring(SS.DocDown.NumberBill.Length - 3)
                              + " сектор: " + SS.DocDown.MainSectorName.Trim() + "-" + SS.DocDown.NumberCC.ToString();
            lblAdress.Text  = SS.DocDown.AdressCollect;
            lblSetter.Text  = "отборщик: " + Helper.GetShortFIO(SS.DocDown.SetterName);
            lblKey1.Visible = SS.DocDown.MaxStub <= remain ? true : false;
            lblAction.Text  = SS.ExcStr;
        }
예제 #3
0
        private void ShowSectionsNew(string currProposal)
        {
            ViewProposal = currProposal;
            ExPanel pnlInfoNew = pnlCurrent.GetControlByName("pnlInfoNew") as ExPanel;

            pnlInfoNew.Controls.Clear();
            //Нужно дойти до контроля расходной
            string        DocType;
            string        IDCB = ""; //ИД контроля расходной
            List <string> SubjectDocs;

            if (!SS.GetSubjectDocs(currProposal, "Счет", out SubjectDocs))
            {
                return;
            }
            //Если пустой, то это счет, а не заявка
            if (SubjectDocs.Count == 0)
            {
                return;
            }
            //Не пустой, ищем контроль расходной или адрес набор
            bool IsFound = false;

            foreach (string CurrentIDDoc in SubjectDocs)
            {
                if (SS.GetDocType(CurrentIDDoc, out DocType))
                {
                    if (DocType == "КонтрольРасходной")
                    {
                        IDCB    = CurrentIDDoc;
                        IsFound = true;
                        break;  //ПОЕХАЛИ ДАЛЬШЕ
                    }
                }
                else
                {
                    return;
                }
            }
            if (!IsFound)
            {
                return;
            }
            Dictionary <string, object> DaemondData = new Dictionary <string, object>();

            if (!SS.GetDoc(currProposal, out DaemondData))
            {
                return;
            }
            Dictionary <string, object> DataMap;
            List <string> CCListID;

            //теперь получаем список всех контролей набора
            if (!SS.GetCCListNew(IDCB, out CCListID, out DataMap))
            {
                return;
            }
            //Тяжелая работа по выводу данных
            List <string> FieldList = new List <string>();
            Dictionary <string, object> DataMapRead;

            FieldList.Add("DESCR");
            const int FieldOnRow = 8; //Число полей на одну строку одного сектора

            Label[,] Lbl = new Label[FieldOnRow, CCListID.Count];
            int      i = 0;
            int      dY;                                       //Это смещение, м/у строками
            int      FirstIndex  = -1;                         //Индекс строки первой комплектации
            int      LastIndex   = -1;                         //Индекс строки последней комплектации
            DateTime MinDate     = new DateTime(2020, 01, 01); //Минимальная дата
            DateTime MaxDate     = new DateTime(1753, 01, 01); //Максимальная дата
            int      MinTime     = 86400;                      //Минимальное время
            int      MaxTime     = 0;                          //Максимальное время
            bool     AllComplete = true;                       //Последнюю комплектацию не имеет смысла считать, если где-то, что-то не скомплектовано

            foreach (string ID in CCListID)
            {
                dY = i * 30;
                //Создадим метки для этого сектора
                for (int j = 0; j < FieldOnRow; j++)
                {
                    Lbl[j, i]           = new Label();
                    Lbl[j, i].Name      = "_dyn" + j.ToString() + i.ToString();
                    Lbl[j, i].BackColor = Color.White;
                    pnlInfoNew.Controls.Add(Lbl[j, i]);
                }

                //ОПРЕДЕЛИМСЯ С СОДЕРЖАНИЕМ И ЦВЕТАМИ ИСХОДЯ ИЗ СОСТОЯНИЯ
                //Ниже используются запросы к БД, не очень красиво, но в целях оптимизации (т.к. заглядывают сюда не всякий раз)
                //Поэтому, если что-то не срастается, то выводим пустые поля, там где несраслось
                if (SQL1S.IsVoidDate((DateTime)DataMap[ID + ".КонтрольНабора.Дата1"]))
                {
                    //ОЖИДАНИЕ НАБОРА
                    Lbl[1, i].Text = ".";
                    Lbl[2, i].Text = "<< ожидание >>";
                    Lbl[3, i].Text = "__:__";
                    Lbl[4, i].Text = "  неопределен";
                    Lbl[5, i].Text = "__:__";
                    //Цвета
                    Lbl[0, i].ForeColor = Color.Red;
                    Lbl[1, i].ForeColor = Color.Red;
                    Lbl[2, i].ForeColor = Color.LightPink;
                    Lbl[3, i].ForeColor = Color.LightGray;
                    Lbl[4, i].ForeColor = Color.LightGray;
                    Lbl[5, i].ForeColor = Color.LightGray;

                    AllComplete = false;
                }
                else if (SQL1S.IsVoidDate((DateTime)DataMap[ID + ".КонтрольНабора.Дата2"]))
                {
                    //В НАБОРЕ
                    Lbl[1, i].Text = "...";
                    if (!SS.GetSCData(DataMap[ID + ".КонтрольНабора.Наборщик"].ToString(), "Сотрудники", FieldList, out DataMapRead, true))
                    {
                        Lbl[2, i].Text = "< не задан >";
                    }
                    else
                    {
                        Lbl[2, i].Text = Helper.GetShortFIO(DataMapRead["DESCR"].ToString());
                    }
                    Lbl[3, i].Text = "(" + ((DateTime)DataMap[ID + ".КонтрольНабора.Дата1"]).ToString("dd.MM") + ") "
                                     + Helper.SecondToString((int)(decimal)DataMap[ID + ".КонтрольНабора.Время1"]) + " - ...";
                    Lbl[4, i].Text = "  неопределен";
                    Lbl[5, i].Text = "__:__";
                    //Цвета
                    Lbl[0, i].ForeColor = Color.Red;
                    Lbl[1, i].ForeColor = Color.Red;
                    Lbl[2, i].ForeColor = Color.Red;
                    Lbl[3, i].ForeColor = Color.Red;
                    Lbl[4, i].ForeColor = Color.LightGray;
                    Lbl[5, i].ForeColor = Color.LightGray;

                    AllComplete = false;
                }
                else if (SQL1S.IsVoidDate((DateTime)DataMap[ID + ".КонтрольНабора.Дата3"]))
                {
                    //НАБРАНА
                    Lbl[1, i].Text = "--";
                    if (!SS.GetSCData(DataMap[ID + ".КонтрольНабора.Наборщик"].ToString(), "Сотрудники", FieldList, out DataMapRead, true))
                    {
                        Lbl[2, i].Text = "< не задан >";
                    }
                    else
                    {
                        Lbl[2, i].Text = Helper.GetShortFIO(DataMapRead["DESCR"].ToString());
                    }
                    Lbl[3, i].Text = "(" + ((DateTime)DataMap[ID + ".КонтрольНабора.Дата2"]).ToString("dd.MM") + ") "
                                     + Helper.SecondToString((int)(decimal)DataMap[ID + ".КонтрольНабора.Время1"]) + " - "
                                     + Helper.SecondToString((int)(decimal)DataMap[ID + ".КонтрольНабора.Время2"]);
                    Lbl[4, i].Text = "<< ожидание >>";
                    Lbl[5, i].Text = "__:__";
                    //Цвета
                    Lbl[0, i].ForeColor = Color.Red;
                    Lbl[1, i].ForeColor = Color.Red;
                    Lbl[2, i].ForeColor = Color.Red;
                    Lbl[3, i].ForeColor = Color.Red;
                    Lbl[4, i].ForeColor = Color.LightPink;
                    Lbl[5, i].ForeColor = Color.LightGray;

                    AllComplete = false;
                }
                else
                {
                    //СКОМПЛЕКТОВАНА
                    DateTime CurrentDate = (DateTime)DataMap[ID + ".КонтрольНабора.Дата3"];
                    int      CurrentTime = (int)(decimal)DataMap[ID + ".КонтрольНабора.Время3"];
                    //Скорректируем максималный момент комплектации
                    if (AllComplete && CurrentDate > MaxDate)
                    {
                        MaxDate   = CurrentDate;
                        MaxTime   = CurrentTime;
                        LastIndex = i;
                    }
                    else if (AllComplete && CurrentDate == MaxDate && CurrentTime > MaxTime)
                    {
                        MaxTime   = CurrentTime;
                        LastIndex = i;
                    }
                    //Скорректируем максималный момент комплектации
                    if (CurrentDate < MinDate)
                    {
                        MinDate    = CurrentDate;
                        MinTime    = CurrentTime;
                        FirstIndex = i;
                    }
                    else if (CurrentDate == MinDate && CurrentTime < MinTime)
                    {
                        MinTime    = CurrentTime;
                        FirstIndex = i;
                    }
                    //собственно рисовалка
                    Lbl[1, i].Text = "+";
                    if (!SS.GetSCData(DataMap[ID + ".КонтрольНабора.Наборщик"].ToString(), "Сотрудники", FieldList, out DataMapRead, true))
                    {
                        Lbl[2, i].Text = "< не задан >";
                    }
                    else
                    {
                        Lbl[2, i].Text = Helper.GetShortFIO(DataMapRead["DESCR"].ToString());
                    }
                    Lbl[3, i].Text = "(" + ((DateTime)DataMap[ID + ".КонтрольНабора.Дата2"]).ToString("dd.MM") + ") "
                                     + Helper.SecondToString((int)(decimal)DataMap[ID + ".КонтрольНабора.Время1"]) + " - "
                                     + Helper.SecondToString((int)(decimal)DataMap[ID + ".КонтрольНабора.Время2"]);
                    if (!SS.GetSCData(DataMap[ID + ".КонтрольНабора.Комплектовщик"].ToString(), "Сотрудники", FieldList, out DataMapRead, true))
                    {
                        Lbl[4, i].Text = "< не задан >";
                    }
                    else
                    {
                        Lbl[4, i].Text = Helper.GetShortFIO(DataMapRead["DESCR"].ToString());
                    }
                    Lbl[5, i].Text = "(" + CurrentDate.ToString("dd.MM") + ") " + Helper.SecondToString(CurrentTime);

                    //Цвета
                    Lbl[0, i].ForeColor = Color.Black;
                    Lbl[1, i].ForeColor = Color.Black;
                    Lbl[2, i].ForeColor = Color.Black;
                    Lbl[3, i].ForeColor = Color.Black;
                    Lbl[4, i].ForeColor = Color.Black;
                    Lbl[5, i].ForeColor = Color.Black;
                }

                //Заголовок
                Lbl[0, i].Font      = FontTahoma14Bold;
                Lbl[0, i].TextAlign = ContentAlignment.TopCenter;
                Lbl[0, i].Location  = new Point(3, 3 + dY);
                Lbl[0, i].Size      = new Size(50, 27);
                if (DataMap[ID + ".КонтрольНабора.Сектор"].ToString() == SQL1S.GetVoidID())
                {
                    //Пустая
                    Lbl[0, i].Text = "Пу";
                }
                else
                {
                    Lbl[0, i].Text = DataMap[DataMap[ID + ".КонтрольНабора.Сектор"] + ".@Сектор.Имя"].ToString().Trim();
                }
                Lbl[0, i].Text += "-" + DataMap[ID + ".КонтрольНабора.НомерЛиста"];

                //Мест погружено
                Lbl[1, i].Font      = FontTahoma9Bold;
                Lbl[1, i].TextAlign = ContentAlignment.TopRight;
                Lbl[1, i].Location  = new Point(56, 3 + dY);
                Lbl[1, i].Size      = new Size(25, 13);
                //Мест всего
                Lbl[7, i].Font      = FontTahoma9Bold;
                Lbl[7, i].TextAlign = ContentAlignment.TopRight;
                Lbl[7, i].Location  = new Point(56, 17 + dY);
                Lbl[7, i].Size      = new Size(25, 13);
                //Наборщик
                Lbl[2, i].Font      = FontTahoma9Regular;
                Lbl[2, i].TextAlign = ContentAlignment.TopLeft;
                Lbl[2, i].Location  = new Point(84, 3 + dY);
                Lbl[2, i].Size      = new Size(112, 13);
                //Время наборщика
                Lbl[3, i].Font      = FontTahoma8Regular;
                Lbl[3, i].TextAlign = ContentAlignment.TopLeft;
                Lbl[3, i].Location  = new Point(199, 3 + dY);
                Lbl[3, i].Size      = new Size(110, 13);
                //Комплектовщик
                Lbl[4, i].Font      = FontTahoma9Regular;
                Lbl[4, i].TextAlign = ContentAlignment.TopLeft;
                Lbl[4, i].Location  = new Point(84, 17 + dY);
                Lbl[4, i].Size      = new Size(112, 13);
                //Время комплектовщика
                Lbl[5, i].Font      = FontTahoma8Regular;
                Lbl[5, i].TextAlign = ContentAlignment.TopLeft;
                Lbl[5, i].Location  = new Point(199, 17 + dY);
                Lbl[5, i].Size      = new Size(77, 13);
                //Количество строк
                Lbl[6, i].Font      = FontTahoma8Bold;
                Lbl[6, i].TextAlign = ContentAlignment.TopRight;
                Lbl[6, i].Location  = new Point(279, 17 + dY);
                Lbl[6, i].Size      = new Size(30, 13);
                Lbl[6, i].Text      = DataMap[ID + ".КонтрольНабора.КолСтрок"].ToString();
                Lbl[6, i].ForeColor = Color.Navy;

                //Места
                Lbl[7, i].Text = DataMap[ID + ".КонтрольНабора.КолМест"].ToString();
                Lbl[1, i].Text = DataMap[ID + ".КонтрольНабора.МестФакт"].ToString();

                if (DataMap[ID + ".КонтрольНабора.КолМест"].ToString() != DataMap[ID + ".КонтрольНабора.МестФакт"].ToString())
                {
                    Lbl[1, i].ForeColor = Color.Red;
                }

                i++;
            }

            //Подкрасим первую и последнюю комплектации
            if (FirstIndex >= 0)
            {
                Lbl[1, FirstIndex].BackColor = Color.PaleGoldenrod;
                Lbl[7, FirstIndex].BackColor = Color.PaleGoldenrod;
            }
            if (AllComplete && LastIndex >= 0)
            {
                Lbl[1, LastIndex].BackColor = Color.PaleGreen;
                Lbl[7, LastIndex].BackColor = Color.PaleGreen;
            }

            pnlInfoNew.BringToFront();

            //Заголовок с информацией по заявке
            if (DaemondData.Count > 0)
            {
                string txt = DaemondData["НомерДок"].ToString() + " (" + ((DateTime)DaemondData["ДатаДок"]).ToString("dd.MM.yy") + ")";
                //Label lblDescr  = pnlCurrent.GetLabelByName("lblDescr");
                //lblDescr.Text = txt;
            }
        }