Beispiel #1
0
        public JsonResult ReturnDate(InstagramPostDateViewModel model)
        {
            Response response;

            try
            {
                PersianCalendar Calendar = new PersianCalendar();
                //var date = DateUtility.GetDateTime(model.publishDate);
                var date                    = DateUtility.GetDateTime(model.publishDate);
                var finalPublishDate        = date.Value.AddDays(model.dayCounter);
                var finalPersianPublishDate = DateUtility.GetPersianDate(finalPublishDate);
                response = new Response()
                {
                    status = 200,
                    data   = new
                    {
                        finalPersianPublishDate,
                    },
                };
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #2
0
        /// <summary>
        /// حذف فاکتور
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        public JsonResult Delete(int branchId, string date)
        {
            Response response;
            var      gDate = DateUtility.GetDateTime(date);

            try
            {
                using (var db = new KiaGalleryContext())
                {
                    var list = db.BranchFactor.Where(x => x.BranchId == branchId && x.Date == gDate).ToList();
                    db.BranchFactor.RemoveRange(list);
                    db.SaveChanges();
                    response = new Response()
                    {
                        status  = 200,
                        message = "مورد انتخاب شده با موفقیت حذف شد."
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #3
0
        public JsonResult GetWorkShop(string date)
        {
            var dateTime = DateUtility.GetDateTime(date);

            Response response;

            using (var db = new KiaGalleryContext())
            {
                var query        = db.WorkShopGold.OrderByDescending(x => x.Id).Where(x => DbFunctions.TruncateTime(x.Date) == dateTime);
                var workShopList = query.GroupBy(x => x.WorkshopId).Select(x => new
                {
                    id   = x.Select(y => y.WorkshopId).FirstOrDefault(),
                    name = x.FirstOrDefault().Workshop.Name,
                    sum  = x.Sum(y => y.Weight)
                }).ToList();

                response = new Response()
                {
                    status = 200,
                    data   = new
                    {
                        list    = workShopList,
                        goldSum = workShopList.Sum(x => x.sum)
                    }
                };
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #4
0
        public JsonResult Save(BranchFactorViewModel model)
        {
            Response response;
            var      currentUser = GetAuthenticatedUser();

            try
            {
                if (model.number == 0)
                {
                    response = new Response()
                    {
                        status  = 500,
                        message = "لطفا در بخش تعداد فاکتور عدد مورد نظر را وارد کنید."
                    };
                    return(Json(response, JsonRequestBehavior.AllowGet));
                }

                using (var db = new KiaGalleryContext())
                {
                    if (model.id != null && model.id > 0)
                    {
                        var entity = db.BranchFactor.Where(x => x.Id == model.id).SingleOrDefault();

                        entity.BranchId     = model.branchId;
                        entity.Number       = model.number;
                        entity.Date         = DateUtility.GetDateTime(model.date);
                        entity.ModifyUserId = currentUser.Id;
                        entity.CreateDate   = DateTime.Now;
                        entity.ModifyDate   = DateTime.Now;
                        entity.Ip           = Request.UserHostAddress;
                    }
                    else
                    {
                        var item = new BranchFactor()
                        {
                            BranchId     = model.branchId,
                            Number       = model.number,
                            Date         = DateUtility.GetDateTime(model.date),
                            CreateUserId = currentUser.Id,
                            ModifyUserId = currentUser.Id,
                            CreateDate   = DateTime.Now,
                            ModifyDate   = DateTime.Now,
                            Ip           = Request.UserHostAddress,
                        };
                        db.BranchFactor.Add(item);
                    }
                    db.SaveChanges();
                }
                response = new Response()
                {
                    status  = 200,
                    message = "اطلاعات با موفقیت به روز رسانی شد."
                };
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
        public JsonResult Save(FoodCensusViewModel model)
        {
            Response response;

            try
            {
                if (model.holiday == null)
                {
                    response = new Response()
                    {
                        status  = 500,
                        message = "لطفا روز تعطیل را انتخاب کنید",
                    };
                    return(Json(response, JsonRequestBehavior.AllowGet));
                }
                var user = GetAuthenticatedUser();
                using (var db = new KiaGalleryContext())
                {
                    var date = DateUtility.GetDateTime(model.date);
                    if (model.id > 0 && model.id != null)
                    {
                        var entity = db.FoodCensus.Where(x => x.Id == model.id).SingleOrDefault();
                        entity.Date         = DateUtility.GetDateTime(model.date);
                        entity.FoodName     = model.foodName;
                        entity.TypeFood     = model.typeFood;
                        entity.Holiday      = model.holiday.Value;
                        entity.ModifyUserId = user.Id;
                        entity.ModifyDate   = DateTime.Now;
                        entity.Ip           = Request.UserHostAddress;
                    }
                    else
                    {
                        var item = new FoodCensus()
                        {
                            Date         = DateUtility.GetDateTime(model.date),
                            FoodName     = model.foodName,
                            Holiday      = model.holiday.Value,
                            TypeFood     = model.typeFood,
                            CreateUserId = user.Id,
                            ModifyUserId = user.Id,
                            CreateDate   = DateTime.Now,
                            ModifyDate   = DateTime.Now,
                            Ip           = Request.UserHostAddress,
                        };
                        db.FoodCensus.Add(item);
                    }
                    db.SaveChanges();
                    response = new Response()
                    {
                        status  = 200,
                        message = "عملیات با موفقیت انجام شد."
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
        public JsonResult Load(string date)
        {
            Response response;

            try
            {
                var dt = DateUtility.GetDateTime(date);
                using (var db = new KiaGalleryContext())
                {
                    var item = db.FoodCensus.Where(x => x.Date == dt).SingleOrDefault();
                    var data = new FoodCensusViewModel()
                    {
                        id       = item.Id,
                        foodName = item.FoodName,
                        typeFood = item.TypeFood,
                        holiday  = item.Holiday,
                        date     = DateUtility.GetPersianDate(item.Date)
                    };
                    response = new Response()
                    {
                        status = 200,
                        data   = data,
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #7
0
        public JsonResult FoodSelect(FoodRegistrationViewModel model)
        {
            Response response;

            try
            {
                using (var db = new KiaGalleryContext())
                {
                    if (model.id > 0 && model.id != null)
                    {
                        var entity = db.FoodRegistration.Where(x => x.Id == model.id).SingleOrDefault();
                        entity.FoodCensusId    = model.foodCensusId;
                        entity.FoodStatus      = model.foodStatus;
                        entity.Appertizer      = model.appertizer;
                        entity.Food            = model.food;
                        entity.FoodWithoutRice = model.foodWithoutRice;
                        entity.ModifyUserId    = GetAuthenticatedUserId();
                        entity.ModifyDate      = DateTime.Now;
                        entity.Ip = Request.UserHostAddress;
                    }
                    else
                    {
                        var item = new FoodRegistration()
                        {
                            FoodCensusId    = model.foodCensusId,
                            UserId          = GetAuthenticatedUserId(),
                            FoodStatus      = model.foodStatus,
                            Appertizer      = model.appertizer,
                            Food            = model.food,
                            FoodWithoutRice = model.foodWithoutRice,
                            Date            = DateUtility.GetDateTime(model.date),
                            CreateUserId    = GetAuthenticatedUserId(),
                            ModifyUserId    = GetAuthenticatedUserId(),
                            CreateDate      = DateTime.Now,
                            ModifyDate      = DateTime.Now,
                            Ip = Request.UserHostAddress,
                        };
                        db.FoodRegistration.Add(item);
                    }

                    db.SaveChanges();
                }
                response = new Response()
                {
                    status  = 200,
                    message = "ثبت اطلاعات با موفقیت انجام شد.",
                };
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #8
0
        public JsonResult GetBranchFiles(MarquisFileSearchViewModel model)
        {
            Response response;

            try
            {
                var user = GetAuthenticatedUser();
                List <MarquisFileViewModel> list;
                int dataCount;
                using (var db = new KiaGalleryContext())
                {
                    var query = db.MarquisFile.Where(x => x.BranchId == user.BranchId);

                    if (!string.IsNullOrEmpty(model.date))
                    {
                        var date = DateUtility.GetDateTime(model.date);
                        query = query.Where(x => DbFunctions.TruncateTime(x.CreateDate) == DbFunctions.TruncateTime(date));
                    }

                    dataCount = query.Count();
                    query     = query.OrderByDescending(x => x.Id).Skip(model.page * model.count).Take(model.count);
                    list      = query.Select(item => new MarquisFileViewModel()
                    {
                        id          = item.Id,
                        branchId    = item.BranchId,
                        branchName  = item.Branch.Name,
                        description = item.Description,
                        fileCount   = item.MarquisFileDetailList.Count,
                        date        = item.CreateDate
                    }).ToList();
                }

                list.ForEach(x => x.persianDate = DateUtility.GetPersianDateTime(x.date));

                response = new Response()
                {
                    status = 200,
                    data   = new
                    {
                        list      = list,
                        pageCount = Math.Ceiling((double)dataCount / model.count),
                        count     = dataCount,
                        page      = model.page + 1
                    }
                };
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }

            return(Json(response, JsonRequestBehavior.AllowGet));
        }
        public JsonResult SaveDetail(InfoInventoryViewModel model)
        {
            Response response;

            try
            {
                using (var db = new KiaGalleryContext())
                {
                    var date   = DateUtility.GetDateTime(model.date);
                    var userId = GetAuthenticatedUserId();
                    model.dailyInventoryDetailViewModelList.ForEach(x =>
                    {
                        if (db.InventoryDetail.Where(y => y.CategoryInventoryReportMemberId == x.categoryInventoryReportMemberId && y.Date == date).Count() > 0)
                        {
                            var entity          = db.InventoryDetail.Where(y => y.CategoryInventoryReportMemberId == x.categoryInventoryReportMemberId && y.Date == date).Single();
                            entity.Count        = x.count;
                            entity.Weight       = x.weight;
                            entity.Title        = x.title;
                            entity.ModifyUserId = userId;
                            entity.ModifyDate   = DateTime.Now;
                        }
                        else
                        {
                            var item = new InventoryDetail()
                            {
                                Count = x.count,
                                CategoryInventoryReportMemberId = x.categoryInventoryReportMemberId,
                                Weight       = x.weight,
                                Title        = x.title,
                                Date         = date,
                                CreateUserId = userId,
                                ModifyUserId = userId,
                                CreateDate   = DateTime.Now,
                                ModifyDate   = DateTime.Now,
                                Ip           = Request.UserHostAddress,
                            };
                            db.InventoryDetail.Add(item);
                        }
                    });
                    db.SaveChanges();
                }
                response = new Response()
                {
                    status  = 200,
                    message = "عنوان جدید ثبت شد",
                };
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #10
0
        public JsonResult ReturnDataValue(FoodCensusValueViewModel model)
        {
            Response response;

            try
            {
                var fromDate     = DateUtility.GetDateTime(model.persianFirstDayOfMonth);
                var toDate       = DateUtility.GetDateTime(model.persianLastDayOfMonth);
                var nextTommorow = DateTime.Now.AddDays(2);
                var nextDay      = DateTime.Now.AddDays(1);
                using (var db = new KiaGalleryContext())
                {
                    var userId = GetAuthenticatedUserId();
                    List <FoodCensusValueViewModel> item;

                    var entity = db.FoodCensus.Where(x => x.Date >= fromDate && x.Date <= toDate).Select(x => new FoodCensusViewModel
                    {
                        id                 = x.Id,
                        boolDate           = x.Date >= nextTommorow ? true : false,
                        boolCheckingDate   = x.Date >= nextDay ? true : false,
                        dateTime           = x.Date,
                        holiday            = x.Holiday,
                        typeFood           = x.TypeFood,
                        foodName           = !string.IsNullOrEmpty(x.FoodName) ? x.FoodName : string.Empty,
                        food               = x.FoodRegistrationList.Where(y => y.UserId == userId).FirstOrDefault().Food,
                        appertizer         = x.FoodRegistrationList.Where(y => y.UserId == userId).FirstOrDefault().Appertizer,
                        foodCount          = x.FoodRegistrationList.Where(y => y.Food == true).Count(),
                        foodRegisterList   = x.FoodRegistrationList.Where(y => y.UserId > 0).Count(),
                        foodRegistrationId = x.FoodRegistrationList.Where(y => y.UserId == userId).FirstOrDefault().Id > 0 ? x.FoodRegistrationList.Where(y => y.UserId == userId).FirstOrDefault().Id : 0,
                        foodWithoutRice    = x.FoodRegistrationList.Where(y => y.UserId == userId).FirstOrDefault().FoodWithoutRice,
                    }).ToList();

                    entity.ForEach(x =>
                    {
                        x.persianDate = DateUtility.GetPersianDate(x.dateTime);
                    });
                    response = new Response()
                    {
                        status = 200,
                        data   = new
                        {
                            list = entity,
                        }
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #11
0
        public JsonResult Send(SmsOption model)
        {
            Response      response;
            List <string> personelNumber;

            try
            {
                var date = DateUtility.GetDateTime(model.persianDate);

                if (!string.IsNullOrEmpty(model.branchId))
                {
                    using (var db = new KiaGalleryContext())
                    {
                        var        branchIdList = model.branchId.Split();
                        List <int> myInts       = branchIdList.Select(int.Parse).ToList();
                        personelNumber = db.User.Where(y => myInts.Contains(y.BranchId.Value) && y.PhoneNumber != null && y.PhoneNumber != "").Select(y => y.PhoneNumber).ToList();
                    }
                    Task.Factory.StartNew(() =>
                    {
                        NikSmsWebServiceClient.SendSmsNik(model.text, personelNumber);
                    });
                }
                if (model.phoneNumber != null && model.phoneNumber != "" && !model.phoneNumber.Contains('-'))
                {
                    Task.Factory.StartNew(() =>
                    {
                        NikSmsWebServiceClient.SendSmsNik(model.text, model.phoneNumber);
                    });
                }
                if (model.phoneNumber != null && model.phoneNumber != "" && model.phoneNumber.Contains('-'))
                {
                    var numberList = model.phoneNumber.Split('-');
                    var numbers    = new List <string>();
                    numbers.AddRange(numberList);
                    Task.Factory.StartNew(() =>
                    {
                        NikSmsWebServiceClient.SendSmsNik(model.text, numbers);
                    });
                }

                response = new Response()
                {
                    status  = 200,
                    message = "Done",
                };
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #12
0
        public JsonResult SetFood(FoodDateViewModel model)
        {
            Response response;

            try
            {
                var userId       = GetAuthenticatedUserId();
                var selectedDate = DateUtility.GetDateTime(model.date);
                using (var db = new KiaGalleryContext())
                {
                    var food = db.FoodRegistration.Where(x => x.FoodCensus.Date == selectedDate && x.UserId == model.userId && x.FoodCensusId == model.id).SingleOrDefault();
                    if (food != null)
                    {
                        food.Food         = model.food;
                        food.Date         = selectedDate;
                        food.FoodStatus   = 0;
                        food.ModifyUserId = userId;
                        food.ModifyDate   = DateTime.Now;
                        food.Ip           = Request.UserHostAddress;
                    }
                    else
                    {
                        var item = new FoodRegistration()
                        {
                            Food         = model.food,
                            UserId       = model.userId.Value,
                            FoodCensusId = model.id.Value,
                            Date         = DateUtility.GetDateTime(model.date),
                            FoodStatus   = 0,
                            CreateUserId = userId,
                            ModifyUserId = userId,
                            CreateDate   = DateTime.Now,
                            ModifyDate   = DateTime.Now,
                            Ip           = Request.UserHostAddress,
                        };
                        db.FoodRegistration.Add(item);
                    }
                    db.SaveChanges();
                }

                response = new Response()
                {
                    status = 200,
                };
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
        public JsonResult GetBranchGold(string date)
        {
            Response response;

            try
            {
                var dateTime = DateUtility.GetDateTime(date);
                using (var db = new KiaGalleryContext())
                {
                    var query = db.BranchGold.OrderByDescending(x => x.Branch.Order).Where(x => DbFunctions.TruncateTime(x.Date) == dateTime);

                    var list = query.GroupBy(x => x.BranchId).Select(x => new GetBranchGoldViewModel()
                    {
                        branchName = x.FirstOrDefault().Branch.Name,
                        weight     = x.Sum(y => y.Weight),
                        price      = x.Sum(y => y.Price),
                        date       = x.OrderByDescending(y => y.Date).FirstOrDefault().Date,
                        detail     = x.Select(y => new DetailSearchViewModel
                        {
                            weight = y.Weight,
                            date   = y.Date,
                        }).ToList(),
                    }).ToList();
                    list.ForEach(x =>
                    {
                        x.detail.ForEach(y =>
                        {
                            y.stringDate = DateUtility.GetPersianDateTime(y.date);
                        });
                        x.stringDate = DateUtility.GetPersianDateTime(x.date);
                    });

                    response = new Response()
                    {
                        status = 200,
                        data   = new
                        {
                            list      = list,
                            weightSum = list.Sum(x => x.weight),
                            priceSum  = list.Sum(x => x.price)
                        }
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }

            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #14
0
        public JsonResult GetAllRegistration(string date)
        {
            Response response;

            try
            {
                var selectedDate = DateUtility.GetDateTime(date);
                using (var db = new KiaGalleryContext())
                {
                    var queryFood              = db.FoodRegistration.Where(x => x.Date == selectedDate && x.User.Active == true).ToList();
                    var foodSettingCount       = int.Parse(db.FoodSetting.SingleOrDefault(x => x.Key == FoodSetting.KeyFoodCount)?.Value);
                    var appertizerSettingCount = int.Parse(db.FoodSetting.SingleOrDefault(x => x.Key == FoodSetting.KeyAppetizerCount)?.Value);
                    var listRegistration       = queryFood.Select(x => new
                    {
                        userId             = x.UserId,
                        foodRegistrationId = x.Id,
                        food         = x.Food,
                        appertizer   = x.Appertizer,
                        foodCensusId = x.FoodCensusId,
                    }).ToList();
                    var query = db.User.Where(x => x.RoleList.Count(z => z.Title == "foodRegistration") > 0 && x.Active == true).ToList();
                    var list  = query.Select(x => new
                    {
                        id       = x.Id,
                        fullName = x.FirstName + " " + x.LastName,
                    }).ToList();


                    response = new Response()
                    {
                        status = 200,
                        data   = new
                        {
                            list               = list,
                            listRegistration   = listRegistration,
                            foodCount          = listRegistration.Count(x => x.food == true),
                            appertizerCount    = listRegistration.Count(x => x.appertizer == true),
                            sumFoodCount       = foodSettingCount + listRegistration.Count(x => x.food == true),
                            sumAppertizerCount = appertizerSettingCount + listRegistration.Count(x => x.appertizer == true),
                            foodCensusId       = listRegistration.Select(x => x.foodCensusId).FirstOrDefault(),
                        }
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #15
0
        public JsonResult Search(SalaryParamsViewModel model)
        {
            Response response;

            try
            {
                List <SalarySearchViewModel> salaryList;
                int dataCount;
                using (var db = new KiaGalleryContext())
                {
                    var query = db.Salary.Select(x => x);
                    if (!string.IsNullOrEmpty(model.date))
                    {
                        DateTime dateTime = DateUtility.GetDateTime(model.date).GetValueOrDefault();
                        query = query.Where(x => x.MonthCalculated == dateTime);
                    }
                    dataCount  = query.Count();
                    query      = query.OrderByDescending(x => x.Id).Skip(model.page * model.count).Take(model.count);
                    salaryList = query.Select(x => new SalarySearchViewModel()
                    {
                        id                  = x.Id,
                        fullName            = x.Person.FirstName + " " + x.Person.LastName,
                        workHours           = x.WorkHours,
                        branch              = x.Person.Branch.Name,
                        monthCalculatedDate = x.MonthCalculated
                    }).ToList();
                    salaryList.ForEach(x => x.monthCalculated = DateUtility.GetPersianDate(x.monthCalculatedDate));
                }
                response = new Response()
                {
                    status = 200,
                    data   = new
                    {
                        list      = salaryList,
                        pageCount = Math.Ceiling((double)dataCount / model.count),
                        count     = dataCount,
                        page      = model.page + 1
                    }
                };
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }

            return(Json(response, JsonRequestBehavior.AllowGet));
        }
        public JsonResult Search(string date)
        {
            Response response;

            try
            {
                var currentUser = GetAuthenticatedUser();
                var dateTime    = DateUtility.GetDateTime(date);
                using (var db = new KiaGalleryContext())
                {
                    var query        = db.GoldBalance.OrderByDescending(x => x.Id).Where(x => DbFunctions.TruncateTime(x.Date) == dateTime);
                    var workShopGold = db.WorkShopGold.Where(x => DbFunctions.TruncateTime(x.Date) == dateTime).Select(x => x.Weight).ToList().Sum();

                    var list = query.Select(x => new GoldBalanceSearchViewModel()
                    {
                        id          = x.Id,
                        date        = x.Date,
                        weight      = x.Weight,
                        description = x.Description,
                        dealerName  = x.DealerName,
                        tradeType   = x.TradeType,
                        tradeTime   = x.TradeTime,
                    }).ToList();
                    list.ForEach(x =>
                    {
                        x.tradeTypeTitle = Enums.GetTitle(x.tradeType);
                        x.stringDate     = DateUtility.GetPersianDateTime(x.date);
                    });

                    response = new Response()
                    {
                        status = 200,
                        data   = new
                        {
                            list      = list,
                            weightSum = list.Where(x => x.tradeType == TradeType.Buy).Sum(x => x.weight) - list.Where(x => x.tradeType == TradeType.Sell).Sum(x => x.weight)
                        }
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }

            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #17
0
        public JsonResult Save(WorkShopGoldViewModel model)
        {
            var      currentUser = GetAuthenticatedUser();
            var      dateTime    = DateUtility.GetDateTime(model.date);
            Response response;

            using (var db = new KiaGalleryContext())
            {
                var boughtGold   = db.GoldBalance.Where(x => x.TradeType == TradeType.Buy && DbFunctions.TruncateTime(x.Date) == dateTime).Select(x => x.Weight).ToList().Sum();
                var soldGold     = db.GoldBalance.Where(x => x.TradeType == TradeType.Sell && DbFunctions.TruncateTime(x.Date) == dateTime).Select(x => x.Weight).ToList().Sum();
                var workshopGold = db.WorkShopGold.Where(x => DbFunctions.TruncateTime(x.Date) == dateTime).Select(x => x.Weight).ToList().Sum();
                var sum          = boughtGold - soldGold - workshopGold;
                if (model.weight <= sum)
                {
                    var entity = new WorkShopGold()
                    {
                        RemittanceType  = model.remittanceType,
                        WorkshopId      = model.workshopId,
                        BoughtGoldPrice = model.workShopBoughtGoldPrice,
                        GoldRate        = model.workShopGoldRate,
                        Weight          = model.weight,
                        CreateUserId    = currentUser.Id,
                        ModifyUserId    = currentUser.Id,
                        CreateDate      = DateTime.Now,
                        ModifyDate      = DateTime.Now,
                        Date            = dateTime
                    };
                    db.WorkShopGold.Add(entity);
                    db.SaveChanges();
                    response = new Response()
                    {
                        status  = 200,
                        message = "حواله طلا با موفقیت انجام شد."
                    };
                    return(Json(response, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    response = new Response()
                    {
                        status  = 500,
                        message = "مقدار طلای وارد شده بیشتر از موجودی طلا میباشد."
                    };
                }
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
        public ActionResult ReportDaily(string date)
        {
            if (string.IsNullOrEmpty(date))
            {
                date = date.Replace("-", "/");
            }

            DateTime?dateTime = DateUtility.GetDateTime(date);

            ViewBag.Date = date;
            using (var db = new KiaGalleryContext())
            {
                ViewBag.InventoryReportMembers = db.CategoryInventoryReportMember.Where(x => x.CreateDate == dateTime).Select(x => x).OrderBy(x => x.Order).SingleOrDefault();
                ViewBag.message = "اطلاعاتی ثبت نگردید است";
            }
            return(View());
        }
        public JsonResult ReturnDataValue(InfoInventoryViewModel model)
        {
            Response response;

            try
            {
                var fromDate        = DateUtility.GetDateTime(model.date);
                var firstDayOfMonth = new DateTime(fromDate.Value.Year, fromDate.Value.Month, 1);
                fromDate = firstDayOfMonth;
                string[] datePart    = model.date.Split('/');
                string   Month       = datePart[1];
                int      numberMonth = Convert.ToInt32(Month);
                var      toDate      = fromDate.Value.AddDays(30);
                if (numberMonth <= 6)
                {
                    toDate = fromDate.Value.AddDays(31);
                }

                using (var db = new KiaGalleryContext())
                {
                    List <DailyInventoryDetailViewModel> item;
                    item = db.InventoryDetail.Where(x => x.CreateDate >= fromDate && x.CreateDate <= toDate).Select(x => new DailyInventoryDetailViewModel
                    {
                        date = x.Date,
                    }).ToList();
                    item.ForEach(x =>
                    {
                        x.persianDate = DateUtility.GetPersianDate(x.date);
                    });
                    response = new Response()
                    {
                        status = 200,
                        data   = new
                        {
                            list = item,
                        }
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #20
0
        public JsonResult Search(string date)
        {
            Response response;

            try
            {
                var currentUser = GetAuthenticatedUser();
                var dateTime    = DateUtility.GetDateTime(date);
                using (var db = new KiaGalleryContext())
                {
                    var query = db.BranchGold.OrderByDescending(x => x.Id).Where(x => DbFunctions.TruncateTime(x.Date) == dateTime && x.BranchId == currentUser.BranchId);

                    var list = query.Select(x => new BranchGoldSearchViewModel()
                    {
                        id     = x.Id,
                        date   = x.Date,
                        weight = x.Weight,
                        price  = x.Price
                    }).ToList();

                    list.ForEach(x =>
                    {
                        x.stringDate  = DateUtility.GetPersianDateTime(x.date);
                        x.stringPrice = Core.ToSeparator(x.price);
                    });
                    response = new Response()
                    {
                        status = 200,
                        data   = new
                        {
                            list      = list,
                            weightSum = list.Sum(x => x.weight),
                            priceSum  = list.Sum(x => x.price)
                        }
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }

            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #21
0
        /// <summary>
        /// بارگذاری اطلاعات از قبیل :تعداد فاکتور صادر شده برای هر شعبه
        /// </summary>
        /// <param name="date"></param>
        /// <returns></returns>
        public JsonResult Search(string date, int?branchId)
        {
            var      dateTime = DateUtility.GetDateTime(date);
            Response response;

            try
            {
                var currentuser = GetAuthenticatedUserId();
                using (var db = new KiaGalleryContext())
                {
                    var query = db.BranchFactor.Select(x => x);

                    if (date != null)
                    {
                        query = query.Where(x => DbFunctions.TruncateTime(x.Date) == dateTime);
                    }
                    var list = query.GroupBy(x => x.Branch).Select(x => new BranchFactorSearchViewModel()
                    {
                        branchId    = x.Key.Id,
                        branchName  = x.Key.Name,
                        number      = x.Sum(y => (y.Number)),
                        factorCount = db.CustomerFactor.Count(y => y.BranchId == x.Key.Id && y.Date == dateTime),
                    }).ToList();

                    list.ForEach(x =>
                    {
                        x.persianDate = DateUtility.GetPersianDate(x.date);
                    });
                    response = new Response()
                    {
                        status = 200,
                        data   = new
                        {
                            list = list
                        }
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
        public JsonResult LoadDetail(string date)
        {
            Response response;

            try
            {
                var dateTime = DateUtility.GetDateTime(date);
                List <InventoryDetail> item;
                using (var db = new KiaGalleryContext())
                {
                    item = db.InventoryDetail.Where(x => DbFunctions.TruncateTime(x.Date) == dateTime).ToList();
                }
                if (item != null)
                {
                    response = new Response()
                    {
                        status = 200,
                        data   = new InventoryReportMembersViewModel
                        {
                            dailyInventoryDetailViewModelList = item.Select(x => new DailyInventoryDetailViewModel()
                            {
                                count = x.Count,
                                categoryInventoryReportMemberId = x.CategoryInventoryReportMemberId,
                                weight = x.Weight,
                            }).ToList(),
                        }
                    };
                }
                else
                {
                    response = new Response()
                    {
                        status  = 404,
                        message = "گزارش مورد نظر یافت نشد."
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
        public JsonResult Save(GoldBalanceViewModel model)
        {
            Response response;
            var      currentUser = GetAuthenticatedUser();

            try
            {
                using (var db = new KiaGalleryContext())
                {
                    var entity = new GoldBalance()
                    {
                        TradeTime    = model.tradeTime,
                        TradeType    = model.tradeType,
                        DealerName   = model.dealerName,
                        Weight       = model.weight,
                        Description  = model.description,
                        Date         = DateUtility.GetDateTime(model.date, model.hour, model.minute, model.second),
                        CreateUserId = currentUser.Id,
                        ModifyUserId = currentUser.Id,
                        CreateDate   = DateTime.Now,
                        ModifyDate   = DateTime.Now,
                    };

                    db.GoldBalance.Add(entity);
                    db.SaveChanges();
                    response = new Response()
                    {
                        status  = 200,
                        message = "اطلاعات با موفقیت به روز رسانی شد."
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }

            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #24
0
        public ActionResult Shipping(ShippingViewModel model)
        {
            try
            {
                var currentUser = GetAuthenticatedUser();
                var cartList    = _context.Cart.Where(x => x.UserId == currentUser.id).ToList();

                if (cartList.Count == 0)
                {
                    return(Error("سبد خرید شما خالی است."));
                }

                var addressList = _context.UserAddress.Where(x => x.StatusId == UserAddressStatus.Active.Id && x.UserId == currentUser.id).ToList();
                var address     = addressList.Single(x => x.Id == model.addressId);
                if (model.addressId > 0)
                {
                    if (addressList.SingleOrDefault(x => x.Id == model.addressId) == null)
                    {
                        return(Error("آدرس انتخاب شده صحیح نیست."));
                    }
                    else
                    {
                        addressList.ForEach(x => x.MainAddress = false);
                        address.MainAddress = true;
                    }
                }
                else
                {
                    return(Error("لطفا آدرس تحویل سفارش خود را مشخص کنید."));
                }

                if (model.deliveryType > 0)
                {
                    if (model.deliveryType == 1 && string.IsNullOrEmpty(model.time) && model.time.Split(' ').Length != 2)
                    {
                        return(Error("لطفا زمان تحویل سفارش خود را مشخص کنید."));
                    }
                }
                else
                {
                    return(Error("لطفا نحوه تحویل سفارش خود را مشخص کنید."));
                }

                Response couponResponse = null;
                Coupon   coupon         = null;
                if (!string.IsNullOrEmpty(model.coupon))
                {
                    couponResponse = CouponController.CheckCoupon(_context, currentUser, model.coupon, out coupon);
                    if (couponResponse.status != ResponseStatus.Ok)
                    {
                        return(Error(couponResponse.message));
                    }
                }

                var invoiceDetailList = new List <InvoiceDetail>();
                foreach (var item in cartList)
                {
                    var totalPrice    = item.Product.Price - item.Product.Discount;
                    var invoiceDetail = new InvoiceDetail()
                    {
                        ProductId        = item.ProductId,
                        ProductFeatureId = item.ProductFeatureId,
                        Count            = item.Count,
                        Price            = totalPrice,
                        StatusId         = InvoiceDetailStatus.Accepted.Id,
                        CreateUserId     = currentUser.id,
                        ModifyUserId     = currentUser.id,
                        CreateDate       = GetDatetime(),
                        ModifyDate       = GetDatetime(),
                        CreateIp         = GetCurrentIp(),
                        ModifyIp         = GetCurrentIp()
                    };
                    invoiceDetailList.Add(invoiceDetail);
                }

                var price = invoiceDetailList.Sum(x => x.Count * x.Price);

                if (coupon != null)
                {
                    if (coupon.TypeId == CouponType.Amount.Id)
                    {
                        price = price - coupon.Value;
                    }
                    else if (coupon.TypeId == CouponType.Percentage.Id)
                    {
                        price = price - ((price / 100) * coupon.Value);
                    }

                    if (price < 0)
                    {
                        price = 0;
                    }
                }

                var keys             = new string[] { BaseInformationKey.OrderGapDay, BaseInformationKey.MinDeliveryFreePrice, BaseInformationKey.DeliveryPrice, BaseInformationKey.DeliveryManCity };
                var baseInformations = _context.BaseInformation.Where(x => keys.Any(y => y == x.Key));

                var GapDay = int.Parse(baseInformations.SingleOrDefault(x => x.Key == BaseInformationKey.OrderGapDay)?.Value ?? AsefianMetadata.DefaultGapDay);
                var MinDeliveryFreePrice = long.Parse(baseInformations.SingleOrDefault(x => x.Key == BaseInformationKey.MinDeliveryFreePrice)?.Value ?? AsefianMetadata.DefaultMinDeliveryFreePrice);
                var DeliveryPrice        = long.Parse(baseInformations.SingleOrDefault(x => x.Key == BaseInformationKey.DeliveryPrice)?.Value ?? AsefianMetadata.DefaultDeliveryPrice);

                if (model.deliveryType == DeliveryType.DeliveryMan.Id)
                {
                    var deliveryManCity = baseInformations.SingleOrDefault(x => x.Key == BaseInformationKey.DeliveryManCity)?.Value.Split('-').Select(x => int.Parse(x)).ToArray() ?? new int[] { };
                    if (deliveryManCity.Count(x => x == address.CityId) == 0)
                    {
                        return(Error("برای آدرس مورد نظر شما امکان ارسال با پیک فراهم نیست."));
                    }
                }

                var deliveryPrice = DeliveryPrice;
                if (price >= MinDeliveryFreePrice)
                {
                    deliveryPrice = 0;
                }

                DateTime?deliveryDate = null;
                if (!string.IsNullOrEmpty(model.time))
                {
                    deliveryDate = DateUtility.GetDateTime(model.time.Split(' ')[0]);
                }

                if (deliveryDate != null && DateTime.Today.AddDays(GapDay) > deliveryDate)
                {
                    return(Error("تاریخ وارد شده برای تحویل سفارش صحیح نیست."));
                }

                var invoice = new Invoice()
                {
                    UserId          = currentUser.id,
                    InvoiceStatusId = InvoiceStatus.Registered.Id,
                    PaymentTypeId   = PaymentType.Unknown.Id,
                    InvoiceNo       = GetNewInvoiceNo(),
                    Price           = price,
                    UnpaidPrice     = price,
                    DeliveryPrice   = deliveryPrice,
                    DeliveryTypeId  = model.deliveryType,
                    AddressId       = model.addressId,
                    DeliveryDate    = deliveryDate,
                    DeliveryTime    = model.time?.Split(' ')[1],
                    CouponId        = coupon?.Id,
                    CreateUserId    = currentUser.id,
                    ModifyUserId    = currentUser.id,
                    CreateDate      = GetDatetime(),
                    ModifyDate      = GetDatetime(),
                    CreateIp        = GetCurrentIp(),
                    ModifyIp        = GetCurrentIp(),

                    DetailList = invoiceDetailList
                };

                _context.Cart.RemoveRange(cartList);
                _context.Invoice.Add(invoice);

                var invoiceLog = new InvoiceLog()
                {
                    Invoice      = invoice,
                    StatusId     = InvoiceStatus.Registered.Id,
                    CreateUserId = currentUser.id,
                    CreateDate   = GetDatetime(),
                    CreateIp     = GetCurrentIp()
                };
                _context.InvoiceLog.Add(invoiceLog);

                _context.SaveChanges();

                return(Success("سفارش شما با موفقیت ثبت شد.", new
                {
                    id = invoice.Id
                }));
            }
            catch (Exception ex)
            {
                return(ServerError(ex));
            }
        }
Beispiel #25
0
        public JsonResult SaveCustomer(CrmCustomerViewModel model)
        {
            var      currentUser = GetAuthenticatedUser();
            Response response;

            try
            {
                using (var db = new KiaGalleryContext())
                {
                    if (model.id != null && model.id > 0)
                    {
                        var customer = db.CrmCustomer.Single(x => x.Id == model.id);
                        customer.Id           = model.id;
                        customer.FullName     = model.fullName;
                        customer.FactorNumber = model.factorNumber;
                        customer.PhoneNumber  = model.phoneNumber;
                        if (User.IsInRole("branchCrm"))
                        {
                            customer.BuyType = BuyType.BuyAttendance;
                        }
                        if (User.IsInRole("officeCrm"))
                        {
                            customer.BuyType = BuyType.BuyOnline;
                        }
                        customer.BuyTypeOnline = model.buyTypeOnline;
                        customer.BuyTypeSubset = model.buyTypeSubset;
                        customer.Date          = DateUtility.GetDateTime(model.date);
                        customer.Score         = model.score;
                        customer.BranchId      = currentUser.BranchId;
                        customer.ModifyUserId  = GetAuthenticatedUserId();
                        customer.ModifyDate    = DateTime.Now;
                        customer.Ip            = Request.UserHostAddress;

                        var idList       = model.answerList.Where(x => model.id != null).Select(x => model.id).ToList();
                        var deletedItems = customer.CrmCustomerAnswerList.Where(x => !idList.Any(y => y == x.Id)).ToList();
                        if (deletedItems.Count > 0)
                        {
                            db.CrmCustomerAnswer.RemoveRange(deletedItems);
                        }
                        model.answerList.ForEach(x =>
                        {
                            var value = customer.CrmCustomerAnswerList.SingleOrDefault(y => y.CrmQuestionId == x.crmQuestionId);

                            if (value != null)
                            {
                                value.CrmQuestionId      = x.crmQuestionId;
                                value.CrmQuestionValueId = x.crmQuestionValueId;
                                value.DescriptiveAnswer  = x.descriptiveAnswer;
                                value.YesNoAnswer        = x.yesNoAnswer;
                                value.ModifyDate         = DateTime.Now;
                                value.ModifyUserId       = GetAuthenticatedUserId();
                                value.Ip = Request.UserHostAddress;
                            }
                            else
                            {
                                customer.CrmCustomerAnswerList.Add(new CrmCustomerAnswer()
                                {
                                    CrmQuestionId      = x.crmQuestionId,
                                    CrmQuestionValueId = x.crmQuestionValueId,
                                    DescriptiveAnswer  = x.descriptiveAnswer,
                                    YesNoAnswer        = x.yesNoAnswer,
                                    CreateUserId       = GetAuthenticatedUserId(),
                                    ModifyUserId       = GetAuthenticatedUserId(),
                                    CreateDate         = DateTime.Now,
                                    ModifyDate         = DateTime.Now,
                                    Ip = Request.UserHostAddress,
                                });
                            }
                        });
                    }
                    else
                    {
                        var item = new CrmCustomer()
                        {
                            FullName      = model.fullName,
                            FactorNumber  = model.factorNumber,
                            PhoneNumber   = model.phoneNumber,
                            BuyType       = model.buyType,
                            BuyTypeOnline = model.buyTypeOnline,
                            BuyTypeSubset = model.buyTypeSubset,
                            BranchId      = currentUser.BranchId,
                            Date          = DateUtility.GetDateTime(model.date),
                            Score         = model.score,
                            CreateUserId  = GetAuthenticatedUserId(),
                            ModifyUserId  = GetAuthenticatedUserId(),
                            CreateDate    = DateTime.Now,
                            ModifyDate    = DateTime.Now,
                            Ip            = Request.UserHostAddress,
                        };
                        if (User.IsInRole("branchCrm"))
                        {
                            item.BuyType = BuyType.BuyAttendance;
                        }
                        if (User.IsInRole("officeCrm"))
                        {
                            item.BuyType = BuyType.BuyOnline;
                        }
                        model.answerList.ForEach(x =>
                        {
                            item.CrmCustomerAnswerList.Add(new CrmCustomerAnswer()
                            {
                                CrmQuestionId      = x.crmQuestionId,
                                CrmQuestionValueId = x.crmQuestionValueId,
                                DescriptiveAnswer  = x.descriptiveAnswer,
                                YesNoAnswer        = x.yesNoAnswer,
                                CreateUserId       = GetAuthenticatedUserId(),
                                ModifyUserId       = GetAuthenticatedUserId(),
                                CreateDate         = DateTime.Now,
                                ModifyDate         = DateTime.Now,
                                Ip = Request.UserHostAddress,
                            });
                        });
                        db.CrmCustomer.Add(item);
                    }
                    db.SaveChanges();
                }
                response = new Response()
                {
                    status  = 200,
                    message = "ثبت اطلاعات با موفقیت انجام شد."
                };
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #26
0
        public static Response OrderSearchQuery(QueryUserType type, OrderSearchViewModel model)
        {
            var param      = new List <SqlParameter>();
            var paramCount = new List <SqlParameter>();
            var countQuery = "SELECT COUNT(*) FROM ( SELECT DISTINCT [O].[Id] ";
            var query      =
                @"
        SELECT DISTINCT
		[O].[Id],
		[O].[OrderNumber],
		[O].[OrderSerial],
		(
			SELECT COUNT(*) FROM [order].[OrderDetail] AS [SOD]
				INNER JOIN [Products] AS [SP] ON [SP].[Id] = [SOD].[ProductId]
            WHERE [SOD].[OrderId] = [O].[Id]
";

            if (type == QueryUserType.LeatherProduct)
            {
                query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) ";
            }
            else if (type == QueryUserType.NotLeatherProduct)
            {
                query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))";
            }

            query += @"
) AS [sumCount],
		(
			SELECT COUNT(DISTINCT [SOD].[SetNumber]) FROM [order].[OrderDetail] AS [SOD] 
				INNER JOIN [Products] AS [SP] ON [SP].[Id] = [SOD].[ProductId]
			WHERE [SOD].[OrderId] = [O].[Id] AND [SOD].[SetNumber] IS NOT NULL
";
            if (type == QueryUserType.LeatherProduct)
            {
                query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) ";
            }
            else if (type == QueryUserType.NotLeatherProduct)
            {
                query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))";
            }

            query += @"
		) AS [sumCountSet],
		(
			SELECT ROUND(SUM([SP].[Weight] * [SOD].[Count]), 2) FROM [order].[OrderDetail] AS [SOD]
				INNER JOIN [Products] [SP] ON [SP].[Id] = [SOD].[ProductId]
			WHERE [SOD].[OrderId] = [O].[Id]"            ;

            if (type == QueryUserType.LeatherProduct)
            {
                query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) ";
            }
            else if (type == QueryUserType.NotLeatherProduct)
            {
                query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))";
            }

            query += @"
		) AS [sumWeight],
		[O].[BranchId] AS [BranchId],
		[B].[Name] AS [createBranch],
		[U].[FirstName] + ' ' + [U].[LastName] AS [createUser],
		[O].[createDate],
		(
			CASE 
				WHEN 
					(
						SELECT COUNT(*) FROM [order].[OrderDetail] AS [SOD]
				            INNER JOIN [Products] [SP] ON [SP].[Id] = [SOD].[ProductId]
			            WHERE [SOD].[OrderId] = [O].[Id]"            ;
            if (type == QueryUserType.LeatherProduct)
            {
                query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) ";
            }
            else if (type == QueryUserType.NotLeatherProduct)
            {
                query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))";
            }

            query += @"
					)
					= 
					(
						SELECT COUNT(*) FROM [order].[OrderDetail] AS [SOD]
				            INNER JOIN [Products] [SP] ON [SP].[Id] = [SOD].[ProductId]
			            WHERE [SOD].[OrderId] = [O].[Id] AND [SOD].[OrderDetailStatus] IN (0)
						"                        ;
            if (type == QueryUserType.LeatherProduct)
            {
                query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) ";
            }
            else if (type == QueryUserType.NotLeatherProduct)
            {
                query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))";
            }

            query += @"
					)
				THEN 'bg-new-order'
				WHEN 
					(
						SELECT COUNT(*) FROM [order].[OrderDetail] AS [SOD]
				            INNER JOIN [Products] [SP] ON [SP].[Id] = [SOD].[ProductId]
			            WHERE [SOD].[OrderId] = [O].[Id]
						"                        ;
            if (type == QueryUserType.LeatherProduct)
            {
                query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) ";
            }
            else if (type == QueryUserType.NotLeatherProduct)
            {
                query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))";
            }

            query += @"
					)
					= 
					(
						SELECT COUNT(*) FROM [order].[OrderDetail] AS [SOD]
				            INNER JOIN [Products] [SP] ON [SP].[Id] = [SOD].[ProductId]
			            WHERE [SOD].[OrderId] = [O].[Id] AND [SOD].[OrderDetailStatus] IN (6, 9, 8)
						"                        ;
            if (type == QueryUserType.LeatherProduct)
            {
                query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) ";
            }
            else if (type == QueryUserType.NotLeatherProduct)
            {
                query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))";
            }

            query += @"
					)
				THEN 'bg-done-order'
				WHEN 
					(
						SELECT COUNT(*) FROM [order].[OrderDetail] AS [SOD]
				            INNER JOIN [Products] [SP] ON [SP].[Id] = [SOD].[ProductId]
			            WHERE [SOD].[OrderId] = [O].[Id]
						"                        ;
            if (type == QueryUserType.LeatherProduct)
            {
                query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) ";
            }
            else if (type == QueryUserType.NotLeatherProduct)
            {
                query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))";
            }

            query += @"
					)
					= 
					(
						SELECT COUNT(*) FROM [order].[OrderDetail] AS  [SOD]
				            INNER JOIN [Products] [SP] ON [SP].[Id] = [SOD].[ProductId]
			            WHERE [SOD].[OrderId] = [O].[Id] AND [SOD].[OrderDetailStatus] IN (6, 7, 8, 9)
						"                        ;
            if (type == QueryUserType.LeatherProduct)
            {
                query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) ";
            }
            else if (type == QueryUserType.NotLeatherProduct)
            {
                query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))";
            }

            query      += @"
					)
				THEN 'bg-open-shortage-order'
				ELSE 'bg-open-order'
			END
		) AS [bgColor]"        ;
            query      += @"
FROM [order].[Order] AS [O]
	INNER JOIN [Branches] AS [B] ON [B].[Id] = [O].[BranchId]
	INNER JOIN [UserProfile] AS [U] ON [U].[Id] = [O].[CreateUserId]
	INNER JOIN [order].[OrderDetail] AS [OD] ON [OD].[OrderId] = [O].[Id]
	INNER JOIN [Products] AS [P] ON [P].[Id] = [OD].[ProductId]
WHERE [O].[Deleted] = 0
";
            countQuery += @"
FROM [order].[Order] AS [O]
	INNER JOIN [Branches] AS [B] ON [B].[Id] = [O].[BranchId]
	INNER JOIN [UserProfile] AS [U] ON [U].[Id] = [O].[CreateUserId]
	INNER JOIN [order].[OrderDetail] AS [OD] ON [OD].[OrderId] = [O].[Id]
	INNER JOIN [Products] AS [P] ON [P].[Id] = [OD].[ProductId]
WHERE [O].[Deleted] = 0
";

            if (type == QueryUserType.LeatherProduct)
            {
                query      += @" AND ([P].[WorkshopId2] = 5 OR [P].[ProductType] = 10 OR [P].[ProductType] = 15 OR [P].[ProductType] = 14) ";
                countQuery += @" AND ([P].[WorkshopId2] = 5 OR [P].[ProductType] = 10 OR [P].[ProductType] = 15 OR [P].[ProductType] = 14) ";
            }
            else if (type == QueryUserType.NotLeatherProduct)
            {
                query      += @" AND (([P].[WorkshopId2] IS NULL OR [P].[WorkshopId2] != 5) AND [P].[ProductType] NOT IN (10, 15, 14)) ";
                countQuery += @" AND (([P].[WorkshopId2] IS NULL OR [P].[WorkshopId2] != 5) AND [P].[ProductType] NOT IN (10, 15, 14)) ";
            }

            if (model.branchType != null)
            {
                query      += @" AND [B].[BranchType] = @BranchType ";
                countQuery += @" AND [B].[BranchType] = @BranchType ";
                param.Add(new SqlParameter("@BranchType", model.branchType));
                paramCount.Add(new SqlParameter("@BranchType", model.branchType));
            }

            if (!string.IsNullOrEmpty(model.date))
            {
                var date = DateUtility.GetDateTime(model.date);
                query      += @" AND ([O].[CreateDate] >= @Date AND [O].[CreateDate] < DATEADD(DAY, 1, @Date)) ";
                countQuery += @" AND ([O].[CreateDate] >= @Date AND [O].[CreateDate] < DATEADD(DAY, 1, @Date)) ";
                param.Add(new SqlParameter("@Date", date));
                paramCount.Add(new SqlParameter("@Date", date));
            }

            if (model.branchId != null && model.branchId.Count > 0)
            {
                query      += @" AND [O].[BranchId] IN (SELECT VALUE FROM STRING_SPLIT(@BranchId, '-')) ";
                countQuery += @" AND [O].[BranchId] IN (SELECT VALUE FROM STRING_SPLIT(@BranchId, '-')) ";
                param.Add(new SqlParameter("@BranchId", string.Join("-", model.branchId)));
                paramCount.Add(new SqlParameter("@BranchId", string.Join("-", model.branchId)));
            }


            if (!string.IsNullOrEmpty(model.term?.Trim()))
            {
                model.term = model.term.ToStandardPersian();
                query     += @" AND (
		[O].[OrderSerial] LIKE @Term OR
		[O].[OrderNumber] LIKE @Term OR
		[B].[Name] LIKE @Term OR
		[B].[Alias] LIKE @Term OR
		[OD].[Customer] LIKE @Term OR
		[OD].[PhoneNumber] LIKE @Term OR
		[OD].[Description] LIKE @Term) "        ;
                param.Add(new SqlParameter("@Term", "%" + model.term + "%"));
                countQuery += @" AND (
		[O].[OrderSerial] LIKE @Term OR
		[O].[OrderNumber] LIKE @Term OR
		[B].[Name] LIKE @Term OR
		[B].[Alias] LIKE @Term OR
		[OD].[Customer] LIKE @Term OR
		[OD].[PhoneNumber] LIKE @Term OR
		[OD].[Description] LIKE @Term) "        ;
                paramCount.Add(new SqlParameter("@Term", "%" + model.term + "%"));
            }


            query += @"
ORDER BY [O].[OrderNumber] DESC 
OFFSET     @Skip ROWS 
FETCH NEXT @Take ROWS ONLY;
";
            param.Add(new SqlParameter("@Skip", model.page * model.count));
            param.Add(new SqlParameter("@Take", model.count));

            countQuery += " ) AS A ";

            using (var db = new KiaGalleryContext())
            {
                var total  = db.Database.SqlQuery <int>(countQuery, paramCount.ToArray()).First();
                var result = db.Database.SqlQuery <OrderQueryViewModel>(query, param.ToArray()).ToList();
                result.ForEach(x =>
                {
                    x.persianDate = DateUtility.GetPersianDate(x.createDate);
                });
                var response = new Response()
                {
                    status = 200,
                    data   = new
                    {
                        list      = result,
                        pageCount = Math.Ceiling((double)total / model.count),
                        count     = total,
                        page      = model.page + 1,
                    }
                };
                return(response);
            }
        }
Beispiel #27
0
        public JsonResult Save(CouponViewModel model)
        {
            try
            {
                if (model.usableCount <= 0)
                {
                    return(Error("تعداد قابل استفاده باید بیشتر از 1 باشد."));
                }

                if (model.typeId == CouponType.Percentage.Id && model.value > 100)
                {
                    return(Error("برای مقدار کد تخفیف از نوع درصد، نمی توان مقدار را بیشتر از 100 وارد کرد."));
                }

                var currentUser = GetAuthenticatedUser();
                if (model.id != null && model.id > 0)
                {
                    var entity = _context.Coupon.Single(x => x.StatusId != CouponStatus.Deleted.Id && x.Id == model.id);

                    DateTime?fromDate = null;
                    if (!string.IsNullOrEmpty(model.fromDatePersian))
                    {
                        fromDate = DateUtility.GetDateTime(model.fromDatePersian);
                    }

                    DateTime?toDate = null;
                    if (!string.IsNullOrEmpty(model.toDatePersian))
                    {
                        toDate = DateUtility.GetDateTime(model.toDatePersian);
                    }

                    entity.Value        = model.value;
                    entity.UsableCount  = model.usableCount;
                    entity.UserId       = model.userId;
                    entity.FromDate     = fromDate;
                    entity.ToDate       = toDate;
                    entity.StatusId     = model.statusId;
                    entity.ModifyUserId = currentUser.id;
                    entity.ModifyDate   = GetDatetime();
                    entity.ModifyIp     = GetCurrentIp();

                    _context.SaveChanges();

                    return(Success("اطلاعات کد تخفیف با موفقیت ویرایش شد."));
                }
                else
                {
                    if (model.codeCount < 5)
                    {
                        return(Error("حداقل تعداد برای ساخت کد تخفیف 5 کاراکتر است."));
                    }

                    if (model.count <= 0)
                    {
                        return(Error("تعداد بایست حداقل 1 و یا بیشتر باشد."));
                    }

                    DateTime?fromDate = null;
                    if (!string.IsNullOrEmpty(model.fromDatePersian))
                    {
                        fromDate = DateUtility.GetDateTime(model.fromDatePersian);
                    }

                    DateTime?toDate = null;
                    if (!string.IsNullOrEmpty(model.toDatePersian))
                    {
                        toDate = DateUtility.GetDateTime(model.toDatePersian);
                    }

                    if (fromDate != null && toDate != null && fromDate >= toDate)
                    {
                        return(Error("تاریخ شروع و انقضای کارت تخفیف نمی تواند برابر باشد."));
                    }

                    if (toDate != null && toDate <= DateTime.Now)
                    {
                        return(Error("پایان تاریخ انقضای کارت تخفیف می بایست از امروز بیشتر باشد."));
                    }

                    int group    = 0;
                    var lastItem = _context.Coupon.OrderByDescending(x => x.Id).FirstOrDefault();
                    if (lastItem != null)
                    {
                        group = lastItem.Group + 1;
                    }
                    else
                    {
                        group = 1;
                    }

                    List <string> codeList = new List <string>();
                    for (int i = 1; i <= model.count; i++)
                    {
                        string code = string.Empty;
                        while (true)
                        {
                            code = StringUtility.RandomString(model.codeCount);
                            Coupon coupon = _context.Coupon.SingleOrDefault(x => x.Code == code);
                            if (coupon == null && codeList.Count(x => x == code) == 0)
                            {
                                break;
                            }
                        }

                        var entity = new Coupon()
                        {
                            TypeId       = model.typeId,
                            Group        = group,
                            Code         = model.prefix + code,
                            Value        = model.value,
                            UsableCount  = model.usableCount,
                            UserId       = model.userId,
                            FromDate     = fromDate,
                            ToDate       = toDate,
                            StatusId     = model.statusId,
                            CreateUserId = currentUser.id,
                            ModifyUserId = currentUser.id,
                            CreateDate   = GetDatetime(),
                            ModifyDate   = GetDatetime(),
                            CreateIp     = GetCurrentIp(),
                            ModifyIp     = GetCurrentIp()
                        };

                        _context.Coupon.Add(entity);
                    }
                    _context.SaveChanges();

                    return(Success("کد تخفیف با موفقیت ایجاد شد."));
                }
            }
            catch (Exception ex)
            {
                return(ServerError(ex));
            }
        }
        public JsonResult ReserveCard(LoyalityCardReserveViewModel model)
        {
            Response response;
            var      currentUser = GetAuthenticatedUser();
            var      birthDate   = DateUtility.GetDateTime(model.persianBirthDate);
            var      mariageDate = DateUtility.GetDateTime(model.persianMariageDate);

            try
            {
                string message = string.Empty;
                using (var db = new KiaGalleryContext())
                {
                    var card     = db.LoyalityCard.Where(x => x.Code == model.code).SingleOrDefault();
                    var customer = db.CustomerLoyality.Where(x => x.PhoneNumber == model.phoneNumber).SingleOrDefault();
                    if (customer == null)
                    {
                        var entity = new CustomerLoyality
                        {
                            LoyalityCardId = card.Id,
                            FirstName      = model.firstName,
                            LastName       = model.lastName,
                            PhoneNumber    = model.phoneNumber,
                            BirthDate      = DateUtility.GetDateTime(model.birthDate),
                            MariageDate    = DateUtility.GetDateTime(model.mariageDate),
                            Date           = DateTime.Now,
                            ModifyUserId   = currentUser.Id,
                            CreateUserId   = currentUser.Id,
                            ModifyDate     = DateTime.Now,
                            CreateDate     = DateTime.Now,
                            Ip             = Request.UserHostAddress,
                        };
                        card.CustomerList.Add(entity);
                    }
                    else
                    {
                        customer.LoyalityCardId = card.Id;
                        customer.MariageDate    = DateUtility.GetDateTime(model.mariageDate);
                        customer.BirthDate      = DateUtility.GetDateTime(model.birthDate);
                        customer.ModifyUserId   = currentUser.Id;
                        customer.ModifyDate     = DateTime.Now;
                        customer.Date           = DateTime.Now;
                    }
                    card.CardStatus = LoyalityCardStatus.Reserved;
                    var log = new LoyalityCardLog()
                    {
                        LoyalityCardId = card.Id,
                        CardStatus     = LoyalityCardStatus.Reserved,
                        CreateUserId   = currentUser.Id,
                        CreateDate     = DateTime.Now,
                        Ip             = Request.UserHostAddress
                    };
                    db.LoyalityCardLog.Add(log);
                    db.SaveChanges();
                    response = new Response()
                    {
                        status  = 200,
                        message = "اطلاعات با موفقیت ثبت شد."
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Beispiel #29
0
        public JsonResult GetChats(string fromDate, string toDate, bool unknown)
        {
            Response response;

            try
            {
                DateTime?From = DateUtility.GetDateTime(fromDate);
                DateTime?To   = DateUtility.GetDateTime(toDate);
                if (To != null)
                {
                    To = To.GetValueOrDefault().AddDays(1);
                }

                using (var db = new KiaGalleryContext())
                {
                    var query = db.BotMessage.Select(x => x);
                    if (unknown)
                    {
                        query = query.Where(x => x.Unknown == true);
                    }

                    if (From != null)
                    {
                        query = query.Where(x => x.CreatedDate >= From);
                    }

                    if (To != null)
                    {
                        query = query.Where(x => x.CreatedDate <= To);
                    }

                    query = query.OrderByDescending(x => x.Id);
                    List <ResultUserList> result = query.Select(x => new ResultUserList()
                    {
                        chatId      = x.ChatId,
                        firstName   = db.UserData.FirstOrDefault(y => y.ChatId == x.ChatId).FirstName,
                        lastName    = db.UserData.FirstOrDefault(y => y.ChatId == x.ChatId).LastName,
                        username    = db.UserData.FirstOrDefault(y => y.ChatId == x.ChatId).Username,
                        lastMessage = x.Text
                    }).ToList();

                    List <ResultUserList> finalResult = new List <ResultUserList>();
                    for (int i = 0; i < result.Count; i++)
                    {
                        try
                        {
                            var item = result[i];
                            var res  = finalResult.FirstOrDefault(x => x.chatId == item.chatId);
                            if (res == null)
                            {
                                finalResult.Add(item);
                            }
                        }
                        catch (Exception) { }
                    }


                    //group user by new { ChatId = user.ChatId, FirstName = user.FirstName, LastName = user.LastName, Username = user.Username } into resultUser
                    //select new
                    //{
                    //    chatId = resultUser.Key.ChatId,
                    //    firstName = resultUser.Key.FirstName,
                    //    lastName = resultUser.Key.LastName,
                    //    userName = resultUser.Key.Username,
                    //    lastMessage = db.Message.OrderByDescending(x => x.Id).FirstOrDefault(x => x.ChatId == resultUser.Key.ChatId && x.Unknown == true).Text
                    //}).ToList();

                    response = new Response()
                    {
                        status = 200,
                        data   = new
                        {
                            list = finalResult
                        }
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
        public JsonResult SaveDailyInventory(DailyInventoryDetailViewModel model)
        {
            Response response;

            try
            {
                int id = 0;
                using (var db = new KiaGalleryContext())
                {
                    string message = string.Empty;
                    var    userId  = GetAuthenticatedUserId();
                    if (model.id != null && model.id > 0)
                    {
                        id = model.id.Value;
                        var inventory = db.InventoryDetail.Single(x => x.Id == model.id);
                        inventory.Id = model.id.Value;
                        inventory.CategoryInventoryReportMemberId = model.categoryInventoryReportMemberId;
                        inventory.Order        = model.order;
                        inventory.Title        = model.title;
                        inventory.Weight       = model.weight;
                        inventory.Count        = model.count;
                        inventory.Date         = DateUtility.GetDateTime(model.persianDate);
                        inventory.ModifyUserId = userId;
                        inventory.ModifyDate   = DateTime.Now;
                        inventory.Ip           = Request.UserHostAddress;

                        message = "دسته بندی با موفقیت ویرایش شد.";

                        db.SaveChanges();
                    }
                    else
                    {
                        var entity = new InventoryDetail()
                        {
                            CategoryInventoryReportMemberId = model.categoryInventoryReportMemberId,
                            Order        = model.order,
                            Title        = model.title,
                            Weight       = model.weight,
                            Count        = model.count,
                            Date         = DateUtility.GetDateTime(model.persianDate),
                            CreateUserId = userId,
                            ModifyUserId = userId,
                            CreateDate   = DateTime.Now,
                            ModifyDate   = DateTime.Now,
                        };
                        db.InventoryDetail.Add(entity);
                        message = "دسته بندی با موفقیت ایجاد شد.";
                        db.SaveChanges();
                        id = entity.Id;
                    }
                }
                response = new Response()
                {
                    data = new InventoryDetail
                    {
                        Id = id
                    },
                    status  = 200,
                    message = "عنوان جدید ثبت شد",
                };
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }