コード例 #1
0
        // GET: Citas/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            citas citas = await db.citas.FindAsync(id);

            if (citas == null)
            {
                return(HttpNotFound());
            }
            clientes cl = db.clientes.Where(m => m.id_alt == citas.cliente_id).FirstOrDefault();

            ViewBag.clientId   = cl.id_alt;
            ViewBag.clientCode = cl.codigo;
            ViewBag.clientName = cl.nombres + " " + cl.apellidos;

            DateTime          today = CurrentDate.getNow();
            programa_clientes prgCl = db.programa_clientes.Where(m => m.cliente_id == cl.id_alt && m.fecha_inicio <= today && m.fecha_fin >= today).FirstOrDefault();

            ViewBag.programId   = prgCl.programa.id;
            ViewBag.programName = prgCl.programa.nombre;
            ViewBag.programInit = prgCl.fecha_inicio.ToShortDateString();
            ViewBag.programEnd  = prgCl.fecha_fin.ToShortDateString();


            ViewBag.nutricionista_id = new SelectList(db.nutricionistas, "usuario_id", "usuario_id", citas.nutricionista_id);
            return(View(citas));
        }
コード例 #2
0
        public ActionResult Create([Bind(Include = "id,programa_id,cliente_id,horario_id,fecha_inicio,fecha_fin,created_at,updated_at,deleted_at")] programa_clientes programa_clientes, int clientId)
        {
            programa_clientes prg_cl = new programa_clientes();

            prg_cl.cliente_id   = clientId;
            prg_cl.horario_id   = programa_clientes.horario_id;
            prg_cl.programa_id  = programa_clientes.programa_id;
            prg_cl.fecha_inicio = programa_clientes.fecha_inicio;
            prg_cl.fecha_fin    = programa_clientes.fecha_fin;
            prg_cl.created_at   = DateTimeOffset.Now.DateTime;
            prg_cl.updated_at   = DateTimeOffset.Now.DateTime;

            db.programa_clientes.Add(prg_cl);

            try
            {
                db.SaveChanges();

                return(RedirectToAction("Create", "VentaUsuarios", new { clientId = clientId, feInit = prg_cl.fecha_inicio }));
            }
            catch (Exception ex)
            {
                ErrorMessage = ex.Message;

                return(View(clientId));
            }
        }
コード例 #3
0
        public ActionResult M_GetClientDiets(string c)
        {
            clientes cl      = db.clientes.Where(m => m.codigo == c).FirstOrDefault();
            Mobile   oMobile = new Mobile();
            int      today   = (int)CurrentDate.getNow().DayOfWeek;

            if (today == 0)
            {
                today = 7;
            }

            if (cl != null)
            {
                programa_clientes clientPrg = db.programa_clientes
                                              .Where(m => m.cliente_id == cl.id_alt && m.fecha_fin >= DateTimeOffset.Now)
                                              .OrderBy(m => m.fecha_fin)
                                              .FirstOrDefault();
                List <DailyDiet> clientDiets = db.clientes_dietas
                                               .Where(m => m.programa_clientes_id == clientPrg.id)
                                               .Include(m => m.dieta_diaria)
                                               .Select(m => m.dieta_diaria)
                                               .FirstOrDefault();

                if (clientDiets != null && clientDiets.Count > 0)
                {
                    Dictionary <string, object> oDict = new Dictionary <string, object>();
                    int dietCount = 0;
                    foreach (DailyDiet d in clientDiets)
                    {
                        if (d.dia == today)
                        {
                            Dictionary <string, object> dict = new Dictionary <string, object>();
                            dict.Add("day", d.dia);
                            dict.Add("food_type", d.tipo_comida);
                            dict.Add("text", d.texto);
                            dict.Add("option", d.opcion);

                            oDict.Add("E_" + dietCount.ToString(), dict);

                            dietCount++;
                        }
                    }
                    return(Json(
                               oMobile.GetDictForJSON(
                                   message: "",
                                   data: oDict,
                                   code: MobileResponse.Success),
                               JsonRequestBehavior.AllowGet));
                }
            }

            return(Json(
                       oMobile.GetDictForJSON(
                           message: "Error en la solicitud",
                           data: null,
                           code: MobileResponse.Error),
                       JsonRequestBehavior.AllowGet));
        }
コード例 #4
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            programa_clientes programa_clientes = await db.programa_clientes.FindAsync(id);

            db.programa_clientes.Remove(programa_clientes);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
コード例 #5
0
        public async Task <ActionResult> M_GetWeeklyEvaluations(string c)
        {
            Mobile oMobile = new Mobile();
            int    clId    = await db.clientes.Where(m => m.codigo == c).Select(m => m.id_alt).FirstOrDefaultAsync();

            DateTime today = CurrentDate.getNow();

            if (clId > 0)
            {
                programa_clientes currClientProgram = db.programa_clientes.Where(m => m.cliente_id == clId && m.fecha_fin >= today).OrderBy(m => m.fecha_fin).FirstOrDefault();

                if (currClientProgram != null)
                {
                    List <pesos_medidas> pymLst = await db.pesos_medidas.Where(m => m.clienteId == clId && m.created_at >= currClientProgram.fecha_inicio).OrderBy(m => m.created_at).ToListAsync();

                    if (pymLst.Count > 0)
                    {
                        Dictionary <string, object> oDict = new Dictionary <string, object>();
                        for (int i = 0; i < pymLst.Count; i++)
                        {
                            pesos_medidas pym          = new pesos_medidas();
                            Medidas       measurements = new Medidas();
                            pym.medidas = measurements;

                            pym.medidas.cuello      = pymLst[i].medidas.cuello;
                            pym.medidas.biceps      = pymLst[i].medidas.biceps;
                            pym.medidas.gluteos     = pymLst[i].medidas.gluteos;
                            pym.medidas.hombros     = pymLst[i].medidas.hombros;
                            pym.medidas.muneca      = pymLst[i].medidas.muneca;
                            pym.medidas.muslo       = pymLst[i].medidas.muslo;
                            pym.medidas.torax       = pymLst[i].medidas.torax;
                            pym.medidas.cintura     = pymLst[i].medidas.cintura;
                            pym.medidas.pantorrilla = pymLst[i].medidas.pantorrilla;
                            pym.peso_1 = pymLst[i].peso_1;
                            pym.peso_2 = pymLst[i].peso_2;
                            pym.peso_3 = pymLst[i].peso_3;

                            oDict.Add("E_" + i.ToString(), pym);
                        }

                        return(Json(
                                   oMobile.GetDictForJSON(
                                       message: oDict.Count.ToString() + " registrados para cliente.",
                                       data: oDict,
                                       code: MobileResponse.Success),
                                   JsonRequestBehavior.AllowGet));
                    }
                }
            }

            return(Json(
                       oMobile.GetDictForJSON(
                           message: "Error de validación de cliente.",
                           data: null,
                           code: MobileResponse.Error),
                       JsonRequestBehavior.AllowGet));
        }
