} // 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
} // 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() { 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