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); }
} // 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); }