} // ReactionKeyDo /// <summary> /// /// </summary> /// <param name="e"></param> protected override void ReactionSCSectionDo(RefSection e) { //Проверки зон!!! if (!e.AdressZone.Selected) { Negative("Нельзя! Адбрес без зоны!"); return; } DataTable DT; string TextQuery = "SELECT VALUE as val FROM _1sconst (nolock) WHERE ID = $Константа.ЗонаВременногоТовара "; if (!SS.ExecuteWithRead(TextQuery, out DT)) { return; } string IDTempZone = DT.Rows[0]["val"].ToString(); //Проверка if (e.AdressZone.ID.ToString() != IDTempZone) { //НЕ та зона Negative("Нельзя! Адрес другой зоны!"); } Adress = e; Positive("Адрес принят! Продолжайте ..."); } // ReactionSCSectionDo
} // ReactionKeyDo /// <summary> /// /// </summary> /// <param name="e"></param> protected override void ReactionSCDo(ReactionSCEventArgs e) { if (CurrentAction == ActionSet.ScanAdress) { if (e.Ref.GetType() != new RefSection(SS).GetType()) { Negative("Неверно! " + SS.WhatUNeed(CurrentAction)); return; } RefSection Section = e.Ref as RefSection; AdressUnLoad.FoundID(Section.ID); string TextQuery = "UPDATE $Спр.МестаПогрузки " + "SET " + "$Спр.МестаПогрузки.Адрес9 = :AdressID ," + "$Спр.МестаПогрузки.Сотрудник8 = :EmployerID ," + "$Спр.МестаПогрузки.Дата9 = :Date ," + "$Спр.МестаПогрузки.Время9 = :Time " + "WHERE "; if (DocUnload.Selected) { TextQuery += " $Спр.МестаПогрузки .КонтрольНабора = :DocUnload "; SQL1S.QuerySetParam(ref TextQuery, "DocUnload", DocUnload.ID); } else { TextQuery += " $Спр.МестаПогрузки .ID = :ID "; SQL1S.QuerySetParam(ref TextQuery, "ID", BoxUnLoad.ID); } SQL1S.QuerySetParam(ref TextQuery, "AdressID", AdressUnLoad.ID); SQL1S.QuerySetParam(ref TextQuery, "EmployerID", Employer.ID); SQL1S.QuerySetParam(ref TextQuery, "Date", DateTime.Now); SQL1S.QuerySetParam(ref TextQuery, "Time", APIManager.NowSecond()); if (!SS.ExecuteWithoutRead(TextQuery)) { Negative("Не удалось зафиксировать! " + SS.WhatUNeed(CurrentAction)); return; } CurrentAction = ActionSet.ScanBox; Refresh(); return; } else if (CurrentAction != ActionSet.ScanBox) { Negative("Неверно! " + SS.WhatUNeed(CurrentAction)); return; } if (e.Ref.GetType() != new RefBox(SS).GetType()) { Negative("Неверно! " + SS.WhatUNeed(CurrentAction)); return; } RefBox Box = e.Ref as RefBox; BoxUnLoad.FoundID(Box.ID); DocUnload = new Doc(SS); CurrentAction = ActionSet.ScanAdress; AdressUnLoad = new RefSection(SS); Refresh(); }
protected override void ReactionSCSectionDo(RefSection Section) { //подтянем данные адреса string TextQuery = "DECLARE @curdate DateTime; " + "SELECT @curdate = DATEADD(DAY, 1 - DAY(curdate), curdate) FROM _1ssystem (nolock); " + "SELECT " + "RegAOT.$Рег.АдресОстаткиТоваров.Товар as ID, " + "min(Goods.descr) as ItemName, " + "min(Goods.$Спр.Товары.ИнвКод ) as InvCode, " + "min(Goods.$Спр.Товары.Артикул ) as Article, " + "cast(sum(RegAOT.$Рег.АдресОстаткиТоваров.Количество ) as int) as Count, " + "min(RegAOT.$Рег.АдресОстаткиТоваров.Адрес ) as Adress, " + "CASE " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = -10 THEN '-10 Автокорректировка' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = -2 THEN '-2 В излишке' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = -1 THEN '-1 В излишке (пересчет)' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 0 THEN '00 Не существует' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 1 THEN '01 Приемка' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 2 THEN '02 Хороший на месте' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 3 THEN '03 Хороший (пересчет)' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 4 THEN '04 Хороший (движение)' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 7 THEN '07 Бракованный на месте' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 8 THEN '08 Бракованный (пересчет)' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 9 THEN '09 Бракованный (движение)' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 12 THEN '12 Недостача' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 13 THEN '13 Недостача (пересчет)' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 14 THEN '14 Недостача (движение)' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 17 THEN '17 Недостача подтвержденная' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 18 THEN '18 Недостача подт.(пересчет)' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 19 THEN '19 Недостача подт.(движение)' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 22 THEN '22 Пересорт излишек' " + "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 23 THEN '23 Пересорт недостача' " + "ELSE rtrim(cast(RegAOT.$Рег.АдресОстаткиТоваров.Состояние as char)) + ' <неизвестное состояние>' END as Condition, " + "min(Sections.descr) as AdressName " + "FROM " + "RG$Рег.АдресОстаткиТоваров as RegAOT (nolock) " + "LEFT JOIN $Спр.Товары as Goods (nolock) " + "ON Goods.ID = RegAOT.$Рег.АдресОстаткиТоваров.Товар " + "LEFT JOIN $Спр.Секции as Sections (nolock) " + "ON Sections.ID = RegAOT.$Рег.АдресОстаткиТоваров.Адрес " + "WHERE " + "RegAOT.period = @curdate " + "and RegAOT.$Рег.АдресОстаткиТоваров.Адрес = :Address " + "GROUP BY RegAOT.$Рег.АдресОстаткиТоваров.Товар , " + "RegAOT.$Рег.АдресОстаткиТоваров.Состояние " + "ORDER BY min(Goods.$Спр.Товары.ИнвКод )"; SQL1S.QuerySetParam(ref TextQuery, "Address", Section.ID); if (SS.ExecuteWithRead(TextQuery, out SS.AddressCardItems)) { //покажем содержание адреса SS.OnReport(new ReportEventArgs("Задача выбрана...")); JumpTo(new ChoiseWorkAddressCard(SS, this)); } base.ReactionSCSectionDo(Section); }
} // Cancel /// <summary> /// LoaderLift, LoaderDownAntrisole /// </summary> /// <param name="e"></param> protected override void ReactionSCSectionDo(RefSection e) { if (CurrentAction != ActionSet.ScanAdress) { Negative("Неверно! " + SS.WhatUNeed(CurrentAction)); return; } Adress1 = e; TaskEnd(); } // ReactionSCSectionDo
private void OnReactionSCSection(RefSection e) { ThereHandlerDo = true; //Если функцию ниже никто не наследует, то это значение поменяется на false ReactionSCSectionDo(e); ThereHandler = ThereHandler ? ThereHandler : ThereHandlerDo; //если уже взведен, то не трогаем, иначе берет значение предыдущего флага if (ReactionSCSection != null) { ReactionSCSection(this, e); ThereHandler = true; } }
} // Init /// <summary> /// /// </summary> /// <param name="section"></param> protected override void ReactionSCSectionDo(RefSection section) { if (CurrentAction != ActionSet.ScanAdress) { Negative("Неверно! " + SS.WhatUNeed(CurrentAction)); return; } Adress0 = section; CompletePallete(); JumpTo(new RefillChoise(SS, this)); } // ReactionSCSection
/// <summary> /// /// </summary> /// <param name="ReadySS"></param> /// <param name="CallObj"></param> public UnLoading(Model ReadySS, ABaseMode CallObj) : base(ReadySS, CallObj) { //Стандартные включалки CurrentMode = Mode.UnLoading; //Просто AdressUnLoad = new RefSection(SS); BoxUnLoad = new RefBox(SS); DocUnload = new Doc(SS); DocCC = new StructBox(); PreviousAction = ""; } // RefillSet (constructor)
public RefillLayout(Model ReadySS, ABaseMode CallObj) : base(ReadySS, CallObj) { CurrentMode = Mode.RefillLayout; DocAP = (CallObj as RefillChoise).DocAP; lineno_ = 0; Adress0 = new RefSection(SS); Adress1 = new RefSection(SS); LastMove = new RefPalleteMove(SS); Item = new RefItem(SS); PreviousAction = ""; RemainItems = new DataTable(); }
} // CollectedLines /// <summary> /// /// </summary> /// <param name="ReadySS"></param> /// <param name="CallObj"></param> public RefillSet(Model ReadySS, ABaseMode CallObj) : base(ReadySS, CallObj) { //Стандартные включалки CurrentMode = Mode.RefillSet; ReactionSCItem += new ReactionSCItemHandler(RefillSet_ReactionSCItem); DocAP = (CallObj as RefillChoise).DocAP; //Просто Adress0 = new RefSection(SS); Adress1 = new RefSection(SS); Item = new RefItem(SS); PreviousAction = ""; } // RefillSet (constructor)
//--------------- //Две процедуры ниже нужно переработать как-то в одну, я хз как пока /// <summary> /// write in you property: %Prop% get { return GetSectionProperty(%name%, ref %FProp%); } /// </summary> /// <param name="name">1C name of prop</param> /// <param name="val">field stored object</param> /// <returns>value of property</returns> protected RefSection GetSectionProperty(string name, ref RefSection val) { if (val == null) { val = new RefSection(SS); } string currId = GetAttribute(name).ToString(); if (val.ID != currId) { val.FoundID(currId); } return(val); } // GetGatesProperty
public bool ToModeSetInicialization() { FEmployer.Refresh(); //Обновим данные сотрудника Const.Refresh(); //Обновим константы PreviousAction = ""; DocsSet = new List <string>(); if (!MBGoToSetSelfControl()) { return(false); } string TextQuery = "SELECT " + "journ.iddoc as IDDOC " + "FROM " + "_1sjourn as journ (nolock) " + "INNER JOIN DH$КонтрольНабора as DocCC (nolock) " + "ON DocCC.iddoc = journ.iddoc " + "WHERE " + "DocCC.$КонтрольНабора.Наборщик = :Employer " + "and journ.iddocdef = $КонтрольНабора " + "and DocCC.$КонтрольНабора.Дата2 = :EmptyDate " + "and not DocCC.$КонтрольНабора.Дата1 = :EmptyDate " + "and journ.ismark = 0 "; QuerySetParam(ref TextQuery, "Employer", Employer.ID); QuerySetParam(ref TextQuery, "EmptyDate", GetVoidDate()); DataTable DT; if (!ExecuteWithRead(TextQuery, out DT)) { return(false); } if (DT.Rows.Count > 0) { DataRow[] DR = DT.Select(); foreach (DataRow dr in DR) { DocsSet.Add(dr["IDDOC"].ToString()); } return(ToModeSet(null, null)); } BoxForSet = null; FCurrentMode = Mode.SetInicialization; return(true); } // ToModeSetInicialization
} // ReactionKeyDo /// <summary> /// /// </summary> /// <param name="e"></param> protected override void ReactionSCSectionDo(RefSection e) { if (CurrentAction != ActionSet.ScanAdress) { Negative("Неверно! " + SS.WhatUNeed(CurrentAction)); return; } else if (e.ID != Adress0.ID) { Negative("Неверный адрес! " + SS.WhatUNeed(CurrentAction)); return; } CurrentAction = ActionSet.ScanItem; Positive(SS.WhatUNeed(CurrentAction)); }
} // ReactionKeyDo /// <summary> /// /// </summary> /// <param name="e"></param> protected override void ReactionSCSectionDo(RefSection e) { if (CurrentAction != ActionSet.ScanAdress) { Negative("Неверно! " + SS.WhatUNeed(CurrentAction)); return; } //Проверки зон!!! RefGates ItemZone; if (e.Type == 2) { ItemZone = Item.ZonaTech; } else { //Для всех остальных видов адреса будем считать ручную зону ItemZone = Item.ZonaHand; } //Проверка if (ItemZone.Selected && e.AdressZone.Selected) { //У обоих задана зона if (ItemZone.ID != e.AdressZone.ID) { Negative("Нельзя! Товар: " + ItemZone.Name + ", адрес: " + e.AdressZone.Name); return; } } else if (ItemZone.Selected) { //только товар задан Negative("Нельзя! Товар: " + ItemZone.Name); return; } else if (e.AdressZone.Selected) { //Только у адреса задана зона Negative("Нельзя! Адрес: " + e.AdressZone.Name); return; } //else в остальных случая - нам похуй Adress1 = e; CurrentAction = ActionSet.EnterCount; Positive(SS.WhatUNeed(CurrentAction)); } // ReactionSCSectionDo
public RefSection CompleteAdress; //Адрес комплектации private void Constructor() { Proposal = new Doc(SS); TransferWindow = new RefSection(SS); SectorCC = new RefSection(SS); Setter = new RefEmployer(SS); DocCB = new Doc(SS); CompleteAdress = new RefSection(SS); DocCB.FoundID(DocCC.GetAttributeHeader("ДокументОснование").ToString()); Proposal.FoundID(DocCB.GetAttributeHeader("ДокументОснование").ToString()); SectorCC.FoundID(DocCC.GetAttributeHeader("Сектор").ToString()); TransferWindow.FoundID(DocCB.GetAttributeHeader("АдресОбразцов").ToString()); CompleteAdress.FoundID(DocCB.GetAttributeHeader("АдресКомплектации").ToString()); Setter.FoundID(DocCC.GetAttributeHeader("Наборщик").ToString()); CurrentMode = Mode.SetTransfer; FVoiceOn = true; }
protected override void ReactionDocDo(Doc doc) { if (CurrentAction != ActionSet.ScanBox) { Negative("Неверно! " + SS.WhatUNeed(CurrentAction)); return; } if (doc.TypeDoc == "КонтрольНабора") { //нам нужны все места этого документа, запомним документ и найдем первое место DocUnload.FoundID(doc.ID); string TextQuery = "SELECT TOP 1 Ref.ID as ID " + "FROM " + "$Спр.МестаПогрузки as Ref (nolock) " + "WHERE " + "$Спр.МестаПогрузки.КонтрольНабора = :DocUnload "; SQL1S.QuerySetParam(ref TextQuery, "DocUnload", DocUnload.ID); DataTable DT; if (!SS.ExecuteWithRead(TextQuery, out DT)) { Negative("Ошибка запроса! " + SS.WhatUNeed(CurrentAction)); return; } if (DT.Rows.Count == 0) { Negative("Не найдено место! " + SS.WhatUNeed(CurrentAction)); return; } BoxUnLoad.FoundID(DT.Rows[0]["ID"].ToString()); CurrentAction = ActionSet.ScanAdress; AdressUnLoad = new RefSection(SS); Refresh(); } else { Negative("Неверно! " + SS.WhatUNeed(CurrentAction)); return; } base.ReactionDocDo(doc); }
} // Init() protected override void ReactionSCSectionDo(RefSection e) { if (CurrentAction != ActionSet.ScanAdress) { Negative("Неверно! " + SS.WhatUNeed(CurrentAction)); return; } if (e.ID != Task.Adress0.ID) { Negative("Не верный адрес!"); return; } if (Task.PalleteBarcode.Trim().Length == 0 && countScan < 1) { countScan++; Positive("Ok! " + SS.WhatUNeed(CurrentAction)); return; } Adress1 = e; TaskEnd(); } // ReactionSCSectionDo
protected override void ReactionSCSectionDo(RefSection e) { if (TransferWindow.Selected) { Negative("Отдайте товар клиенту! Просканировав заявку!"); return; } if (!CompleteAdress.Selected) { //Это первая комплектация! if (e.Type != 10) { Negative("В такой тип адреса нельзя комплектовать самовывоз!"); return; } DocCB.SetAttributeHeader("АдресКомплектации", e.ID); DocCB.Save(); } TransferComplete(); }
} // ToModeSetInicialization private bool RSCSetInicialization(string IDD) { if (IsSC(IDD, "Сотрудники")) { return(ReactionCancel()); } else if (!IsSC(IDD, "Секции") || !Const.BoxSetOn) { FExcStr = "Нет действий с данным штрихкодом!"; return(false); } BoxForSet = new RefSection(this); BoxForSet.FoundIDD(IDD); if (BoxForSet.Type != 12) { FExcStr = "Неверный тип адреса! Отсканируйте коробку!"; return(false); } OnChangeMode(new ChangeModeEventArgs(Mode.SetInicialization)); //Чтобы вызвать обновление экранной формы return(true); }
} // QuitModesSet private bool RSCSet(string IDDorID, bool thisID) { if (!thisID) { if (IsSC(IDDorID, "Сотрудники")) { return(ReactionCancel()); } else if (IsSC(IDDorID, "Секции")) { RefSection Adress = new RefSection(this); if (!Adress.FoundIDD(IDDorID)) { return(false); } if (CurrentAction == ActionSet.ScanAdress) { //СКАНИРОВАНИЕ АДРЕСА if (Adress.Type == 12) { FExcStr = "Неверно! " + WhatUNeed(); return(false); } if (Adress.ID != CCItem.AdressID) { //Переход на другую строку return(ToModeSet(Adress.ID, null)); } if (CCItem.Details > 0 && Const.ImageOn) { CurrentAction = ActionSet.ScanPart; } else { CurrentAction = ActionSet.ScanItem; } FExcStr = WhatUNeed(); return(true); } else if (CurrentAction == ActionSet.ScanBox) { //СКАНИРОВАНИЕ КОРОБКИ if (Adress.Type != 12) { FExcStr = "Неверно! " + WhatUNeed(); return(false); } if (Adress.ID != DocSet.BoxID) { FExcStr = "Неверная коробка! " + WhatUNeed(); return(false); } return(CompleteLineSet()); //ВСЕ ЗАВЕРШАЕМ СТРОКУ ТУТ } else { //Какой-то другой режим вероятно? FExcStr = "Неверно! " + WhatUNeed(); return(false); } } else if (IsSC(IDDorID, "Принтеры")) { if (!Printer.FoundIDD(IDDorID)) { return(false); } } else { FExcStr = "Неверно! " + WhatUNeed(); return(false); } return(true); } else { FExcStr = "Нет действий с данным штрихкодом!"; return(false); } } // RSCSet
} // ToModeSetCompleteAfterBox private bool RSCSetComplete(string IDD) { if (IsSC(IDD, "Сотрудники")) { return(ReactionCancel()); } else if (IsSC(IDD, "Принтеры")) { if (!Printer.FoundIDD(IDD)) { return(false); } return(true); } else if (!IsSC(IDD, "Секции")) { FExcStr = "Нужна коробка и адрес предкомплектации, а не это!"; return(false); } if (Printer.Path == null) { FExcStr = "Не выбран принтер!"; return(false); } RefSection Adress = new RefSection(this); if (!Adress.FoundIDD(IDD)) { return(false); } if (DocSet.ID == null) { //Документа еще нет - значит ждем коробку if (Adress.Type != 12) { FExcStr = "Для начала нужна коробка!"; return(false); } //Это таки коробка return(ToModeSetCompleteAfrerBox(Adress)); } else if (!BoxOk && Adress.Type == 12) { //Документ уже есть, но может меняем его? return(ToModeSetCompleteAfrerBox(Adress)); } //Эти действия уже с адресом предкомплектации должны быть if (Adress.Type == 12) { FExcStr = "Отсканируйте адрес предкопмплектации!"; return(false); } if (!BoxOk) { FExcStr = "Подтвердите места по 'зеленой'!"; return(false); } Dictionary <string, object> DataMapWrite = new Dictionary <string, object>(); DataMapWrite["Спр.СинхронизацияДанных.ДокументВход"] = ExtendID(DocSet.ID, "КонтрольНабора"); DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход1"] = ExtendID(Employer.ID, "Спр.Сотрудники"); DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход2"] = ExtendID(Adress.ID, "Спр.Секции"); DataMapWrite["Спр.СинхронизацияДанных.ДатаВход1"] = DocSet.Boxes.ToString(); DataMapWrite["Спр.СинхронизацияДанных.ДатаВход2"] = Printer.Path; Dictionary <string, object> DataMapRead; List <string> FieldList = new List <string>(); FieldList.Add("Спр.СинхронизацияДанных.ДатаРез1"); if (!ExecCommand("PicingComplete", DataMapWrite, FieldList, out DataMapRead)) { return(false); } if ((int)(decimal)DataMapRead["Спр.СинхронизацияДанных.ФлагРезультата"] == -3) { FExcStr = DataMapRead["Спр.СинхронизацияДанных.ДатаРез1"].ToString(); return(false); } if ((int)(decimal)DataMapRead["Спр.СинхронизацияДанных.ФлагРезультата"] != 3) { FExcStr = "Не известный ответ робота... я озадачен..."; return(false); } FExcStr = DataMapRead["Спр.СинхронизацияДанных.ДатаРез1"].ToString(); QuitModesSet(); return(ToModeSetInicialization()); //MM = new SetInicialization(this, tmpMM); //return MM.Init(); } // RSCSetComplete
private bool RSCSampleSet(string IDDorID, bool thisID) { if (!thisID) { if (IsSC(IDDorID, "Сотрудники")) { return(ReactionCancel()); } else if (IsSC(IDDorID, "Секции")) { RefSection Adress = new RefSection(this); if (!Adress.FoundIDD(IDDorID)) { return(false); } if (CurrentAction == ActionSet.ScanAdress) { //СКАНИРОВАНИЕ АДРЕСА if (Adress.Type == 12) { FExcStr = "Неверно! " + WhatUNeed(); return(false); } if (Adress.ID != CCItem.AdressID) { return(RDSampleSet(DocSet.ID, Adress.ID)); } if (CCItem.Details > 0 && Const.ImageOn) { CurrentAction = ActionSet.ScanPart; } else { CurrentAction = ActionSet.ScanItem; } FExcStr = WhatUNeed(); return(true); } else { //Какой-то другой режим вероятно? FExcStr = "Неверно! " + WhatUNeed(); } } else if (IsSC(IDDorID, "Принтеры")) { if (!Printer.FoundIDD(IDDorID)) { return(false); } //завершаем набор образцов и посылаем задание 1с Dictionary <string, object> DataMapWrite = new Dictionary <string, object>(); DataMapWrite["Спр.СинхронизацияДанных.ДокументВход"] = ExtendID(ATDoc.ID, "АдресПеремещение"); DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход1"] = ExtendID(Printer.ID, "Спр.Принтеры"); Dictionary <string, object> DataMapRead; List <string> FieldList = new List <string>(); FieldList.Add("Спр.СинхронизацияДанных.ДатаРез1"); if (!ExecCommand("PicingSampleComplete", DataMapWrite, FieldList, out DataMapRead)) { return(false); } if ((int)(decimal)DataMapRead["Спр.СинхронизацияДанных.ФлагРезультата"] == -3) { FExcStr = DataMapRead["Спр.СинхронизацияДанных.ДатаРез1"].ToString(); return(false); } if ((int)(decimal)DataMapRead["Спр.СинхронизацияДанных.ФлагРезультата"] != 3) { FExcStr = "Не известный ответ робота... я озадачен..."; return(false); } //отбор образцов окончен, выйдем в меню Выбора работы (образцы) CurrentMode = Mode.ChoiseWorkSample; OnChangeMode(new ChangeModeEventArgs(MM)); } else { FExcStr = "Неверно! " + WhatUNeed(); return(false); } return(true); } else { FExcStr = "Нет действий с данным штрихкодом!"; return(false); } }
internal virtual ABaseMode ReactionBarcodeBase(string Barcode) { JumpCounter = 0; FResult = MMResult.None; ResultObject = this; ThereHandler = false; Dictionary<string, string> dicBarcode = Helper.DisassembleBarcode(Barcode); bool IsRef = false; bool IsObject = false; //Это реально существующий объект //Это может быть справочник! ARef Ref = null; if (Barcode.Substring(0, 2) == "25" && dicBarcode["Type"] == "113") { Ref = new RefEmployer(SS); if (Ref.FoundIDD(dicBarcode["IDD"])) { IsRef = true; OnReactionSCEmployers(Ref as RefEmployer); } if (!IsRef) { Ref = new RefSection(SS); if (Ref.FoundIDD(dicBarcode["IDD"])) { IsRef = true; OnReactionSCSection(Ref as RefSection); } } if (!IsRef) { Ref = new RefPrinter(SS); if (Ref.FoundIDD(dicBarcode["IDD"])) { IsRef = true; OnReactionSCPrinter(Ref as RefPrinter); } } } else if (dicBarcode["Type"] == "6") { Ref = new RefBox(SS); if (Ref.FoundID(dicBarcode["ID"])) { IsRef = true; OnReactionSCBox(Ref as RefBox); } } else if (Barcode.Substring(0, 2) == "26" && dicBarcode["Type"] == "113") { Doc Doc = new Doc(SS); if (Doc.FoundIDD(dicBarcode["IDD"])) { IsObject = true; OnReactionDoc(Doc); } } else if (dicBarcode["Type"] == "pallete") { //ВОТ ЭТА ХУЕТА НИ КАК НЕ УЧИТЫВАЕТСЯ (КАК ОБЪЕКТ, ВСМЫСЛЕ) // ТАК ЧТО ПОТЕНЦИАЛЬНО МОГУТ БЫТЬ ПРОБЛЕМЫ НА ВСЯКИЙ СЛУЧАЙ ВЗВОДИМ ФЛАГ IsObject = true; //OnReactionPallete(Convert.ToInt32(dicBarcode["pallete"])); OnReactionPallete(Barcode); } IsObject = IsRef ? true : IsObject; //Если это справочник, то полюбому объект if (!IsObject) { //Товаром он может быть при любом раскладе, так что если не определился как объект, то будем искать товар Ref = new RefItem(SS); if ((Ref as RefItem).FoundBarcode(Barcode)) { { IsRef = true; OnReactionSCItem(new ReactionSCEventArgs(Barcode, Ref)); } } } if (IsRef) { //Вверху обрабатывали только справочники и в какой-то из них попали OnReactionSC(new ReactionSCEventArgs(Barcode, Ref)); } OnReactionBarcode(Barcode); // просто реакция на штрихкод if (!ThereHandler) { //никакой обработчик не сработал! Отобъем исходя из настроек по умолчанию FExcStr = "Нет действий с этим ШК в данном режиме!"; FResult = MMResult.Negative; } return ResultObject; }
public AcceptanceCross(Model ReadySS, ABaseMode CallObj) : base(ReadySS, CallObj) { CurrentMode = Mode.AcceptanceCross; Adress = new RefSection(SS); }
protected virtual void ReactionSCSectionDo(RefSection e) { ThereHandlerDo = false; }
private bool ToModeSetCompleteAfrerBox(RefSection Adress) { EmpbtyBox = false; string TextQuery = "select iddoc from DH$КонтрольНабора where iddoc in (:Docs) and $КонтрольНабора.Коробка = :box"; TextQuery = TextQuery.Replace(":Docs", Helper.ListToStringWithQuotes(DocsSet)); if (Adress == null) { EmpbtyBox = true; QuerySetParam(ref TextQuery, "box", GetVoidID()); } else { QuerySetParam(ref TextQuery, "box", Adress.ID); } DataTable DT; if (!ExecuteWithRead(TextQuery, out DT)) { return(false); } if (DT.Rows.Count == 0) { FExcStr = "Сборочный с такой коробкой не найдет!"; return(false); } if (!LoadDocSet(DT.Rows[0]["iddoc"].ToString())) { return(false); } RepeatCountBox = false; BoxOk = false; DocSet.Boxes = 0; TextQuery = "Select " + "count(*) as boxes " + "from $Спр.МестаПогрузки (nolock) " + "where $Спр.МестаПогрузки.КонтрольНабора = :iddoc"; QuerySetParam(ref TextQuery, "iddoc", DocSet.ID); DT.Clear(); if (ExecuteWithRead(TextQuery, out DT)) { if (DT.Rows.Count > 0) { DocSet.Boxes = (int)DT.Rows[0]["boxes"]; } } TextQuery = "Select " + "ISNULL(RefSection.$Спр.Секции.МаксКорешков , 0) as MaxStub " + "from DH$КонтрольНабора as DocCC (nolock) " + "left join $Спр.Секции as RefSection (nolock) " + " on DocCC.$КонтрольНабора.Сектор = RefSection.id " + "where DocCC.iddoc = :iddoc"; QuerySetParam(ref TextQuery, "iddoc", DocSet.ID); DT.Clear(); if (!ExecuteWithRead(TextQuery, out DT)) { return(false); } DocSet.MaxStub = (int)(decimal)DT.Rows[0]["MaxStub"]; BoxForSet = Adress; if (Employer.SelfControl) { TextQuery = "select top 1 iddoc " + "from DT$КонтрольНабора as DocT (nolock) " + "where " + "iddoc = :iddoc " + "and DocT.$КонтрольНабора.Состояние0 = 2 " + "and DocT.$КонтрольНабора.Контроль <= 0 " + "and DocT.$КонтрольНабора.СостояниеКорр = 0 " + "and DocT.$КонтрольНабора.Количество > 0 "; QuerySetParam(ref TextQuery, "iddoc", DocSet.ID); DT.Clear(); if (!ExecuteWithRead(TextQuery, out DT)) { return(false); } if (DT.Rows.Count > 0) { //Включен самоконтроль и осталось что-то "поконтролить" return(ToModeSetSelfControl()); } } return(true); } // ToModeSetCompleteAfterBox
private bool ToModeSetInicializationRequest() { BoxForSet = null; FCurrentMode = Mode.SetInicialization; return(true); }