Ejemplo n.º 1
0
        public JSONCollection<TBL_TRABAJADOR> Create(string RUT_TRABAJADOR, string NOMBRES, string APELLIDO_MATERNO, string APELLIDO_PATERNO, string TELEFONO, int ANOS_EXPERIENCIA_CARGO, int ANOS_EXPERIENCIA_LABORAL, string ID_CARGO)
        {
            JSONCollection<TBL_TRABAJADOR> objJSON = new JSONCollection<TBL_TRABAJADOR>();
            try
            {
                TBL_TRABAJADOR nuevo = new TBL_TRABAJADOR()
                {
                    RUT_TRABAJADOR = RUT_TRABAJADOR,
                    NOMBRES = NOMBRES,
                    APELLIDO_MATERNO = APELLIDO_MATERNO,
                    APELLIDO_PATERNO = APELLIDO_PATERNO,
                    TELEFONO = TELEFONO,
                    ANOS_EXPERIENCIA_CARGO = ANOS_EXPERIENCIA_CARGO,
                    ANOS_EXPERIENCIA_LABORAL = ANOS_EXPERIENCIA_LABORAL,
                    ID_CARGO = int.Parse(ID_CARGO)
                };
                bd.TBL_TRABAJADOR.InsertOnSubmit(nuevo);
                bd.SubmitChanges();

                objJSON.items = nuevo;
                objJSON.totalCount = bd.TBL_TRABAJADOR.Count();
                objJSON.success = true;
            }
            catch (Exception e)
            {
                objJSON.success = false;
            }
            return objJSON;
        }
