function GrabarRegistroNomina($idRow, $idEstablecimiento, $cuil, $nombre, $fechaingreso, $fechainiexpo, $sectortrab, $puestotrab, $arrayRiesgos) { global $conn; try { $usualta = substr($_SESSION["usuario"], 0, 20); $idcabeceranomina = Validar_NominaWebAnual($idEstablecimiento); $cantidad = 0; $idrelevasociadoconriesgo = ''; //CN_ID de la tabla HYS.HCN_CABECERANOMINA - Se carga cuando la nómina es importada y aprobada $idrelevasociadosinriesgo = ''; //ID de la tabla ART.PSR_SINRIESGO GrabarEstadoNomina($idEstablecimiento, 'C', false, $conn); if ($idcabeceranomina == 0 or $idRow == 0) { $idcabeceranomina = Insert_CabeceraNominaWEB($conn, $idEstablecimiento, $cantidad, $usualta, $idrelevasociadoconriesgo, $idrelevasociadosinriesgo); } else { $idcabeceranomina = $idRow; } $sqlValidaItem = "SELECT NVL(DW_ID, 0) \n\t\t\t\t\t\t\tFROM hys.hdw_detallenominaweb \n\t\t\t\t\t\t WHERE dw_id = :idcabeceranomina \n\t\t\t\t\t\t AND dw_cuil = :cuil "; $paramsItem = array("idcabeceranomina" => $idcabeceranomina, "cuil" => $cuil); $itemValido = ValorSql($sqlValidaItem, "", $paramsItem); if ($itemValido == 0) { $iddetallenomina = Insert_DetalleNominaWEB($conn, $idcabeceranomina, $cuil, $nombre, $fechaingreso, $sectortrab, $puestotrab, $usualta, $fechainiexpo); } else { $iddetallenomina = $itemValido; Update_DetalleNominaWEB($conn, $iddetallenomina, $nombre, $fechaingreso, $fechainiexpo, $sectortrab, $puestotrab, $usualta); } $NotDeleteIn = ''; $DarrayRiesgos = json_decode($arrayRiesgos, true); if ($arrayRiesgos != '') { foreach ($DarrayRiesgos as $clave => $idriesgoESOP) { $sqlValidoRiesgo = "SELECT NVL(RG_ID, 0) \n\t\t\t\t\t\t\t\t\tFROM PRG_RIESGOS \n\t\t\t\t\t\t\t\t\tWHERE DECODE (rg_sufijoesop, '', rg_esop, rg_esop || ' ' || rg_sufijoesop) = :ESOP "; $paramsItem = array(":ESOP" => $idriesgoESOP); $idRiesgo = ValorSql($sqlValidoRiesgo, "", $paramsItem); if ($idRiesgo > 0) { if ($NotDeleteIn != '') { $NotDeleteIn .= ', '; } $NotDeleteIn .= $idRiesgo; //VALIDO QUE NO ESTE YA INGRESADO EN LA TABLA $sqlValidoRiesgo = "SELECT NVL (rt_id, 0) \n\t\t\t\t\t\t\t\t\t\tFROM hys.hrt_riestrabweb \n\t\t\t\t\t\t\t\t\t\tWHERE rt_iddetallenomina = :iddetallenomina \n\t\t\t\t\t\t\t\t\t\tAND rt_idriesgo = :idriesgo "; $paramsItem = array("iddetallenomina" => $iddetallenomina, "idriesgo" => $idRiesgo); $itemRiesgoValido = ValorSql($sqlValidoRiesgo, "", $paramsItem); if ($itemRiesgoValido == 0 or $itemRiesgoValido == '') { Insert_RiesTraWEB($conn, $iddetallenomina, $idRiesgo, $usualta); } } } } //ELIMINA TODOS LOS QUE SE DESELECCIONARON.... DeleteNotIn_RiesTraWEB($conn, $NotDeleteIn, $iddetallenomina); DBCommit($conn); return true; } catch (Exception $e) { DBRollback($conn); SalvarErrorTxt(__FILE__, __FUNCTION__, __LINE__, $e->getMessage()); throw new Exception("Error " . $e->getMessage()); return false; } }
function Confirma_NominaWeb($IDESTABLECIWEB) { /*Esta funcion valida y confirma la nomina web se van a validar todos los registros de la nomina que esten completos para el envio se va a generar un nuevo numero de version y se actualiza la fecha de versionado */ $resultadoText = ''; try { global $conn; $params = array(":IDCABECERANOMINA" => $IDESTABLECIWEB); $sql = ObtenerDatosNominaWeb('', '', false); $sql = ReemplazaCaracterStr($sql, '?', ''); $sql = ReemplazaCaracterStr($sql, '¿', ''); $stmt = DBExecSql($conn, $sql, $params); $contador = 0; if (DBGetRecordCount($stmt) == 0) { return utf8_encode("Nómina vacia."); } while ($row = DBGetQuery($stmt)) { $faltantes = ''; foreach ($row as $key => $value) { if (!isset($value)) { $value = ''; } if ($value == '') { if ($faltantes != '') { $faltantes .= ', '; } switch ($key) { case "NOMBRE": $faltantes .= 'Nombre '; break; case "FECING": $faltantes .= "Fecha ingreso "; break; case "FECINI": $faltantes .= "Fecha inicio"; break; case "SECTOR": $faltantes .= "Sector "; break; case "PUESTO": $faltantes .= "Puesto "; break; case "LISTAESOP": $faltantes .= "ESOP "; break; } // $faltantes .= $key; } } if ($faltantes != '') { $contador++; $resultadoText .= " CUIL " . $row['CUIL'] . ". Completar: " . $faltantes . " <p>"; } else { $fechaIngreso = $row['FECING']; $fechaInicio = $row['FECINI']; $resultFecha = ValidarFechas($fechaIngreso, $fechaInicio); if ($resultFecha != '') { $contador++; $resultadoText .= " CUIL " . $row['CUIL'] . ". Error: " . $resultFecha . " <p>"; } } } if ($resultadoText != '') { return $resultadoText . " Total registros incompletos " . $contador; } else { GrabarEstadoNomina($IDESTABLECIWEB, 'L', false, $conn); DBCommit($conn); } return $resultadoText; } catch (Exception $e) { DBRollback($conn); SalvarErrorTxt(__FILE__, __FUNCTION__, __LINE__, $e->getMessage()); RetronaXML($e->getMessage()); } }