コード例 #6
0
        public ActionResult M_LogInClient(string c, int k)
        {
            Mobile oMobile = new Mobile();

            clientes cl          = db.clientes.Where(m => m.codigo == c).Include(m => m.nutricionistas.usuarios).FirstOrDefault();
            int      daysInMonth = DateTime.DaysInMonth(CurrentDate.getNow().Year, CurrentDate.getNow().Month);

            DateTime firstDay = new DateTime(CurrentDate.getNow().Year, CurrentDate.getNow().Month, 1);
            DateTime lastDay  = new DateTime(CurrentDate.getNow().Year, CurrentDate.getNow().Month, daysInMonth);

            if (cl != null && k == cl.password)
            {
                DateTime          today     = CurrentDate.getNow();
                programa_clientes clientPrg = db.programa_clientes.Where(m => m.cliente_id == cl.id_alt && m.fecha_fin >= today).Include(m => m.programa).OrderBy(m => m.fecha_fin).FirstOrDefault();
                venta_usuarios    clientSls = db.venta_usuarios.Where(m => m.cliente_id == cl.id_alt && m.fecha_fin >= today).OrderBy(m => m.fecha_fin).FirstOrDefault();

                if (clientPrg == null || clientSls == null)
                {
                    return(Json(
                               oMobile.GetDictForJSON(
                                   message: "Cliente no cuenta con programa asignado o boleta vigente en el sistema.",
                                   data: null,
                                   code: MobileResponse.Success),
                               JsonRequestBehavior.AllowGet));
                }

                citas clientAppointments = db.citas.Where(m => m.cliente_id == cl.id_alt && m.fecha > today).OrderBy(m => m.fecha).FirstOrDefault();

                Dictionary <string, object> oDict = new Dictionary <string, object>();
                oDict.Add(key: "name", value: cl.nombres);
                oDict.Add(key: "last_name", value: cl.apellidos);
                oDict.Add(key: "code", value: cl.id_alt);
                oDict.Add(key: "img", value: Convert.ToBase64String(cl.foto));
                oDict.Add(key: "curr_program", value: clientPrg.programa.nombre);
                oDict.Add(key: "curr_nutritionist", value: cl.nutricionistas.usuarios.nombres ?? null);
                oDict.Add(key: "curr_ticket", value: clientSls.numero_boleta);
                oDict.Add(key: "upcoming_nut_appointment_date", value: clientAppointments != null ? clientAppointments.fecha.ToShortDateString() : null);
                oDict.Add(key: "upcoming_membership_renewal_date", value: clientSls != null ? clientSls.fecha_fin.ToShortDateString() : null);


                return(Json(
                           oMobile.GetDictForJSON(
                               message: "Inicio de sesión correcto.",
                               data: oDict,
                               code: MobileResponse.Success),
                           JsonRequestBehavior.AllowGet));
            }

            return(Json(
                       oMobile.GetDictForJSON(
                           message: "Error de inicio de sesión.",
                           data: null,
                           code: MobileResponse.Error),
                       JsonRequestBehavior.AllowGet));
        }
コード例 #7
0
        public async Task <ActionResult> Edit([Bind(Include = "id,cliente_id,nutricionista_id,programa_id,fecha,hora,tipo,created_at,updated_at,deleted_at")] citas citas)
        {
            if (Request.Files[0].ContentLength > 0)
            {
                HttpPostedFileBase file = Request.Files[0] as HttpPostedFileBase;

                Image          img     = Image.FromStream(file.InputStream, true, true);
                ImageCodecInfo jpgInfo = ImageCodecInfo.GetImageEncoders().Where(codecInfo => codecInfo.MimeType == "image/jpeg").First();

                using (Stream s = new MemoryStream())
                {
                    using (EncoderParameters encParams = new EncoderParameters(1))
                    {
                        encParams.Param[0] = new EncoderParameter(Encoder.Compression, (long)EncoderValue.CompressionLZW);
                        //quality should be in the range [0..100]
                        img.Save(s, jpgInfo, encParams);
                    }

                    byte[] b = new byte[s.Length];
                    s.Position = 0;
                    s.Read(b, 0, b.Length);

                    citas.foto_avance = Convert.ToBase64String(b);
                }
            }

            if (ModelState.IsValid)
            {
                citas.updated_at      = CurrentDate.getNow();
                db.Entry(citas).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }


            clientes cl = db.clientes.Where(m => m.id_alt == citas.cliente_id).FirstOrDefault();

            ViewBag.clientId   = cl.id_alt;
            ViewBag.clientCode = cl.codigo;
            ViewBag.clientName = cl.nombres + " " + cl.apellidos;

            DateTime          today = CurrentDate.getNow();
            programa_clientes prgCl = db.programa_clientes.Where(m => m.cliente_id == cl.id_alt && m.fecha_inicio <= today && m.fecha_fin >= today).FirstOrDefault();

            ViewBag.programId   = prgCl.programa.id;
            ViewBag.programName = prgCl.programa.nombre;
            ViewBag.programInit = prgCl.fecha_inicio.ToShortDateString();
            ViewBag.programEnd  = prgCl.fecha_fin.ToShortDateString();

            return(View(citas));
        }