Ejemplo n.º 2
0
        public JSONCollection<TBL_I_PRELIMINAR> Create(
            int CLASIFICACION,
            // Evento 
            int ID_EMPRESA,
            int ID_EVENTO,
            // Datos Trabajador 
            string RUT_TRABAJADOR,
            string NOMBRES,
            string APELLIDO_MATERNO,
            string APELLIDO_PATERNO,
            string ANOS_EXPERIENCIA_CARGO,
            string ANOS_EXPERIENCIA_LABORAL,
            int ID_CARGO,
            // Tipo Incidente a persona
            int[] TIPO_INCIDENTE_PERSONA_LIST,
            // Causa Inmediata Acción
            int[] CAUSA_INMEDIATA_ACCION_LIST,
            // Factores de la persona
            int[] CAUSA_LISTA_FACTORES_CAP_FISICA_INADECUADA,
            int[] CAUSA_LISTA_FACTORES_CAP_PSICOLOGICA_INADECUADA,
            int[] CAUSA_LISTA_FATORES_AUTOCUIDADO,
            int[] CAUSA_LISTA_FATORES_CAP_MENTAL,
            int[] CAUSA_LISTA_FATORES_FALTA_CONOCIMIETO,
            int[] CAUSA_LISTA_FATORES_FALTA_HABILIDAD,
            int[] CAUSA_LISTA_FATORES_MOTIVACION_INADECUADA,
            int[] CAUSA_LISTA_FATORES_TECNCION_MENTAL,


            //causas patrimonio
            int[] TIPO_INCIDENTE_PATRIMONIO_LIST,
            int[] CAUSA_INMEDIATA_ACCION_PATRIMONIO_LIST,
            // Factores de la patrimonio
            int[] CAUSA_LISTA_FACTORES_FALTA_LIDERAZGO,
            int[] CAUSA_LISTA_FACTORES_ING_INADECUADA,
            int[] CAUSA_LISTA_FACTORES_COMPRAS_INADECUADAS,
            int[] CAUSA_LISTA_FACTORES_MANTENIMIENTO_INADECUADO,
            int[] CAUSA_LISTA_FACTORES_HERRAMIENTAS_INADECUADAS,
            int[] CAUSA_LISTA_FACTORES_USO_DESGASTE,
            int[] CAUSA_LISTA_FACTORES_ABUSO,
            int[] CAUSA_LISTA_FACTORES_ERRORES,

            int ID_TRABAJADOR,
            int ID_EVENTO_EMPRESA,
            int ID_EVENTO_TRABAJADOR,
            int ID_PELIGRO,
            int ID_CAUSA


            )
        {
            JSONCollection<TBL_I_PRELIMINAR> objJSON = new JSONCollection<TBL_I_PRELIMINAR>();

            if (ID_EMPRESA == 0)
            {
                ID_EMPRESA = 1;
            }
            // Declaro un atributo para trabajarlo abajo
            TBL_EVENTO_EMPRESA existeEventoEmpresa = null;
            try
            {
                //Busco en la base de datos un registro con los parametros asignados
                existeEventoEmpresa = (from evento_empresa in bd.TBL_EVENTO_EMPRESA
                                       where evento_empresa.ID_EVENTO == ID_EVENTO && evento_empresa.ID_EMPRESA == ID_EMPRESA
                                       select evento_empresa).Single<TBL_EVENTO_EMPRESA>();
                //Si no existe morira
            }//ingresa dos veces el id_evento_empresa
            catch (Exception ex) { }
            //si el atributo sigue siendo nulo lo creo
            if (existeEventoEmpresa == null)
            {
                existeEventoEmpresa = new TBL_EVENTO_EMPRESA()
                {
                    ID_EVENTO = ID_EVENTO,
                    ID_EMPRESA = ID_EMPRESA,
                    ESTADO = true
                };
                bd.TBL_EVENTO_EMPRESA.InsertOnSubmit(existeEventoEmpresa);
                bd.SubmitChanges();
            }
            TBL_I_PRELIMINAR nuevoInformePreliminar = null;
            try
            {
                nuevoInformePreliminar = (from informe_preliminar in bd.TBL_I_PRELIMINAR
                                          where informe_preliminar.ID_EVENTO_EMPRESA == ID_EVENTO_EMPRESA //&& informe_preliminar.ID_EMPRESA == ID_EMPRESA
                                          select informe_preliminar).Single<TBL_I_PRELIMINAR>();
            }
            catch (Exception ex) { }
            if (nuevoInformePreliminar == null)
            {
                nuevoInformePreliminar = new TBL_I_PRELIMINAR()
                {
                    ID_EVENTO_EMPRESA = existeEventoEmpresa.ID_EVENTO_EMPRESA,
                    FECHA_INGRESO = DateTime.Now,
                    CLASIFICACION = CLASIFICACION
                };
                bd.TBL_I_PRELIMINAR.InsertOnSubmit(nuevoInformePreliminar);
                bd.SubmitChanges();
            }
            TBL_TRABAJADOR nuevoTrabajador = null;
            try
            {
                nuevoTrabajador = (from trabajador in bd.TBL_TRABAJADOR
                                   where trabajador.RUT_TRABAJADOR == RUT_TRABAJADOR
                                   select trabajador).Single<TBL_TRABAJADOR>();
            }
            catch (Exception ex) { }
            if (nuevoTrabajador == null)
            {
                nuevoTrabajador = new TBL_TRABAJADOR()
                {
                    RUT_TRABAJADOR = RUT_TRABAJADOR,
                    NOMBRES = NOMBRES,
                    APELLIDO_MATERNO = APELLIDO_MATERNO,
                    APELLIDO_PATERNO = APELLIDO_PATERNO,
                    ANOS_EXPERIENCIA_CARGO = int.Parse(ANOS_EXPERIENCIA_CARGO),
                    ID_CARGO = ID_CARGO,
                    ANOS_EXPERIENCIA_LABORAL = int.Parse(ANOS_EXPERIENCIA_LABORAL)
                };
                bd.TBL_TRABAJADOR.InsertOnSubmit(nuevoTrabajador);
                bd.SubmitChanges();
            }
            TBL_EVENTO_TRABAJADOR existeEventoTrabajador = null;
            try
            {
                existeEventoTrabajador = (from evento_trabajador in bd.TBL_EVENTO_TRABAJADOR
                                          where evento_trabajador.ID_TRABAJADOR == ID_TRABAJADOR && evento_trabajador.ID_EVENTO_TRABAJADOR == ID_EVENTO_TRABAJADOR
                                          select evento_trabajador).Single<TBL_EVENTO_TRABAJADOR>();
            }
            catch (Exception ex) { }
            if (existeEventoTrabajador == null)
            {
                existeEventoTrabajador = new TBL_EVENTO_TRABAJADOR()
                {
                    ID_EVENTO_EMPRESA = existeEventoEmpresa.ID_EVENTO_EMPRESA,
                    ID_TRABAJADOR = nuevoTrabajador.ID_TRABAJADOR
                };
                bd.TBL_EVENTO_TRABAJADOR.InsertOnSubmit(existeEventoTrabajador);
                bd.SubmitChanges();
            }
            foreach (int idPeligro in TIPO_INCIDENTE_PERSONA_LIST)
            {
                TBL_PELIGRO_EVENTO_TRABAJADOR nuevoPeligroEncontrado = new TBL_PELIGRO_EVENTO_TRABAJADOR()
                {
                    ID_EVENTO_TRABAJADOR = existeEventoTrabajador.ID_EVENTO_TRABAJADOR,
                    ID_PELIGRO = idPeligro
                };
                bd.TBL_PELIGRO_EVENTO_TRABAJADOR.InsertOnSubmit(nuevoPeligroEncontrado);
                bd.SubmitChanges();
            }
            foreach (int idCausaInmediata in CAUSA_INMEDIATA_ACCION_LIST)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaInmediata = new TBL_CAUSA_INFORME_PRELIMIANAR()
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idCausaInmediata
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaInmediata);
                bd.SubmitChanges();
            }
            foreach (int idCapacidadFisicaInadecuada in CAUSA_LISTA_FACTORES_CAP_FISICA_INADECUADA)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaListaFCFI = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idCapacidadFisicaInadecuada
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaListaFCFI);
                bd.SubmitChanges();

            }
            foreach (int idCapacidadFisicaPsicologicaInadecuada in CAUSA_LISTA_FACTORES_CAP_PSICOLOGICA_INADECUADA)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaListaFCPsI = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idCapacidadFisicaPsicologicaInadecuada
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaListaFCPsI);
                bd.SubmitChanges();
            }
            foreach (int idFactoresAutocuidado in CAUSA_LISTA_FATORES_AUTOCUIDADO)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaListaFAC = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idFactoresAutocuidado
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaListaFAC);
                bd.SubmitChanges();
            }
            foreach (int idFactoresCapMental in CAUSA_LISTA_FATORES_CAP_MENTAL)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaListaFCM = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idFactoresCapMental
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaListaFCM);
                bd.SubmitChanges();
            }
            foreach (int idFactoresFaltaConocimiento in CAUSA_LISTA_FATORES_FALTA_CONOCIMIETO)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaListaFC = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idFactoresFaltaConocimiento
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaListaFC);
                bd.SubmitChanges();
            }
            foreach (int idFactoresFaltaHabilidad in CAUSA_LISTA_FATORES_FALTA_HABILIDAD)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaListaFFH = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idFactoresFaltaHabilidad
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaListaFFH);
                bd.SubmitChanges();
            }
            foreach (int idFactoresMotivacionInadecuada in CAUSA_LISTA_FATORES_MOTIVACION_INADECUADA)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaListaFMI = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idFactoresMotivacionInadecuada
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaListaFMI);
                bd.SubmitChanges();
            }
            foreach (int idFactoresTencionMental in CAUSA_LISTA_FATORES_TECNCION_MENTAL)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaListaTM = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idFactoresTencionMental
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaListaTM);
                bd.SubmitChanges();
            }

               //*datos incidente patrimonio*//

            foreach (int idTipoIncidente_Patrimonio in TIPO_INCIDENTE_PATRIMONIO_LIST)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaIncidentePatrimonio = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idTipoIncidente_Patrimonio
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaIncidentePatrimonio);
                bd.SubmitChanges();
            }
            foreach (int idCausaInmediataAccionPatrimonio in CAUSA_INMEDIATA_ACCION_PATRIMONIO_LIST)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaAccionPatrimonio = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idCausaInmediataAccionPatrimonio
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaAccionPatrimonio);
                bd.SubmitChanges();
            }
            foreach (int idCausaFactoresFaltaLiderasgo in CAUSA_LISTA_FACTORES_FALTA_LIDERAZGO)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaFatoresFaltaLiderasgo = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idCausaFactoresFaltaLiderasgo
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaFatoresFaltaLiderasgo);
                bd.SubmitChanges();
            }
            foreach (int idCausaFactoresIngInadecuada in CAUSA_LISTA_FACTORES_ING_INADECUADA)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaFatoresIngInadecuada = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idCausaFactoresIngInadecuada
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaFatoresIngInadecuada);
                bd.SubmitChanges();
            }
            foreach (int idCausaFactoresComprasInadecuadas in CAUSA_LISTA_FACTORES_COMPRAS_INADECUADAS)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaFatoresComprasInadecuada = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idCausaFactoresComprasInadecuadas
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaFatoresComprasInadecuada);
                bd.SubmitChanges();
            }
            foreach (int idCausaFactoresMantenimientoInadecuado in CAUSA_LISTA_FACTORES_MANTENIMIENTO_INADECUADO)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaFatoresMantenimientoInadecuada = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idCausaFactoresMantenimientoInadecuado
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaFatoresMantenimientoInadecuada);
                bd.SubmitChanges();
            }
            foreach (int idCausaFactoresHerramientaInadecuado in CAUSA_LISTA_FACTORES_HERRAMIENTAS_INADECUADAS)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaFatoresHerramientaInadecuada = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idCausaFactoresHerramientaInadecuado
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaFatoresHerramientaInadecuada);
                bd.SubmitChanges();
            }
            foreach (int idCausaFactoresUsoDesgaste in CAUSA_LISTA_FACTORES_USO_DESGASTE)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaFatoresUsoDesgaste = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idCausaFactoresUsoDesgaste
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaFatoresUsoDesgaste);
                bd.SubmitChanges();
            }
            foreach (int idCausaFactoresAbuso in CAUSA_LISTA_FACTORES_ABUSO)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaFatoresAbuso = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idCausaFactoresAbuso
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaFatoresAbuso);
                bd.SubmitChanges();
            }
            foreach (int idCausaFactoresErrores in CAUSA_LISTA_FACTORES_ERRORES)
            {
                TBL_CAUSA_INFORME_PRELIMIANAR nuevaCausaFatoresErrores = new TBL_CAUSA_INFORME_PRELIMIANAR
                {
                    ID_INFORME_PRELIMINAR = nuevoInformePreliminar.ID_INFORME_PRELIMINAR,
                    ID_CAUSA = idCausaFactoresErrores
                };
                bd.TBL_CAUSA_INFORME_PRELIMIANAR.InsertOnSubmit(nuevaCausaFatoresErrores);
                bd.SubmitChanges();
            }

            // objJSON.items = nuevo;
            objJSON.totalCount = bd.TBL_I_PRELIMINAR.Count();
            objJSON.success = true;

            return objJSON;
        }
