public JsonResult guardarCartillaAtencion(GEL_CartillaAtencion cartilla)
        {
            log.Info("Function: [guardarCartillaAtencion(" + cartilla + ")] ");

            JsonResult responseJson = Json(CartillaAtencion.guardarCartillaAtencion(cartilla), JsonRequestBehavior.AllowGet);

            EnviarCorreo(cartilla);

            return(responseJson);
        }
        public static string guardarCartillaAtencion(GEL_CartillaAtencion cartilla)
        {
            try
            {
                using (var db = new EFData.PET_DBEntities())
                {
                    cartilla.id_cartilla_atencion = obtenerUltimoCodigoCartilla() + 1;
                    cartilla.codigo          = "CAT-" + cartilla.id_cartilla_atencion;
                    cartilla.fecha_creacion  = DateTime.Today;
                    cartilla.estado_cartilla = "PENDIENTE DE ASIGNACION";

                    /*cartilla.id_cliente = 4;
                     * cartilla.id_paciente = 4;
                     * cartilla.id_empleado = 1;
                     * cartilla.numero_comprobante = "001-12348";*/

                    var cartillaAtencion =
                        new Pet.Data.EF5.EFData.Cartilla_Atencion {
                        id_cartilla_atencion = cartilla.id_cartilla_atencion,
                        id_cliente           = cartilla.id_cliente,
                        id_paciente          = cartilla.id_paciente,
                        CodigoEmpleado       = cartilla.id_empleado,
                        codigo             = cartilla.codigo,
                        fecha_creacion     = cartilla.fecha_creacion,
                        estado_cartilla    = cartilla.estado_cartilla,
                        numero_comprobante = cartilla.numero_comprobante
                    };

                    db.Cartilla_Atencion.Add(cartillaAtencion);
                    db.SaveChanges();

                    logger.Info("Function: [guardarCartillaAtencion()] - Se registró correctamente");
                    return("OK");
                }
            }
            catch (DbUpdateException ex)
            {
                logger.Error("Function: [guardarCartillaAtencion()] - " + ex.Message);
                return("ERROR");
            }
        }
        public static object buscarCartillaAtencion(GEL_CartillaAtencion cartilla)
        {
            try
            {
                using (var db = new EFData.PET_DBEntities())
                {
                    var query = (from cartillas in db.Cartilla_Atencion
                                 join comprobantes in db.Comprobante_Pago on cartillas.numero_comprobante equals comprobantes.numero_comprobante
                                 join clientes in db.Cliente on cartillas.id_cliente equals clientes.id_cliente
                                 join pacientes in db.Paciente on cartillas.id_paciente equals pacientes.id_paciente
                                 join empleados in db.Empleado on cartillas.CodigoEmpleado equals empleados.CodigoEmpleado
                                 where cartillas.numero_comprobante == cartilla.numero_comprobante ||
                                 pacientes.nombre == cartilla.Paciente.nombre ||
                                 cartillas.codigo == cartilla.codigo ||
                                 cartillas.estado_cartilla == cartilla.estado_cartilla ||
                                 (cartillas.fecha_creacion >= cartilla.desde_day && cartillas.fecha_creacion <= cartilla.hasta_day)
                                 select new
                    {
                        IDCOMP = comprobantes.id_comprobante,
                        NUMCOM = comprobantes.numero_comprobante.ToUpper(),
                        NOMCLI = clientes.nombres.ToUpper() + " " + clientes.apellido_paterno.ToUpper() + " " + clientes.apellido_materno.ToUpper(),
                        NOMPAC = pacientes.nombre.ToUpper(),
                        NOMEMP = empleados.Nombres.ToUpper() + " " + empleados.ApellidoPaterno.ToUpper() + " " + empleados.ApellidoMaterno.ToUpper(),
                        CODIGO = cartillas.codigo,
                        FECCRE = cartillas.fecha_creacion,
                        ESTCAR = cartillas.estado_cartilla.ToUpper()
                    }).ToList();

                    logger.Info("Function: [buscarCartillaAtencion()] - Se registró correctamente");

                    return(query);
                }
            }
            catch (DbUpdateException ex)
            {
                logger.Error("Function: [buscarCartillaAtencion()] - " + ex.Message);
                return("ERROR");
            }
        }
        public void EnviarCorreo(GEL_CartillaAtencion cartilla)
        {
            String mailTo      = Pet.Service.Empleado.obtenerMailEmpleado(cartilla.id_empleado);
            String codCartilla = Pet.Service.CartillaAtencion.obtenerCodigoCartilla();
            String cliente     = Pet.Service.Cliente.obtenerNombre(cartilla.id_cliente);
            String paciente    = Pet.Service.Paciente.obtenerNombre(cartilla.id_paciente);
            String raza        = Pet.Service.Paciente.obtenerRaza(cartilla.id_paciente);
            String tipo        = Pet.Service.Paciente.obtenerTipo(cartilla.id_paciente);

            /*-------------------------MENSAJE DE CORREO----------------------*/

            //Creamos un nuevo Objeto de mensaje
            System.Net.Mail.MailMessage mmsg = new System.Net.Mail.MailMessage();

            //Direccion de correo electronico a la que queremos enviar el mensaje
            mmsg.To.Add(mailTo);

            //Nota: La propiedad To es una colección que permite enviar el mensaje a más de un destinatario

            //Asunto
            mmsg.Subject         = "Pet Center - Solicitud de Atención";
            mmsg.SubjectEncoding = System.Text.Encoding.UTF8;

            //Direccion de correo electronico que queremos que reciba una copia del mensaje
            //  mmsg.Bcc.Add("*****@*****.**"); //Opcional

            //Cuerpo del Mensaje
            mmsg.Body = "Se le ha asignado la Cartilla de Atención " + codCartilla +
                        " para que pueda asignar los especialistas correspondientes." +
                        Environment.NewLine +
                        "Cliente: " + cliente.ToUpper() +
                        Environment.NewLine +
                        "Paciente: " + paciente.ToUpper() +
                        Environment.NewLine +
                        "Raza: " + raza.ToUpper() +
                        Environment.NewLine +
                        "Tipo: " + tipo.ToUpper();

            mmsg.BodyEncoding = System.Text.Encoding.UTF8;
            mmsg.IsBodyHtml   = false; //Si no queremos que se envíe como HTML

            //Correo electronico desde la que enviamos el mensaje
            mmsg.From = new System.Net.Mail.MailAddress("*****@*****.**");


            /*-------------------------CLIENTE DE CORREO----------------------*/

            //Creamos un objeto de cliente de correo
            System.Net.Mail.SmtpClient smtpCliente = new System.Net.Mail.SmtpClient();

            //Hay que crear las credenciales del correo emisor
            smtpCliente.Credentials =
                new System.Net.NetworkCredential("*****@*****.**", "petcenter1234");

            //Lo siguiente es obligatorio si enviamos el mensaje desde Gmail

            smtpCliente.Port      = 587;
            smtpCliente.EnableSsl = true;


            smtpCliente.Host = "smtp.gmail.com";  //Para Gmail "smtp.gmail.com";


            /*-------------------------ENVIO DE CORREO----------------------*/

            try
            {
                //Enviamos el mensaje
                smtpCliente.Send(mmsg);
            }
            catch (System.Net.Mail.SmtpException ex)
            {
                //Aquí gestionamos los errores al intentar enviar el correo
                Console.WriteLine("Error: " + ex);
            }
        }
        public JsonResult buscarCartillaAtencion(GEL_CartillaAtencion cartilla)
        {
            log.Info("Function: [buscarCartillaAtencion(" + cartilla + ")] ");

            return(Json(CartillaAtencion.buscarCartillaAtencion(cartilla), JsonRequestBehavior.AllowGet));
        }
 public static object buscarCartillaAtencion(GEL_CartillaAtencion cartilla)
 {
     return(Pet.Data.EF5.CartillaAtencion.buscarCartillaAtencion(cartilla));
 }
 public static String guardarCartillaAtencion(GEL_CartillaAtencion cartilla)
 {
     return(Pet.Data.EF5.CartillaAtencion.guardarCartillaAtencion(cartilla));
 }