// GET: Develop public async Task <ActionResult> Index(HttpRequestMessage request, FormCollection formCollection) { //return View(); try { #region Логин HttpCookie CookieIPOL = Request.Cookies["CookieIPOL"]; Classes.Account.Login login = new Classes.Account.Login(); Classes.Account.Login.Field field = await Task.Run(() => login.Return(CookieIPOL, true)); //HttpCookie CookieIPOL = Request.Cookies["CookieIPOL"]; if (!field.Access) { return(Redirect("~/account/login/")); } #endregion #region Доступ в Разработчик //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDevelop")); if (iRight != 1) { return(Redirect("~/develop/noaccess/")); } #endregion #region Тема, Язык, Интерфейс //Тема ViewData["CookieT"] = CookieIPOL["CookieT"]; if (ViewData["CookieT"] == null) { ViewData["CookieT"] = 1; } //Язык ViewData["CookieL"] = CookieIPOL["CookieL"]; if (ViewData["CookieL"] == null) { ViewData["CookieL"] = 1; } //Интерфейс ViewData["CookieI"] = CookieIPOL["CookieI"]; if (ViewData["CookieI"] == null) { ViewData["CookieI"] = 1; } #endregion return(View()); } catch (Exception ex) { Classes.Function.Exceptions.ExceptionEntry exceptionEntry = new Classes.Function.Exceptions.ExceptionEntry(); return(Redirect("~/account/login/?Err=" + exceptionEntry.Return(ex))); } }
// GET: api/DocSecondHandMovementTabs public async Task <IHttpActionResult> GetDocSecondHandMovementTabs(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) //Возможно доступна Логистика int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocSecondHandMovements")); if (iRight == 3) { iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocSecondHandMovementsLogistics")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.DocSecondHandMovementID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocSecondHandMovementID", true) == 0).Value); #endregion #region APPLY JOINS ARE NOT SUPPORTED var query1 = ( from docMovementTabs in db.DocSecondHandMovementTabs //APPLY JOINS ARE NOT SUPPORTED from docSecondHandPurches in db.DocSecondHandPurches //!!! where docMovementTabs.rem2Party.DocIDFirst == docSecondHandPurches.DocID && //docMovementTabs.rem2Party.DocID == docSecondHandPurches.DocID && //!!! docMovementTabs.DocSecondHandMovementID == _params.DocSecondHandMovementID #region select select new { DocSecondHandMovementTabID = docMovementTabs.DocSecondHandMovementTabID, DocSecondHandMovementID = docMovementTabs.DocSecondHandMovementID, DirServiceNomenID = docMovementTabs.DirServiceNomenID, DocSecondHandPurchID = docSecondHandPurches.DocSecondHandPurchID, } #endregion ); var query2 = ( from docMovementTabs in db.DocSecondHandMovementTabs //APPLY JOINS ARE NOT SUPPORTED //from docSecondHandPurches in db.DocSecondHandPurches //!!! where //docMovementTabs.rem2Party.DocID == docSecondHandPurches.DocID && //!!! docMovementTabs.DocSecondHandMovementID == _params.DocSecondHandMovementID #region select select new { DocSecondHandMovementTabID = docMovementTabs.DocSecondHandMovementTabID, DocSecondHandMovementID = docMovementTabs.DocSecondHandMovementID, DirServiceNomenID = docMovementTabs.DirServiceNomenID, //DocSecondHandPurchID = docSecondHandPurches.DocSecondHandPurchID, } #endregion ); if (await query1.CountAsync() == await query2.CountAsync()) { #region Основной запрос *** *** *** var query = ( from docMovementTabs in db.DocSecondHandMovementTabs //APPLY JOINS ARE NOT SUPPORTED from docSecondHandPurches in db.DocSecondHandPurches //!!! //join docSecondHandPurches11 in db.DocSecondHandPurches on docMovementTabs.rem2Party.DocID equals docSecondHandPurches11.DocID into docSecondHandPurches12 //from docSecondHandPurches in docSecondHandPurches12.DefaultIfEmpty() join dirServiceNomens11 in db.DirServiceNomens on docMovementTabs.dirServiceNomen.Sub equals dirServiceNomens11.DirServiceNomenID into dirServiceNomens12 from dirServiceNomensSubGroup in dirServiceNomens12.DefaultIfEmpty() join dirServiceNomens21 in db.DirServiceNomens on dirServiceNomensSubGroup.Sub equals dirServiceNomens21.DirServiceNomenID into dirServiceNomens22 from dirServiceNomensGroup in dirServiceNomens22.DefaultIfEmpty() where docMovementTabs.rem2Party.DocIDFirst == docSecondHandPurches.DocID && //docMovementTabs.rem2Party.DocID == docSecondHandPurches.DocID && //!!! docMovementTabs.DocSecondHandMovementID == _params.DocSecondHandMovementID #region select select new { DocSecondHandMovementTabID = docMovementTabs.DocSecondHandMovementTabID, DocSecondHandMovementID = docMovementTabs.DocSecondHandMovementID, DirServiceNomenID = docMovementTabs.DirServiceNomenID, DocSecondHandPurchID = docSecondHandPurches.DocSecondHandPurchID, //DirServiceNomenName = docMovementTabs.dirServiceNomen.DirServiceNomenName, DirServiceNomenName = dirServiceNomensSubGroup.DirServiceNomenName == null ? docMovementTabs.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName == null ? dirServiceNomensSubGroup.DirServiceNomenName + " / " + docMovementTabs.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName + " / " + dirServiceNomensSubGroup.DirServiceNomenName + " / " + docMovementTabs.dirServiceNomen.DirServiceNomenName, Rem2PartyID = docMovementTabs.Rem2PartyID, Quantity = docMovementTabs.Quantity, PriceVAT = docMovementTabs.PriceVAT, DirCurrencyID = docMovementTabs.DirCurrencyID, DirCurrencyRate = docMovementTabs.DirCurrencyRate, DirCurrencyMultiplicity = docMovementTabs.DirCurrencyMultiplicity, DirCurrencyName = docMovementTabs.dirCurrency.DirCurrencyName + " (" + docMovementTabs.DirCurrencyRate + ", " + docMovementTabs.DirCurrencyMultiplicity + ")", //Цена в т.в. PriceCurrency = docMovementTabs.PriceCurrency, //Себестоимость SUMMovementPriceVATCurrency = docMovementTabs.Quantity * docMovementTabs.PriceCurrency == null ? 0 : Math.Round(docMovementTabs.Quantity * docMovementTabs.PriceCurrency, sysSetting.FractionalPartInSum), //Розница *** //Наценка MarkupRetail = 100 * (docMovementTabs.PriceRetailVAT - docMovementTabs.PriceVAT) / docMovementTabs.PriceVAT == null ? 0 : Math.Round(100 * (docMovementTabs.PriceRetailVAT - docMovementTabs.PriceVAT) / docMovementTabs.PriceVAT, sysSetting.FractionalPartInSum), //Розничная цена PriceRetailVAT = docMovementTabs.PriceRetailVAT, //Розничная цена в текущей валюте PriceRetailCurrency = docMovementTabs.PriceRetailCurrency, //Опт *** //Наценка MarkupWholesale = 100 * (docMovementTabs.PriceWholesaleVAT - docMovementTabs.PriceVAT) / docMovementTabs.PriceVAT == null ? 0 : Math.Round(100 * (docMovementTabs.PriceWholesaleVAT - docMovementTabs.PriceVAT) / docMovementTabs.PriceVAT, sysSetting.FractionalPartInSum), //Оптовая цена PriceWholesaleVAT = docMovementTabs.PriceWholesaleVAT, //Оптовая цена в текущей валюте PriceWholesaleCurrency = docMovementTabs.PriceWholesaleCurrency, //Интерне-Магазин *** //Наценка MarkupIM = 100 * (docMovementTabs.PriceIMVAT - docMovementTabs.PriceVAT) / docMovementTabs.PriceVAT == null ? 0 : Math.Round(100 * (docMovementTabs.PriceIMVAT - docMovementTabs.PriceVAT) / docMovementTabs.PriceVAT, sysSetting.FractionalPartInSum) , //Интернет-Магазин PriceIMVAT = docMovementTabs.PriceIMVAT, //Интернет-Магазин в текущей валюте PriceIMCurrency = docMovementTabs.PriceIMCurrency, //Причина возврата DirDescriptionID = docMovementTabs.DirDescriptionID, DirDescriptionName = docMovementTabs.dirDescription.DirDescriptionName, DirReturnTypeID = docMovementTabs.DirReturnTypeID, DirReturnTypeName = docMovementTabs.dirReturnType.DirReturnTypeName } #endregion ); #endregion #region Отправка JSON dynamic collectionWrapper = new { sucess = true, total = query.Count(), DocSecondHandMovementTab = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } else { #region Основной запрос *** *** *** var query = ( from docMovementTabs in db.DocSecondHandMovementTabs //APPLY JOINS ARE NOT SUPPORTED //from docSecondHandPurches in db.DocSecondHandPurches //!!! //join docSecondHandPurches11 in db.DocSecondHandPurches on docMovementTabs.rem2Party.DocID equals docSecondHandPurches11.DocID into docSecondHandPurches12 //from docSecondHandPurches in docSecondHandPurches12.DefaultIfEmpty() join dirServiceNomens11 in db.DirServiceNomens on docMovementTabs.dirServiceNomen.Sub equals dirServiceNomens11.DirServiceNomenID into dirServiceNomens12 from dirServiceNomensSubGroup in dirServiceNomens12.DefaultIfEmpty() join dirServiceNomens21 in db.DirServiceNomens on dirServiceNomensSubGroup.Sub equals dirServiceNomens21.DirServiceNomenID into dirServiceNomens22 from dirServiceNomensGroup in dirServiceNomens22.DefaultIfEmpty() where //docMovementTabs.rem2Party.DocID == docSecondHandPurches.DocID && //!!! docMovementTabs.DocSecondHandMovementID == _params.DocSecondHandMovementID #region select select new { DocSecondHandMovementTabID = docMovementTabs.DocSecondHandMovementTabID, DocSecondHandMovementID = docMovementTabs.DocSecondHandMovementID, DirServiceNomenID = docMovementTabs.DirServiceNomenID, //DocSecondHandPurchID = docSecondHandPurches.DocSecondHandPurchID, //DirServiceNomenName = docMovementTabs.dirServiceNomen.DirServiceNomenName, DirServiceNomenName = dirServiceNomensSubGroup.DirServiceNomenName == null ? docMovementTabs.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName == null ? dirServiceNomensSubGroup.DirServiceNomenName + " / " + docMovementTabs.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName + " / " + dirServiceNomensSubGroup.DirServiceNomenName + " / " + docMovementTabs.dirServiceNomen.DirServiceNomenName, Rem2PartyID = docMovementTabs.Rem2PartyID, Quantity = docMovementTabs.Quantity, PriceVAT = docMovementTabs.PriceVAT, DirCurrencyID = docMovementTabs.DirCurrencyID, DirCurrencyRate = docMovementTabs.DirCurrencyRate, DirCurrencyMultiplicity = docMovementTabs.DirCurrencyMultiplicity, DirCurrencyName = docMovementTabs.dirCurrency.DirCurrencyName + " (" + docMovementTabs.DirCurrencyRate + ", " + docMovementTabs.DirCurrencyMultiplicity + ")", //Цена в т.в. PriceCurrency = docMovementTabs.PriceCurrency, //Себестоимость SUMMovementPriceVATCurrency = docMovementTabs.Quantity * docMovementTabs.PriceCurrency == null ? 0 : Math.Round(docMovementTabs.Quantity * docMovementTabs.PriceCurrency, sysSetting.FractionalPartInSum), //Розница *** //Наценка MarkupRetail = 100 * (docMovementTabs.PriceRetailVAT - docMovementTabs.PriceVAT) / docMovementTabs.PriceVAT == null ? 0 : Math.Round(100 * (docMovementTabs.PriceRetailVAT - docMovementTabs.PriceVAT) / docMovementTabs.PriceVAT, sysSetting.FractionalPartInSum), //Розничная цена PriceRetailVAT = docMovementTabs.PriceRetailVAT, //Розничная цена в текущей валюте PriceRetailCurrency = docMovementTabs.PriceRetailCurrency, //Опт *** //Наценка MarkupWholesale = 100 * (docMovementTabs.PriceWholesaleVAT - docMovementTabs.PriceVAT) / docMovementTabs.PriceVAT == null ? 0 : Math.Round(100 * (docMovementTabs.PriceWholesaleVAT - docMovementTabs.PriceVAT) / docMovementTabs.PriceVAT, sysSetting.FractionalPartInSum), //Оптовая цена PriceWholesaleVAT = docMovementTabs.PriceWholesaleVAT, //Оптовая цена в текущей валюте PriceWholesaleCurrency = docMovementTabs.PriceWholesaleCurrency, //Интерне-Магазин *** //Наценка MarkupIM = 100 * (docMovementTabs.PriceIMVAT - docMovementTabs.PriceVAT) / docMovementTabs.PriceVAT == null ? 0 : Math.Round(100 * (docMovementTabs.PriceIMVAT - docMovementTabs.PriceVAT) / docMovementTabs.PriceVAT, sysSetting.FractionalPartInSum) , //Интернет-Магазин PriceIMVAT = docMovementTabs.PriceIMVAT, //Интернет-Магазин в текущей валюте PriceIMCurrency = docMovementTabs.PriceIMCurrency, //Причина возврата DirDescriptionID = docMovementTabs.DirDescriptionID, DirDescriptionName = docMovementTabs.dirDescription.DirDescriptionName, DirReturnTypeID = docMovementTabs.DirReturnTypeID, DirReturnTypeName = docMovementTabs.dirReturnType.DirReturnTypeName } #endregion ); #endregion #region Отправка JSON dynamic collectionWrapper = new { sucess = true, total = query.Count(), DocSecondHandMovementTab = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/DocServicePurch2Tabs public async Task <IHttpActionResult> GetDocServicePurch2Tabs(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) /* * int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocServicePurches")); * if (iRight == 3) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))); */ //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.DocServicePurchID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocServicePurchID", true) == 0).Value); //Получаем Docs.DocIDBase int?_DocID = 0; var queryDocIDBase = await ( from x in db.DocServicePurches where x.DocServicePurchID == _params.DocServicePurchID select x ).ToListAsync(); if (queryDocIDBase.Count() > 0) { _DocID = queryDocIDBase[0].doc.DocID; } #endregion #region Основной запрос *** *** *** var query = ( from x in db.DocServicePurch2Tabs join dirNomens11 in db.DirNomens on x.dirNomen.Sub equals dirNomens11.DirNomenID into dirNomens12 from dirNomensSubGroup in dirNomens12.DefaultIfEmpty() where x.DocServicePurchID == _params.DocServicePurchID #region select select new { IsZakaz = false, DocServicePurch2TabID = x.DocServicePurch2TabID, DocServicePurchID = x.DocServicePurchID, DirEmployeeID = x.DirEmployeeID, DirEmployeeName = x.dirEmployee.DirEmployeeName, DirNomenID = x.DirNomenID, //DirNomenName = x.dirNomen.DirNomenName, DirNomenName = dirNomensSubGroup.DirNomenName == null ? x.dirNomen.DirNomenName : dirNomensSubGroup.DirNomenName + " / " + x.dirNomen.DirNomenName, RemPartyID = x.RemPartyID, PriceVAT = x.PriceVAT, PriceCurrency = x.PriceCurrency, DirCurrencyID = x.DirCurrencyID, DirCurrencyRate = x.DirCurrencyRate, DirCurrencyMultiplicity = x.DirCurrencyMultiplicity, DirCurrencyName = x.dirCurrency.DirCurrencyName + " (" + x.DirCurrencyRate + ", " + x.DirCurrencyMultiplicity + ")", TabDate = x.TabDate, PayDate = x.PayDate, RemontN = x.RemontN, } #endregion ); //Заказы !!! if (_DocID > 0) { int? DocServicePurch2TabID = null, RemontN = null; int DocServicePurchID = _params.DocServicePurchID; DateTime?PayDate = null; query = query.Concat ( from x in db.DocOrderInts //join dirNomens11 in db.DirNomens on x.dirNomen.Sub equals dirNomens11.DirNomenID into dirNomens12 //from dirNomensSubGroup in dirNomens12.DefaultIfEmpty() where x.doc.DocIDBase == _DocID && x.DirOrderIntStatusID < 4 #region select select new { IsZakaz = true, DocServicePurch2TabID = DocServicePurch2TabID, //x.DocServicePurch2TabID, DocServicePurchID = DocServicePurchID, DirEmployeeID = x.doc.DirEmployeeID, DirEmployeeName = x.doc.dirEmployee.DirEmployeeName, DirNomenID = x.DocOrderIntID, //x.DirNomenID == null ? 0 : x.DirNomenID, //x.DirNomenCategoryID, //x.DirNomenID, //===== !!! DirNomenCategoryID !!! //DirNomenName = x.dirNomen.DirNomenName, DirNomenName = x.dirNomen1.DirNomenName + " / " + x.dirNomen2.DirNomenName + " / " + x.dirNomenCategory.DirNomenCategoryName, RemPartyID = 0, //x.RemPartyID, PriceVAT = x.PriceVAT, PriceCurrency = x.PriceCurrency, DirCurrencyID = x.DirCurrencyID, DirCurrencyRate = x.DirCurrencyRate, DirCurrencyMultiplicity = x.DirCurrencyMultiplicity, DirCurrencyName = x.dirCurrency.DirCurrencyName + " (" + x.DirCurrencyRate + ", " + x.DirCurrencyMultiplicity + ")", TabDate = x.doc.DocDate, //x.TabDate, PayDate = PayDate, //x.PayDate, RemontN = RemontN, } #endregion ); } #endregion #region Отправка JSON dynamic collectionWrapper = new { sucess = true, total = query.Count(), DocServicePurch2Tab = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/DocSecondHandInvTabs public async Task <IHttpActionResult> GetDocSecondHandInvTabs(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocSecondHandInventories")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.DocSecondHandInvID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocSecondHandInvID", true) == 0).Value); #endregion #region Основной запрос *** *** *** var query = ( from docSecondHandInvTabs in db.DocSecondHandInvTabs join dirServiceNomens11 in db.DirServiceNomens on docSecondHandInvTabs.dirServiceNomen.Sub equals dirServiceNomens11.DirServiceNomenID into dirServiceNomens12 from dirServiceNomensSubGroup in dirServiceNomens12.DefaultIfEmpty() join dirServiceNomens21 in db.DirServiceNomens on dirServiceNomensSubGroup.Sub equals dirServiceNomens21.DirServiceNomenID into dirServiceNomens22 from dirServiceNomensGroup in dirServiceNomens22.DefaultIfEmpty() where docSecondHandInvTabs.DocSecondHandInvID == _params.DocSecondHandInvID #region select select new { DocSecondHandPurchID = docSecondHandInvTabs.DocSecondHandPurchID, DocDate = docSecondHandInvTabs.docSecondHandInv.doc.DocDate, DocSecondHandInvTabID = docSecondHandInvTabs.DocSecondHandInvTabID, DocSecondHandInvID = docSecondHandInvTabs.DocSecondHandInvID, DirServiceNomenID = docSecondHandInvTabs.DirServiceNomenID, //DirServiceNomenName = docSecondHandInvTabs.dirServiceNomen.DirServiceNomenName, DirServiceNomenName = dirServiceNomensSubGroup.DirServiceNomenName == null ? docSecondHandInvTabs.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName == null ? dirServiceNomensSubGroup.DirServiceNomenName + " / " + docSecondHandInvTabs.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName + " / " + dirServiceNomensSubGroup.DirServiceNomenName + " / " + docSecondHandInvTabs.dirServiceNomen.DirServiceNomenName, PriceVAT = docSecondHandInvTabs.PriceVAT, PriceRetailVAT = docSecondHandInvTabs.docSecondHandPurch.PriceRetailVAT, DirCurrencyID = docSecondHandInvTabs.DirCurrencyID, DirCurrencyRate = docSecondHandInvTabs.DirCurrencyRate, DirCurrencyMultiplicity = docSecondHandInvTabs.DirCurrencyMultiplicity, DirCurrencyName = docSecondHandInvTabs.dirCurrency.DirCurrencyName + " (" + docSecondHandInvTabs.DirCurrencyRate + ", " + docSecondHandInvTabs.DirCurrencyMultiplicity + ")", Exist = docSecondHandInvTabs.Exist, DirSecondHandStatusName = docSecondHandInvTabs.dirSecondHandStatus.DirSecondHandStatusName, //Exist /* * ExistName = docSecondHandInvTabs.Exist == 1 ? "Присутствует" * : * docSecondHandInvTabs.Exist == 2 ? "Списывается с ЗП" * : * docSecondHandInvTabs.Exist == 4 ? "Отсутствует" * : * "На разбор", */ ExistName = docSecondHandInvTabs.Exist == 1 ? "Присутствует" : docSecondHandInvTabs.Exist == 2 ? "Отсутствует" : "????????????????", //Цена в т.в. PriceRetailCurrency = docSecondHandInvTabs.docSecondHandPurch.PriceRetailCurrency, PriceCurrency = docSecondHandInvTabs.PriceCurrency, //Себестоимость SUMSalePriceVATCurrency = docSecondHandInvTabs.PriceCurrency == null ? 0 : Math.Round(docSecondHandInvTabs.PriceCurrency, sysSetting.FractionalPartInSum) } #endregion ); #endregion #region Отправка JSON dynamic collectionWrapper = new { sucess = true, total = query.Count(), DocSecondHandInvTab = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
public async Task <IHttpActionResult> GetDirBonus2Tab(int id) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirBonuses")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Отправка JSON var query = ( from dirBonus2Tabs in db.DirBonus2Tabs where dirBonus2Tabs.DirBonus2ID == id select new { DirBonus2ID = dirBonus2Tabs.DirBonus2ID, SumBegin = dirBonus2Tabs.SumBegin, Bonus = dirBonus2Tabs.Bonus } ).OrderBy(x => x.SumBegin); //К-во int dirCount = await Task.Run(() => query.Count()); dynamic collectionWrapper = new { sucess = true, total = dirCount, DirBonus2Tab = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
public async Task<IHttpActionResult> PutDirWarehouse(HttpRequestMessage request) //HttpPostedFileBase upload { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10)); //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //dbRead = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) /* int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocAccounts")); if (iRight == 3) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))); */ if(field.DirEmployeeID != 1) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))); //Разные Функции function.NumberDecimalSeparator(); //Получам настройки sysSetting = await db.SysSettings.FindAsync(1); //Получаем сотрудника: если к нему привязан Склад и/или Организация, то выбираем документы только по этим характеристикам Models.Sklad.Dir.DirEmployee dirEmployee = await db.DirEmployees.FindAsync(field.DirEmployeeID); #endregion #region Параметры //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры sheetName = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "sheetName", true) == 0).Value; DirContractorIDOrg = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirContractorIDOrg", true) == 0).Value); DirContractorID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirContractorID", true) == 0).Value); DirWarehouseID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirWarehouseID", true) == 0).Value); #endregion #region Сохранение OleDbConnection OleDbConn = null; try { //Алгоритм: //0. Проверка //1. Генерируем ID-шник "SysGens" //2. Получаем файл и сохраняем в папаке "Uploads" с именем: authCookie["CookieB"] + "_" + sysGen.SysGenID //3. Считываем Эксель файл // [Код товара], [Категория], [Товар] //Получаем категорию "APPLE/ iPhone 4S/ Распродажа/ Распродажа Swarovski /" //Разделитель "/" и убираем первый пробел //Проверяем каждую получиную категорию: есть ли связка (Sub, Name) //Если нет - вносим категорию, а потом товар: ([Код товара], [Товар]) //Если есть - вносим товар: ([Код товара], [Товар]) // *** Важно *** *** *** //1.Находим максимальный код группы //2.Создаём коды групп (Макс + 1) //3.Создаём коды товаров(из Эксель) #region 0. Проверка *** *** *** *** *** *** *** if (!Request.Content.IsMimeMultipartContent()) Ok(returnServer.Return(false, "{" + "'msgType':'1', 'msg':'" + Classes.Language.Sklad.Language.msg57(0) + "'}")); #endregion #region 1. Генерируем ID-шник "SysGens" *** *** *** *** *** *** *** Models.Sklad.Sys.SysGen sysGen = new Models.Sklad.Sys.SysGen(); sysGen.SysGenDisc = ""; sysGen.SysGenID = null; //if (!ModelState.IsValid) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg91)); //return BadRequest(ModelState); db.Entry(sysGen).State = EntityState.Added; await db.SaveChangesAsync(); #endregion #region 2. Получаем файл и сохраняем в папаке "Uploads" с именем: authCookie["CookieB"] + "_" + sysGen.SysGenID *** *** *** *** *** *** *** string filePatch = ""; var provider = new MultipartMemoryStreamProvider(); string root = System.Web.HttpContext.Current.Server.MapPath("~/UsersTemp/FileStock/"); await Request.Content.ReadAsMultipartAsync(provider); foreach (var file in provider.Contents) { if (file.Headers.ContentDisposition.FileName != null) { var filename = file.Headers.ContentDisposition.FileName.Trim('\"'); var ext = Path.GetExtension(filename); filePatch = root + field.DirCustomersID + "_" + sysGen.SysGenID + ext; byte[] fileArray = await file.ReadAsByteArrayAsync(); using (System.IO.FileStream fs = new System.IO.FileStream(filePatch, System.IO.FileMode.Create)) //root + filename { await fs.WriteAsync(fileArray, 0, fileArray.Length); } } } #endregion #region 3. Получаем максимальный код группы var queryMaxGroupID = await Task.Run(() => ( from x in db.DirNomens where x.DirNomenCategoryID == null select x ).MaxAsync(x => x.DirNomenID)); iMaxGroupID = queryMaxGroupID + 1; if (iMaxGroupID == null || iMaxGroupID == 0) iMaxGroupID = 1; #endregion #region 4. Считываем Эксель файл if (filePatch.Length > 0) { //1. Получаем категорию "APPLE/ iPhone 4S/ Распродажа/ Распродажа Swarovski /" //2. Разделитель "/" и убираем первый пробел //3. Проверяем каждую получиную категорию: есть ли связка (Sub, Name) //4. Если нет - вносим категорию, а потом товар: ([Код товара], [Товар]) //5. Если есть - вносим товар: ([Код товара], [Товар]) string sExcelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePatch + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1;\""; //8.0 using (OleDbConn = new OleDbConnection(sExcelConnectionString)) { OleDbConn.Open(); using (OleDbCommand OleDbCmd = new OleDbCommand("", OleDbConn)) { #region 1. Таблица "Товар" OleDbCmd.CommandText = "SELECT * FROM [" + sheetName + "$]"; OleDbCmd.Parameters.Clear(); using (OleDbDataReader dr = OleDbCmd.ExecuteReader()) { using (System.Data.Entity.DbContextTransaction ts = db.Database.BeginTransaction()) { while (dr.Read()) { if (dr["Код товара"].ToString().Length == 5) { //Read string DirNomenID = dr["Код товара"].ToString(); string GroupList = dr["Категория"].ToString(); string DirNomenName = dr["Товар"].ToString(); //Create Group in database await Task.Run(() => GroupCreate(Convert.ToInt32(DirNomenID), GroupList, DirNomenName)); } else { alCodeNot.Add(dr["Код товара"].ToString() + " - " + dr["Категория"].ToString() + " - " + dr["Товар"].ToString()); //... } } ts.Commit(); } } #endregion #region 2. Таблицы: Характеристики, Приходная накладная (Шапка + Спецификация), Остатки, Партии. (Новый алгоритм алгоритм: одна приходная накладная) //1. Надо получить все точки из Эксель (GROUP BY) //2. И делать SELECT по точкам, что бы сформировать приходные накладные по точкам OleDbCmd.CommandText = "SELECT [Точка] FROM [" + sheetName + "$] GROUP BY [Точка] ORDER BY [Точка]"; OleDbCmd.Parameters.Clear(); ArrayList alDirWarehouseID = new ArrayList(); using (OleDbDataReader dr = OleDbCmd.ExecuteReader()) { while (dr.Read()) { alDirWarehouseID.Add(dr["Точка"].ToString()); } } //Формируем "Приходные накладные" using (System.Data.Entity.DbContextTransaction ts = db.Database.BeginTransaction()) { for (int i = 0; i < alDirWarehouseID.Count; i++) { Models.Sklad.Doc.DocPurch docPurch = new Models.Sklad.Doc.DocPurch(); ArrayList alWrite = new ArrayList(); //OleDbCmd.CommandText = "SELECT * FROM [" + sheetName + "$] WHERE Дата=@pDate"; OleDbCmd.CommandText = "SELECT * FROM [" + sheetName + "$] WHERE Точка=@Точка"; // ORDER BY [Код товара], [Дата] DESC OleDbCmd.Parameters.Clear(); OleDbCmd.Parameters.AddWithValue("@Точка", alDirWarehouseID[i].ToString()); using (OleDbDataReader dr = OleDbCmd.ExecuteReader()) { while (dr.Read()) { if (dr["Код товара"].ToString().Length == 5) { Field1 field1 = new Field1(); field1.DirNomenID = Convert.ToInt32(dr["Код товара"].ToString()); field1.DocDate = dr["Дата"].ToString(); //field1.DirWarehouseID = ReturnDirWarehouseID(dr["Точка"].ToString()); field1.DirWarehouseID = await Task.Run(() => ReturnDirWarehouseID(dr["Точка"].ToString())); field1.Quantity = Convert.ToInt32(dr["Остаток"].ToString()); field1.PriceVAT = Convert.ToDouble(dr["Закуп цена за ед"].ToString()); field1.PriceCurrency = Convert.ToDouble(dr["Закуп цена за ед"].ToString()); field1.PriceRetailVAT = Convert.ToDouble(dr["Цена-1"].ToString()); field1.PriceRetailCurrency = Convert.ToDouble(dr["Цена-1"].ToString()); field1.PriceWholesaleVAT = Convert.ToDouble(dr["Цена-2"].ToString()); field1.PriceWholesaleCurrency = Convert.ToDouble(dr["Цена-2"].ToString()); field1.PriceIMVAT = Convert.ToDouble(dr["Цена-3"].ToString()); field1.PriceIMCurrency = Convert.ToDouble(dr["Цена-3"].ToString()); field1.DirCharColourID = ReturnDirCharColourID(dr["Поставщик"].ToString()); field1.DirCharTextureID = ReturnDirCharTextureID(dr["Примечание"].ToString()); alWrite.Add(field1); } else { //alCodeNot.Add(dr["Код товара"].ToString() + " - " + dr["Категория"].ToString() + " - " + dr["Товар"].ToString()); //... } } } //Create Purchase documents and Remnants of goods in stock docPurch = await Task.Run(() => DocsCreate(alWrite)); #region Чистим пустые партии товара, но только соотвутствующие Номеру документа, что бы НЕ удалить все пустые (0, 0) SQLiteParameter parDocID = new SQLiteParameter("@DocID", System.Data.DbType.Int32) { Value = docPurch.DocID }; await db.Database.ExecuteSqlCommandAsync("DELETE FROM RemParties WHERE DocID=@DocID and Remnant=0; ", parDocID); #endregion } ts.Commit(); } #endregion } OleDbConn.Close(); } } #endregion #region 5. Send dynamic collectionWrapper = new { Msg = "Файл загружен!" }; return Ok(returnServer.Return(true, collectionWrapper)); #endregion } catch (Exception ex) { try { OleDbConn.Close(); OleDbConn.Dispose(); } catch { } return Ok(returnServer.Return(false, exceptionEntry.Return(ex) + i777.ToString())); } #endregion }
// GET: api/DocSales public async Task <IHttpActionResult> GetDocSales(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); dbRead = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocServicePurchesReport")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); //Получаем сотрудника: если к нему привязан Склад и/или Организация, то выбираем документы только по этим характеристикам Models.Sklad.Dir.DirEmployee dirEmployee = await db.DirEmployees.FindAsync(field.DirEmployeeID); #endregion #region Параметры //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); pID = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "pID", true) == 0).Value; pLanguage = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "pLanguage", true) == 0).Value); DateS = Convert.ToDateTime(Convert.ToDateTime(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DateS", true) == 0).Value).ToString("yyyy-MM-dd 23:59:59")); if (DateS < Convert.ToDateTime("01.01.1800")) { DateS = Convert.ToDateTime(sysSetting.JurDateS.ToString("yyyy-MM-dd 00:00:00")).AddDays(-1); } else { DateS = DateS.AddDays(-1); } DatePo = Convert.ToDateTime(Convert.ToDateTime(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DatePo", true) == 0).Value).ToString("yyyy-MM-dd 23:59:59")); if (DatePo < Convert.ToDateTime("01.01.1800")) { DatePo = Convert.ToDateTime(sysSetting.JurDatePo.ToString("yyyy-MM-dd 23:59:59")); } TypeRepair = false; bool bTypeRepair = Boolean.TryParse(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "TypeRepair", true) == 0).Value, out TypeRepair); //TypeRepair DirContractorIDOrg = 0; bool bDirContractorIDOrg = Int32.TryParse(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirContractorIDOrg", true) == 0).Value, out DirContractorIDOrg); //DirContractorIDOrg DirContractorNameOrg = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirContractorNameOrg", true) == 0).Value; //Request.Params["DirContractorNameOrg"]; DirWarehouseID = 0; bool bDirWarehouseID = Int32.TryParse(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirWarehouseID", true) == 0).Value, out DirWarehouseID); //DirWarehouseID DirWarehouseName = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirWarehouseName", true) == 0).Value; //Request.Params["DirWarehouseName"]; DirServiceStatusID = 0; bool bDirServiceStatusID = Int32.TryParse(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirServiceStatusID", true) == 0).Value, out DirServiceStatusID); //DirServiceStatusID DirServiceStatusName = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirServiceStatusName", true) == 0).Value; //Request.Params["DirServiceStatusName"]; DirEmployeeID = 0; bool bDirEmployeeID = Int32.TryParse(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirEmployeeID", true) == 0).Value, out DirEmployeeID); //DirEmployeeID DirEmployeeName = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirEmployeeName", true) == 0).Value; //Request.Params["DirEmployeeName"]; DirEmployeeIDMaster = 0; bool bDirEmployeeIDMaster = Int32.TryParse(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirEmployeeIDMaster", true) == 0).Value, out DirEmployeeIDMaster); //DirEmployeeIDMaster DirEmployeeNameMaster = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirEmployeeNameMaster", true) == 0).Value; //Request.Params["DirEmployeeNameMaster"]; DirServiceContractorID = 0; bool bDirServiceContractorID = Int32.TryParse(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirServiceContractorID", true) == 0).Value, out DirServiceContractorID); //DirServiceContractorID DirServiceContractorName = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirServiceContractorName", true) == 0).Value; // Request.Params["DirServiceContractorName"]; ReportType = 0; bool bReportType = Int32.TryParse(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "ReportType", true) == 0).Value, out ReportType); //ReportType ReportTypeName = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "ReportTypeName", true) == 0).Value; // Request.Params["ReportTypeName"]; #endregion #region queryTemp var queryTemp = ( #region from from docServicePurches in db.DocServicePurches join dirServiceNomens11 in db.DirServiceNomens on docServicePurches.dirServiceNomen.Sub equals dirServiceNomens11.DirServiceNomenID into dirServiceNomens12 from dirServiceNomensSubGroup in dirServiceNomens12.DefaultIfEmpty() join dirServiceNomens21 in db.DirServiceNomens on dirServiceNomensSubGroup.Sub equals dirServiceNomens21.DirServiceNomenID into dirServiceNomens22 from dirServiceNomensGroup in dirServiceNomens22.DefaultIfEmpty() /* * join docServicePurch1Tabs1 in db.DocServicePurch1Tabs on docServicePurches.DocServicePurchID equals docServicePurch1Tabs1.DocServicePurchID into docServicePurch1Tabs2 * from docServicePurch1Tabs in docServicePurch1Tabs2.DefaultIfEmpty() * //where docServicePurch1Tabs.PriceCurrency > 0 */ /* * join docServicePurch2Tabs1 in db.DocServicePurch2Tabs on docServicePurches.DocServicePurchID equals docServicePurch2Tabs1.DocServicePurchID into docServicePurch2Tabs2 * from docServicePurch2Tabs in docServicePurch2Tabs2.DefaultIfEmpty() * //where docServicePurch2Tabs.PriceCurrency > 0 */ #endregion where docServicePurches.doc.DirContractorIDOrg == DirContractorIDOrg //&& docServicePurches.doc.DocDate >= DateS && docServicePurches.doc.DocDate <= DatePo #region group /* * group new { docServicePurch1Tabs, docServicePurch2Tabs } * //group new { docServicePurches } * by new * { * DocID = docServicePurches.DocID, * DocDate = docServicePurches.doc.DocDate, * Base = docServicePurches.doc.Base, * Held = docServicePurches.doc.Held, * Discount = docServicePurches.doc.Discount, * Del = docServicePurches.doc.Del, * Description = docServicePurches.doc.Description, * IsImport = docServicePurches.doc.IsImport, * DirVatValue = docServicePurches.doc.DirVatValue, * //DirPaymentTypeID = docServicePurches.doc.DirPaymentTypeID, * * //Принял * DirEmployeeID = docServicePurches.doc.DirEmployeeID, * DirEmployeeName = docServicePurches.doc.dirEmployee.DirEmployeeName, * //Мастер * DirEmployeeIDMaster = docServicePurches.DirEmployeeIDMaster, * DirEmployeeNameMaster = docServicePurches.dirEmployee.DirEmployeeName, * * DirServiceNomenID = docServicePurches.DirServiceNomenID, * //DirServiceNomenName = docServicePurches.dirServiceNomen.DirServiceNomenName, * DirServiceNomenName = * dirServiceNomensSubGroup.DirServiceNomenName == null ? docServicePurches.dirServiceNomen.DirServiceNomenName : * dirServiceNomensGroup.DirServiceNomenName == null ? dirServiceNomensSubGroup.DirServiceNomenName + " / " + docServicePurches.dirServiceNomen.DirServiceNomenName : * dirServiceNomensGroup.DirServiceNomenName + " / " + dirServiceNomensSubGroup.DirServiceNomenName + " / " + docServicePurches.dirServiceNomen.DirServiceNomenName, * * DocServicePurchID = docServicePurches.DocServicePurchID, * DirContractorName = docServicePurches.doc.dirContractor.DirContractorName, * DirContractorIDOrg = docServicePurches.doc.dirContractorOrg.DirContractorID, * DirContractorNameOrg = docServicePurches.doc.dirContractorOrg.DirContractorName, * DirWarehouseID = docServicePurches.dirWarehouse.DirWarehouseID, * DirWarehouseName = docServicePurches.dirWarehouse.DirWarehouseName, * * DirServiceStatusID = docServicePurches.DirServiceStatusID, * DirServiceStatusID_789 = docServicePurches.DirServiceStatusID_789, * SerialNumber = docServicePurches.SerialNumber, * TypeRepair = docServicePurches.TypeRepair, * ComponentDevice = docServicePurches.ComponentDevice, * * ComponentBattery = docServicePurches.ComponentBattery, * ComponentBatterySerial = docServicePurches.ComponentBatterySerial, * ComponentBackCover = docServicePurches.ComponentBackCover, * ComponentPasTextNo = docServicePurches.ComponentPasTextNo, * ComponentPasText = docServicePurches.ComponentPasText, * ComponentOtherText = docServicePurches.ComponentOtherText, * ProblemClientWords = docServicePurches.ProblemClientWords, * Note = docServicePurches.Note, * DirServiceContractorName = docServicePurches.DirServiceContractorName, * DirServiceContractorRegular = docServicePurches.DirServiceContractorRegular, * DirServiceContractorID = docServicePurches.DirServiceContractorID, * DirServiceContractorAddress = docServicePurches.DirServiceContractorAddress, * DirServiceContractorPhone = docServicePurches.DirServiceContractorPhone, * DirServiceContractorEmail = docServicePurches.DirServiceContractorEmail, * * PriceVAT = docServicePurches.PriceVAT, * //PriceCurrency = docServicePurches.PriceCurrency, * * DirCurrencyID = docServicePurches.DirCurrencyID, * DirCurrencyRate = docServicePurches.DirCurrencyRate, * DirCurrencyMultiplicity = docServicePurches.DirCurrencyMultiplicity, * DirCurrencyName = docServicePurches.dirCurrency.DirCurrencyName + " (" + docServicePurches.DirCurrencyRate + ", " + docServicePurches.DirCurrencyMultiplicity + ")", * * DateDone = docServicePurches.DateDone, * UrgentRepairs = docServicePurches.UrgentRepairs, * Prepayment = docServicePurches.Prepayment, * PrepaymentSum = docServicePurches.PrepaymentSum == null ? 0 : docServicePurches.PrepaymentSum, * * IssuanceDate = docServicePurches.IssuanceDate, * DateStatusChange = docServicePurches.DateStatusChange, * * //Оплата * Payment = docServicePurches.doc.Payment, * * //Сумма Выполненный работ + Запчастей * Sums = docServicePurches.Sums, * Sums1 = docServicePurches.Sums1, * Sums2 = docServicePurches.Sums2, * } * into g */ #endregion #region select docServicePurches select new { DocID = docServicePurches.DocID, DocDate = docServicePurches.doc.DocDate.ToString(), DocDate1 = docServicePurches.doc.DocDate, Base = docServicePurches.doc.Base, Held = docServicePurches.doc.Held, Del = docServicePurches.doc.Del, Description = docServicePurches.doc.Description, IsImport = docServicePurches.doc.IsImport, DirVatValue = docServicePurches.doc.DirVatValue, //DirPaymentTypeID = docServicePurches.DirPaymentTypeID, //DirPaymentTypeName = docServicePurches.DirPaymentTypeName, //Принял DirEmployeeID = docServicePurches.doc.DirEmployeeID, DirEmployeeName = docServicePurches.doc.dirEmployee.DirEmployeeName, //Мастер DirEmployeeIDMaster = docServicePurches.DirEmployeeIDMaster, DirEmployeeNameMaster = docServicePurches.dirEmployee.DirEmployeeName, DirServiceNomenID = docServicePurches.DirServiceNomenID, //DirServiceNomenName = docServicePurches.dirServiceNomen.DirServiceNomenName, DirServiceNomenName = dirServiceNomensSubGroup.DirServiceNomenName == null ? docServicePurches.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName == null ? dirServiceNomensSubGroup.DirServiceNomenName + " / " + docServicePurches.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName + " / " + dirServiceNomensSubGroup.DirServiceNomenName + " / " + docServicePurches.dirServiceNomen.DirServiceNomenName, DocServicePurchID = docServicePurches.DocServicePurchID, DirContractorName = docServicePurches.doc.dirContractor.DirContractorName, DirContractorIDOrg = docServicePurches.doc.dirContractorOrg.DirContractorID, DirContractorNameOrg = docServicePurches.doc.dirContractorOrg.DirContractorName, DirWarehouseID = docServicePurches.DirWarehouseID, DirWarehouseName = docServicePurches.dirWarehouse.DirWarehouseName, DirServiceStatusID = docServicePurches.DirServiceStatusID, DirServiceStatusID_789 = docServicePurches.DirServiceStatusID_789, SerialNumber = docServicePurches.SerialNumber, TypeRepair = docServicePurches.TypeRepair, ComponentDevice = docServicePurches.ComponentDevice, ComponentBattery = docServicePurches.ComponentBattery, ComponentBatterySerial = docServicePurches.ComponentBatterySerial, ComponentBackCover = docServicePurches.ComponentBackCover, ComponentPasTextNo = docServicePurches.ComponentPasTextNo, ComponentPasText = docServicePurches.ComponentPasText, ComponentOtherText = docServicePurches.ComponentOtherText, ProblemClientWords = docServicePurches.ProblemClientWords, Note = docServicePurches.Note, DirServiceContractorName = docServicePurches.DirServiceContractorName, DirServiceContractorRegular = docServicePurches.DirServiceContractorRegular, DirServiceContractorID = docServicePurches.DirServiceContractorID, DirServiceContractorAddress = docServicePurches.DirServiceContractorAddress, DirServiceContractorPhone = docServicePurches.DirServiceContractorPhone, DirServiceContractorEmail = docServicePurches.DirServiceContractorEmail, PriceVAT = docServicePurches.PriceVAT, //PriceCurrency = docServicePurches.PriceCurrency, DirCurrencyID = docServicePurches.DirCurrencyID, DirCurrencyRate = docServicePurches.DirCurrencyRate, DirCurrencyMultiplicity = docServicePurches.DirCurrencyMultiplicity, DirCurrencyName = docServicePurches.dirCurrency.DirCurrencyName + " (" + docServicePurches.DirCurrencyRate + ", " + docServicePurches.DirCurrencyMultiplicity + ")", DateDone = docServicePurches.DateDone.ToString(), DateDone1 = docServicePurches.DateDone, UrgentRepairs = docServicePurches.UrgentRepairs, Prepayment = docServicePurches.Prepayment, PrepaymentSum = docServicePurches.PrepaymentSum == null ? 0 : docServicePurches.PrepaymentSum, IssuanceDate = docServicePurches.IssuanceDate.ToString(), IssuanceDate1 = docServicePurches.IssuanceDate, DateStatusChange = docServicePurches.DateStatusChange.ToString(), DateStatusChange1 = docServicePurches.DateStatusChange, //Оплата Payment = docServicePurches.doc.Payment, /* * //1. Подсчет табличной части Работы "SumDocServicePurch1Tabs" * SumDocServicePurch1Tabs = g.Sum(x => x.docServicePurch1Tabs.PriceCurrency) == null ? 0 : Math.Round(g.Sum(x => x.docServicePurch1Tabs.PriceCurrency), sysSetting.FractionalPartInSum), * * //2. Подсчет табличной части Работы "SumDocServicePurch2Tabs" * SumDocServicePurch2Tabs = g.Sum(x => x.docServicePurch2Tabs.PriceCurrency) == null ? 0 : Math.Round(g.Sum(x => x.docServicePurch2Tabs.PriceCurrency), sysSetting.FractionalPartInSum), * * * //3. Сумма 1+2 "SumTotal" * SumTotal = * Math.Round( * (g.Sum(x => x.docServicePurch1Tabs.PriceCurrency) == null ? 0 : g.Sum(x => x.docServicePurch1Tabs.PriceCurrency)) + * (g.Sum(x => x.docServicePurch2Tabs.PriceCurrency) == null ? 0 : g.Sum(x => x.docServicePurch2Tabs.PriceCurrency)) * , sysSetting.FractionalPartInSum), * * //4. Константа "PrepaymentSum" * //... * * //5. 3 - 4 "SumTotal2" * SumTotal2 = g.Key.Sums, */ DiscountX = docServicePurches.DiscountX, SumDocServicePurch1Tabs = docServicePurches.Sums1, DiscountY = docServicePurches.DiscountY, SumDocServicePurch2Tabs = docServicePurches.Sums2, SumTotal = (docServicePurches.Sums1 - docServicePurches.DiscountX) + (docServicePurches.Sums2 - docServicePurches.DiscountY), SumTotal2 = docServicePurches.Sums - docServicePurches.DiscountX - docServicePurches.DiscountY, } #endregion ); if (DirWarehouseID > 0) { queryTemp = queryTemp.Where(z => z.DirWarehouseID == DirWarehouseID); } if (DirServiceStatusID > 0) { queryTemp = queryTemp.Where(z => z.DirServiceStatusID == DirServiceStatusID); } if (DirEmployeeID > 0) { queryTemp = queryTemp.Where(z => z.DirEmployeeID == DirEmployeeID); } if (DirEmployeeIDMaster > 0) { queryTemp = queryTemp.Where(z => z.DirEmployeeIDMaster == DirEmployeeIDMaster); } if (DirServiceContractorID > 0) { queryTemp = queryTemp.Where(z => z.DirServiceContractorID == DirServiceContractorID); } if (ReportType > 0) { switch (ReportType) { //1. Выданные (все) case 1: { queryTemp = queryTemp.Where(z => z.DirServiceStatusID == 9 && (z.DateStatusChange1 >= DateS && z.DateStatusChange1 <= DatePo)); } break; //2. Выданные (готовые) case 2: { queryTemp = queryTemp.Where(z => z.DirServiceStatusID == 9 && z.DirServiceStatusID_789 == 7 && (z.DateStatusChange1 >= DateS && z.DateStatusChange1 <= DatePo)); } break; //3. Не отремонтированные все (Выданные (отказные)) case 3: { queryTemp = queryTemp.Where(z => z.DirServiceStatusID_789 == 8 && (z.IssuanceDate1 >= DateS && z.IssuanceDate1 <= DatePo)); //queryTemp = queryTemp.Where(z => z.DirServiceStatusID == 9 && z.DirServiceStatusID_789 == 8 && (z.DocDate >= DateS && z.DocDate <= DatePo)); } break; //4. Сделанные case 4: { queryTemp = queryTemp.Where(z => z.DirServiceStatusID_789 == 7 && (z.IssuanceDate1 >= DateS && z.IssuanceDate1 <= DatePo)); //queryTemp = queryTemp.Where(z => z.DirServiceStatusID == 7 && (z.DocDate >= DateS && z.DocDate <= DatePo)); } break; //5. Принятые case 5: { queryTemp = queryTemp.Where(z => (z.DocDate1 >= DateS && z.DocDate1 <= DatePo)); //queryTemp = queryTemp.Where(z => z.DirServiceStatusID == 1 && (z.DocDate >= DateS && z.DocDate <= DatePo)); } break; default: { queryTemp = queryTemp.Where(z => z.DirServiceStatusID == 9 && (z.DateStatusChange1 >= DateS && z.DateStatusChange1 <= DatePo)); } break; } } else { queryTemp = queryTemp.Where(z => z.DirServiceStatusID == 9 && (z.DateStatusChange1 >= DateS && z.DateStatusChange1 <= DatePo)); } #endregion #region Отправка JSON int dirCount = queryTemp.Count(); dynamic collectionWrapper1 = new { sucess = true, total = dirCount, DocServicePurchesReport = queryTemp }; return(await Task.Run(() => Ok(collectionWrapper1))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/RemPartyMinuses public async Task <IHttpActionResult> GetRemPartyMinuses(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) /* * int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightRemPartyMinuses")); * if (iRight == 3) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))); */ //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.RemPartyID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "RemPartyID", true) == 0).Value); _params.DirNomenID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirNomenID", true) == 0).Value); _params.DocSaleID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocSaleID", true) == 0).Value); _params.DocRetailID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocRetailID", true) == 0).Value); _params.parSearch = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "parSearch", true) == 0).Value; if (_params.parSearch != null) { _params.parSearch = _params.parSearch.ToLower(); //Поиск } _params.DirWarehouseID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirWarehouseID", true) == 0).Value); _params.DateS = Convert.ToDateTime(Convert.ToDateTime(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DateS", true) == 0).Value).ToString("yyyy-MM-dd 23:59:59")); if (_params.DateS < Convert.ToDateTime("01.01.1800")) { _params.DateS = Convert.ToDateTime(sysSetting.JurDateS.ToString("yyyy-MM-dd 00:00:00")).AddDays(-1); } else { _params.DateS = _params.DateS.Value.AddDays(-1); } _params.DatePo = Convert.ToDateTime(Convert.ToDateTime(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocDate", true) == 0).Value).ToString("yyyy-MM-dd 23:59:59")); if (_params.DatePo < Convert.ToDateTime("01.01.1800")) { _params.DatePo = Convert.ToDateTime(sysSetting.JurDatePo.ToString("yyyy-MM-dd 23:59:59")); } #endregion #region Основной запрос *** *** *** var query = ( from remPartyMinuses in db.RemPartyMinuses /* * where * remPartyMinuses.Remnant > 0 && * remPartyMinuses.DirContractorIDOrg == _params.DirContractorIDOrg && * remPartyMinuses.DirNomenID == _params.DirNomenID && * remPartyMinuses.DirWarehouseID == _params.DirWarehouseID */ select new { RemPartyMinusID = remPartyMinuses.RemPartyMinusID, DocID = remPartyMinuses.DocID, RemPartyID = remPartyMinuses.RemPartyID, DirNomenID = remPartyMinuses.DirNomenID, DirNomenName = remPartyMinuses.dirNomen.DirNomenName, DocDate = remPartyMinuses.doc.DocDate, DirContractorNameOrg = remPartyMinuses.doc.dirContractorOrg.DirContractorName, DirContractorName = remPartyMinuses.doc.dirContractor.DirContractorName, DirCurrencyID = remPartyMinuses.DirCurrencyID, DirCurrencyName = remPartyMinuses.dirCurrency.DirCurrencyName, DirCurrencyRate = remPartyMinuses.DirCurrencyRate, DirCurrencyMultiplicity = remPartyMinuses.DirCurrencyMultiplicity, DirVatValue = remPartyMinuses.DirVatValue, DirWarehouseID = remPartyMinuses.dirWarehouse.DirWarehouseID, DirWarehouseName = remPartyMinuses.dirWarehouse.DirWarehouseName, ListDocNameRu = remPartyMinuses.doc.listObject.ListObjectNameRu, PriceVAT = remPartyMinuses.PriceVAT, PriceCurrency = remPartyMinuses.PriceCurrency, Quantity = remPartyMinuses.Quantity, Reserve = remPartyMinuses.Reserve } ); #endregion #region Условия (параметры) *** *** *** #region Кликнули на товар - паказать список партий if (_params.RemPartyID > 0) { query = query.Where(x => x.RemPartyID == _params.RemPartyID); } else if (_params.DirNomenID > 0) { query = query.Where(x => x.DirNomenID == _params.DirNomenID); } else if (_params.DocSaleID > 0) { //query = query.Where(x => x.DocSaleID == _params.DocSaleID); //Алгоритм: //1. Получаем DocID по DocSaleID //2. query = query.Where(x => x.DocID == iDocID); //1. Получаем DocID по DocSaleID var queryDocSale = await db.DocSales.FindAsync(_params.DocSaleID); int iDocID = Convert.ToInt32(queryDocSale.DocID); //2. query = query.Where(x => x.DocID == iDocID); query = query.Where(x => x.DocID == iDocID); } else if (_params.DocRetailID > 0) { //query = query.Where(x => x.DocRetailID == _params.DocRetailID); //Алгоритм: //1. Получаем DocID по DocRetailID //2. query = query.Where(x => x.DocID == iDocID); //1. Получаем DocID по DocRetailID var queryDocRetail = await db.DocRetails.FindAsync(_params.DocRetailID); int iDocID = Convert.ToInt32(queryDocRetail.DocID); //2. query = query.Where(x => x.DocID == iDocID); query = query.Where(x => x.DocID == iDocID); } #endregion #region Поиск партии по Серийному номеру или по Штрих-коду if (!String.IsNullOrEmpty(_params.parSearch)) { } #endregion //По дате if (_params.DateS != null) { query = query.Where(x => x.DocDate >= _params.DateS && x.DocDate <= _params.DatePo); } //По складу if (_params.DirWarehouseID > 0) { query = query.Where(x => x.DirWarehouseID == _params.DirWarehouseID); } #endregion #region Отправка JSON //А вдруг к-во меньше Лимита, тогда показать не общее к-во, а реальное! int dirCount = query.Count(); dynamic collectionWrapper = new { sucess = true, total = dirCount, RemPartyMinus = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/DocSecondHandRetailTabs public async Task <IHttpActionResult> GetDocSecondHandRetailTabs(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocSecondHandRetails")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.DocSecondHandRetailID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocSecondHandRetailID", true) == 0).Value); //_params.DocDate = Convert.ToDateTime(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocDate", true) == 0).Value); _params.DateS = Convert.ToDateTime(Convert.ToDateTime(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocDateS", true) == 0).Value).ToString("yyyy-MM-dd 23:59:59")); if (_params.DateS < Convert.ToDateTime("01.01.1800")) { _params.DateS = Convert.ToDateTime(sysSetting.JurDateS.ToString("yyyy-MM-dd 00:00:00")).AddDays(-1); } else { _params.DateS = _params.DateS.Value.AddDays(-1); } _params.DatePo = Convert.ToDateTime(Convert.ToDateTime(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocDatePo", true) == 0).Value).ToString("yyyy-MM-dd 23:59:59")); if (_params.DatePo < Convert.ToDateTime("01.01.1800")) { _params.DatePo = Convert.ToDateTime(sysSetting.JurDatePo.ToString("yyyy-MM-dd 23:59:59")); } _params.DirWarehouseID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirWarehouseID", true) == 0).Value); #endregion #region Основной запрос *** *** *** int? DocSecondHandRetailID = null, DocSecondHandRetailReturnID = null, Rem2PartyID = null, Rem2PartyMinusID = null, DirReturnTypeID = null, DirDescriptionID = null; string DirReturnTypeName = null, DirDescriptionName = null; double Quantity = 1; var query = ( //Розничный Чек from x in db.Rem2PartyMinuses from y in db.DocSecondHandRetailTabs //from docSecondHandPurches in db.DocSecondHandPurches //!!! join docSecondHandPurches in db.DocSecondHandPurches on x.rem2Party.DocIDFirst equals docSecondHandPurches.DocID join dirServiceNomens11 in db.DirServiceNomens on x.dirServiceNomen.Sub equals dirServiceNomens11.DirServiceNomenID into dirServiceNomens12 from dirServiceNomensSubGroup in dirServiceNomens12.DefaultIfEmpty() join dirServiceNomens21 in db.DirServiceNomens on dirServiceNomensSubGroup.Sub equals dirServiceNomens21.DirServiceNomenID into dirServiceNomens22 from dirServiceNomensGroup in dirServiceNomens22.DefaultIfEmpty() where x.FieldID == y.DocSecondHandRetailTabID && x.rem2Party.DocIDFirst == docSecondHandPurches.DocID && //x.rem2Party.DocID == docSecondHandPurches.DocID && //!!! x.doc.DocDate >= _params.DateS && x.doc.DocDate <= _params.DatePo && x.doc.ListObjectID == 66 && x.DirWarehouseID == _params.DirWarehouseID #region select select new { DocID = x.DocID, DocSecondHandPurchID = docSecondHandPurches.DocSecondHandPurchID, KKMSCheckNumber = y.docSecondHandRetail.doc.KKMSCheckNumber, KKMSIdCommand = y.docSecondHandRetail.doc.KKMSIdCommand, DocDate = x.doc.DocDate, Held = x.doc.Held, Discount = x.doc.Discount, DocSecondHandRetailID = y.DocSecondHandRetailID, //NumberReal = x.doc.NumberReal, DocSecondHandRetailReturnID = y.DocSecondHandRetailID, //NumberReal = x.doc.NumberReal, DirWarehouseID = x.DirWarehouseID, ListObjectID = x.doc.listObject.ListObjectID, ListObjectNameRu = x.doc.listObject.ListObjectNameRu, DirServiceNomenID = x.DirServiceNomenID, //DirServiceNomenName = x.dirServiceNomen.DirServiceNomenName, DirServiceNomenName = dirServiceNomensSubGroup.DirServiceNomenName == null ? x.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName == null ? dirServiceNomensSubGroup.DirServiceNomenName + " / " + x.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName + " / " + dirServiceNomensSubGroup.DirServiceNomenName + " / " + x.dirServiceNomen.DirServiceNomenName, Rem2PartyID = x.Rem2PartyID, Rem2PartyMinusID = x.Rem2PartyMinusID, Quantity = x.Quantity, PriceVAT = x.PriceVAT, DirCurrencyID = x.DirCurrencyID, DirCurrencyRate = x.DirCurrencyRate, DirCurrencyMultiplicity = x.DirCurrencyMultiplicity, DirCurrencyName = x.dirCurrency.DirCurrencyName + " (" + x.DirCurrencyRate + ", " + x.DirCurrencyMultiplicity + ")", DirEmployeeName = x.doc.dirEmployee.DirEmployeeName, //Rem2Party //Barcode = x.rem2Party.Barcode, //SerialNumber = x.rem2Party.SerialNumber, //Приходная цена PriceCurrencyPurch = y.rem2Party.PriceCurrency, //x.remParty.PriceCurrency, //Цена в т.в. PriceCurrency = x.PriceCurrency, //Себестоимость SUMSalePriceVATCurrency = x.Quantity * x.PriceCurrency - x.doc.Discount == null ? 0 : Math.Round(x.Quantity * x.PriceCurrency - x.doc.Discount, sysSetting.FractionalPartInSum), //Причина возврата DirReturnTypeID = y.DirReturnTypeID, DirReturnTypeName = "", DirDescriptionID = y.DirDescriptionID, DirDescriptionName = "", } #endregion ).Union ( //Розничный возврат from x in db.DocSecondHandRetailReturnTabs //Документы и партии для нахождения первичного Номера документа! join rem2PartyMinuses1 in db.Rem2PartyMinuses on x.Rem2PartyMinusID equals rem2PartyMinuses1.Rem2PartyMinusID into rem2PartyMinuses2 from rem2PartyMinuses in rem2PartyMinuses2.DefaultIfEmpty() join rem2Parties1 in db.Rem2Parties on rem2PartyMinuses.Rem2PartyID equals rem2Parties1.Rem2PartyID into rem2Parties2 from rem2Parties in rem2Parties2.DefaultIfEmpty() join docSecondHandPurches1 in db.DocSecondHandPurches on rem2Parties.DocIDFirst equals docSecondHandPurches1.DocID into docSecondHandPurches2 from docSecondHandPurches in docSecondHandPurches2.DefaultIfEmpty() //Наименование Группы товара join dirServiceNomens11 in db.DirServiceNomens on x.dirServiceNomen.Sub equals dirServiceNomens11.DirServiceNomenID into dirServiceNomens12 from dirServiceNomensSubGroup in dirServiceNomens12.DefaultIfEmpty() join dirServiceNomens21 in db.DirServiceNomens on dirServiceNomensSubGroup.Sub equals dirServiceNomens21.DirServiceNomenID into dirServiceNomens22 from dirServiceNomensGroup in dirServiceNomens22.DefaultIfEmpty() where x.docSecondHandRetailReturn.doc.DocDate >= _params.DateS && x.docSecondHandRetailReturn.doc.DocDate <= _params.DatePo && x.docSecondHandRetailReturn.DirWarehouseID == _params.DirWarehouseID #region select select new { DocID = x.docSecondHandRetailReturn.DocID, DocSecondHandPurchID = docSecondHandPurches.DocSecondHandPurchID, KKMSCheckNumber = x.docSecondHandRetailReturn.doc.KKMSCheckNumber, KKMSIdCommand = x.docSecondHandRetailReturn.doc.KKMSIdCommand, DocDate = x.docSecondHandRetailReturn.doc.DocDate, Held = x.docSecondHandRetailReturn.doc.Held, Discount = x.docSecondHandRetailReturn.doc.Discount, DocSecondHandRetailID = x.docSecondHandRetailReturn.DocSecondHandRetailReturnID, //NumberReal = x.docSecondHandRetailReturn.doc.NumberReal, DocSecondHandRetailReturnID = x.docSecondHandRetailReturn.DocSecondHandRetailReturnID, //NumberReal = x.docSecondHandRetailReturn.doc.NumberReal, DirWarehouseID = x.docSecondHandRetailReturn.DirWarehouseID, ListObjectID = x.docSecondHandRetailReturn.doc.listObject.ListObjectID, ListObjectNameRu = x.docSecondHandRetailReturn.doc.listObject.ListObjectNameRu, DirServiceNomenID = x.DirServiceNomenID, //DirServiceNomenName = x.dirServiceNomen.DirServiceNomenName, DirServiceNomenName = dirServiceNomensSubGroup.DirServiceNomenName == null ? x.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName == null ? dirServiceNomensSubGroup.DirServiceNomenName + " / " + x.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName + " / " + dirServiceNomensSubGroup.DirServiceNomenName + " / " + x.dirServiceNomen.DirServiceNomenName, Rem2PartyID = rem2PartyMinuses.Rem2PartyID, Rem2PartyMinusID = x.Rem2PartyMinusID, Quantity = -x.Quantity, PriceVAT = -x.PriceVAT, DirCurrencyID = x.DirCurrencyID, DirCurrencyRate = x.dirCurrency.DirCurrencyRate, DirCurrencyMultiplicity = x.dirCurrency.DirCurrencyMultiplicity, DirCurrencyName = x.dirCurrency.DirCurrencyName + " (" + x.dirCurrency.DirCurrencyRate + ", " + x.dirCurrency.DirCurrencyMultiplicity + ")", DirEmployeeName = x.docSecondHandRetailReturn.doc.dirEmployee.DirEmployeeName, //Rem2Party //Barcode = "", //x.Barcode, //SerialNumber = "", //x.SerialNumber, //Приходная цена PriceCurrencyPurch = 0.0, //x.remParty.PriceCurrency, //Цена в т.в. PriceCurrency = -x.PriceCurrency, //Себестоимость SUMSalePriceVATCurrency = x.Quantity * x.PriceCurrency - x.docSecondHandRetailReturn.doc.Discount == null ? 0 : -Math.Round(x.Quantity * x.PriceCurrency - x.docSecondHandRetailReturn.doc.Discount, sysSetting.FractionalPartInSum), //Причина возврата DirReturnTypeID = x.DirReturnTypeID, DirReturnTypeName = x.dirReturnType.DirReturnTypeName, DirDescriptionID = x.DirDescriptionID, DirDescriptionName = x.dirDescription.DirDescriptionName, } #endregion ).Union ( from x in db.DocSecondHandPurches join dirServiceNomens11 in db.DirServiceNomens on x.dirServiceNomen.Sub equals dirServiceNomens11.DirServiceNomenID into dirServiceNomens12 from dirServiceNomensSubGroup in dirServiceNomens12.DefaultIfEmpty() join dirServiceNomens21 in db.DirServiceNomens on dirServiceNomensSubGroup.Sub equals dirServiceNomens21.DirServiceNomenID into dirServiceNomens22 from dirServiceNomensGroup in dirServiceNomens22.DefaultIfEmpty() where x.doc.DocDate >= _params.DateS && x.doc.DocDate <= _params.DatePo && x.DirWarehouseID == _params.DirWarehouseID #region select select new { DocID = x.DocID, DocSecondHandPurchID = x.DocSecondHandPurchID, KKMSCheckNumber = x.doc.KKMSCheckNumber, KKMSIdCommand = x.doc.KKMSIdCommand, DocDate = x.doc.DocDate, Held = x.doc.Held, Discount = x.doc.Discount, DocSecondHandRetailID = DocSecondHandRetailID, DocSecondHandRetailReturnID = DocSecondHandRetailReturnID, //NumberReal = x.doc.NumberReal, DirWarehouseID = x.DirWarehouseID, ListObjectID = x.doc.listObject.ListObjectID, ListObjectNameRu = x.doc.listObject.ListObjectNameRu, DirServiceNomenID = x.DirServiceNomenID, //DirServiceNomenName = x.dirServiceNomen.DirServiceNomenName, DirServiceNomenName = dirServiceNomensSubGroup.DirServiceNomenName == null ? x.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName == null ? dirServiceNomensSubGroup.DirServiceNomenName + " / " + x.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName + " / " + dirServiceNomensSubGroup.DirServiceNomenName + " / " + x.dirServiceNomen.DirServiceNomenName, Rem2PartyID = Rem2PartyID, Rem2PartyMinusID = Rem2PartyMinusID, Quantity = Quantity, PriceVAT = -x.PriceVAT, DirCurrencyID = x.DirCurrencyID, DirCurrencyRate = x.DirCurrencyRate, DirCurrencyMultiplicity = x.DirCurrencyMultiplicity, DirCurrencyName = x.dirCurrency.DirCurrencyName + " (" + x.DirCurrencyRate + ", " + x.DirCurrencyMultiplicity + ")", DirEmployeeName = x.doc.dirEmployee.DirEmployeeName, //Rem2Party //Barcode = 0, //SerialNumber = 0, //Приходная цена PriceCurrencyPurch = -x.PriceVAT, //x.remParty.PriceCurrency, //Цена в т.в. PriceCurrency = -x.PriceVAT, //Себестоимость SUMSalePriceVATCurrency = -x.PriceVAT, //Причина возврата DirReturnTypeID = DirReturnTypeID, DirReturnTypeName = DirReturnTypeName, DirDescriptionID = DirDescriptionID, DirDescriptionName = DirDescriptionName, } #endregion ); #endregion #region Сортировка query = query.OrderByDescending(x => x.DocDate); #endregion #region Отправка JSON dynamic collectionWrapper = new { sucess = true, total = query.Count(), DocSecondHandRetailTab = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/DirWebShopUOs public async Task <IHttpActionResult> GetDirWebShopUOs(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirWebShopUOs")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.limit = 999999; // sysSetting.PageSizeDir; //Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "limit", true) == 0).Value); //Записей на страницу _params.page = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "page", true) == 0).Value); //Номер страницы _params.Skip = _params.limit * (_params.page - 1); _params.type = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "type", true) == 0).Value; _params.parSearch = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "parSearch", true) == 0).Value; if (_params.parSearch != null) { _params.parSearch = _params.parSearch.ToLower(); //Поиск } #endregion if (_params.type == "Grid") { #region Основной запрос *** *** *** var query = ( from dirWebShopUOs in db.DirWebShopUOs select new { DirWebShopUOID = dirWebShopUOs.DirWebShopUOID, DirWebShopUOName = dirWebShopUOs.DirWebShopUOName, } ); #endregion #region Отправка JSON //К-во Номенклатуры int dirCount = await Task.Run(() => db.DirWebShopUOs.Count()); dynamic collectionWrapper = new { sucess = true, total = dirCount, DirWebShopUO = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } else //Tree { #region Отобразить только "Руты" *** *** *** var query = ( from x in db.DirWebShopUOs select new { id = x.DirWebShopUOID, text = x.DirWebShopUOName, leaf = true, Del = x.Del } ); #endregion #region Отправка JSON //return Ok(await Task.Run(() => query)); dynamic collectionWrapper = new { query }; return(Ok(await Task.Run(() => collectionWrapper))); #endregion } } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/DocAccountTabs public async Task <IHttpActionResult> GetDocAccountTabs(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocAccounts")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.DocAccountID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocAccountID", true) == 0).Value); #endregion #region Основной запрос *** *** *** var query = ( from docAccountTabs in db.DocAccountTabs //Характеристики /* * join dirCharColours1 in db.DirCharColours on docAccountTabs.remParty.DirCharColourID equals dirCharColours1.DirCharColourID into dirCharColours2 * from dirCharColours in dirCharColours2.DefaultIfEmpty() * * join dirCharMaterials1 in db.DirCharMaterials on docAccountTabs.remParty.DirCharMaterialID equals dirCharMaterials1.DirCharMaterialID into dirCharMaterials2 * from dirCharMaterials in dirCharMaterials2.DefaultIfEmpty() * * join dirCharNames1 in db.DirCharNames on docAccountTabs.remParty.DirCharNameID equals dirCharNames1.DirCharNameID into dirCharNames2 * from dirCharNames in dirCharNames2.DefaultIfEmpty() * * join dirCharSeasons1 in db.DirCharSeasons on docAccountTabs.remParty.DirCharSeasonID equals dirCharSeasons1.DirCharSeasonID into dirCharSeasons2 * from dirCharSeasons in dirCharSeasons2.DefaultIfEmpty() * * join dirCharSexes1 in db.DirCharSexes on docAccountTabs.remParty.DirCharSexID equals dirCharSexes1.DirCharSexID into dirCharSexes2 * from dirCharSexes in dirCharSexes2.DefaultIfEmpty() * * join dirCharSizes1 in db.DirCharSizes on docAccountTabs.remParty.DirCharSizeID equals dirCharSizes1.DirCharSizeID into dirCharSizes2 * from dirCharSizes in dirCharSizes2.DefaultIfEmpty() * * join dirCharStyles1 in db.DirCharStyles on docAccountTabs.remParty.DirCharStyleID equals dirCharStyles1.DirCharStyleID into dirCharStyles2 * from dirCharStyles in dirCharStyles2.DefaultIfEmpty() * * join dirCharTextures1 in db.DirCharTextures on docAccountTabs.remParty.DirCharTextureID equals dirCharTextures1.DirCharTextureID into dirCharTextures2 * from dirCharTextures in dirCharTextures2.DefaultIfEmpty() */ join dirNomens11 in db.DirNomens on docAccountTabs.dirNomen.Sub equals dirNomens11.DirNomenID into dirNomens12 from dirNomensSubGroup in dirNomens12.DefaultIfEmpty() join dirNomens21 in db.DirNomens on dirNomensSubGroup.Sub equals dirNomens21.DirNomenID into dirNomens22 from dirNomensGroup in dirNomens22.DefaultIfEmpty() where docAccountTabs.DocAccountID == _params.DocAccountID #region select select new { DocAccountTabID = docAccountTabs.DocAccountTabID, DocAccountID = docAccountTabs.DocAccountID, DirNomenID = docAccountTabs.DirNomenID, //DirNomenName = docAccountTabs.dirNomen.DirNomenName, DirNomenName = dirNomensSubGroup.DirNomenName == null ? docAccountTabs.dirNomen.DirNomenName : dirNomensGroup.DirNomenName == null ? dirNomensSubGroup.DirNomenName + " / " + docAccountTabs.dirNomen.DirNomenName : dirNomensGroup.DirNomenName + " / " + dirNomensSubGroup.DirNomenName + " / " + docAccountTabs.dirNomen.DirNomenName, RemPartyID = docAccountTabs.RemPartyID, Quantity = docAccountTabs.Quantity, DirPriceTypeID = docAccountTabs.DirPriceTypeID, DirPriceTypeName = docAccountTabs.dirPriceType.DirPriceTypeName, PriceVAT = docAccountTabs.PriceVAT, DirCurrencyID = docAccountTabs.DirCurrencyID, DirCurrencyRate = docAccountTabs.DirCurrencyRate, DirCurrencyMultiplicity = docAccountTabs.DirCurrencyMultiplicity, DirCurrencyName = docAccountTabs.dirCurrency.DirCurrencyName + " (" + docAccountTabs.DirCurrencyRate + ", " + docAccountTabs.DirCurrencyMultiplicity + ")", //RemParty /* * Barcode = docAccountTabs.remParty.Barcode, * SerialNumber = docAccountTabs.remParty.SerialNumber, * * DirCharColourName = dirCharColours.DirCharColourName, * DirCharMaterialName = dirCharMaterials.DirCharMaterialName, * DirCharNameName = dirCharNames.DirCharNameName, * DirCharSeasonName = dirCharSeasons.DirCharSeasonName, * DirCharSexName = dirCharSexes.DirCharSexName, * DirCharSizeName = dirCharSizes.DirCharSizeName, * DirCharStyleName = dirCharStyles.DirCharStyleName, * DirCharTextureName = dirCharTextures.DirCharTextureName, * DirChar = * dirCharColours.DirCharColourName + " " + * dirCharMaterials.DirCharMaterialName + " " + * dirCharNames.DirCharNameName + " " + * dirCharSeasons.DirCharSeasonName + " " + * dirCharSexes.DirCharSexName + " " + * dirCharSizes.DirCharSizeName + " " + * dirCharStyles.DirCharStyleName + " " + * dirCharTextures.DirCharTextureName, */ //Цена в т.в. PriceCurrency = docAccountTabs.PriceCurrency, //Себестоимость SUMSalePriceVATCurrency = docAccountTabs.Quantity * docAccountTabs.PriceCurrency == null ? 0 : Math.Round(docAccountTabs.Quantity * docAccountTabs.PriceCurrency, sysSetting.FractionalPartInSum) } #endregion ); #endregion #region Отправка JSON dynamic collectionWrapper = new { sucess = true, total = query.Count(), DocAccountTab = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
//int ListObjectID = 53; #endregion #region Не рабочий метод!!! //Не рабочий метод!!! public async Task <IHttpActionResult> GetSms(int SmsTemplateID, int DocServicePurchID, HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права /*int Status = await Task.Run(() => accessRight.Access(db, field.DirEmployeeID, "DirBank")); * if (Status >= 3) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)));*/ //Права (1 - Write, 2 - Read, 3 - No Access) //int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirBanks")); //if (iRight == 3) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))); //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion string res = ""; //Находим по "DocServicePurchID" номер телефона клиента Models.Sklad.Doc.DocServicePurch docServicePurch = await db.DocServicePurches.FindAsync(DocServicePurchID); // DirServiceContractorPhone == "79257711344" #region Проверки //Активны SMS if (sysSetting.SmsActive) { return(Ok(returnServer.Return(false, "Активируйте в Настройках (верхнее меню) оповещение по SMS!"))); } //Проверка номера телефона if (docServicePurch.DirServiceContractorPhone == null) { return(Ok(returnServer.Return(false, "Номер телефоана клиента не корректный!"))); } //Убираем + в самом начале docServicePurch.DirServiceContractorPhone = docServicePurch.DirServiceContractorPhone.Replace("+", ""); //Проверка номера телефона if (docServicePurch.DirServiceContractorPhone.Length < 11) { return(Ok(returnServer.Return(false, "Номер телефоана клиента не корректный!"))); } #endregion if (sysSetting.SmsServiceID == 1) { #region sms48_ru PartionnyAccount.Classes.SMS.sms48_ru sms48_ru = new Classes.SMS.sms48_ru(); res = sms48_ru.Send(sysSetting, docServicePurch.DirServiceContractorPhone, "Apparat otremontirovan. Zaberite ego - 1200 RUR"); //Пишем в Лог + ещё куда-то //Только, если успешно! if (res == "8") { res = "Отправлено"; } else if (res == "1") { res = "Доставлено"; } else if (res == "2") { res = "Не удалось"; } else { res = "Ошибка: " + res; } #endregion } else if (sysSetting.SmsServiceID == 2) { #region sms4b_ru - не работает /* * PartionnyAccount.Classes.SMS.sms4b_ru sms4b_ru = new Classes.SMS.sms4b_ru(); * res = sms4b_ru.Send(); * * //Пишем в Лог + ещё куда-то * //Только, если успешно! * if (res == "1") * { * * } */ #endregion } dynamic collectionWrapper = new { Msg = res }; return(Ok(returnServer.Return(true, collectionWrapper))); } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/ListObjectPFTabs public async Task <IHttpActionResult> GetListObjectPFTabs(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) /* * int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightListObjectPFTabs")); * if (iRight == 3) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))); */ //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.ListObjectPFID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "ListObjectPFID", true) == 0).Value); #endregion #region Основной запрос *** *** *** /* * "SELECT ListDocPFTab.ListDocPFTabID, ListDocPFTab.ListDocPFTabName, ListDocPFTab.ListDocFieldID, ListDocFieldName." + ListDocFieldName + ", ListDocPFTab.PositionID " + * "FROM ListDocPFTab, ListDocField, ListDocFieldName " + * "WHERE " + * "(ListDocPFTab.ListDocFieldID=ListDocField.ListDocFieldID)and" + * "(ListDocField.ListDocFieldNameID=ListDocFieldName.ListDocFieldNameID)and" + * "(ListDocPFTab.ListDocPFID=@ListDocPFID)"; */ var query = ( from listObjectPFTabs in db.ListObjectPFTabs where listObjectPFTabs.ListObjectPFID == _params.ListObjectPFID select new { ListObjectPFTabID = listObjectPFTabs.ListObjectPFTabID, ListObjectPFTabName = listObjectPFTabs.ListObjectPFTabName, ListObjectFieldNameID = listObjectPFTabs.ListObjectFieldNameID, ListObjectFieldNameRu = listObjectPFTabs.listObjectFieldName.ListObjectFieldNameRu, PositionID = listObjectPFTabs.PositionID, TabNum = listObjectPFTabs.TabNum, Width = listObjectPFTabs.Width, } ); #endregion #region Отправка JSON dynamic collectionWrapper = new { sucess = true, total = query.Count(), ListObjectPFTab = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/DirEmployees public async Task <IHttpActionResult> GetDirEmployees(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); // !!! НИЖЕ - нужно получить склад !!! //Права (1 - Write, 2 - Read, 3 - No Access) //Или есть доступ к справонику или Админ точки /* * int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirEmployees")); * bool bAdmin = await Task.Run(() => accessRight.AccessIsAdmin(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirEmployees")); * if (iRight == 3) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))); */ //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.limit = 999999; // sysSetting.PageSizeDir; //Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "limit", true) == 0).Value); //Записей на страницу _params.page = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "page", true) == 0).Value); //Номер страницы _params.Skip = _params.limit * (_params.page - 1); _params.type = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "type", true) == 0).Value; //_params.HistoryDate = Convert.ToDateTime(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "HistoryDate", true) == 0).Value); if (_params.HistoryDate < Convert.ToDateTime("01.01.1800")) _params.HistoryDate = DateTime.Now; _params.HistoryDate = Convert.ToDateTime(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "HistoryDate", true) == 0).Value); if (_params.HistoryDate == null || _params.HistoryDate < Convert.ToDateTime("01.01.1800")) { _params.HistoryDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")); } _params.HistoryDate = function.ReturnHistorytDate(_params.HistoryDate); //Кликнули по "Поменять" (дату) //_params.GroupID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "pGroupID", true) == 0).Value); //Кликнули по группе _params.parSearch = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "parSearch", true) == 0).Value; if (_params.parSearch != null) { _params.parSearch = _params.parSearch.ToLower(); //Поиск } _params.DirWarehouseID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirWarehouseID", true) == 0).Value); //Номер страницы _params.DeletedRecordsShow = Convert.ToBoolean(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DeletedRecordsShow", true) == 0).Value); //Номер страницы //Права (1 - Write, 2 - Read, 3 - No Access) //Или есть доступ к справонику или Админ точки int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirEmployees")); bool bAdmin = await Task.Run(() => accessRight.AccessIsAdmin(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, _params.DirWarehouseID)); if (iRight == 3 && !bAdmin) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } #endregion if (_params.type == "Grid") { if (_params.DirWarehouseID < 1) { #region Основной запрос *** *** *** var query = ( from dirEmployees in db.DirEmployees select new { DirEmployeeID = dirEmployees.DirEmployeeID, Del = dirEmployees.Del, SysRecord = dirEmployees.SysRecord, DirEmployeeName = dirEmployees.DirEmployeeName, DirEmployeeActive = dirEmployees.DirEmployeeActive } ); #endregion #region Условия (параметры) *** *** *** #region Не показывать удалённые if (!Convert.ToBoolean(sysSetting.DeletedRecordsShow)) { query = query.Where(x => x.Del == sysSetting.DeletedRecordsShow); } #endregion #region Поиск if (!String.IsNullOrEmpty(_params.parSearch)) { //Проверяем число ли это Int32 iNumber32; bool bResult32 = Int32.TryParse(_params.parSearch, out iNumber32); //Если число, то задействуем в поиске и числовые поля (_params.parSearch == iNumber) if (bResult32) { query = query.Where(x => x.DirEmployeeID == iNumber32 || x.DirEmployeeName.Contains(_params.parSearch)); } else { query = query.Where(x => x.DirEmployeeName.Contains(_params.parSearch)); } } #endregion #region OrderBy и Лимит query = query.OrderBy(x => x.DirEmployeeName).Skip(_params.Skip).Take(_params.limit); #endregion #endregion #region Отправка JSON //К-во Номенклатуры int dirCount = await Task.Run(() => db.DirEmployees.Count()); //А вдруг к-во меньше Лимита, тогда показать не общее к-во, а реальное! int dirCount2 = query.Count(); if (dirCount2 < _params.limit) { dirCount = _params.limit * (_params.page - 1) + dirCount2; } dynamic collectionWrapper = new { sucess = true, total = dirCount, DirEmployee = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } else { #region Основной запрос *** *** *** var query = ( from dirEmployees in db.DirEmployees from dirEmployeeWarehouse in db.DirEmployeeWarehouse where dirEmployees.DirEmployeeID == dirEmployeeWarehouse.DirEmployeeID && dirEmployeeWarehouse.DirWarehouseID == _params.DirWarehouseID && dirEmployees.DirEmployeeActive == true //Не показывать "Не активных" select new { DirEmployeeID = dirEmployees.DirEmployeeID, Del = dirEmployees.Del, SysRecord = dirEmployees.SysRecord, DirEmployeeName = dirEmployees.DirEmployeeName, DirEmployeeActive = dirEmployees.DirEmployeeActive } ). Union ( from dirEmployees in db.DirEmployees from dirEmployeeWarehouse in db.DirEmployeeWarehouse where dirEmployees.DirEmployeeID == 1 select new { DirEmployeeID = dirEmployees.DirEmployeeID, Del = dirEmployees.Del, SysRecord = dirEmployees.SysRecord, DirEmployeeName = dirEmployees.DirEmployeeName, DirEmployeeActive = dirEmployees.DirEmployeeActive } ); #endregion #region Условия (параметры) *** *** *** #region Не показывать удалённые if (!_params.DeletedRecordsShow) { query = query.Where(x => x.Del == false); } else { if (!Convert.ToBoolean(sysSetting.DeletedRecordsShow)) { query = query.Where(x => x.Del == sysSetting.DeletedRecordsShow); } } #endregion #region Поиск if (!String.IsNullOrEmpty(_params.parSearch)) { //Проверяем число ли это Int32 iNumber32; bool bResult32 = Int32.TryParse(_params.parSearch, out iNumber32); //Если число, то задействуем в поиске и числовые поля (_params.parSearch == iNumber) if (bResult32) { query = query.Where(x => x.DirEmployeeID == iNumber32 || x.DirEmployeeName.Contains(_params.parSearch)); } else { query = query.Where(x => x.DirEmployeeName.Contains(_params.parSearch)); } } #endregion #region OrderBy и Лимит query = query.OrderBy(x => x.DirEmployeeName).Skip(_params.Skip).Take(_params.limit); #endregion #endregion #region Отправка JSON //К-во Номенклатуры int dirCount = await Task.Run(() => db.DirEmployees.Count()); //А вдруг к-во меньше Лимита, тогда показать не общее к-во, а реальное! int dirCount2 = query.Count(); if (dirCount2 < _params.limit) { dirCount = _params.limit * (_params.page - 1) + dirCount2; } dynamic collectionWrapper = new { sucess = true, total = dirCount, DirEmployee = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } } else //Tree { #region Отобразить только "Руты" *** *** *** var query = ( from x in db.DirEmployees select new { id = x.DirEmployeeID, text = x.DirEmployeeName, leaf = true, Del = x.Del } ); #endregion #region Отправка JSON //return Ok(await Task.Run(() => query)); dynamic collectionWrapper = new { query }; return(Ok(await Task.Run(() => collectionWrapper))); #endregion } } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/DocSalaries public async Task <IHttpActionResult> GetDocSalaries(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); dbRead = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocSalaries")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); //Получаем сотрудника: если к нему привязан Склад и/или Организация, то выбираем документы только по этим характеристикам Models.Sklad.Dir.DirEmployee dirEmployee = await db.DirEmployees.FindAsync(field.DirEmployeeID); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.limit = sysSetting.PageSizeJurn; //Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "limit", true) == 0).Value); //Записей на страницу _params.page = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "page", true) == 0).Value); //Номер страницы _params.Skip = _params.limit * (_params.page - 1); _params.GroupID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "pGroupID", true) == 0).Value); //Кликнули по группе _params.parSearch = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "parSearch", true) == 0).Value; if (_params.parSearch != null) { _params.parSearch = _params.parSearch.ToLower(); //Поиск } _params.FilterType = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "FilterType", true) == 0).Value); _params.DirWarehouseID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirWarehouseID", true) == 0).Value); _params.DateS = Convert.ToDateTime(Convert.ToDateTime(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DateS", true) == 0).Value).ToString("yyyy-MM-dd 23:59:59")); if (_params.DateS < Convert.ToDateTime("01.01.1800")) { _params.DateS = Convert.ToDateTime(sysSetting.JurDateS.ToString("yyyy-MM-dd 00:00:00")).AddDays(-1); } else { _params.DateS = _params.DateS.Value.AddDays(-1); } _params.DatePo = Convert.ToDateTime(Convert.ToDateTime(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DatePo", true) == 0).Value).ToString("yyyy-MM-dd 23:59:59")); if (_params.DatePo < Convert.ToDateTime("01.01.1800")) { _params.DatePo = Convert.ToDateTime(sysSetting.JurDatePo.ToString("yyyy-MM-dd 23:59:59")); } #endregion #region Основной запрос *** *** *** var query = ( from docSalaries in db.DocSalaries join docSalaryTabs1 in db.DocSalaryTabs on docSalaries.DocSalaryID equals docSalaryTabs1.DocSalaryID into docSalaryTabs2 from docSalaryTabs in docSalaryTabs2.DefaultIfEmpty() where docSalaries.doc.DocDate >= _params.DateS && docSalaries.doc.DocDate <= _params.DatePo group new { docSalaryTabs } by new { DocID = docSalaries.DocID, DocDate = docSalaries.doc.DocDate, DocYear = docSalaries.DocYear, DocMonth = docSalaries.DocMonth, Base = docSalaries.doc.Base, Held = docSalaries.doc.Held, Discount = docSalaries.doc.Discount, Del = docSalaries.doc.Del, Description = docSalaries.doc.Description, DocSalaryID = docSalaries.DocSalaryID, DirContractorIDOrg = docSalaries.doc.dirContractorOrg.DirContractorID, DirContractorNameOrg = docSalaries.doc.dirContractorOrg.DirContractorName, } into g select new { DocID = g.Key.DocID, DocDate = g.Key.DocDate, Held = g.Key.Held, Base = g.Key.Base, Del = g.Key.Del, Description = g.Key.Description, DocSalaryID = g.Key.DocSalaryID, DirContractorIDOrg = g.Key.DirContractorIDOrg, DirContractorNameOrg = g.Key.DirContractorNameOrg, //1. SumSalary = g.Sum(x => x.docSalaryTabs.SumSalary) == null ? 0 : g.Sum(x => x.docSalaryTabs.SumSalary), //2. DirBonusIDSalary = g.Sum(x => x.docSalaryTabs.DirBonusIDSalary) == null ? 0 : g.Sum(x => x.docSalaryTabs.DirBonusIDSalary), //3. DirBonus2IDSalary = g.Sum(x => x.docSalaryTabs.DirBonus2IDSalary) == null ? 0 : g.Sum(x => x.docSalaryTabs.DirBonus2IDSalary), //4. Sums = g.Sum(x => x.docSalaryTabs.Sums) == null ? 0 : g.Sum(x => x.docSalaryTabs.Sums), } ); #endregion #region Условия (параметры) *** *** *** #region dirEmployee.DirContractorIDOrg if (dirEmployee.DirContractorIDOrg != null && dirEmployee.DirContractorIDOrg > 0) { query = query.Where(x => x.DirContractorIDOrg == dirEmployee.DirContractorIDOrg); } #endregion #region Не показывать удалённые if (!Convert.ToBoolean(sysSetting.DeletedRecordsShow)) { query = query.Where(x => x.Del == sysSetting.DeletedRecordsShow); } #endregion #region Фильтр if (_params.FilterType > 0) { switch (_params.FilterType) { case 1: query = query.Where(x => x.Held == true); break; case 2: query = query.Where(x => x.Held == false); break; } } #endregion #region Поиск if (!String.IsNullOrEmpty(_params.parSearch)) { //Проверяем число ли это Int32 iNumber32; bool bResult32 = Int32.TryParse(_params.parSearch, out iNumber32); DateTime dDateTime; bool bDateTime = DateTime.TryParse(_params.parSearch, out dDateTime); //Если число, то задействуем в поиске и числовые поля (_params.parSearch == iNumber) if (bResult32) { query = query.Where(x => x.DocSalaryID == iNumber32); } //Если Дата else if (bDateTime) { query = query.Where(x => x.DocDate == dDateTime); } //Иначе, только текстовые поля else { //query = query.Where(x => x.DirContractorName.Contains(_params.parSearch) || x.DirWarehouseName.Contains(_params.parSearch) || x.NumberInt.Contains(_params.parSearch) || x.NumberTT.Contains(_params.parSearch)); } } #endregion #region OrderBy и Лимит query = query.OrderByDescending(x => x.DocDate).Skip(_params.Skip).Take(_params.limit); #endregion #endregion #region Отправка JSON //К-во Номенклатуры int dirCount = await Task.Run(() => db.DocSalaries.Where(x => x.doc.DocDate >= _params.DateS && x.doc.DocDate <= _params.DatePo).Count()); //А вдруг к-во меньше Лимита, тогда показать не общее к-во, а реальное! int dirCount2 = query.Count(); if (dirCount2 < _params.limit) { dirCount = _params.limit * (_params.page - 1) + dirCount2; } dynamic collectionWrapper = new { sucess = true, total = dirCount, DocSalary = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/DocSalaryTabs public async Task <IHttpActionResult> GetDocSalaryTabs(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocSalaries")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.DocSalaryID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocSalaryID", true) == 0).Value); #endregion #region Основной запрос *** *** *** var query = ( from docSalaryTabs in db.DocSalaryTabs where docSalaryTabs.DocSalaryID == _params.DocSalaryID #region select select new { DocSalaryTabID = docSalaryTabs.DocSalaryTabID, DocSalaryID = docSalaryTabs.DocSalaryID, DirEmployeeID = docSalaryTabs.DirEmployeeID, DirEmployeeName = docSalaryTabs.dirEmployee.DirEmployeeName, DirCurrencyID = docSalaryTabs.DirCurrencyID, DirCurrencyRate = docSalaryTabs.DirCurrencyRate, DirCurrencyMultiplicity = docSalaryTabs.DirCurrencyMultiplicity, DirCurrencyName = docSalaryTabs.dirCurrency.DirCurrencyName + " (" + docSalaryTabs.DirCurrencyRate + ", " + docSalaryTabs.DirCurrencyMultiplicity + ")", Salary = docSalaryTabs.Salary, SalaryDayMonthly = docSalaryTabs.SalaryDayMonthly, SalaryDayMonthlyName = docSalaryTabs.SalaryDayMonthly == 1 ? "За день" : "За месяц", CountDay = docSalaryTabs.CountDay, SumSalary = docSalaryTabs.SumSalary, DirBonusID = docSalaryTabs.DirBonusID, DirBonusName = docSalaryTabs.dirBonus.DirBonusName, DirBonusIDSalary = docSalaryTabs.DirBonusIDSalary, DirBonus2ID = docSalaryTabs.DirBonus2ID, DirBonus2Name = docSalaryTabs.dirBonus2.DirBonusName, DirBonus2IDSalary = docSalaryTabs.DirBonus2IDSalary, Sums = docSalaryTabs.Sums, } #endregion ); #endregion #region Отправка JSON dynamic collectionWrapper = new { sucess = true, total = query.Count(), DocSalaryTab = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
public async Task <IHttpActionResult> GetSysSetting(int id) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Разные Функции function.NumberDecimalSeparator(); #endregion //Важно: id - не используется в запросах if (id == 1) { //Открытие на редактирование в форме #region Права. Важно: нужны только при редактировании. При запросе в переменных не нужны! //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightSysSettings")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } #endregion #region Основной запрос *** *** *** var query = ( from sysSettings in db.SysSettings where sysSettings.SysSettingsID == 1 select sysSettings /*new * { * SysSettingsID = sysSettings.SysSettingsID, * JurDateS = sysSettings.JurDateS.ToString(), * JurDatePo = sysSettings.JurDatePo.ToString(), * FractionalPartInSum = sysSettings.FractionalPartInSum, * FractionalPartInPrice = sysSettings.FractionalPartInPrice, * FractionalPartInOther = sysSettings.FractionalPartInOther, * DirVatValue = sysSettings.DirVatValue, * ChangePriceNomen = sysSettings.ChangePriceNomen, * PurchBigerSale = sysSettings.PurchBigerSale, * MinusResidues = sysSettings.MinusResidues, * MethodAccounting = sysSettings.MethodAccounting, * DeletedRecordsShow = sysSettings.DeletedRecordsShow, * * DirContractorIDOrg = sysSettings.dirContractorOrg.DirContractorID, * DirContractorNameOrg = sysSettings.dirContractorOrg.DirContractorName, * * DirCurrencyID = sysSettings.DirCurrencyID, * DirCurrencyName = sysSettings.dirCurrency.DirCurrencyName, * * DirWarehouseID = sysSettings.DirWarehouseID, * DirWarehouseName = sysSettings.dirWarehouse.DirWarehouseName, * * MarkupRetail = sysSettings.MarkupRetail, * MarkupWholesale = sysSettings.MarkupWholesale, * MarkupIM = sysSettings.MarkupIM, * MarkupSales1 = sysSettings.MarkupSales1, * MarkupSales2 = sysSettings.MarkupSales2, * MarkupSales3 = sysSettings.MarkupSales3, * MarkupSales4 = sysSettings.MarkupSales4, * * CashBookAdd = sysSettings.CashBookAdd, * Reserve = sysSettings.Reserve, * BarIntNomen = sysSettings.BarIntNomen, * BarIntContractor = sysSettings.BarIntContractor, * BarIntDoc = sysSettings.BarIntDoc, * BarIntEmployee = sysSettings.BarIntEmployee, * SelectOneClick = sysSettings.SelectOneClick, * PageSizeDir = sysSettings.PageSizeDir, * PageSizeJurn = sysSettings.PageSizeJurn, * DateFormat = sysSettings.DateFormat, * * DirPriceTypeID = sysSettings.DirPriceTypeID, * DirPriceTypeName = sysSettings.dirPriceType.DirPriceTypeName, * * LabelWidth = sysSettings.LabelWidth, * LabelHeight = sysSettings.LabelHeight, * LabelEncodeType = sysSettings.LabelEncodeType, * DirNomenMinimumBalance = sysSettings.DirNomenMinimumBalance, * * ReadinessDay = sysSettings.ReadinessDay, * ServiceTypeRepair = sysSettings.ServiceTypeRepair, * WarrantyPeriodPassed = sysSettings.WarrantyPeriodPassed, * PhoneNumberBegin = sysSettings.PhoneNumberBegin, * DocServicePurchSmsAutoShow = sysSettings.DocServicePurchSmsAutoShow, * ServiceKPD = sysSettings.ServiceKPD, * * SmsActive = sysSettings.SmsActive, * SmsServiceID = sysSettings.SmsServiceID, * SmsLogin = sysSettings.SmsLogin, * SmsPassword = sysSettings.SmsPassword, * SmsTelFrom = sysSettings.SmsTelFrom, * SmsAutoShow = sysSettings.SmsAutoShow, * } */ ); #endregion #region Отправка JSON return(await Task.Run(() => Ok(returnServer.Return(true, query.ToList()[0])))); #endregion } else { //Реквест в Variables #region Получаем оплаты клиента *** *** *** //Тарифный план, Сотрудников, Торговых точек, Окончание, Интернет магазинов Classes.Account.Payment payment = new Classes.Account.Payment(); Classes.Account.Payment.CustomerPay customerPay = payment.Return(field.DirCustomersID); #endregion #region Основной запрос *** *** *** var query = ( from sysSettings in db.SysSettings from dirEmployees in db.DirEmployees //join dirWarehouses1 in db.DirWarehouses on dirEmployees.DirWarehouseID equals dirWarehouses1.DirWarehouseID into dirWarehouses2 //from dirWarehouses in dirWarehouses2.DefaultIfEmpty() where sysSettings.SysSettingsID == 1 && dirEmployees.DirEmployeeID == field.DirEmployeeID select new { //1. Настройки sysSettings, DirCurrencyMultiplicity = sysSettings.dirCurrency.DirCurrencyMultiplicity, // dirCurrencyHistories.DirCurrencyMultiplicity, DirCurrencyRate = sysSettings.dirCurrency.DirCurrencyRate, //2. Сотрудника (ФИО) dirEmployees, DirEmployeeLogin = field.LoginFull, LoginMS = field.Login, DirEmployeeName = dirEmployees.DirEmployeeName, //DirWarehouseName = dirWarehouses.DirWarehouseName, //3. Оплата DirPayServiceName = customerPay.DirPayServiceName, CountUser = customerPay.CountUser, //CountTT = customerPay.CountTT, CountNomen = customerPay.CountNomen, PayDateEnd = customerPay.PayDateEnd, //CountIM = customerPay.CountIM } ); #endregion #region Отправка JSON return(await Task.Run(() => Ok(returnServer.Return(true, query.ToList()[0])))); #endregion } } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
public async Task <IHttpActionResult> PostDocSecondHandReturn(DocSecondHandReturn docSecondHandReturn, HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); dbRead = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocSecondHandRetailReturns")); if (iRight != 1) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Скидка: разрешена или нет if (docSecondHandReturn.Discount > 0) { iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocDescription")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57_5))); } } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры //save, save_close, held, held_cancel var paramList = request.GetQueryNameValuePairs(); string UO_Action = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "UO_Action", true) == 0).Value; if (UO_Action == null) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg101))); } UO_Action = UO_Action.ToLower(); //Получаем колекцию "Спецификации" /*Models.Sklad.Doc.DocSecondHandReturnTab[] docSecondHandReturnTabCollection = null; * if (!String.IsNullOrEmpty(docSecondHandReturn.recordsDocSecondHandReturnTab) && UO_Action != "held_cancel") * { * JavaScriptSerializer serializer = new JavaScriptSerializer(); * docSecondHandReturnTabCollection = serializer.Deserialize<Models.Sklad.Doc.DocSecondHandReturnTab[]>(docSecondHandReturn.recordsDocSecondHandReturnTab); * }*/ #endregion #region Проверки if (!ModelState.IsValid) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg91))); //return BadRequest(ModelState); } /* * //Получаем "docSecondHandReturn.DocID" из БД, если он отличается от пришедшего от клиента "docSecondHandReturn.DocID" выдаём ошибку * //Были проблемы, кодга на один "DocID" числилось 2-а документа, а то и больше * var query = await Task.Run(() => * ( * from x in dbRead.DocSecondHandReturns * where x.DocSecondHandReturnID == docSecondHandReturn.DocSecondHandReturnID * select x * ).ToListAsync()); * * if (query.Count() > 0) * if (query[0].DocID != docSecondHandReturn.DocID) * return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg8)); //return BadRequest(); * * //dbRead.Database.Connection.Close(); */ //Проверка "Скидки" //1. Получаем сотурдника с правами //Подстановки - некоторые поля надо заполнить, если они не заполены (Юридические реквизиты) docSecondHandReturn.Substitute(); #endregion #region Сохранение using (System.Data.Entity.DbContextTransaction ts = db.Database.BeginTransaction()) { db.Configuration.AutoDetectChangesEnabled = false; try { //Используем метод, что бы было всё в одном потоке docSecondHandReturn = await Task.Run(() => mPutPostDocSecondHandReturn(db, dbRead, UO_Action, docSecondHandReturn, EntityState.Added, field)); //sysSetting ts.Commit(); //.Complete(); } catch (Exception ex) { try { ts.Rollback(); ts.Dispose(); } catch { } try { db.Database.Connection.Close(); db.Database.Connection.Dispose(); } catch { } return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } } #region 6. JourDisp *** *** *** *** *** *** *** *** *** * Models.Sklad.Sys.SysJourDisp sysJourDisp = new Models.Sklad.Sys.SysJourDisp(); sysJourDisp.DirDispOperationID = 3; //Добавление записи sysJourDisp.DirEmployeeID = field.DirEmployeeID; sysJourDisp.ListObjectID = ListObjectID; sysJourDisp.TableFieldID = docSecondHandReturn.DocSecondHandReturnID; sysJourDisp.Description = ""; try { sysJourDispsController.mPutPostSysJourDisps(db, sysJourDisp, EntityState.Added); } catch (Exception ex) { } #endregion dynamic collectionWrapper = new { DocID = docSecondHandReturn.DocID, DocSecondHandReturnID = docSecondHandReturn.DocSecondHandReturnID }; return(Ok(returnServer.Return(true, collectionWrapper))); //return Ok(returnServer.Return(true, "")); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
public async Task <IHttpActionResult> PostDocBankSum(DocBankSum docBankSum) { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocBankSums")); if (iRight != 1) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Проверки if (!ModelState.IsValid) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg91))); //return BadRequest(ModelState); } //Подстановки - некоторые поля надо заполнить, если они не заполены //docBankSum.Substitute(); docBankSum.DirEmployeeID = field.DirEmployeeID; #endregion #region Сохранение try { docBankSum = await Task.Run(() => mPutPostDocBankSum(db, docBankSum, EntityState.Added)); #region 6. JourDisp *** *** *** *** *** *** *** *** *** * Models.Sklad.Sys.SysJourDisp sysJourDisp = new Models.Sklad.Sys.SysJourDisp(); sysJourDisp.DirDispOperationID = 3; //Добавление записи sysJourDisp.DirEmployeeID = field.DirEmployeeID; sysJourDisp.ListObjectID = ListObjectID; sysJourDisp.TableFieldID = docBankSum.DocBankSumID; sysJourDisp.Description = ""; try { sysJourDispsController.mPutPostSysJourDisps(db, sysJourDisp, EntityState.Added); } catch (Exception ex) { } #endregion dynamic collectionWrapper = new { ID = docBankSum.DocBankSumID }; return(Ok(returnServer.Return(true, collectionWrapper))); //return Ok(returnServer.Return(true, "")); } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } #endregion }
// GET: api/DocSecondHandInvs public async Task <IHttpActionResult> GetTimerController(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //dbRead = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) //int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocSecondHandInventories")); //if (iRight == 3) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))); //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); //Получаем сотрудника: если к нему привязан Склад и/или Организация, то выбираем документы только по этим характеристикам Models.Sklad.Dir.DirEmployee dirEmployee = await db.DirEmployees.FindAsync(field.DirEmployeeID); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); #endregion #region Основной запрос *** *** *** var queryDocSecondHandInv = ( from x in db.DocSecondHandInvs where x.DirEmployee2ID == field.DirEmployeeID && x.DirEmployee1Podpis == true && x.DirEmployee2Podpis != true && x.doc.Held != true select new { x.doc.DocID, x.doc.DocDate, x.DocSecondHandInvID, x.dirWarehouse.DirWarehouseName } ); #endregion #region Отправка JSON dynamic collectionWrapper = new { sucess = true, DocSecondHandInv = queryDocSecondHandInv }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/DocSecondHandRazbor2Tabs public async Task <IHttpActionResult> GetDocSecondHandRazbor2Tabs(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocSecondHandRazbors")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.DocSecondHandPurchID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocSecondHandPurchID", true) == 0).Value); #endregion #region Основной запрос *** *** *** var query = ( from docSecondHandRazbor2Tabs in db.DocSecondHandRazbor2Tabs join dirNomens11 in db.DirNomens on docSecondHandRazbor2Tabs.dirNomen.Sub equals dirNomens11.DirNomenID into dirNomens12 from dirNomensSubGroup in dirNomens12.DefaultIfEmpty() join dirNomens21 in db.DirNomens on dirNomensSubGroup.Sub equals dirNomens21.DirNomenID into dirNomens22 from dirNomensGroup in dirNomens22.DefaultIfEmpty() where docSecondHandRazbor2Tabs.DocSecondHandPurchID == _params.DocSecondHandPurchID #region select select new { //партия //RemPartyID = remParties.RemPartyID, //DocSecondHandPurchID = docSecondHandRazbor2Tabs.DocSecondHandPurchID, DocSecondHandRazbor2TabID = docSecondHandRazbor2Tabs.DocSecondHandRazbor2TabID, DocSecondHandPurchID = docSecondHandRazbor2Tabs.DocSecondHandPurchID, DirNomenID = docSecondHandRazbor2Tabs.DirNomenID, //DirNomenName = docSecondHandRazbor2Tabs.dirNomen.DirNomenName, /* * DirNomenName = * dirNomensSubGroup1.DirNomenName == null ? docSecondHandRazbor2Tabs.dirNomen.DirNomenName * : * dirNomensSubGroup1.DirNomenName + " / " + docSecondHandRazbor2Tabs.dirNomen.DirNomenName, */ //DirNomenName = dirNomensGroup.DirNomenName + " / " + dirNomensSubGroup.DirNomenName + " / " + docSecondHandRazbor2Tabs.dirNomen.DirNomenName, DirNomenName = dirNomensSubGroup.DirNomenName == null ? docSecondHandRazbor2Tabs.dirNomen.DirNomenName : dirNomensGroup.DirNomenName == null ? dirNomensSubGroup.DirNomenName + " / " + docSecondHandRazbor2Tabs.dirNomen.DirNomenName : dirNomensGroup.DirNomenName + " / " + dirNomensSubGroup.DirNomenName + " / " + docSecondHandRazbor2Tabs.dirNomen.DirNomenName, Quantity = docSecondHandRazbor2Tabs.Quantity, PriceVAT = docSecondHandRazbor2Tabs.PriceVAT, DirCurrencyID = docSecondHandRazbor2Tabs.DirCurrencyID, DirCurrencyRate = docSecondHandRazbor2Tabs.DirCurrencyRate, DirCurrencyMultiplicity = docSecondHandRazbor2Tabs.DirCurrencyMultiplicity, DirCurrencyName = docSecondHandRazbor2Tabs.dirCurrency.DirCurrencyName + " (" + docSecondHandRazbor2Tabs.DirCurrencyRate + ", " + docSecondHandRazbor2Tabs.DirCurrencyMultiplicity + ")", //Характеристики DirCharColourID = docSecondHandRazbor2Tabs.DirCharColourID, DirCharColourName = docSecondHandRazbor2Tabs.dirCharColour.DirCharColourName, DirCharMaterialID = docSecondHandRazbor2Tabs.DirCharMaterialID, DirCharMaterialName = docSecondHandRazbor2Tabs.dirCharMaterial.DirCharMaterialName, DirCharNameID = docSecondHandRazbor2Tabs.DirCharNameID, DirCharNameName = docSecondHandRazbor2Tabs.dirCharName.DirCharNameName, DirCharSeasonID = docSecondHandRazbor2Tabs.DirCharSeasonID, DirCharSeasonName = docSecondHandRazbor2Tabs.dirCharSeason.DirCharSeasonName, DirCharSexID = docSecondHandRazbor2Tabs.DirCharSexID, DirCharSexName = docSecondHandRazbor2Tabs.dirCharSex.DirCharSexName, DirCharSizeID = docSecondHandRazbor2Tabs.DirCharSizeID, DirCharSizeName = docSecondHandRazbor2Tabs.dirCharSize.DirCharSizeName, DirCharStyleID = docSecondHandRazbor2Tabs.DirCharStyleID, DirCharStyleName = docSecondHandRazbor2Tabs.dirCharStyle.DirCharStyleName, DirContractorID = docSecondHandRazbor2Tabs.DirContractorID, DirContractorName = docSecondHandRazbor2Tabs.dirContractor.DirContractorName, DirCharTextureID = docSecondHandRazbor2Tabs.DirCharTextureID, DirCharTextureName = docSecondHandRazbor2Tabs.dirCharTexture.DirCharTextureName, DirChar = docSecondHandRazbor2Tabs.dirCharColour.DirCharColourName + " " + docSecondHandRazbor2Tabs.dirCharMaterial.DirCharMaterialName + " " + docSecondHandRazbor2Tabs.dirCharName.DirCharNameName + " " + docSecondHandRazbor2Tabs.dirCharSeason.DirCharSeasonName + " " + docSecondHandRazbor2Tabs.dirCharSex.DirCharSexName + " " + docSecondHandRazbor2Tabs.dirCharSize.DirCharSizeName + " " + docSecondHandRazbor2Tabs.dirCharStyle.DirCharStyleName + " " + docSecondHandRazbor2Tabs.dirContractor.DirContractorName + " " + docSecondHandRazbor2Tabs.dirCharTexture.DirCharTextureName, SerialNumber = docSecondHandRazbor2Tabs.SerialNumber, Barcode = docSecondHandRazbor2Tabs.Barcode, //Цена в т.в. PriceCurrency = docSecondHandRazbor2Tabs.PriceCurrency, //Себестоимость SUMPurchPriceVATCurrency = docSecondHandRazbor2Tabs.Quantity * docSecondHandRazbor2Tabs.PriceCurrency == null ? 0 : Math.Round(docSecondHandRazbor2Tabs.Quantity * docSecondHandRazbor2Tabs.PriceCurrency, sysSetting.FractionalPartInSum), //Розница *** //Наценка MarkupRetail = 100 * (docSecondHandRazbor2Tabs.PriceRetailVAT - docSecondHandRazbor2Tabs.PriceVAT) / docSecondHandRazbor2Tabs.PriceVAT == null ? 0 : Math.Round(100 * (docSecondHandRazbor2Tabs.PriceRetailVAT - docSecondHandRazbor2Tabs.PriceVAT) / docSecondHandRazbor2Tabs.PriceVAT, sysSetting.FractionalPartInSum), //Розничная цена PriceRetailVAT = docSecondHandRazbor2Tabs.PriceRetailVAT, //Розничная цена в текущей валюте PriceRetailCurrency = docSecondHandRazbor2Tabs.PriceRetailCurrency, //Опт *** //Наценка MarkupWholesale = 100 * (docSecondHandRazbor2Tabs.PriceWholesaleVAT - docSecondHandRazbor2Tabs.PriceVAT) / docSecondHandRazbor2Tabs.PriceVAT == null ? 0 : Math.Round(100 * (docSecondHandRazbor2Tabs.PriceWholesaleVAT - docSecondHandRazbor2Tabs.PriceVAT) / docSecondHandRazbor2Tabs.PriceVAT, sysSetting.FractionalPartInSum), //Оптовая цена PriceWholesaleVAT = docSecondHandRazbor2Tabs.PriceWholesaleVAT, //Оптовая цена в текущей валюте PriceWholesaleCurrency = docSecondHandRazbor2Tabs.PriceWholesaleCurrency, //Интерне-Магазин *** //Наценка MarkupIM = 100 * (docSecondHandRazbor2Tabs.PriceIMVAT - docSecondHandRazbor2Tabs.PriceVAT) / docSecondHandRazbor2Tabs.PriceVAT == null ? 0 : Math.Round(100 * (docSecondHandRazbor2Tabs.PriceIMVAT - docSecondHandRazbor2Tabs.PriceVAT) / docSecondHandRazbor2Tabs.PriceVAT, sysSetting.FractionalPartInSum), //Интернет-Магазин PriceIMVAT = docSecondHandRazbor2Tabs.PriceIMVAT, //Интернет-Магазин в текущей валюте PriceIMCurrency = docSecondHandRazbor2Tabs.PriceIMCurrency, DirNomenMinimumBalance = docSecondHandRazbor2Tabs.DirNomenMinimumBalance } #endregion ); #endregion #region Отправка JSON dynamic collectionWrapper = new { sucess = true, total = query.Count(), DocSecondHandRazbor2Tab = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
public async Task <IHttpActionResult> GetDirCurrencyHistories(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirCurrencies")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры //_params.limit = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "limit", true) == 0).Value); //Записей на страницу //_params.page = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "page", true) == 0).Value); //Номер страницы //_params.Skip = _params.limit * (_params.page - 1); _params.DirCurrencyID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirCurrencyID", true) == 0).Value); _params.parSearch = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "parSearch", true) == 0).Value; if (_params.parSearch != null) { _params.parSearch = _params.parSearch.ToLower(); //Поиск } #endregion //Открытие на редактирование в форме #region Основной запрос *** *** *** var query = ( from x in db.DirCurrencyHistories where x.DirCurrencyID == _params.DirCurrencyID select new { DirCurrencyHistoryID = x.DirCurrencyHistoryID, DirCurrencyName = x.dirCurrency.DirCurrencyName, HistoryDate = x.HistoryDate.ToString(), DirCurrencyRate = x.DirCurrencyRate, DirCurrencyMultiplicity = x.DirCurrencyMultiplicity } ); #endregion #region Условия (параметры) *** *** *** #region Поиск if (!String.IsNullOrEmpty(_params.parSearch)) { //Проверяем DateTime dDate; bool bResult1 = DateTime.TryParse(_params.parSearch, out dDate); Double dDecimal; bool bResult2 = Double.TryParse(_params.parSearch, out dDecimal); //Если число, то задействуем в поиске и числовые поля (_params.parSearch == iNumber) if (bResult1) { query = query.Where(x => x.HistoryDate.Contains(_params.parSearch)); } else if (bResult2) { query = query.Where(x => x.DirCurrencyRate == dDecimal); } else { query = query.Where(x => x.DirCurrencyName.Contains(_params.parSearch)); } } #endregion #region OrderBy и Лимит query = query.OrderBy(x => x.HistoryDate); //.Skip(_params.Skip).Take(_params.limit); #endregion #endregion #region Отправка JSON int dirCount = await query.CountAsync(); dynamic collectionWrapper = new { sucess = true, total = dirCount, DirCurrencyHistory = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/DirWarehouses public async Task <IHttpActionResult> GetDirWarehouses(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) //int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirWarehouses")); //if (iRight == 3) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))); //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.limit = 999999; // sysSetting.PageSizeDir; //Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "limit", true) == 0).Value); //Записей на страницу _params.page = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "page", true) == 0).Value); //Номер страницы _params.Skip = _params.limit * (_params.page - 1); _params.type = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "type", true) == 0).Value; _params.parSearch = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "parSearch", true) == 0).Value; if (_params.parSearch != null) { _params.parSearch = _params.parSearch.ToLower(); //Поиск } _params.Sub = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "Sub", true) == 0).Value); if (_params.Sub == 0) { _params.Sub = null; } //_params.WarehouseAll = Convert.ToBoolean(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "WarehouseAll", true) == 0).Value); //для документа "DocMovements" показать все склады _params.ListObjectID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "ListObjectID", true) == 0).Value); //Склад привязанный к сотруднику #endregion if (_params.type == "Grid") { //Если привязка к сотруднику (для документа "DocMovements" показать все склады) if (field.DirEmployeeID != 1 && _params.ListObjectID != 33) { #region Основной запрос *** *** *** var query = ( from dirWarehouses in db.DirWarehouses from x in db.DirEmployeeWarehouse where dirWarehouses.Sub == _params.Sub && x.DirWarehouseID == dirWarehouses.DirWarehouseID && x.DirEmployeeID == field.DirEmployeeID select new { DirWarehouseID = dirWarehouses.DirWarehouseID, Sub = dirWarehouses.Sub, Del = dirWarehouses.Del, SysRecord = dirWarehouses.SysRecord, DirWarehouseName = dirWarehouses.DirWarehouseName, DirWarehouseAddress = dirWarehouses.DirWarehouseAddress, Phone = dirWarehouses.Phone, DirCashOfficeID = dirWarehouses.dirCashOffice.DirCashOfficeID, DirCashOfficeName = dirWarehouses.dirCashOffice.DirCashOfficeName, DirCurrencyID = dirWarehouses.dirCashOffice.DirCurrencyID, DirCurrencyRate = dirWarehouses.dirCashOffice.dirCurrency.DirCurrencyRate, DirCurrencyMultiplicity = dirWarehouses.dirCashOffice.dirCurrency.DirCurrencyMultiplicity, DirCashOfficeSum = dirWarehouses.dirCashOffice.DirCashOfficeSum, //DirWarehouseLocName = dirWarehouses.DirWarehouseLoc DirWarehouseLocName = dirWarehouses.DirWarehouseLoc == 1 ? SubWar1 : dirWarehouses.DirWarehouseLoc == 2 ? SubWar2 : dirWarehouses.DirWarehouseLoc == 3 ? SubWar3 : dirWarehouses.DirWarehouseLoc == 4 ? SubWar4 : dirWarehouses.DirWarehouseLoc == 5 ? SubWar5 : "Ошибка!", IsAdmin = x.IsAdmin, //SalaryPercentTrade = dirWarehouses.SalaryPercentTrade, //SalaryPercentService1Tabs = dirWarehouses.SalaryPercentService1Tabs, //SalaryPercentService2Tabs = dirWarehouses.SalaryPercentService2Tabs, //SalaryPercentSecond = dirWarehouses.SalaryPercentSecond, //ККМ KKMSActive = dirWarehouses.KKMSActive, //Автоматическое закрытие смены SmenaClose = dirWarehouses.SmenaClose, SmenaCloseTime = dirWarehouses.SmenaCloseTime, } ); #endregion #region Условия (параметры) *** *** *** #region Не показывать удалённые if (!Convert.ToBoolean(sysSetting.DeletedRecordsShow)) { query = query.Where(x => x.Del == sysSetting.DeletedRecordsShow); } #endregion #region Поиск if (!String.IsNullOrEmpty(_params.parSearch)) { //Проверяем число ли это Int32 iNumber32; bool bResult32 = Int32.TryParse(_params.parSearch, out iNumber32); //Если число, то задействуем в поиске и числовые поля (_params.parSearch == iNumber) if (bResult32) { query = query.Where(x => x.DirWarehouseID == iNumber32 || x.DirWarehouseName.Contains(_params.parSearch) || x.DirWarehouseAddress.Contains(_params.parSearch)); } else { query = query.Where(x => x.DirWarehouseName.Contains(_params.parSearch) || x.DirWarehouseAddress.Contains(_params.parSearch)); } } #endregion //Если привязка к сотруднику (для документа "DocMovements" показать все склады) /* * if (field.DirEmployeeID != 1 && _params.ListObjectID != 33) * { * //1. Получаем все склады к которым у Сотрудника есть доступ * var queryW = await Task.Run(() => * ( * from x in db.DirEmployeeWarehouse * where x.DirEmployeeID == field.DirEmployeeID * select x.DirWarehouseID * ).ToListAsync()); * * if (queryW.Count() > 0) * { * query = query.Where(x => queryW.Contains(x.DirWarehouseID)); * } * } */ #region OrderBy и Лимит query = query.OrderBy(x => x.DirWarehouseName).Skip(_params.Skip).Take(_params.limit); #endregion #endregion #region Отправка JSON //К-во Номенклатуры int dirCount = await Task.Run(() => db.DirWarehouses.CountAsync()); //А вдруг к-во меньше Лимита, тогда показать не общее к-во, а реальное! int dirCount2 = query.Count(); if (dirCount2 < _params.limit) { dirCount = _params.limit * (_params.page - 1) + dirCount2; } dynamic collectionWrapper = new { sucess = true, total = dirCount, DirWarehouse = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } else { #region Основной запрос *** *** *** var query = ( from dirWarehouses in db.DirWarehouses where dirWarehouses.Sub == _params.Sub select new { DirWarehouseID = dirWarehouses.DirWarehouseID, Sub = dirWarehouses.Sub, Del = dirWarehouses.Del, SysRecord = dirWarehouses.SysRecord, DirWarehouseName = dirWarehouses.DirWarehouseName, DirWarehouseAddress = dirWarehouses.DirWarehouseAddress, Phone = dirWarehouses.Phone, DirCashOfficeID = dirWarehouses.dirCashOffice.DirCashOfficeID, DirCashOfficeName = dirWarehouses.dirCashOffice.DirCashOfficeName, DirCurrencyID = dirWarehouses.dirCashOffice.DirCurrencyID, DirCurrencyRate = dirWarehouses.dirCashOffice.dirCurrency.DirCurrencyRate, DirCurrencyMultiplicity = dirWarehouses.dirCashOffice.dirCurrency.DirCurrencyMultiplicity, DirCashOfficeSum = dirWarehouses.dirCashOffice.DirCashOfficeSum, //DirWarehouseLocName = dirWarehouses.DirWarehouseLoc DirWarehouseLocName = dirWarehouses.DirWarehouseLoc == 1 ? SubWar1 : dirWarehouses.DirWarehouseLoc == 2 ? SubWar2 : dirWarehouses.DirWarehouseLoc == 3 ? SubWar3 : dirWarehouses.DirWarehouseLoc == 4 ? SubWar4 : dirWarehouses.DirWarehouseLoc == 4 ? SubWar5 : "Ошибка!", //Админ - всегда Админ! //IsAdmin = x.IsAdmin, //ККМ KKMSActive = dirWarehouses.KKMSActive, //Автоматическое закрытие смены SmenaClose = dirWarehouses.SmenaClose, SmenaCloseTime = dirWarehouses.SmenaCloseTime, } ); #endregion #region Условия (параметры) *** *** *** #region Не показывать удалённые if (!Convert.ToBoolean(sysSetting.DeletedRecordsShow)) { query = query.Where(x => x.Del == sysSetting.DeletedRecordsShow); } #endregion #region Поиск if (!String.IsNullOrEmpty(_params.parSearch)) { //Проверяем число ли это Int32 iNumber32; bool bResult32 = Int32.TryParse(_params.parSearch, out iNumber32); //Если число, то задействуем в поиске и числовые поля (_params.parSearch == iNumber) if (bResult32) { query = query.Where(x => x.DirWarehouseID == iNumber32 || x.DirWarehouseName.Contains(_params.parSearch) || x.DirWarehouseAddress.Contains(_params.parSearch)); } else { query = query.Where(x => x.DirWarehouseName.Contains(_params.parSearch) || x.DirWarehouseAddress.Contains(_params.parSearch)); } } #endregion #region OrderBy и Лимит query = query.OrderBy(x => x.DirWarehouseName).Skip(_params.Skip).Take(_params.limit); #endregion #endregion #region Отправка JSON //К-во Номенклатуры int dirCount = await Task.Run(() => db.DirWarehouses.CountAsync()); //А вдруг к-во меньше Лимита, тогда показать не общее к-во, а реальное! int dirCount2 = query.Count(); if (dirCount2 < _params.limit) { dirCount = _params.limit * (_params.page - 1) + dirCount2; } dynamic collectionWrapper = new { sucess = true, total = dirCount, DirWarehouse = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } } else //Tree { #region Отобразить только "Руты" *** *** *** var query = ( from x in db.DirWarehouses where x.Sub == null && x.DirWarehouseID != _params.XGroupID_NotShow select new { id = x.DirWarehouseID, text = x.DirWarehouseName, leaf = true, Del = x.Del } ); #endregion #region Отправка JSON //return Ok(await Task.Run(() => query)); dynamic collectionWrapper = new { query }; return(Ok(await Task.Run(() => collectionWrapper))); #endregion } } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/DocServiceMovTabs public async Task <IHttpActionResult> GetDocServiceMovTabs(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) //Возможно доступна Логистика int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocServiceMovements")); if (iRight == 3) { iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocServiceMovementsLogistics")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.DocServiceMovID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocServiceMovID", true) == 0).Value); #endregion #region Основной запрос *** *** *** var query = ( from docMovementTabs in db.DocServiceMovTabs join dirServiceNomens11 in db.DirServiceNomens on docMovementTabs.dirServiceNomen.Sub equals dirServiceNomens11.DirServiceNomenID into dirServiceNomens12 from dirServiceNomensSubGroup in dirServiceNomens12.DefaultIfEmpty() join dirServiceNomens21 in db.DirServiceNomens on dirServiceNomensSubGroup.Sub equals dirServiceNomens21.DirServiceNomenID into dirServiceNomens22 from dirServiceNomensGroup in dirServiceNomens22.DefaultIfEmpty() where docMovementTabs.DocServiceMovID == _params.DocServiceMovID #region select select new { DocServiceMovTabID = docMovementTabs.DocServiceMovTabID, DocServiceMovID = docMovementTabs.DocServiceMovID, DirServiceNomenID = docMovementTabs.DirServiceNomenID, DocServicePurchID = docMovementTabs.docServicePurch.DocServicePurchID, //DirServiceNomenName = docMovementTabs.dirServiceNomen.DirServiceNomenName, DirServiceNomenName = dirServiceNomensSubGroup.DirServiceNomenName == null ? docMovementTabs.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName == null ? dirServiceNomensSubGroup.DirServiceNomenName + " / " + docMovementTabs.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName + " / " + dirServiceNomensSubGroup.DirServiceNomenName + " / " + docMovementTabs.dirServiceNomen.DirServiceNomenName, DirServiceStatusID = docMovementTabs.DirServiceStatusID, DirServiceStatusName = docMovementTabs.dirServiceStatus.DirServiceStatusName, DirServiceStatusID_789 = docMovementTabs.DirServiceStatusID_789, DirServiceStatusName_789 = docMovementTabs.dirServiceStatus_789.DirServiceStatusName, //docServicePurch === PriceVAT = docMovementTabs.docServicePurch.PriceVAT, SerialNumber = docMovementTabs.docServicePurch.SerialNumber, DirServiceContractorName = docMovementTabs.docServicePurch.DirServiceContractorName, DirServiceContractorPhone = docMovementTabs.docServicePurch.DirServiceContractorPhone, PrepaymentSum = docMovementTabs.docServicePurch.PrepaymentSum, } #endregion ); #endregion #region Отправка JSON dynamic collectionWrapper = new { sucess = true, total = query.Count(), DocServiceMovTab = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/DocSecondHandRetailReturnTabs public async Task <IHttpActionResult> GetDocSecondHandRetailReturnTabs(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocSecondHandRetailReturns")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.DocSecondHandRetailReturnID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocSecondHandRetailReturnID", true) == 0).Value); _params.DateS = Convert.ToDateTime(Convert.ToDateTime(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DateS", true) == 0).Value).ToString("yyyy-MM-dd 23:59:59")); if (_params.DateS < Convert.ToDateTime("01.01.1800")) { _params.DateS = Convert.ToDateTime(sysSetting.JurDateS.ToString("yyyy-MM-dd 00:00:00")).AddDays(-1); } else { _params.DateS = _params.DateS.Value.AddDays(-1); } _params.DatePo = Convert.ToDateTime(Convert.ToDateTime(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocDate", true) == 0).Value).ToString("yyyy-MM-dd 23:59:59")); if (_params.DatePo < Convert.ToDateTime("01.01.1800")) { _params.DatePo = Convert.ToDateTime(sysSetting.JurDatePo.ToString("yyyy-MM-dd 23:59:59")); } _params.DirWarehouseID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirWarehouseID", true) == 0).Value); #endregion #region Основной запрос *** *** *** var query = ( from docSecondHandRetailReturnTabs in db.DocSecondHandRetailReturnTabs join dirServiceNomens11 in db.DirServiceNomens on docSecondHandRetailReturnTabs.dirServiceNomen.Sub equals dirServiceNomens11.DirServiceNomenID into dirServiceNomens12 from dirServiceNomensSubGroup in dirServiceNomens12.DefaultIfEmpty() join dirServiceNomens21 in db.DirServiceNomens on dirServiceNomensSubGroup.Sub equals dirServiceNomens21.DirServiceNomenID into dirServiceNomens22 from dirServiceNomensGroup in dirServiceNomens22.DefaultIfEmpty() /* * //Характеристики * join dirCharColours1 in db.DirCharColours on docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharColourID equals dirCharColours1.DirCharColourID into dirCharColours2 * from dirCharColours in dirCharColours2.DefaultIfEmpty() * * join dirCharMaterials1 in db.DirCharMaterials on docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharMaterialID equals dirCharMaterials1.DirCharMaterialID into dirCharMaterials2 * from dirCharMaterials in dirCharMaterials2.DefaultIfEmpty() * * join dirCharNames1 in db.DirCharNames on docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharNameID equals dirCharNames1.DirCharNameID into dirCharNames2 * from dirCharNames in dirCharNames2.DefaultIfEmpty() * * join dirCharSeasons1 in db.DirCharSeasons on docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharSeasonID equals dirCharSeasons1.DirCharSeasonID into dirCharSeasons2 * from dirCharSeasons in dirCharSeasons2.DefaultIfEmpty() * * join dirCharSexes1 in db.DirCharSexes on docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharSexID equals dirCharSexes1.DirCharSexID into dirCharSexes2 * from dirCharSexes in dirCharSexes2.DefaultIfEmpty() * * join dirCharSizes1 in db.DirCharSizes on docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharSizeID equals dirCharSizes1.DirCharSizeID into dirCharSizes2 * from dirCharSizes in dirCharSizes2.DefaultIfEmpty() * * join dirCharStyles1 in db.DirCharStyles on docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharStyleID equals dirCharStyles1.DirCharStyleID into dirCharStyles2 * from dirCharStyles in dirCharStyles2.DefaultIfEmpty() * * join dirCharTextures1 in db.DirCharTextures on docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharTextureID equals dirCharTextures1.DirCharTextureID into dirCharTextures2 * from dirCharTextures in dirCharTextures2.DefaultIfEmpty() */ //where docSecondHandRetailReturnTabs.DocSecondHandRetailReturnID == _params.DocSecondHandRetailReturnID #region select select new { DocID = docSecondHandRetailReturnTabs.docSecondHandRetailReturn.DocID, DocDate = docSecondHandRetailReturnTabs.docSecondHandRetailReturn.doc.DocDate, Held = docSecondHandRetailReturnTabs.docSecondHandRetailReturn.doc.Held, Discount = docSecondHandRetailReturnTabs.docSecondHandRetailReturn.doc.Discount, DirWarehouseID = docSecondHandRetailReturnTabs.docSecondHandRetailReturn.DirWarehouseID, //партия Rem2PartyMinusID = docSecondHandRetailReturnTabs.rem2PartyMinus.Rem2PartyMinusID, DocSecondHandRetailReturnTabID = docSecondHandRetailReturnTabs.DocSecondHandRetailReturnTabID, DocSecondHandRetailReturnID = docSecondHandRetailReturnTabs.DocSecondHandRetailReturnID, DirServiceNomenID = docSecondHandRetailReturnTabs.DirServiceNomenID, //DirServiceNomenName = docSecondHandRetailReturnTabs.dirServiceNomen.DirServiceNomenName, DirServiceNomenName = dirServiceNomensSubGroup.DirServiceNomenName == null ? docSecondHandRetailReturnTabs.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName == null ? dirServiceNomensSubGroup.DirServiceNomenName + " / " + docSecondHandRetailReturnTabs.dirServiceNomen.DirServiceNomenName : dirServiceNomensGroup.DirServiceNomenName + " / " + dirServiceNomensSubGroup.DirServiceNomenName + " / " + docSecondHandRetailReturnTabs.dirServiceNomen.DirServiceNomenName, Quantity = docSecondHandRetailReturnTabs.Quantity, PriceVAT = docSecondHandRetailReturnTabs.PriceVAT, DirCurrencyID = docSecondHandRetailReturnTabs.DirCurrencyID, DirCurrencyRate = docSecondHandRetailReturnTabs.DirCurrencyRate, DirCurrencyMultiplicity = docSecondHandRetailReturnTabs.DirCurrencyMultiplicity, DirCurrencyName = docSecondHandRetailReturnTabs.dirCurrency.DirCurrencyName + " (" + docSecondHandRetailReturnTabs.DirCurrencyRate + ", " + docSecondHandRetailReturnTabs.DirCurrencyMultiplicity + ")", DirEmployeeName = docSecondHandRetailReturnTabs.docSecondHandRetailReturn.doc.dirEmployee.DirEmployeeName, //Характеристики /* * DirCharColourID = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharColourID, * DirCharColourName = dirCharColours.DirCharColourName, * DirCharMaterialID = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharMaterialID, * DirCharMaterialName = dirCharMaterials.DirCharMaterialName, * DirCharNameID = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharNameID, * DirCharNameName = dirCharNames.DirCharNameName, * DirCharSeasonID = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharSeasonID, * DirCharSeasonName = dirCharSeasons.DirCharSeasonName, * DirCharSexID = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharSexID, * DirCharSexName = dirCharSexes.DirCharSexName, * DirCharSizeID = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharSizeID, * DirCharSizeName = dirCharSizes.DirCharSizeName, * DirCharStyleID = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharStyleID, * DirCharStyleName = dirCharStyles.DirCharStyleName, * DirCharTextureID = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.DirCharTextureID, * DirCharTextureName = dirCharTextures.DirCharTextureName, * DirChar = * dirCharColours.DirCharColourName + " " + * dirCharMaterials.DirCharMaterialName + " " + * dirCharNames.DirCharNameName + " " + * dirCharSeasons.DirCharSeasonName + " " + * dirCharSexes.DirCharSexName + " " + * dirCharSizes.DirCharSizeName + " " + * dirCharStyles.DirCharStyleName + " " + * dirCharTextures.DirCharTextureName, */ SerialNumber = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.SerialNumber, Barcode = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.Barcode, //Цена в т.в. PriceCurrency = docSecondHandRetailReturnTabs.PriceCurrency, //Себестоимость SUMPurchPriceVATCurrency = docSecondHandRetailReturnTabs.Quantity * docSecondHandRetailReturnTabs.PriceCurrency == null ? 0 : Math.Round(docSecondHandRetailReturnTabs.Quantity * docSecondHandRetailReturnTabs.PriceCurrency, sysSetting.FractionalPartInSum), //Розница *** //Наценка MarkupRetail = 100 * (docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.PriceRetailVAT - docSecondHandRetailReturnTabs.PriceVAT) / docSecondHandRetailReturnTabs.PriceVAT == null ? 0 : Math.Round(100 * (docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.PriceRetailVAT - docSecondHandRetailReturnTabs.PriceVAT) / docSecondHandRetailReturnTabs.PriceVAT, sysSetting.FractionalPartInSum), //Розничная цена PriceRetailVAT = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.PriceRetailVAT, //Розничная цена в текущей валюте PriceRetailCurrency = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.PriceRetailCurrency, //Опт *** //Наценка MarkupWholesale = 100 * (docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.PriceWholesaleVAT - docSecondHandRetailReturnTabs.PriceVAT) / docSecondHandRetailReturnTabs.PriceVAT == null ? 0 : Math.Round(100 * (docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.PriceWholesaleVAT - docSecondHandRetailReturnTabs.PriceVAT) / docSecondHandRetailReturnTabs.PriceVAT, sysSetting.FractionalPartInSum) , //Оптовая цена PriceWholesaleVAT = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.PriceWholesaleVAT, //Оптовая цена в текущей валюте PriceWholesaleCurrency = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.PriceWholesaleCurrency, //Интерне-Магазин *** //Наценка MarkupIM = 100 * (docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.PriceIMVAT - docSecondHandRetailReturnTabs.PriceVAT) / docSecondHandRetailReturnTabs.PriceVAT == null ? 0 : Math.Round(100 * (docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.PriceIMVAT - docSecondHandRetailReturnTabs.PriceVAT) / docSecondHandRetailReturnTabs.PriceVAT, sysSetting.FractionalPartInSum) , //Интернет-Магазин PriceIMVAT = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.PriceIMVAT, //Интернет-Магазин в текущей валюте PriceIMCurrency = docSecondHandRetailReturnTabs.rem2PartyMinus.rem2Party.PriceIMCurrency, } #endregion ); //Параметры //1. По документу if (_params.DocSecondHandRetailReturnID > 0) { query = query.Where(x => x.DocSecondHandRetailReturnID == _params.DocSecondHandRetailReturnID); } //2. По дате if (_params.DateS != null) { query = query.Where(x => x.DocDate >= _params.DateS && x.DocDate <= _params.DatePo); } //3. Склад if (_params.DirWarehouseID > 0) { query = query.Where(x => x.DirWarehouseID == _params.DirWarehouseID); } #endregion #region Отправка JSON dynamic collectionWrapper = new { sucess = true, total = query.Count(), DocSecondHandRetailReturnTab = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
//public ActionResult Index() public async Task <ActionResult> Index(HttpRequestMessage request, FormCollection formCollection) { //return View(); try { #region Права HttpCookie CookieIPOL = Request.Cookies["CookieIPOL"]; Classes.Account.Login login = new Classes.Account.Login(); Classes.Account.Login.Field field = await Task.Run(() => login.Return(CookieIPOL, true)); //HttpCookie CookieIPOL = Request.Cookies["CookieIPOL"]; if (!field.Access) { return(Redirect("~/account/login/")); } //if (field.RetailOnly) { return Redirect("~/Retail/"); } #endregion #region Обновление - это есть в Дефолте Classes.Function.Variables.ConnectionString connectionString = new Classes.Function.Variables.ConnectionString(); string ConStr = connectionString.Return(field.DirCustomersID, null, false); Classes.Update.Update update = new Classes.Update.Update(); string[] sResultawait = await update.UpdatingOne(ConStr, field.DirCustomersID); //update.Start(); #endregion #region Тема, Язык, Интерфейс //Тема ViewData["CookieT"] = CookieIPOL["CookieT"]; if (ViewData["CookieT"] == null) { ViewData["CookieT"] = 1; } //Язык ViewData["CookieL"] = CookieIPOL["CookieL"]; if (ViewData["CookieL"] == null) { ViewData["CookieL"] = 1; } //Интерфейс ViewData["CookieI"] = CookieIPOL["CookieI"]; if (ViewData["CookieI"] == null) { ViewData["CookieI"] = 1; } #endregion return(View()); } catch (Exception ex) { Classes.Function.Exceptions.ExceptionEntry exceptionEntry = new Classes.Function.Exceptions.ExceptionEntry(); return(Redirect("~/account/login?Err=" + exceptionEntry.Return(ex))); } }
// GET: api/DirBonuses public async Task <IHttpActionResult> GetDirBonuses(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirBonuses")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.limit = 999999; // sysSetting.PageSizeDir; //Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "limit", true) == 0).Value); //Записей на страницу _params.page = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "page", true) == 0).Value); //Номер страницы _params.Skip = _params.limit * (_params.page - 1); _params.type = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "type", true) == 0).Value; _params.parSearch = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "parSearch", true) == 0).Value; if (_params.parSearch != null) { _params.parSearch = _params.parSearch.ToLower(); //Поиск } #endregion if (_params.type == "Grid") { #region Основной запрос *** *** *** var query = ( from x in db.DirBonuses select new { DirBonusID = x.DirBonusID, Del = x.Del, DirBonusName = x.DirBonusName } ); #endregion #region Условия (параметры) *** *** *** #region Не показывать удалённые if (!Convert.ToBoolean(sysSetting.DeletedRecordsShow)) { query = query.Where(x => x.Del == sysSetting.DeletedRecordsShow); } #endregion #region Поиск if (!String.IsNullOrEmpty(_params.parSearch)) { //Проверяем число ли это Int32 iNumber32; bool bResult32 = Int32.TryParse(_params.parSearch, out iNumber32); //Если число, то задействуем в поиске и числовые поля (_params.parSearch == iNumber) if (bResult32) { query = query.Where(x => x.DirBonusID == iNumber32 || x.DirBonusName.Contains(_params.parSearch)); } else { query = query.Where(x => x.DirBonusName.Contains(_params.parSearch)); } } #endregion #region OrderBy и Лимит query = query.OrderBy(x => x.DirBonusName); //.Skip(_params.Skip).Take(_params.limit); #endregion #endregion #region Отправка JSON //К-во Номенклатуры int dirCount = await Task.Run(() => db.DirBonuses.Count()); //А вдруг к-во меньше Лимита, тогда показать не общее к-во, а реальное! int dirCount2 = query.Count(); //if (dirCount2 < _params.limit) dirCount = _params.limit * (_params.page - 1) + dirCount2; dynamic collectionWrapper = new { sucess = true, total = dirCount, DirBonus = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } else //Tree { #region Отобразить только "Руты" *** *** *** var query = ( from x in db.DirBonuses select new { id = x.DirBonusID, text = x.DirBonusName, leaf = true, Del = x.Del } ); #endregion #region Отправка JSON //return Ok(await Task.Run(() => query)); dynamic collectionWrapper = new { query }; return(Ok(await Task.Run(() => collectionWrapper))); #endregion } } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// GET: api/RemParties public async Task <IHttpActionResult> GetRemParties(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) /* * int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightRemParties")); * if (iRight == 3) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))); */ //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.DocDate = Convert.ToDateTime(Convert.ToDateTime(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocDate", true) == 0).Value).ToString("yyyy-MM-dd 23:59:59")); _params.DirContractorIDOrg = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirContractorIDOrg", true) == 0).Value); _params.DirWarehouseID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirWarehouseID", true) == 0).Value); _params.DirNomenID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirNomenID", true) == 0).Value); _params.DirContractorID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirContractorID", true) == 0).Value); _params.parSearch = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "parSearch", true) == 0).Value; if (_params.parSearch != null) { _params.parSearch = _params.parSearch.ToLower(); //Поиск } //В "collectionWrapper" по умолчанию "RemParty = query" //Но, для DocActWriteOffTabs будет "DocActWriteOffTab = query" _params.queryIn = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "queryIn", true) == 0).Value; #endregion #region Запрос и отправка if (String.IsNullOrEmpty(_params.queryIn)) { #region Основной запрос *** *** *** var query = ( from remParties in db.RemParties where remParties.Remnant > 0 //remParties.DirContractorIDOrg == _params.DirContractorIDOrg && //remParties.DirNomenID == _params.DirNomenID && //remParties.DirWarehouseID == _params.DirWarehouseID select new { DocID = remParties.DocID, NumberReal = remParties.doc.NumberReal, RemPartyID = remParties.RemPartyID, DirNomenID = remParties.DirNomenID, DirNomenName = remParties.dirNomen.DirNomenName, DocDate = remParties.doc.DocDate, ListObjectID = remParties.doc.ListObjectID, DirContractorIDOrg = remParties.DirContractorIDOrg, DirContractorNameOrg = remParties.doc.dirContractorOrg.DirContractorName, //DirContractorID = remParties.doc.dirContractor.DirContractorID, //DirContractorName = remParties.doc.dirContractor.DirContractorName, DirContractorID = remParties.dirContractor.DirContractorID, DirContractorName = remParties.dirContractor.DirContractorName, DocDatePurches = remParties.DocDatePurches, //Характеристики DirCharColourID = remParties.DirCharColourID, DirCharColourName = remParties.dirCharColour.DirCharColourName, DirCharMaterialID = remParties.DirCharMaterialID, DirCharMaterialName = remParties.dirCharMaterial.DirCharMaterialName, DirCharNameID = remParties.DirCharNameID, DirCharNameName = remParties.dirCharName.DirCharNameName, DirCharSeasonID = remParties.DirCharSeasonID, DirCharSeasonName = remParties.dirCharSeason.DirCharSeasonName, DirCharSexID = remParties.DirCharSexID, DirCharSexName = remParties.dirCharSex.DirCharSexName, DirCharSizeID = remParties.DirCharSizeID, DirCharSizeName = remParties.dirCharSize.DirCharSizeName, DirCharStyleID = remParties.DirCharStyleID, DirCharStyleName = remParties.dirCharStyle.DirCharStyleName, DirCharTextureID = remParties.DirCharTextureID, DirCharTextureName = remParties.dirCharTexture.DirCharTextureName, DirChar = remParties.dirCharColour.DirCharColourName + " " + remParties.dirCharMaterial.DirCharMaterialName + " " + remParties.dirCharName.DirCharNameName + " " + remParties.dirCharSeason.DirCharSeasonName + " " + remParties.dirCharSex.DirCharSexName + " " + remParties.dirCharSize.DirCharSizeName + " " + remParties.dirCharStyle.DirCharStyleName + " " + remParties.dirCharTexture.DirCharTextureName, SerialNumber = remParties.SerialNumber, Barcode = remParties.Barcode, DirCurrencyID = remParties.DirCurrencyID, DirCurrencyName = remParties.dirCurrency.DirCurrencyName, DirCurrencyRate = remParties.dirCurrency.DirCurrencyRate, DirCurrencyMultiplicity = remParties.dirCurrency.DirCurrencyMultiplicity, DirVatValue = remParties.DirVatValue, DirWarehouseID = remParties.DirWarehouseID, DirWarehouseName = remParties.dirWarehouse.DirWarehouseName, ListDocNameRu = remParties.doc.listObject.ListObjectNameRu, PriceVAT = remParties.PriceVAT, //PriceVAT = Math.Round(remParties.PriceVAT, sysSetting.FractionalPartInPrice), PriceCurrency = remParties.PriceCurrency, //PriceCurrency = Math.Round(remParties.PriceCurrency, sysSetting.FractionalPartInPrice), Quantity = remParties.Quantity, Remnant = remParties.Remnant, //Reserve = remParties.Reserve MarkupRetail = ((remParties.PriceRetailVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100 == null ? 0 : Math.Round(((remParties.PriceRetailVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100, sysSetting.FractionalPartInPrice), PriceRetailVAT = remParties.PriceRetailVAT - remParties.doc.Discount, PriceRetailCurrency = (remParties.PriceRetailVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity == null ? 0 : Math.Round((remParties.PriceRetailVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity - remParties.doc.Discount, sysSetting.FractionalPartInPrice), MarkupWholesale = ((remParties.PriceWholesaleVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100 == null ? 0 : Math.Round(((remParties.PriceWholesaleVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100, sysSetting.FractionalPartInPrice), PriceWholesaleVAT = remParties.PriceWholesaleVAT - remParties.doc.Discount, PriceWholesaleCurrency = (remParties.PriceWholesaleVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity == null ? 0 : Math.Round((remParties.PriceWholesaleVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity - remParties.doc.Discount, sysSetting.FractionalPartInPrice), MarkupIM = ((remParties.PriceIMVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100 == null ? 0 : Math.Round(((remParties.PriceIMVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100, sysSetting.FractionalPartInPrice), PriceIMVAT = remParties.PriceIMVAT - remParties.doc.Discount, PriceIMCurrency = (remParties.PriceIMVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity == null ? 0 : Math.Round((remParties.PriceIMVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity - remParties.doc.Discount, sysSetting.FractionalPartInPrice), DirNomenMinimumBalance = remParties.DirNomenMinimumBalance, DirEmployeeName = remParties.doc.dirEmployee.DirEmployeeName, //Причина возврата DirDescriptionID = remParties.DirDescriptionID, DirDescriptionName = remParties.dirDescription.DirDescriptionName, DirReturnTypeID = remParties.DirReturnTypeID, DirReturnTypeName = remParties.dirReturnType.DirReturnTypeName, SysGenID = remParties.dirNomen.SysGenID, //SysGenIDPatch = @"UsersTemp/UserImage/" + field.DirCustomersID + "_" + x.SysGenID + ".jpg" SysGenIDPatch = remParties.dirNomen.SysGenID == null ? "" : @"/Users/user_" + field.DirCustomersID + "/" + remParties.dirNomen.SysGenID + ".jpg" } ); #endregion #region Условия (параметры) *** *** *** //Поиск товара if (_params.DirNomenID <= 0 && string.IsNullOrEmpty(_params.parSearch)) { dynamic collectionWrapper1 = new { sucess = true, total = 0, RemParty = 0 }; return(await Task.Run(() => Ok(collectionWrapper1))); } #region Кликнули на товар - паказать список партий //if (_params.DocDate > Convert.ToDateTime("2000-01-01")) query = query.Where(x => x.DocDate <= _params.DocDate); if (_params.DirContractorIDOrg > 0) { query = query.Where(x => x.DirContractorIDOrg == _params.DirContractorIDOrg); } if (_params.DirNomenID > 0) { query = query.Where(x => x.DirNomenID == _params.DirNomenID); } if (_params.DirWarehouseID > 0) { query = query.Where(x => x.DirWarehouseID == _params.DirWarehouseID); } if (_params.DirContractorID > 0) { query = query.Where(x => x.DirContractorID == _params.DirContractorID); } #endregion #region Поиск партии по Серийному номеру или по Штрих-коду if (!string.IsNullOrEmpty(_params.parSearch)) { //query = query.Where(x => x.SerialNumber == _params.parSearch || x.Barcode == _params.parSearch); //Если число, то искать в коде товара int?iID_ = 0; int value; if (int.TryParse(_params.parSearch, out value)) { iID_ = Convert.ToInt32(_params.parSearch); query = query.Where(x => x.SerialNumber == _params.parSearch || x.Barcode == _params.parSearch || x.DirNomenID == iID_); } else { query = query.Where(x => x.SerialNumber == _params.parSearch || x.Barcode == _params.parSearch); } } #endregion #region OrderBy query = query.OrderByDescending(x => x.DocDate); #endregion #endregion #region Отправка JSON //А вдруг к-во меньше Лимита, тогда показать не общее к-во, а реальное! int dirCount = query.Count(); dynamic collectionWrapper = new { sucess = true, total = dirCount, RemParty = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } else { #region Основной запрос *** *** *** var query = ( from remParties in db.RemParties where remParties.Remnant > 0 && remParties.DirContractorIDOrg == _params.DirContractorIDOrg && remParties.DirWarehouseID == _params.DirWarehouseID select new { DocID = remParties.DocID, NumberReal = remParties.doc.NumberReal, RemPartyID = remParties.RemPartyID, DirNomenID = remParties.DirNomenID, DirNomenName = remParties.dirNomen.DirNomenName, //DocDate = remParties.doc.DocDate, //ListObjectID = remParties.doc.ListObjectID, //DirContractorIDOrg = remParties.DirContractorIDOrg, //DirContractorNameOrg = remParties.doc.dirContractorOrg.DirContractorName, DirContractorID = remParties.dirContractor.DirContractorID, //DirContractorName = remParties.dirContractor.DirContractorName, //DocDatePurches = remParties.DocDatePurches, //Характеристики DirCharColourID = remParties.DirCharColourID, DirCharColourName = remParties.dirCharColour.DirCharColourName, DirCharMaterialID = remParties.DirCharMaterialID, DirCharMaterialName = remParties.dirCharMaterial.DirCharMaterialName, DirCharNameID = remParties.DirCharNameID, DirCharNameName = remParties.dirCharName.DirCharNameName, DirCharSeasonID = remParties.DirCharSeasonID, DirCharSeasonName = remParties.dirCharSeason.DirCharSeasonName, DirCharSexID = remParties.DirCharSexID, DirCharSexName = remParties.dirCharSex.DirCharSexName, DirCharSizeID = remParties.DirCharSizeID, DirCharSizeName = remParties.dirCharSize.DirCharSizeName, DirCharStyleID = remParties.DirCharStyleID, DirCharStyleName = remParties.dirCharStyle.DirCharStyleName, DirCharTextureID = remParties.DirCharTextureID, DirCharTextureName = remParties.dirCharTexture.DirCharTextureName, DirChar = remParties.dirCharColour.DirCharColourName + " " + remParties.dirCharMaterial.DirCharMaterialName + " " + remParties.dirCharName.DirCharNameName + " " + remParties.dirCharSeason.DirCharSeasonName + " " + remParties.dirCharSex.DirCharSexName + " " + remParties.dirCharSize.DirCharSizeName + " " + remParties.dirCharStyle.DirCharStyleName + " " + remParties.dirCharTexture.DirCharTextureName, //SerialNumber = remParties.SerialNumber, //Barcode = remParties.Barcode, DirCurrencyID = remParties.DirCurrencyID, DirCurrencyName = remParties.dirCurrency.DirCurrencyName, DirCurrencyRate = remParties.dirCurrency.DirCurrencyRate, DirCurrencyMultiplicity = remParties.dirCurrency.DirCurrencyMultiplicity, DirVatValue = remParties.DirVatValue, //DirWarehouseID = remParties.DirWarehouseID, //DirWarehouseName = remParties.dirWarehouse.DirWarehouseName, //ListDocNameRu = remParties.doc.listObject.ListObjectNameRu, PriceVAT = remParties.PriceVAT, //PriceVAT = Math.Round(remParties.PriceVAT, sysSetting.FractionalPartInPrice), PriceCurrency = remParties.PriceCurrency, //PriceCurrency = Math.Round(remParties.PriceCurrency, sysSetting.FractionalPartInPrice), Quantity = remParties.Remnant, Quantity_WriteOff = remParties.Remnant, Quantity_Purch = 0, //Quantity = remParties.Quantity, //Remnant = remParties.Remnant, //Reserve = remParties.Reserve MarkupRetail = ((remParties.PriceRetailVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100 == null ? 0 : Math.Round(((remParties.PriceRetailVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100, sysSetting.FractionalPartInPrice), PriceRetailVAT = remParties.PriceRetailVAT, PriceRetailCurrency = (remParties.PriceRetailVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity == null ? 0 : Math.Round((remParties.PriceRetailVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity, sysSetting.FractionalPartInPrice), MarkupWholesale = ((remParties.PriceWholesaleVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100 == null ? 0 : Math.Round(((remParties.PriceWholesaleVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100, sysSetting.FractionalPartInPrice), PriceWholesaleVAT = remParties.PriceWholesaleVAT, PriceWholesaleCurrency = (remParties.PriceWholesaleVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity == null ? 0 : Math.Round((remParties.PriceWholesaleVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity, sysSetting.FractionalPartInPrice), MarkupIM = ((remParties.PriceIMVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100 == null ? 0 : Math.Round(((remParties.PriceIMVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100, sysSetting.FractionalPartInPrice), PriceIMVAT = remParties.PriceIMVAT, PriceIMCurrency = (remParties.PriceIMVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity == null ? 0 : Math.Round((remParties.PriceIMVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity, sysSetting.FractionalPartInPrice), DirNomenMinimumBalance = remParties.DirNomenMinimumBalance, DirEmployeeName = remParties.doc.dirEmployee.DirEmployeeName, //Причина возврата /* * DirDescriptionID = remParties.DirDescriptionID, * DirDescriptionName = remParties.dirDescription.DirDescriptionName, * DirReturnTypeID = remParties.DirReturnTypeID, * DirReturnTypeName = remParties.dirReturnType.DirReturnTypeName, * * * SysGenID = remParties.dirNomen.SysGenID, * //SysGenIDPatch = @"UsersTemp/UserImage/" + field.DirCustomersID + "_" + x.SysGenID + ".jpg" * SysGenIDPatch = remParties.dirNomen.SysGenID == null ? "" : * @"/Users/user_" + field.DirCustomersID + "/" + remParties.dirNomen.SysGenID + ".jpg" */ } ); #endregion #region Отправка JSON //А вдруг к-во меньше Лимита, тогда показать не общее к-во, а реальное! int dirCount = query.Count(); if (_params.queryIn == "DocActWriteOffTab") { dynamic collectionWrapper = new { sucess = true, total = dirCount, DocActWriteOffTab = query }; return(await Task.Run(() => Ok(collectionWrapper))); } else //if (_params.queryIn == "DocInventoryTab") { dynamic collectionWrapper = new { sucess = true, total = dirCount, DocInventoryTab = query }; return(await Task.Run(() => Ok(collectionWrapper))); } #endregion } #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
public async Task <IHttpActionResult> GetDirContractor1Types(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.limit = 999999; // sysSetting.PageSizeDir; //Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "limit", true) == 0).Value); //Записей на страницу _params.page = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "page", true) == 0).Value); //Номер страницы _params.Skip = _params.limit * (_params.page - 1); _params.type = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "type", true) == 0).Value; _params.parSearch = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "parSearch", true) == 0).Value; if (_params.parSearch != null) { _params.parSearch = _params.parSearch.ToLower(); //Поиск } #endregion if (_params.type == "Grid") { #region Основной запрос *** *** *** var query = ( from dirContractor1Types in db.DirContractor1Types select new { DirContractor1TypeID = dirContractor1Types.DirContractor1TypeID, DirContractor1TypeName = dirContractor1Types.DirContractor1TypeName, } ); #endregion #region Условия (параметры) *** *** *** #region OrderBy и Лимит //query = query.OrderBy(x => x.DirContractor1TypeName); //.Skip(_params.Skip).Take(_params.limit); #endregion #endregion #region Отправка JSON //К-во Номенклатуры int dirCount = await Task.Run(() => db.DirContractor1Types.Count()); //А вдруг к-во меньше Лимита, тогда показать не общее к-во, а реальное! //int dirCount2 = query.Count(); //if (dirCount2 < _params.limit) dirCount = _params.limit * (_params.page - 1) + dirCount2; dynamic collectionWrapper = new { sucess = true, total = dirCount, DirContractor1Type = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } else //Tree { #region Отобразить только "Руты" *** *** *** var query = ( from x in db.DirContractor1Types select new { id = x.DirContractor1TypeID, text = x.DirContractor1TypeName, leaf = true } ); #endregion #region Отправка JSON //return Ok(await Task.Run(() => query)); dynamic collectionWrapper = new { query }; return(Ok(await Task.Run(() => collectionWrapper))); #endregion } } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
public async Task <IHttpActionResult> GetSysJourDisps(HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightSysJourDisps")); if (iRight == 3) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры Params _params = new Params(); //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры _params.limit = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "limit", true) == 0).Value); //Записей на страницу _params.page = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "page", true) == 0).Value); //Номер страницы _params.Skip = _params.limit * (_params.page - 1); _params.GroupID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "pGroupID", true) == 0).Value); //Кликнули по группе _params.parSearch = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "parSearch", true) == 0).Value; if (_params.parSearch != null) { _params.parSearch = _params.parSearch.ToLower(); //Поиск } #endregion //Открытие на редактирование в форме #region Основной запрос *** *** *** var query = ( from x in db.SysJourDisps select new { SysJourDispID = x.SysJourDispID, DirEmployeeName = x.dirEmployee.DirEmployeeName, DirDispOperationName = x.dirDispOperation.DirDispOperationName, ListObjectNameRu = x.listObject.ListObjectNameRu, TableFieldID = x.TableFieldID, SysJourDispDateTime = x.SysJourDispDateTime.ToString(), DocDisc = x.Description, } ); #endregion #region Условия (параметры) *** *** *** #region Поиск if (!String.IsNullOrEmpty(_params.parSearch)) { query = query.Where(x => x.DirEmployeeName.Contains(_params.parSearch) || x.DirDispOperationName.Contains(_params.parSearch) || x.ListObjectNameRu.Contains(_params.parSearch)); } #endregion #region OrderBy и Лимит query = query.OrderBy(x => x.SysJourDispID).Skip(_params.Skip).Take(_params.limit); #endregion #endregion #region Отправка JSON //К-во Номенклатуры int dirCount = await Task.Run(() => db.SysJourDisps.Count()); //А вдруг к-во меньше Лимита, тогда показать не общее к-во, а реальное! int dirCount2 = query.Count(); if (dirCount2 < _params.limit) { dirCount = _params.limit * (_params.page - 1) + dirCount2; } dynamic collectionWrapper = new { sucess = true, total = dirCount, SysJourDisp = query }; return(await Task.Run(() => Ok(collectionWrapper))); //return await Task.Run(() => Ok(returnServer.Return(true, dirCount, "SysJourDisp", query))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }