Beispiel #1
0
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());
    }
}