コード例 #8
0
        // GET: ProgramaClientes/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            programa_clientes programa_clientes = await db.programa_clientes.FindAsync(id);

            if (programa_clientes == null)
            {
                return(HttpNotFound());
            }
            return(View(programa_clientes));
        }
コード例 #9
0
        public async Task <ActionResult> Edit([Bind(Include = "id,programa_id,cliente_id,horario_id,fecha_inicio,fecha_fin,created_at,updated_at,deleted_at")] programa_clientes programa_clientes)
        {
            if (ModelState.IsValid)
            {
                db.Entry(programa_clientes).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.cliente_id  = new SelectList(db.clientes, "id_alt", "codigo", programa_clientes.cliente_id);
            ViewBag.horario_id  = new SelectList(db.horarios, "id", "id", programa_clientes.horario_id);
            ViewBag.programa_id = new SelectList(db.programas, "id", "nombre", programa_clientes.programa_id);
            return(View(programa_clientes));
        }
コード例 #10
0
        // GET: ProgramaClientes/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            programa_clientes programa_clientes = await db.programa_clientes.FindAsync(id);

            if (programa_clientes == null)
            {
                return(HttpNotFound());
            }
            ViewBag.cliente_id  = new SelectList(db.clientes, "id_alt", "codigo", programa_clientes.cliente_id);
            ViewBag.horario_id  = new SelectList(db.horarios, "id", "id", programa_clientes.horario_id);
            ViewBag.programa_id = new SelectList(db.programas, "id", "nombre", programa_clientes.programa_id);
            return(View(programa_clientes));
        }
コード例 #11
0
        // GET: Citas/Create
        public ActionResult Create(int clienteId)
        {
            clientes          cl    = db.clientes.Where(m => m.id_alt == clienteId).FirstOrDefault();
            DateTime          today = CurrentDate.getNow();
            programa_clientes prgCl = db.programa_clientes.Where(m => m.cliente_id == cl.id_alt && m.fecha_inicio <= today && m.fecha_fin >= today).FirstOrDefault();

            ViewBag.clientId   = cl.id_alt;
            ViewBag.clientCode = cl.codigo;
            ViewBag.clientName = cl.nombres + " " + cl.apellidos;

            ViewBag.programId   = prgCl.programa.id;
            ViewBag.programName = prgCl.programa.nombre;
            ViewBag.programInit = prgCl.fecha_inicio.ToShortDateString();
            ViewBag.programEnd  = prgCl.fecha_fin.ToShortDateString();

            ViewBag.nutricionista_id = new SelectList(db.nutricionistas, "usuario_id", "usuarios.nombres");
            return(View());
        }
