function init()
 {
     $id = $this->mCodigo;
     $sql_errors = "SELECT  idgeneral_error_codigos, description_error, type_err \r\n    \t\t\t\t\t\t\tFROM general_error_codigos WHERE idgeneral_error_codigos={$id}\r\n    \t\t\t\t\t\t\tLIMIT 0,1 ";
     $mql = new MQL();
     $rs = $mql->getDataRecord($sql_errors);
     foreach ($rs as $rw) {
         $this->mCodigo = $rw["idgeneral_error_codigos"];
         $this->mDescripcion = $rw["description_error"];
     }
 }
function jsaGetCuentas($cuenta)
{
    $xCta = new cCuentaContableEsquema($cuenta);
    $sql = "SELECT numero, nombre FROM contable_catalogo WHERE numero LIKE '" . $xCta->CUENTARAW . "%' AND afectable=1  ORDER BY numero LIMIT 0,10";
    $ql = new MQL();
    $rs = $ql->getDataRecord($sql);
    $h = "";
    foreach ($rs as $rows) {
        $xCta2 = new cCuentaContableEsquema($rows["numero"]);
        $h .= "<option value=\"" . $rows["numero"] . "\">" . $xCta2->CUENTARAW . "-" . $rows["nombre"] . "</option>";
    }
    return $h;
}
function jsaGetDatosEmpresa($idEmpresa)
{
    $xEmp = new cEmpresas($idEmpresa);
    $xF = new cFecha();
    $ql = new MQL();
    $xl = new cSQLListas();
    $observaciones = "";
    $xEmp->init();
    $persona = $xEmp->getClaveDePersona();
    $xF = new cFecha(0);
    $opts = "";
    $exT = "";
    $periocidad = $xEmp->getPeriocidadPref();
    $periodo = $periocidad == CREDITO_TIPO_PERIOCIDAD_SEMANAL ? $xF->semana() : $xF->quincena();
    $periodo = intval($xEmp->getPeriodo()) < 1 ? $periodo : intval($xEmp->getPeriodo());
    $data = $ql->getDataRecord($xl->getListadoDePeriodoPorEmpresa($idEmpresa));
    $variacion = "0";
    $fecha_inicial = $xF->getFechaMX();
    $fecha_final = $xF->getFechaMX();
    $control = 0;
    $ctrl = "<label for=\"idperiodo\">Periodo {$periodo}</label><input type=\"number\" id=\"idperiodo\" onchange=\"jsGetCobranza()\" onblur=\"jsGetCobranza()\" />";
    $contar = 1;
    $max = 5;
    foreach ($data as $rw) {
        $idsel = "";
        $idclave = $rw["codigo"];
        $xPer = $xEmp->getOPeriodo(false, false, $idclave);
        if ($periodo == $xPer->periodo_marcado()->v() and $periocidad == $xPer->periocidad()->v()) {
            $control = $idclave;
            $periodo = $xPer->periodo_marcado()->v();
            $periocidad = $xPer->periocidad()->v();
            $fecha_final = $xPer->fecha_final()->v();
            $fecha_inicial = $xPer->fecha_inicial()->v();
            $idsel = " selected=\"true\" ";
        }
        if ($contar <= $max) {
            $opts .= "<option value=\"" . $idclave . " \"{$idsel}>" . $rw["nombre_periocidad"] . "[" . $xPer->periodo_marcado()->v() . "]";
            $opts .= "  - DEL: " . $xF->getFechaDDMM($rw["fecha_inicial"]) . " - " . $xF->getFechaDDMM($rw["fecha_final"]) . " SALDO " . getFMoney($rw["saldo"]) . "</option>";
        }
        $contar++;
    }
    if ($opts != "") {
        $ctrl = "<label for='idperiodo'>Periodo</label><select id=\"idperiodo\" name=\"idperiodo\" onblur=\"jsGetCobranza()\" onchange=\"jsGetCobranza()\">{$opts}</select>";
    }
    $ctrl .= "<input type=\"hidden\" id=\"idvariacion\" value=\"{$variacion}\" />";
    $ctrl .= "<input type=\"hidden\" id=\"idperiodo\" value=\"{$periodo}\" />";
    $ctrl .= "<input type=\"hidden\" id=\"idperiocidad\" value=\"{$periocidad}\" />";
    $ctrl .= "<input type=\"hidden\" id=\"idclavedepersona\" value=\"{$periocidad}\" />";
    return $ctrl;
}
function jsaCargaDeCreditos($persona)
{
    $xL = new cSQLListas();
    $ql = new MQL();
    $xs = new cHSelect();
    $xs->setDivClass("");
    $sql = $xL->getListadoDeCreditos($persona);
    $rs = $ql->getDataRecord($sql);
    $aOpts = array();
    //setLog($sql);
    foreach ($rs as $row) {
        $aOpts[$row["credito"]] = $row["credito"] . "-" . $row["producto"] . "-" . $row["periocidad"] . "-" . $row["saldo"];
    }
    $xs->addOptions($aOpts);
    return $xs->get("idcreditodescontado", "TR.CLAVE_de_credito");
}
 function init($clasificacion = "")
 {
     $cls = $clasificacion == "" ? "" : " AND (`sistema_equivalencias`.`clasificacion` ='{$clasificacion}') ";
     $ql = new MQL();
     $sql = "SELECT * FROM `sistema_equivalencias` WHERE (`sistema_equivalencias`.`tabla` ='" . $this->mTabla . "') {$cls}";
     $rs = $ql->getDataRecord($sql);
     foreach ($rs as $row) {
         $this->mEquiv[strtolower($row["original"])] = strtolower($row["equivalencia"]);
     }
 }
$dias_totales = $xCred->getDiasAutorizados();
$numero_pagos = $xCred->getPagosAutorizados();
$nombre_otro = "";
$observaciones = $xRec->getObservaciones();
$extTool = "";
echo $xSoc->getFicha();
echo $xCred->getFicha(true, "", false);
$pagoactual = $xCred->getPeriodoActual();
if ($ShowAvales == true) {
    $avals = $xCred->getAvales_InText();
    echo $avals;
}
//------------------------------------- DATOS DEL RECIBO
$sumrec = $xRec->getTotal();
$sql = "\n\t\t\tSELECT operaciones_mvtos.periodo_socio AS 'parcialidad', fecha_afectacion,\n\t\t\t\t\toperaciones_tipos.idoperaciones_tipos  As 'tipo',\n\t\t\t\t\toperaciones_tipos.descripcion_operacion AS 'concepto' ,\n\t\t\t\t\toperaciones_mvtos.afectacion_real AS 'monto',\n\t\t\t\t\toperaciones_mvtos.saldo_actual AS 'saldo',\n\t\t\t\t\toperaciones_mvtos.valor_afectacion AS 'afectacion'\n\t\t\tFROM \t`operaciones_mvtos` `operaciones_mvtos`\n\t\t\t\t\tINNER JOIN `operaciones_tipos` `operaciones_tipos`\n\t\t\t\t\tON `operaciones_mvtos`.`tipo_operacion` = `operaciones_tipos`.\n\t\t\t\t\t`idoperaciones_tipos`\n\n\t\t\tWHERE operaciones_mvtos.recibo_afectado={$idrecibo}\n\t\t\tORDER BY operaciones_mvtos.periodo_socio, operaciones_tipos.idoperaciones_tipos";
$rs = $ql->getDataRecord($sql);
$trs = "";
//Parcialidad, evaluador de inciio y final
$PInit = 0;
$PFin = 0;
$capital = 0;
$interes = 0;
$iva = 0;
$ahorro = 0;
$otros = 0;
$total = 0;
$SUMCap = 0;
$SUMInt = 0;
$SUMIva = 0;
$SUMAh = 0;
$SUMOtros = 0;
 function setActualizarNivelDeRiesgo($actualizar = false)
 {
     $xQL = new MQL();
     $xLi = new cSQLListas();
     $xLog = new cCoreLog();
     //$xLi->getInicialDeCuentas()
     $rs = $xQL->getDataRecord($xLi->getInicialDePersonas());
     foreach ($rs as $rows) {
         $persona = $rows["codigo"];
         $xAml = new cAMLPersonas($persona);
         $xAml->init($persona, $rows);
         $riesgo = $xAml->setAnalizarNivelDeRiesgo();
         $NivelActual = $xAml->getOPersona()->getNivelDeRiesgo();
         if ($riesgo != $NivelActual) {
             if ($riesgo >= SYS_RIESGO_MEDIO) {
                 $xLog->add($xAml->getMessages(), $xLog->DEVELOPER);
             }
             if ($actualizar == true) {
                 $xAml->getOPersona()->setActualizarNivelDeRiesgo($riesgo, $xAml->getMessages());
             }
             $xLog->add($xAml->getOPersona()->getMessages(), $xLog->DEVELOPER);
         }
     }
     return $xLog->getMessages();
 }
//header("Content-type: application/csv");
if ($toJson == true) {
    header("Content-type: text/plain");
} else {
    header("Content-type: text/x-csv");
    header("Content-Disposition: attachment; filename=" . urlencode($ClaveOtorgante . "_" . $NombreOtorgante . "_" . $FechaExtraccion) . ".txt");
}
//Linea de Encabezados
$strHEAD = strtoupper("ClaveOtorgante|NombreOtorgante|IdentificadorDeMedio|FechaExtraccion|NotaOtorgante|Version|ApellidoPaterno|ApellidoMaterno|ApellidoAdicional|Nombres|FechaNacimiento|RFC|CURP|Nacionalidad|Residencia|NumeroLicenciaConducir|EstadoCivil|Sexo|ClaveElectorIFE|NumeroDependientes|FechaDefuncion|IndicadorDefuncion|TipoPersona|Direccion|ColoniaPoblacion|DelegacionMunicipio|Ciudad|Estado|CP|FechaResidencia|NumeroTelefono|TipoDomicilio|TipoAsentamiento|NombreEmpresa|Direccion|ColoniaPoblacion|DelegacionMunicipio|Ciudad|Estado|CP|NumeroTelefono|Extension|Fax|Puesto|FechaContratacion|ClaveMoneda|SalarioMensual|FechaUltimoDiaEmpleo|FechaVerificacionEmpleo|ClaveActualOtorgante|NombreOtorgante|CuentaActual|TipoResponsabilidad|TipoCuenta|TipoContrato|ClaveUnidadMonetaria|ValorActivoValuacion|NumeroPagos|FrecuenciaPagos|MontoPagar|FechaAperturaCuenta|FechaUltimoPago|FechaUltimaCompra|FechaCierreCuenta|FechaCorte|Garantia|CreditoMaximo|SaldoActual|LimiteCredito|SaldoVencido|NumeroPagosVencidos|PagoActual|HistoricoPagos|ClavePrevencion|TotalPagosReportados|ClaveAnteriorOtorgante|NombreAnteriorOtorgante|NumeroCuentaAnterior|FechaPrimerIncumplimiento|SaldoInsoluto|TotalSaldosActuales|TotalSaldosVencidos|TotalElementosNombreReportados|TotalElementosDireccionReportados|TotalElementosEmpleoReportados|TotalElementosCuentaReportados|NombreOtorgante|DomicilioDevolucion");
if ($toJson == true) {
    $itemJson = explode("|", $strHEAD);
} else {
    echo $strHEAD . "\r\n";
}
//exit("SELECT * FROM `creditos_abonos_parciales` WHERE	(`creditos_abonos_parciales`.`fecha_de_pago` <='$FechaFinal')");
$rsPagos = $query->getDataRecord("SELECT * FROM `creditos_abonos_parciales` WHERE\t(`creditos_abonos_parciales`.`fecha_de_pago` <='{$FechaFinal}') {$ByPersona1}");
$DPagos = array();
foreach ($rsPagos as $dpags) {
    $credito = $dpags["docto_afectado"];
    $DPagos[$credito][] = $dpags;
}
$rsCal = $query->getDataRecord("SELECT * FROM `letras` WHERE\t(`fecha_de_pago` <='{$FechaFinal}') {$ByPersona3}");
$DCal = array();
foreach ($rsCal as $dscal) {
    $credito = $dscal["docto_afectado"];
    $DCal[$credito][] = $dscal;
}
/*
 TotalSaldosActuales
TotalSaldosVencidos
TotalElementosNombreReportados
$xRPT->setTitle($xHP->getTitle(), true);
$xRPT->addContent($xSoc->getFicha());
$xRPT->addContent($xCuenta->getFicha(true, "", true));
//Datos de la Cuenta
$sqlMvtos = "SELECT\n\t\t\t`operaciones_mvtos`.*,\n\t\t\t\t(`operaciones_mvtos`.`afectacion_real` *\n\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`afectacion`) AS 'monto',\n\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`afectacion`\n\t\t\tFROM\n\t\t\t`operaciones_mvtos` `operaciones_mvtos`\n\t\t\t\tINNER JOIN `eacp_config_bases_de_integracion_miembros`\n\t\t\t\t`eacp_config_bases_de_integracion_miembros`\n\t\t\t\tON `operaciones_mvtos`.`tipo_operacion` =\n\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`miembro`\n\t\t\tWHERE\n\t\t\t(`operaciones_mvtos`.`docto_afectado` =" . $cuenta . ") AND\n\t\t\t(`eacp_config_bases_de_integracion_miembros`.`codigo_de_base` = 3200)\n\n\t\t\tORDER BY\n\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`codigo_de_base`,\n\t\t\t\t`operaciones_mvtos`.`fecha_afectacion`,\n\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`afectacion` DESC\n\t\t\t";
$xHT->initRow();
$xHT->addTH("TR.Fecha");
$xHT->addTH("TR.Recibo");
$xHT->addTH("TR.Operacion");
$xHT->addTH("TR.Deposito");
$xHT->addTH("TR.Retiro");
$xHT->addTH("TR.Inversion");
$xHT->addTH("TR.Saldo");
$xHT->addTH("TR.Notas");
$xHT->endRow();
$rsmvto = $xQl->getDataRecord($sqlMvtos);
$sdo_al_corte = 0;
$depositos = 0;
$retiros = 0;
$inversiones = 0;
foreach ($rsmvto as $ryx) {
    $tr = "";
    $tipoop = eltipo("operaciones_tipos", $ryx["tipo_operacion"]);
    $fecha = $ryx["fecha_afectacion"];
    $sdo_al_corte += $ryx["monto"];
    $detallado = substr($ryx["detalles"], 0, 15);
    $oes = "";
    if ($ryx["afectacion"] == -1) {
        $oes = "<td>&nbsp;</td>\n\t\t\t\t\t\t\t<td class='mny'>" . getFMoney($ryx["afectacion_real"]) . "</td>\n\t\t\t\t\t\t\t<td>&nbsp;</td>";
        $retiros += $ryx["afectacion_real"];
    } elseif ($ryx["afectacion"] == 1) {
}
$_SESSION["current_file"] = addslashes($theFile);
//<=====	FIN_H
//=====================================================================================================
$xInit = new cHPage("", HP_SERVICE);
$txt = "";
$ql = new MQL();
$lis = new cSQLListas();
$xF = new cFecha();
$persona = parametro("persona", DEFAULT_SOCIO, MQL_INT);
$credito = parametro("credito", DEFAULT_CREDITO, MQL_INT);
$tipo = parametro("tipo", false, MQL_INT);
$estado = parametro("estado", false, MQL_INT);
$rs = array();
if (setNoMenorQueCero($persona) > DEFAULT_SOCIO) {
    //$xSoc	= new cSocio($persona); $xSoc->init();
    //$tipo 	= ( setNoMenorQueCero($tipo)  > 0) ? $tipo : SYS_TODAS;
    $estado = setNoMenorQueCero($estado) > 0 ? $estado : SYS_TODAS;
    $SinSaldo = ($estado == CREDITO_ESTADO_AUTORIZADO or $estado == CREDITO_ESTADO_SOLICITADO) ? true : false;
    $sql = $lis->getListadoDeCreditos($persona, $SinSaldo, $estado);
    $datos = $ql->getDataRecord($sql);
    foreach ($datos as $row) {
        $describe = $xF->getFechaDDMM($row["otorgado"]) . " " . $row["producto"] . "*" . $row["periocidad"] . " " . $row["periodo"] . "*" . $row["saldo"];
        $rs[$row["credito"]] = $describe;
    }
    //}
}
header('Content-type: application/json');
echo json_encode($rs);
//setLog(json_encode($rs));
//setLog($sql);
 function setRegenerarSDPM($PFechaInicial, $PFechaFinal, $GenerarInteres = true, $incluirSinSaldo = false, $NumeroCuenta = false)
 {
     //		$PFechaFinal		= "";
     $mBase = 3100;
     $xT = new cTipos();
     $ql = new MQL();
     $BySaldo = $incluirSinSaldo == false ? " AND captacion_cuentas.saldo_cuenta >=" . TOLERANCIA_SALDOS : "";
     $ByCuentaSDPM = $NumeroCuenta == false ? "" : " AND `captacion_sdpm_historico`.`cuenta` = {$NumeroCuenta} ";
     $ByCuentaMvto = $NumeroCuenta == false ? "" : " AND `operaciones_mvtos`.`docto_afectado` = {$NumeroCuenta} ";
     $ByCuentaCta = $NumeroCuenta == false ? "" : " AND captacion_cuentas.numero_cuenta = {$NumeroCuenta} ";
     $msg = "";
     $msg .= "==========================================================================================\r\n";
     $msg .= "==================\tGenerando SDPM desde el {$PFechaInicial} al {$PFechaFinal}\r\n";
     $msg .= "==========================================================================================\r\n";
     $msg .= "Socio\tCuenta\tOPER\tEjercicio\tPeriodo\tFecha\tDias\tMonto\tSaldo\tSDPM\r\n";
     $sqlM = "SELECT \n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`fecha_operacion`  AS 'fecha_operacion',\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`recibo_afectado` AS 'recibo_afectado',\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`docto_afectado` AS 'docto_afectado',\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`afectacion_real` AS 'afectacion_real',\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`valor_afectacion`,\n\t\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`afectacion` AS 'afectacion'\n\t\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos` `operaciones_mvtos` \n\t\t\t\t\t\t\t\t\t\tINNER JOIN `eacp_config_bases_de_integracion_miembros` \n\t\t\t\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros` \n\t\t\t\t\t\t\t\t\t\tON `operaciones_mvtos`.`tipo_operacion` = \n\t\t\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`miembro` \n\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t(`eacp_config_bases_de_integracion_miembros`.`codigo_de_base` ={$mBase})\n\t\t\t\t\t\t\t\t\t{$ByCuentaMvto}\n\t\t\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`codigo_de_base`,\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`fecha_operacion` ASC";
     $rsM = getRecordset($sqlM);
     $arrOps = array();
     //Array de montos de operacion
     $arrRecs = array();
     //Array de Recibos de Operacion
     while ($rwM = mysql_fetch_array($rsM)) {
         //clave cuenta fecha
         $cuenta = $rwM["docto_afectado"];
         $fecha = $rwM["fecha_operacion"];
         if (isset($arrOps[$cuenta . "-" . $fecha])) {
             $arrOps[$cuenta . "-" . $fecha] += $rwM["afectacion_real"] * $rwM["afectacion"];
         } else {
             $arrOps[$cuenta . "-" . $fecha] = $rwM["afectacion_real"] * $rwM["afectacion"];
         }
         $arrRecs[$cuenta . "-" . $fecha] = $rwM["recibo_afectado"];
         //$msg					.= "WARN\t$cuenta\tAgregar " . ($rwM["afectacion_real"] * $rwM["afectacion"] ) . "\r\n";
     }
     //Eliminar periodos anteriores
     $sqlDF = "DELETE FROM captacion_sdpm_historico WHERE (fecha>='{$PFechaInicial}' AND fecha<='{$PFechaFinal}') {$ByCuentaSDPM} ";
     my_query($sqlDF);
     //FECHAS
     $xF = new cFecha(0);
     //
     $xTbl = new cSAFETabla(TCAPTACION_CUENTAS);
     $sqlCX = $xTbl->getQueryInicial() . " WHERE captacion_cuentas.tipo_cuenta = " . CAPTACION_TIPO_VISTA . " {$BySaldo} {$ByCuentaCta} ";
     $rs1 = getRecordset($sqlCX);
     while ($rw1 = mysql_fetch_array($rs1)) {
         $socio = $rw1["numero_socio"];
         $cuenta = $rw1["numero_cuenta"];
         $xCta = new cCuentaALaVista($cuenta, $socio);
         $xCta->init($rw1);
         $DCta = $xCta->getDatosInArray();
         $FApertura = $DCta["fecha_apertura"];
         $dias = $xF->setRestarFechas($PFechaFinal, $FApertura);
         $dias += 1;
         $sucursal = $DCta["sucursal"];
         $FechaAnterior = $FApertura;
         $saldoAnterior = 0;
         $xF2 = new cFecha(1);
         for ($i = 0; $i <= $dias; $i++) {
             $OpFecha = $xF->setSumarDias($i, $FApertura);
             $xF->set($OpFecha);
             $OpFechaFin = $xF->getDiaFinal();
             $OpMonto = isset($arrOps[$cuenta . "-" . $OpFecha]) ? $arrOps[$cuenta . "-" . $OpFecha] : 0;
             $idrecibo = isset($arrRecs[$cuenta . "-" . $OpFecha]) ? $arrRecs[$cuenta . "-" . $OpFecha] : DEFAULT_RECIBO;
             //si la operacion es mayor a cero o es FIN DE MES
             if ($OpMonto != 0 or $OpFecha == $OpFechaFin) {
                 $diasTrans = $xF2->setRestarFechas($OpFecha, $FechaAnterior);
                 $xF2->set($OpFecha);
                 $ejercicio = $xF2->anno();
                 $periodo = $xF2->mes();
                 $sdpd = $saldoAnterior * $diasTrans;
                 $nuevatasa = $xCta->getTasaAplicable(0, 0, $saldoAnterior);
                 //corregir fecha
                 $sqlUSPM = "INSERT INTO captacion_sdpm_historico\n\t\t\t\t\t\t\t\t\t\t(ejercicio, periodo, cuenta, fecha, dias, tasa, monto, recibo, numero_de_socio, sucursal)\n\t    \t\t\t\t\t\t\t\tVALUES( {$ejercicio}, {$periodo}, {$cuenta}, '{$OpFecha}', {$diasTrans}, {$nuevatasa}, {$sdpd}, {$idrecibo}, {$socio}, '{$sucursal}') ";
                 //si es valida la operacion, se actualizan
                 if ($OpFecha >= $PFechaInicial and $OpFecha <= $PFechaFinal) {
                     my_query($sqlUSPM);
                     $msg .= "{$socio}\t{$cuenta}\t+SDPM\t{$ejercicio}\t{$periodo}\t{$OpFecha}\t{$diasTrans}\t{$OpMonto}\t{$saldoAnterior}\t{$sdpd}\r\n";
                 } else {
                     $msg .= "{$socio}\t{$cuenta}\t=SDPM\t{$ejercicio}\t{$periodo}\t{$OpFecha}\t{$diasTrans}\t{$OpMonto}\t{$saldoAnterior}\t{$sdpd}\r\n";
                 }
                 $FechaAnterior = $OpFecha;
                 $saldoAnterior += $OpMonto;
             }
         }
     }
     //Agregar Movimientos Finales del MES.
     //FIXME: Corregir incidencias
     //opcional: agregar Interes
     if ($GenerarInteres == true) {
         $xRec = new cReciboDeOperacion(12, false);
         $recibo = $xRec->setNuevoRecibo(DEFAULT_SOCIO, 1, $PFechaFinal, 1, 12, "REGENERAR_INTERES_SDPM_{$PFechaFinal}", "NA", "ninguno", "NA", DEFAULT_GRUPO);
         $msg .= "==========================================================================================\r\n";
         $msg .= "==================\tAGREGADO INTERES :: RECIBO {$recibo}\r\n";
         $msg .= "==========================================================================================\r\n";
         $_SESSION["recibo_en_proceso"] = $recibo;
         //sumar sdpm del mes por cuenta
         $sqlSDPM = "SELECT\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`numero_de_socio`,\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`cuenta`,\n\t\t\t\t\t\t\t\tSUM(`captacion_sdpm_historico`.`dias`)  AS `dias_transcurridos`,\n\t\t\t\t\t\t\t\tSUM(`captacion_sdpm_historico`.`monto`) AS `sdpm`,\n\t\t\t\t\t\t\t\tROUND( (`captacion_sdpm_historico`.`monto` / `captacion_sdpm_historico`.`dias`), 2) AS `ultimo_saldo`,\n\t\t\t\t\t\t\t\tMAX(`captacion_sdpm_historico`.`fecha`) AS 'UltimaFecha'\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico` `captacion_sdpm_historico` \n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t(`captacion_sdpm_historico`.`fecha` >= '{$PFechaInicial}')\n\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\t(`captacion_sdpm_historico`.`fecha` <= '{$PFechaFinal}')\n\t\t\t\t\t\t\t\t{$ByCuentaSDPM}\n\t\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`cuenta`,\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`ejercicio`,\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`periodo`\n\t\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`fecha` DESC ";
         $rsCAP = $ql->getDataRecord($sqlSDPM);
         //setLog($sqlSDPM);
         foreach ($rsCAP as $rwC) {
             $socio = $rwC["numero_de_socio"];
             $cuenta = $rwC["cuenta"];
             $dias_de_calc = $rwC["dias_transcurridos"];
             $sumaSDPM = $rwC["sdpm"];
             $FechaI = $rwC["UltimaFecha"];
             $promedio = $xT->cFloat($sumaSDPM / $dias_de_calc, 2);
             //XXX: Solucionar Tasa de Interes y hacer las rapida la consulta
             $xCta = new cCuentaDeCaptacion($cuenta);
             $xCta->init();
             $subtipo = $xCta->getTipoDeSubproducto();
             $tasa_nueva = obtentasa($promedio, CAPTACION_TIPO_VISTA, 0, $subtipo);
             $interes = $sumaSDPM * $tasa_nueva / EACP_DIAS_INTERES;
             $interes = $xT->cFloat($interes, 2);
             //agregar movimiento
             if ($interes > 0) {
                 setNuevoMvto($socio, $cuenta, $recibo, $FechaI, $interes, 222, 1, "CALCULO_AUTOMATICO_DESDE_{$PFechaInicial}");
                 $msg .= "{$socio}\t{$cuenta}\tAGREGAR\tInteres por {$interes}, tasa {$tasa_nueva}, Promedio {$promedio}, SDPM {$sumaSDPM}, Dias {$dias_de_calc}\r\n";
             } else {
                 $msg .= "{$socio}\t{$cuenta}\tIGNORAR\tInteres por {$interes}, tasa {$tasa_nueva}, Promedio {$promedio}, SDPM {$sumaSDPM}, Dias {$dias_de_calc}\r\n";
             }
         }
     }
     return $msg;
 }
 function getListadoDeMovimientos($complementoTD = "")
 {
     $xL = new cLang();
     $xQL = new cSQLListas();
     $sql = $xQL->getListadoDeMovimientosContables($this->mCodigoDePoliza);
     $ql = new MQL();
     $td = "";
     $tcargos = 0;
     $tabonos = 0;
     $cnt = 1;
     $th = "<tr>\n\t\t    <th class='movimiento'>#</th>\n\t\t    <th class='cuenta'>" . $xL->getT("TR.Cuenta") . "</th>\n\t\t    <th class='nombrecuenta'>" . $xL->getT("TR.Nombre") . "</th>\n\t\t    <th class='cargos'>" . $xL->getT("TR.Cargos") . "</th>\n\t\t    <th class='abonos'>" . $xL->getT("TR.Abonos") . "</th>\n\t\t    <th class='referencia'>" . $xL->getT("TR.Referencia") . "</th>\n\t\t    <th class='concepto'>" . $xL->getT("TR.Concepto") . "</th>\n  \t\t</tr>";
     $rs = $ql->getDataRecord($sql);
     foreach ($rs as $rows) {
         $operacion = $rows["operacion"];
         $nid = $this->mCodigoDePoliza . $this->mDiv . $operacion;
         $cuenta = $rows["cuenta"];
         $pid = str_replace(".", "_", $nid);
         $cnt = $cnt >= 2 ? 1 : $cnt + 1;
         $cls = $cnt == 2 ? " class='trOdd' " : "";
         $td .= "<tr{$cls} id='{$pid}'><td>" . $rows["operacion"] . "</td>";
         $td .= "<td>" . $cuenta . "</td>";
         $td .= "<td  class='nombrecuenta' onclick='var xC = new ContGen(); xC.goToPanel({$cuenta})'>" . $rows["nombre"] . "</td>";
         if ($rows["tipo"] == TM_CARGO) {
             $tcargos += $rows["importe"];
             $td .= "<td onclick='jsEditarMvto(\"{$nid}\")' class='mny'>" . getFMoney($rows["importe"]) . "</td><td />";
         } else {
             $tabonos += $rows["importe"];
             $td .= "<td /><td onclick='jsEditarMvto(\"{$nid}\")' class='mny'>" . getFMoney($rows["importe"]) . "</td>";
         }
         $td .= "<td>" . $rows["referencia"] . "</td>";
         $td .= "<td>" . $rows["concepto"] . "</td></tr>";
     }
     $tf = "<tr>\n\t\t    <td />\n\t\t    <td />\n\t\t    <th>" . $xL->getT("TR.Sumas") . "</th>\n\t\t    <th><input type='text' disabled value='" . getFMoney($tcargos) . "' id='idsumacargos' class='mny' /></th>\n\t\t    <th><input type='text' disabled value='" . getFMoney($tabonos) . "' id='idsumaabonos' class='mny' /></th>\n\t\t    <td />\n\t\t    <td />\n  \t\t</tr>";
     return "<table id='movimientocontables'><thead>{$th} {$complementoTD} </thead><tbody>{$td}</tbody><tfoot>{$tf}</tfoot></table>";
 }
$preguntar = parametro("pregunta", false, MQL_BOOL);
$xLayout->setTipo($xLayout->OPERACIONES_RELEVANTES);
$datos = $xLayout->read();
$Estructura = $xLayout->getContent();
$FechaExtraccion = $FechaFinal;
$FechaTitulo = date("ym", strtotime($FechaFinal));
$casfin = EACP_CLAVE_CASFIN;
$delimitador = $xLayout->getSeparador();
$msg = "";
$production = ($out == OUT_TXT or $out == OUT_CSV) ? true : false;
$supervisor = 2;
//supervisor 002 CNBV y su casfin 1002
$sql = "SELECT \n\t`aml_risk_register`.`persona_relacionada` \t\tAS 'persona',\n\t`aml_risk_register`.`fecha_de_reporte` \t\t\tAS 'fecha',\n\t`aml_risk_register`.`instrumento_financiero` \tAS 'instrumento',\n\t`aml_risk_register`.`documento_relacionado` \tAS `recibo` \nFROM\n\t`aml_risk_catalog` `aml_risk_catalog` \n\t\tINNER JOIN `aml_risk_register` `aml_risk_register` \n\t\tON `aml_risk_catalog`.`clave_de_control` = `aml_risk_register`.\n\t\t`tipo_de_riesgo` \nWHERE\n\t`aml_risk_catalog`.`tipo_de_riesgo` = " . AML_CLAVE_OPERACIONES_RELEVANTES . "\n\tAND (\n\tgetFechaByInt(`aml_risk_register`.`fecha_de_reporte`) >='{$FechaInicial}' \n\tAND \n\tgetFechaByInt(`aml_risk_register`.`fecha_de_reporte`) <='{$FechaFinal}'\n\t) \n\tAND (`aml_risk_register`.`estado_de_envio` =0)\n\n";
$xTBL = new cTabla($sql);
$rpt = "";
$rs = $query->getDataRecord($sql);
$xRisk = new cAml_risk_register();
$xEquivOps = new cSistemaEquivalencias(TOPERACIONES_RECIBOSTIPOS);
$xEquivOps->init($xEquivOps->PLD_OPERACIONES);
$xEquivInst = new cSistemaEquivalencias(TTESORERIA_TIPOS_DE_PAGO);
$xEquivInst->init($xEquivInst->PLD_OPERACIONES);
//$xEquivIns
$operaciones = 0;
$totalerrores = 0;
foreach ($rs as $data) {
    $persona = $data["persona"];
    $idrecibo = $data["recibo"];
    $fechaDetec = $xF->getFechaByInt($data["fecha"]);
    //obtener listado de operaciones en el mes
    $xAML = new cAMLPersonas($persona);
    $xSoc = new cSocio($persona, true);
 function setPermisos($permisos, $id = false)
 {
     $msg = "";
     $id = $id == false ? $this->mID : $id;
     $mql = new MQL();
     $gl = $this->mGlobalM;
     //actualizar padres y parent
     $sql = "UPDATE general_menu set menu_rules='{$permisos}' WHERE (menu_parent != {$gl}) AND (menu_parent={$id} OR `idgeneral_menu` = {$id} )";
     $ics = my_query($sql);
     $msg .= "OK\tAplicacion Recursiva de {$id} " . $ics["rows"] . "\r\n";
     $sql2 = "SELECT * FROM general_menu WHERE menu_parent={$id}";
     $rs = $mql->getDataRecord($sql2);
     $xMen = new cGeneral_menu();
     foreach ($rs as $row) {
         $xMen->setData($row);
         $ide = $xMen->idgeneral_menu()->v();
         $sqlP = "UPDATE general_menu SET menu_rules='{$permisos}' WHERE menu_parent={$ide} OR `idgeneral_menu` = {$ide} ";
         $idcs = my_query($sqlP);
         $msg .= "OK\tSubmenu {$ide} padre {$id} " . $idcs["rows"] . "\r\n";
     }
     $this->mMessages .= $msg;
     return $msg;
 }
$xRPT = new cReportes($titulo);
$xRPT->setFile($archivo);
$xRPT->setOut($out);
$xRPT->setSQL($sql);
$xRPT->setTitle($xHP->getTitle());
//Ficha
$xCred = new cCredito($credito);
$xCred->init();
$xRPT->addContent($xCred->getFicha(true, "", true, true));
//============ Reporte
//$xT		= new cTabla($sql, 2);
//$xT->setTipoSalida($out);
$body = $xRPT->getEncabezado($xHP->getTitle(), $FechaInicial, $FechaFinal);
$xRPT->setBodyMail($body);
$xRPT->addContent($body);
$rs = $query->getDataRecord($sql);
$sumP = 0;
$sumD = 0;
$td = "";
foreach ($rs as $rw) {
    $montoD = 0;
    $montoP = 0;
    $recibo = $rw["recibo_afectado"];
    $operacion = $rw["tipo_de_operacion"];
    $fecha = $rw["fecha_de_operacion"];
    if ($rw["monto"] < 0) {
        $montoP = $rw["monto"];
        $sumP += $rw["monto"];
    } else {
        $montoD = $rw["monto"];
        $sumD += $rw["monto"];
 function initArbolRelaciones()
 {
     $QL = new MQL();
     $id = $this->mPersona;
     $msql = "SELECT `personas_relaciones_recursivas`.*, \n\t\tCONCAT(\tLEFT(`socios_relaciones`.`nombres`,5), ' ',\n\t`socios_relaciones`.`apellido_paterno`, ' ',\n\tLEFT(`socios_relaciones`.`apellido_materno`,5) ) AS `nombres`\n\t  \n\t\tFROM \n\n\t\t`personas_relaciones_recursivas` `personas_relaciones_recursivas` \n\t\tLEFT OUTER JOIN `socios_relaciones` `socios_relaciones` \n\t\tON `personas_relaciones_recursivas`.`relacion` = `socios_relaciones`.\n\t\t`numero_socio` ";
     $sql = "{$msql} WHERE\t(`personas_relaciones_recursivas`.`persona` ={$id})\tORDER BY\t`personas_relaciones_recursivas`.`persona`,\t`personas_relaciones_recursivas`.`nivel`";
     //setLog($sql);
     $rs = $QL->getDataRecord($sql);
     if ($QL->getNumberOfRows() <= 0) {
         $sql = "{$msql} WHERE\t(`personas_relaciones_recursivas`.`proxy` ={$id}) ";
         $rs = $QL->getDataRecord($sql);
     }
     if ($QL->getNumberOfRows() <= 0) {
         $sql = "{$msql} WHERE\t(`personas_relaciones_recursivas`.`relacion` ={$id}) ";
         $rs = $QL->getDataRecord($sql);
     }
     return $rs;
 }
 function initByRecibo($recibo = false)
 {
     $recibo = $recibo == false ? $this->getClaveDeRecibo() : $recibo;
     $this->mClaveDeRecibo = $recibo;
     //$xC	= new cTesoreria_cajas_movimientos();
     $mql = new MQL();
     $sql = "SELECT\r\n\t\t\t\t`tesoreria_cajas_movimientos`.`recibo`                    AS `recibo`,\r\n\t\t\t\tMAX(`tesoreria_cajas_movimientos`.`documento`)            AS `documento` ,\r\n\t\t\t\t`tesoreria_cajas_movimientos`.`tipo_de_exposicion`        AS `forma`,\r\n\t\t\t\t`tesoreria_cajas_movimientos`.`fecha`                     AS `fecha`,\r\n\t\t\t\tSUM(`tesoreria_cajas_movimientos`.`monto_del_movimiento`) AS `monto`,\r\n\t\t\t\tMAX(`tesoreria_cajas_movimientos`.`numero_de_cheque`)     AS `cheque`,\r\n\t\t\t\tMAX(`tesoreria_cajas_movimientos`.`cuenta_bancaria`)      AS `cuentabancaria`,\r\n\t\t\t\tMAX(`tesoreria_cajas_movimientos`.`banco`)      AS `banco`,\r\n\t\t\t\tSUM(`tesoreria_cajas_movimientos`.`moneda_de_operacion`)  AS `moneda`,\r\n\t\t\t\t`tesoreria_cajas_movimientos`.`unidades_de_moneda`        AS \r\n\t\t\t\t`numerooriginal`\r\n\t\t\t\t\r\n\t\t\tFROM\r\n\t\t\t\t`tesoreria_cajas_movimientos` `tesoreria_cajas_movimientos` \r\n\t\t\tWHERE\r\n\t\t\t\t(`tesoreria_cajas_movimientos`.`recibo` =" . $recibo . ") \t\t\t\t\r\n\t\t\tGROUP BY\r\n\t\t\t\t`tesoreria_cajas_movimientos`.`recibo`,\r\n\t\t\t\t`tesoreria_cajas_movimientos`.`tipo_de_exposicion`,\r\n\t\t\t\t`tesoreria_cajas_movimientos`.`fecha`,\r\n\t\t\t\t`tesoreria_cajas_movimientos`.`unidades_de_moneda` ";
     $datos = $mql->getDataRecord($sql);
     foreach ($datos as $rows) {
         $this->mListaDeFechas[] = $rows["fecha"];
         $this->mListaFormas[] = $rows["forma"];
         $this->mTotalPago += $rows["monto"];
         $this->mMonedaActiva = $rows["moneda"];
         $this->mBancoActivo = $rows["banco"];
         $this->mChequeActivo = $rows["cheque"];
         $this->mCuentaBancoActivo = $rows["cuentabancaria"];
     }
 }
        $xAml = new cAMLPersonas($OSoc->codigo()->v());
        $xAml->init();
        //$xAml->setForceAlerts();
        $xAml->setVerificarDocumentosCompletos($fechaop);
        $xAml->setVerificarDocumentosVencidos($fechaop);
        $messages .= $xAml->getMessages(OUT_TXT);
        /*$xAml	= new cAML();
        		$xAml->setForceAlerts(true);
        		$xAml->sendAlerts(getUsuarioActual(), $PersonaDeDestino, $TipoDeAlerta);*/
        //envio de informes
        //TODO: Agregar envio de informes
        //checar perfil transaccional mensual
    }
    //verificar operaciones de 6 meses excedidas de maximo permitido
    $sql2 = "SELECT\n\t`operaciones_recibos`.`fecha_operacion`              AS `fecha`,\n\t`operaciones_recibos`.`numero_socio`                 AS `persona`,\n\tCOUNT(`operaciones_recibos`.`idoperaciones_recibos`) AS `operaciones`,\n\tSUM(`operaciones_recibos`.`total_operacion`)         AS `monto`\n\tFROM\n\t`operaciones_recibos` `operaciones_recibos`\n\tWHERE\n\t(`operaciones_recibos`.`fecha_operacion` = '{$fechaop}')\n\tGROUP BY\n\t`operaciones_recibos`.`numero_socio`";
    $rs1 = $mql->getDataRecord($sql2);
    foreach ($rs1 as $rw1) {
        $xAml = new cAMLPersonas($rw1["persona"]);
        $xF = new cFecha();
        $fecha_inicial = $xF->setRestarMeses(6, $fechaop);
        $obj = $xAml->getOAcumuladoDeOperaciones($fecha_inicial, $fechaop);
    }
    //Relaciones Recursivas
    //$xUtils				= new cAMLUtils();
    $xCML = new cAML();
} else {
    $messages .= "=========================\tNO ACTIVADO\t====================\r\n";
}
$xLog->setWrite($messages);
$xLog->setClose();
if (ENVIAR_MAIL_LOGS == true) {
 $xHTabs->addTab($oFrm->lang("NOTAS"), $c4Tbl->Show());
 //1
 $xHTabs->addTab("TR.DOMICILIO", "");
 //2
 $xHTabs->addTab(PERSONAS_TITULO_PARTES, "");
 //3
 $xHTabs->addTab("TR.ACTIVIDAD_ECONOMICA", "");
 //tab4
 // Tabla de Relacion Patrimonial
 $xHTabs->addTab("TR.PATRIMONIO", "");
 //tab5?
 //=======================================================================
 $cnt = "";
 $xB = new cBases();
 $mems = $xSoc->getEsPersonaFisica() == true ? $xB->getMembers_InArray(false, BASE_DOCTOS_PERSONAS_FISICAS) : $xB->getMembers_InArray(false, BASE_DOCTOS_PERSONAS_MORALES);
 $rsDocs = $ql->getDataRecord($xql->getListadoDePersonasDoctos($idsocio));
 $xTbl = new cHTabla();
 foreach ($rsDocs as $rows) {
     $iddocto = $rows["archivo_de_documento"];
     $fecha = $xF->getFechaByInt($rows["fecha_de_carga"]);
     $xTbl->initRow();
     $xTbl->addTD($rows["tipo"]);
     $xTbl->addTD($xF->getFechaCorta($fecha));
     $xTbl->addTD($xBtn->getBasic($rows["archivo_de_documento"], "var xPers = new PersGen();xPers.getDocumento({persona:{$idsocio}, docto: '" . $rows["archivo_de_documento"] . "'});", $oFrm->ic()->TIPO));
     $xTbl->addTD($rows["observaciones"]);
     $xTbl->endRow();
 }
 $xHTabs->addTab("TR.DOCUMENTOS", $xTbl->get());
 //tabs
 if (getEsModuloMostrado(USUARIO_TIPO_OFICIAL_AML) == true) {
     $xDiv3 = new cHDiv("tx1", "msgcumplimiento");
$header = "";
$table = "";
$body = "";
$itms = 0;
foreach ($aSQL as $ks => $vs) {
    //si la clave es destino, usar
    $width = isset($equivWidth[$vs]) ? " style=\"width:" . $equivWidth[$vs] . "\" " : "";
    $title = isset($equivTit[$vs]) ? $equivTit[$vs] : "";
    $header .= "<th scope='col' {$width} >{$title}</th>\n";
}
//header
$header = "<thead>\n\t\t<tr>\n\t\t\t{$header}\n\t\t</tr>\n\t\t</thead>";
//movimientos
$sqlmvto = "SELECT\n\t\t\t`operaciones_mvtos`.`socio_afectado`        AS `numero_de_socio`,\n\t\t\t`operaciones_mvtos`.`docto_afectado`        AS `numero_de_documento`,\n\t\t\t`operaciones_mvtos`.`recibo_afectado`       AS `numero_de_recibo`,\n\t\t\t`operaciones_mvtos`.`idoperaciones_mvtos`   AS `numero_del_movimiento`,\n\t\t\t`operaciones_tipos`.`descripcion_operacion` AS `concepto_del_movimiento`,\n\t\t\t`operaciones_mvtos`.`afectacion_real`       AS `monto_del_movimiento`,\n\t\t\t`operaciones_mvtos`.`valor_afectacion`      AS `naturaleza_del_movimiento`,\n\t\t\t`operaciones_tipos`.`nombre_corto` \t\t\tAS `concepto_nombre_corto`,\n\t\t\t`operaciones_mvtos`.`periodo_socio`        AS `parcialidad`,\n\t\t\t`operaciones_mvtos`.`detalles` \t\t\tAS `observacion_del_mvto`\n\t\tFROM\n\t\t\t`operaciones_mvtos` `operaciones_mvtos` \n\t\t\t\tINNER JOIN `operaciones_tipos` `operaciones_tipos` \n\t\t\t\tON `operaciones_mvtos`.`tipo_operacion` = `operaciones_tipos`.\n\t\t\t\t`idoperaciones_tipos` \n\t\tWHERE\n\t\t\t(`operaciones_mvtos`.`recibo_afectado` = {$recibo} )\n\t\t\tORDER BY `operaciones_mvtos`.`afectacion_real` DESC";
$NetoRecibo = 0;
$rsmvto = $xQl->getDataRecord($sqlmvto);
$tr = "";
foreach ($rsmvto as $rwm) {
    $operacion = $rwm["concepto_del_movimiento"];
    $monto = $rwm["monto_del_movimiento"] * $rwm["naturaleza_del_movimiento"] * $afectaCaja;
    $destino = "&nbsp;" . $rwm["numero_de_documento"];
    $parcial = $rwm["parcialidad"];
    //Documento de Destino
    if ($origen == TESORERIA_RECIBOS_ORIGEN_CRED or $origen == TESORERIA_RECIBOS_ORIGEN_MIXTO) {
        $destino .= "|" . substr($tipoDocto, 0, 5) . "|" . substr($estatDocto, 0, 3) . "|{$parcial} {$letras}";
    }
    $destino .= "|" . trim($rwm["observacion_del_mvto"]);
    $td = "";
    foreach ($aSQL as $mKey => $mValue) {
        $css = "";
        $valor = $mValue == "destino_del_movimiento" ? $destino : $rwm[$mValue];
echo $xHP->getHeader();
echo $xHP->setBodyinit();
$xFRM = new cHForm("frmpugarentidades", "purgar-entidadesfederativas.frm.php?action=next");
$xBtn = new cHButton();
$xTxt = new cHText();
$xDate = new cHDate();
$xSel = new cHSelect();
$xChk = new cHCheckBox();
$msg = "";
$xFRM->setTitle("TR.purgar de entidadades federativas");
$xFRM->addJsBasico();
//$xFRM->addCreditBasico();
$mql = new MQL();
//Obtener lista de estados
$sql = "SELECT * FROM `general_estados` ";
$data = $mql->getDataRecord($sql);
$cEs = new cGeneral_estados();
foreach ($data as $rows) {
    $cEs->setData($rows);
    if ($action == SYS_NINGUNO) {
        $xFRM->addHTML($xChk->get($cEs->nombre()->v(), "estado" . $cEs->clave_numerica()->v()));
    } else {
        $eliminar = parametro("estado" . $cEs->clave_numerica()->v(), false, MQL_BOOL);
        $estado = $cEs->clave_numerica()->v();
        if ($eliminar == true) {
            my_query("DELETE FROM `general_colonias` WHERE `codigo_de_estado` = {$estado} ");
            my_query("DELETE FROM `general_municipios` WHERE `clave_de_entidad` = {$estado} ");
            //my_query("DELETE FROM `catalogos_localidades` WHERE `clave_de_estado` = $estado ");
        }
    }
}
function getSIPAKALPermissions($myFile)
{
    //Tratar el __FILE__, eliminar el directorio
    $vUno = substr_count($myFile, "/");
    $vDos = substr_count($myFile, "\\");
    $notes = "";
    $pUSRID = isset($_SESSION["SN_b80bb7740288fda1f201890375a60c8f"]) ? $_SESSION["SN_b80bb7740288fda1f201890375a60c8f"] : 0;
    $pUSRNivel = isset($_SESSION["SN_d567c9b2d95fbc0a51e94d665abe9da3"]) ? $_SESSION["SN_d567c9b2d95fbc0a51e94d665abe9da3"] : 0;
    $pUSRPWD = isset($_SESSION["SN_0d35c1f17675a8a2bf3caaacd59a65de"]) ? $_SESSION["SN_0d35c1f17675a8a2bf3caaacd59a65de"] : "";
    $mUSR = isset($_SESSION["SN_0a744893951e0d1706ff74a7afccf561"]) ? $_SESSION["SN_0a744893951e0d1706ff74a7afccf561"] : "";
    //
    //obtener variables por CONTEXT
    if (isset($_REQUEST)) {
        if (isset($_REQUEST["ctx"])) {
            $ctx = md5($_REQUEST["ctx"]);
            $sql = "SELECT\t`t_03f996214fba4a1d05a68b18fece8e71`.*\r\n\t\t\tFROM `t_03f996214fba4a1d05a68b18fece8e71` WHERE \r\n\t\t\t(MD5(MD5(CONCAT(MD5(`t_03f996214fba4a1d05a68b18fece8e71`.`idusuarios`) , '|', MD5(`t_03f996214fba4a1d05a68b18fece8e71`.`f_34023acbff254d34664f94c3e08d836e`)))) = '{$ctx}') \r\n\t\t\tOR\r\n\t\t\t(MD5(MD5(CONCAT(MD5(`t_03f996214fba4a1d05a68b18fece8e71`.`f_28fb96d57b21090705cfdf8bc3445d2a`) , '|', MD5(`t_03f996214fba4a1d05a68b18fece8e71`.`f_34023acbff254d34664f94c3e08d836e`)))) = '{$ctx}')\r\n\t\t\tLIMIT 0,1 ";
            //$notes		= $sql;
            $xMQL = new MQL();
            $data = $xMQL->getDataRecord($sql);
            foreach ($data as $rows) {
                $pUSRID = $rows["idusuarios"];
                $pUSRNivel = $rows["f_f2cd801e90b78ef4dc673a4659c1482d"];
                $pUSRPWD = $rows["f_34023acbff254d34664f94c3e08d836e"];
                $mUSR = $rows["f_28fb96d57b21090705cfdf8bc3445d2a"];
                $_SESSION["SN_b80bb7740288fda1f201890375a60c8f"] = $pUSRID;
                $_SESSION["SN_d567c9b2d95fbc0a51e94d665abe9da3"] = $pUSRNivel;
                $_SESSION["SN_0d35c1f17675a8a2bf3caaacd59a65de"] = $pUSRPWD;
                $_SESSION["SN_0a744893951e0d1706ff74a7afccf561"] = $mUSR;
            }
            //
        }
    }
    $PUBLICSVC = array("personas.svc.php" => true, "personas.actividades.economicas.php" => true, "listanegra.svc.php" => true, "equivalente.moneda.svc.php" => true, "cantidad_en_letras.php" => true);
    //servicios publicos
    $PFile = "";
    $myPermission = false;
    if ($vUno >= 1) {
        $DCFile = explode("/", $myFile);
        $elems = count($DCFile) - 1;
        if ($elems >= 0) {
            $PFile = $DCFile[$elems];
        }
    } else {
        $DCFile = explode("\\", $myFile);
        $elems = count($DCFile) - 1;
        if ($elems >= 0) {
            $PFile = $DCFile[$elems];
        }
    }
    if (isset($PUBLICSVC[$PFile])) {
        $myPermission = true;
        //setLog("Acceso Publico al Servicio $PFile");
    } else {
        $tmpPWD = $mUSR != "" ? goLogged("contrasenna", $mUSR) : md5(session_id());
        if ($tmpPWD != $pUSRPWD) {
            $myPermission = false;
            //salvar el error
            saveError(98, session_id(), "NO HA DEFINIDO UNA SESSION PARA EL ARCHIVO {$myFile} {$notes}");
            //salir si no esta definida la session
            session_unset();
            // Finalmente, destruye la sesi&oacute;n
            session_destroy();
            header("location:inicio.php");
            exit;
        }
        $myPermission = false;
        //checar si la variable esta inicializada
        //si no enviar un unsetsession
        if (isset($pUSRNivel) and $pUSRNivel > 0) {
            $sqlRULES = "SELECT COUNT(idgeneral_menu) AS 'items', menu_rules FROM general_menu\r\n\t\t\t\t\t\tWHERE menu_file LIKE '%{$PFile}'\r\n\t\t\t\t\t\tAND (FIND_IN_SET('{$pUSRNivel}@rw', menu_rules)>0\r\n\t\t\t\t\t\tOR FIND_IN_SET('{$pUSRNivel}@ro', menu_rules)>0)\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t/*LIMIT 0,1*/ ";
            //setLog($sqlRULES);
            $cnxT = mysql_connect(WORK_HOST, USR_PERMISSIONS, PWD_PERMISSIONS);
            $dbT = mysql_select_db(MY_DB_IN, $cnxT);
            $rsRULES = mysql_query($sqlRULES, $cnxT);
            if (!isset($rsRULES)) {
                saveError(98, $_SESSION["SN_b80bb7740288fda1f201890375a60c8f"], mysql_error($cnxT));
            }
            $aRULES = mysql_fetch_array($rsRULES);
            /**
             * Verifica la autenticacion
             * busca la pocision del permiso
             * //
             **/
            $mos = strtoupper(substr(PHP_OS, 0, 3));
            $myFile = str_replace("/", "|", $myFile);
            $myFile = str_replace("\\", "|", $myFile);
            $dFile = explode("|", $myFile);
            $idfile = sizeof($dFile) - 1;
            $myFile = $dFile[$idfile - 1] . "/" . $dFile[$idfile];
            //DIRECTORY_SEPARATOR
            if ($aRULES["items"] == 0) {
                $sqlA = "INSERT INTO `general_menu` (`menu_title`, `menu_file`) VALUES ('{$PFile}', '{$myFile}')";
                @mysql_query($sqlA, $cnxT);
            }
            if (!isset($aRULES["menu_rules"]) or empty($aRULES["menu_rules"]) or $aRULES["menu_rules"] == "") {
                //saveError(97, $_SESSION["SN_b80bb7740288fda1f201890375a60c8f"], $sqlRULES);
                saveError(999, $_SESSION["SN_b80bb7740288fda1f201890375a60c8f"], "Acceso no permitido a :" . addslashes($myFile) . " {$notes}");
                $myPermission = false;
            } else {
                $ARls = explode(",", $aRULES["menu_rules"]);
                if (in_array("{$pUSRNivel}@rw", $ARls)) {
                    $myPermission = "ReadWrite";
                } else {
                    $myPermission = "ReadOnly";
                }
            }
            @mysql_free_result($rsRULES);
            @mysql_close($cnxT);
            unset($rsRULES);
            unset($cnxT);
            unset($dbT);
        } else {
            $myPermission = false;
            //salvar el error
            saveError(98, session_id(), "NO HA DEFINIDO UNA SESSION PARA EL ARCHIVO {$myFile} {$notes}\r\n");
            //salir si no esta definida la session
            session_unset();
            // Finalmente, destruye la sesi&oacute;n
            session_destroy();
            header("location:inicio.php");
            exit;
        }
    }
    return $myPermission;
}
$preguntar = parametro("pregunta", false, MQL_BOOL);
$xLayout->setTipo($xLayout->OPERACIONES_INTERNAS);
$datos = $xLayout->read();
$Estructura = $xLayout->getContent();
$production = ($out == OUT_TXT or $out == OUT_CSV) ? true : false;
$FechaExtraccion = $FechaFinal;
$FechaTitulo = date("ymd", strtotime($FechaFinal));
$casfin = EACP_CLAVE_CASFIN;
$delimitador = $xLayout->getSeparador();
$msg = "";
$supervisor = 2;
//$xCatalogoActividades	= new cPersonaActividadEconomica();
$sql = "SELECT\n\t\t*\nFROM\n\t`aml_risk_catalog` `aml_risk_catalog`\n\t\tINNER JOIN `aml_risk_register` `aml_risk_register`\n\t\tON `aml_risk_catalog`.`clave_de_control` = `aml_risk_register`.\n\t\t`tipo_de_riesgo`\nWHERE\n\t(`aml_risk_catalog`.`tipo_de_riesgo` = " . AML_CLAVE_OPERACIONES_INTERNAS . "\n\tOR\n\t`aml_risk_catalog`.`tipo_de_riesgo` = " . AML_CLAVE_OPERACIONES_INUSUALES . ")\t\t\n\t\n\tAND \n\t(`aml_risk_register`.`estado_de_envio` =0)\n\tAND\n\t(`aml_risk_register`.`reporte_inmediato` =1)\n\tORDER BY `aml_risk_register`.`fecha_de_reporte`\n";
$xTBL = new cTabla($sql);
$rpt = "";
$rs = $query->getDataRecord($sql);
$xEquivOps = new cSistemaEquivalencias(TOPERACIONES_RECIBOSTIPOS);
$xEquivOps->init($xEquivOps->PLD_OPERACIONES);
$xEquivInst = new cSistemaEquivalencias(TTESORERIA_TIPOS_DE_PAGO);
$xEquivInst->init($xEquivInst->PLD_OPERACIONES);
//$xEquivIns
$operaciones = 0;
$totalerrores = 0;
foreach ($rs as $data) {
    $xRisk = new cAml_risk_register();
    $xRisk->setData($data);
    $persona = $xRisk->persona_relacionada()->v();
    // $data["persona"];
    $fechaDetec = $xF->getFechaByInt($xRisk->fecha_de_reporte()->v());
    //$data["fecha"]);
    //$tipo_de_riesgo	=  $data["tipo_de_riesgo"];
 function getListadoDeAvales($credito)
 {
     //TODO: Terminar
     $mSQL = new cSQLListas();
     $mql = new MQL();
     $sql = $mSQL->getListadoDeAvales($credito, $this->mPersona);
     $rs = $mql->getDataRecord($sql);
     //setLog($sql);
     $forma = 8001;
     $firma = 8002;
     $friesgo = 5001;
     $cficha = "";
     $cfirmas = "";
     $criesgo = "";
     $clista = "";
     //$xAval		= new cSocios_relaciones();
     foreach ($rs as $rows) {
         $persona = $rows["numero_socio"];
         $idrelacion = $rows["num"];
         $xSoc = new cSocio($persona);
         $xRel = new cPersonasRelaciones($idrelacion, $persona);
         $xRel->init();
         if ($xSoc->init() == true) {
             $avalDom = $xSoc->getODomicilio();
             $avalEc = $xSoc->getOActividadEconomica();
             $vars = array("aval_nombre_completo" => $xSoc->getNombreCompleto(), "aval_domicilio_localidad" => "", "aval_direccion_calle_y_numero" => "", "aval_direccion_estado" => "", "aval_direccion_completa" => "", "aval_ocupacion" => "", "aval_fecha_de_nacimiento" => $xSoc->getFechaDeNacimiento(), "aval_id_fiscal" => $xSoc->getRFC(), "aval_lugar_de_nacimiento" => $xSoc->getLugarDeNacimiento(), "aval_empresa_de_trabajo" => "", "aval_estado_civil" => $xSoc->getEstadoCivil(), "aval_tipo_de_relacion" => $xRel->getNombreRelacion(), "aval_tipo_de_parentesco" => $xRel->getNombreParentesco(), "aval_porcentaje_relacionado" => $xRel->getPorcientorelacionado() * 100);
             if ($avalDom != null) {
                 $vars["aval_direccion_completa"] = $xSoc->getDomicilio();
                 $vars["aval_domicilio_localidad"] = $xSoc->getODomicilio()->getCiudad();
                 $vars["aval_direccion_calle_y_numero"] = $xSoc->getODomicilio()->getCalleConNumero();
                 $vars["aval_direccion_estado"] = $xSoc->getODomicilio()->getEstado(OUT_TXT);
             }
             if ($avalEc != null) {
                 $vars["aval_ocupacion"] = $xSoc->getOActividadEconomica()->getPuesto();
                 $vars["aval_empresa_de_trabajo"] = $xSoc->getOActividadEconomica()->getNombreEmpresa();
             }
             $texto_ficha = contrato($forma, "texto_del_contrato");
             $texto_firma = contrato($firma, "texto_del_contrato");
             $texto_aut = contrato($friesgo, "texto_del_contrato");
             $vars = array_merge($vars, $this->mBasicVars);
             foreach ($vars as $key => $value) {
                 $texto_ficha = str_replace($key, $value, $texto_ficha);
                 $texto_firma = str_replace($key, $value, $texto_firma);
                 $texto_aut = str_replace($key, $value, $texto_aut);
             }
             $cficha .= $texto_ficha;
             $cfirmas .= $texto_firma;
             $criesgo .= $texto_aut;
             $clista .= $xSoc->getNombreCompleto(OUT_TXT) . ": " . $xSoc->getDomicilio() . "; ";
             //setLog($texto_ficha);
         }
         //setLog($xSoc->getMessages());
     }
     $this->mFichasAvales = $cficha;
     $this->mFirmasAvales = $cfirmas;
     $this->mFichaRiesgoAv = $criesgo;
     $this->mLAvalesConDir = $clista;
 }
 function getFactura($enviar = false, $out = OUT_PDF)
 {
     $ready = null;
     $xml = "";
     $unidad = "NO APLICA";
     $cantidad = 1;
     $mql = new MQL();
     $xLis = new cSQLListas();
     $xLoc = new cLocal();
     $xPais = new cDomiciliosPaises(EACP_CLAVE_DE_PAIS);
     $xLog = new cCoreLog();
     $sql = "SELECT * FROM `operaciones_archivo_de_facturas` WHERE `clave_de_recibo` = " . $this->mCodigoDeRecibo . " LIMIT 0,1";
     $xArch = new cOperaciones_archivo_de_facturas();
     $DFact = $mql->getDataRow($sql);
     if (isset($DFact["clave_de_recibo"])) {
         $xArch->setData($DFact);
         $this->mMessages .= "OK\tEl UUID existe  " . $xArch->uuid()->v(OUT_TXT) . "\r\n";
         if ($enviar == true) {
             if ($this->getOPersona() == null) {
             } else {
                 $xSoc = $this->getOPersona();
                 $email = $xSoc->getCorreoElectronico();
                 $comprobante = PATH_FACTURAS . $xArch->uuid()->v(OUT_TXT);
                 file_put_contents($comprobante . ".xml", base64_decode($xArch->contenido()->v(OUT_TXT)));
                 file_put_contents($comprobante . ".pdf", base64_decode($xArch->impreso()->v(OUT_TXT)));
                 $ready = $out == OUT_PDF ? base64_decode($xArch->impreso()->v(OUT_TXT)) : base64_decode($xArch->contenido()->v(OUT_TXT));
                 $xNotif = new cNotificaciones();
                 //PDF y XML
                 $arrFil = array();
                 $arrFil["archivo1"]["path"] = $comprobante . ".pdf";
                 $arrFil["archivo2"]["path"] = $comprobante . ".xml";
                 $xNotif->sendMail("Factura del Recibo " . $this->mCodigoDeRecibo, "Factura del Recibo " . $this->mCodigoDeRecibo, $email, $arrFil);
                 //Enviar al Archivo mail
                 $xNotif->sendMail("Factura del Recibo " . $this->mCodigoDeRecibo, "Factura del Recibo " . $this->mCodigoDeRecibo, FACTURACION_MAIL_ARCHIVO, $arrFil);
                 $this->mMessages .= $xNotif->getMessages();
             }
         } else {
             $ready = $out == OUT_PDF ? $xArch->impreso()->v(OUT_TXT) : $xArch->contenido()->v(OUT_TXT);
         }
     } else {
         $xLog->add("WARN\tGenerando Nueva Factura\r\n", $xLog->DEVELOPER);
         //cargar Archivo
         $xPais->init();
         if ($this->mReciboIniciado == false) {
             $this->init();
         }
         if ($this->getOPersona() == null) {
             $xLog->add("ERROR\tAl cargar la Persona\r\n");
         } else {
             $xFact = new cFacturaElectronica();
             //datos de la emisora
             //persona iniciada
             $xSoc = $this->getOPersona();
             $email = $xSoc->getCorreoElectronico();
             $xFact->setEmisor(EACP_NAME, EACP_RFC, EACP_DOMICILIO_CALLE, EACP_DOMICILIO_NUM_EXT, EACP_DOMICILIO_NUM_INT, EACP_CODIGO_POSTAL, EACP_COLONIA, EACP_MUNICIPIO, EACP_ESTADO, $xPais->getNombre());
             $xFact->setRegimenFiscal(EACP_REGIMEN_FISCAL);
             $calle = $xLoc->DomicilioCalle();
             $numeroInt = $xLoc->DomicilioNumeroInterior();
             $numeroExt = $xLoc->DomicilioNumeroExterior();
             $codigoPostal = $xLoc->DomicilioCodigoPostal();
             $colonia = $xLoc->DomicilioColonia();
             $xSocDom = $xSoc->getODomicilio();
             $pais = $xLoc->getNombreDePais();
             $estado = $xLoc->DomicilioEstado();
             $municipio = $xLoc->DomicilioMunicipio();
             $tasa_iva = TASA_IVA;
             $xFact->setLugarDeExpedicion($xLoc->DomicilioCalle(), $xLoc->DomicilioNumeroExterior(), $xLoc->DomicilioNumeroInterior(), $xLoc->DomicilioCodigoPostal(), $xLoc->DomicilioColonia(), $xLoc->DomicilioMunicipio(), $xLoc->DomicilioEstado(), $xLoc->getNombreDePais());
             if ($xSocDom == null) {
                 $xLog->add("WARN\tNo hay domicilio Valido\r\n", $xLog->DEVELOPER);
             } else {
                 $calle = $xSocDom->getCalle();
                 $numeroExt = $xSocDom->getNumeroExterior();
                 $numeroInt = $xSocDom->getNumeroInterior();
                 $codigoPostal = $xSocDom->getCodigoPostal();
                 $colonia = $xSocDom->getColonia();
                 $municipio = $xSocDom->getMunicipio();
                 $estado = $xSocDom->getEstado();
                 $pais = $xSocDom->getNombreDePais();
             }
             //Cargar datos del Docto
             //$this->getOrigen();
             $OTipoRec = $this->getOTipoRecibo();
             if ($OTipoRec->getOrigen() == RECIBOS_ORIGEN_MIXTO or $OTipoRec->getOrigen() == RECIBOS_ORIGEN_COLOCACION) {
                 $xCred = new cCredito($this->getCodigoDeDocumento());
                 $xCred->init();
                 $tasa_iva = $xCred->getTasaIVA();
                 $xLog->add("WARN\tLa tasa de IVA es {$tasa_iva}\r\n", $xLog->DEVELOPER);
             }
             $xFact->setReceptor($xSoc->getNombreCompleto(), $xSoc->getRFC(true, true), $calle, $numeroExt, $numeroInt, $codigoPostal, $colonia, $municipio, $estado, $pais);
             //Datos del pagos
             $formaDePago = "Pago en una sola exhibición";
             $cuentaDePago = "No Identificado";
             $arrEquiv = array(TESORERIA_COBRO_DOCTO => "Documentos", TESORERIA_COBRO_EFECTIVO => "Efectivo", TESORERIA_COBRO_INTERNO => "Documentos", TESORERIA_COBRO_MULTIPLE => "Documentos", TESORERIA_COBRO_NINGUNO => "Documentos", TESORERIA_COBRO_TRANSFERENCIA => "Transferencia", TESORERIA_COBRO_CHEQUE => "Cheque");
             $metodoDePago = $arrEquiv[$this->getTipoDePago()];
             //cargar equivalencias
             //TODO: Considerar cambios en otro de tipo de tributacion
             if ($this->getTipoDePago() == TESORERIA_COBRO_TRANSFERENCIA or $this->getTipoDePago() == TESORERIA_COBRO_CHEQUE) {
                 $OCaja = $this->getOCaja();
                 $cuentaDePago = $OCaja->getCuentaBancoActivo();
             }
             //Cheque, Transferencia, Depósito
             $xFact->setDatosDePago($formaDePago, $metodoDePago, $cuentaDePago);
             $sql = "SELECT\n\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`codigo_de_base`,\n\t\t\t\t\t`operaciones_mvtos`.`recibo_afectado`,\n\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`miembro`,\n\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`subclasificacion`,\n\t\t\t\t\t`operaciones_tipos`.`descripcion_operacion` AS `operacion`,\n\t\t\t\t\t`operaciones_mvtos`.`fecha_operacion`,\n\t\t\t\t\t`operaciones_mvtos`.`afectacion_real` AS 'monto'  \n\t\t\t\tFROM\n\t\t\t\t\t`operaciones_mvtos` `operaciones_mvtos` \n\t\t\t\t\t\tINNER JOIN `eacp_config_bases_de_integracion_miembros` \n\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros` \n\t\t\t\t\t\tON `operaciones_mvtos`.`tipo_operacion` = \n\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`miembro` \n\t\t\t\t\t\t\tINNER JOIN `operaciones_tipos` `operaciones_tipos` \n\t\t\t\t\t\t\tON `operaciones_mvtos`.`tipo_operacion` = `operaciones_tipos`.\n\t\t\t\t\t\t\t`idoperaciones_tipos` \n\t\t\t\tWHERE\n\t\t\t\t\t(`eacp_config_bases_de_integracion_miembros`.`codigo_de_base` =11000) AND\n\t\t\t\t\t(`operaciones_mvtos`.`recibo_afectado` =" . $this->mCodigoDeRecibo . " )";
             $iva = 0;
             $total = 0;
             $rs = $mql->getDataRecord($sql);
             foreach ($rs as $rows) {
                 $descripcion = $rows["operacion"];
                 $valor = $rows["monto"];
                 $tipo = $rows["subclasificacion"];
                 $total += $valor;
                 if ($tipo == 1000) {
                     $iva += $rows["monto"];
                 } else {
                     $xFact->addConcepto($cantidad, $unidad, $valor, $descripcion);
                 }
             }
             //agregar IVA
             if ($iva > 0) {
                 $xFact->addTrasladado("IVA", $tasa_iva, $iva);
             }
             $xml = $xFact->get();
             $this->mOFactura = $xFact;
             if ($total <= 0) {
                 $enviar = false;
             }
         }
         if ($enviar == true) {
             if ($this->mOFactura != null) {
                 if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
                     if ($this->mOFactura->timbrar() == 1) {
                         //ready = true
                         $xNotif = new cNotificaciones();
                         //PDF y XML
                         $arrFil = array();
                         $arrFil["archivo1"]["path"] = $this->mOFactura->getComprobante() . ".pdf";
                         $arrFil["archivo2"]["path"] = $this->mOFactura->getComprobante() . ".xml";
                         $xNotif->sendMail("Factura del Recibo " . $this->mCodigoDeRecibo, "Factura del Recibo " . $this->mCodigoDeRecibo, $email, $arrFil);
                         //Enviar al Archivo mail
                         $xNotif->sendMail("Factura del Recibo " . $this->mCodigoDeRecibo, "Factura del Recibo " . $this->mCodigoDeRecibo, FACTURACION_MAIL_ARCHIVO, $arrFil);
                         //Guardar en DB
                         $this->mOFactura->setArchivar($this->mCodigoDeRecibo);
                         $xLog->add($xNotif->getMessages(), $xLog->DEVELOPER);
                         $ready = $out == OUT_PDF ? $this->mOFactura->getPDF() : $this->mOFactura->getXML();
                     }
                 } else {
                     $xLog->add("WARN\tNo hay email valido para la Factura ({$email})\r\n", $xLog->DEVELOPER);
                 }
                 $xLog->add($this->mOFactura->getMessages(), $xLog->DEVELOPER);
             }
         }
     }
     $this->mMessages .= $xLog->getMessages();
     return $ready;
 }
        break;
    case "cuadre":
        $ByCuentas = " AND\t`contable_catalogo`.`numero`=" . CUENTA_DE_CUADRE;
        $ByCuentasSaldos = " AND (`contable_movimientos`.`numerocuenta` = " . CUENTA_DE_CUADRE . ") ";
        break;
    case "algunas":
        //solo cuentas
        break;
    default:
        $ByTipo = " AND\t`contable_catalogo`.`tipo`='{$tipo_cuentas}' ";
        break;
}
//---------------- valuar Tipo de Cuentas a Mostrar ----------------
$sqlCta = "SELECT\n\t`contable_catalogo`.`numero`,\n\t`contable_catalogo`.`nombre`,\n\t`contable_catalogotipos`.`naturaleza`,\n\t`contable_catalogotipos`.`naturaleza_del_sector`,\n\t`contable_catalogotipos`.`operador_del_sector`,\n\t`contable_catalogo`.`ctamayor` AS 'mayor',\n\t`contable_catalogo`.`afectable` AS 'afecta',\n\t\n\t/* -  TEMPORAL  - */\n\t`contable_catalogotipos`.`naturaleza_real`,\n\t`contable_catalogo`.`tipo`,\n\t`contable_catalogo`.`digitoagrupador` AS `nivel`\nFROM\n\t`contable_catalogo` `contable_catalogo`\n\t\tINNER JOIN `contable_catalogotipos`\n\t\t`contable_catalogotipos`\n\t\tON `contable_catalogo`.`tipo` =\n\t\t`contable_catalogotipos`.`idcontable_catalogotipos`\nWHERE\n\t`contable_catalogo`.`numero` != 0\n\t{$ByCuentas}\n\t{$ByTipo}\n\t{$ByNivel}\nORDER BY\n\t`contable_catalogo`.`numero`\nLIMIT {$InitRecords}, {$rowLimit}\n";
$sqlGI = "SELECT\n\t\t\t`contable_movimientos`.`numerocuenta`,\n\t\t\tCOUNT(`contable_movimientos`.`numeromovimiento`) AS 'mvtos'\n\t\tFROM\n\t\t\t`contable_movimientos` `contable_movimientos`\n\t\t\t\tINNER JOIN `contable_catalogo` `contable_catalogo`\n\t\t\t\tON `contable_movimientos`.`numerocuenta` = `contable_catalogo`.`numero`\n\t\tWHERE\n\t\t\t(`contable_movimientos`.`periodo` =" . $periodo . ") AND\n\t\t\t(`contable_movimientos`.`ejercicio` = {$ejercicio})\n\t\t\t{$ByCuentasSaldos}\n\t\tGROUP BY\n\t\t\t`contable_movimientos`.`numerocuenta` ";
$rsCM = $QL->getDataRecord($sqlGI);
// mysql_query($sqlGI, cnnGeneral());
$arrCM = array();
foreach ($rsCM as $rwCM) {
    $arrCM[$rwCM["numerocuenta"]] = $rwCM["mvtos"];
}
//echo "$sqlCta <br />$sqlGI <br />";
$xRPT->addContent("<table width=\"100%\">\n<tbody>\n\t<tr>\n\t\t<th width=\"15%\" rowspan='2'>Cuenta</th>\n\t\t<th width=\"25%\" rowspan='2'>Numero</th>\n\t\t<th colspan='2' width='20%'>Saldos Iniciales</th>\n\t\t<th colspan='2' width='20%'>Movimientos</th>\n\t\t<th colspan='2' width='20%'>Saldos Finales</th>\n\t</tr>\n\t<tr>\n\t\t<th>Deudor</th>\n\t\t<th>Acreedor</th>\n\t\t<th>Cargos</th>\n\t\t<th>Abonos</th>\n\t\t<th>Deudor</th>\n\t\t<th>Acreedor</th>\n\t</tr>  ");
$rs = $QL->getDataRecord($sqlCta);
//setLog($sqlCta);
foreach ($rs as $rw) {
    $exoCuenta = "";
    $cta = $rw["numero"];
    $nombre = $rw["nombre"];
    $naturaleza = $rw["naturaleza_real"];
    $mayor = $rw["mayor"];
 function __construct($producto = false)
 {
     $this->mProducto = setNoMenorQueCero($producto);
     $sql = "SELECT * FROM creditos_productos_otros_parametros WHERE `clave_del_producto` = " . $this->mProducto . " ";
     $ql = new MQL();
     $rs = $ql->getDataRecord($sql);
     foreach ($rs as $datos) {
         $idx = strtoupper($datos["clave_del_parametro"]);
         $this->mDatos[$idx] = $datos["valor_del_parametro"];
     }
 }
 function setRun()
 {
     $ejercicio = $this->mEjercicio;
     $periodo = $this->mPeriodo;
     $tipoPoliza = $this->mTipoDePoliza;
     $numeroPoliza = $this->mNumeroDePoliza;
     $QL = new MQL();
     $sqlMvtos = "SELECT\r\n\t\t\t\t\t\t`contable_movimientos`.* \r\n\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\t\t`contable_movimientos` `contable_movimientos` \r\n\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t(`contable_movimientos`.`ejercicio` ={$ejercicio}) AND\r\n\t\t\t\t\t\t\t(`contable_movimientos`.`periodo` ={$periodo}) AND\r\n\t\t\t\t\t\t\t(`contable_movimientos`.`tipopoliza` ={$tipoPoliza}) AND\r\n\t\t\t\t\t\t\t(`contable_movimientos`.`numeropoliza` ={$numeroPoliza})\r\n\t\t\t\t\t\tORDER BY `contable_movimientos`.`ejercicio`,\r\n\t\t\t\t\t\t`contable_movimientos`.`periodo`,\r\n\t\t\t\t\t\t`contable_movimientos`.`tipopoliza`,\r\n\t\t\t\t\t\t`contable_movimientos`.`numeropoliza`,\r\n\t\t\t\t\t\t`contable_movimientos`.`numeromovimiento` ";
     $MRs = $QL->getDataRecord($sqlMvtos);
     foreach ($MRs as $MRw) {
         $cuenta = $MRw["numerocuenta"];
         $referencia = $MRw["referencia"];
         //$TipoDeMovimiento, $cuenta, $monto, $referencia = "", $concepto = ""
         $tipoMvto = $MRw["tipomovimiento"];
         $monto = $MRw["importe"];
         $concepto = $MRw["concepto"];
         $this->addMovimiento($tipoMvto, $cuenta, $monto, $referencia, $concepto);
     }
 }
$xRPT->setTitle($xHP->getTitle());
//============ Reporte
//$xT		= new cTabla($sql, 2);
//$xT->setTipoSalida($out);
$body = $xRPT->getEncabezado($xHP->getTitle(), $FechaInicial, $FechaFinal);
$xRPT->setBodyMail($body);
$xRPT->addContent($body);
$xCats = new cCatalogoDeDatos("");
$DActividades = $xCats->get("clave_interna", "nombre_de_la_actividad", "personas_actividad_economica_tipos");
$DGenero = $xCats->get("idsocios_genero", "descripcion_genero", "socios_genero");
$DPaises = $xCats->initPorTabla(TCATALOGOS_PAISES);
$DRiesgo = $xCats->initPorTabla(TCATALOGOS_GRADO_RIESGO);
//$xT->setEventKey("jsGoPanel");
//$xT->setKeyField("creditos_solicitud");
$sql = $xL->getInicialDePersonas() . " WHERE (`personalidad_juridica` = 2 OR `personalidad_juridica` = 5)";
$rs = $query->getDataRecord($sql);
$xTa = new cHTabla();
$xDSoc = new cSocios_general();
$xF = new cFecha();
$xTa->initRow();
$xTa->addTH("Sucursal");
$xTa->addTH("Nombre");
$xTa->addTH("Fecha de Constitucion");
$xTa->addTH("Nacionalidad");
$xTa->addTH("RFC");
$xTa->addTH("Actividad economica");
//$xTa->addTH("Puesto o Ocupacion");
$xTa->addTH("Direccion");
$xTa->addTH("Telefono Principal");
$xTa->addTH("Apoderado");
$xTa->addTH("Es PEP");
         $xTbl->endRow();
         //
         //nombres
         $xTbl->initRow();
         $xTbl->addTD($id);
         $xTbl->addTH($xLng->getT("TR.Nombre"));
         $xTbl->addTD($xSoc->getNombreCompleto());
         //alias
         $xTbl->addTH($xLng->getT("TR.Alias"));
         $xTbl->addTD($xSoc->getAlias());
         $xTbl->endRow();
         //direcciones
         //marcadores
         $xTbl->addRaw("<tr><td colspan='3'>" . $xSoc->getObservaciones() . "</td></tr>");
         //$xTbl->initRow();
         $rsdr = $mql->getDataRecord("SELECT * FROM `socios_vivienda` WHERE `socio_numero`={$id}");
         $adr = "";
         foreach ($rsdr as $rwr) {
             $xDom = new cPersonasVivienda();
             $xDom->init(false, $rwr);
             $adr .= $xDom->getFicha();
         }
         //$xTbl->addTH();
         //$xTbl->addTD($adr);
         $xTbl->addRaw("<tr><td colspan='3'><h1>" . $xLng->getT("TR.Direcciones") . "<h1><hr />{$adr}</td></tr>");
         //$xTbl->endRow()
         $xFld = new cHFieldset($flTitle);
         $xFld->addHElem($xTbl->get());
         $txtLst .= $xFld->get();
     }
 }