Ejemplo n.º 3
0
 public JSONCollection<TBL_TRABAJADOR> Update(string id, TBL_TRABAJADOR nuevo)
 {
     JSONCollection<TBL_TRABAJADOR> objJSON = new JSONCollection<TBL_TRABAJADOR>();
     try
     {
         var objeto = (from variable in bd.TBL_TRABAJADOR
                       where variable.ID_TRABAJADOR == int.Parse(id)
                       select variable).Single();
         objeto.RUT_TRABAJADOR = nuevo.RUT_TRABAJADOR;
         objeto.NOMBRES = nuevo.NOMBRES;
         objeto.APELLIDO_MATERNO = nuevo.APELLIDO_MATERNO;
         objeto.APELLIDO_PATERNO = nuevo.APELLIDO_PATERNO;
         objeto.TELEFONO = nuevo.TELEFONO;
         objeto.ANOS_EXPERIENCIA_CARGO = nuevo.ANOS_EXPERIENCIA_CARGO;
         objeto.ANOS_EXPERIENCIA_LABORAL = nuevo.ANOS_EXPERIENCIA_LABORAL;
         objeto.ID_CARGO = nuevo.ID_CARGO;
         bd.SubmitChanges();
         objJSON.items = objeto;
         objJSON.totalCount = bd.TBL_TRABAJADOR.Count();
         objJSON.success = true;
     }
     catch (Exception ex)
     {
         objJSON.success = false;
     }
     return objJSON;
 }
