//proveedores de recursos
$fecha_solicitud = $xFecha->getFechaISO($solicitado);
$fecha_ministracion = $xFecha->getFechaISO($ministrado);
$fecha_vencimiento = $xFecha->getFechaISO($vencido);
$oficial_de_credito = getUsuarioActual();
$xBtn = new cHButton();
$xFRM = new cHForm("frmcreditoautorizado");
$xFRM->setTitle($xHP->getTitle());
$xHP->init();
//Correccciones
$contrato_corriente = setNoMenorQueCero($contrato_corriente) <= 0 ? DEFAULT_CUENTA_CORRIENTE : $contrato_corriente;
$xSoc = new cSocio($persona);
$arrDatos = array("periocidad_de_pago" => $periocidad, "tipo_de_producto" => $tipoconvenio, "numero_de_pagos" => $numeropagos, "contrato_corriente_relacionado" => $contrato_corriente, "fecha_de_ministracion" => $ministrado, "fecha_de_vencimiento" => $vencido, "monto_solicitado" => $monto_solicitado);
$sucess = true;
if ($xSoc->isOperable() == true) {
    $sucess = $xSoc->setPrevalidarCredito($arrDatos);
    if ($xSoc->getUUID() != $_SESSION[SYS_UUID]) {
        $msg .= "ERROR\tEl credito Validado no es el mismo que intenta guardar(" . $xSoc->getUUID() . "|" . $_SESSION[SYS_UUID] . ")\r\n";
        $sucess = false;
    }
} else {
    $sucess = false;
}
if ($sucess == true) {
    $grupo_asociado = $xSoc->getClaveDeGrupo();
    if ($periocidad == CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) {
        $dias_solicitados = $xFecha->setRestarFechas($fecha_vencimiento, $fecha_ministracion);
    } elseif ($periocidad == CREDITO_TIPO_PERIOCIDAD_DIARIO) {
        $dias_solicitados = $xFecha->setRestarFechas($fecha_vencimiento, $fecha_ministracion);
        $numeropagos = $dias_solicitados - $xFecha->getDiasHabilesEnRango($fecha_vencimiento, $fecha_ministracion);
    } else {
function jsaPrevalidarCredito($socio, $solicitud, $numpagos, $periocidad, $convenio, $contrato, $fechaMin, $fechaVenc, $monto)
{
    $clave = md5($socio . $solicitud . ROTTER_KEY . date("Ymd"));
    $out = false;
    $msg = "";
    $ctrl = "";
    $xHO = new cHObject();
    $xBtn = new cHButton();
    $arrDatos = array("numero_de_solicitud" => $solicitud, "periocidad_de_pago" => $periocidad, "tipo_de_producto" => $convenio, "numero_de_pagos" => $numpagos, "contrato_corriente_relacionado" => $contrato, "fecha_de_ministracion" => $fechaMin, "fecha_de_vencimiento" => $fechaVenc);
    if ($socio == DEFAULT_SOCIO or $socio == 0) {
        $msg .= "ERROR\t{$socio}\tClave de Persona no Valido\r\n";
        $out = false;
    } else {
        if ($solicitud == DEFAULT_CREDITO or $solicitud == 0) {
            $msg .= "ERROR\t{$socio}\t{$solicitud}\tNumero de Credito no Valido\r\n";
            $out = false;
        } else {
            //Valorar Numero de Creditos por Socio
            $xSoc = new cSocio($socio);
            if ($xSoc->existe($socio) == false) {
                $msg .= "ERROR\t{$socio}\tEl Socio No Existe\r\n";
                $out = false;
            } else {
                $xSoc->init();
                $out = $xSoc->setPrevalidarCredito($arrDatos);
                $msg .= $xSoc->getMessages();
            }
        }
    }
    if ($out == true) {
        $msg .= "OK\tEL CREDITO HA SIDO VALIDADO POR EL SISTEMA - CUMPLE LOS REQUISITOS\r\n";
        $ctrl .= $xBtn->getBasic("TR.guardar credito", "jsFormularioValidado('{$clave}')", "guardar", "idvalidarok");
        $ctrl .= $xBtn->getBasic("TR.validar nuevamente", "jsPrevalidarCredito()", "checar", "idnuevavalidacion");
    } else {
        //$ctrl = "<input type=\"button\" name=\"cmdSubmit\" onclick=\"jsPrevalidarCredito();\" value=\"VALIDAR CREDITO NUEVAMENTE\" />";
        $ctrl .= $xBtn->getBasic("TR.validar nuevamente", "jsPrevalidarCredito()", "checar", "idnuevavalidacion");
    }
    $msg = $xHO->Out($msg, OUT_HTML);
    $svalidate = "{$msg} {$ctrl}";
    return $svalidate;
}
$action = parametro("action", SYS_NINGUNO);
$periocidad = parametro("periocidad", 0, MQL_INT);
$convenio = parametro("producto", 0, MQL_INT);
$pagos = parametro("pagos", 0, MQL_INT);
$contrato = parametro("contrato", DEFAULT_CUENTA_CORRIENTE, MQL_INT);
$vencido = parametro("vencido");
$ministrado = parametro("ministrado");
$monto = parametro("monto", 0, MQL_FLOAT);
//function jsaValidarCredito($socio,  $numpagos, $periocidad, $convenio, $contrato, $fechaMin, $fechaVenc, $monto){
$xSoc = new cSocio($persona);
$out = false;
$msg = "";
//"numero_de_solicitud" => $solicitud,
$arrDatos = array("periocidad_de_pago" => $periocidad, "tipo_de_producto" => $convenio, "numero_de_pagos" => $pagos, "contrato_corriente_relacionado" => $contrato, "fecha_de_ministracion" => $ministrado, "fecha_de_vencimiento" => $vencido, "monto_solicitado" => $monto);
if ($xSoc->isOperable() == true) {
    $out = $xSoc->setPrevalidarCredito($arrDatos);
} else {
}
$msg .= $xSoc->getMessages();
if ($out == true) {
    $_SESSION[SYS_UUID] = $xSoc->getUUID();
    $msg .= "OK\tEL CREDITO HA SIDO VALIDADO POR EL SISTEMA - CUMPLE LOS REQUISITOS\r\n";
    //$xFRM->OButton("TR.guardar credito", "var xG = new Gen(); xG.close()", "guardar", "idvalidarok");
    //$xFRM->OButton("TR.validar nuevamente", "jsaValidarCredito()", "checar", "idnuevavalidacion");
} else {
    $_SESSION[SYS_UUID] = null;
    //$ctrl = "<input type=\"button\" name=\"cmdSubmit\" onclick=\"jsPrevalidarCredito();\" value=\"VALIDAR CREDITO NUEVAMENTE\" />";
    //$xFRM->OButton("TR.validar nuevamente", "jsaValidarCredito()", "checar", "idnuevavalidacion");
}
$xFRM->addAviso($msg);
$xFRM->addCerrar();