Example #1
0
        public JsonResult Load(int id)
        {
            Response response;

            try
            {
                using (var db = new KiaGalleryContext())
                {
                    var item = db.FoodRegistration.Where(x => x.Id == id).SingleOrDefault();
                    var data = new FoodCensusViewModel()
                    {
                        id           = item.Id,
                        foodCensusId = item.FoodCensusId,
                        appertizer   = item.Appertizer,
                        typeFood     = item.FoodWithoutRice,
                        food         = item.Food,
                        date         = DateUtility.GetPersianDate(item.Date)
                    };
                    response = new Response()
                    {
                        status = 200,
                        data   = data,
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }
Example #4
0
        public ActionResult PrintReport(string model)
        {
            string persianDayName         = string.Empty;
            FoodCensusViewModel modelData = JsonConvert.DeserializeObject <FoodCensusViewModel>(model);
            var date = modelData.date;

            var foreignDate = DateUtility.GetDateTime(date);

            var foreignDayOfWeek = foreignDate.Value.DayOfWeek;

            switch (foreignDayOfWeek)
            {
            case DayOfWeek.Saturday:
                persianDayName = "شنبه";
                break;

            case DayOfWeek.Sunday:
                persianDayName = "یکشنبه";
                break;

            case DayOfWeek.Monday:
                persianDayName = "دوشنبه";
                break;

            case DayOfWeek.Tuesday:
                persianDayName = "سه شنبه";
                break;

            case DayOfWeek.Wednesday:
                persianDayName = "چهارشنبه";
                break;

            case DayOfWeek.Thursday:
                persianDayName = "پنج شنبه";
                break;

            default:
                persianDayName = "چنین روزی موجود نیست";
                break;
            }
            using (var db = new KiaGalleryContext())
            {
                var persianDate = DateUtility.GetDateTime(date);
                var userList    = db.User.Where(x => x.RoleList.Any(y => y.Title == "foodRegistration") && x.Active == true).ToList();
                var foodCensus  = db.FoodRegistration.Where(x => DbFunctions.TruncateTime(x.Date) == DbFunctions.TruncateTime(persianDate)).Select(x => new
                {
                    userId = x.UserId,
                    x.Appertizer,
                    food = x.Food,
                    x.FoodWithoutRice,
                }).ToList();

                List <StiReport>           reports   = new List <StiReport>();
                List <FoodCensusViewModel> dataPrint = new List <FoodCensusViewModel>();
                foreach (var item in userList)
                {
                    var itemPrint = new FoodCensusViewModel()
                    {
                        userName        = item.FullName,
                        appertizer      = foodCensus.FirstOrDefault(x => x.userId == item.Id)?.Appertizer ?? false,
                        food            = foodCensus.FirstOrDefault(x => x.userId == item.Id)?.food ?? false,
                        foodWithoutRice = foodCensus.FirstOrDefault(x => x.userId == item.Id)?.FoodWithoutRice ?? false,
                    };
                    dataPrint.Add(itemPrint);
                }
                DataSet   dataset   = new DataSet("DataSource");
                DataTable dataTable = new DataTable();
                dataTable.Columns.Add("Row");
                dataTable.Columns.Add("User");
                dataTable.Columns.Add("Appetizer");
                dataTable.Columns.Add("FoodStatus");
                dataTable.Columns.Add("FoodWithoutRice");
                dataTable.Columns.Add("Row2");
                dataTable.Columns.Add("User2");
                dataTable.Columns.Add("Appetizer2");
                dataTable.Columns.Add("FoodStatus2");
                dataTable.Columns.Add("FoodWithoutRice2");

                var rowNumber = 1;
                for (int j = 0; j < dataPrint.Count; j = j + 2)
                {
                    DataRow row = dataTable.NewRow();
                    row["Row"]             = j + 1;
                    row["" + "User"]       = dataPrint[j].userName;
                    row["Appetizer"]       = dataPrint[j].appertizer;
                    row["FoodStatus"]      = dataPrint[j].food;
                    row["FoodWithoutRice"] = dataPrint[j].foodWithoutRice;
                    if (dataPrint.Count > j + 1)
                    {
                        row["Row2"]             = j + 2;
                        row["User2"]            = dataPrint[j + 1].userName;
                        row["Appetizer2"]       = dataPrint[j + 1].appertizer;
                        row["FoodStatus2"]      = dataPrint[j + 1].food;
                        row["FoodWithoutRice2"] = dataPrint[j + 1].foodWithoutRice;
                    }
                    rowNumber++;
                    dataTable.Rows.Add(row);
                }

                dataset.Tables.Add(dataTable);
                StiReport report = new StiReport();
                report.Load(Server.MapPath("~/Report/FoodCensusReport/FoodCensusReport.mrt"));
                var currentUser          = GetAuthenticatedUser();
                var foodName             = db.FoodCensus.Where(x => x.Date == persianDate).FirstOrDefault();
                var foodCount            = db.FoodRegistration.Where(x => x.Date == persianDate && x.Food == true).Count();
                var appetizerCount       = db.FoodRegistration.Where(x => x.Date == persianDate && x.Appertizer == true).Count();
                var foodWithoutRiceCount = db.FoodRegistration.Where(x => x.Date == persianDate && x.FoodWithoutRice == true).Count();
                report.Dictionary.Variables["Date"].Value                 = date.ToPersianNumber();
                report.Dictionary.Variables["FoodName"].Value             = foodName.FoodName;
                report.Dictionary.Variables["FoodCount"].Value            = foodCount.ToString();
                report.Dictionary.Variables["AppetizerCount"].Value       = appetizerCount.ToString();
                report.Dictionary.Variables["FoodWithoutRiceCount"].Value = foodWithoutRiceCount.ToString();
                report.Dictionary.Variables["Day"].Value = persianDayName;
                report.Dictionary.Databases.Clear();
                report.ScriptLanguage = StiReportLanguageType.CSharp;
                report.RegData("DataSource", dataset.Tables[0].DefaultView);
                report.Dictionary.Synchronize();
                report.Compile();
                report.Render(false);
                MemoryStream         stream   = new MemoryStream();
                StiPdfExportSettings settings = new StiPdfExportSettings();
                StiPdfExportService  service  = new StiPdfExportService();
                service.ExportPdf(report, stream, settings);
                this.Response.Buffer = true;
                this.Response.ClearContent();
                this.Response.ClearHeaders();
                this.Response.ContentType = "application/pdf";
                this.Response.AddHeader("Content-Disposition", "attachment; filename=\"برگه گزارش ثبت غذا-" + DateUtility.GetPersianDate(DateTime.Now) + ".pdf\"");
                this.Response.ContentEncoding = Encoding.UTF8;
                this.Response.AddHeader("Content-Length", stream.Length.ToString());
                this.Response.BinaryWrite(stream.ToArray());
                this.Response.End();
                return(new FileStreamResult(stream, "application/pdf"));
            }
        }