Beispiel #1
0
        } // 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
Beispiel #2
0
        } // 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
Beispiel #3
0
        } // 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