} // RefillSet (constructor) /// <summary> /// /// </summary> /// <returns></returns> internal override ABaseMode Init() { if (!DocAP.Selected) { //Такой вот костыль, не знаю как обыграть пока ABaseMode tmp = GoTransportTask(); if (Result == MMResult.Positive) { FExcStr = tmp.ExcStr; return(tmp); } SS.OnReport(new ReportEventArgs("Запрашиваю задание у 1С...")); //Нет заданий кидаем для одинесины хуйню Dictionary <string, object> DataMapWrite = new Dictionary <string, object>(); DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход1"] = SS.ExtendID(Employer.ID, "Спр.Сотрудники"); string resultMessage; if (!SS.ExecCommandOnlyResultNew("RefillSetAddItem1", DataMapWrite, out resultMessage)) { return(Negative(resultMessage)); } //Попытка перейти опять сюда (в набор) if (!FindDocAP(true)) { return(Negative("Не удалось получить задание через 1С робота!")); } } // !FindDocAP() return(Refresh()); } // Init
} // TransferComplete private void SendToTablo(int flag) { Dictionary <string, object> DataMapWrite = new Dictionary <string, object>(); DataMapWrite["Спр.СинхронизацияДанных.ДокументВход"] = SS.ExtendID(DocCC.ID, "КонтрольНабора"); DataMapWrite["Спр.СинхронизацияДанных.ДатаВход1"] = flag; SS.ExecCommandNoFeedback("SendToTablo", DataMapWrite); }
} // Cancel //---------------------------------- /// <summary> /// /// </summary> private void CorrectLine() { string TextQuery = "begin tran; " + "update DT$АдресПеремещение " + "set $АдресПеремещение.Количество = :count " + "where DT$АдресПеремещение .iddoc = :iddoc and DT$АдресПеремещение .lineno_ = :currline; " + "if @@rowcount > 0 begin " + "insert into DT$АдресПеремещение ($АдресПеремещение.Товар , $АдресПеремещение.Количество ," + "$АдресПеремещение.Единица , $АдресПеремещение.Коэффициент , $АдресПеремещение.Состояние0 ," + "$АдресПеремещение.Состояние1 , $АдресПеремещение.Сотрудник0 , $АдресПеремещение.Адрес0 , $АдресПеремещение.Адрес1 ," + "$АдресПеремещение.Дата0 , $АдресПеремещение.Дата1 , $АдресПеремещение.Время0 , $АдресПеремещение.Время1 ," + "$АдресПеремещение.Док , $АдресПеремещение.НомерСтрокиДока , $АдресПеремещение.ФлагДопроведения , $АдресПеремещение.ФлагОбязательногоАдреса , " + "$АдресПеремещение.ЕдиницаШК , lineno_, iddoc) " + "select $АдресПеремещение.Товар , :CountCorrect ," + "$АдресПеремещение.Единица , $АдресПеремещение.Коэффициент , $АдресПеремещение.Состояние0 ," + ":AdressCode , :Employer , $АдресПеремещение.Адрес0 , $АдресПеремещение.Адрес0 ," + "$АдресПеремещение.Дата0 , :NowDate , $АдресПеремещение.Время0 , :NowTime ," + "$АдресПеремещение.Док , $АдресПеремещение.НомерСтрокиДока , $АдресПеремещение.ФлагДопроведения , $АдресПеремещение.ФлагОбязательногоАдреса , " + "$АдресПеремещение.ЕдиницаШК , (select max(lineno_) + 1 from DT$АдресПеремещение where iddoc = :iddoc), iddoc " + "from DT$АдресПеремещение as ForInst where ForInst.iddoc = :iddoc and ForInst.lineno_ = :currline; " + "if @@rowcount > 0 begin " + //Удалим строчку если она иссякла... "delete from DT$АдресПеремещение " + "where iddoc = :iddoc and lineno_ = :currline and $АдресПеремещение.Количество <= 0 " + " commit tran " + "end else rollback tran " + "end " + "else rollback"; SQL1S.QuerySetParam(ref TextQuery, "count", Amount - InputedCount); SQL1S.QuerySetParam(ref TextQuery, "CountCorrect", InputedCount); SQL1S.QuerySetParam(ref TextQuery, "iddoc", DocAP.ID); SQL1S.QuerySetParam(ref TextQuery, "currline", lineno_); SQL1S.QuerySetParam(ref TextQuery, "Reason", " 2EV "); SQL1S.QuerySetParam(ref TextQuery, "AdressCode", 17); SQL1S.QuerySetParam(ref TextQuery, "Employer", Employer.ID); SS.ExecuteWithoutReadNew(TextQuery); PreviousAction = "Корректировка принята " + Item.InvCode + " - " + InputedCount.ToString() + " шт. (недостача)"; //Все скорректировали к хуям! if (Amount - InputedCount <= 0) { Dictionary <string, object> DataMapWrite = new Dictionary <string, object>(); DataMapWrite["Спр.СинхронизацияДанных.ДокументВход"] = SS.ExtendID(DocAP.ID, "АдресПеремещение"); DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход1"] = SS.ExtendID(Employer.ID, "Спр.Сотрудники"); string resultMessage; SS.ExecCommandOnlyResultNew("RefillSetAddItem2", DataMapWrite, out resultMessage); } Cancel(); } // CorrectLine
} // Refresh /// <summary> /// /// </summary> private void CompleteLine() { if (!Adress.Selected) { Negative("Не указан адрес товара!"); return; } string taskComplCross; taskComplCross = ""; foreach (DataRow dr in SS.AcceptedCross.Rows) { if ((int)dr["CountPack"] == (int)dr["CountPackFull"]) { //полностью сделана taskComplCross += dr["IDDOC"].ToString() + ","; } } //отрежим последнюю запятую taskComplCross = taskComplCross.Substring(0, taskComplCross.Length - 1); Dictionary <string, object> DataMapWrite = new Dictionary <string, object>(); DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход1"] = SS.ExtendID(Employer.ID, "Спр.Сотрудники"); DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход2"] = SS.ExtendID(Adress.ID, "Спр.Секции"); DataMapWrite["Спр.СинхронизацияДанных.ДатаВход1"] = taskComplCross; Dictionary <string, object> DataMapRead; List <string> FieldList = new List <string>(); FieldList.Add("Спр.СинхронизацияДанных.ДатаРез1"); if (!SS.ExecCommand("CompleteAcceptanceCross", DataMapWrite, FieldList, out DataMapRead)) { Negative(); return; } if ((int)(decimal)DataMapRead["Спр.СинхронизацияДанных.ФлагРезультата"] == -3) { Negative(DataMapRead["Спр.СинхронизацияДанных.ДатаРез1"].ToString()); return; } if ((int)(decimal)DataMapRead["Спр.СинхронизацияДанных.ФлагРезультата"] != 3) { Negative("Не известный ответ робота... я озадачен..."); return; } FExcStr = DataMapRead["Спр.СинхронизацияДанных.ДатаРез1"].ToString(); Refresh(); }
} // RefillSetComplete (constructor) /// <summary> /// /// </summary> /// <returns></returns> internal override ABaseMode Init() { string TextQuery = "SELECT top 1 _1SJOURN.IDDOC iddoc " + "FROM _1SJOURN (NOLOCK INDEX=ACDATETIME), _1SCRDOC (NOLOCK INDEX=PARENT) " + "WHERE " + "_1SJOURN.DATE_TIME_IDDOC=_1SCRDOC.CHILD_DATE_TIME_IDDOC " + "and _1SJOURN.ismark = 0 " + "and _1SJOURN.date_time_iddoc < '19800101Z' " + "and _1SCRDOC.MDID=0 and _1SCRDOC.PARENTVAL='O1" + SS.ExtendID(DocAP.ID, DocAP.TypeDoc) + "' "; DataTable DT; SS.ExecuteWithReadNew(TextQuery, out DT); if (DT.Rows.Count == 0) { return(Negative("Нет документа второй части выкладки!")); } //Документ есть! мы его получили! SubjectDoc = Doc.GiveDocById(DT.Rows[0]["iddoc"].ToString(), SS); return(Positive(SS.WhatUNeed(CurrentAction))); } // Init
} // Init /// <summary> /// /// </summary> /// <returns></returns> internal override ABaseMode Cancel() { SS.OnReport(new ReportEventArgs("Отказ от задания...")); Dictionary <string, object> DataMapWrite = new Dictionary <string, object>(); DataMapWrite["Спр.СинхронизацияДанных.ДокументВход"] = SS.ExtendID(DocAP.ID, "АдресПеремещение"); DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход1"] = SS.ExtendID(Employer.ID, "Спр.Сотрудники"); Dictionary <string, object> DataMapRead; List <string> FieldList = new List <string>(); FieldList.Add("Спр.СинхронизацияДанных.ДатаРез1"); if (!SS.ExecCommand("RefillSetDellItem", DataMapWrite, FieldList, out DataMapRead)) { return(Negative(SS.ExcStr)); } if ((int)(decimal)DataMapRead["Спр.СинхронизацияДанных.ФлагРезультата"] == -3) { return(Negative(DataMapRead["Спр.СинхронизацияДанных.ДатаРез1"].ToString())); } return(Refresh()); } // Cancel
} // ReactionKeyDo /// <summary> /// /// </summary> private void Complete() { SS.OnReport(new ReportEventArgs("Фиксирую...")); Dictionary <string, object> DataMapWrite = new Dictionary <string, object>(); DataMapWrite["Спр.СинхронизацияДанных.ДокументВход"] = SS.ExtendID(DocAP.ID, "АдресПеремещение"); DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход1"] = SS.ExtendID(Employer.ID, "Спр.Сотрудники"); Dictionary <string, object> DataMapRead; List <string> FieldList = new List <string>(); FieldList.Add("Спр.СинхронизацияДанных.ДатаРез1"); if (!SS.ExecCommand("RefillSetComplete", DataMapWrite, FieldList, out DataMapRead)) { Negative(SS.ExcStr); return; } if ((int)(decimal)DataMapRead["Спр.СинхронизацияДанных.ФлагРезультата"] == -3) { Negative(DataMapRead["Спр.СинхронизацияДанных.ДатаРез1"].ToString()); return; } JumpTo(new RefillChoise(SS, this)); } // Complete
} // Refresh /// <summary> /// /// </summary> private void CompleteLine() { string TextQuery = "Begin tran; " + "UPDATE DH$АдресПеремещение SET " + "$АдресПеремещение.ФлагОжиданияРобота = 1 " + "WHERE " + "DH$АдресПеремещение .iddoc = :iddoc; " + "if @@rowcount > 0 begin " + "UPDATE DT$АдресПеремещение SET " + "$АдресПеремещение.Дата1 = :NowDate, " + "$АдресПеремещение.Время1 = :NowTime " + "WHERE " + "DT$АдресПеремещение .iddoc = :iddoc " + "and DT$АдресПеремещение .lineno_ = :lineno_; " + "if @@rowcount > 0 commit tran " + "else rollback tran; " + "end " + "else rollback tran;"; SQL1S.QuerySetParam(ref TextQuery, "iddoc", DocAP.ID); SQL1S.QuerySetParam(ref TextQuery, "lineno_", lineno_); SS.ExecuteWithoutReadNew(TextQuery); Dictionary <string, object> DataMapWrite = new Dictionary <string, object>(); DataMapWrite["Спр.СинхронизацияДанных.ДокументВход"] = SS.ExtendID(DocAP.ID, "АдресПеремещение"); DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход1"] = SS.ExtendID(Employer.ID, "Спр.Сотрудники"); string resultMessage; if (SS.ExecCommandOnlyResultNew("RefillSetAddItem2", DataMapWrite, out resultMessage)) { PreviousAction = "Отобрано " + Item.InvCode + " - " + Amount.ToString() + " шт. (строка " + lineno_.ToString() + ")"; } Refresh(); } // CompleteLine