Example #1
0
        private bool RefreshAmount()
        {
            string TextQuery =
                "select " +
                "count(*) Amount " +
                "from " +
                "DT$АдресПеремещение as Doc (nolock) " +
                "where " +
                "Doc.iddoc =:Doc " +
                "and Doc.$АдресПеремещение.Дата1 = :EmptyDate " +
                "and Doc.$АдресПеремещение.Количество > 0 ";

            //TextQuery = TextQuery.Replace(":Docs", Helper.ListToStringWithQuotes(DocsSet));
            SQL1S.QuerySetParam(ref TextQuery, "Doc", DocSet.ID);
            SQL1S.QuerySetParam(ref TextQuery, "EmptyDate", SQL1S.GetVoidDate());
            DataTable DT;

            if (!ExecuteWithRead(TextQuery, out DT))
            {
                return(false);
            }
            if (DT.Rows.Count > 0)
            {
                AllSetsRow = (int)DT.Rows[0]["Amount"];
            }
            else
            {
                AllSetsRow = 0;
            }
            return(true);
        }
Example #2
0
        } // EnterCountSampleSet

        private bool RDSampleSet(string IDD, string AdressID)
        {
            string IDDoc;
            string DocType;
            Dictionary <string, object> DataMap;

            if (!GetDocNew(IDD, out IDDoc, out DocType, out DataMap))
            {
                return(false);
            }
            if (DocType != "АдресПеремещение")
            {
                FExcStr = "Неверный тип документа!";
                return(false);
            }
            DataTable DT;
            string    TextQuery =
                "DECLARE @curdate DateTime; " +
                "SELECT @curdate = DATEADD(DAY, 1 - DAY(curdate), curdate) FROM _1ssystem (nolock); " +
                "SELECT TOP 1" +
                "journ.iddoc as IDDOC, " +
                "journ.docno as DocNo, " +
                "journ.date_time_iddoc as DateDoc, " +
                "DocATStrings.$АдресПеремещение.Товар as ID, " +
                "DocATStrings.lineno_ as LINENO_, " +
                "Goods.$Спр.Товары.КоличествоДеталей as Details, " +
                "DocATStrings.$АдресПеремещение.Адрес0 as Adress0, " +
                "Goods.descr as ItemName, " +
                "Goods.$Спр.Товары.ИнвКод as InvCode, " +
                "DocATStrings.$АдресПеремещение.Количество as Count, " +
                "DocAT.$АдресПеремещение.КолСтрок as Rows, " +
                "Sections.descr as AdressName, " +
                "ISNULL(AOT.Balance, 0) as Balance " +
                "FROM " +
                "_1sjourn as journ (nolock) " +
                "LEFT JOIN DH4327 as DocAT (nolock)ON DocAT.iddoc = journ.iddoc " +
                "LEFT JOIN DT4327 as DocATStrings (nolock) ON DocAT.iddoc = DocATStrings.iddoc " +
                "LEFT JOIN $Спр.Товары as Goods (nolock) " +
                "ON Goods.ID = DocATStrings.$АдресПеремещение.Товар " +
                "LEFT JOIN $Спр.Секции as Sections (nolock) " +
                "ON Sections.ID = DocATStrings.$АдресПеремещение.Адрес0 " +
                "LEFT JOIN ( " +
                "select " +
                "RegAOT.$Рег.АдресОстаткиТоваров.Товар as item, " +
                "RegAOT.$Рег.АдресОстаткиТоваров.Адрес as adress, " +
                "sum(RegAOT.$Рег.АдресОстаткиТоваров.Количество ) as balance " +
                "from " +
                "RG$Рег.АдресОстаткиТоваров as RegAOT (nolock) " +
                "where " +
                "period = @curdate " +
                "and $Рег.АдресОстаткиТоваров.Склад = :Warehouse " +
                "and $Рег.АдресОстаткиТоваров.Состояние = 2 " +
                "group by RegAOT.$Рег.АдресОстаткиТоваров.Товар , RegAOT.$Рег.АдресОстаткиТоваров.Адрес " +
                ") as AOT " +
                "ON AOT.item = DocATStrings.$АдресПеремещение.Товар and AOT.adress = DocATStrings.$АдресПеремещение.Адрес0 " +
                "WHERE " +
                "DocAT.iddoc = :Doc " +
                (AdressID == null ? "" : "and DocATStrings.$АдресПеремещение.Адрес0 = :Adress ") +
                "and journ.ismark = 0 " +
                "and DocAT.$АдресПеремещение.ТипДокумента = '3' " +
                "and DocATStrings.$АдресПеремещение.Дата1 = :EmptyDate ";

            SQL1S.QuerySetParam(ref TextQuery, "Doc", IDD);
            SQL1S.QuerySetParam(ref TextQuery, "EmptyDate", SQL1S.GetVoidDate());
            SQL1S.QuerySetParam(ref TextQuery, "Warehouse", Const.MainWarehouse);

            if (AdressID != null)
            {
                QuerySetParam(ref TextQuery, "Adress", AdressID);
            }

            if (!ExecuteWithRead(TextQuery, out DT))
            {
                return(false);
            }
            if (DT.Rows.Count > 0)
            {
                ATDoc.ID = DT.Rows[0]["IDDOC"].ToString();
            }
            // заглушка
            // все строчки отобраны, пусть сканируют принтер
            else
            {
                TextQuery =
                    "SELECT TOP 1" +
                    "journ.iddoc as IDDOC, " +
                    "journ.docno as DocNo, " +
                    "journ.date_time_iddoc as DateDoc " +
                    "FROM " +
                    "_1sjourn as journ (nolock) " +
                    "WHERE " +
                    "journ.iddoc = :Doc " +
                    "and journ.ismark = 0 ";
                SQL1S.QuerySetParam(ref TextQuery, "Doc", IDD);
                if (!ExecuteWithRead(TextQuery, out DT))
                {
                    return(false);
                }
                //забъем пустыми для отображения
                DocSet            = new StrictDoc();
                DocSet.View       = " АдресПеремещение " + DT.Rows[0]["DocNo"].ToString() + " (" + DT.Rows[0]["DateDoc"].ToString() + ")";
                ATDoc.ID          = DT.Rows[0]["IDDOC"].ToString();
                CCItem            = new StructItemSet();
                CCItem.ID         = "";
                CCItem.InvCode    = "";
                CCItem.Name       = "";
                CCItem.Count      = 0;
                CCItem.CountFact  = 0;
                CCItem.AdressID   = "";
                CCItem.AdressName = "";
                CCItem.CurrLine   = 0;
                CCItem.Details    = 0;
                CCItem.Balance    = 0;

                CurrentAction = ActionSet.Waiting;
                FExcStr       = WhatUNeed();
                return(true);
            }
            DocSet      = new StrictDoc();
            DocSet.View = " АдресПеремещение " + DT.Rows[0]["DocNo"].ToString() + " (" + DT.Rows[0]["DateDoc"].ToString() + ")";
            DocSet.ID   = DT.Rows[0]["IDDOC"].ToString();
            DocSet.Rows = (int)(decimal)DT.Rows[0]["Rows"];

            //обновим количество не отобранных
            RefreshAmount();

            CCItem            = new StructItemSet();
            CCItem.ID         = DT.Rows[0]["ID"].ToString();
            CCItem.InvCode    = DT.Rows[0]["InvCode"].ToString();
            CCItem.Name       = DT.Rows[0]["ItemName"].ToString();
            CCItem.Count      = (int)(decimal)DT.Rows[0]["Count"];
            CCItem.CountFact  = (int)(decimal)DT.Rows[0]["Count"];
            CCItem.AdressID   = DT.Rows[0]["Adress0"].ToString();
            CCItem.AdressName = DT.Rows[0]["AdressName"].ToString();
            CCItem.CurrLine   = (short)DT.Rows[0]["LINENO_"];
            CCItem.Details    = (int)(decimal)DT.Rows[0]["Details"];
            CCItem.Balance    = (int)(decimal)DT.Rows[0]["Balance"];


            //получим АдресВременныый из склада в АдресПеремещениии
            TextQuery =
                "SELECT " +
                "WareHouse.SP4537 as AdresTemp " +
                "FROM DH4327 " +
                "LEFT JOIN sc31 as WareHouse on WareHouse.id = DH4327.SP4308 " +
                "WHERE DH4327.iddoc = :Doc ";
            SQL1S.QuerySetParam(ref TextQuery, "Doc", IDD);
            if (!ExecuteWithRead(TextQuery, out DT))
            {
                return(false);
            }
            DocSet.AdressCollect = DT.Rows[0]["AdresTemp"].ToString();
            CurrentAction        = ActionSet.ScanAdress;
            FExcStr = WhatUNeed();
            return(true);
        }