protected void Button_Guardar_Click(object sender, EventArgs e) { try { if (DropDownList_Clase_contrato.SelectedValue == ClaseContrato.IN.ToString()) { parametroSalarial ParametroSalarial = new parametroSalarial(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataRow dataRow = ParametroSalarial.ObtenerPorAño(System.DateTime.Now.Year); if (dataRow != null) { if (string.IsNullOrEmpty(dataRow["SMMLV"].ToString())) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se ha definido el SMMLV para el año " + System.DateTime.Now.Year.ToString(), Proceso.Error); return; } else { if (string.IsNullOrEmpty(dataRow["SMMLV_SALARIO_INTEGRAL"].ToString())) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se ha definido la cantidad de SMMLV del salario integral, para el año" + System.DateTime.Now.Year.ToString(), Proceso.Error); return; } else { if ((Convert.ToDecimal(this.TextBox_Salario.Text)) < (Convert.ToDecimal(dataRow["SMMLV_SALARIO_INTEGRAL"].ToString()) * Convert.ToDecimal(dataRow["SMMLV"].ToString()))) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El salario integral es menor al permitido " + (Convert.ToDecimal(dataRow["SMMLV_SALARIO_INTEGRAL"].ToString()) * Convert.ToDecimal(dataRow["SMMLV"].ToString())), Proceso.Error); return; } else { if (!(Convert.ToDecimal(TextBox_contrato_integral_porcentaje_parafiscales.Text).Equals(Convert.ToDecimal(dataRow["PORC_BASE_SEGSOC_SALINTEGRAL"].ToString())))) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El porcentaje parafiscal debe ser " + dataRow["PORC_BASE_SEGSOC_SALINTEGRAL"].ToString(), Proceso.Error); return; } else { if (!(Convert.ToDecimal(TextBox_contrato_integral_porcentaje_prestacional.Text).Equals(Convert.ToDecimal(dataRow["PORC_BASE_VACACIONES_SALINTEGRAL"].ToString())))) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El porcentaje prestacional debe ser " + dataRow["PORC_BASE_VACACIONES_SALINTEGRAL"].ToString(), Proceso.Error); return; } } } } } } else { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se han configurado los parametros salariales para el año " + System.DateTime.Now.Year.ToString(), Proceso.Error); return; } } tools _tools = new tools(); SecureQueryString QueryStringSeguro; QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]); String persona = QueryStringSeguro["persona"].ToString(); String[] datos = persona.Split(','); requisicion _req = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaReq = _req.ObtenerComRequerimientoPorIdRequerimiento(Convert.ToDecimal(datos[1])); DataRow filaReq = tablaReq.Rows[0]; String idPerfil = filaReq["REGISTRO_PERFIL"].ToString(); Decimal riesgo = 0; String centroCosto = "0"; String SubCentroCosto = "0"; String Ciudad = null; String servicio = "0"; Decimal salario = 0; Decimal smmlv = 0; Decimal smmlv_integral = 0; String AFP = null; String ARP = null; String CCF = null; String EPS = null; String pensionado = "N"; int id_requerimiento = Convert.ToInt32(datos[1].ToString()); int id_solicitud = Convert.ToInt32(datos[0].ToString()); int id_empresa = Convert.ToInt32(datos[3].ToString()); int ID_SERVICIO_RESPECTIVO = Convert.ToInt32(filaReq["ID_SERVICIO_RESPECTIVO"].ToString()); String clase_Contrato = null; String tipo_Contrato = null; DateTime fechaInicio; DateTime fechaFinal; int id_entidad_Bancaria = 0; String formaPago = null; String tipoCuenta = String.Empty; String num_Cuenta = null; String salInt = null; String pago_Dias_Productividad = "N"; String sena_productivo = "N"; String sena_electivo = "N"; String practicante_Universitario = "N"; Decimal valor_nomina = 0; Decimal valor_contrato = 0; DateTime fecha_inicio_periodo; DateTime fecha_fin_periodo; String periodo_pago = null; radicacionHojasDeVida _sol = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaSolicitud = _sol.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(datos[0])); DataRow filaSolicitud = tablaSolicitud.Rows[0]; formaPago = filaSolicitud["FORMA_PAGO"].ToString(); parametroSalarial par = new parametroSalarial(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable par_ta = par.ObtenerSalarioMinimo(Convert.ToInt32(System.DateTime.Today.Year.ToString())); DataRow fila = par_ta.Rows[0]; smmlv = Convert.ToDecimal(fila["SMMLV"].ToString()); par_ta.Clear(); fila.Delete(); par_ta = par.ObtenerSalarioIntegral(Convert.ToInt32(System.DateTime.Today.Year.ToString())); fila = par_ta.Rows[0]; smmlv_integral = Convert.ToDecimal(fila["SMMLV_SALARIO_INTEGRAL"].ToString()); Ciudad = this.DropDownList_Ciudad.SelectedValue; centroCosto = this.DropDownList_CentroCosto.SelectedValue; SubCentroCosto = this.DropDownList_sub_cc.SelectedValue; if (DropDownList_Salario_integral.SelectedValue.Equals("S")) { salario = Convert.ToDecimal(TextBox_Salario.Text); Decimal salarioInt = smmlv * smmlv_integral; if (salario < salarioInt) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El salario ingresado debe ser igual o mayor a " + salarioInt + " dado que indico que es salario integral", Proceso.Advertencia); } } #region afiliaciones afiliacion _afiliacion = new afiliacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaAfiliacion; DataRow filaAfiliacion; if (RadioButton_PRACTICANTE_UNI.Checked) { practicante_Universitario = "S"; pensionado = "N"; tablaAfiliacion = _afiliacion.ObtenerconafiliacionArpPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1])); if (tablaAfiliacion.Rows.Count <= 0) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a ARL", Proceso.Advertencia); } else { filaAfiliacion = tablaAfiliacion.Rows[0]; ARP = filaAfiliacion["REGISTRO"].ToString(); tablaAfiliacion.Clear(); filaAfiliacion.Delete(); } tablaAfiliacion = _afiliacion.ObtenerconafiliacionEpsPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1])); if (tablaAfiliacion.Rows.Count <= 0) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a EPS.", Proceso.Advertencia); } else { filaAfiliacion = tablaAfiliacion.Rows[0]; EPS = filaAfiliacion["REGISTRO"].ToString(); tablaAfiliacion.Clear(); filaAfiliacion.Delete(); } } else if (RadioButton_SENA_ELECTIVO.Checked) { sena_electivo = "S"; pensionado = "N"; tablaAfiliacion = _afiliacion.ObtenerconafiliacionEpsPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1])); if (tablaAfiliacion.Rows.Count <= 0) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a EPS.", Proceso.Advertencia); } else { filaAfiliacion = tablaAfiliacion.Rows[0]; EPS = filaAfiliacion["REGISTRO"].ToString(); tablaAfiliacion.Clear(); filaAfiliacion.Delete(); } } else if (RadioButton_SENA_PRODUCTIVO.Checked) { sena_productivo = "S"; pensionado = "N"; tablaAfiliacion = _afiliacion.ObtenerconafiliacionEpsPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1])); if (tablaAfiliacion.Rows.Count <= 0) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a EPS.", Proceso.Advertencia); } else { filaAfiliacion = tablaAfiliacion.Rows[0]; EPS = filaAfiliacion["REGISTRO"].ToString(); tablaAfiliacion.Clear(); filaAfiliacion.Delete(); } tablaAfiliacion = _afiliacion.ObtenerconafiliacionArpPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1])); if (tablaAfiliacion.Rows.Count <= 0) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a ARL.", Proceso.Advertencia); } else { filaAfiliacion = tablaAfiliacion.Rows[0]; ARP = filaAfiliacion["REGISTRO"].ToString(); tablaAfiliacion.Clear(); filaAfiliacion.Delete(); } } else { tablaAfiliacion = _afiliacion.ObtenerconafiliacionEpsPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1])); if (tablaAfiliacion.Rows.Count <= 0) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a EPS.", Proceso.Advertencia); } else { filaAfiliacion = tablaAfiliacion.Rows[0]; EPS = filaAfiliacion["REGISTRO"].ToString(); tablaAfiliacion.Clear(); filaAfiliacion.Delete(); } tablaAfiliacion = _afiliacion.ObtenerconafiliacionArpPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1])); if (tablaAfiliacion.Rows.Count <= 0) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a ARL.", Proceso.Advertencia); } else { filaAfiliacion = tablaAfiliacion.Rows[0]; ARP = filaAfiliacion["REGISTRO"].ToString(); tablaAfiliacion.Clear(); filaAfiliacion.Delete(); } tablaAfiliacion = _afiliacion.ObtenerconafiliacionCajasCPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1])); if (tablaAfiliacion.Rows.Count <= 0) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a CCF.", Proceso.Advertencia); } else { filaAfiliacion = tablaAfiliacion.Rows[0]; CCF = filaAfiliacion["REGISTRO"].ToString(); tablaAfiliacion.Clear(); filaAfiliacion.Delete(); } tablaAfiliacion = _afiliacion.ObtenerconafiliacionfpensionesPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1])); if (tablaAfiliacion.Rows.Count <= 0) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a AFP.", Proceso.Advertencia); } else { filaAfiliacion = tablaAfiliacion.Rows[0]; pensionado = filaAfiliacion["PENSIONADO"].ToString(); if (pensionado.Equals("S")) { AFP = "0"; } else { AFP = filaAfiliacion["REGISTRO"].ToString(); } } } #endregion afiliaciones #region riesgo condicionesContratacion _riesgo = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); if (Session["idEmpresa"].ToString().Equals("3")) { if (String.IsNullOrEmpty(DropDownList_servicio.SelectedValue.ToString())) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "Debe seleccionar un servicio.", Proceso.Advertencia); } else { if (!(String.IsNullOrEmpty(DropDownList_sub_cc.SelectedValue.ToString()))) { DataTable tablaCondContr = _riesgo.ObtenerCondicionContratacionPorIdPerfilIdSubCIdServicio(Convert.ToDecimal(idPerfil), Convert.ToDecimal(DropDownList_sub_cc.SelectedItem.Value.ToString()), Convert.ToDecimal(DropDownList_servicio.SelectedItem.Value.ToString())); DataRow filaCondContrata = tablaCondContr.Rows[0]; riesgo = Convert.ToDecimal(filaCondContrata["RIESGO"].ToString()); SubCentroCosto = DropDownList_sub_cc.SelectedValue; servicio = DropDownList_servicio.SelectedValue; } else if (!(String.IsNullOrEmpty(DropDownList_CentroCosto.SelectedValue.ToString()))) { DataTable tablaCondContr = _riesgo.ObtenerCondicionContratacionPorIdPerfilIdCentroCIdServicio(Convert.ToDecimal(idPerfil), Convert.ToDecimal(DropDownList_CentroCosto.SelectedItem.Value.ToString()), Convert.ToDecimal(DropDownList_servicio.SelectedItem.Value.ToString())); DataRow filaCondContrata = tablaCondContr.Rows[0]; riesgo = Convert.ToDecimal(filaCondContrata["RIESGO"].ToString()); centroCosto = DropDownList_CentroCosto.SelectedValue; servicio = DropDownList_servicio.SelectedValue; } else if (!(String.IsNullOrEmpty(DropDownList_Ciudad.SelectedValue.ToString()))) { DataTable tablaCondContr = _riesgo.ObtenerCondicionContratacionPorIdPerfilIdCiudadIdServicio(Convert.ToDecimal(idPerfil), DropDownList_Ciudad.SelectedItem.Value.ToString(), Convert.ToDecimal(DropDownList_servicio.SelectedItem.Value.ToString())); DataRow filaCondContrata = tablaCondContr.Rows[0]; riesgo = Convert.ToDecimal(filaCondContrata["RIESGO"].ToString()); Ciudad = DropDownList_Ciudad.SelectedValue; servicio = DropDownList_servicio.SelectedValue; } } } else { if (!(String.IsNullOrEmpty(DropDownList_sub_cc.SelectedValue.ToString()))) { DataTable tablaCondContr = _riesgo.ObtenerCondicionComercialPorIdPerfilIdSubC(Convert.ToDecimal(idPerfil), Convert.ToDecimal(DropDownList_sub_cc.SelectedItem.Value.ToString())); DataRow filaCondContrata = tablaCondContr.Rows[0]; riesgo = Convert.ToDecimal(filaCondContrata["RIESGO"].ToString()); SubCentroCosto = DropDownList_sub_cc.SelectedValue; } else if (!(String.IsNullOrEmpty(DropDownList_CentroCosto.SelectedValue.ToString()))) { DataTable tablaCondContr = _riesgo.ObtenerCondicionComercialPorIdPerfilIdCentroC(Convert.ToDecimal(idPerfil), Convert.ToDecimal(DropDownList_CentroCosto.SelectedItem.Value.ToString())); DataRow filaCondContrata = tablaCondContr.Rows[0]; riesgo = Convert.ToDecimal(filaCondContrata["RIESGO"].ToString()); centroCosto = DropDownList_CentroCosto.SelectedValue; } else if (!(String.IsNullOrEmpty(DropDownList_Ciudad.SelectedValue.ToString()))) { DataTable tablaCondContr = _riesgo.ObtenerCondicionComercialPorIdPerfilIdCiudad(Convert.ToDecimal(idPerfil), DropDownList_Ciudad.SelectedItem.Value.ToString()); DataRow filaCondContrata = tablaCondContr.Rows[0]; riesgo = Convert.ToDecimal(filaCondContrata["RIESGO"].ToString()); Ciudad = DropDownList_Ciudad.SelectedValue; } } #endregion riesgo clase_Contrato = DropDownList_Clase_contrato.SelectedItem.Value.ToString(); tipo_Contrato = DropDownList_tipo_Contrato.SelectedItem.Value.ToString(); if (clase_Contrato.Equals("C_A") == true) { fechaInicio = Convert.ToDateTime(TextBox_contrato_aprendiz_fecha_inicio.Text); } else { fechaInicio = Convert.ToDateTime(TextBox_fecha_inicio.Text); } if (clase_Contrato.Equals("I") | clase_Contrato.Equals("L_S_C_D_A") ) { fechaFinal = Convert.ToDateTime("01/01/1900"); } else { if (clase_Contrato.Equals("C_A") == true) { fechaFinal = Convert.ToDateTime(TextBox_contrato_aprendiz_fecha_final.Text); } else { fechaFinal = Convert.ToDateTime(TextBox_fecha_terminacion.Text); } } if (formaPago.Equals("CHEQUE") | formaPago.Equals("EFECTIVO")) { num_Cuenta = null; id_entidad_Bancaria = 0; tipoCuenta = String.Empty; } else { if (String.IsNullOrEmpty(filaSolicitud["ID_ENTIDAD"].ToString())) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se ha seleccionado la entidad bancaria, ni el número de cuenta, vuelva a la opción de exámenes y complete el proceso. Verifique por favor.", Proceso.Advertencia); num_Cuenta = null; id_entidad_Bancaria = 0; } else { id_entidad_Bancaria = Convert.ToInt32(filaSolicitud["ID_ENTIDAD"].ToString()); num_Cuenta = filaSolicitud["NUM_CUENTA"].ToString(); tipoCuenta = filaSolicitud["TIPO_CUENTA"].ToString(); } } salario = Convert.ToDecimal(TextBox_Salario.Text); salInt = DropDownList_Salario_integral.SelectedValue.ToString(); if (DropDownList_tipo_Contrato.SelectedValue.Equals("PR")) { pago_Dias_Productividad = "S"; valor_contrato = Convert.ToDecimal(TextBox_Salario.Text); valor_nomina = Convert.ToDecimal(TextBox_Salario.Text); } periodo_pago = DropDownList_PERIODO_PAGO.SelectedValue.ToString(); fecha_inicio_periodo = fechaInicio; fecha_fin_periodo = fechaFinal; registroContrato contrato = new registroContrato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaContratosExistentes = contrato.ObtenerNomEmpleadoPorIDSolicitudYFechaIngreso(id_solicitud, fechaInicio); if (tablaContratosExistentes.Rows.Count <= 0) { String datosG = contrato.ElaborarContrato(id_requerimiento, id_solicitud, id_empresa, Convert.ToInt32(centroCosto), Convert.ToInt32(SubCentroCosto), Ciudad, ID_SERVICIO_RESPECTIVO, Convert.ToInt32(servicio), Convert.ToInt32(ARP), Convert.ToInt32(CCF), Convert.ToInt32(EPS), Convert.ToInt32(AFP), Convert.ToDecimal(riesgo), pensionado, clase_Contrato, tipo_Contrato, "C", fechaInicio, fechaFinal, salInt, salario, "S", "S", "N", "N", id_entidad_Bancaria, num_Cuenta, formaPago, pago_Dias_Productividad, sena_productivo, sena_electivo, practicante_Universitario, valor_contrato, valor_nomina, fecha_inicio_periodo, fecha_fin_periodo, periodo_pago, tipoCuenta, DropDownList_DESCRIPCION_SALARIO.SelectedValue.ToString(), Convert.ToDecimal(HiddenField_ID_PERFIL.Value)); if (!(String.IsNullOrEmpty(contrato.MensajeError))) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El empleado no fue creado, " + contrato.MensajeError, Proceso.Error); } else { String[] d = datosG.Split(','); HiddenField_ID_CONTRATO.Value = d[0]; HiddenField_persona.Value = id_solicitud + "," + id_requerimiento + "," + datos[2] + "," + datos[3] + "," + datos[4] + "," + datosG; Clausula clausula = new Clausula(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); Cargar(clausula.ObtenerContratacionPorIdEmpleado(Convert.ToDecimal(d[1])), GridView_clausulas); HiddenField_ID_EMPLEADO.Value = d[1].ToString(); cargar_menu_botones_modulos_internos(false); Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El empleado y el contrato fueron creados con exito: " + datosG, Proceso.Correcto); } configurarBotonesDeAccion(true, true, true, true); Panel_Informacion_Contrato.Enabled = false; } else { DataRow filaContratos = tablaContratosExistentes.Rows[0]; String datosG = filaContratos["ID_CONTRATO"].ToString() + "," + filaContratos["ID_EMPLEADO"].ToString(); Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El Trabajador ya tiene un contrato activo con la misma fecha de ingreso. Los datos del contrato son: " + datosG, Proceso.Correcto); } } catch (Exception err) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, err.Message, Proceso.Error); } }