function setValidarCreditos($fecha, $AppSucursal = true, $ReportToOficial = false)
 {
     if (!isset($fecha)) {
         $fecha = fechasys();
     }
     $msg = "====\t\tVALIDADOR DE CREDITOS V 1.0.01\r\n";
     $cierre_sucursal = "";
     if ($AppSucursal == true) {
         $cierre_sucursal = "AND (`creditos_solicitud`.`sucursal`='" . getSucursal() . "')";
     }
     //
     /*INICIALIZA EL RECIBO*/
     //
     $xRec = new cReciboDeOperacion(10);
     $tolerancia_en_pesos = TOLERANCIA_SALDOS;
     $sqlValidacion = "SELECT\n\t\t\t\t\t\t\t\t`creditos_solicitud`.*\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t\t`creditos_solicitud`\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t(`creditos_solicitud`.`estatus_actual`!=50)\n\t\t\t\t\t\t\t\t{$cierre_sucursal}\n\t\t\t\t\t\t\t\tAND\t(`creditos_solicitud`.`saldo_actual`>{$tolerancia_en_pesos})\n\t\t\t\t\t\t\t";
     $rs_PAM = mysql_query($sqlValidacion, cnnGeneral());
     if (!$rs_PAM) {
         $msg .= "LA CONSULTA NO SE EJECUTO (CODE: " . mysql_errno() . ")";
     }
     $i = 1;
     while ($rw = mysql_fetch_array($rs_PAM)) {
         $solicitud = $rw["numero_solicitud"];
         $socio = $rw["numero_socio"];
         $oficial = $rw["oficial_credito"];
         $txt = "";
         $msg .= "{$i}\tVERIFICANDO EL CREDITO {$solicitud} DE LA PERSONA # {$socio}\r\n";
         $clsCred = new cCredito($solicitud, $socio);
         $clsCred->init($rw);
         $txt = $clsCred->setVerificarValidez($i);
         if ($ReportToOficial == true and trim($txt) != "") {
             $cOficial = new cOficial(99);
             $cOficial->addNote(iDE_CREDITO, $oficial, $socio, $solicitud, $txt);
         }
         $msg .= $txt;
         $i++;
     }
     $this->mMessages .= $msg;
     return $msg;
 }
 function setCrearLetras($EsSucursal, $EnDetalle, $Avisar)
 {
     //Construir la Array de Letras
     $BySucursal = "";
     $sucursal = getSucursal();
     $arrLetras = array();
     $arrFechas = array();
     if ($EsSucursal == "si") {
         $BySucursal = " AND sucursal = '{$sucursal}' ";
     }
     //Eliminar las letras
     $sqlDSB = "DELETE FROM `sisbancs_amortizaciones` ";
     my_query($sqlDSB);
     $msg = "\t\tEliminar todas las letras\r\n";
     $sqlLetras = "SELECT\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`.`fecha_afectacion`,\n\t\t\t\t\t\t\t`operaciones_mvtos`.`tipo_operacion`,\n\t\t\t\t\t\t\t`operaciones_mvtos`.`periodo_socio`,\n\t\t\t\t\t\t\t(`operaciones_mvtos`.`afectacion_real` *\n\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`afectacion`) AS 'monto'\n\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` =2601)\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\t\tAND\n\t\t\t\t\t\t\t(`operaciones_mvtos`.`tipo_operacion` !=413)\n\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)) {
         $arrLetras[$rw["docto_afectado"] . "-" . $rw["periodo_socio"] . "-" . $rw["tipo_operacion"]] = $rw["monto"];
         if (!isset($arrFechas[$rw["docto_afectado"] . "-" . $rw["periodo_socio"] . "-fecha"])) {
             $arrFechas[$rw["docto_afectado"] . "-" . $rw["periodo_socio"] . "-fecha"] = $rw["fecha_afectacion"];
         }
     }
     $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}";
     $rsC = mysql_query($sqlCreds, cnnGeneral());
     $contar = 0;
     $NetoDisminuir = 0;
     $NetoCap = 0;
     $NetoLetra = 0;
     while ($rw = mysql_fetch_array($rsC)) {
         //Validar el Credito
         $socio = $rw["numero_socio"];
         $credito = $rw["numero_solicitud"];
         $oficial = $rw["oficial_credito"];
         $numero_pagos = $rw["pagos_autorizados"];
         $TasaIVA = $rw["tasa_iva"];
         $saldo_actual = $rw["saldo_actual"];
         $periocidad_de_pago = $rw["periocidad_de_pago"];
         $fecha_de_vencimiento = $rw["fecha_vencimiento"];
         $interes_pagado = $rw["interes_normal_pagado"];
         $interes_devengado = $rw["interes_normal_devengado"];
         $NetoCap += $saldo_actual;
         $TotalCap = 0;
         $TotalInt = 0;
         if ($periocidad_de_pago == 360) {
             $numero_pagos = 1;
         }
         $xc = new cCredito($credito, $socio);
         $xc->initCredito($rw);
         //$msg .=	"$contarINICIO\t$credito\t=============\tSALDO\t$saldo_actual\r\n";
         for ($i = 1; $i <= $numero_pagos; $i++) {
             $capital = 0;
             $interes = 0;
             $lkey = $credito . "-" . $i . "-";
             $fecha = isset($arrFechas[$lkey . "fecha"]) ? $arrFechas[$lkey . "fecha"] : fechasys();
             $txtLog = "";
             if ($periocidad_de_pago != 360) {
                 //Si el Capital Existe
                 if (isset($arrLetras[$lkey . 410])) {
                     $capital = $arrLetras[$lkey . 410];
                 }
                 //Si el Interes Existe
                 if (isset($arrLetras[$lkey . 411])) {
                     $interes = $arrLetras[$lkey . 411];
                 }
             } else {
                 $fecha = $fecha_de_vencimiento;
                 $capital = $saldo_actual;
                 $interes = setNoMenorQueCero($interes_devengado - $interes_pagado);
             }
             //recompocision a 2 digitos por letra
             $capital = round($capital, 2);
             $interes = round($interes, 2);
             $iva = round($interes * $TasaIVA, 2);
             //SUMAS
             $total_letra = $capital + $interes + $iva;
             $TotalCap += $capital;
             $TotalInt += $interes;
             //Global
             $NetoLetra += $capital;
             if ($total_letra > TOLERANCIA_SALDOS) {
                 $sqlI = "INSERT INTO sisbancs_amortizaciones\n\t\t\t\t\t\t\t\t\t\t(socio, credito, parcialidad, fecha_de_vencimiento, saldo_vigente, saldo_vencido,\n\t\t\t\t\t\t\t\t\t\tinteres_vigente, interes_vencido,\n\t\t\t\t\t\t\t\t\t\tsaldo_interes_vencido, interes_moratorio,\n\t\t\t\t\t\t\t\t\t\testatus, iva_interes_normal, iva_interes_moratorio,\n\t\t\t\t\t\t\t\t\t\tfecha_de_abono)\n\t\t\t\t\t\t\t\t\t\tVALUES\n\t\t\t\t\t\t\t\t\t\t({$socio}, {$credito}, {$i}, '{$fecha}', {$capital}, 0,\n\t\t\t\t\t\t\t\t\t\t{$interes}, 0,\n\t\t\t\t\t\t\t\t\t\t0, 0, 1, {$iva}, 0,\n\t\t\t\t\t\t\t\t\t\t'{$fecha}')";
                 my_query($sqlI);
                 if ($EnDetalle == "si") {
                     $msg .= "{$contar}\tLETRA\t{$credito}\t{$i}\tAGREGANDO PARCIALIDAD POR {$total_letra}\r\n";
                 }
             }
         }
         if ($TotalCap > $saldo_actual + TOLERANCIA_SALDOS or $TotalCap < $saldo_actual - TOLERANCIA_SALDOS) {
             $txtLog .= "{$contar}\tERROR\t{$credito}\tERROR EL SALDO({$saldo_actual})ES DIFERENTE A LA SUMA DE LETRAS({$TotalCap})\r\n";
             if ($Avisar == "si") {
                 $xo = new cOficial();
                 $xo->addNote(iDE_CREDITO, $oficial, $socio, $credito, $txtLog);
             }
             $msg .= $txtLog;
         }
         $msg .= "{$contar}\t{$credito}\t=============\tCAPITAL\t{$TotalCap}\r\n";
         $msg .= "{$contar}\t{$credito}\t=============\tINTERES\t{$TotalInt}\r\n";
         $msg .= "{$contar}\tFIN\t=================================================================\r\n";
         $contar++;
     }
     return $msg;
 }
 function send($mensaje, $email = false, $telefono = false, $usuario = false, $mensaje_corto = "", $canal = false)
 {
     $msg = "";
     $mensaje = $this->cleanString($mensaje);
     $mensaje_corto = $this->cleanString($mensaje_corto);
     $mensaje_corto = $mensaje_corto == "" ? substr($mensaje, 0, $this->mSMS_limit) : substr($mensaje_corto, 0, $this->mSMS_limit);
     if ($email == false) {
     } else {
         $msg .= $this->sendMail($this->mTitulo, $mensaje, $email);
     }
     if ($telefono == false) {
     } else {
         $telefono = "52" . $telefono;
         $msg .= $this->sendSMS($telefono, $mensaje_corto);
     }
     if ($usuario == false) {
     } else {
         $xOf = new cOficial($usuario);
         $socio = DEFAULT_SOCIO;
         $docto = DEFAULT_CREDITO;
         $msg .= $xOf->addNote(AVISOS_TIPO_RECORDATORIO, $usuario, $socio, $docto, $mensaje_corto);
     }
     if ($canal == false) {
     } else {
         $this->mCanal = $canal;
         $msg .= $this->sendCloudMessage($mensaje_corto);
     }
     $this->mMessages .= $msg;
     return $msg;
 }