Ejemplo n.º 1
0
        // GET: CertificadosMedicos/Edit/5
        public async Task <IActionResult> Edit(string Codigo)
        {
            var i = (ClaimsIdentity)User.Identity;

            if (i.IsAuthenticated)
            {
                var permisos = i.Claims.Where(c => c.Type == "CertificadosMedicos").Select(c => c.Value).SingleOrDefault().Split(";");
                Codigo = Encriptacion.Decrypt(Codigo);

                if (Convert.ToBoolean(permisos[2]))
                {
                    if (Codigo == null)
                    {
                        return(NotFound());
                    }


                    var cita = await _context.CitaOdontologica.Include(c => c.Paciente).Include(c => c.Personal).SingleOrDefaultAsync(f => f.Codigo == Codigo);

                    var diag = _context.Diagnostico.Include(d => d.DiagnosticoCie10).ThenInclude(d => d.Cie10).Where(d => d.CodigoCitaOdontologica == cita.Codigo).SingleOrDefault();
                    if (cita == null)
                    {
                        return(NotFound());
                    }

                    CertificadoMedicoImprimir cmi = new CertificadoMedicoImprimir();

                    cmi.CedulaPaciente = cita.Paciente.Identificacion;
                    cmi.NombrePaciente = cita.Paciente.NombreCompleto;
                    cmi.FechaCita      = cita.FechaInicio;               //new DateTime(cita.FechaInicio.Day, cita.FechaInicio.Month, cita.FechaInicio.Year);
                    cmi.HoraInicio     = cita.HoraInicio;
                    cmi.HoraFin        = cita.HoraFin;
                    List <SelectListItem> Cie10 = new SelectList(_context.Cie10.OrderBy(f => f.CodigoInterno), "Codigo", "CodigoNombre", diag.DiagnosticoCie10[0].Cie10.Codigo).ToList();
                    Cie10.Insert(0, vacio);
                    ViewData["CIE10"] = Cie10;
                    cmi.CIE10Nombre   = diag.DiagnosticoCie10[0].Cie10.CodigoInterno + " - " + diag.DiagnosticoCie10[0].Cie10.Nombre;
                    cmi.Procedimiento = "";
                    cmi.Pieza         = diag.Pieza;
                    cmi.Reposo        = false;
                    //cmi.FechaInicioReposo = Funciones.ObtenerFechaActual("SA Pacific Standard Time");
                    //	cmi.FechaFinReposo = Funciones.ObtenerFechaActual("SA Pacific Standard Time");
                    //cmi.FechaReincorporarse = Funciones.ObtenerFechaActual("SA Pacific Standard Time");
                    cmi.Fecha        = Funciones.ObtenerFechaActual("SA Pacific Standard Time");
                    cmi.NombreMedico = cita.Personal.NombreCompleto;

                    return(View(cmi));
                }
                else
                {
                    return(Redirect("../CertificadosMedicos"));
                }
            }
            else
            {
                return(Redirect("../Identity/Account/Login"));
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Edit(CertificadoMedicoImprimir cmi)
        {
            var i = (ClaimsIdentity)User.Identity;

            if (i.IsAuthenticated)
            {
                try
                {
                    if (ModelState.IsValid)
                    {
                        try
                        {
                            var plantilla = _context.PlantillaCertificadoMedico.Where(p => p.Nombre.Contains("Certificado Asistencia Reposo")).SingleOrDefault();
                            var contenido = plantilla.Descripcion;
                            var sub       = "NO";
                            if (cmi.CitasSubsecuentes)
                            {
                                sub = "SI";
                            }
                            var      rep = "NO";
                            DateTime fechaInicioReposo   = Funciones.ObtenerFechaActual("SA Pacific Standard Time");
                            DateTime fechaFinReposo      = Funciones.ObtenerFechaActual("SA Pacific Standard Time");
                            DateTime fechaReincorporarse = Funciones.ObtenerFechaActual("SA Pacific Standard Time");
                            //var Fechareincorporarse =
                            if (cmi.Reposo)
                            {
                                rep = "SI";
                                if (cmi.NumdiasReposo > 0)
                                {
                                    fechaFinReposo = Funciones.ObtenerFechaActual("SA Pacific Standard Time").AddDays(cmi.NumdiasReposo - 1);
                                }
                                fechaReincorporarse = fechaFinReposo.AddDays(1);
                            }
                            else
                            {
                                var index = contenido.IndexOf("[@ReposoInicio]");
                                contenido = contenido.Substring(0, index - 6);
                            }

                            string fir = fechaInicioReposo.ToString("dd/MM/yyyy");
                            string ffr = fechaFinReposo.ToString("dd/MM/yyyy");
                            string fr  = fechaReincorporarse.ToString("dd/MM/yyyy");

                            var final = contenido.Replace("[@FechaCita]", cmi.FechaCita.ToString("dd/MM/yyyy"))
                                        .Replace("[@Paciente]", cmi.NombrePaciente)
                                        .Replace("[@Cedula]", cmi.CedulaPaciente)
                                        .Replace("[@HoraInicio]", cmi.HoraInicio.ToString())
                                        .Replace("[@HoraFin]", cmi.HoraFin.ToString())
                                        .Replace("[@Cie10]", cmi.CIE10Nombre)
                                        .Replace("[@Pieza]", cmi.Pieza.ToString())
                                        .Replace("[@Procedimiento]", cmi.Procedimiento)
                                        .Replace("[@CitasSubsecuentes]", sub)
                                        .Replace("[@Reposo]", rep)
                                        .Replace("[@ReposoInicio]", fir)
                                        .Replace("[@ReposoFin]", ffr)
                                        .Replace("[@ReposoReincorpararse]", fr);

                            //.ToString("dd/MM/yyyy"))
                            //guardar el contenido

                            PlantillaCertificadoMedico plantillaCertificadoMedico = new PlantillaCertificadoMedico();
                            Int64 maxCodigo = 0;
                            maxCodigo  = Convert.ToInt64(_context.PlantillaCertificadoMedico.Max(f => f.Codigo));
                            maxCodigo += 1;
                            plantillaCertificadoMedico.Codigo      = maxCodigo.ToString("D4");
                            plantillaCertificadoMedico.Nombre      = cmi.NombreMedico + " - " + cmi.NombrePaciente;
                            plantillaCertificadoMedico.Descripcion = final;

                            _context.Add(plantillaCertificadoMedico);
                            await _context.SaveChangesAsync();

                            await _auditoria.GuardarLogAuditoria(Funciones.ObtenerFechaActual("SA Pacific Standard Time"), i.Name, "CertifidoMedicoPaciente", plantillaCertificadoMedico.Codigo, "I");

                            string Codigo = Encriptacion.Encrypt(plantillaCertificadoMedico.Codigo);

                            return(Redirect("../CertificadosMedicos/CertificadoMedico?Codigo=" + Codigo));
                        }
                        catch (DbUpdateConcurrencyException)
                        {
                            throw;
                        }
                    }

                    return(View(cmi));
                }
                catch (Exception e)
                {
                    string mensaje = e.Message;
                    if (e.InnerException != null)
                    {
                        mensaje = MensajesError.UniqueKey(e.InnerException.Message);
                    }

                    ViewBag.Message = mensaje;

                    return(View(cmi));
                }
            }
            else
            {
                return(Redirect("../Identity/Account/Login"));
            }
        }