예제 #1
0
파일: RefillSet.cs 프로젝트: sanekkop/WPM
        } // 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
예제 #2
0
        } // 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);
        }
예제 #3
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
예제 #4
0
        } // 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();
        }
예제 #5
0
        } // 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
예제 #6
0
파일: RefillSet.cs 프로젝트: sanekkop/WPM
        }     // 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
예제 #7
0
        } // 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
예제 #8
0
파일: RefillSet.cs 프로젝트: sanekkop/WPM
        } // 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