public async Task <IHttpActionResult> PostDirBonus2es(DirBonus2 DirBonus2) { #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 != 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 Параметры //Получаем колекцию "Табличную часть" Models.Sklad.Dir.DirBonus2Tab[] DirBonus2TabCollection = null; if (!String.IsNullOrEmpty(DirBonus2.recordsDirBonus2TabsGrid)) { JavaScriptSerializer serializer = new JavaScriptSerializer(); DirBonus2TabCollection = serializer.Deserialize <Models.Sklad.Dir.DirBonus2Tab[]>(DirBonus2.recordsDirBonus2TabsGrid); } #endregion #region Проверки if (!ModelState.IsValid) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg91))); //return BadRequest(ModelState); } #endregion #region Сохранение try { //Используем метод, что бы было всё в одном потоке await Task.Run(() => mPutPostDirBonus2(sysSetting, DirBonus2, EntityState.Added, DirBonus2TabCollection)); #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 = DirBonus2.DirBonus2ID; sysJourDisp.Description = ""; try { sysJourDispsController.mPutPostSysJourDisps(db, sysJourDisp, EntityState.Added); } catch (Exception ex) { } #endregion dynamic collectionWrapper = new { ID = DirBonus2.DirBonus2ID }; 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/DirPriceTypes public async Task <IHttpActionResult> GetDirPriceTypes(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 dirPriceTypes in db.DirPriceTypes select new { DirPriceTypeID = dirPriceTypes.DirPriceTypeID, DirPriceTypeName = dirPriceTypes.DirPriceTypeName, } ); #endregion #region Условия (параметры) *** *** *** #region OrderBy и Лимит //query = query.OrderBy(x => x.DirPriceTypeName); //.Skip(_params.Skip).Take(_params.limit); #endregion #endregion #region Отправка JSON //К-во Номенклатуры int dirCount = await Task.Run(() => db.DirPriceTypes.Count()); //А вдруг к-во меньше Лимита, тогда показать не общее к-во, а реальное! //int dirCount2 = query.Count(); //if (dirCount2 < _params.limit) dirCount = _params.limit * (_params.page - 1) + dirCount2; dynamic collectionWrapper = new { sucess = true, total = dirCount, DirPriceType = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } else //Tree { #region Отобразить только "Руты" *** *** *** var query = ( from x in db.DirPriceTypes select new { id = x.DirPriceTypeID, text = x.DirPriceTypeName, 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> GetDirCharTexture(int id, 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, "RightDirCharTextures")); 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.parSearch = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "parSearch", true) == 0).Value; if (_params.parSearch != null) { _params.parSearch = _params.parSearch.ToLower(); //Поиск } #endregion #region Отправка JSON var query = await Task.Run(() => ( from x in db.DirCharTextures where x.DirCharTextureID == id select new { //1. Оснавные === === === === === === === === === === === DirCharTextureID = x.DirCharTextureID, Del = x.Del, DirCharTextureName = x.DirCharTextureName } ).ToListAsync()); if (query.Count() > 0) { return(Ok(returnServer.Return(true, query[0]))); } else { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg89))); } //return Ok(returnServer.Return(false, Classes.Language.Language.msg89)); #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> DeleteDirServiceNomenPrice(int id) { #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, "RightDirServiceNomens")); 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 Удаление try { DirServiceNomenPrice dirServiceNomenPrice = await db.DirServiceNomenPrices.FindAsync(id); if (dirServiceNomenPrice == null) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg99))); } db.DirServiceNomenPrices.Remove(dirServiceNomenPrice); await db.SaveChangesAsync(); #region 6. JourDisp *** *** *** *** *** *** *** *** *** * Models.Sklad.Sys.SysJourDisp sysJourDisp = new Models.Sklad.Sys.SysJourDisp(); sysJourDisp.DirDispOperationID = 5; //Удаление записи sysJourDisp.DirEmployeeID = field.DirEmployeeID; sysJourDisp.ListObjectID = ListObjectID; sysJourDisp.TableFieldID = dirServiceNomenPrice.DirServiceNomenPriceID; sysJourDisp.Description = ""; try { sysJourDispsController.mPutPostSysJourDisps(db, sysJourDisp, EntityState.Added); } catch (Exception ex) { } #endregion dynamic collectionWrapper = new { ID = dirServiceNomenPrice.DirServiceNomenPriceID, Msg = Classes.Language.Sklad.Language.msg19 }; return(Ok(returnServer.Return(true, collectionWrapper))); //return Ok(returnServer.Return(true, "") } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } #endregion }
internal async Task <string> Generate(System.Web.HttpRequestBase Request, DbConnectionSklad db) { #region Параметры pID = Request.Params["pID"]; pLanguage = Convert.ToInt32(Request.Params["pLanguage"]); DateS = Convert.ToDateTime(Convert.ToDateTime(Request.Params["DateS"]).ToString("yyyy-MM-dd 00:00:00")); DatePo = Convert.ToDateTime(Convert.ToDateTime(Request.Params["DatePo"]).ToString("yyyy-MM-dd 23:59:59")); DirContractorIDOrg = 0; bool bDirContractorIDOrg = Int32.TryParse(Request.Params["DirContractorIDOrg"], out DirContractorIDOrg); DirContractorNameOrg = Request.Params["DirContractorNameOrg"]; DirEmployeeID = 0; bool bDirEmployeeID = Int32.TryParse(Request.Params["DirEmployeeID"], out DirEmployeeID); DirEmployeeName = Request.Params["DirEmployeeName"]; DirMovementStatusID = 0; bool bDirMovementStatusID = Int32.TryParse(Request.Params["DirMovementStatusID"], out DirMovementStatusID); DirMovementStatusName = Request.Params["DirMovementStatusName"]; DocOrTab = Convert.ToInt32(Request.Params["DocOrTab"]); #endregion string //DirNomenPatchFull = "", ret = "<center>" + "<h2>" + "Логистика" + " (" + DateS.ToString("yyyy-MM-dd") + " по " + DatePo.ToString("yyyy-MM-dd") + ")</h2>"; if (DocOrTab == 1) { #region query var queryTemp = ( from docMovements in db.DocMovements where docMovements.doc.DocDate >= DateS && docMovements.doc.DocDate <= DatePo && docMovements.DirMovementStatusID > 1 select new { //№ DocMovementID = docMovements.DocMovementID, //Дата DocDate = docMovements.doc.DocDate, //Точка - откуда DirWarehouseIDFrom = docMovements.DirWarehouseIDFrom, DirWarehouseNameFrom = docMovements.dirWarehouseFrom.DirWarehouseName, //Курьер DirEmployeeIDCourier = docMovements.DirEmployeeIDCourier, DirEmployeeNameCourier = docMovements.dirEmployee_Courier.DirEmployeeName, //Курьер DirWarehouseIDTo = docMovements.DirWarehouseIDTo, DirWarehouseNameTo = docMovements.dirWarehouseTo.DirWarehouseName, DirMovementStatusID = docMovements.DirMovementStatusID, DirMovementStatusName = docMovements.dirMovementStatus.DirMovementStatusName, } ); if (DirEmployeeID > 0) { queryTemp = queryTemp.Where(z => z.DirEmployeeIDCourier == DirEmployeeID); } if (DirMovementStatusID > 0) { queryTemp = queryTemp.Where(z => z.DirMovementStatusID == DirMovementStatusID); } else { queryTemp = queryTemp.Where(z => z.DirMovementStatusID <= 3); } #endregion #region DataReader ret += ReportHeaderDoc(pLanguage) + "</center>"; double dQuantity = 0; //Получение списка var query = await Task.Run(() => queryTemp.ToListAsync()); //ДатаРидер for (int i = 0; i < query.Count(); i++) { ret += //№ "<TD>" + query[i].DocMovementID + "</TD> " + //Дата "<TD>" + Convert.ToDateTime(query[i].DocDate).ToString("yyyy-MM-dd") + "</TD> " + //Точка от "<TD>" + query[i].DirWarehouseNameFrom + "</TD> " + //Курьер "<TD>" + query[i].DirEmployeeNameCourier + "</TD> " + //Точка на "<TD>" + query[i].DirWarehouseNameTo + "</TD> " + //Статус "<TD>" + query[i].DirMovementStatusName + "</TD> " + "</TR>"; } ret += "</TABLE>" + "К-во документов: " + query.Count(); #endregion } else { #region query var queryTemp = ( from docMovements in db.DocMovements from docMovementTabs in db.DocMovementTabs join dirNomens11 in db.DirNomens on docMovementTabs.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() #region Характеристики join dirCharColours1 in db.DirCharColours on docMovementTabs.DirCharColourID equals dirCharColours1.DirCharColourID into dirCharColours2 from dirCharColours in dirCharColours2.DefaultIfEmpty() join dirCharMaterials1 in db.DirCharMaterials on docMovementTabs.DirCharMaterialID equals dirCharMaterials1.DirCharMaterialID into dirCharMaterials2 from dirCharMaterials in dirCharMaterials2.DefaultIfEmpty() join dirCharNames1 in db.DirCharNames on docMovementTabs.DirCharNameID equals dirCharNames1.DirCharNameID into dirCharNames2 from dirCharNames in dirCharNames2.DefaultIfEmpty() join dirCharSeasons1 in db.DirCharSeasons on docMovementTabs.DirCharSeasonID equals dirCharSeasons1.DirCharSeasonID into dirCharSeasons2 from dirCharSeasons in dirCharSeasons2.DefaultIfEmpty() join dirCharSexes1 in db.DirCharSexes on docMovementTabs.DirCharSexID equals dirCharSexes1.DirCharSexID into dirCharSexes2 from dirCharSexes in dirCharSexes2.DefaultIfEmpty() join dirCharSizes1 in db.DirCharSizes on docMovementTabs.DirCharSizeID equals dirCharSizes1.DirCharSizeID into dirCharSizes2 from dirCharSizes in dirCharSizes2.DefaultIfEmpty() join dirCharStyles1 in db.DirCharStyles on docMovementTabs.DirCharStyleID equals dirCharStyles1.DirCharStyleID into dirCharStyles2 from dirCharStyles in dirCharStyles2.DefaultIfEmpty() join dirCharTextures1 in db.DirCharTextures on docMovementTabs.DirCharTextureID equals dirCharTextures1.DirCharTextureID into dirCharTextures2 from dirCharTextures in dirCharTextures2.DefaultIfEmpty() #endregion where docMovements.DocMovementID == docMovementTabs.DocMovementID && docMovements.doc.DocDate >= DateS && docMovements.doc.DocDate <= DatePo && docMovements.DirMovementStatusID > 1 select new { DocMovementID = docMovements.DocMovementID, //Код товара DirNomenID = docMovementTabs.DirNomenID, Sub = docMovementTabs.dirNomen.Sub, //Товар Наименование DirNomenName = docMovementTabs.dirNomen.DirNomenName, DirNomenPatchFull = dirNomensSubGroup.DirNomenName == null ? "" : dirNomensGroup.DirNomenName == null ? dirNomensSubGroup.DirNomenName : dirNomensGroup.DirNomenName + " / " + dirNomensSubGroup.DirNomenName, //Цена закупки //Purch_PriceCurrency = docMovementTabs.PriceCurrency, //Цена продажи //Sale_PriceCurrency = docMovementTabs.PriceCurrency, //К-во Sale_Quantity = docMovementTabs.Quantity, //Сумма //Sums = docMovementTabs.Quantity * docMovementTabs.PriceCurrency - docMovementTabs.doc.Discount, //Прибыль //SumProfit = docMovementTabs.Quantity * (x.PriceCurrency - docMovementTabs.PriceCurrency) - docMovementTabs.doc.Discount, //Скидка //Sale_Discount = docMovementTabs.doc.Discount, //Дата DocDate = docMovements.doc.DocDate, //Точка - откуда DirWarehouseIDFrom = docMovements.DirWarehouseIDFrom, DirWarehouseNameFrom = docMovements.dirWarehouseFrom.DirWarehouseName, //Курьер DirEmployeeIDCourier = docMovements.DirEmployeeIDCourier, DirEmployeeNameCourier = docMovements.dirEmployee_Courier.DirEmployeeName, //Курьер DirWarehouseIDTo = docMovements.DirWarehouseIDTo, DirWarehouseNameTo = docMovements.dirWarehouseTo.DirWarehouseName, DirMovementStatusID = docMovements.DirMovementStatusID, DirMovementStatusName = docMovements.dirMovementStatus.DirMovementStatusName, //Характеристики /* * 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, //SerialNumber = docMovementTabs.SerialNumber, //Barcode = docMovementTabs.Barcode, } ); if (DirEmployeeID > 0) { queryTemp = queryTemp.Where(z => z.DirEmployeeIDCourier == DirEmployeeID); } if (DirMovementStatusID > 0) { queryTemp = queryTemp.Where(z => z.DirMovementStatusID == DirMovementStatusID); } else { queryTemp = queryTemp.Where(z => z.DirMovementStatusID <= 3); } #endregion #region DataReader ret += ReportHeaderTab(pLanguage) + "</center>"; double dQuantity = 0; //Получение списка var query = await Task.Run(() => queryTemp.ToListAsync()); //ДатаРидер for (int i = 0; i < query.Count(); i++) { dQuantity += query[i].Sale_Quantity; ret += "<TR>" + //Код товара "<TD>" + query[i].DirNomenID + "</TD> " + //Категория "<TD>" + query[i].DirNomenPatchFull + "</TD> " + //Товар Наименование "<TD>" + query[i].DirNomenName + "</TD> " + //Характеристики "<TD>" + query[i].DirChar + "</TD> "; ret += //К-во "<TD>" + query[i].Sale_Quantity + "</TD> "; ret += //Дата "<TD>" + Convert.ToDateTime(query[i].DocDate).ToString("yyyy-MM-dd") + "</TD> " + //Точка от "<TD>" + query[i].DirWarehouseNameFrom + "</TD> " + //Курьер "<TD>" + query[i].DirEmployeeNameCourier + "</TD> " + //Точка на "<TD>" + query[i].DirWarehouseNameTo + "</TD> " + //Статус "<TD>" + query[i].DirMovementStatusName + "</TD> " + "</TR>"; } ret += "<TR>" + //Код товара "<TD> </TD> " + //Категория "<TD> - </TD> " + //Товар Наименование "<TD> </TD> " + //Характеристики "<TD> </TD> " + //К-во "<TD><b>" + dQuantity + "</b></TD> "; ret += //Продавец "<TD> </TD> " + //Дата "<TD> </TD> " + //Точка "<TD> </TD> " + "</TR>" + "</TABLE>"; #endregion } return(ret); }
public async Task <IHttpActionResult> GetRemParty(int id, 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(); //Параметры int Action = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "Action", true) == 0).Value); #endregion #region Отправка JSON if (Action == 1) { //Характеристики не нужны. Т.к. товар может прийти и с другими Характеристиками. var query = await Task.Run(() => ( from remParties in db.RemParties #region Характеристики /* * join dirCharColours1 in db.DirCharColours on remParties.DirCharColourID equals dirCharColours1.DirCharColourID into dirCharColours2 * from dirCharColours in dirCharColours2.DefaultIfEmpty() * * join dirCharMaterials1 in db.DirCharMaterials on remParties.DirCharMaterialID equals dirCharMaterials1.DirCharMaterialID into dirCharMaterials2 * from dirCharMaterials in dirCharMaterials2.DefaultIfEmpty() * * join dirCharNames1 in db.DirCharNames on remParties.DirCharNameID equals dirCharNames1.DirCharNameID into dirCharNames2 * from dirCharNames in dirCharNames2.DefaultIfEmpty() * * join dirCharSeasons1 in db.DirCharSeasons on remParties.DirCharSeasonID equals dirCharSeasons1.DirCharSeasonID into dirCharSeasons2 * from dirCharSeasons in dirCharSeasons2.DefaultIfEmpty() * * join dirCharSexes1 in db.DirCharSexes on remParties.DirCharSexID equals dirCharSexes1.DirCharSexID into dirCharSexes2 * from dirCharSexes in dirCharSexes2.DefaultIfEmpty() * * join dirCharSizes1 in db.DirCharSizes on remParties.DirCharSizeID equals dirCharSizes1.DirCharSizeID into dirCharSizes2 * from dirCharSizes in dirCharSizes2.DefaultIfEmpty() * * join dirCharStyles1 in db.DirCharStyles on remParties.DirCharStyleID equals dirCharStyles1.DirCharStyleID into dirCharStyles2 * from dirCharStyles in dirCharStyles2.DefaultIfEmpty() * * join dirCharTextures1 in db.DirCharTextures on remParties.DirCharTextureID equals dirCharTextures1.DirCharTextureID into dirCharTextures2 * from dirCharTextures in dirCharTextures2.DefaultIfEmpty() */ #endregion where remParties.DirNomenID == id && remParties.doc.ListObjectID == 6 //&& remParties.Remnant == 0 select new { RemPartyID = remParties.RemPartyID, DocDate = remParties.doc.DocDate, DirContractorName = remParties.doc.dirContractor.DirContractorName, #region Характеристики /* * DirCharColourID = remParties.DirCharColourID, * DirCharColourName = dirCharColours.DirCharColourName, * DirCharMaterialID = remParties.DirCharMaterialID, * DirCharMaterialName = dirCharMaterials.DirCharMaterialName, * DirCharNameID = remParties.DirCharNameID, * DirCharNameName = dirCharNames.DirCharNameName, * DirCharSeasonID = remParties.DirCharSeasonID, * DirCharSeasonName = dirCharSeasons.DirCharSeasonName, * DirCharSexID = remParties.DirCharSexID, * DirCharSexName = dirCharSexes.DirCharSexName, * DirCharSizeID = remParties.DirCharSizeID, * DirCharSizeName = dirCharSizes.DirCharSizeName, * DirCharStyleID = remParties.DirCharStyleID, * DirCharStyleName = dirCharStyles.DirCharStyleName, * DirCharTextureID = remParties.DirCharTextureID, * DirCharTextureName = dirCharTextures.DirCharTextureName, * DirChar = * dirCharColours.DirCharColourName + " " + * dirCharMaterials.DirCharMaterialName + " " + * dirCharNames.DirCharNameName + " " + * dirCharSeasons.DirCharSeasonName + " " + * dirCharSexes.DirCharSexName + " " + * dirCharSizes.DirCharSizeName + " " + * dirCharStyles.DirCharStyleName + " " + * dirCharTextures.DirCharTextureName, * SerialNumber = remParties.SerialNumber, * Barcode = remParties.Barcode, */ #endregion DirCurrencyID = remParties.DirCurrencyID, DirCurrencyName = remParties.dirCurrency.DirCurrencyName, DirCurrencyRate = remParties.dirCurrency.DirCurrencyRate, DirCurrencyMultiplicity = remParties.dirCurrency.DirCurrencyMultiplicity, DirVatValue = remParties.DirVatValue, DirWarehouseName = remParties.dirWarehouse.DirWarehouseName, ListDocNameRu = remParties.doc.listObject.ListObjectNameRu, PriceVAT = remParties.PriceVAT, PriceCurrency = remParties.PriceCurrency, Quantity = remParties.Quantity, Remnant = remParties.Remnant, //Reserve = remParties.Reserve MarkupRetail = Math.Round(((remParties.PriceRetailVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100, sysSetting.FractionalPartInSum), PriceRetailVAT = remParties.PriceRetailVAT - remParties.doc.Discount, PriceRetailCurrency = Math.Round((remParties.PriceRetailVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity - remParties.doc.Discount, sysSetting.FractionalPartInSum), MarkupWholesale = Math.Round(((remParties.PriceWholesaleVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100, sysSetting.FractionalPartInSum), PriceWholesaleVAT = remParties.PriceWholesaleVAT - remParties.doc.Discount, PriceWholesaleCurrency = Math.Round((remParties.PriceWholesaleVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity - remParties.doc.Discount, sysSetting.FractionalPartInSum), MarkupIM = Math.Round(((remParties.PriceIMVAT - remParties.PriceVAT) / remParties.PriceVAT) * 100, sysSetting.FractionalPartInSum), PriceIMVAT = remParties.PriceIMVAT - remParties.doc.Discount, PriceIMCurrency = Math.Round((remParties.PriceIMVAT * remParties.dirCurrency.DirCurrencyRate) / remParties.dirCurrency.DirCurrencyMultiplicity - remParties.doc.Discount, sysSetting.FractionalPartInSum), DirNomenMinimumBalance = remParties.DirNomenMinimumBalance } ).OrderByDescending(t => t.DocDate)); //.FirstAsync() //Вариант-1 if (query.Count() > 0) { return(Ok(returnServer.Return(true, query.FirstAsync()))); } else { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg89_1))); } //Вариант-2 (возможно будет быстрее работать. Всё из-за "query.Count()") //Не работает ... /* * try { return Ok(returnServer.Return(true, query.FirstAsync())); } * catch { return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg89_1)); } */ } else { return(Ok(returnServer.Return(true, "Error"))); } #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
public async Task <IHttpActionResult> GetDirWebShopUO(int id, 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, "DirWebShopUO")); * 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, "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.parSearch = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "parSearch", true) == 0).Value; if (_params.parSearch != null) { _params.parSearch = _params.parSearch.ToLower(); //Поиск } #endregion #region Отправка JSON string DomainName = await SelectDomainName(field); var query = await Task.Run(() => ( from x in db.DirWebShopUOs where x.DirWebShopUOID == id select new { //1. Оснавные === === === === === === === === === === === DirWebShopUOID = x.DirWebShopUOID, Del = x.Del, DirWebShopUOName = x.DirWebShopUOName, DomainName = DomainName, Nomen_DirPriceTypeID = x.Nomen_DirPriceTypeID, Nomen_Remains = x.Nomen_Remains, DirCurrencyID = x.DirCurrencyID, Orders_Doc_DirOrdersStateID = x.Orders_Doc_DirOrdersStateID, Orders_Nomen_DirOrdersStateID = x.Orders_Nomen_DirOrdersStateID, Orders_DirWarehouseID = x.Orders_DirWarehouseID, Orders_DirContractorIDOrg = x.Orders_DirContractorIDOrg, Orders_DirContractorID = x.Orders_DirContractorID, Orders_Reserve = x.Orders_Reserve, Slider_Quantity = x.Slider_Quantity, //1. Slider_DirNomen1ID = x.Slider_DirNomen1ID, //Slider_DirNomen1ID_Img = x.Slider_DirNomen1ID_Img, SysGen1ID = x.SysGen1ID, SysGen1IDPatch = x.SysGen1ID == null ? "" : @"/Users/user_" + field.DirCustomersID + "/" + x.SysGen1ID + ".jpg", Slider_DirNomen2ID = x.Slider_DirNomen2ID, //Slider_DirNomen2ID_Img = x.Slider_DirNomen2ID_Img, SysGen2ID = x.SysGen2ID, SysGen2IDPatch = x.SysGen2ID == null ? "" : @"/Users/user_" + field.DirCustomersID + "/" + x.SysGen2ID + ".jpg", Slider_DirNomen3ID = x.Slider_DirNomen3ID, //Slider_DirNomen3ID_Img = x.Slider_DirNomen3ID_Img, SysGen3ID = x.SysGen3ID, SysGen3IDPatch = x.SysGen3ID == null ? "" : @"/Users/user_" + field.DirCustomersID + "/" + x.SysGen3ID + ".jpg", Slider_DirNomen4ID = x.Slider_DirNomen4ID, //Slider_DirNomen4ID_Img = x.Slider_DirNomen4ID_Img, SysGen4ID = x.SysGen4ID, SysGen4IDPatch = x.SysGen4ID == null ? "" : @"/Users/user_" + field.DirCustomersID + "/" + x.SysGen4ID + ".jpg", Recommended_Quantity = x.Recommended_Quantity, Recommended_DirNomen1ID = x.Recommended_DirNomen1ID, Recommended_DirNomen2ID = x.Recommended_DirNomen2ID, Recommended_DirNomen3ID = x.Recommended_DirNomen3ID, Recommended_DirNomen4ID = x.Recommended_DirNomen4ID, Recommended_DirNomen5ID = x.Recommended_DirNomen5ID, Recommended_DirNomen6ID = x.Recommended_DirNomen6ID, Recommended_DirNomen7ID = x.Recommended_DirNomen7ID, Recommended_DirNomen8ID = x.Recommended_DirNomen8ID, Recommended_DirNomen9ID = x.Recommended_DirNomen9ID, Recommended_DirNomen10ID = x.Recommended_DirNomen10ID, Recommended_DirNomen11ID = x.Recommended_DirNomen11ID, Recommended_DirNomen12ID = x.Recommended_DirNomen12ID, Recommended_DirNomen13ID = x.Recommended_DirNomen13ID, Recommended_DirNomen15ID = x.Recommended_DirNomen15ID, Recommended_DirNomen16ID = x.Recommended_DirNomen16ID, //HTML Payment = x.Payment, AboutUs = x.AboutUs, DeliveryInformation = x.DeliveryInformation, PrivacyPolicy = x.PrivacyPolicy, TermsConditions = x.TermsConditions, ContactUs = x.ContactUs, Returns = x.Returns, SiteMap = x.SiteMap, Affiliate = x.Affiliate, Specials = x.Specials, DirNomenGroup_Top = x.DirNomenGroup_Top, x, } ).ToListAsync()); if (query.Count() > 0) { return(Ok(returnServer.Return(true, query[0]))); } else { return(Ok(returnServer.Return(false, DomainName))); } #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)))); } }
internal async Task <string> SenSms( //string res, Models.Sklad.Sys.SysSetting sysSetting, int ListObjectID, int id, string Phone, string DirSmsTemplateMsg, //DirSmsTemplate dirSmsTemplate, Classes.Account.Login.Field field, DbConnectionSklad dbX, int DocXID ) { string res = ""; if (sysSetting.SmsServiceID == 1) { #region sms48_ru //Отправка SMS PartionnyAccount.Classes.SMS.sms48_ru sms48_ru = new Classes.SMS.sms48_ru(); res = sms48_ru.Send(sysSetting, Phone, DirSmsTemplateMsg); //Результат if (res == "8") { res = "Отправлено"; } else if (res == "1") { res = "Доставлено"; } else if (res == "2") { res = "Не удалось"; } else { res = "Ошибка: " + res; } //Пишем в Лог await RecordInLog(ListObjectID, DocXID, "Номер тел.:" + Phone + "Текст SMS: " + DirSmsTemplateMsg + "<br /> Результат: " + res, field, dbX); #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 } if (sysSetting.SmsServiceID == 3) { #region infobip_com //Отправка SMS PartionnyAccount.Classes.SMS.infobip_com infobip_com = new Classes.SMS.infobip_com(); res = infobip_com.Send(sysSetting, Phone, DirSmsTemplateMsg); //Результат /*if (res == "OK") res = "Отправлено"; * else if (res == "UNAUTHORIZED") res = "Ошибка авторизации! Не павильная пара: Логин:Пароль"; * else res = "Ошибка: " + res;*/ //Пишем в Лог await RecordInLog(ListObjectID, DocXID, "Номер тел.:" + Phone + "Текст SMS: " + DirSmsTemplateMsg + "<br /> Результат: " + res, field, dbX); #endregion } return(res); }
// 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)))); } }
public async Task <IHttpActionResult> PutSms(int id, DirSmsTemplate dirSmsTemplate, 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 #region Параметры //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры int ListObjectID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "ListObjectID", true) == 0).Value); //Записей на страницу #endregion #region Проверки //Активны SMS if (!sysSetting.SmsActive) { return(Ok(returnServer.Return(false, "Активируйте в Настройках (верхнее меню) оповещение по SMS!"))); } string Phone = ""; if (ListObjectID == 40) { //Находим по "DocServicePurchID" номер телефона клиента Models.Sklad.Doc.DocServicePurch docServicePurch = await db.DocServicePurches.FindAsync(id); // DirServiceContractorPhone == "79257711344" //Проверка номера телефона if (docServicePurch.DirServiceContractorPhone == null) { return(Ok(returnServer.Return(false, "Номер телефоана клиента не корректный!"))); } //Убираем + в самом начале docServicePurch.DirServiceContractorPhone = docServicePurch.DirServiceContractorPhone.Replace("+", ""); //Проверка номера телефона if (docServicePurch.DirServiceContractorPhone.Length < 11) { return(Ok(returnServer.Return(false, "Номер телефоана клиента не корректный!"))); } Phone = docServicePurch.DirServiceContractorPhone; } else if (ListObjectID == 33) { //Находим по "DocMovementID" документ Models.Sklad.Doc.DocMovement docMovement = await db.DocMovements.FindAsync(id); // DirServiceContractorPhone == "79257711344" //По документу находим курьера и его номер телефона Models.Sklad.Dir.DirEmployee dirEmployee = await db.DirEmployees.FindAsync(docMovement.DirEmployeeIDCourier); //Проверка номера телефона if (dirEmployee.Phone == null) { return(Ok(returnServer.Return(false, "Номер телефоана клиента не корректный!"))); } //Убираем + в самом начале dirEmployee.Phone = dirEmployee.Phone.Replace("+", ""); //Проверка номера телефона if (dirEmployee.Phone.Length < 11) { return(Ok(returnServer.Return(false, "Номер телефоана клиента не корректный!"))); } Phone = dirEmployee.Phone; } #endregion #region OLD /* * * string res = ""; * * if (sysSetting.SmsServiceID == 1) * { #region sms48_ru * * //Отправка SMS * PartionnyAccount.Classes.SMS.sms48_ru sms48_ru = new Classes.SMS.sms48_ru(); * res = sms48_ru.Send(sysSetting, Phone, dirSmsTemplate.DirSmsTemplateMsg); * * //Результат * if (res == "8") res = "Отправлено"; * else if (res == "1") res = "Доставлено"; * else if (res == "2") res = "Не удалось"; * else res = "Ошибка: " + res; * * //Пишем в Лог * await RecordInLog(ListObjectID, id, "Номер тел.:" + Phone + "Текст SMS: " + dirSmsTemplate.DirSmsTemplateMsg + "<br /> Результат: " + res, field); * #endregion * } * else if (sysSetting.SmsServiceID == 2) * { #region sms4b_ru - не работает * #endregion * } * if (sysSetting.SmsServiceID == 3) * { #region infobip_com * * //Отправка SMS * PartionnyAccount.Classes.SMS.infobip_com infobip_com = new Classes.SMS.infobip_com(); * res = infobip_com.Send(sysSetting, Phone, dirSmsTemplate.DirSmsTemplateMsg); * * //Пишем в Лог * await RecordInLog(ListObjectID, id, "Номер тел.:" + Phone + "Текст SMS: " + dirSmsTemplate.DirSmsTemplateMsg + "<br /> Результат: " + res, field); * #endregion * } */ #endregion int DocID = 0; string res = await SenSms( //res, sysSetting, ListObjectID, id, Phone, dirSmsTemplate.DirSmsTemplateMsg, field, db, id ); #region Меняем в таблице "DocServicePurches" поля: "AlertedCount" и "AlertedDate" PartionnyAccount.Models.Sklad.Doc.DocServicePurch docServicePurch1 = await db.DocServicePurches.FindAsync(id); docServicePurch1.AlertedCount = Convert.ToInt32(docServicePurch1.AlertedCount) + 1; docServicePurch1.AlertedDateTxt = DateTime.Now.ToString("yyyy-MM-dd"); docServicePurch1.AlertedDate = DateTime.Now; db.Entry(docServicePurch1).State = EntityState.Modified; await db.SaveChangesAsync(); #endregion dynamic collectionWrapper = new { Msg = res }; return(Ok(returnServer.Return(true, collectionWrapper))); } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
public async Task <IHttpActionResult> DeleteDirBonus2es(int id) { #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 != 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 Удаление try { DirBonus2 DirBonus2 = await db.DirBonus2es.FindAsync(id); if (DirBonus2 == null) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg99))); } //if (DirBonus2.SysRecord) return Ok(returnServer.Return(false, Classes.Language.Language.msg98)); #region 6. JourDisp *** *** *** *** *** *** *** *** *** * Models.Sklad.Sys.SysJourDisp sysJourDisp = new Models.Sklad.Sys.SysJourDisp(); sysJourDisp.DirDispOperationID = 5; //Удаление записи sysJourDisp.DirEmployeeID = field.DirEmployeeID; sysJourDisp.ListObjectID = ListObjectID; sysJourDisp.TableFieldID = id; sysJourDisp.Description = ""; try { sysJourDispsController.mPutPostSysJourDisps(db, sysJourDisp, EntityState.Added); } catch (Exception ex) { } #endregion if (!DirBonus2.Del) { // === Удаляем === === === === === //2. Для каскадного удаления "Договора" (достаточно сделать выборку с ToList() в одном подключении) var queryDirBonus2Tabs = await db.DirBonus2Tabs.Where(x => x.DirBonus2ID == id).ToListAsync(); //3. Удаляем try { db.DirBonus2es.Remove(DirBonus2); await db.SaveChangesAsync(); dynamic collectionWrapper = new { ID = DirBonus2.DirBonus2ID, Msg = Classes.Language.Sklad.Language.msg19 }; return(Ok(returnServer.Return(true, collectionWrapper))); //return Ok(returnServer.Return(true, "")); } catch (Exception ex) { if (function.ExceptionFkExist(ex)) { //2. Исключение - пометка на удаление DirBonus2.Del = true; db.Entry(DirBonus2).State = EntityState.Modified; await db.SaveChangesAsync(); dynamic collectionWrapper = new { ID = DirBonus2.DirBonus2ID, Msg = Classes.Language.Sklad.Language.msg96 //"Помечено на удаление, так как запись задействована в других объектах сервиса (напр. в документах)." }; return(Ok(returnServer.Return(true, collectionWrapper))); //return Ok(returnServer.Return(true, "")); } else { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } } } else { // === Снимаем пометку на удаление === === === === === DirBonus2.Del = false; db.Entry(DirBonus2).State = EntityState.Modified; await db.SaveChangesAsync(); dynamic collectionWrapper = new { ID = DirBonus2.DirBonus2ID, Msg = Classes.Language.Sklad.Language.msg97 //"Пометка на удаление снята." }; return(Ok(returnServer.Return(true, collectionWrapper))); //return Ok(returnServer.Return(true, "")); } } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } #endregion }
public async Task <IHttpActionResult> GetDirBonusTab(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 dirBonusTabs in db.DirBonusTabs where dirBonusTabs.DirBonusID == id select new { DirBonusID = dirBonusTabs.DirBonusID, SumBegin = dirBonusTabs.SumBegin, Bonus = dirBonusTabs.Bonus } ).OrderBy(x => x.SumBegin); //К-во int dirCount = await Task.Run(() => query.Count()); dynamic collectionWrapper = new { sucess = true, total = dirCount, DirBonusTab = 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/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)))); } }
private void SQLitePswd(int DirCustomersID, string Login, int DirLanguageID) { /* * using (SQLiteConnection con = new SQLiteConnection(_var.GetSQLiteBasicConnStr_DirCustomersID(DirCustomersID))) * { * con.Open(); * using (SQLiteCommand cmd = new SQLiteCommand("SELECT DirEmployeeLogin, DirEmployeePswd FROM DirEmployees WHERE DirEmployeeID=1", con)) * { * //SQLiteParameter parDirEmployeeID = new SQLiteParameter("@DirEmployeeID", System.Data.DbType.Int32) { Value = DirCustomersID }; cmd.Parameters.Add(parDirEmployeeID); * using (SQLiteDataReader dr = cmd.ExecuteReader()) * { * if (dr.Read()) * { * SendMsg += * "Данные для входа:<br /><br />" + * * "Web-сервис:<br />" + * "Ваш Логин: <b>" + dr["DirEmployeeLogin"].ToString() + "@" + Login + "</b><br />" + * "Ваш Пароль: <b>" + dr["DirEmployeePswd"].ToString() + "</b> (можно поменять в сервисе)<br /><br />" + * * "<b>Прямая гиперссылка для входа в сервис:</b><br />" + * "<a href='https://sklad.intradecloud.com/Login.aspx?username="******"DirEmployeeLogin"].ToString() + "@" + Login + "&password="******"DirEmployeePswd"].ToString() + "&language=" + DirLanguageID + "&theme=1'>" + * "https://sklad.intradecloud.com/Login.aspx?username="******"DirEmployeeLogin"].ToString() + "@" + Login + "&password="******"DirEmployeePswd"].ToString() + "&language=" + DirLanguageID + "&theme=1</a><br /><br />" + * "<br />"; * } * } * } * con.Close(); con.Dispose(); * } */ Classes.Function.Variables.ConnectionString connectionString = new Function.Variables.ConnectionString(); using (DbConnectionSklad db = new DbConnectionSklad(connectionString.Return(DirCustomersID, null, true))) { //"SELECT DirEmployeeLogin, DirEmployeePswd FROM DirEmployee WHERE DirEmployeeID=1" var query = ( from dirEmployees in db.DirEmployees where dirEmployees.DirEmployeeID == 1 select new { DirEmployeeLogin = dirEmployees.DirEmployeeLogin, DirEmployeePswd = dirEmployees.DirEmployeePswd } ).ToList(); for (int i = 0; i < query.Count(); i++) { SendMsg += "Данные для входа:<br /><br />" + "Web-сервис:<br />" + "Ваш Логин: <b>" + query[0].DirEmployeeLogin + "@" + Login + "</b><br />" + "Ваш Пароль: <b>" + query[0].DirEmployeePswd + "</b> (можно поменять в сервисе)<br /><br />" + "<b>Прямая гиперссылка для входа в сервис:</b><br />" + "<a href='https://sklad.intradecloud.com/account/login/?username="******"@" + Login + "&password="******"&language=" + DirLanguageID + "&theme=1'>" + "https://sklad.intradecloud.com/account/login/?username="******"@" + Login + "&password="******"&language=" + DirLanguageID + "&theme=1</a><br /><br />" + "<br />"; } } }
// 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)))); } }
//Алгоритм: //1. INSERT в "DocSecondHandReturns" //2. UPDATE Status в "DocSecondHandPurches" internal async Task <DocSecondHandReturn> mPutPostDocSecondHandReturn( DbConnectionSklad db, DbConnectionSklad dbRead, string UO_Action, //DbConnectionSklad dbRead, //Models.Sklad.Sys.SysSetting sysSetting, DocSecondHandReturn docSecondHandReturn, //bool InsertUpdate, //true - Insert, false - Update EntityState entityState, //EntityState.Added, Modified //Models.Sklad.Doc.DocSecondHandReturnTab[] docSecondHandReturnTabCollection, Classes.Account.Login.Field field //Дополнительные данные о сотруднике ) { #region Проверка статуса аппарата, только если: //DirSecondHandStatusID == 9 //DirSecondHandStatusID_789 == 7 Models.Sklad.Doc.DocSecondHandPurch docSecondHandPurch = await db.DocSecondHandPurches.FindAsync(docSecondHandReturn.DocSecondHandPurchID); if (docSecondHandPurch.DirSecondHandStatusID != 10 || docSecondHandPurch.DirSecondHandStatusID_789 != 7) { throw new System.InvalidOperationException("Аппарат не готов к продаже или уже возвращён!"); } #endregion #region Меняем статус аппарата docSecondHandPurch.DirSecondHandStatusID = 9; docSecondHandPurch.DirReturnTypeID = docSecondHandReturn.DirReturnTypeID; docSecondHandPurch.DirDescriptionID = docSecondHandReturn.DirDescriptionID; db.Entry(docSecondHandPurch).State = EntityState.Modified; await db.SaveChangesAsync(); #endregion #region 1. Doc //Модель Models.Sklad.Doc.Doc doc = new Models.Sklad.Doc.Doc(); //Присваиваем значения doc.ListObjectID = ListObjectID; doc.IsImport = false; doc.NumberInt = docSecondHandReturn.NumberInt; doc.NumberReal = docSecondHandReturn.DocSecondHandReturnID; doc.DirEmployeeID = field.DirEmployeeID; doc.DirPaymentTypeID = docSecondHandReturn.DirPaymentTypeID; doc.Payment = docSecondHandReturn.Payment; if (docSecondHandReturn.DirContractorID != null) { doc.DirContractorID = Convert.ToInt32(docSecondHandReturn.DirContractorID); } else { doc.DirContractorID = docSecondHandReturn.DirContractorIDOrg; } doc.DirContractorIDOrg = docSecondHandReturn.DirContractorIDOrg; doc.Discount = docSecondHandReturn.Discount; doc.DirVatValue = docSecondHandReturn.DirVatValue; doc.Base = docSecondHandReturn.Base; doc.Description = docSecondHandReturn.Description; doc.DocDate = DateTime.Now; //docSecondHandReturn.DocDate; //doc.DocDisc = docSecondHandReturn.DocDisc; if (UO_Action == "held") { doc.Held = true; } else { doc.Held = false; } doc.DocID = docSecondHandReturn.DocID; doc.DocIDBase = docSecondHandReturn.DocIDBase; doc.KKMSCheckNumber = docSecondHandReturn.KKMSCheckNumber; doc.KKMSIdCommand = docSecondHandReturn.KKMSIdCommand; doc.KKMSEMail = docSecondHandReturn.KKMSEMail; doc.KKMSPhone = docSecondHandReturn.KKMSPhone; //Класс Docs.Docs docs = new Docs.Docs(db, dbRead, doc, entityState); //doc = await docs.Save(); await Task.Run(() => docs.Save()); //Нужно вернуть "docSecondHandReturn" со всем полями! docSecondHandReturn.DocID = doc.DocID; #endregion #region 2. DocSecondHandReturn docSecondHandReturn.DocID = doc.DocID; db.Entry(docSecondHandReturn).State = entityState; await db.SaveChangesAsync(); #region 2.1. UpdateNumberInt, если INSERT if (entityState == EntityState.Added && (docSecondHandReturn.doc.NumberInt == null || docSecondHandReturn.doc.NumberInt.Length == 0)) { doc.NumberInt = docSecondHandReturn.DocSecondHandReturnID.ToString(); doc.NumberReal = docSecondHandReturn.DocSecondHandReturnID; docs = new Docs.Docs(db, dbRead, doc, EntityState.Modified); await Task.Run(() => docs.Save()); } else if (entityState == EntityState.Added) { doc.NumberReal = docSecondHandReturn.DocSecondHandReturnID; docs = new Docs.Docs(db, dbRead, doc, EntityState.Modified); await Task.Run(() => docs.Save()); } #endregion #endregion #region Касса или Банк #region 1. Получаем валюту из склада int DirCurrencyID = 0, DirCurrencyMultiplicity = 0; //, DirCashOfficeID = 0, DirBankID = 0;; double DirCurrencyRate = 0; var query = await Task.Run(() => ( from x in db.DirWarehouses where x.DirWarehouseID == docSecondHandReturn.DirWarehouseID select new { //DirCashOfficeID= x.dirCashOffice.DirCashOfficeID, DirCurrencyID_Bank = x.dirBank.DirCurrencyID, DirCurrencyRate_Bank = x.dirBank.dirCurrency.DirCurrencyRate, DirCurrencyMultiplicity_Bank = x.dirBank.dirCurrency.DirCurrencyMultiplicity, //DirBankID = x.dirBank.DirBankID, DirCurrencyID_Cash = x.dirCashOffice.DirCurrencyID, DirCurrencyRate_Cash = x.dirCashOffice.dirCurrency.DirCurrencyRate, DirCurrencyMultiplicity_Cash = x.dirCashOffice.dirCurrency.DirCurrencyMultiplicity, } ).ToListAsync()); if (query.Count() > 0) { if (doc.DirPaymentTypeID == 1) { //DirCashOfficeID = Convert.ToInt32(query[0].DirCashOfficeID); DirCurrencyID = query[0].DirCurrencyID_Cash; DirCurrencyRate = query[0].DirCurrencyRate_Cash; DirCurrencyMultiplicity = query[0].DirCurrencyMultiplicity_Cash; } else if (doc.DirPaymentTypeID == 2) { //DirBankID = Convert.ToInt32(query[0].DirBankID); DirCurrencyID = query[0].DirCurrencyID_Bank; DirCurrencyRate = query[0].DirCurrencyRate_Bank; DirCurrencyMultiplicity = query[0].DirCurrencyMultiplicity_Bank; } else { throw new System.InvalidOperationException("Не выбран метод оплаты: Касса или Банк!"); } } #endregion #region 2. Заполняем Модель Models.Sklad.Pay.Pay pay = new Models.Sklad.Pay.Pay(); //pay.DirCashOfficeID = Convert.ToInt32(DirCashOfficeID); //pay.DirBankID = Convert.ToInt32(DirBankID); //Валюта pay.DirCurrencyID = DirCurrencyID; pay.DirCurrencyRate = DirCurrencyRate; pay.DirCurrencyMultiplicity = DirCurrencyMultiplicity; pay.DirEmployeeID = field.DirEmployeeID; pay.DirPaymentTypeID = doc.DirPaymentTypeID; //pay.DirXName = ""; //no //pay.DirXSumTypeID = 0; //no pay.DocCashBankID = null; pay.DocID = doc.DocID; pay.DocXID = docSecondHandReturn.DocSecondHandReturnID; pay.DocXSumDate = doc.DocDate; pay.DocXSumSum = docSecondHandReturn.PriceCurrency - doc.Discount; // - получили при сохранении Спецификации (выше) docSecondHandReturn.PriceVAT //DocSecondHandPurchID - найти!!! pay.Base = "Возврат документа №" + docSecondHandPurch.DocSecondHandPurchID; //pay.Base = "Оплата за коды товаров: " + NomenName; // - получили при сохранении Спецификации (выше) //pay.Description = ""; pay.KKMSCheckNumber = docSecondHandReturn.KKMSCheckNumber; pay.KKMSIdCommand = docSecondHandReturn.KKMSIdCommand; pay.KKMSEMail = docSecondHandReturn.KKMSEMail; pay.KKMSPhone = docSecondHandReturn.KKMSPhone; pay.Discount = doc.Discount; #endregion #region 3. Сохраняем PartionnyAccount.Controllers.Sklad.Pay.PayController payController = new Pay.PayController(); doc = await Task.Run(() => payController.mPutPostPay(db, pay, EntityState.Modified, field)); //sysSetting #endregion #endregion #region 4. Log logService.DocSecondHandPurchID = docSecondHandPurch.DocSecondHandPurchID; logService.DirSecondHandLogTypeID = 14; logService.DirEmployeeID = field.DirEmployeeID; logService.DirSecondHandStatusID = docSecondHandPurch.DirSecondHandStatusID; logService.DirWarehouseIDFrom = docSecondHandPurch.DirWarehouseID; logService.DirWarehouseIDTo = docSecondHandPurch.DirWarehouseID; //logService.Msg = "Аппарат принят на точку №" + docSecondHandPurch.DirWarehouseID; await logServicesController.mPutPostLogSecondHands(db, logService, EntityState.Added); #endregion return(docSecondHandReturn); }
public async Task <IHttpActionResult> GetDocSalaryTab(int id, HttpRequestMessage request) { #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.DocYear = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocYear", true) == 0).Value); _params.DocMonth = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocMonth", true) == 0).Value); DateTime DocDateS = Convert.ToDateTime(_params.DocYear.ToString() + "-" + _params.DocMonth + "-01"); DateTime DocDatePo = DocDateS.AddMonths(1).AddDays(-1); #endregion #region Для каждого сутрудника подсчитываем ЗП, Премия1 и Премия2 //Алгортм: //Получаем каждого сотрудника и параметры ЗП: ЗП + Тип, Премия1 и Премия2 //1. ЗП вычисляем по типу. Пробегаем по каждому дню, если есть хоть одна продажа/ремонт, то засчитываем ему этот день //1.1. Для продаж смотрим таблицу "RemPartyMinuses" //Блядь!!! //1. //В таблицу "RemPartyMinuses" добавить поле "DirEmployeeID" и перенести всех сотрудников, в зависимости от типа документа: // - Если СС, то смотрим "DirEmployeeID" в таблице "DocServicePurch2Tabs" // - Во всех остальных случаях смотрим талицу "Doc" //А также во всех формах где задействована таблица "RemPartyMinuses" переносить "DirEmployeeID" //2. //Аналогично сделать для таблиц "RemParty" var queryDirEmployees = await ( from x in db.DirEmployees select x ).ToListAsync(); Models.Sklad.Doc.DocSalaryTabSQL[] arrDocSalaryTabSQL = new Models.Sklad.Doc.DocSalaryTabSQL[queryDirEmployees.Count()]; if (queryDirEmployees.Count() > 0) { for (int i = 0; i < queryDirEmployees.Count(); i++) { int CountDay = 0; double SumSalary = 0, DirBonusIDSalary = 0, DirBonus2IDSalary = 0, Sums = 0; int?DirEmployeeID = queryDirEmployees[i].DirEmployeeID, DirBonusID = queryDirEmployees[i].DirBonusID, DirBonus2ID = queryDirEmployees[i].DirBonus2ID; #region 1. SumSalary: К-во выходов в месяц if (queryDirEmployees[i].SalaryDayMonthly == 1) { string SQL = "SELECT date(DocDate) AS DateX, COUNT(date(DocDate)) AS CountX " + "FROM RemPartyMinuses " + "WHERE DirEmployeeID=@DirEmployeeID and (DocDate BETWEEN @DocDateS and @DocDatePo) " + "GROUP BY date(RemPartyMinuses.DocDate);"; SQLiteParameter parDirEmployeeID = new SQLiteParameter("@DirEmployeeID", System.Data.DbType.Int32) { Value = DirEmployeeID }; SQLiteParameter parDocDateS = new SQLiteParameter("@DocDateS", System.Data.DbType.Date) { Value = DocDateS.ToString("yyyy-MM-dd") }; SQLiteParameter parDocDatePo = new SQLiteParameter("@DocDatePo", System.Data.DbType.Date) { Value = DocDatePo.ToString("yyyy-MM-dd") }; //Сам запрос с параметрами var query = db.Database.SqlQuery <Models.Sklad.Rem.RemPartyMinusSQL>(SQL, parDirEmployeeID, parDocDateS, parDocDatePo); if (query.Count() > 0) { CountDay = query.Count(); SumSalary = query.Count() * Convert.ToDouble(queryDirEmployees[i].Salary); } } else { SumSalary = Convert.ToDouble(queryDirEmployees[i].Salary); } #endregion #region 2. DirBonusIDSalary: Премия с продаж //Алгоритм: //Получаем [Сумму продаж] //По градации смотрим в какой диапазон попадает и берём процент //[Сумма продаж] * [Процент] if (DirBonusID > 0) { //1. Получаем сумму double querySum = ( from x in db.RemPartyMinuses where x.DirEmployeeID == DirEmployeeID && (x.DocDate >= DocDateS && x.DocDate <= DocDatePo) select x.Quantity * x.PriceCurrency ).DefaultIfEmpty(0).Sum(); //2. Получаем градацию и в цикле пробегаем её var queryBonus = ( from x in db.DirBonusTabs where x.DirBonusID == DirBonusID select new { SumBegin = x.SumBegin, Bonus = x.Bonus } ).OrderByDescending(o => o.SumBegin).ToList(); for (int j = 0; j < queryBonus.Count(); j++) { if (queryBonus[j].SumBegin <= querySum) { DirBonusIDSalary = (querySum / 100) * queryBonus[j].Bonus; break; } } } #endregion #region 3. DirBonus2IDSalary: Премия с продаж //Алгоритм: //Получаем [Сумму продаж] //По градации смотрим в какой диапазон попадает и берём процент //[Сумма продаж] * [Процент] if (DirBonus2ID > 0) { //1. Получаем сумму double querySum = ( from x in db.DocServicePurch1Tabs where x.DirEmployeeID == DirEmployeeID && (x.TabDate >= DocDateS && x.TabDate <= DocDatePo) select x.PriceCurrency ).DefaultIfEmpty(0).Sum(); //2. Получаем градацию и в цикле пробегаем её var queryBonus = ( from x in db.DirBonusTabs where x.DirBonusID == DirBonus2ID select new { SumBegin = x.SumBegin, Bonus = x.Bonus } ).OrderByDescending(o => o.SumBegin).ToList(); for (int j = 0; j < queryBonus.Count(); j++) { if (queryBonus[j].SumBegin <= querySum) { DirBonus2IDSalary = (querySum / 100) * queryBonus[j].Bonus; break; } } } #endregion #region 4. Data string SalaryDayMonthlyName = "За день"; if (queryDirEmployees[i].SalaryDayMonthly == 2) { SalaryDayMonthlyName = "За месяц"; } string DirBonusName = ""; if (queryDirEmployees[i].dirBonus != null) { DirBonusName = queryDirEmployees[i].dirBonus.DirBonusName; } string DirBonus2Name = ""; if (queryDirEmployees[i].dirBonus2 != null) { DirBonus2Name = queryDirEmployees[i].dirBonus2.DirBonusName; } Models.Sklad.Doc.DocSalaryTabSQL docSalaryTab = new Models.Sklad.Doc.DocSalaryTabSQL(); docSalaryTab.DirEmployeeID = Convert.ToInt32(DirEmployeeID); docSalaryTab.DirEmployeeName = queryDirEmployees[i].DirEmployeeName; if (queryDirEmployees[i].DirCurrencyID != null) { docSalaryTab.DirCurrencyID = Convert.ToInt32(queryDirEmployees[i].DirCurrencyID); docSalaryTab.DirCurrencyName = queryDirEmployees[i].dirCurrency.DirCurrencyName; docSalaryTab.DirCurrencyRate = queryDirEmployees[i].dirCurrency.DirCurrencyRate; docSalaryTab.DirCurrencyMultiplicity = queryDirEmployees[i].dirCurrency.DirCurrencyMultiplicity; } else { docSalaryTab.DirCurrencyID = 1; docSalaryTab.DirCurrencyName = "???"; docSalaryTab.DirCurrencyRate = 1; docSalaryTab.DirCurrencyMultiplicity = 1; } docSalaryTab.Salary = Convert.ToDouble(queryDirEmployees[i].Salary); docSalaryTab.CountDay = CountDay; docSalaryTab.SalaryDayMonthly = Convert.ToInt32(queryDirEmployees[i].SalaryDayMonthly); docSalaryTab.SalaryDayMonthlyName = SalaryDayMonthlyName; docSalaryTab.SumSalary = SumSalary; docSalaryTab.DirBonusID = queryDirEmployees[i].DirBonusID; docSalaryTab.DirBonusName = DirBonusName; docSalaryTab.DirBonusIDSalary = DirBonusIDSalary; docSalaryTab.DirBonus2ID = queryDirEmployees[i].DirBonus2ID; docSalaryTab.DirBonus2Name = DirBonus2Name; docSalaryTab.DirBonus2IDSalary = DirBonus2IDSalary; docSalaryTab.Sums = SumSalary + DirBonusIDSalary + DirBonus2IDSalary; arrDocSalaryTabSQL[i] = docSalaryTab; #endregion } } #endregion dynamic collectionWrapper = new { sucess = true, total = queryDirEmployees.Count(), DocSalaryTab = arrDocSalaryTabSQL }; return(await Task.Run(() => Ok(collectionWrapper))); }
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)))); } }
// GET: api/DocInventoryTabs public async Task <IHttpActionResult> GetDocInventoryTabs(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, "RightDocInventories")); 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.DocInventoryID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DocInventoryID", true) == 0).Value); #endregion #region Основной запрос *** *** *** var query = ( from docInventoryTabs in db.DocInventoryTabs join dirNomens11 in db.DirNomens on docInventoryTabs.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() //Партия join remParties1 in db.RemParties on docInventoryTabs.DocInventoryTabID equals remParties1.FieldID into remParties2 from remParties in remParties2.Where(x => x.DocID == docInventoryTabs.docInventory.doc.DocID).DefaultIfEmpty() where docInventoryTabs.DocInventoryID == _params.DocInventoryID #region select select new { DocInventoryTabID = docInventoryTabs.DocInventoryTabID, DocInventoryID = docInventoryTabs.DocInventoryID, DirNomenID = docInventoryTabs.DirNomenID, DirNomenMinimumBalance = docInventoryTabs.DirNomenMinimumBalance, //DirNomenName = docInventoryTabs.dirNomen.DirNomenName, DirNomenName = dirNomensSubGroup.DirNomenName == null ? docInventoryTabs.dirNomen.DirNomenName : dirNomensGroup.DirNomenName == null ? dirNomensSubGroup.DirNomenName + " / " + docInventoryTabs.dirNomen.DirNomenName : dirNomensGroup.DirNomenName + " / " + dirNomensSubGroup.DirNomenName + " / " + docInventoryTabs.dirNomen.DirNomenName, //Характеристики DirCharColourID = docInventoryTabs.DirCharColourID, DirCharColourName = docInventoryTabs.dirCharColour.DirCharColourName, DirCharMaterialID = docInventoryTabs.DirCharMaterialID, DirCharMaterialName = docInventoryTabs.dirCharMaterial.DirCharMaterialName, DirCharNameID = docInventoryTabs.DirCharNameID, DirCharNameName = docInventoryTabs.dirCharName.DirCharNameName, DirCharSeasonID = docInventoryTabs.DirCharSeasonID, DirCharSeasonName = docInventoryTabs.dirCharSeason.DirCharSeasonName, DirCharSexID = docInventoryTabs.DirCharSexID, DirCharSexName = docInventoryTabs.dirCharSex.DirCharSexName, DirCharSizeID = docInventoryTabs.DirCharSizeID, DirCharSizeName = docInventoryTabs.dirCharSize.DirCharSizeName, DirCharStyleID = docInventoryTabs.DirCharStyleID, DirCharStyleName = docInventoryTabs.dirCharStyle.DirCharStyleName, DirContractorID = docInventoryTabs.DirContractorID, DirContractorName = docInventoryTabs.dirContractor.DirContractorName, DirCharTextureID = docInventoryTabs.DirCharTextureID, DirCharTextureName = docInventoryTabs.dirCharTexture.DirCharTextureName, DirChar = docInventoryTabs.dirCharColour.DirCharColourName + " " + docInventoryTabs.dirCharMaterial.DirCharMaterialName + " " + docInventoryTabs.dirCharName.DirCharNameName + " " + docInventoryTabs.dirCharSeason.DirCharSeasonName + " " + docInventoryTabs.dirCharSex.DirCharSexName + " " + docInventoryTabs.dirCharSize.DirCharSizeName + " " + docInventoryTabs.dirCharStyle.DirCharStyleName + " " + docInventoryTabs.dirContractor.DirContractorName + " " + docInventoryTabs.dirCharTexture.DirCharTextureName, SerialNumber = docInventoryTabs.SerialNumber, Barcode = docInventoryTabs.Barcode, RemPartyID = docInventoryTabs.RemPartyID, DirCurrencyID = docInventoryTabs.DirCurrencyID, DirCurrencyRate = docInventoryTabs.DirCurrencyRate, DirCurrencyMultiplicity = docInventoryTabs.DirCurrencyMultiplicity, DirCurrencyName = docInventoryTabs.dirCurrency.DirCurrencyName + " (" + docInventoryTabs.DirCurrencyRate + ", " + docInventoryTabs.DirCurrencyMultiplicity + ")", //Списать по приходной цене Quantity_WriteOff = docInventoryTabs.Quantity_WriteOff, PriceVAT = docInventoryTabs.PriceVAT, //Цена в т.в. PriceCurrency = docInventoryTabs.PriceCurrency, //Себестоимость SUMPurchPriceVATCurrency = docInventoryTabs.Quantity_WriteOff * docInventoryTabs.PriceCurrency == null ? 0 : Math.Round(docInventoryTabs.Quantity_WriteOff * docInventoryTabs.PriceCurrency, sysSetting.FractionalPartInSum), //Оприходовать: приходная цена + расходные Quantity_Purch = docInventoryTabs.Quantity_Purch, //Розница *** //Наценка MarkupRetail = 100 * (docInventoryTabs.PriceRetailVAT - docInventoryTabs.PriceVAT) / docInventoryTabs.PriceVAT == null ? 0 : Math.Round(100 * (docInventoryTabs.PriceRetailVAT - docInventoryTabs.PriceVAT) / docInventoryTabs.PriceVAT, sysSetting.FractionalPartInSum), //Розничная цена PriceRetailVAT = docInventoryTabs.PriceRetailVAT, //Розничная цена в текущей валюте PriceRetailCurrency = docInventoryTabs.PriceRetailCurrency, //Опт *** //Наценка MarkupWholesale = 100 * (docInventoryTabs.PriceWholesaleVAT - docInventoryTabs.PriceVAT) / docInventoryTabs.PriceVAT == null ? 0 : Math.Round(100 * (docInventoryTabs.PriceWholesaleVAT - docInventoryTabs.PriceVAT) / docInventoryTabs.PriceVAT, sysSetting.FractionalPartInSum), //Оптовая цена PriceWholesaleVAT = docInventoryTabs.PriceWholesaleVAT, //Оптовая цена в текущей валюте PriceWholesaleCurrency = docInventoryTabs.PriceWholesaleCurrency, //Интерне-Магазин *** //Наценка MarkupIM = 100 * (docInventoryTabs.PriceIMVAT - docInventoryTabs.PriceVAT) / docInventoryTabs.PriceVAT == null ? 0 : Math.Round(100 * (docInventoryTabs.PriceIMVAT - docInventoryTabs.PriceVAT) / docInventoryTabs.PriceVAT, sysSetting.FractionalPartInSum), //Интернет-Магазин PriceIMVAT = docInventoryTabs.PriceIMVAT, //Интернет-Магазин в текущей валюте PriceIMCurrency = docInventoryTabs.PriceIMCurrency, } #endregion ); #endregion #region Отправка JSON dynamic collectionWrapper = new { sucess = true, total = query.Count(), DocInventoryTab = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }
// 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/DirServiceNomenPrices public async Task <IHttpActionResult> GetDirServiceNomenPrices(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, "RightDirServiceNomens")); 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.DirServiceNomenID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "DirServiceNomenID", true) == 0).Value); //Номер страницы #endregion if (_params.type == "Grid") { #region Основной запрос *** *** *** var query = ( from x in db.DirServiceNomenPrices where x.DirServiceNomenID == _params.DirServiceNomenID select new { DirServiceNomenPriceID = x.DirServiceNomenPriceID, DirServiceNomenTypicalFaultID = x.DirServiceNomenTypicalFaultID, DirServiceNomenTypicalFaultName = x.dirServiceNomenTypicalFault.DirServiceNomenTypicalFaultName, DirCurrencyID = x.DirCurrencyID, PriceVAT = x.PriceVAT } ); #endregion #region Условия (параметры) *** *** *** #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.DirServiceNomenPriceID == iNumber32 || x.DirServiceNomenTypicalFaultName.Contains(_params.parSearch)); } else { query = query.Where(x => x.DirServiceNomenTypicalFaultName.Contains(_params.parSearch)); } } #endregion #region OrderBy и Лимит //query = query.OrderBy(x => x.DirServiceNomenPriceName).Skip(_params.Skip).Take(_params.limit); #endregion #endregion #region Отправка JSON //К-во Номенклатуры int dirCount = await Task.Run(() => db.DirServiceNomenPrices.Count()); //А вдруг к-во меньше Лимита, тогда показать не общее к-во, а реальное! //int dirCount2 = query.Count(); //if (dirCount2 < _params.limit) dirCount = _params.limit * (_params.page - 1) + dirCount2; dynamic collectionWrapper = new { sucess = true, total = dirCount, DirServiceNomenPrice = query }; return(await Task.Run(() => Ok(collectionWrapper))); #endregion } else //Tree { #region Отобразить только "Руты" *** *** *** var query = ( from x in db.DirServiceNomenPrices select new { id = x.DirServiceNomenPriceID, text = x.dirServiceNomenTypicalFault.DirServiceNomenTypicalFaultName, PriceRetailVAT = x.PriceVAT, leaf = true, Del = false } ); #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> DeleteDirCurrencyHistory(int id) { #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 != 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 Удаление try { DirCurrencyHistory dirCurrencyHistory = await db.DirCurrencyHistories.FindAsync(id); if (dirCurrencyHistory == null) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg99))); } //Если Мы удаляем единственную или самую первую запись, то выдать исключение! //1. Единственную if (await db.DirCurrencyHistories.Where(x => x.DirCurrencyID == dirCurrencyHistory.DirCurrencyID).CountAsync() == 1) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.Mess01))); } //2. Самую первую запись DateTime dt = Convert.ToDateTime("1800-01-01 00:00:00"); var queryDirCurrencyHistoryID = db.DirCurrencyHistories.Where(x => x.DirCurrencyID == dirCurrencyHistory.DirCurrencyID).Select(x => x.DirCurrencyHistoryID); // && x.DirCurrencyHistoryDate <= dt if (queryDirCurrencyHistoryID.Count() > 0) { if (queryDirCurrencyHistoryID.Min() == dirCurrencyHistory.DirCurrencyHistoryID) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.Mess04))); } } db.DirCurrencyHistories.Remove(dirCurrencyHistory); await db.SaveChangesAsync(); dynamic collectionWrapper = new { ID = dirCurrencyHistory.DirCurrencyHistoryID, Msg = Classes.Language.Sklad.Language.msg19 }; return(Ok(returnServer.Return(true, collectionWrapper))); //return Ok(returnServer.Return(true, "")); } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } #endregion }
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> 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)))); } }
public async Task <IHttpActionResult> PutDirCharTexture(int id, DirCharTexture dirCharTexture) { #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, "RightDirCharTextures")); 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); } if (id != dirCharTexture.DirCharTextureID) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg8))); //return BadRequest(); } //Подстановки - некоторые поля надо заполнить, если они не заполены //dirCharTexture.Substitute(); #endregion #region Сохранение try { db.Entry(dirCharTexture).State = EntityState.Modified; await Task.Run(() => db.SaveChangesAsync()); #region 6. JourDisp *** *** *** *** *** *** *** *** *** * Models.Sklad.Sys.SysJourDisp sysJourDisp = new Models.Sklad.Sys.SysJourDisp(); sysJourDisp.DirDispOperationID = 4; //Изменение записи sysJourDisp.DirEmployeeID = field.DirEmployeeID; sysJourDisp.ListObjectID = ListObjectID; sysJourDisp.TableFieldID = dirCharTexture.DirCharTextureID; sysJourDisp.Description = ""; try { sysJourDispsController.mPutPostSysJourDisps(db, sysJourDisp, EntityState.Added); } catch (Exception ex) { } #endregion dynamic collectionWrapper = new { ID = dirCharTexture.DirCharTextureID }; 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/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)))); } }