public ActionResult Confirm(EmployeeViewModel EmployeeModel)
        {
            // transferencia del modelo.
            EmployeeViewModel modelo = (EmployeeViewModel)TempData["ConfirmacionModel"];

            TempData["ConfirmacionModel"] = null;

            if (modelo.CEDULA == null)
            {
                // redireccionar a la vista inicial de pago en línea.
                return RedirectToAction("Index","Home");
            }
            else
            {
                // actualizar el registro del trabajador.
                EmployeeRepository e = new EmployeeRepository(modelo);

                if (e.Update())
                {
                    return RedirectToAction("Filter", "Employee");
                    //return RedirectToAction("Registrado");
                }
                else
                {
                    return RedirectToAction("Edit", modelo);
                    //return RedirectToAction("Rechazado");
                }

            }
        }
        public ActionResult Create(EmployeeViewModel EmployeeModel)
        {
            try
            {

                if (ModelState.IsValid)
                {

                    EmployeeRepository e = new EmployeeRepository(EmployeeModel);

                    // validación del modelo.
                    if (e.IsCedulaAlert())
                    {
                        ModelState.AddModelError("Cédula Duplicada", "Cédula Duplicada : Existe un Trabajador con el mismo valor : " + EmployeeModel.CEDULA );
                    }
                    else if (e.IsFichaAlert())
                    {
                        ModelState.AddModelError("Ficha Duplicada", "Ficha Duplicada : Existe un Trabajador con el mismo valor : " + EmployeeModel.FICHA);
                    }
                    else if ( ! e.IsEdadValid() )
                    {
                        ModelState.AddModelError("Menor de Edad", "Fecha de Nacimiento : La edad debe ser mayor/igual a 16 años.");
                    }
                    else if (! e.IsFamiliar2Valid())
                    {
                        ModelState.AddModelError("Familar # 2", "Familar # 2 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar3Valid())
                    {
                        ModelState.AddModelError("Familar # 3", "Familar # 3 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar4Valid())
                    {
                        ModelState.AddModelError("Familar # 4", "Familar # 4 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar5Valid())
                    {
                        ModelState.AddModelError("Familar # 5", "Familar # 5 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar6Valid())
                    {
                        ModelState.AddModelError("Familar # 6", "Familar # 6 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar7Valid())
                    {
                        ModelState.AddModelError("Familar # 7", "Familar # 7 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar8Valid())
                    {
                        ModelState.AddModelError("Familar # 8", "Familar # 8 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar9Valid())
                    {
                        ModelState.AddModelError("Familar # 9", "Familar # 9 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar10Valid())
                    {
                        ModelState.AddModelError("Familar # 10", "Familar # 10 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsRangeValid(EmployeeModel.FRM1_FECHA_INICIO, EmployeeModel.FRM1_FECHA_FIN))
                    {
                        ModelState.AddModelError("F1F", "Formación # 1 : El rango de fechas no es válido.");
                    }
                    else if (!e.IsFormacion2Alert())
                    {
                        ModelState.AddModelError("F2", "Formación # 2 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsRangeValid(EmployeeModel.FRM2_FECHA_INICIO, EmployeeModel.FRM2_FECHA_FIN))
                    {
                        ModelState.AddModelError("F2F", "Formación # 2 : El rango de fechas no es válido.");
                    }
                    else if (!e.IsFormacion3Alert())
                    {
                        ModelState.AddModelError("F3", "Formación # 3 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsRangeValid(EmployeeModel.FRM2_FECHA_INICIO, EmployeeModel.FRM2_FECHA_FIN))
                    {
                        ModelState.AddModelError("F3F", "Formación # 3 : El rango de fechas no es válido.");
                    }
                    else if (!e.IsExperiencia1Alert())
                    {
                        ModelState.AddModelError("E1", "Experiencia Laboral # 1 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsRangeValid(EmployeeModel.EXP1_FECHA_INICIO, EmployeeModel.EXP1_FECHA_FIN))
                    {
                        ModelState.AddModelError("E1F", "Experiencia Laboral # 1 : El rango de fechas no es válido.");
                    }
                    else if (!e.IsExperiencia2Alert())
                    {
                        ModelState.AddModelError("E2", "Experiencia Laboral # 2 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsRangeValid(EmployeeModel.EXP2_FECHA_INICIO, EmployeeModel.EXP2_FECHA_FIN))
                    {
                        ModelState.AddModelError("E2F", "Experiencia Laboral # 2 : El rango de fechas no es válido.");
                    }
                    else if (!e.IsExperiencia3Alert())
                    {
                        ModelState.AddModelError("E3", "Experiencia Laboral # 3 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsRangeValid(EmployeeModel.EXP3_FECHA_INICIO, EmployeeModel.EXP3_FECHA_FIN))
                    {
                        ModelState.AddModelError("E3F", "Experiencia Laboral # 3 : El rango de fechas no es válido.");
                    }
                    else if (HttpContext.ApplicationInstance.Session["COD_USER"] == null)
                    {
                        ModelState.AddModelError("Experiencia Laboral", "Sesión Usuario : Su sesión ha caducado, debe ingresar nuevamente.");
                    }
                    else
                    {
                        // cargar el modelo temporal para la confirmación.
                        TempData["ConfirmacionModel"] = EmployeeModel;
                        return RedirectToAction("CreateConfirm");
                    }

                }

                EmployeeModel.ERROR = (string) HttpContext.ApplicationInstance.Session["ERROR"];
                return View(EmployeeModel);

            }
            catch( Exception e )
            {
                HttpContext.ApplicationInstance.Session["ERROR"] = e.InnerException.InnerException.Message;
                return View(EmployeeModel);
                //return View("Error");
            }
        }
 //
 // GET: /Employee/Create
 public ActionResult Create()
 {
     if (@Session["COD_USER"] == null)
     {
         return RedirectToAction("Login", "Home");
     }
     if (TempData["ConfirmacionModel"] != null)
     {
         EmployeeViewModel model = (EmployeeViewModel) TempData["ConfirmacionModel"];
         TempData["ConfirmacionModel"] = null;
         return View(model);
     }
     else
     {
         EmployeeViewModel employee = new EmployeeViewModel();
         return View("Create", employee);
     }
 }
        public ActionResult Edit( EmployeeViewModel EmployeeModel )
        {
            //try
            //{

                if (ModelState.IsValid)
                {

                    EmployeeRepository e = new EmployeeRepository(EmployeeModel);

                    // validación del modelo.
                    if (!e.IsEdadValid())
                    {
                        ModelState.AddModelError("Menor de Edad", "Fecha de Nacimiento : La edad debe ser mayor/igual a 16 años.");
                    }
                    else if (!e.IsFamiliar2Valid())
                    {
                        ModelState.AddModelError("Familar # 2", "Familar # 2 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar3Valid())
                    {
                        ModelState.AddModelError("Familar # 3", "Familar # 3 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar4Valid())
                    {
                        ModelState.AddModelError("Familar # 4", "Familar # 4 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar5Valid())
                    {
                        ModelState.AddModelError("Familar # 5", "Familar # 5 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar6Valid())
                    {
                        ModelState.AddModelError("Familar # 6", "Familar # 6 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar7Valid())
                    {
                        ModelState.AddModelError("Familar # 7", "Familar # 7 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar8Valid())
                    {
                        ModelState.AddModelError("Familar # 8", "Familar # 8 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar9Valid())
                    {
                        ModelState.AddModelError("Familar # 9", "Familar # 9 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsFamiliar10Valid())
                    {
                        ModelState.AddModelError("Familar # 10", "Familar # 10 : Los campos no están llenados completamente.");
                    }

                    else if (!e.IsRangeValid(EmployeeModel.FRM1_FECHA_INICIO, EmployeeModel.FRM1_FECHA_FIN))
                    {
                        ModelState.AddModelError("F1F", "Formación # 1 : El rango de fechas no es válido.");
                    }
                    else if (!e.IsFormacion2Alert())
                    {
                        ModelState.AddModelError("F2", "Formación # 2 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsRangeValid(EmployeeModel.FRM2_FECHA_INICIO, EmployeeModel.FRM2_FECHA_FIN))
                    {
                        ModelState.AddModelError("F2F", "Formación # 2 : El rango de fechas no es válido.");
                    }
                    else if (!e.IsFormacion3Alert())
                    {
                        ModelState.AddModelError("F3", "Formación # 3 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsRangeValid(EmployeeModel.FRM2_FECHA_INICIO, EmployeeModel.FRM2_FECHA_FIN))
                    {
                        ModelState.AddModelError("F3F", "Formación # 3 : El rango de fechas no es válido.");
                    }

                    else if (!e.IsExperiencia1Alert())
                    {
                        ModelState.AddModelError("E1", "Experiencia Laboral # 1 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsRangeValid(EmployeeModel.EXP1_FECHA_INICIO, EmployeeModel.EXP1_FECHA_FIN))
                    {
                        ModelState.AddModelError("E1F", "Experiencia Laboral # 1 : El rango de fechas no es válido.");
                    }

                    else if (!e.IsExperiencia2Alert())
                    {
                        ModelState.AddModelError("E2", "Experiencia Laboral # 2 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsRangeValid(EmployeeModel.EXP2_FECHA_INICIO, EmployeeModel.EXP2_FECHA_FIN))
                    {
                        ModelState.AddModelError("E2F", "Experiencia Laboral # 2 : El rango de fechas no es válido.");
                    }

                    else if (!e.IsExperiencia3Alert())
                    {
                        ModelState.AddModelError("E3", "Experiencia Laboral # 3 : Los campos no están llenados completamente.");
                    }
                    else if (!e.IsRangeValid(EmployeeModel.EXP3_FECHA_INICIO, EmployeeModel.EXP3_FECHA_FIN))
                    {
                        ModelState.AddModelError("E3F", "Experiencia Laboral # 3 : El rango de fechas no es válido.");
                    }
                    else if (HttpContext.ApplicationInstance.Session["COD_USER"] == null)
                    {
                        ModelState.AddModelError("Experiencia Laboral", "Sesión Usuario : Su sesión ha caducado, debe ingresar nuevamente.");
                    }
                    else
                    {
                        // cargar el modelo temporal para la confirmación.
                        TempData["ConfirmacionModel"] = EmployeeModel;
                        return RedirectToAction("Confirm");
                    }

                }

                return View(EmployeeModel);

            //}
            //catch (Exception e)
            //{
            //    Console.Write(e.Message);
            //    return View(EmployeeModel);
            //}
        }
        public EmployeeRepository(EmployeeViewModel Empleado)
        {
            #region DATA_EMPLOYEE_TEST
            ////DATOS PERSONALES
            //Empleado.FICHA = "123456789012";
            //Empleado.CEDULA = "12919906";
            //Empleado.COD_SUCURSAL = "1001";
            //Empleado.COD_GRUPO = "1";
            //Empleado.COD_AREA_PERSONAL = "VK";
            //Empleado.CARGO = "CARGO";
            //Empleado.TRATAMIENTO = "Sra.";
            //Empleado.PRIMER_APELLIDO = "GONZALEZ";
            //Empleado.SEGUNDO_APELLIDO = "LOPEZ";
            //Empleado.NOMBRE = "FLOR MARINA";
            //Empleado.FECHA_NACIMIENTO = "1978/01/18";
            //Empleado.CIUDAD_NACIMIENTO = "PORLAMAR";
            //Empleado.COD_PAIS = "VE";
            //Empleado.COD_ESTADO = "NE";
            //Empleado.COD_NACIONALIDAD = "PA";
            //Empleado.ESTADO_CIVIL = "Cas.";
            //Empleado.SEXO = "M";
            //Empleado.RIF = "J129199060";
            //Empleado.CALZADO = "34";
            //Empleado.CHEMISE = "36";
            //Empleado.PANTALON = "36";

            //Empleado.COD_CLASE_CELULAR = "04128094599";
            //Empleado.COD_CLASE_CORREO = "*****@*****.**";

            //// DATOS DIRECCIÓN
            //Empleado.CALLE = "CALLEJÓN MACHADO";
            //Empleado.EDIFICIO = "RESD.LOS GRANADILLOS";
            //Empleado.PISO = "14";
            //Empleado.NUMERO = "141";
            //Empleado.URBANIZACION = "EL PARAÍSO";
            ////Empleado.COD_ESTADO = "DC";
            //Empleado.COD_PAIS = "VE";
            //Empleado.TELEFONOS = "4835448";
            //Empleado.COD_ESTADO_SSO = "DC";
            //Empleado.COD_MUNICIPIO_SSO = "1";
            //Empleado.COD_PARROQUIA_SSO = "663";
            //Empleado.CIUDAD = "CARACAS";

            //// DATOS DISCAPACIDAD
            //Empleado.COD_DISCAPACIDAD_MOTRIZ = true;
            //Empleado.COD_DISCAPACIDAD_SENSORIAL = false;
            //Empleado.COD_DISCAPACIDAD_INTELECTUAL = true;

            //// DATOS FAMILIARES
            //Empleado.FAM1_COD_PARENTESCO = "1";
            //Empleado.FAM1_PRIMER_APELLIDO = "DEPABLOS";
            //Empleado.FAM1_SEGUNDO_APELLIDO = "SILVA";
            //Empleado.FAM1_NOMBRES = "DANIEL JOSÉ";
            //Empleado.FAM1_FECHA_NACIMIENTO = "05/04/1974";
            //Empleado.FAM1_LUGAR_NACIMIENTO = "CARACAS";
            //Empleado.FAM1_COD_PAIS = "VE";
            //Empleado.FAM1_COD_NACIONALIDAD = "VE";
            //Empleado.FAM1_CEDULA_FAMILIAR = "11681109";
            //Empleado.FAM1_SEXO = "M";

            //// DATOS FORMACIÓN
            //Empleado.FRM1_COD_CLASE = "V8";
            //Empleado.FRM1_COD_FORMACION = "15";
            //Empleado.FRM1_INSTITUTO = "HARVARD";
            //Empleado.FRM1_COD_PAIS = "VE";
            //Empleado.FRM1_CT_COD_CLASE = "V8";
            //Empleado.FRM1_CT_COD_TITULO = "2";
            //Empleado.FRM1_DURACION = "10";
            //Empleado.FRM1_UNIDAD_TIEMPO = "3";
            //Empleado.FRM1_CE_COD_CLASE = "V8";
            //Empleado.FRM1_CE_COD_ESPECIALIDAD = "00207";
            //Empleado.FRM1_FECHA_INICIO = "01/10/2000";
            //Empleado.FRM1_FECHA_FIN = "01/10/2000";

            //// DATOS EXPERIENCIA LABORAL
            //Empleado.EXP1_FECHA_INICIO = "01/01/2000";
            //Empleado.EXP1_FECHA_FIN = "31/01/2000";
            //Empleado.EXP1_EMPRESA = "EMPRESA 1";
            //Empleado.EXP1_CIUDAD = "CIUDAD 1";
            //Empleado.EXP1_PAIS = "VE";
            //Empleado.EXP1_COD_RAMO = "01";
            //Empleado.EXP1_COD_ACTIVIDAD = "01";
            //Empleado.EXP1_COD_RELACION = "4";
            #endregion
            empleado = Empleado;
        }
        public EmployeeViewModel GetEmployee()
        {
            EmployeeViewModel employee = new EmployeeViewModel();

            return employee;
        }