Ejemplo n.º 1
0
        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
        }
Ejemplo n.º 2
0
        // 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))));
            }
        }
Ejemplo n.º 3
0
        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))));
            }
        }
Ejemplo n.º 4
0
        // 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
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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))));
            }
        }
Ejemplo n.º 8
0
        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))));
            }
        }
Ejemplo n.º 9
0
        // 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))));
            }
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        // 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))));
            }
        }
Ejemplo n.º 12
0
        //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))));
            }
        }
Ejemplo n.º 13
0
        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))));
            }
        }
Ejemplo n.º 14
0
        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
        }
Ejemplo n.º 15
0
        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))));
            }
        }
Ejemplo n.º 16
0
        // 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))));
            }
        }
Ejemplo n.º 17
0
        // 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))));
            }
        }
Ejemplo n.º 18
0
        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 />";
                }
            }
        }
Ejemplo n.º 19
0
        // 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))));
            }
        }
Ejemplo n.º 20
0
        //Алгоритм:
        //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);
        }
Ejemplo n.º 21
0
        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)));
        }
Ejemplo n.º 22
0
        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))));
            }
        }
Ejemplo n.º 23
0
        // 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))));
            }
        }
Ejemplo n.º 24
0
        // 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))));
            }
        }
Ejemplo n.º 25
0
        // 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))));
            }
        }
Ejemplo n.º 26
0
        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
        }
Ejemplo n.º 27
0
        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))));
            }
        }
Ejemplo n.º 28
0
        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))));
            }
        }
Ejemplo n.º 29
0
        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
        }
Ejemplo n.º 30
0
        // 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))));
            }
        }