コード例 #12
0
        public async Task <ActionResult> Global(int id)
        {
            int daysInMonth = DateTime.DaysInMonth(CurrentDate.getNow().Year, CurrentDate.getNow().Month);

            DateTime today    = CurrentDate.getNow();
            DateTime firstDay = new DateTime(today.Year, today.Month, 1);
            DateTime lastDay  = new DateTime(today.Year, today.Month, daysInMonth);

            // Info General
            clientes client = await db.clientes
                              .Where(m => m.id_alt == id)
                              .Include(m => m.nutricionistas.usuarios)
                              .FirstOrDefaultAsync();

            // Info Programa
            programa_clientes program = await db.programa_clientes
                                        .Where(m => m.cliente_id == client.id_alt && m.fecha_inicio <= today && m.fecha_fin >= today)
                                        .Include(m => m.programa)
                                        .Include(m => m.horario.sala.local)
                                        .OrderBy(m => m.fecha_fin)
                                        .FirstOrDefaultAsync();

            ViewBag.ProgramId = program != null?program.id.ToString() : "";

            ViewBag.ProgramName     = program != null ? program.programa.nombre : "";
            ViewBag.ProgramInitDate = program != null?program.fecha_inicio.ToShortDateString() : "";

            ViewBag.ProgramEndDate = program != null?program.fecha_fin.ToShortDateString() : "";

            ViewBag.ProgramSchedule = program != null?program.horario.hora.ToString() : "";

            ViewBag.Gym = program != null ? program.horario.sala.local.nombre : "";

            // Info Notas del cliente
            List <clientes_notas> notes = await db.clientes_notas.Where(n => n.idCliente == id).OrderByDescending(n => n.created_at).Take(15).ToListAsync();

            ViewBag.ClientNotes = notes;

            //// Info Calendario.
            //List<pesos_medidas> clientPyM = await db.pesos_medidas.Where(m => m.clienteId == id && m.created_at >= firstDay && m.created_at <= lastDay).ToListAsync();
            //List<clientes_asistencia> clientAssistance = await db.clientes_asistencia.Where(m => m.clienteId == id && m.fecha >= firstDay && m.fecha <= lastDay).ToListAsync();
            //List<clientes_congelamientos> clientFreezing = await db.clientes_congelamientos.Where(m => m.clienteId == id && m.fecha_desde >= firstDay).ToListAsync();
            //List<citas> clientConsults = await db.citas.Where(m => m.cliente_id == id && m.fecha >= firstDay && m.fecha <= lastDay).ToListAsync();

            // Info Nutricion.

            ViewBag.AssignedNutritionist = client.nutricionistas.usuarios.nombres + " " + client.nutricionistas.usuarios.apellidos;
            if (program != null)
            {
                // Info Ficha Medica
                fichas_medicas medicalHistory = await db.fichas_medicas.Where(m => m.programa_id == program.id).Include(m => m.cardio).FirstOrDefaultAsync();

                ViewBag.MedicalId = "No ha sido creada.";
                ViewBag.Cardio    = "No se han ingresado datos.";
                if (medicalHistory != null)
                {
                    int clientCurrMedicalHistoryIdCode = 10000000 + medicalHistory.id;
                    ViewBag.MedicalId = clientCurrMedicalHistoryIdCode.ToString("FS#");

                    if (medicalHistory.cardio != null)
                    {
                        CardioInfo lastCardioResults = medicalHistory.cardio.OrderByDescending(m => m.fecha).FirstOrDefault();
                        if (lastCardioResults.cardiologia_aprobacion == CardioSuittable.Apto)
                        {
                            ViewBag.Cardio = CardioSuittable.Apto.ToString();
                        }
                        else
                        {
                            ViewBag.Cardio = CardioSuittable.NoApto.ToString();
                        }
                    }
                }

                // Info Dieta
                clientes_dietas clientDiet = await db.clientes_dietas.Where(m => m.programa_clientes_id == program.id).OrderByDescending(m => m.created_at).FirstOrDefaultAsync();

                if (clientDiet != null)
                {
                    int dietCode = 10000000 + clientDiet.id;
                    ViewBag.DietCode = dietCode.ToString("D#");
                }
            }

            // Info Ventas

            venta_usuarios usrSales = await db.venta_usuarios
                                      .Where(m => m.cliente_id == client.id_alt)
                                      .OrderByDescending(m => m.created_at)
                                      .FirstOrDefaultAsync();

            if (usrSales != null)
            {
                usuarios usr = await db.vendedores.Where(v => v.usuario_id == usrSales.vendedor_id).Include(v => v.usuarios).Select(v => v.usuarios).FirstOrDefaultAsync();

                ViewBag.Seller      = usr.nombres + " " + usr.apellidos;
                ViewBag.LastTicket  = usrSales.numero_boleta;
                ViewBag.LastRenewal = usrSales.fecha_inicio.ToShortDateString();

                semanas_precios weeks = db.semanas_precios.Where(s => s.id == usrSales.semanas_precio_id).FirstOrDefault();

                int boughtWeeks = weeks.cantidad_semanas;
                ViewBag.BoughtWeeks = boughtWeeks.ToString();
                int usedWeeks = await GetUsedWeeks(ClientId : client.id_alt, LastSaleId : usrSales.id);

                ViewBag.UsedWeeks    = usedWeeks;
                ViewBag.PendingWeeks = boughtWeeks - usedWeeks;
            }

            //ViewBag.venta_usuario = db.venta_usuarios.Where(vu => vu.cliente_id == id).FirstOrDefault();
            //ViewBag.programa_cliente = db.programa_clientes.Where(pc => pc.cliente_id == id).FirstOrDefault();

            //ViewBag.calPyM = clientPyM;
            //ViewBag.calAsist = clientAssistance;
            //ViewBag.calFrz = clientFreezing;
            //ViewBag.calCitas = clientConsults;
            //

            //ViewBag.cardioApt = cardioApt;
            //ViewBag.foto = Convert.ToBase64String(cliente.foto);

            return(View(client));
        }