Ejemplo n.º 4
0
        public JSONCollection<TrabajadorInvolucradoJSON> AddTrabajadorInvolucrado(
            // Evento 
            int ID_EVENTO,
            int ID_EVENTO_EMPRESA,

            // Datos Trabajador 
            string RUT_TRABAJADOR,
            string NOMBRES,
            string APELLIDO_MATERNO,
            string APELLIDO_PATERNO,
            int ANOS_EXPERIENCIA_CARGO,
            int ANOS_EXPERIENCIA_LABORAL,
            int ID_CARGO,
            int ID_MATRIZ,
            bool IS_CTP,
            // Causa Inmediata Acción
            int[] CAUSA_INMEDIATA_ACCION,
            // Factores de la persona
            int[] CAUSA_LISTA_FACTORES_CAP_FISICA_INADECUADA,
            int[] CAUSA_LISTA_FACTORES_CAP_PSICOLOGICA_INADECUADA,
            int[] CAUSA_LISTA_FATORES_TENSION_FISICA,
            int[] CAUSA_LISTA_FATORES_TENSION_MENTAL,
            int[] CAUSA_LISTA_FATORES_FALTA_CONOCIMIETO,
            int[] CAUSA_LISTA_FATORES_FALTA_HABILIDAD,
            int[] CAUSA_LISTA_FATORES_MOTIVACION_INADECUADA,
            int[] CAUSA_LISTA_FATORES_AUTOCUIDADO,
            int[] CAUSA_LISTA_FACTORES_ERRORES
        )
        {
            JSONCollection<TrabajadorInvolucradoJSON> objJSON = new JSONCollection<TrabajadorInvolucradoJSON>();

            #region Si no viene la ID_EMPRESA , declaro por defecto ERBB
            int ID_EMPRESA = 1;

            #endregion

            TBL_EVENTO_EMPRESA existeEventoEmpresa = (from evento_empresa in bd.TBL_EVENTO_EMPRESA
                                                      where evento_empresa.ID_EVENTO_EMPRESA == ID_EVENTO_EMPRESA
                                                      select evento_empresa).Single<TBL_EVENTO_EMPRESA>();

            #region Busco si existe un trabajador en el sistema, osino lo creo
            TBL_TRABAJADOR nuevoTrabajador = null;
            try
            {
                nuevoTrabajador = (from trabajador in bd.TBL_TRABAJADOR
                                   where trabajador.RUT_TRABAJADOR == RUT_TRABAJADOR
                                   select trabajador).Single<TBL_TRABAJADOR>();
            }
            catch (Exception ex) { }
            if (nuevoTrabajador == null)
            {
                nuevoTrabajador = new TBL_TRABAJADOR()
                {
                    RUT_TRABAJADOR = RUT_TRABAJADOR,
                    NOMBRES = NOMBRES,
                    APELLIDO_MATERNO = APELLIDO_MATERNO,
                    APELLIDO_PATERNO = APELLIDO_PATERNO,
                    ANOS_EXPERIENCIA_CARGO = ANOS_EXPERIENCIA_CARGO,
                    ID_CARGO = ID_CARGO,
                    ANOS_EXPERIENCIA_LABORAL = ANOS_EXPERIENCIA_LABORAL
                };
                bd.TBL_TRABAJADOR.InsertOnSubmit(nuevoTrabajador);
                bd.SubmitChanges();
            }
            #endregion

            #region Busco si existe un trabajador en un evento trabajador, osino lo creo
            TBL_EVENTO_TRABAJADOR existeEventoTrabajador = null;
            try
            {
                existeEventoTrabajador = (from evento_trabajador in bd.TBL_EVENTO_TRABAJADOR
                                          where evento_trabajador.ID_TRABAJADOR == nuevoTrabajador.ID_TRABAJADOR && evento_trabajador.ID_EVENTO_EMPRESA == existeEventoEmpresa.ID_EVENTO_EMPRESA
                                          select evento_trabajador).Single<TBL_EVENTO_TRABAJADOR>();
            }
            catch (Exception ex) { }
            if (existeEventoTrabajador == null)
            {
                existeEventoTrabajador = new TBL_EVENTO_TRABAJADOR()
                {
                    ID_EVENTO_EMPRESA = existeEventoEmpresa.ID_EVENTO_EMPRESA,
                    ID_TRABAJADOR = nuevoTrabajador.ID_TRABAJADOR,
                    IS_CTP = IS_CTP
                };
                if (ID_MATRIZ != null && ID_MATRIZ > 0)
                {
                    existeEventoTrabajador.ID_MATRIZ = ID_MATRIZ;
                }
                bd.TBL_EVENTO_TRABAJADOR.InsertOnSubmit(existeEventoTrabajador);
                bd.SubmitChanges();
            }
            #endregion

            #region [CAUSA_INMEDIATA_ACCION] Elimino todos las causas inmediatas del informe preliminar y agrego las nuevas
            try
            {
                var causaInmediata = (from variable in bd.TBL_CAUSA_TRABAJADOR
                                      join causa in bd.TBL_CAUSA on variable.ID_CAUSA equals causa.ID_CAUSA
                                      where variable.ID_EVENTO_TRABAJADOR == existeEventoTrabajador.ID_EVENTO_TRABAJADOR && causa.TIPO_CAUSA == e0063.CAUSA_ACCION
                                      select variable).ToList();
                bd.TBL_CAUSA_TRABAJADOR.DeleteAllOnSubmit(causaInmediata);
                bd.SubmitChanges();
            }
            catch (Exception ex) { }
            foreach (int idCausaInmediata in CAUSA_INMEDIATA_ACCION)
            {
                TBL_CAUSA_TRABAJADOR nuevaCausaInmediata = new TBL_CAUSA_TRABAJADOR()
                {
                    ID_EVENTO_TRABAJADOR = existeEventoTrabajador.ID_EVENTO_TRABAJADOR,
                    ID_CAUSA = idCausaInmediata
                };
                bd.TBL_CAUSA_TRABAJADOR.InsertOnSubmit(nuevaCausaInmediata);
                bd.SubmitChanges();
            }
            #endregion
            #region [CAUSA_LISTA_FACTORES_CAP_FISICA_INADECUADA] Elimino todos las causas de  Capaciadad fisica inadecuada del informe preliminar y agrego las nuevas
            try
            {
                var capFisicaInadecuada = (from variable in bd.TBL_CAUSA_TRABAJADOR
                                           join causa in bd.TBL_CAUSA on variable.ID_CAUSA equals causa.ID_CAUSA
                                           where variable.ID_EVENTO_TRABAJADOR == existeEventoTrabajador.ID_EVENTO_TRABAJADOR && causa.TIPO_CAUSA == e0063.CAUSA_CAP_FISICA_INADECUADA
                                           select variable).ToList();
                bd.TBL_CAUSA_TRABAJADOR.DeleteAllOnSubmit(capFisicaInadecuada);
                bd.SubmitChanges();
            }
            catch (Exception ex) { }
            foreach (int idCausaInmediata in CAUSA_LISTA_FACTORES_CAP_FISICA_INADECUADA)
            {
                TBL_CAUSA_TRABAJADOR nuevaCausaInmediata = new TBL_CAUSA_TRABAJADOR()
                {
                    ID_EVENTO_TRABAJADOR = existeEventoTrabajador.ID_EVENTO_TRABAJADOR,
                    ID_CAUSA = idCausaInmediata
                };
                bd.TBL_CAUSA_TRABAJADOR.InsertOnSubmit(nuevaCausaInmediata);
                bd.SubmitChanges();
            }
            #endregion
            #region [CAUSA_LISTA_FACTORES_CAP_PSICOLOGICA_INADECUADA] Elimino todos las causas de  Capaciadad psicologica inadecuada del informe preliminar y agrego las nuevas
            try
            {
                var cappsicologicaInadecuada = (from variable in bd.TBL_CAUSA_TRABAJADOR
                                                join causa in bd.TBL_CAUSA on variable.ID_CAUSA equals causa.ID_CAUSA
                                                where variable.ID_EVENTO_TRABAJADOR == existeEventoTrabajador.ID_EVENTO_TRABAJADOR && causa.TIPO_CAUSA == e0063.CAUSA_CAP_PSICOLOGICA_INADECUADA
                                                select variable).ToList();
                bd.TBL_CAUSA_TRABAJADOR.DeleteAllOnSubmit(cappsicologicaInadecuada);
                bd.SubmitChanges();
            }
            catch (Exception ex) { }

            foreach (int idCausaInmediata in CAUSA_LISTA_FACTORES_CAP_PSICOLOGICA_INADECUADA)
            {
                TBL_CAUSA_TRABAJADOR nuevaCausaInmediata = new TBL_CAUSA_TRABAJADOR()
                {
                    ID_EVENTO_TRABAJADOR = existeEventoTrabajador.ID_EVENTO_TRABAJADOR,
                    ID_CAUSA = idCausaInmediata
                };
                bd.TBL_CAUSA_TRABAJADOR.InsertOnSubmit(nuevaCausaInmediata);
                bd.SubmitChanges();
            }
            #endregion
            #region [CAUSA_LISTA_FATORES_TENSION_FISICA] Elimino todos las causas de TENSIÓN FISICA inadecuada del informe preliminar y agrego las nuevas
            try
            {
                var capMental = (from variable in bd.TBL_CAUSA_TRABAJADOR
                                 join causa in bd.TBL_CAUSA on variable.ID_CAUSA equals causa.ID_CAUSA
                                 where variable.ID_EVENTO_TRABAJADOR == existeEventoTrabajador.ID_EVENTO_TRABAJADOR && causa.TIPO_CAUSA == e0063.CAUSA_TENSION_MENTAL
                                 select variable).ToList();
                bd.TBL_CAUSA_TRABAJADOR.DeleteAllOnSubmit(capMental);
                bd.SubmitChanges();
            }
            catch (Exception ex) { }

            foreach (int idCausaInmediata in CAUSA_LISTA_FATORES_TENSION_FISICA)
            {
                TBL_CAUSA_TRABAJADOR nuevaCausaInmediata = new TBL_CAUSA_TRABAJADOR()
                {
                    ID_EVENTO_TRABAJADOR = existeEventoTrabajador.ID_EVENTO_TRABAJADOR,
                    ID_CAUSA = idCausaInmediata
                };
                bd.TBL_CAUSA_TRABAJADOR.InsertOnSubmit(nuevaCausaInmediata);
                bd.SubmitChanges();
            }
            #endregion
            #region [CAUSA_LISTA_FATORES_TENSION_MENTAL] Elimino todos las causas de  tensión mental del informe preliminar y agrego las nuevas
            try
            {
                var tensionMental = (from variable in bd.TBL_CAUSA_TRABAJADOR
                                     join causa in bd.TBL_CAUSA on variable.ID_CAUSA equals causa.ID_CAUSA
                                     where variable.ID_EVENTO_TRABAJADOR == existeEventoTrabajador.ID_EVENTO_TRABAJADOR && causa.TIPO_CAUSA == e0063.CAUSA_TENSION_MENTAL
                                     select variable).ToList();
                bd.TBL_CAUSA_TRABAJADOR.DeleteAllOnSubmit(tensionMental);
                bd.SubmitChanges();
            }
            catch (Exception ex) { }

            foreach (int idCausaInmediata in CAUSA_LISTA_FATORES_TENSION_MENTAL)
            {
                TBL_CAUSA_TRABAJADOR nuevaCausaInmediata = new TBL_CAUSA_TRABAJADOR()
                {
                    ID_EVENTO_TRABAJADOR = existeEventoTrabajador.ID_EVENTO_TRABAJADOR,
                    ID_CAUSA = idCausaInmediata
                };
                bd.TBL_CAUSA_TRABAJADOR.InsertOnSubmit(nuevaCausaInmediata);
                bd.SubmitChanges();
            }
            #endregion
            #region [CAUSA_LISTA_FATORES_FALTA_CONOCIMIETO] Elimino todos las causas de  falta de conocimiento del informe preliminar y agrego las nuevas
            try
            {
                var faltaConocimiento = (from variable in bd.TBL_CAUSA_TRABAJADOR
                                         join causa in bd.TBL_CAUSA on variable.ID_CAUSA equals causa.ID_CAUSA
                                         where variable.ID_EVENTO_TRABAJADOR == existeEventoTrabajador.ID_EVENTO_TRABAJADOR && causa.TIPO_CAUSA == e0063.CAUSA_FALTA_CONOCIMIENTO
                                         select variable).ToList();
                bd.TBL_CAUSA_TRABAJADOR.DeleteAllOnSubmit(faltaConocimiento);
                bd.SubmitChanges();
            }
            catch (Exception ex) { }

            foreach (int idCausaInmediata in CAUSA_LISTA_FATORES_FALTA_CONOCIMIETO)
            {
                TBL_CAUSA_TRABAJADOR nuevaCausaInmediata = new TBL_CAUSA_TRABAJADOR()
                {
                    ID_EVENTO_TRABAJADOR = existeEventoTrabajador.ID_EVENTO_TRABAJADOR,
                    ID_CAUSA = idCausaInmediata
                };
                bd.TBL_CAUSA_TRABAJADOR.InsertOnSubmit(nuevaCausaInmediata);
                bd.SubmitChanges();
            }
            #endregion
            #region [CAUSA_LISTA_FATORES_FALTA_HABILIDAD] Elimino todos las causas de  falta de habilidad del informe preliminar y agrego las nuevas
            try
            {
                var faltaHabilidad = (from variable in bd.TBL_CAUSA_TRABAJADOR
                                      join causa in bd.TBL_CAUSA on variable.ID_CAUSA equals causa.ID_CAUSA
                                      where variable.ID_EVENTO_TRABAJADOR == existeEventoTrabajador.ID_EVENTO_TRABAJADOR && causa.TIPO_CAUSA == e0063.CAUSA_FALTA_HABILIDAD
                                      select variable).ToList();
                bd.TBL_CAUSA_TRABAJADOR.DeleteAllOnSubmit(faltaHabilidad);
                bd.SubmitChanges();
            }
            catch (Exception ex) { }

            foreach (int idCausaInmediata in CAUSA_LISTA_FATORES_FALTA_HABILIDAD)
            {
                TBL_CAUSA_TRABAJADOR nuevaCausaInmediata = new TBL_CAUSA_TRABAJADOR()
                {
                    ID_EVENTO_TRABAJADOR = existeEventoTrabajador.ID_EVENTO_TRABAJADOR,
                    ID_CAUSA = idCausaInmediata
                };
                bd.TBL_CAUSA_TRABAJADOR.InsertOnSubmit(nuevaCausaInmediata);
                bd.SubmitChanges();
            }
            #endregion
            #region [CAUSA_LISTA_FATORES_MOTIVACION_INADECUADA] Elimino todos las causas de motivacion inadecuada del informe preliminar y agrego las nuevas
            try
            {
                var motivacionInadecuada = (from variable in bd.TBL_CAUSA_TRABAJADOR
                                            join causa in bd.TBL_CAUSA on variable.ID_CAUSA equals causa.ID_CAUSA
                                            where variable.ID_EVENTO_TRABAJADOR == existeEventoTrabajador.ID_EVENTO_TRABAJADOR && causa.TIPO_CAUSA == e0063.CAUSA_MOTIVACION_INADECUADA
                                            select variable).ToList();
                bd.TBL_CAUSA_TRABAJADOR.DeleteAllOnSubmit(motivacionInadecuada);
                bd.SubmitChanges();
            }
            catch (Exception ex) { }

            foreach (int idCausaInmediata in CAUSA_LISTA_FATORES_MOTIVACION_INADECUADA)
            {
                TBL_CAUSA_TRABAJADOR nuevaCausaInmediata = new TBL_CAUSA_TRABAJADOR()
                {
                    ID_EVENTO_TRABAJADOR = existeEventoTrabajador.ID_EVENTO_TRABAJADOR,
                    ID_CAUSA = idCausaInmediata
                };
                bd.TBL_CAUSA_TRABAJADOR.InsertOnSubmit(nuevaCausaInmediata);
                bd.SubmitChanges();
            }
            #endregion
            #region [CAUSA_LISTA_FATORES_AUTOCUIDADO] Elimino todos las causas de autocuidado del informe preliminar y agrego las nuevas
            try
            {
                var autoCuidado = (from variable in bd.TBL_CAUSA_TRABAJADOR
                                   join causa in bd.TBL_CAUSA on variable.ID_CAUSA equals causa.ID_CAUSA
                                   where variable.ID_EVENTO_TRABAJADOR == existeEventoTrabajador.ID_EVENTO_TRABAJADOR && causa.TIPO_CAUSA == e0063.CAUSA_AUTO_CUIDADO
                                   select variable).ToList();
                bd.TBL_CAUSA_TRABAJADOR.DeleteAllOnSubmit(autoCuidado);
                bd.SubmitChanges();
            }
            catch (Exception ex) { }

            foreach (int idCausaInmediata in CAUSA_LISTA_FATORES_AUTOCUIDADO)
            {
                TBL_CAUSA_TRABAJADOR nuevaCausaInmediata = new TBL_CAUSA_TRABAJADOR()
                {
                    ID_EVENTO_TRABAJADOR = existeEventoTrabajador.ID_EVENTO_TRABAJADOR,
                    ID_CAUSA = idCausaInmediata
                };
                bd.TBL_CAUSA_TRABAJADOR.InsertOnSubmit(nuevaCausaInmediata);
                bd.SubmitChanges();
            }
            #endregion
            #region [CAUSA_LISTA_FACTORES_ERRORES] Elimino todos las causas de errores del informe preliminar y agrego las nuevas
            try
            {
                var errores = (from variable in bd.TBL_CAUSA_TRABAJADOR
                               join causa in bd.TBL_CAUSA on variable.ID_CAUSA equals causa.ID_CAUSA
                               where variable.ID_EVENTO_TRABAJADOR == existeEventoTrabajador.ID_EVENTO_TRABAJADOR && causa.TIPO_CAUSA == e0063.CAUSA_ERRORES
                               select variable).ToList();
                bd.TBL_CAUSA_TRABAJADOR.DeleteAllOnSubmit(errores);
                bd.SubmitChanges();
            }
            catch (Exception ex) { }

            foreach (int idCausaInmediata in CAUSA_LISTA_FACTORES_ERRORES)
            {
                TBL_CAUSA_TRABAJADOR nuevaCausaInmediata = new TBL_CAUSA_TRABAJADOR()
                {
                    ID_EVENTO_TRABAJADOR = existeEventoTrabajador.ID_EVENTO_TRABAJADOR,
                    ID_CAUSA = idCausaInmediata
                };
                bd.TBL_CAUSA_TRABAJADOR.InsertOnSubmit(nuevaCausaInmediata);
                bd.SubmitChanges();
            }
            #endregion

            TrabajadorInvolucradoJSON trabajadorInvolucrado = new TrabajadorInvolucradoJSON()
            {
                ID_EVENTO_EMPRESA = (int)existeEventoTrabajador.ID_EVENTO_EMPRESA,
                ID_EVENTO_TRABAJADOR = existeEventoTrabajador.ID_EVENTO_TRABAJADOR,
                RUT_TRABAJADOR = RUT_TRABAJADOR,
                NOMBRES = NOMBRES,
                APELLIDO_PATERNO =APELLIDO_PATERNO,
                APELLIDO_MATERNO = APELLIDO_MATERNO,
                ANOS_EXPERIENCIA_LABORAL = (int)ANOS_EXPERIENCIA_LABORAL,
                ANOS_EXPERIENCIA_CARGO = ANOS_EXPERIENCIA_CARGO,
                ID_CARGO = ID_CARGO,
                IS_CTP = IS_CTP,
                CAUSA_INMEDIATA_ACCION = CAUSA_INMEDIATA_ACCION,
                CAUSA_LISTA_FACTORES_CAP_FISICA_INADECUADA = CAUSA_LISTA_FACTORES_CAP_FISICA_INADECUADA,
                CAUSA_LISTA_FACTORES_CAP_PSICOLOGICA_INADECUADA = CAUSA_LISTA_FACTORES_CAP_PSICOLOGICA_INADECUADA,
                CAUSA_LISTA_FATORES_TENSION_FISICA = CAUSA_LISTA_FATORES_TENSION_FISICA,
                CAUSA_LISTA_FATORES_TENSION_MENTAL = CAUSA_LISTA_FATORES_TENSION_MENTAL,
                CAUSA_LISTA_FATORES_FALTA_CONOCIMIETO = CAUSA_LISTA_FATORES_FALTA_CONOCIMIETO,
                CAUSA_LISTA_FATORES_FALTA_HABILIDAD = CAUSA_LISTA_FATORES_FALTA_HABILIDAD,
                CAUSA_LISTA_FATORES_MOTIVACION_INADECUADA = CAUSA_LISTA_FATORES_MOTIVACION_INADECUADA,
                CAUSA_LISTA_FATORES_AUTOCUIDADO = CAUSA_LISTA_FATORES_AUTOCUIDADO,
                CAUSA_LISTA_FACTORES_ERRORES = CAUSA_LISTA_FACTORES_ERRORES
            };
            if (ID_MATRIZ != null && ID_MATRIZ != 0)
            {
                trabajadorInvolucrado.ID_MATRIZ = ID_MATRIZ;
            }
            objJSON.items = trabajadorInvolucrado;
            objJSON.totalCount = 1;
            objJSON.success = true;
            return objJSON;
        }