<body>
<?php 
$socio_inicial = $_GET["on"];
$socio_final = $_GET["off"];
$sql_notificaciones = "SELECT * FROM seguimiento_notificaciones WHERE tipo_credito='planes'\n\tAND estatus_notificacion='pendiente' AND numero_notificacion<3";
$rs = mysql_query($sql_notificaciones);
while ($rw = mysql_fetch_array($rs)) {
    $nombre = getNombreSocio($rw[1]);
    $domicilio = $rw[15];
    if ($domicilio == '0') {
        $domicilio = "NO EXISTE DOMICILIO DEFINIDO. CAPTURELO O EDITELO";
    }
    //Datos del Credito
    $sql_cred = "SELECT * FROM creditos_solicitud WHERE numero_solicitud={$rw['2']} AND numero_socio={$rw['1']} LIMIT 0,1";
    $dsol = obten_filas($sql_cred);
    $dias_venc = restarfechas(fechasys(), $dsol[15]);
    $interes = getFMoney($rw[9]);
    $moratorio = getFMoney($rw[10]);
    $otros_cargos = getFMoney($rw[11]);
    $capital = getFMoney($rw[8]);
    $total = getFMoney($rw[12]);
    echo getRawHeader();
    ?>
	<p class='bigtitle'>NOTIFICACION DE COBRO NUM. <?php 
    echo $rw[3];
    ?>
</p>
		<br />
		<div class='numc'>
		<table width="60%"   >
			  <tr>
 function setGenerarInteresSobreSDPM($recibo = false, $fecha_de_corte = false)
 {
     $sucursal = getSucursal();
     $xQL = new MQL();
     $xErC = new cErrorCodes();
     $xLog = new cCoreLog();
     $xDTb = new cSAFETabla(TCAPTACION_CUENTAS);
     //(`captacion_cuentas`.`sucursal` ='$sucursal') AND
     $txtlog = "";
     $txtlog .= "==========================================================================================\r\n";
     $txtlog .= "==========\tCALCULO DE INTERESES SOBRE SDPM DE CUENTAS A LA VISTA EN LA SUCURSAL {$sucursal}\r\n";
     $txtlog .= "==========\tRECIBO DE CALCULO {$recibo}\r\n";
     $txtlog .= "==========================================================================================\r\n";
     $xF0 = new cFecha(0, $fecha_de_corte);
     $fecha_de_corte = $fecha_de_corte == false ? fechasys() : $fecha_de_corte;
     $dias_del_mes = $xF0->getDiasDelMes();
     $fecha_de_inicio = $xF0->getDiaInicial();
     $fecha_de_termino = $xF0->getDiaFinal();
     $ejer = $xF0->anno();
     $peri = $xF0->mes();
     //(`captacion_cuentas`.`sucursal` ='$sucursal') AND
     /**
      * Reestructurar los Dias SDPM para los Creditos que no han tenido Movimiento
      */
     //Generando el SDPM de los Credito sin movimiento o ultimo SDPM del mes
     $SQL_LST = $xDTb->getQueryInicial() . "\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t(`captacion_cuentas`.`estatus_cuenta` ='10') AND\n\t\t\t\t\t\t\t(`captacion_subproductos`.`metodo_de_abono_de_interes` ='AL_FIN_DE_MES')\n\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t(`captacion_cuentas`.`saldo_cuenta`>= " . A_LA_VISTA_MONTO_MINIMO . " )\n\t\t\t\t\t\t";
     $txtlog .= date("H:i:s") . "\t=========Cerrando las cuentas a su ultimo SDPM\r\n";
     $txtlog .= date("H:i:s") . "\tLas Cuentas con Saldo Menor a " . A_LA_VISTA_MONTO_MINIMO . " no se Incluyen\r\n";
     $rsUSDPM = $xQL->getDataRecord($SQL_LST);
     foreach ($rsUSDPM as $rwUSDPM) {
         $cuenta = $rwUSDPM["numero_cuenta"];
         $socio = $rwUSDPM["numero_socio"];
         $fecha_ultimo_mvto = $rwUSDPM["fecha_afectacion"];
         $saldo_actual = $rwUSDPM["saldo_cuenta"];
         $dias_de_sdpm = restarfechas($fecha_de_corte, $fecha_ultimo_mvto);
         $xCta = new cCuentaALaVista($cuenta);
         $xCta->init($rwUSDPM);
         if ($dias_de_sdpm > $dias_del_mes) {
             $txtlog .= date("H:i:s") . "\t{$socio}\t{$cuenta}\tLos dias del SDPM son de {$dias_de_sdpm} Mayores al del Mes {$dias_del_mes}, se ajustan\r\n";
             $xFMes = new cFecha(0, $fecha_de_corte);
             $dias_de_sdpm = $xF0->setRestarFechas($fecha_de_corte, $xF0->getDiaInicial());
         }
         $sdpm = $saldo_actual * $dias_de_sdpm;
         //Obtiene la Tasa
         $tasa = $xCta->getTasaAplicable(0, 0, $saldo_actual);
         //Inserta el SDPM
         $sqlUS = "INSERT INTO captacion_sdpm_historico\n\t\t\t\t\t\t(ejercicio, periodo, cuenta, fecha, dias, tasa, monto, recibo)\n\t    \t\t\t\tVALUES( {$ejer}, {$peri}, {$cuenta}, '{$fecha_de_corte}', {$dias_de_sdpm}, {$tasa},{$sdpm}, {$recibo})";
         my_query($sqlUS);
         //Actualiza la Cuenta
         $sqlUI = "UPDATE captacion_cuentas\n\t    \t\t\t\t\t\tSET fecha_afectacion='{$fecha_de_corte}', ultimo_sdpm={$sdpm}\n\t    \t\t\t\t\t\tWHERE numero_cuenta={$cuenta}";
         my_query($sqlUI);
         $txtlog .= date("H:i:s") . "\t{$socio}\t{$cuenta}\tAgregando y Actualizando el SDPM por {$sdpm} del {$fecha_ultimo_mvto} al {$fecha_de_corte} por {$saldo_actual}\r\n";
     }
     //considerar fecha de Apertura
     //agregar al Recibo
     //TODO: Actualizar esta linea
     $SQL_Captacion = "\n\t\t\t\t\t\tSELECT\n\t\t\t\t\t\t\t`captacion_cuentas`.*,\n\t\t\t\t\t\t\t`captacion_subproductos`.*,\n\t\t\t\t\n\t\t\t\t\t`captacion_cuentas`.`numero_cuenta`                 AS `cuenta`,\n\t\t\t\t\t`captacion_cuentas`.`fecha_afectacion`              AS `apertura`,\n\t\t\t\t\t`captacion_cuentas`.`inversion_fecha_vcto`          AS `vencimiento`,\n\t\t\t\t\t`captacion_cuentas`.`tasa_otorgada`                 AS `tasa`,\n\t\t\t\t\t`captacion_cuentas`.`dias_invertidos`               AS `dias`,\n\t\t\t\t\t`captacion_cuentas`.`observacion_cuenta`            AS `observaciones`,\n\t\t\t\t\t`captacion_cuentas`.`saldo_cuenta` \t\t\t        AS `saldo`,\n\t\t\t\t\t`captacion_subproductos`.`descripcion_subproductos` AS `subproducto`,\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tSUM(`captacion_sdpm_historico`.`monto`) AS 'suma_sdpm'\n\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t`captacion_cuentas` `captacion_cuentas`\n\t\t\t\t\t\t\t\tINNER JOIN `captacion_subproductos` `captacion_subproductos`\n\t\t\t\t\t\t\t\tON `captacion_cuentas`.`tipo_subproducto` = `captacion_subproductos`.\n\t\t\t\t\t\t\t\t`idcaptacion_subproductos`\n\t\t\t\t\t\t\t\t\tINNER JOIN `captacion_sdpm_historico` `captacion_sdpm_historico`\n\t\t\t\t\t\t\t\t\tON `captacion_cuentas`.`numero_cuenta` = `captacion_sdpm_historico`.\n\t\t\t\t\t\t\t\t\t`cuenta`\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t(`captacion_cuentas`.`estatus_cuenta` ='10') AND\n\t\t\t\t\t\t\t(`captacion_subproductos`.`metodo_de_abono_de_interes` ='AL_FIN_DE_MES')\n\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t(`captacion_sdpm_historico`.`fecha` >='{$fecha_de_inicio}')\n\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t(`captacion_sdpm_historico`.`fecha` <='{$fecha_de_termino}')\n\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t(`captacion_cuentas`.`saldo_cuenta`>=" . A_LA_VISTA_MONTO_MINIMO . ")\n\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\t`captacion_sdpm_historico`.`cuenta`\n\t\t\t\t\t\t\t";
     setLog($SQL_Captacion);
     $rsCAP = $xQL->getDataRecord($SQL_Captacion);
     if (!$rsCAP) {
         if (MODO_DEBUG == true) {
             $txtlog .= $xQL->getMessages();
             //date("H:i:s") . "\tERROR (" . mysql_errno() . ") AL EJECUTAR LA CONSULTA";
         }
     } else {
         $txtlog .= "==========================================================================================\r\n";
         //$xT1	= new cTipos();
         foreach ($rsCAP as $rwC) {
             $cuenta = $rwC["numero_cuenta"];
             $socio = $rwC["numero_socio"];
             $apertura = $rwC["fecha_apertura"];
             $sumaSDPM = $rwC["suma_sdpm"];
             $dias_de_calc = $dias_del_mes;
             $promedio = $rwC["saldo_cuenta"];
             $modificadorDeInteres = $rwC["algoritmo_modificador_del_interes"];
             $modificadorDeTasa = $rwC["algoritmo_de_tasa_incremental"];
             $interes = 0;
             $producto = $rwC["tipo_subproducto"];
             //Si la Fecha de Apertura es Menor al Inicio de mes
             if (strtotime($apertura) > strtotime($fecha_de_inicio)) {
                 $dias_de_calc = restarfechas($fecha_de_termino, $apertura);
                 //Corrige el TIMESTAMP de Interes, la rotacion debe ser de al menos 24 Horas
                 if ($dias_de_calc == 0) {
                     $dias_de_calc = 1;
                 } elseif ($dias_de_calc < 0) {
                     $txtlog .= date("H:i:s") . "\t{$socio}\t{$cuenta}\tEROR_DIAS\t SDPM {$sumaSDPM}, Dias {$dias_de_calc}\r\n";
                     $dias_de_calc = 1;
                     $sumaSDPM = $promedio;
                 }
             }
             $xCta = new cCuentaALaVista($cuenta);
             $xCta->init($rwC);
             $promedio = round($sumaSDPM / $dias_de_calc, 2);
             $tasa_nueva = $xCta->getTasaAplicable(0, 0, $promedio);
             $tasa = $tasa_nueva;
             //OK: Ejecutar Modificador de Tasa
             eval($modificadorDeTasa);
             //setLog("$modificadorDeTasa");
             $interes = $sumaSDPM * $tasa / EACP_DIAS_INTERES;
             //OK: Ejecutar Consulta de Modificador de Interes
             eval($modificadorDeInteres);
             $interes = round($interes, 2);
             //$txtlog		.= $modificadorDeInteres;
             if ($interes > 0) {
                 $rsx = setNuevoMvto($socio, $cuenta, $recibo, $fecha_de_corte, $interes, 222, 1, "CALCULO_AUTOMATICO");
                 if ($rsx == false) {
                     $txtlog .= "ERROR\t{$socio}\t{$cuenta}\tInteres por {$interes}, tasa {$tasa_nueva}, Promedio {$promedio}, SDPM {$sumaSDPM}, Dias {$dias_de_calc}\r\n";
                 } else {
                     $txtlog .= "OK\t{$socio}\t{$cuenta}\tInteres por {$interes}, tasa {$tasa_nueva}, Promedio {$promedio}, SDPM {$sumaSDPM}, Dias {$dias_de_calc} en Rec {$recibo}\r\n";
                 }
                 $sqlUI = "UPDATE captacion_cuentas\n\t\t    \t\t\t\t\t\tSET saldo_cuenta = (saldo_cuenta + {$interes})\n\t\t    \t\t\t\t\t\tWHERE numero_cuenta={$cuenta} AND numero_socio={$socio}";
                 $x = my_query($sqlUI);
             } else {
                 $txtlog .= "WARN\t{$socio}\t{$cuenta}\tNOINT\t({$interes} / {$tasa_nueva}) Promedio {$promedio}, SDPM {$sumaSDPM}, Dias {$dias_de_calc}\r\n";
             }
         }
     }
     return $txtlog;
 }
<body>
<?php 
$socio_inicial = $_GET["on"];
$socio_final = $_GET["off"];
$sql_notificaciones = "SELECT * FROM seguimiento_notificaciones WHERE tipo_credito='pago_unico' \n\tAND estatus_notificacion='pendiente' AND numero_notificacion<3";
$rs = mysql_query($sql_notificaciones);
while ($rw = mysql_fetch_array($rs)) {
    $nombre = getNombreSocio($rw[1]);
    $domicilio = $rw[15];
    if ($domicilio == '0') {
        $domicilio = "NO EXISTE DOMICILIO DEFINIDO. CAPTURELO O EDITELO";
    }
    //Datos del Credito
    $sql_cred = "SELECT * FROM creditos_solicitud WHERE numero_solicitud={$rw['2']} AND numero_socio={$rw['1']} LIMIT 0,1";
    $dsol = obten_filas($sql_cred);
    $dias_venc = restarfechas($dsol[15], fechasys());
    $interes = cmoney($rw[9]);
    $moratorio = cmoney($rw[10]);
    $otros_cargos = cmoney($rw[11]);
    $capital = cmoney($rw[8]);
    $total = cmoney($rw[12]);
    echo getRawHeader();
    ?>
	<p class='bigtitle'>NOTIFICACION DE COBRO NUM. <?php 
    echo $rw[3];
    ?>
</p>
		<br />
		<div class='numc'>
		<table width="60%"   >
			  <tr>
 function setUpdateSaldo()
 {
     $estat = false;
     if ($this->mSucess != false) {
         $nuevatasa = $this->getTasaAplicable(0, 0, $this->mNuevoSaldo);
         $fecha = $this->mFechaOperacion;
         $fechaAnterior = $this->mFechaUltimaOp;
         $dias_del_mes = date("t", strtotime($fecha));
         //Valores iniciados a cero
         $diastrans = 0;
         $diastrans = restarfechas($fecha, $this->mFechaUltimaOp);
         if ($diastrans > $dias_del_mes) {
             $diastrans = $dias_del_mes;
         }
         if ($diastrans < 0) {
             $diastrans = 0;
             $this->mMessages .= "ERROR\tError al Procesar el Numero de Dias Transcurridos\r\n";
         }
         $sqlucta = "UPDATE captacion_cuentas SET tasa_otorgada={$nuevatasa}, fecha_afectacion='{$fecha}', ";
         $sqlucta .= "saldo_cuenta=" . $this->mNuevoSaldo . ", dias_invertidos={$diastrans}\n\t\t\t\tWHERE numero_cuenta=" . $this->mNumeroCuenta . "";
         if ($this->mNotUpdateSaldo == false) {
             $x = my_query($sqlucta);
         } else {
             $x["stat"] = false;
         }
         $estat = $x["stat"];
         if ($estat != false) {
             $this->mMessages .= "SUCESS\tSe Actualizo el Saldo de la Cuenta " . $this->mNumeroCuenta . ", Sdo. Ant.(" . $this->mSaldoAnterior . "); Sdo Nuevo(" . $this->mNuevoSaldo . ") Tasa {$nuevatasa}\r\n";
         } else {
             $this->mMessages .= "ERROR\tNo se Actualizo la Cuenta(" . $x["info"] . ") Saldo Anterior" . $this->mSaldoAnterior . "; Saldo Nuevo " . $this->mNuevoSaldo . "; Tasa {$nuevatasa}\r\n";
         }
     } else {
         $this->mMessages .= "ERROR\tNo se Actualizo la Cuenta, Saldo Anterior" . $this->mSaldoAnterior . "; Saldo Nuevo " . $this->mNuevoSaldo . "\r\n";
     }
     return $estat;
 }
 }
 $fecha_solicitud = fechasys();
 $fecha_ministracion = $_POST["elanno1"] . "-" . $_POST["elmes1"] . "-" . $_POST["eldia1"];
 $fecha_vencimiento = $_POST["elanno0"] . "-" . $_POST["elmes0"] . "-" . $_POST["eldia0"];
 $fecha_u_mvto = $fecha_solicitud;
 $dias_solicitados = 0;
 $monto_parcialidad = 0;
 $tipo_de_calculo_interes = 2;
 if (PERMITIR_EXTEMPORANEO == true) {
     $fecha_solicitud = $_POST["elanno98"] . "-" . $_POST["elmes98"] . "-" . $_POST["eldia98"];
 }
 //Si es a Final de Plazo
 if ($periocidad == CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) {
     $dias_solicitados = restarfechas($fecha_vencimiento, $fecha_ministracion);
 } elseif ($periocidad == CREDITO_TIPO_PERIOCIDAD_DIARIO) {
     $dias_solicitados = restarfechas($fecha_vencimiento, $fecha_ministracion);
     $numeropagos = $dias_solicitados - $xFecha->getDiasHabilesEnRango($fecha_vencimiento, $fecha_ministracion);
 } else {
     $dias_solicitados = $numeropagos * $periocidad;
     $fecha_vencimiento = sumardias($fecha_ministracion, $dias_solicitados);
 }
 $dias_autorizados = 0;
 $monto_autorizado = 0;
 $pagos_autorizados = 0;
 $saldo_actual = 0;
 $xConv = new cProductoDeCredito($tipoconvenio);
 $dconv = $xConv->getDatosInArray();
 //Datos de los Creditos segun Productos
 $producto_monto_maximo = $dconv["maximo_otorgable"];
 $tipo_autorizacion = $dconv["tipo_autorizacion"];
 $docto_autorizacion = $dconv["leyenda_docto_autorizacion"];
             }
         }
     }
     //2015-01-05 Agregar Bonificaciones
     if ($bonificaciones != 0) {
         $xPlan->addBonificacion($bonificaciones, $fecha_de_pago, $letra, $tipo_monto_extra);
     }
     //===================================================================================================================================
     $TParcial = $parcialidad_ahorro + $parcialidad_capital + $parcialidad_cargo + $parcialidad_interes + $parcialidad_iva - $bonificaciones;
     $msgM .= "{$socio}\t{$solicitud}\tPer. {$letra}\t{$dias_normales},{$sumar_dias}\t" . getFMoney($saldo_inicial) . "\t" . getFMoney($saldo_final) . "\t" . getFMoney($parcialidad_capital) . "";
     $msgM .= "\t" . getFMoney($parcialidad_interes) . "\t" . getFMoney($parcialidad_iva) . "\t" . getFMoney($parcialidad_cargo) . "\t" . getFMoney($parcialidad_ahorro) . "\t" . getFMoney($TParcial) . "\t{$fecha_de_referencia}\t{$fecha_de_pago}\r\n";
 }
 //end FOR
 $fecha_final = $fecha_de_pago;
 $fecha_de_vencimiento = $fecha_final;
 $dias_netos = restarfechas($fecha_final, $fecha_ministracion);
 $dias_normales = $dias_netos;
 $interes_diario = $total_de_intereses / $dias_netos;
 //===================================================================================================================================
 $OProd = $xCred->getOProductoDeCredito();
 $OPer = $xCred->getOPeriocidad();
 $fecha_de_mora = $xF->setSumarDias($OProd->getDiasTolerados() + 1, $fecha_de_vencimiento);
 $vencimiento_dinamico = $xF->setSumarDias($OPer->getDiasToleradosEnVencer(), $fecha_de_mora);
 $arrUpdate = array("plazo_en_dias" => $dias_netos, "dias_autorizados" => $dias_netos, "fecha_vencimiento" => $fecha_de_vencimiento, "monto_parcialidad" => $primera_parcialidad, "contrato_corriente_relacionado" => $cuenta_captacion, "tipo_de_pago" => $FormaDePago, "fecha_ministracion" => $fecha_ministracion, "interes_diario" => $interes_diario, "fecha_mora" => $fecha_de_mora, "fecha_vencimiento_dinamico" => $vencimiento_dinamico, "fecha_de_primer_pago" => $fecha_primer_abono);
 if ($xCred->getSaldoActual() == $xCred->getMontoAutorizado() or $xCred->getEsAfectable() == false) {
     $arrUpdate["ultimo_periodo_afectado"] = SYS_CERO;
 }
 //Pagos de solo interes
 if ($xCred->getPagosSinCapital() == true) {
     $arrUpdate["ultimo_periodo_afectado"] = $ultima_parcialidad;
 }
 function getParcialidadPresumida()
 {
     $FInteres_normal = new cFormula("interes_normal");
     switch ($FormaDePago) {
         case CREDITO_TIPO_PAGO_INTERES_COMERCIAL:
             $parcialidad_presumida = $saldo_insoluto * ($tasa_interes * $factor_interes) * $PERIOCIDAD_DE_PAGO / EACP_DIAS_INTERES;
             $msgC .= "{$socio}\t{$solicitud}\tINTERES COMERCIAL : Interes = {$parcialidad_presumida}\r\n";
             break;
         case CREDITO_TIPO_PAGO_INTERES_PERIODICO:
             break;
         case CREDITO_TIPO_PAGO_PERIODICO:
             for ($simulaciones = 1; $simulaciones <= 10; $simulaciones++) {
                 $sumar_dias = 0;
                 for ($i = 1; $i <= $PAGOS_AUTORIZADOS; $i++) {
                     $saldo_inicial = $i == 1 ? $monto_autorizado : $saldo_final;
                     $fecha_de_referencia = $i == 1 ? $fecha_primer_abono : $fecha_de_pago;
                     $xPlanGen->setPagosAutorizados($PAGOS_AUTORIZADOS);
                     $xPlanGen->setDiasDeAbonoFijo($dia_1_ab, $dia_2_ab, $dia_3_ab);
                     $xPlanGen->setTipoDePlanDePago($tipo_de_plan);
                     $xPlanGen->setPeriocidadDePago($PERIOCIDAD_DE_PAGO);
                     $fecha_de_pago = $xPlanGen->getFechaDePago($fecha_de_referencia, $i);
                     // ------------------------------------ Obtiene la Fecha de Pago ----------------------------------------------
                     $dias_normales = $i == 1 ? restarfechas($fecha_de_pago, $fecha_ministracion) : restarfechas($fecha_de_pago, $fecha_de_referencia);
                     if (PLAN_DE_PAGOS_PLANO == true) {
                         $dias_normales = $PERIOCIDAD_DE_PAGO;
                     }
                     $saldo_insoluto = $saldo_inicial;
                     eval($FInteres_normal->getFormula());
                     if ($PlanMalo == true) {
                         $interes_normal = $saldo_insoluto * ($tasa_interes / 12);
                     }
                     $interes_simulado = PLAN_DE_PAGOS_SIN_REDONDEO == true ? $interes_normal : round($interes_normal, 2);
                     $iva_simulado = PLAN_DE_PAGOS_SIN_REDONDEO == true ? $interes_normal * $tasa_iva : round($interes_normal * $tasa_iva, 2);
                     $parcialidad_simulada = $parcialidad_presumida - ($interes_simulado + $iva_simulado);
                     // + $parcialidad_cargo + $parcialidad_ahorro));
                     $saldo_final = $saldo_inicial - $parcialidad_simulada;
                     $sumar_dias += $dias_normales;
                     if (MODO_DEBUG == true) {
                         $msg .= $i == 1 ? "PERSONA\tCREDITO\t[SIMULACION/DE]\tINTERES\tIVA\tCAPITAL\tFI\tFF\r\n" : "";
                         $msg .= "{$socio}\t{$solicitud}\t[{$simulaciones}/{$i}]\t{$interes_simulado}\t{$iva_simulado}\t{$parcialidad_simulada}\t{$fecha_de_referencia}\t{$fecha_de_pago}\r\n";
                     }
                     $xPlanGen->setSaldoInicial($saldo_inicial);
                     $xPlanGen->setSaldoFinal($saldo_final);
                     if ($i == $PAGOS_AUTORIZADOS) {
                         $desviacion_simulada = $saldo_final != 0 ? $saldo_final / $PAGOS_AUTORIZADOS : 0;
                         //echo "<p class='aviso'>$desviacion_simulada	= ($saldo_final != 0) ? ($saldo_final / $PAGOS_AUTORIZADOS)</p>";
                         //Verificar db ser años que dura en credito
                         if ($sumar_dias > 367) {
                             $factor_annios = $sumar_dias / 365;
                             $desviacion_simulada = $desviacion_simulada / $factor_annios;
                             $msg .= "DIVIDIR ANIOS {$factor_annios} por {$desviacion_simulada}\r\n";
                         }
                         $desviacion_simulada = PLAN_DE_PAGOS_SIN_REDONDEO == true ? $desviacion_simulada : round($desviacion_simulada, 2);
                         $parcialidad_presumida += $desviacion_simulada;
                         $msg .= "{$socio}\t{$solicitud}\t[{$simulaciones}/{$i}]\tLa Parcialidad Presumida es {$parcialidad_presumida} por {$desviacion_simulada} Desviados, Saldo Final {$saldo_final} en dias {$sumar_dias}\r\n";
                     }
                 }
             }
             break;
     }
 }
    }
    /**
     *composicion del estado laboral por consulta
     **/
    $estado_laboral = 99;
    //Obtener la informaci�n laboral
    $xSoc = new cSocio($socio);
    $xSoc->init($rw);
    $DLab = $xSoc->getDatosActividadEconomica();
    $estado_laboral = $arrELaboral[$DLab["tipo_aeconomica"]];
    //corrige valores vacios
    if (!isset($estado_laboral)) {
        $estado_laboral = 99;
    }
    //corrige la edad en a�os y asigna, si es menor de edad
    $edad = floor(restarfechas(fechasys(), $rw["fechanacimiento"]) / 365);
    if ($edad < 18) {
        $estado_laboral = "07";
    }
    $tr .= "\t<tr>\n\t\t\t\t<td>{$socio}</td>\n\t\t\t\t<td>{$ife}</td>\n\t\t\t\t<td>{$nombre}</td>\n\t\t\t\t<td>{$apellidopaterno}</td>\n\t\t\t\t<td>{$apellidomaterno}</td>\n\t\t\t\t<td>{$genero}</td>\n\t\t\t\t<td>01</td>\n\t\t\t\t<td>412</td>\n\t\t\t\t<td>{$sucursal}</td>\n\t\t\t\t<td>{$fecha_de_alta}</td>\n\t\t\t\t<td>{$estado_civil}</td>\n\t\t\t\t<td>{$regimen_matrimonial}</td>\n\t\t\t\t<td>{$estado_laboral}</td>\n\t\t\t\t<td>{$fecha_nacimiento}</td>\n\t\t\t\t<td>412</td>\n\t\t\t\t<td>{$hijos}</td>\n\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t<td>{$rfc}</td>\n\t\t\t\t<td>{$curp}</td>\n\t\t\t</tr>";
}
echo "<table width='100%' >\n\t<tr>\n\t\t<th>Socio</th>\n\t\t<th>IFE</th>\n\t\t<th>Nombre</th>\n\t\t<th>Apellido Paterno</th>\n\t\t<th>Apellido Materno</th>\n\t\t<th>Sexo</th>\n\t\t<th>Idioma</th>\n\t\t<th>Nacionalidad</th>\n\t\t<th>Sucursal</th>\n\t\t<th>Fecha de Alta</th>\n\t\t<th>Estado Civil</th>\n\t\t<th>Regimen Matrimonial</th>\n\t\t<th>Estado Laboral</th>\n\t\t<th>Fecha de Nacimiento</th>\n\t\t<th>Pais de Nacimiento</th>\n\t\t<th>Numero de Hijos</th>\n\t\t<th>Fecha de Deceso</th>\n\t\t<th>R.F.C.</th>\n\t\t<th>C.U.R.P.</th>\n\t</tr>\n\t\t{$tr}\n</table>";
if ($input != OUT_EXCEL) {
    echo getRawFooter();
    ?>
</body>
<script  >
<?php 
    ?>
function initComponents(){
	window.print();
 $BySucursal = "";
 $sqlCreds = "SELECT\n\t\t\t\t\t`creditos_solicitud`.*,\n\t\t\t\t\t`creditos_tipoconvenio`.*,\n\t\t\t\t\t`creditos_periocidadpagos`.*,\n\t\t\t\t\t`creditos_estatus`.*,\n\t\t\t\t\t`creditos_solicitud`.`tasa_interes` AS `tasa_ordinaria_anual`,\n\t\t\t\t\t`creditos_solicitud`.`tipo_autorizacion` AS `tipo_de_autorizacion`,\n                    `creditos_solicitud`.`tasa_ahorro` AS `tasa_de_ahorro`\n\t\t\t\tFROM\n\t\t\t\t\t`creditos_tipoconvenio` `creditos_tipoconvenio`\n\t\t\t\t\t\tINNER JOIN `creditos_solicitud` `creditos_solicitud`\n\t\t\t\t\t\tON `creditos_tipoconvenio`.`idcreditos_tipoconvenio`\n\t\t\t\t\t\t= `creditos_solicitud`.`tipo_convenio`\n\t\t\t\t\t\t\tINNER JOIN `creditos_periocidadpagos`\n\t\t\t\t\t\t\t`creditos_periocidadpagos`\n\t\t\t\t\t\t\tON `creditos_periocidadpagos`.\n\t\t\t\t\t\t\t`idcreditos_periocidadpagos` =\n\t\t\t\t\t\t\t`creditos_solicitud`.`periocidad_de_pago`\n\t\t\t\t\t\t\t\tINNER JOIN `creditos_estatus`\n\t\t\t\t\t\t\t\t`creditos_estatus`\n\t\t\t\t\t\t\t\tON `creditos_estatus`.`idcreditos_estatus` =\n\t\t\t\t\t\t\t\t`creditos_solicitud`.`estatus_actual`\n\t\t\t\tWHERE\n\t\t\t\t\t(`creditos_solicitud`.`saldo_actual` >0.99)\n\t\t\t\t\tAND (`creditos_solicitud`.`estatus_actual` !=50)\n\t\t\t\t\t{$BySucursal}\n\t\t\t\t\t";
 $rs = mysql_query($sqlCreds, cnnGeneral());
 while ($rw = mysql_fetch_array($rs)) {
     //socio
     $socio = $rw["numero_socio"];
     $credito = $rw["numero_solicitud"];
     $fecha_de_ministracion = $rw["fecha_ministracion"];
     $dias = $rw["dias_autorizados"];
     $tipo_de_pago = $rw["tipo_de_pago"];
     $tipo_de_calculo_int = $rw["tipo_de_calculo_de_interes"];
     $monto_ministrado = $rw["monto_ministrado"];
     //credito
     //fecha de ministraci�n
     //fecha de
     $dias_transcurridos = restarfechas($fecha_de_migracion, $fecha_de_ministracion);
     $abonos = 0;
     $intereses = 0;
     $moratorios = 0;
     for ($i = 0; $i <= $dias_transcurrridos; $i++) {
         $fecha_de_corte = sumardias($fecha_de_ministracion, $i);
         $isKey = "{$credito}-{$fecha_de_corte}";
         $capital = round($arrPagos[$isKey . "-120"], 2);
         $interes = round($arrPagos[$isKey . "-140"], 2) + round($arrPagos[$isKey . "-142"], 2);
         $mora = round($arrPagos[$isKey . "-141"], 2);
         $abonos += $capital;
         $intereses += $interes;
         $moratorios += $mora;
         $saldo = $monto_ministrado - $abonos;
         $estatus = 10;
         $sqlIEvent = "INSERT INTO creditos_datos_dinamicos\n\t\t\t\t\t\t\t\t\t\t\t\t(numero_de_credito, numero_de_socio, fecha_de_corte, saldo,\n\t\t\t\t\t\t\t\t\t\t\t\tnumero_de_parcialidad, estatus_del_credito, estatus_de_la_parcialidad,\n\t\t\t\t\t\t\t\t\t\t\t\tfecha_de_mora, fecha_de_vencimiento,\n\n\t\t\t\t\t\t\t\t\t\t\t\tabono_interes_normal,\n\t\t\t\t\t\t\t\t\t\t\t\tabono_interes_moratorio,\n\t\t\t\t\t\t\t\t\t\t\t\tinteres_normal_devengado,\n\t\t\t\t\t\t\t\t\t\t\t\tinteres_moratorio_devengado,\n\n\t\t\t\t\t\t\t\t\t\t\t\tsuma_interes_normal_devengado,\n\t\t\t\t\t\t\t\t\t\t\t\tsuma_interes_normal_pagado,\n\t\t\t\t\t\t\t\t\t\t\t\tsuma_interes_moratorio_devengado,\n\t\t\t\t\t\t\t\t\t\t\t\tsuma_interes_moratorio_pagado\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\tVALUES\n\t\t\t\t\t\t\t\t\t\t\t\t({$credito}, {$socio}, '{$fecha_de_corte}',\n\t\t\t\t\t\t\t\t\t\t\t\t{$saldo}, 1, {$estatus}, 10,\n\t\t\t\t\t\t\t\t\t\t\t\t'2009-3-7', '2009-3-7',\n\t\t\t\t\t\t\t\t\t\t\t\t{$interes}, {$mora}, 0, 0,\n\t\t\t\t\t\t\t\t\t\t\t\t0, 0, 0, 0) ";
 $fechaultmvto = $fechaaut;
 //Fecha de Ultimo Movimiento = Fecha de Autorizacion;
 if ($idmonto <= TOLERANCIA_SALDOS) {
     //Cambiar a 0 de saldo autorizado y 50 de estatus
     $xCred->setCancelado($idautorizacion, $fechaaut);
     $sucess = false;
 }
 /*------------------------------ Obtiene datos mediante sentencias dinamicas */
 $estatusactual = 98;
 /* Determina si el Pago es en una sola Ministracion, genera el IDAD */
 if ($periocidad == CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) {
     $intdev = $idmonto * $tasaot / EACP_DIAS_INTERES;
     // Interes Diario para Pagos Fijos
     $idpagos = 1;
     $fechavcto = $ds_sol["fecha_vencimiento"];
     $diasaut = restarfechas($fechavcto, $fecha_ministracion_propuesta);
     $msg .= "WARN\tLos Dias Autorizados cambian a {$diasaut}, se respeta la fecha de vencimiento ({$fechavcto})\r\n";
     $xFRM->addCreditoComandos($idsolicitud);
 } else {
     $intdev = $idmonto * $tasaot / EACP_DIAS_INTERES;
     // Interes Diario a Cero para otros Casos
     $fechavcto = sumardias($fecha_ministracion_propuesta, $diasaut);
     $msg .= "WARN\tLa Fecha de Vencimiento es actualizada al " . getFechaLarga($fechavcto) . "; los dias autorizados son de {$diasaut}\r\n";
     $msg .= "WARN\tPARA OBTENER LOS DEMAS DOCUMENTOS DEBE GENERAR EL PLAN DE PAGOS\r\n";
 }
 /* ------------------------------ sentencia update -------------------------- */
 if ($sucess == true) {
     $xCred->setAutorizado($idmonto, $idpagos, $periocidad, $TipoDeAutorizacion, $fechaaut, $idautorizacion, $idtipodepago, $fecha_ministracion_propuesta, $idnivelderiesgo, $diasaut, $fechavcto, $estatusactual, $sdoactual, $intdev, $fechaultmvto, $TasaDeInteres);
     /* si es Credito de Grupos solidarios, Actualiza los Mvtos de Otorgacion */
     if ($OConv->getEsProductoDeGrupos() == true) {
         $sqlusolc = "UPDATE operaciones_mvtos\tSET estatus_mvto = 10\tWHERE\n\t\t\t\tgrupo_asociado={$gpoasoc}\tAND (tipo_operacion=112) AND (estatus_mvto=40)";
 function setRepararPlanDePagos()
 {
     $msg = "";
     $msg .= "============= RECONSTRUYENDO LETRAS SISBANCS \r\n";
     //Selecciona todo los pagos segun letra, en una base
     $arrFechas = array();
     $arrMontos = array();
     $sqlLetras = "SELECT SQL_CACHE\n\t\t\t\t\t\t\t`operaciones_mvtos`.`docto_afectado`,\n\t\t\t\t\t\t\t`operaciones_mvtos`.`periodo_socio`,\n\t\t\t\t\t\t\tMAX(`operaciones_mvtos`.`fecha_afectacion`) AS 'fecha',\n\t\t\t\t\t\t\tSUM(`operaciones_mvtos`.`afectacion_real`) AS 'monto'\n\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t`operaciones_mvtos` `operaciones_mvtos`\n\t\t\t\t\t\t\t\tINNER JOIN `eacp_config_bases_de_integracion_miembros`\n\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`\n\t\t\t\t\t\t\t\tON `operaciones_mvtos`.`tipo_operacion` =\n\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`miembro`\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t(`eacp_config_bases_de_integracion_miembros`.`codigo_de_base` = 2003)\n\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t(`operaciones_mvtos`.`afectacion_real` >0)\n\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\t`operaciones_mvtos`.`docto_afectado`,\n\t\t\t\t\t\t\t`operaciones_mvtos`.`periodo_socio`\n\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`codigo_de_base`,\n\t\t\t\t\t\t\t`operaciones_mvtos`.`socio_afectado`,\n\t\t\t\t\t\t\t`operaciones_mvtos`.`docto_afectado`,\n\t\t\t\t\t\t\t`operaciones_mvtos`.`periodo_socio` ";
     $rsA = getRecordset($sqlLetras);
     while ($rw = mysql_fetch_array($rsA)) {
         $arrFechas[$rw["docto_afectado"] . "-" . $rw["periodo_socio"]] = $rw["fecha"];
         $arrMontos[$rw["docto_afectado"] . "-" . $rw["periodo_socio"]] = $rw["monto"];
     }
     $fecha_de_migracion = fechasys();
     //DELETE FROM sisbancs_amortizaciones WHERE credito = 0 AND parcialidad = 1
     $sql = "SELECT\n\t\t\t\t\t\t\t\t`sisbancs_amortizaciones`.*\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t`sisbancs_amortizaciones` `sisbancs_amortizaciones` ";
     $rs = getRecordset($sql);
     $contar = 0;
     while ($rw = mysql_fetch_array($rs)) {
         $credito = $rw["credito"];
         $socio = $rw["credito"];
         $parcialidad = $rw["parcialidad"];
         $vencimiento = $rw["fecha_de_vencimiento"];
         $saldo_vigente = $rw["saldo_vigente"];
         $saldo_vencido = 0;
         $interes_vigente = $rw["interes_vigente"];
         $interes_vencido = 0;
         $interes_moratorio = 0;
         $dias_en_mora = 0;
         $estatus = $rw["estatus"];
         $fecha_de_abono = $rw["fecha_de_abono"];
         $iva_normal = 0;
         $iva_moratorio = 0;
         $tasa_normal = 0;
         $tasa_moratorio = 0;
         $monto_abonado = 0;
         $saldo_teorico = 0;
         $DCredito = array();
         //TODO: Actualizar sentencia de obtencion de IVA
         $msg .= "{$contar}\t{$credito}\t{$parcialidad}\t\t=================================================\r\n";
         //Actualizar le fecha de Pago
         if (isset($arrFechas["{$credito}-{$parcialidad}"])) {
             $fecha_de_abono = $arrFechas["{$credito}-{$parcialidad}"];
             $monto_abonado = $arrMontos["{$credito}-{$parcialidad}"];
             //Corrige las idioteces de reestructuras
             if (strtotime($vencimiento) > strtotime($fecha_de_abono)) {
                 $fecha_de_abono = $vencimiento;
                 $msg .= "{$contar}\t{$credito}\t{$parcialidad}\tERROR_DE_FECHA\tLa fecha de abono(" . getFechaMediana($fecha_de_abono) . ") es menor a la de vencimiento " . getFechaMediana($vencimiento) . " \r\n";
             }
             $saldo_teorico = $saldo_vigente - $monto_abonado;
             $msg .= "{$contar}\t{$credito}\t{$parcialidad}\tFECHA_DE_ABONO\tLa fecha de Abono Existente es " . getFechaMediana($fecha_de_abono) . " y suma de {$monto_abonado} (saldo teorico {$saldo_teorico})\r\n";
         }
         if (strtotime($vencimiento) < strtotime($fecha_de_migracion)) {
             $msg .= "{$contar}\t{$credito}\t{$parcialidad}\tFECHA_DE_VCTO\tLa Vencimiento (" . getFechaMediana($vencimiento) . ") es Menor a la Fecha de Migracion\r\n";
             $estatus = 2;
             $saldo_vencido = $saldo_vigente;
             $saldo_vigente = 0;
             $interes_vencido = $interes_vigente;
             $interes_vigente = 0;
             $xCred = new cCredito($credito, $socio);
             $xCred->init();
             $DCredito = $xCred->getDatosDeCredito();
             $tasa_moratorio = $DCredito["tasa_moratorio"];
             $dias_morosos = setNoMenorQueCero(restarfechas($fecha_de_migracion, $fecha_de_abono));
             $interes_moratorio = $saldo_vencido * $dias_morosos * $tasa_moratorio / EACP_DIAS_INTERES;
             $msg .= "{$contar}\t{$credito}\t{$parcialidad}\tINTERES_MORATORIO\tEl Interes Moratorio es {$interes_moratorio}, por {$dias_morosos} dias en Mora y Capital {$saldo_vencido}\r\n";
         }
         $iva_normal = ($interes_vigente + $interes_vencido) * 0.15;
         $iva_moratorio = $interes_moratorio * 0.15;
         $sqlUD = "UPDATE sisbancs_amortizaciones\n\t\t\t\t\t\t\t\t\t\t\t\t    SET  fecha_de_abono='{$fecha_de_abono}', saldo_vigente={$saldo_vigente},\n\t\t\t\t\t\t\t\t\t\t\t\t\tsaldo_vencido={$saldo_vencido}, interes_vigente={$interes_vigente}, interes_vencido={$interes_vencido},\n\t\t\t\t\t\t\t\t\t\t\t\t\tsaldo_interes_vencido=0, interes_moratorio={$interes_moratorio}, estatus={$estatus},\n\t\t\t\t\t\t\t\t\t\t\t\t\tiva_interes_normal={$iva_normal}, iva_interes_moratorio={$iva_moratorio}\n\t\t\t\t\t\t\t\t\t\t\t\t    WHERE\n\t\t\t\t\t\t\t\t\t\t\t\t\tcredito={$credito}, parcialidad={$parcialidad} ";
         my_query($sqlUD);
         $contar++;
     }
     return $msg;
 }
            $en_mora = false;
        } else {
            $en_mora = true;
        }
        $letras_pagadas = ($saldo_historico - $saldo_actual) / ($saldo_historico / $pagos);
        $letras_pagadas = round($letras_pagadas, 0);
        $letras_pendientes = $saldo_actual / ($saldo_historico / $pagos);
        $letras_pendientes = round($letras_pendientes, 0);
        $letras_que_debio = round($dias_transcurridos / ($dias_autorizados / $pagos), 0);
    } else {
        $FMora = $rw["fecha_vencimiento"];
        $FVenc = sumardias($rw["fecha_vencimiento"], DIAS_PAGO_UNICOS);
        $en_mora = true;
    }
    //if ($en_mora == true){
    $dias_vencidos = restarfechas($fecha_de_reporte, $FMora);
    $trs .= "<tr>\r\n\t\t\t\t\t<td>{$socio}</td>\r\n\t\t\t\t\t<td>{$nombre}</td>\r\n\t\t\t\t\t<td>{$credito}</td>\r\n\t\t\t\t\t<td >{$periocidad}</td>\r\n\t\t\t\t\t<td class='mny'>{$pagos}</td>\r\n\t\t\t\t\t<td class='{$nombre_estatus}'>{$nombre_estatus}</td>\r\n\t\t\t\t\t<td>{$fecha_ministracion}</td>\r\n\t\t\t\t\t<td>{$fecha_ultimo_mvto}</td>\r\n\t\t\t\t\t<td>{$FMora}</td>\r\n\t\t\t\t\t<td>{$FVenc}</td>\r\n\r\n\t\t\t\t\t<td class='mny'>{$saldo_historico}</td>\r\n\t\t\t\t\t<td class='mny'>{$saldo_actual}</td>\r\n\t\t\t\t\t<td class='mny'>{$letras_pagadas}</td>\r\n\t\t\t\t\t<td class='mny'>{$letras_pendientes}</td>\r\n\t\t\t\t\t<td class='mny'>{$letras_que_debio}</td>\r\n\t\t\t\t\t<td>{$dias_vencidos}</td>\r\n\t\t\t\t</tr>";
    //}
}
echo "<table width='100%' border='0'>\r\n\t<tbody>\r\n\t\t<tr>\r\n\t\t\t<th>Codigo</th>\r\n\t\t\t<th>Nombre</th>\r\n\t\t\t<th>#Credito</th>\r\n\t\t\t<th>Periocidad</th>\r\n\t\t\t<th>Num. Pagos</th>\r\n\t\t\t<th>Estatus</th>\r\n\t\t\t<th>Fecha de Ministracion</th>\r\n\t\t\t<th>Fecha de Ultima Op.</th>\r\n\t\t\t<th>Fecha de Mora</th>\r\n\t\t\t<th>Fecha de Vencimiento</th>\r\n\t\t\t<th>Monto Ministrado</th>\r\n\t\t\t<th>Saldo Insoluto</th>\r\n\t\t\t<th>Letras Pagadas</th>\r\n\t\t\t<th>Letras Pendientes</th>\r\n\t\t\t<th>Letras que debio pagar</th>\r\n\t\t\t<th>Dias Vencidos</th>\r\n\t\t</tr>\r\n\r\n\t\t{$trs}\r\n\t</tbody>\r\n</table>";
echo getRawFooter();
?>
</body>
<script  >
<?php 
?>
function initComponents(){
	window.print();
}
</script>
</html>
 function setReestructurarICA($fecha_corte)
 {
     $periodo_de_calculo = date("m", strtotime($fecha_corte));
     $ejercicio = date("Y", strtotime($fecha_corte));
     $fecha_operacion = $fecha_corte;
     $tipo_operacion = 451;
     $msg .= "============== REESTRUCTURAR EL ICA \r\n";
     /**
      * llevar a cero los Intereses
      */
     $sqlUICA = "UPDATE creditos_solicitud SET sdo_int_ant=0";
     my_query($sqlUICA);
     /**
      * Eliminar el ica
      */
     $sqlDEL = "DELETE FROM operaciones_mvtos WHERE tipo_operacion = 451 AND periodo_mensual<={$periodo_de_calculo} AND periodo_anual <= {$ejercicio}";
     $myq = my_query($sqlDEL);
     /**
      * Agregar el Recibo
      *
      */
     $NRecibo = setNuevoRecibo(1, 1, $fecha_operacion, 1, 10, "CALCULO_GENERADO_EN_UTIL_835", "NA", "ninguno", "NA", 99, 0);
     $sqlConICA = "SELECT\n\t\t\t\t\t\t`creditos_solicitud`.*,\n\t\t\t\t\t\t`creditos_tipoconvenio`.*\n\t\t\t\t\tFROM\n\t\t\t\t\t\t`creditos_solicitud` `creditos_solicitud`\n\t\t\t\t\t\t\tINNER JOIN `creditos_tipoconvenio`\n\t\t\t\t\t\t\t`creditos_tipoconvenio`\n\t\t\t\t\t\t\tON `creditos_solicitud`.`tipo_convenio` =\n\t\t\t\t\t\t\t`creditos_tipoconvenio`.`idcreditos_tipoconvenio`\n\t\t\t\t\tWHERE\n\t\t\t\t\t\t(`creditos_tipoconvenio`.`porcentaje_ica` >0) AND\n\t\t\t\t\t\t(`creditos_solicitud`.`saldo_actual` >0.99) AND\n\n\t\t\t\t\t\t(`creditos_solicitud`.`estatus_actual` !=50) AND\n\t\t\t\t\t\t(`creditos_solicitud`.`estatus_actual` !=98) AND\n\t\t\t\t\t\t(`creditos_solicitud`.`estatus_actual` !=99)\n\n\t\t\t\t\t\t/*AND\n\t\t\t\t\t\t(`creditos_solicitud`.`fecha_vencimiento` >=\n\t\t\t\t\t\t'{$fecha_operacion}')*/\n\t\t\t\t\t\tAND\n\t\t\t\t\t\t(`creditos_solicitud`.`fecha_ministracion` <='{$fecha_operacion}')\n\t\t\t\t\tORDER BY\n\t\t\t\t\t\t`creditos_solicitud`.`fecha_ministracion`\n\t\t\t\t\t";
     //echo $sqlConICA;
     $rs = mysql_query($sqlConICA, cnnGeneral());
     while ($rw = mysql_fetch_array($rs)) {
         $socio = $rw["numero_socio"];
         $solicitud = $rw["numero_solicitud"];
         $monto_ministrado = $rw["monto_autorizado"];
         $tasa_interes = $rw["tasa_interes"];
         $dias_autorizados = $rw["dias_autorizados"];
         $porcentaje_ica = $rw["porcentaje_ica"];
         $fecha_ult_mvto = $rw["fecha_ultimo_mvto"];
         $fecha_ministracion = $rw["fecha_ministracion"];
         $dias_autorizados = $rw["dias_autorizados"];
         $saldo_historico = $monto_ministrado;
         $iva_incluido = $rw["iva_incluido"];
         $tasa_iva = $rw["tasa_iva"];
         $factor_interes = 1;
         if ($iva_incluido == "1") {
             $factor_interes = 1 / (1 + $tasa_iva);
         }
         $dias_transcurridos = restarfechas($fecha_corte, $fecha_ministracion);
         $ica = $dias_autorizados * $monto_ministrado * ($tasa_interes * $factor_interes) / EACP_DIAS_INTERES * $porcentaje_ica;
         $interes_generado = $dias_transcurridos * $monto_ministrado * ($tasa_interes * $factor_interes) / EACP_DIAS_INTERES;
         $ica_a_amortizar = $interes_generado;
         if ($ica_a_amortizar > $ica) {
             $ica_a_amortizar = $ica;
         }
         //purgar posibles errores
         if ($interes_generado < 0) {
             $interes_generado = 0;
         }
         //lleva a cero el Ica a Amortizar si ya se amort
         if ($ica_a_amortizar > 0) {
             $xn = setNuevoMvto($socio, $solicitud, $NRecibo, $fecha_operacion, $ica_a_amortizar, $tipo_operacion, 1, "REESTRUCTURACION AUTOMATICA HECHA POR {$iduser}");
         } else {
             $ica_a_amortizar = 0;
         }
         if ($interes_generado < $ica) {
             $ica = $ica - $interes_generado;
             if ($ica < 0) {
                 $ica = 0;
             }
             $UICA_sql = "UPDATE creditos_solicitud SET sdo_int_ant = {$ica}\n\t\t\t\t\t\tWHERE numero_solicitud={$solicitud} AND numero_socio={$socio}";
             my_query($UICA_sql);
         }
         $msg .= date("Y-m-d") . "\t{$socio}\t{$solicitud}\tMonto: {$saldo_historico}, Tasa: {$tasa_interes}, Factor: {$factor_interes}, Tasa ICA {$porcentaje_ica}\r\n";
         $msg .= date("Y-m-d") . "\t{$socio}\t{$solicitud}\tI.C.A. {$ica}, Int. Generado: {$interes_generado}, Dias Trans.: {$dias_transcurridos}/{$dias_autorizados}, ICA A AMort: {$ica_a_amortizar}\r\n";
     }
     return $msg;
 }
 $f_vencimiento = $rw[15];
 $tasan = $rw[9];
 $tasam = $rw[30];
 $capital = $saldo;
 $mletra = $saldo;
 $dias_vigente = 0;
 $dias_vencidos = 0;
 $interes = 0;
 $interes_moratorio = 0;
 $otros_cargos = 0;
 //Cuando el Ultimo Mvto es mayor a la fecha de Vcto
 if ($f_ultimo_mvto < $f_vencimiento) {
     $dias_vigente = restarfechas($f_ultimo_mvto, $f_vencimiento);
     $dias_vencidos = restarfechas($f_vencimiento, fechasys());
 } else {
     $dias_vencidos = restarfechas($f_ultimo_mvto, fechasys());
 }
 $interes = $capital * $dias_vigente * $tasan / EACP_DIAS_INTERES;
 $interes_moratorio = $capital * $dias_vencidos * ($tasan + $tasam) / EACP_DIAS_INTERES;
 //
 $total = $saldo + $interes + $interes_moratorio + $otros_cargos;
 //Obtiene el Telefono del Socio
 $sql_150 = "SELECT * FROM socios_vivienda WHERE socio_numero={$socio} AND principal='1'";
 $ddomicilio = obten_filas($sql_150);
 $telefono1 = $ddomicilio[10];
 $telefono2 = $ddomicilio[11];
 $hora_default = date("H:i");
 $fecha_default = fechasys();
 $observaciones = "Generado el {$fecha_default} a las {$hora_default} Hrs. por {$oficial}";
 if ($dias_vencidos > 1 && $dias_vencidos <= 15) {
     //Primera Notificacion
if ($permiso === false) {
    header("location:../404.php?i=999");
}
$_SESSION["current_file"] = addslashes($theFile);
//<=====	FIN_H
$iduser = $_SESSION["log_id"];
//=====================================================================================================
include_once "../core/entidad.datos.php";
include_once "../core/core.deprecated.inc.php";
include_once "../libs/sql.inc.php";
include_once "../core/core.fechas.inc.php";
include_once "../core/core.config.inc.php";
$oficial = elusuario($iduser);
$fecha_inicial = $_GET["on"];
$fecha_final = $_GET["off"];
$dias = restarfechas($fecha_final, $fecha_inicial);
if ($dias > 31) {
    echo JS_CLOSE;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>
</head>
<link href="../css/reporte.css" rel="stylesheet" type="text/css">
<body onLoad="initComponents();">
<?php 
echo getRawHeader();
?>
 //$conyuge[0] - $conyuge[1] - Tel(s): $conyuge[2] Ocupaci&oacute;n: $conyuge[3]
 $rwy = $xSocio->getDatosInArray();
 $idconyuge = $xSocio->getClaveDePersonaDeConyuge();
 if ($conyuge > 0) {
     $xCon = new cSocio($idconyuge);
     $xCon->init();
     $DConT = $xCon->getTelefonos();
     $txtConyuge .= $idconyuge . "-" . $xCon->getNombreCompleto();
     $txtConyuge .= " TEL(S): " . $DConT["principal"];
     $conyuge_ocup = $xCon->getDatosActividadEconomica();
     $txtConyuge .= " OCUPACI&Oacute;N: " . $conyuge_ocup["puesto"];
 }
 $genero = eltipo("socios_genero", $rwy[15]);
 $civil = eltipo("socios_estadocivil", $rwy[14]);
 $ocupacion = volcartabla("socios_aeconomica", 18, "socio_aeconomica={$idsocio}");
 $edad = (int) (restarfechas($nowdate, $rwy[11]) / 365) . " A&ntilde;os";
 $dependientes = $rwy["dependientes_economicos"];
 $telp = $rwy["telefono_principal"];
 $mail = $rwy["correo_electronico"];
 $grupo_assoc = $rwy["grupo_solidario"];
 //$regimen_mat =
 $DDom = $xSocio->getDatosDomicilio(99);
 $eldom = "<tr>\n\t\t\t\t\t\t<th >Calle/Codigo Postal</th>\n\t\t\t\t\t\t<td>" . $DDom["calle"] . "/" . $DDom["codigo_postal"] . "</td>\n\t\t\t\t\t\t<th >Num. Ext./Int.</th>\n\t\t\t\t\t\t<td>" . $DDom["numero_exterior"] . "/" . $DDom["numero_interior"] . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th >Colonia</th>\n\t\t\t\t\t\t<td>" . $DDom["colonia"] . "</td>\n\t\t\t\t\t\t<th >Telefono(s)</th>\n\t\t\t\t\t\t<td>" . $DDom["telefono_residencial"] . "/" . $DDom["telefono_movil"] . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th >Localidad</th>\n\t\t\t\t\t\t<td>" . $DDom["localidad"] . "</td>\n\t\t\t\t\t\t<th >Municipio/Estado</th>\n\t\t\t\t\t\t<td>" . $DDom["municipio"] . "/" . $DDom["estado"] . "</td>\n\t\t\t\t\t</tr>";
 echo "\n\t\t<fieldset>\n\t\t<legend>[ Datos Generales del Solicitante ]</legend>\n\t\t\t<table border='0' width='100%'>\n\t\t\t\t<tr>\n\t\t\t\t\t<th width='15%'>Clave de Persona</th>\n\t\t\t\t\t<td width='35%'>{$rwy['0']}</td>\n\t\t\t\t\t<th width='15%'>Nombre(s)</th>\n\t\t\t\t\t<td width='35%'>{$rwy['1']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Apellido Paterno</th><td>{$rwy['2']}</td>\n\t\t\t\t\t<th>Apellido Materno</th><td>{$rwy['3']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>R. F. C.</th>\n\t\t\t\t\t<td>{$rwy['4']}</td>\n\t\t\t\t\t<th>C. U. R. P.</th>\n\t\t\t\t\t<td>{$rwy['5']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Genero</th>\n\t\t\t\t\t<td>{$genero}</td>\n\t\t\t\t\t<th>Estado Civil</th>\n\t\t\t\t\t<td>{$civil}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Edad</th><td>{$edad}</td>\n\t\t\t\t\t<th>Ocupaci&oacute;n</th><td>{$ocupacion}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Tel&eacute;fono Principal</th>\n\t\t\t\t\t<td>{$telp}</td>\n\t\t\t\t\t<th>Correo Electr&oacute;nico</th>\n\t\t\t\t\t<td>{$mail}</td>\n\t\t\t\t</tr>\n{$eldom}\n\t\t\t\t<tr>\n\t\t\t\t\t<th>R&eacute;gimen Matrimonial</th>\n\t\t\t\t\t<td>{$rwy['22']}</td>\n\t\t\t\t\t<th>Conyuge</th>\n\t\t\t\t\t<td>{$txtConyuge}</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</fieldset>";
 // datos de la solicitud
 $perpagos = eltipo("creditos_periocidadpagos", $rwc[10]);
 //$eldest = eltipo("creditos_destinos", $rwc[19]);
 $montosol = number_format($rwc[3], 2, '.', ',');
 $montoletras = convertirletras($rwc[3]);
 //$descripcion_dest = $rwc[35];
 $tasa = $rwc[9] * 100;
//
$rs = mysql_query($setSql, cnnGeneral());
while ($rw = mysql_fetch_array($rs)) {
    $personalidad = $VFigura[$rw["personalidad_juridica"]];
    $nombre = $rw["apellidopaterno"] . " " . $rw["apellidomaterno"] . " " . $rw["nombrecompleto"];
    $codigo = $rw["codigo"];
    $credito = $rw["numero_solicitud"];
    $razon_garantia = $rw["razon_garantia"];
    $tipo_credito = $VClasificacion[$rw["tipo_credito"]];
    $dias_vencidos = 0;
    $periocidad = $rw["periocidad_de_pago"];
    $vencimiento_legal = $rw["fecha_vencimiento_dinamico"];
    $MAutorizacion = $VAutorizado[$rw["tipo_de_autorizacion"]];
    if ($rw["estatus_actual"] == 20) {
        //si la fecha de abono es despues de la de vencimiento
        $dias_vencidos = restarfechas($fecha_final, $vencimiento_legal);
    }
    $sqlIngresos = "SELECT\n\t\t\t\t\t\t`creditos_origenflujo`.`descripcion_origenflujo`,\n\t\t\t\t\t\t`creditos_flujoefvo`.`solicitud_flujo`,\n\t\t\t\t\t\tSUM(`creditos_flujoefvo`.`afectacion_neta`) AS 'ingresos'\n\t\t\t\t\tFROM\n\t\t\t\t\t\t`creditos_flujoefvo` `creditos_flujoefvo`\n\t\t\t\t\t\t\tINNER JOIN `creditos_origenflujo` `creditos_origenflujo`\n\t\t\t\t\t\t\tON `creditos_flujoefvo`.`origen_flujo` = `creditos_origenflujo`.\n\t\t\t\t\t\t\t`idcreditos_origenflujo`\n\t\t\t\t\tWHERE\n\t\t\t\t\t\t(`creditos_flujoefvo`.`solicitud_flujo` ={$credito})\n\t\t\t\t\t\tAND\n\t\t\t\t\t\t(`creditos_flujoefvo`.`tipo_flujo` = 1)\n\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t`creditos_flujoefvo`.`solicitud_flujo`,\n\t\t\t\t\t\t`creditos_flujoefvo`.`origen_flujo`\n\t\t\t\t\tORDER BY\n\t\t\t\t\t\t`creditos_flujoefvo`.`afectacion_neta` DESC\n\t\t\t\t\tLIMIT 0,1";
    $msg .= date("H:i:s") . "\t{$codigo}\t{$credito}\tSe Inicia el Procesado del Credito \r\n";
    $DFlujo = obten_filas($sqlIngresos);
    $IngresoPrioritario = $DFlujo["descripcion_origenflujo"];
    if (!isset($IngresoPrioritario)) {
        $IngresoPrioritario = "DESCONOCIDO_O_NO_REGISTRADO";
    }
    $cumplioPagoSostenido = "";
    if ($rw["estatus_actual"] == 60) {
        $cumplioPagoSostenido = "SI CUMPLIO";
    }
    $CondicionDePago = $VPeriocidad[$rw["periocidad_de_pago"]];
    $FechaDeMinistracion = $rw["fecha_ministracion"];
    $MontoOriginal = $rw["monto_autorizado"];
 /**
  * Funcion que asiste en la Ministracion del Credito
  */
 function setMinistrar($recibo_fiscal, $cheque, $monto_cheque = 0, $cuenta_cheques = false, $cheque2 = 0, $cuenta_cheques2 = 0, $observaciones = "", $fecha = false, $recibo = false, $tipo_de_pago = TESORERIA_PAGO_CHEQUE)
 {
     $sucess = true;
     $monto_cheque = $monto_cheque == 0 ? $this->getMontoAutorizado() : $monto_cheque;
     $cuenta_cheques = $cuenta_cheques == false ? DEFAULT_CUENTA_BANCARIA : $cuenta_cheques;
     $cheque = setNoMenorQueCero($cheque);
     $xSocio = new cSocio($this->mNumeroSocio);
     $xSocio->init();
     //Corrige la Inicializacion del credito
     if (!isset($this->mNumeroSocio) or $this->mNumeroSocio == 1) {
         $this->init();
     }
     $DIngreso = $xSocio->getDatosDeIngreso_InArray();
     $msg = "";
     //$tipo_de_pago			= TESORERIA_PAGO_CHEQUE;
     $recibo = setNoMenorQueCero($recibo);
     $DConvenio = $this->getDatosDeProducto();
     $idsolicitud = $this->mNumeroCredito;
     $solicitud = $this->mNumeroCredito;
     /* ------------------------------ obtiene el Monto Autorizado ---------------------------------- */
     $dsol = $this->getDatosDeCredito();
     $montoaut = $this->getMontoAutorizado();
     // $dsol["monto_autorizado"];	// Monto Autorizado
     $fvcred = $dsol["fecha_vencimiento"];
     $modpagos = $this->getPeriocidadDePago();
     $tasacred = $this->getTasaDeInteres();
     $totalop = $montoaut;
     $tipoaut = $dsol["tipo_autorizacion"];
     $socio = $this->mNumeroSocio;
     $intdi = $dsol["interes_diario"];
     $diasa = $dsol["dias_autorizados"];
     $tipoconvenio = $dsol["tipo_convenio"];
     $elgrupo = $dsol["grupo_asociado"];
     $grupo = $elgrupo;
     $idsocio = $socio;
     $fecha_propuesta = $dsol["fecha_ministracion"];
     $tasa_ordinaria_de_interes = $tasacred;
     $monto_autorizado_a_ministrar = $dsol["monto_autorizado"];
     $grupo = $this->mGrupoAsociado;
     if ($fecha == false) {
         $fecha = $this->mFechaOperacion;
     }
     $socio = $this->mNumeroSocio;
     //Valores conservados
     $fechavcto = $fvcred;
     $diasaut = $diasa;
     $intdiario = $intdi;
     /**
      * Corrige la opcion de que el Cheque es Igual a Cero
      */
     if ($monto_cheque == 0) {
         $monto_cheque = $montoaut;
     }
     //Corrige el dato de recibo no valido
     if ($recibo <= 0 and setNoMenorQueCero($this->mReciboDeOperacion) > 0) {
         $recibo = $this->mReciboDeOperacion;
     }
     /*	--------------------------------------------------------------------------------------------------------- */
     $OConv = $this->getOProductoDeCredito($tipoconvenio);
     if ($this->mForceMinistracion == false) {
         // Checa si el credito ya fue Ministrado
         //Modificar
         $montomin = $this->getSumMovimiento(OPERACION_CLAVE_MINISTRACION);
         if ($montomin > 1) {
             $msg .= "ERROR\tEl credito se ha ministrado de forma parcial / Total, o se ha forzado su edicion; el Monto Ministrado es {$montomin} \r\n";
             $sucess = false;
         }
     }
     // verificar si tiene aportaciones sociales
     if ($this->mForceMinistracion == false) {
         $aportaciones = $xSocio->getAportacionesSociales();
         $cuotas = $DIngreso["parte_social"] + $DIngreso["parte_permanente"];
         if ($aportaciones < $cuotas) {
             $msg .= "ERROR\tNo ha Pagado sus Cuotas Sociales por {$cuotas}, ha pagado {$aportaciones} \r\n";
             $sucess = false;
         }
     }
     // verificar si pago su fondo de defuncion. // SI ES DIFERENTE A AUTOMATIZADO
     if ($this->mForceMinistracion == false) {
         $fondo_def_ob = $DConvenio["monto_fondo_obligatorio"];
         $fondo_def_pag = $xSocio->getFondoDeDefuncion();
         if ($fondo_def_pag < $fondo_def_pag) {
             $msg .= "ERROR\tNo ha Pagado sus Fondo de Defuncion por {$fondo_def_pag}, ha pagado {$fondo_def_pag} \r\n";
             $sucess = false;
         }
     }
     // condiciones del credito autorizado por sesion de credito.
     //si el convenio Aplica Gtos Notariales
     $aplica_gtos_not = $DConvenio["aplica_gastos_notariales"];
     if ($aplica_gtos_not == 1 and $this->mForceMinistracion == false) {
         $gastos_not_pagados = $this->getPagoDeGastosNotariales();
         if ($gastos_not_pagados < TOLERANCIA_SALDOS) {
             $msg .= "ERROR\tNo ha Pagado sus Gastos Notariales\r\n";
             $sucess = false;
         }
     }
     // verificar si tiene garantia liquida
     $porc_garantia_liquida = $OConv->getTasaDeGarantiaLiquida();
     if ($porc_garantia_liquida > 0 and $this->mForceMinistracion == false) {
         $msg .= "WARN\tLa Garantia Liquida es de {$porc_garantia_liquida} sobre el Monto Autorizado\r\n";
         if ($OConv->getEsProductoDeGrupos() == true) {
             $condicionante_de_garantia_liquida = " (`socios_general`.`grupo_solidario` = {$elgrupo}) ";
             $msg .= "WARN\tLa Garantia Liquida es valuado por GRUPO \r\n";
         } else {
             $condicionante_de_garantia_liquida = " (`socios_general`.`codigo` = {$idsocio})";
             $msg .= "WARN\tLa Garantia Liquida es valuado por SOCIO \r\n";
         }
         $tgtia = $montoaut * $porc_garantia_liquida;
         $subproducto_de_ahorro_inicial = CAPTACION_PRODUCTO_GARANTIALIQ;
         $sqlSUMDepInicial = "\n\t\t\t\t\t\t\t\t\t\t\t\tSELECT\n\t\t\t\t\t\t\t\t\t\t\t\t\t`socios_general`.`grupo_solidario`,\n\t\t\t\t\t\t\t\t\t\t\t\t\tSUM(`captacion_cuentas`.`saldo_cuenta`) AS 'sumas'\n\t\t\t\t\t\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t\t\t\t\t\t`socios_general` `socios_general`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN `captacion_cuentas` `captacion_cuentas`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tON `socios_general`.`codigo` = `captacion_cuentas`.`numero_socio`\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t\t\t\t\t(`captacion_cuentas`.`tipo_subproducto` ={$subproducto_de_ahorro_inicial})\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\t\t\t\t\t\t{$condicionante_de_garantia_liquida}\n\t\t\t\t\t\t\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\t\t\t\t\t\t\t`socios_general`.`grupo_solidario`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`tipo_cuenta` ";
         $garliq = mifila($sqlSUMDepInicial, "sumas");
         if ($garliq < $tgtia - TOLERANCIA_SALDOS) {
             $msg .= "ERROR\tNo ha depositado el su totalidad la Garantia Liquida, ha Depositado {$garliq} de un total de {$tgtia} \r\n";
             $msg .= "WARN\tRecuerde que el DEPOSITO DE LA GARANTIA LIQUIDA se efectua en el Modulo de Captacion \r\n";
             $sucess = false;
         }
     }
     //END: verificar Garantia
     // VERIFICA LA GARANTIA SEGUN TIPO CONVENIO.- La seleccion se hace segun el Numero de Socio y no debe estar entregada
     // NO APLICA EN GRUPOS SOLIDARIOS
     $razon_garantias = $DConvenio["razon_garantia"];
     if ($razon_garantias > 0 and $this->mForceMinistracion == false) {
         $monto_garantizado = $xSocio->getGarantiasFisicasDepositadas();
         $monto_a_garantizar = $montoaut * $razon_garantias;
         if ($monto_garantizado < $monto_a_garantizar) {
             $msg .= "ERROR\tNo ha garantizado el Total del Credito, se debe garantizar {$monto_a_garantizar} y solamente se tiene en resguardo {$monto_garantizado} \r\n";
             $sucess = false;
         }
     }
     // SI EL CREDITO ES AUTOMATIZADO
     if ($modpagos == CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) {
         $diasaut = restarfechas($fechavcto, $fecha);
         //$dsol["dias_autorizados"];				// Dias Autorizados.
         $msg .= "WARN\tLos dias Autorizados se cambian a {$diasaut}\r\n";
         //$fechavcto 	= sumardias($fecha, $diasaut);				// Fecha del Sistema + Dias Autorizados
         $intdiario = $montoaut * $tasacred / EACP_DIAS_INTERES;
     } else {
         //Verifica si existe el Plan de Pagos:
         $sqlck = "SELECT COUNT(tipo_docto) AS 'planes' FROM operaciones_recibos WHERE docto_afectado={$idsolicitud} AND tipo_docto=11";
         $plan = $this->getNumeroDePlanDePagos();
         if (!isset($plan) or empty($plan)) {
             $msg .= "ERROR\tNo se ha Generado el PLAN DE PAGOS \r\n";
             $sucess = false;
         }
         if (strtotime($fecha) != strtotime($fecha_propuesta)) {
             $msg .= "ERROR\tNo se puede ministrar el Credito({$fecha}), ya que el PLAN DE PAGO de calcula desde la fecha " . getFechaLarga($fecha_propuesta) . ", vuelva a elaborar el PLAN DE PAGOS\r\n";
             $sucess = false;
         }
     }
     //VERIFICA EL ICA A PAGAR
     $razon_interes_anticipado = $DConvenio["porcentaje_ica"];
     $iva_incluido = $DConvenio["iva_incluido"];
     $tasa_iva = $DConvenio["tasa_iva"];
     //RULE: Modificar segun el Tipo de pago
     if ($razon_interes_anticipado > 0 and $this->mForceMinistracion == false) {
         // verifica si tiene el Pago de Int Anticipado
         $sumia = $dsol["sdo_int_ant"];
         $mIntDiario = $monto_autorizado_a_ministrar * $tasa_ordinaria_de_interes / EACP_DIAS_INTERES;
         $mntia = $mIntDiario * $diasa * $razon_interes_anticipado - TOLERANCIA_SALDOS;
         $MontoICA = $mntia;
         if ($iva_incluido == '1') {
             $MontoICA = $MontoICA * (1 / (1 + $tasa_iva));
         }
         if ($sumia < $MontoICA) {
             $msg .= "ERROR\tNo se ha cubierto el Interes Anticipado, se ha pagado {$sumia} de {$MontoICA} \r\n";
             $sucess = false;
         } else {
             //
         }
     }
     if ($this->mForceMinistracion == true) {
         $sucess = true;
         $msg .= "WARN\tLa Ministracion es FORZADA \r\n";
     }
     /*------------------------------- AFECTACIONES ------------------------------------------------- */
     if ($sucess == true) {
         $monto = $montoaut;
         $parcialidad = 1;
         if ($monto != 0) {
             $CRecibo = new cReciboDeOperacion(RECIBOS_TIPO_MINISTRACION, true, $recibo);
             //Set a Mvto Contable
             //$CRecibo->setGenerarPoliza();
             $CRecibo->setGenerarTesoreria();
             $CRecibo->setGenerarBancos(true);
             //Agregar recibo si no hay
             if (setNoMenorQueCero($recibo) <= 0) {
                 $recibo = $CRecibo->setNuevoRecibo($socio, $solicitud, $fecha, $parcialidad, RECIBOS_TIPO_MINISTRACION, $observaciones, $cheque, $tipo_de_pago, $recibo_fiscal, $grupo);
                 //Checar si se agrego el recibo
                 if (setNoMenorQueCero($recibo) > 0) {
                     $this->mMessages .= "OK\tSe Agrego Exitosamente el Recibo {$recibo} de la Cuenta " . $this->mNumeroCredito . " \r\n";
                     $this->mReciboDeOperacion = $recibo;
                     $this->mSucess = true;
                 } else {
                     $this->mMessages .= "ERROR\tSe Fallo al Agregar el Recibo {$recibo} de la Cuenta " . $this->mNumeroCredito . " \r\n";
                     $this->mSucess = false;
                 }
             }
             $this->mReciboDeOperacion = $recibo;
             if (setNoMenorQueCero($recibo) > 0) {
                 //Agregar el Movimiento
                 $CRecibo->setNuevoMvto($fecha, $monto, OPERACION_CLAVE_MINISTRACION, $parcialidad, $observaciones, 1, TM_CARGO, $socio, $solicitud);
                 /** @since 2010-11-21 */
                 $this->addSDPM(0, 0, $fecha, 0, CREDITO_ESTADO_VIGENTE, $fecha, OPERACION_CLAVE_MINISTRACION);
                 //$this->mMessages	.= $CRecibo->getMessages();
                 $this->mSucess = true;
             } else {
                 $this->mMessages .= "ERROR\tNo Existe Recibo con el cual trabajar ({$recibo}) \r\n";
             }
             $CRecibo->setFinalizarRecibo(true);
             $this->mMessages .= $CRecibo->getMessages();
         }
         // Actualiza el estatus del credito a Vigente, la fecha de Operacion y la de vencimiento.
         $arrAct = array("fecha_ministracion" => $fecha, "fecha_ultimo_mvto" => $fecha, "estatus_actual" => CREDITO_ESTADO_VIGENTE, "fecha_vencimiento" => $fechavcto, "plazo_en_dias" => $diasaut, "dias_autorizados" => $diasaut, "interes_diario" => $intdiario, "saldo_actual" => $montoaut);
         $this->setUpdate($arrAct);
         // --------------------------------- ENVIA LAS SENTENCIAS SQL----------------------------------------
         //verifica la dif entre cheque 1 y el monto a ministrar
         if ($monto_cheque <= 0) {
             $monto_cheque = $montoaut;
         }
         $difCheque = $montoaut - $monto_cheque;
         $beneficiario = $xSocio->getNombreCompleto();
         $descuento = 0;
         //Separar la generación del cheque
         setNuevoCheque($cheque, $cuenta_cheques, $recibo, $beneficiario, $monto_cheque, $fecha, false, $descuento);
         setUltimoCheque($cuenta_cheques, $cheque);
         if ($difCheque > 0) {
             //setPolizaProforma($recibo, 9200, $difCheque, $socio, $idsolicitud, TM_ABONO);
             setNuevoCheque($cheque2, $cuenta_cheques2, $recibo, $beneficiario, $difCheque, $fecha, false, $descuento);
             setUltimoCheque($cuenta_cheques2, $cheque2);
         }
         //Agregar Avisos de Credito por renovacion
         if ($this->getTipoDeAutorizacion() == CREDITO_TIPO_AUTORIZACION_RENOVACION) {
             //$xSoc		= $this->getOPersona();
             $xSocio->initDatosDeCredito();
             $DCreds = $xSocio->getDatosDeCreditos();
             $xCred = new cCreditos_solicitud();
             foreach ($DCreds as $clave => $valores) {
                 $xCred->setData($valores);
                 if ($xCred->saldo_actual()->v() >= TOLERANCIA_SALDOS) {
                     if ($xCred->numero_solicitud()->v() != $this->getNumeroDeCredito()) {
                         //agregar aviso
                         $xSocio->addMemo(MEMOS_TIPO_NOTA_RENOVACION, "Credito Renovado en la solicitud #" . $this->getNumeroDeCredito(), $xCred->numero_solicitud()->v(), $fecha);
                         $msg .= $xSocio->getMessages();
                     }
                 }
             }
         }
         //ejecutar alertas por Ministracion de Reglas de Negocios
         //Ministracion de Credito de la persona {clave_de_persona} {nombre_de_persona}
         //credito numero {clave_de_credito} con monto {monto_de_credito} y tipo de autorizacion {tipo_de_autorizacion}.
         $OTipoAut = new cCreditos_tipo_de_autorizacion();
         $OTipoAut->setData($OTipoAut->query()->initByID($this->getTipoDeAutorizacion()));
         $xRegla = new cReglaDeNegocio();
         $xRegla->setVariables(array("clave_de_persona" => $xSocio->getCodigo(), "nombre_de_persona" => $xSocio->getNombreCompleto(), "clave_de_credito" => $this->getNumeroDeCredito(), "monto_de_credito" => $this->getMontoAutorizado(), "tipo_de_autorizacion" => $OTipoAut->descripcion_tipo_de_autorizacion()->v(OUT_TXT)));
         $xRegla->setExecuteActions($xRegla->reglas()->RN_MINISTRAR_CREDITO);
     } else {
         $msg .= "ERROR\tNo se efectua operacion alguna\r\n";
     }
     $this->mMessages .= $msg;
     return $recibo;
 }
setNuevoMvto($socio, $solicitud, $recibo_pago, $fecha_operacion, $baseM146, OPERACION_CLAVE_PAGO_COM_VARIAS, $parcialidad, $observaciones);
setNuevoMvto($socio, $solicitud, $recibo_pago, $fecha_operacion, $baseM151, OPERACION_CLAVE_PAGO_IVA_INTS, $parcialidad, $observaciones);
setNuevoMvto($socio, $solicitud, $recibo_pago, $fecha_operacion, $baseM152, OPERACION_CLAVE_PAGO_IVA_OTROS, $parcialidad, $observaciones);
setNuevoMvto($socio, $contrato_captacion, $recibo_pago, $fecha_operacion, $baseM220, OPERACION_CLAVE_PAGO_CAPTACION, $parcialidad, $observaciones);
if ($baseM220 > 0) {
    //*************************** insertar SDPM ********************************************
    $SQLX = "SELECT * FROM captacion_cuentas WHERE numero_cuenta = {$contrato_captacion} ";
    $dCap = obten_filas($SQLX);
    $fecha_ultima = $dCap["fecha_afectacion"];
    $saldo_cuenta = $dCap["saldo_cuenta"];
    $monto_sdpm = $dCap["ultimo_sdpm"];
    $tasa = $dCap["tasa_otorgada"];
    $dias_mes = date("j", strtotime($fecha_operacion));
    $diastrans = restarfechas($fecha_operacion, $fecha_ultima);
    if ($diastrans < 0 or $diastrans > $dias_mes) {
        $diastrans = restarfechas($fecha_operacion, date("Y-m", strtotime($fecha_operacion)) . "-01");
    }
    if ($diastrans > 0) {
        $monto_sdpm = $saldo_cuenta * $diastrans;
    }
    //Guarda los datos del SDPM
    $ejer = date("Y", strtotime($fecha_operacion));
    $peri = date("m", strtotime($fecha_operacion));
    $sqlUS = "INSERT INTO captacion_sdpm_historico\n\t\t\t\t\t\t\t(ejercicio, periodo, cuenta, fecha, dias, tasa, monto, recibo)\n\t\t    \t\t\t\tVALUES( {$ejer}, {$peri},{$contrato_captacion}, '{$fecha_operacion}',\n\t\t    \t\t\t\t{$diastrans}, {$tasa}, {$monto_sdpm}, {$recibo_pago})";
    my_query($sqlUS);
    $msg .= "WARN\tAHORRO\t{$socio}\t{$contrato_captacion}\tAgregando y Actualizando el SDPM por {$monto_sdpm} del {$fecha_ultima} al {$fecha_operacion} agregando al saldo {$baseM220}\r\n";
    //Afectar el Saldo de la Cuenta de Captacion
    $sqlUAh = "UPDATE captacion_cuentas\n                            SET  fecha_afectacion='{$fecha_operacion}',\n                            saldo_cuenta=(saldo_cuenta +({$baseM220})),\n                            ultimo_sdpm={$monto_sdpm}\n                            WHERE numero_cuenta={$contrato_captacion}";
    my_query($sqlUAh);
}
//**************************************************************************************