コード例 #13
0
        // GET: FichasMedicas/Create
        public ActionResult Create(int clienteId)
        {
            clientes          cl    = db.clientes.Where(c => c.id_alt == clienteId).FirstOrDefault();
            DateTime          today = CurrentDate.getNow();
            programa_clientes prgCl = db.programa_clientes.Where(m => m.cliente_id == cl.id_alt && m.fecha_inicio <= today && m.fecha_fin >= today).FirstOrDefault();

            fichas_medicas fm = db.fichas_medicas.Where(m => m.cliente_id == cl.id_alt).Include(m => m.controles).Include(m => m.regimen_alimentacion).Include(m => m.cardio).Include(m => m.laboratorio).OrderByDescending(m => m.created_at).FirstOrDefault();

            ViewBag.currentCardioControl = null;
            if (fm != null && fm.cardio.Count > 0)
            {
                CardioInfo lastCardioInfoInserted = fm.cardio.OrderByDescending(m => m.fecha).First();

                TimeSpan dateDif = CurrentDate.getNow().Subtract(lastCardioInfoInserted.fecha);

                if (dateDif <= new TimeSpan(180, 0, 0, 0))
                {
                    ViewBag.currentCardioControl = lastCardioInfoInserted;
                }
            }

            ViewBag.currentLabControl = null;
            if (fm != null && fm.laboratorio.Count > 0)
            {
                LabResults lastLabInfoInserted = fm.laboratorio.OrderByDescending(m => m.fecha).First();

                TimeSpan dateDif = CurrentDate.getNow().Subtract(lastLabInfoInserted.fecha);

                if (dateDif <= new TimeSpan(180, 0, 0, 0))
                {
                    ViewBag.currentLabControl = lastLabInfoInserted;
                }
            }

            if (fm != null && fm.controles.Count > 0)
            {
                List <ControlesNutricionales> cn = fm.controles;
                List <string> cnRows             = new List <string>();
                foreach (ControlesNutricionales c in cn)
                {
                    string row = GetNutritionalControlString(c: c);
                    cnRows.Add(row);
                    controlsCount++;
                }
                controlsCount       = 0;
                ViewBag.controlsLst = cnRows;
            }

            if (fm != null && fm.regimen_alimentacion.Count > 0)
            {
                List <FeedingRegime> fr     = fm.regimen_alimentacion;
                List <string>        frList = new List <string>();
                foreach (FeedingRegime f in fr)
                {
                    string row = GetFoodRegimeString(f: f);
                    frList.Add(row);
                    foodRegimesCount++;
                }
                foodRegimesCount   = 0;
                ViewBag.regimenLst = frList;
            }

            ViewBag.clientId  = cl.id_alt;
            ViewBag.programId = prgCl.programa_id;

            return(View());
        }