function jsaGetDatosCuenta($cuenta, $socio)
{
    $xCta = new cCuentaALaVista($cuenta, $socio);
    $xCta->init();
    $DC = $xCta->getDatosInArray();
    $MaxRet = $xCta->getMaximoRetirable();
    $sdo = $DC["saldo_cuenta"];
    $tab = new TinyAjaxBehavior();
    $tab->add(TabSetValue::getBehavior("idMaxRet", $MaxRet));
    $tab->add(TabSetValue::getBehavior("idSaldoAnterior", $sdo));
    //$tab -> add(TabSetValue::getBehavior("idmonto", $sdo ));
    //$tab -> add(TabSetValue::getBehavior("imsg", $xCta->getMessages("txt") ));
    return $tab->getString();
}
 /**
  * Revierte las Afectaciones del Recibo
  */
 function setRevertir($ForzarEliminar = false)
 {
     $sucess = true;
     $arrValuesRev = array("-1" => "1", "1" => "-1", "0" => "0");
     $xQL = new MQL();
     $xLog = new cCoreLog();
     $sqlM = "SELECT\n\t\t\t\t\t\t`operaciones_mvtos`.*,\n\t\t\t\t\t\t`operaciones_tipos`.*,\n\t\t\t\t\t\t`operaciones_mvtos`.`recibo_afectado`\n\t\t\t\t\tFROM\n\t\t\t\t\t\t`operaciones_mvtos` `operaciones_mvtos`\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\t\tWHERE\n\t\t\t\t\t\t(`operaciones_mvtos`.`recibo_afectado` =" . $this->mCodigoDeRecibo . ")";
     $xLog->add("======================== REVERSION DE RECIBO[" . $this->mCodigoDeRecibo . "] \r\n");
     $original = "";
     $rs = $xQL->getDataRecord($sqlM);
     //getRecordset($sqlM);
     if ($this->init() == true) {
         $original = "====[" . base64_encode(json_encode($this->getDatosInArray())) . "]====";
         if ($rs) {
             foreach ($rs as $rw) {
                 //$rw = mysql_fetch_array($rs)){
                 $codigo = $rw["idoperaciones_mvtos"];
                 $docto = $rw["docto_afectado"];
                 $socio = $rw["socio_afectado"];
                 $preservar_mvto = $rw["preservar_movimiento"];
                 $CodeRevertir = $rw["formula_de_cancelacion"];
                 $monto = $rw["afectacion_real"];
                 $afectacion = $rw["valor_afectacion"];
                 $recibo = $rw["recibo_afectado"];
                 $colocacion = array();
                 $captacion = array();
                 //selecciona un comportamiento segun el Origen del Recibo
                 switch ($this->mAplicadoA) {
                     case "colocacion":
                         //cargar datos del credito
                         $Credito = new cCredito($docto, $socio);
                         $Credito->init();
                         $colocacion = $Credito->getDatosDeCredito();
                         break;
                     case "captacion":
                         //cargar datos de la cuenta
                         $Cuenta = new cCuentaALaVista($docto);
                         $Cuenta->init();
                         $captacion = $Cuenta->getDatosInArray();
                         break;
                     case "mixto":
                         //cargar datos de la cuenta y del credito
                         $Credito = new cCredito($docto, $socio);
                         $Credito->init();
                         $colocacion = $Credito->getDatosDeCredito();
                         $Cuenta = new cCuentaALaVista($docto);
                         $Cuenta->init();
                         $captacion = $Cuenta->getDatosInArray();
                         $this->mMessages .= "WARN\tEL Recibo es Mixto, se carga tanto Captacion como Colocacion\r\n";
                         break;
                     default:
                         $this->mMessages .= "WARN\tEL Recibo es " . $this->mAplicadoA . ", NO SE CARGA CODIGO\r\n";
                         break;
                 }
                 eval($CodeRevertir);
                 if ($preservar_mvto == '1' and $ForzarEliminar == false) {
                     $SQL_DM = "UPDATE operaciones_mvtos\n\t\t\t\t\t\t\t\t\t\t\tSET afectacion_estadistica=afectacion_real,\n\t\t\t\t\t\t\t\t\t\t\tafectacion_real = 0, afectacion_contable=0,\n\t\t\t\t\t\t\t\t\t\t\tafectacion_cobranza=0, valor_afectacion=0,\n\t\t\t\t\t\t\t\t\t\t\testatus_mvto = 99,\n\t\t\t\t\t\t\t\t\t\t\tdocto_neutralizador = " . $this->mCodigoDeRecibo . ",\n\t\t\t\t\t\t\t\t\t\t\trecibo_afectado\t= " . DEFAULT_RECIBO . "\n\t\t\t\t\t\t\t\t\t\t\tWHERE idoperaciones_mvtos = {$codigo}\n\t\t\t\t\t\t\t\t\t\t\t";
                     $xLog->add("Actualizando el Movimiento {$codigo}\r\n", $xLog->DEVELOPER);
                 } else {
                     $SQL_DM = "DELETE FROM operaciones_mvtos\n\t\t\t\t\t\t\t\t\t\t\tWHERE idoperaciones_mvtos = {$codigo}";
                     $xLog->add("Eliminado el Movimiento {$codigo}\r\n", $xLog->DEVELOPER);
                 }
                 my_query($SQL_DM);
                 //Actualizar Saldos
                 if (isset($Cuenta)) {
                     $Cuenta->setUpdateSaldoByMvtos();
                 }
                 if (isset($Credito)) {
                     $xUtil = new cUtileriasParaCreditos();
                     $xUtil->setCuadrarCreditosByMvtos($docto);
                 }
             }
         }
         //Elimnar Prepoliza
         $xLog->add("WARN\tEliminando Prepolizas\r\n", $xLog->DEVELOPER);
         $sqlDP = "DELETE FROM contable_polizas_proforma\tWHERE numero_de_recibo = " . $this->mCodigoDeRecibo . "";
         my_query($sqlDP);
         //Eliminar Recibo
         $sqlDR = "DELETE FROM operaciones_recibos WHERE idoperaciones_recibos =" . $this->mCodigoDeRecibo . "";
         my_query($sqlDR);
         //Agregar Tesoreria y Bancos
         $xLog->add("WARN\tEliminando Operaciones de Caja\r\n", $xLog->DEVELOPER);
         $DelTesoreria = "DELETE FROM `tesoreria_cajas_movimientos` WHERE `recibo`= " . $this->mCodigoDeRecibo . "";
         my_query($DelTesoreria);
         $xLog->add("WARN\tEliminando Operaciones de Bancos\r\n", $xLog->DEVELOPER);
         $DelBancos = "DELETE FROM `bancos_operaciones` WHERE `recibo_relacionado` = " . $this->mCodigoDeRecibo . "";
         my_query($DelBancos);
     }
     $xCE = new cErrorCodes();
     //setLog($this->mMessages .  json_encode($this->getDatosInArray()), $xCE->RECIBO_ELIMINADO);
     $xLog->guardar($xLog->OCat()->RECIBO_ELIMINADO);
     $this->mMessages .= $xLog->getMessages();
     if ($this->isPagable() == true) {
         //agregar Aviso.
         $xRuls = new cReglaDeNegocio();
         $xRuls->setVariables(array("mensaje" => $this->getMessages(), "original" => $original));
         $xRuls->setExecuteActions($xRuls->reglas()->RN_DATOS_AL_ELIMINAR_RECIBO);
     }
     return $sucess;
 }
 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 setTraspaso($CuentaDestino, $TipoDestino, $observaciones = "", $monto = false)
 {
     if ($this->mCuentaIniciada == false) {
         $this->init();
     }
     $cuentaOrigen = $this->mNumeroCuenta;
     $socio = $this->mSocioTitular;
     $saldoOrigen = $this->mSaldoActual;
     $fechaOperacion = fechasys();
     $tipoPago = TESORERIA_COBRO_NINGUNO;
     $cheque = "NA";
     $reciboFiscal = "";
     $tipoDocumento = 9;
     $msg = "";
     if ($TipoDestino == CAPTACION_TIPO_PLAZO) {
         $xCDestino = new cCuentaInversionPlazoFijo($CuentaDestino, $socio);
     } else {
         $xCDestino = new cCuentaALaVista($CuentaDestino, $socio);
     }
     $xCDestino->init();
     if ($monto > $saldoOrigen) {
         $msg .= "ERROR\tEl Monto a Retirar {$monto} es mayor al saldo de Origen {$saldoOrigen} \r\n";
     } else {
         //Crear el Recibo
         $xRec = new cReciboDeOperacion($tipoDocumento);
         $ReciboTrasp = $xRec->setNuevoRecibo($socio, $cuentaOrigen, $fechaOperacion, 1, $tipoDocumento, $observaciones, $cheque, $tipoPago);
         $xRec->setNumeroDeRecibo($ReciboTrasp);
         $xRec->setGenerarPoliza();
         $xRec->setForceUpdateSaldos();
         $xRec->initRecibo();
         $this->setCuentaBancaria(DEFAULT_CUENTA_BANCARIA);
         $this->setReciboDeOperacion($ReciboTrasp);
         $this->setForceOperations(true);
         $xCDestino->setReciboDeOperacion($ReciboTrasp);
         $this->setRetiro($monto, $cheque, $tipoPago, $reciboFiscal, $observaciones, DEFAULT_GRUPO, $fechaOperacion, $ReciboTrasp);
         $xCDestino->setDeposito($monto, $cheque, $tipoPago, $reciboFiscal, $observaciones, DEFAULT_GRUPO, $fechaOperacion, $ReciboTrasp);
         $xRec->setFinalizarRecibo(true);
         $msg .= $xRec->getMessages("txt");
     }
     return $msg;
 }
             //$ClaveCuenta	= false;
             //Iniciar el Socio
             //$msg .= "$iReg\t$socio\tERROR_SOCIO\t$socio -- $importe -- $fechaApertura -- $plazo -- $tasa -- $observaciones\r\n";
             $xCL = new cCajaLocal(99);
             if ($xCL->getExistenciaSocio($socio) <= 0) {
                 $msg .= "{$iReg}\t{$socio}\tERROR_SOCIO\tLa Linea({$iReg}) no se leyo por que no existe el socio. (" . substr($bufer, 0, 20) . ")\r\n";
             } else {
                 $xCta = new cCuentaALaVista($NumCuenta, $socio, 0, false, $fechaApertura);
                 if ($xCta->setContarCuenta() <= 0) {
                     $xCta = new cCuentaALaVista(false, $socio, 0, false, $fechaApertura);
                     $NumCuenta = $xCta->setNuevaCuenta(99, $Producto, $socio, $observaciones, DEFAULT_CREDITO, "", "", DEFAULT_GRUPO, $fechaApertura, 10);
                     $msg .= "{$iReg}\t{$socio}\tCUENTA\tSe Agrego Exitosamente la cuenta {$NumCuenta} \r\n";
                 }
                 if ($NumCuenta != false) {
                     if ($importe > 0) {
                         $xCta->init();
                         $RDeposito = $xCta->setDeposito($importe, DEFAULT_CHEQUE, DEFAULT_TIPO_PAGO, DEFAULT_RECIBO_FISCAL, $observaciones, DEFAULT_GRUPO, $fechaApertura);
                         $msg .= "{$iReg}\t{$socio}\tRECIBO_DEPOSITO\tSe Efectua un Deposito de {$importe} al Recibo {$RDeposito}\r\n";
                         $msg .= $xCta->getMessages("txt");
                     }
                 } else {
                     $msg .= "{$iReg}\t{$socio}\tERROR\tSe Fallo al Agregar la Cuenta\r\n";
                 }
             }
         }
         $iReg++;
     }
 }
 fclose($gestor);
 $xLog->setWrite($msg);
 echo $xLog->getLinkDownload("Archivo del proceso");
     //ajusta las cuentas de ahorro por saldo actual y no por movimientos
 //ajusta las cuentas de ahorro por saldo actual y no por movimientos
 case 879:
     $msg .= "============================ GENERANDO AJUSTES DE CUENTA A LA VISTA \r\n ";
     $CRecibo = new cReciboDeOperacion(10, true);
     $recibo = $CRecibo->setNuevoRecibo(DEFAULT_SOCIO, DEFAULT_CREDITO, fechasys(), 1, 10, "POLIZA_MASIVA_DE_AJUSTE", "NA", "ninguno", "NA", DEFAULT_GRUPO);
     $sql = "SELECT SQL_CACHE * FROM captacion_saldos_comparados WHERE saldo_cuenta != saldo_obtenido /* LIMIT 0,500 */ ";
     $rs = mysql_query($sql, cnnGeneral());
     while ($rw = mysql_fetch_array($rs)) {
         $cuenta = $rw["numero_cuenta"];
         $socio = $rw["numero_socio"];
         $saldo = round($rw["saldo_cuenta"], 2);
         $sdoOperativo = round($rw["saldo_obtenido"], 2);
         if ($saldo != $sdoOperativo) {
             $cCta = new cCuentaALaVista($cuenta, $socio);
             $cCta->init();
             $cCta->setForceOperations();
             $cCta->setReciboDeOperacion($recibo);
             if ($saldo > $sdoOperativo) {
                 //depositar
                 $diferencia = $saldo - $sdoOperativo;
                 $msg .= "{$socio}\t{$cuenta}\tDEPOSITO\tExiste diferencia ( {$diferencia} ) entre el saldo de la cuenta ( {$saldo} ) y el obtenido por Movimientos ( {$sdoOperativo}) \r\n";
                 $cCta->setDeposito($diferencia, "NA", "ninguno");
             } else {
                 //retirar
                 $diferencia = $sdoOperativo - $saldo;
                 $msg .= "{$socio}\t{$cuenta}\tRETIRO\tExiste diferencia ( {$diferencia} ) entre el saldo de la cuenta ( {$saldo} ) y el obtenido por Movimientos ( {$sdoOperativo}) \r\n";
                 $cCta->setRetiro($diferencia, "NA", "ninguno");
             }
             $msg .= $cCta->getMessages("txt");
         } else {
$xHP = new cHPage("TR.Estado de Cuenta de Depositos a la Vista", HP_REPORT);
$xQL = new MQL();
$xF = new cFecha();
$oficial = elusuario($iduser);
$xHP->init();
$xRPT = new cReportes();
$idcuenta = parametro("f100", false, MQL_INT);
$idcuenta = parametro("cuenta", $idcuenta, MQL_INT);
$AppByFechas = parametro("f73");
//Boolean por fechas
$fecha_inicial = parametro("on", EACP_FECHA_DE_CONSTITUCION);
$fecha_final = parametro("off", $xF->getFechaMaximaOperativa());
$output = parametro("out", SYS_DEFAULT);
$es_por_fechas = "";
$xCuenta = new cCuentaALaVista($idcuenta);
$xCuenta->init();
//Datos de la Cuenta
$rwc = $xCuenta->getDatosInArray();
// datos generales del socio
$idsocio = $rwc["numero_socio"];
// Numero de Socio
$CSocio = new cSocio($idsocio);
$CSocio->init();
$mynom = $CSocio->getNombreCompleto();
$xRPT->addContent($CSocio->getFicha());
//Verifica el FORZADO de el Cuadre de Saldos
// datos de la cuenta
$tipocuenta = eltipo("captacion_cuentastipos", $rwc[4]);
$tasa = $rwc[14] * 100;
$saldo = $rwc["saldo_cuenta"];
$sdoact = number_format($rwc[9], 2, '.', ',');
 function setConciliarCuentas($AppSucursal)
 {
     $msg = "";
     $AppSucursal = strtoupper($AppSucursal);
     $BySucursal = " AND (`sucursal` ='" . getSucursal() . "')  ";
     if ($AppSucursal != "SI") {
         $BySucursal = "";
     }
     //Crea un Array de los saldos de la Cuenta
     $arrSdoCtas = array();
     $arrNumCtas = array();
     $arrSdoCW = array();
     //
     $sqlCW = "SELECT\n\t\t\t\t\t\t\t\tCOUNT(`sisbancs_temp_depositos`.`numero_de_socio`) AS `existentes`,\n\t\t\t\t\t\t\t\t`sisbancs_temp_depositos`.`numero_de_socio`\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t`sisbancs_temp_depositos` `sisbancs_temp_depositos`\n\n\t\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\t\t`sisbancs_temp_depositos`.`numero_de_socio` ";
     $rsA = getRecordset($sqlCW);
     while ($rw = mysql_fetch_array($rsA)) {
         $arrSdoCW[$rw["numero_de_socio"]] = $rw["existentes"];
     }
     unset($rsA);
     unset($rw);
     // obtiene las cuentas tipo 10[A LA VISTA] en safe y crea un array
     $sqlSdoCta = " SELECT SQL_CACHE\n\t\t\t\t\t\t\t`captacion_cuentas`.`numero_socio`         AS `socio`,\n\t\t\t\t\t\t\t`captacion_cuentas`.`tipo_cuenta`\tAS `tipo`,\n\t\t\t\t\t\t\tCOUNT(`captacion_cuentas`.`numero_cuenta`) AS `cuentas`,\n\t\t\t\t\t\t\tSUM(`captacion_cuentas`.`saldo_cuenta`)    AS `suma`\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\tWHERE\n\t\t\t\t\t\t\t(`captacion_cuentas`.`estatus_cuenta` != 99)\n\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t(`captacion_cuentas`.`tipo_cuenta` = 10)\n\t\t\t\t\t\t\t{$BySucursal}\n\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\t`captacion_cuentas`.`numero_socio`,\n\t\t\t\t\t\t\t`captacion_cuentas`.`tipo_cuenta`\n\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\t`captacion_cuentas`.`tipo_cuenta` ";
     $rsA = getRecordset($sqlSdoCta);
     while ($rw = mysql_fetch_array($rsA)) {
         $msocio = $rw["socio"];
         $arrSdoCtas[$msocio . "-" . $rw["tipo"]] = round($rw["suma"], 2);
         //OK: Verificar
         if (!isset($arrSdoCW[$rw["socio"]]) or is_null($arrSdoCW[$rw["socio"]])) {
             $msg .= "\t{$msocio}\tAgregando un cuadre al socio " . $msocio . " A COMPACW para Verificacion\r\n";
             $sqltmp = "INSERT INTO sisbancs_temp_depositos(numero_de_socio, cuenta_contable, nombre, tipo_de_saldo, monto, sucursal)\n    \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tVALUES({$msocio}, '', '_AGREGADO_PARA_CUADRE_MONTO_" . $rw["suma"] . "', 0, 0, 'matriz')";
             my_query($sqltmp);
         }
     }
     unset($rsA);
     unset($rw);
     //============================================================================================================================
     $sqlCuentasSISBANCS = "SELECT SQL_CACHE\n\t\t\t\t\t\t\t\t\t\t`temp_captacion_por_socio`.`numero_socio`,\n\t\t\t\t\t\t\t\t\t\t`temp_sisbancs_depositos`.`numero_de_socio`,\n\t\t\t\t\t\t\t\t\t\t`temp_captacion_por_socio`.`tipo_cuenta`,\n\t\t\t\t\t\t\t\t\t\tROUND(`temp_captacion_por_socio`.`monto`, 2) AS `saldo_safe`,\n\t\t\t\t\t\t\t\t\t\t`temp_sisbancs_depositos`.`total`,\n\t\t\t\t\t\t\t\t\t\t`temp_sisbancs_depositos`.`cuentas`,\n\t\t\t\t\t\t\t\t\t\tROUND((`temp_sisbancs_depositos`.`total`  - `temp_captacion_por_socio`.`monto`), 2) AS 'diferencia'\n\n\t\t\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t\t\t`temp_captacion_por_socio` `temp_captacion_por_socio`\n\t\t\t\t\t\t\t\t\t\t\tINNER JOIN `temp_sisbancs_depositos` `temp_sisbancs_depositos`\n\t\t\t\t\t\t\t\t\t\t\tON `temp_captacion_por_socio`.`numero_socio` = `temp_sisbancs_depositos`\n\t\t\t\t\t\t\t\t\t\t\t.`numero_de_socio`\n\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t\t(`temp_captacion_por_socio`.`tipo_cuenta` =10)\n\t\t\t\t\t\t\t\t\t\t{$BySucursal}\n\t\t\t\t\t\t\t\t\tHAVING\n\t\t\t\t\t\t\t\t\t\t(diferencia > 0.02)\n\t\t\t\t\t\t\t\t\t\tOR\n\t\t\t\t\t\t\t\t\t\t(diferencia < -0.02)\n\t\t\t\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\t\t\t\tdiferencia\n\t\t\t\t\t\t\t\t  /* LIMIT 0,600 */ ";
     $rs = getRecordset($sqlCuentasSISBANCS);
     $contar = 0;
     //Crear un nuevo Recibo de Ajuste
     $cRec = new cReciboDeOperacion(10);
     $xRec = $cRec->setNuevoRecibo(DEFAULT_SOCIO, DEFAULT_CREDITO, fechasys(), 1, 10, "RECIBO_DE_AJUSTES_DE_CAPTACION");
     $msg .= "\t\tRECIBO\tEl Recibo de Operacion es {$xRec}\r\n";
     $cRec->setNumeroDeRecibo($xRec, true);
     //$cRec->initRecibo();
     $msg .= "\t\t============= \r\n";
     $msg .= "\t\t============= APLICANDO CUENTAS DESDE COMPACW\r\n";
     $msg .= "\t\t============= \r\n";
     while ($rw = mysql_fetch_array($rs)) {
         $socio = $rw["numero_de_socio"];
         $ahorro = round($rw["total"], 2);
         $NCuentas = $rw["cuentas"];
         $Monto = 0;
         //Si el saldo EXISTE Y es Diferente a NULL
         if (isset($arrSdoCtas["{$socio}-10"]) and !is_null($arrSdoCtas["{$socio}-10"])) {
             $Monto = $arrSdoCtas["{$socio}-10"];
         }
         //SI es mayor el Monto que el Ahorro, entonces esta inflado la parte Operativa.- Saldo Negativo
         $diferencia = $ahorro - $Monto;
         //Si la Difrencia es menor a -0.99 entonces
         if ($diferencia < TOLERANCIA_SALDOS * -1) {
             $diferencia = $diferencia * -1;
             $msg .= "{$contar}\t{$socio}\tEXCESO\tExiste un monto en exceso de {$diferencia} en SAFE, debe tener {$ahorro} segun COMPACW\r\n";
             //FIXME: globalizar 5
             //TODO: Cambiar esta linea
             $sqlCSoc = "SELECT\n\t\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.*,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_cuentastipos`.`descripcion_cuentastipos` AS `tipo`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`numero_cuenta`                 AS `cuenta`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`fecha_afectacion`              AS `apertura`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`inversion_fecha_vcto`          AS `vencimiento`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`tasa_otorgada`                 AS `tasa`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`dias_invertidos`               AS `dias`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`observacion_cuenta`            AS `observaciones`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`saldo_cuenta` \t\t\t        AS `saldo`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_subproductos`.`descripcion_subproductos` AS `subproducto`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_subproductos`.`algoritmo_de_premio`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_subproductos`.`algoritmo_de_tasa_incremental`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_subproductos`.`metodo_de_abono_de_interes`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_subproductos`.`destino_del_interes`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_subproductos`.`nombre_del_contrato`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_subproductos`.`algoritmo_modificador_del_interes`\n\t\t\t\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t\t\t`captacion_cuentas` `captacion_cuentas`\n\t\t\t\t\t\t\t\t\t\t\tINNER JOIN `captacion_cuentastipos` `captacion_cuentastipos`\n\t\t\t\t\t\t\t\t\t\t\tON `captacion_cuentas`.`tipo_cuenta` = `captacion_cuentastipos`.\n\t\t\t\t\t\t\t\t\t\t\t`idcaptacion_cuentastipos`\n\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN `captacion_subproductos` `captacion_subproductos`\n\t\t\t\t\t\t\t\t\t\t\t\tON `captacion_cuentas`.`tipo_subproducto` = `captacion_subproductos`\n\t\t\t\t\t\t\t\t\t\t\t\t.`idcaptacion_subproductos`\n\t\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t\t\t(`captacion_cuentas`.`numero_socio` ={$socio})\n\t\t\t\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\t\t\t\t(`captacion_cuentas`.`tipo_cuenta` =10)\n\t\t\t\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\t\t\t\t(`captacion_cuentas`.`saldo_cuenta` != 0)\n\t\t\t\t\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`saldo_cuenta`,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`fecha_afectacion` ";
             $rsCSoc = getRecordset($sqlCSoc);
             while ($CRw = mysql_fetch_array($rsCSoc)) {
                 $cuenta = $CRw["numero_cuenta"];
                 $saldo = $CRw["saldo_cuenta"];
                 //Si la Diferencia es mayor al saldo de la cuenta, entonces
                 if ($diferencia >= $saldo and $diferencia > 0) {
                     //Retirar el saldo de la cuenta
                     $cCuenta = new cCuentaALaVista($cuenta);
                     $cCuenta->setReciboDeOperacion($xRec);
                     $cCuenta->set($cuenta);
                     $cCuenta->setForceOperations();
                     $cCuenta->init($CRw);
                     $cCuenta->setRetiro($saldo);
                     //Quitar el saldo de la cuenta de la diferencia
                     $diferencia = $diferencia - $saldo;
                     //Mensaje
                     $msg .= "{$contar}\t{$socio}\t{$cuenta}\tELIMINAR\tEliminando el saldo de la cuenta por {$saldo}, queda {$diferencia}\r\n";
                     $msg .= $cCuenta->getMessages("txt");
                 } elseif ($diferencia < $saldo and $diferencia > 0) {
                     //Restar la diferencia y dejar el saldo de la cuenta con el saldo de la cuenta
                     $NSaldo = $saldo - $diferencia;
                     $cCuenta = new cCuentaALaVista($cuenta);
                     $cCuenta->setReciboDeOperacion($xRec);
                     $cCuenta->set($cuenta);
                     $cCuenta->setForceOperations();
                     $cCuenta->init($CRw);
                     $cCuenta->setRetiro($diferencia);
                     $msg .= "{$contar}\t{$socio}\t{$cuenta}\tACTUALIZAR\tActualizar la Cuenta a {$NSaldo}, Anteriormente {$saldo}\r\n";
                     $NuevoSaldo = $cCuenta->getNuevoSaldo();
                     $msg .= $cCuenta->getMessages("txt");
                     $msg .= "{$contar}\t{$socio}\t{$cuenta}\tSALDO\tLa cuenta quedo en {$NuevoSaldo}\r\n";
                     //Llevar a Cero la Diferencia
                     $diferencia = 0;
                 } else {
                     $msg .= "{$contar}\t{$socio}\tIGNORAR\tNo efectuo ninguna accion (SAFE: {$Monto} / CW: {$ahorro})\r\n";
                 }
                 if ($diferencia <= TOLERANCIA_SALDOS) {
                     $diferencia = 0;
                 }
             }
             $msg .= "{$contar}\t{$socio}\tFIN_RET\t------\t------\t------\t------\t------\t------\t------\r\n";
             //Diferencia:	Si la Diferencia es Mayor a 0.99
         } elseif ($diferencia > TOLERANCIA_SALDOS) {
             $msg .= "{$contar}\t{$socio}\tINSUFICIENCIA\tExiste Insuficiencia de {$diferencia} en SAFE (SAFE: {$Monto} / CW: {$ahorro})\r\n";
             //Obtener una Cuenta
             //FIXME: Globalizar 6
             //TODO: Actualizar esta linea
             $sqlCSoc = "SELECT\n\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.*,\n\t\t\t\t\t\t\t\t\t\t`captacion_cuentastipos`.`descripcion_cuentastipos` AS `tipo`,\n\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`numero_cuenta`                 AS `cuenta`,\n\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`fecha_afectacion`              AS `apertura`,\n\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`inversion_fecha_vcto`          AS `vencimiento`,\n\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`tasa_otorgada`                 AS `tasa`,\n\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`dias_invertidos`               AS `dias`,\n\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`observacion_cuenta`            AS `observaciones`,\n\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`saldo_cuenta` \t\t\t        AS `saldo`,\n\t\t\t\t\t\t\t\t\t\t`captacion_subproductos`.`descripcion_subproductos` AS `subproducto`,\n\t\t\t\t\t\t\t\t\t\t`captacion_subproductos`.`algoritmo_de_premio`,\n\t\t\t\t\t\t\t\t\t\t`captacion_subproductos`.`algoritmo_de_tasa_incremental`,\n\t\t\t\t\t\t\t\t\t\t`captacion_subproductos`.`metodo_de_abono_de_interes`,\n\t\t\t\t\t\t\t\t\t\t`captacion_subproductos`.`destino_del_interes`,\n\t\t\t\t\t\t\t\t\t\t`captacion_subproductos`.`nombre_del_contrato`,\n\t\t\t\t\t\t\t\t\t\t`captacion_subproductos`.`algoritmo_modificador_del_interes`\n\t\t\t\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t\t\t`captacion_cuentas` `captacion_cuentas`\n\t\t\t\t\t\t\t\t\t\t\tINNER JOIN `captacion_cuentastipos` `captacion_cuentastipos`\n\t\t\t\t\t\t\t\t\t\t\tON `captacion_cuentas`.`tipo_cuenta` = `captacion_cuentastipos`.\n\t\t\t\t\t\t\t\t\t\t\t`idcaptacion_cuentastipos`\n\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN `captacion_subproductos` `captacion_subproductos`\n\t\t\t\t\t\t\t\t\t\t\t\tON `captacion_cuentas`.`tipo_subproducto` = `captacion_subproductos`\n\t\t\t\t\t\t\t\t\t\t\t\t.`idcaptacion_subproductos`\n\t\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t\t\t(`captacion_cuentas`.`numero_socio` ={$socio})\n\t\t\t\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\t\t\t\t(`captacion_cuentas`.`tipo_cuenta` =10)\n\t\t\t\t\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`saldo_cuenta` DESC,\n\t\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`fecha_afectacion` DESC\n\t\t\t\t\t\t\t\t\t\tLIMIT 0,1 ";
             $DCta = obten_filas($sqlCSoc);
             $cuenta = $DCta["numero_cuenta"];
             $cCuenta = new cCuentaALaVista($cuenta);
             $NSaldo = 0;
             //Si la cuenta no existe, crear una nueva
             if (!isset($cuenta) or $cuenta == 0 or $cuenta == false) {
                 $cuenta = $cCuenta->setNuevaCuenta(5, 1, $socio, "CUENTA_POR_AJUSTE");
                 $msg .= "{$contar}\t{$socio}\t{$cuenta}\tNUEVA\tNO Existe la Cuenta, se crea una NUEVA\r\n";
                 $DCta = false;
             }
             $cCuenta->set($cuenta);
             $cCuenta->init($DCta);
             $cCuenta->setReciboDeOperacion($xRec);
             $cCuenta->setDeposito($diferencia);
             $NSaldo = $cCuenta->getNuevoSaldo();
             $msg .= "{$contar}\t{$socio}\t{$cuenta}\tAGREGAR\tSe Agrega la Cuenta un monto de {$diferencia}, Saldo de {$NSaldo}\r\n";
             $msg .= $cCuenta->getMessages("txt");
             $diferencia = 0;
         }
         //$msg	.= "==========================================================================\r\n";
         $contar++;
     }
     $cRec->setFinalizarRecibo();
     $msg .= $cRec->getMessages("txt");
     return $msg;
 }
  */
 //$cRec->setGenerarBancos();
 $cRec->setGenerarPoliza();
 $cRec->setGenerarTesoreria();
 $sucess = true;
 $msg = "";
 if (CAPITAL_SOCIAL_EN_CAPTACION == true) {
     $xSoc = new cSocio($persona);
     $cuenta = $xSoc->getCuentaDeCaptacionPrimaria(CAPTACION_TIPO_VISTA, CAPTACION_PRODUCTO_CAPITALSOCIAL);
     $xCta = new cCuentaALaVista($cuenta);
     if ($cuenta == 0) {
         //Aperturar nueva cuenta
         $cuenta = $xCta->setNuevaCuenta(DEFAULT_CAPTACION_ORIGEN, CAPTACION_PRODUCTO_CAPITALSOCIAL, $persona);
         $xCta->set($cuenta);
     }
     if ($xCta->init() == true) {
         $idrecibo = $cRec->setNuevoRecibo($persona, $xCta->getNumeroDeCuenta(), $fecha, 1, RECIBOS_TIPO_DEPOSITO_VISTA, $observaciones, $cheque, $comopago, $foliofiscal);
         $cRec->init();
         if ($tipo1 != false and $monto1 > 0) {
             $xCta->setDeposito($monto1, $cheque, $comopago, $foliofiscal, "Origen {$tipo1}:" . $observaciones, DEFAULT_GRUPO, $fecha, $cRec->getCodigoDeRecibo());
         }
         if ($tipo2 != false and $monto2 > 0) {
             $xCta->setDeposito($monto2, $cheque, $comopago, $foliofiscal, "Origen {$tipo2}:" . $observaciones, DEFAULT_GRUPO, $fecha, $cRec->getCodigoDeRecibo());
         }
         if ($tipo3 != false and $monto3 > 0) {
             $xCta->setDeposito($monto2, $cheque, $comopago, $foliofiscal, "Origen {$tipo2}:" . $observaciones, DEFAULT_GRUPO, $fecha, $cRec->getCodigoDeRecibo());
         }
     } else {
         $msg .= "ERROR\tError en la carga de la cuentar {$cuenta}\r\n";
         $sucess = false;
     }
     $msg .= "ERROR\tLa cuenta de Origen({$cuentaOrigen}) o la cuenta de Destino({$cuentaDestino}) NO son del Misma Persona ({$socio})\r\n";
 }
 if ($sucess == true) {
     if ($tipoOrigen == CAPTACION_TIPO_PLAZO) {
         $xCOrigen = new cCuentaInversionPlazoFijo($cuentaOrigen, $socio);
     } else {
         $xCOrigen = new cCuentaALaVista($cuentaOrigen, $socio);
     }
     $xCOrigen->init();
     //
     if ($tipoDestino == CAPTACION_TIPO_PLAZO) {
         $xCDestino = new cCuentaInversionPlazoFijo($cuentaDestino, $socio);
     } else {
         $xCDestino = new cCuentaALaVista($cuentaDestino, $socio);
     }
     $xCDestino->init();
     $msg .= $xCOrigen->setTraspaso($cuentaDestino, $tipoDestino, $observaciones, $monto);
     $ReciboTrasp = $xCOrigen->getReciboDeOperacion();
     $msg .= $xCOrigen->getMessages();
     $msg .= $xCDestino->getMessages();
     //Imprime la Ficha del socio
     echo $xSoc->getFicha();
     //$cCta->init();
     //Imprime la Ficha del Documento
     $xCDestino->init();
     $fd = $xCDestino->getFicha(true);
     $xCOrigen->init();
     $fo = $xCOrigen->getFicha(true);
     echo "<fieldset><legend>DATOS DEL TRAPASO</legend>\n\t\t\t\tCuenta de Origen:<br />\n\t\t\t\t{$fo}\t\n\t\tCuenta de Destino:<br />\n\t\t{$fd}\n\t\t</fieldset>";
     $mRec = new cFicha(iDE_RECIBO, $ReciboTrasp);
     $mRec->setTableWidth();
 function show($return = false)
 {
     $exoFicha = "";
     $iNumTools = sizeof($this->mTool);
     $trTool = "";
     $wTable = $this->mTableWidth;
     if ($iNumTools > 0) {
         $iTools = "";
         foreach ($this->mTool as $key => $value) {
             $TParts = explode("@", $value);
             $iImg = $TParts[0];
             $iTitle = $TParts[1];
             $srcImg = vIMG_PATH . "/common/{$iImg}";
             $iTools = $iTools . "<td><img src=\"{$srcImg}\" onclick=\"{$key}(" . $this->mKey . ")\" />{$iTitle}</td>";
         }
         $trTool = "<tr>\r\n\t\t\t<td colspan=\"4\">\r\n\t\t\t<table width=\"100%\">\r\n\t\t\t\t<tbody>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t{$iTools}\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</tbody>\r\n\t\t\t</table>\r\n\t\t\t</td>\r\n\t\t\t</tr>";
     }
     // end iNumTools
     $cTyp = new cTipos();
     switch ($this->mType) {
         case iDE_SOCIO:
             //INFO del Socio
             $cSoc = new cSocio($this->mKey, true);
             $exoFicha = $cSoc->getFicha($this->mSocioWithDomExt, false, $trTool);
             unset($cSoc);
             break;
         case iDE_CREDITO:
             // Creditos iDE_CREDITO
             $cF = new cCredito($this->mKey);
             $cF->initCredito();
             $exoFicha = $cF->getFicha(false, $trTool);
             unset($cF);
             break;
         case 101:
             //Grupos iDE_GRUPO
             $cG = new cGrupo($this->mKey);
             $exoFicha = $cG->getFicha(false, $trTool);
             unset($cG);
             break;
         case iDE_GARANTIA:
             $sql = "SELECT creditos_garantias.idcreditos_garantias,\r\n\t\t\t\tcreditos_tgarantias.descripcion_tgarantias AS 'Tipo_de_Garantia',\r\n\t\t\t\t creditos_tvaluacion.descripcion_tvaluacion AS 'Tipo_de_Valuacion',\r\n\t\t\t\t creditos_garantias.fecha_recibo AS 'Fecha_de_Recibo',\r\n\t\t\t\t FORMAT(creditos_garantias.monto_valuado, 2) AS 'Monto_valuado',\r\n\t\t\t\t creditos_garantias.fecha_adquisicion AS 'Fecha_de_Adquisicion',\r\n\t\t\t\t creditos_garantias.documento_presentado AS 'Documento_Presentado',\r\n\t\t\t\t creditos_garantias.descripcion AS 'Descripcion',\r\n\t\t\t\t creditos_garantias.propietario AS 'Propietario'\r\n\t\t\t\t FROM creditos_tvaluacion, creditos_garantias, creditos_tgarantias\r\n\t\t\t\t WHERE creditos_tgarantias.idcreditos_tgarantias=creditos_garantias.tipo_garantia\r\n\t\t\t\t AND creditos_tvaluacion.idcreditos_tvaluacion=creditos_garantias.tipo_valuacion\r\n\t\t AND creditos_garantias.idcreditos_garantias=" . $this->mKey;
             $tool = $trTool;
             $rwt = obten_filas($sql);
             $exoFicha = "\r\n\t<table  {$wTable} border='0'>\r\n\t<tbody>\r\n\t\t<tr>\r\n\t\t\t<th class='izq'>Identificador</th><td>{$rwt['0']}</td>\r\n\t\t\t<th class='izq'>Tipo</th><td>{$rwt['1']}</td>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t\t<th class='izq'>Tipo de Valuacion</th><td>{$rwt['2']}</td>\r\n\t\t\t<th class='izq'>Fecha de Resguardo</th><td>{$rwt['3']}</td>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t\t<th class='izq'>Fecha de Adquisicion</th><td>{$rwt['5']}</td>\r\n\t\t\t<th class='izq'>Documento / Factura</th><td>{$rwt['6']}</td>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t\t<th class='izq'>Monto Valuado</th><td>" . getFMoney($rwt[4]) . "</td>\r\n\t\t\t<th class='izq'>Propietario</th><td>{$rwt['8']}</td>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t\t<th>Descripci&oacute;n</th>\r\n\t\t\t<td>{$rwt['7']}</td>\r\n\t\t</tr>\r\n\t\t{$tool}\r\n\t</tbody>\r\n\t</table>";
             break;
         case 300:
             //TODO: Change this line.- cambiar por la clase global
             $sqli = "\r\n\t\t\tSELECT\r\n\t\t\t\t\t`captacion_cuentas`.`numero_cuenta`,\r\n\t\t\t\t\t`captacion_cuentastipos`.`descripcion_cuentastipos` AS `modalidad`,\r\n\t\t\t\t\t`captacion_subproductos`.`descripcion_subproductos` AS `subproducto`,\r\n\t\t\t\t\t`captacion_cuentas`.`fecha_apertura`                AS `fecha_de_apertura`,\r\n\t\t\t\t\t`captacion_cuentas`.`saldo_cuenta`                  AS `saldo_actual`,\r\n\t\t\t\t\t`captacion_cuentas`.`numero_grupo`                  AS `grupo_asociado`,\r\n\t\t\t\t\t`captacion_cuentas`.`numero_solicitud`              AS `credito_asociado`,\r\n\t\t\t\t\t`captacion_cuentas`.`tasa_otorgada`                 AS `tasa`,\r\n\t\t\t\t\t`captacion_cuentas`.`observacion_cuenta`            AS `observaciones`\r\n\t\t\t\tFROM\r\n\t\t\t\t\t`captacion_cuentas` `captacion_cuentas`\r\n\t\t\t\t\t\tINNER JOIN `captacion_cuentastipos` `captacion_cuentastipos`\r\n\t\t\t\t\t\tON `captacion_cuentas`.`tipo_cuenta` = `captacion_cuentastipos`.\r\n\t\t\t\t\t\t`idcaptacion_cuentastipos`\r\n\t\t\t\t\t\t\tINNER JOIN `captacion_subproductos` `captacion_subproductos`\r\n\t\t\t\t\t\t\tON `captacion_cuentas`.`tipo_subproducto` = `captacion_subproductos`\r\n\t\t\t\t\t\t\t.`idcaptacion_subproductos`\r\n\t\t\t\tWHERE\r\n\t\t\t\t\t(`captacion_cuentas`.`numero_cuenta` =" . $this->mKey . ")";
             $rw = obten_filas($sqli);
             $exoFicha = "\r\n\t\t\t\t<table width='100%' border='0'>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<th class='izq'>Numero de Cuenta</th  class='mny'><td>" . $rw["numero_cuenta"] . "</td>\r\n\t\t\t\t\t<th class='izq' >Fecha de Apertura</th><td>" . getFechaMediana($rw["fecha_de_apertura"]) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<th class='izq'>Modalidad</th><td>" . $rw["modalidad"] . "</td>\r\n\t\t\t\t\t<th class='izq'>Producto</th><td>" . $rw["subproducto"] . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<th class='izq'>Tasa Actual</th><td class='mny'>% " . getFMoney($rw["tasa"] * 100) . "</td>\r\n\t\t\t\t\t<th class='izq'>Saldo Actual</th>\r\n\t\t\t\t\t<td class='mny'>" . getFMoney($rw["saldo_actual"]) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<th class='izq'>Observaciones</th><td colspan='2'>" . $rw["observaciones"] . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t</table>";
             break;
         case 310:
             //Depositos a la vista iDE_CVISTA
             $cCapt = new cCuentaALaVista($this->mKey);
             $cCapt->init();
             $exoFicha = $cCapt->getFicha(false, $trTool);
             break;
         case 320:
             //iDE_CINVERSION
             $xCI = new cCuentaInversionPlazoFijo($this->mKey);
             $xCI->init();
             $exoFicha = $xCI->getFicha(false, $trTool);
             break;
         case 400:
             //RECIBO DE OPERACION
             $cRec = new cReciboDeOperacion(99, false, $this->mKey);
             //$cRec->initRecibo();
             $exoFicha = $cRec->getFicha(false, $trTool);
             unset($cRec);
             break;
         default:
             break;
     }
     //retoque fieldset
     if ($this->mTitle != "") {
         $this->mTitle = "|&nbsp;&nbsp;&nbsp;" . $this->mTitle . "&nbsp;&nbsp;&nbsp;|";
     }
     $exoFicha = "<fieldset>\r\n\t\t\t\t\t\t<legend>" . $this->mTitle . "</legend>\r\n\t\t\t\t\t\t\t{$exoFicha}\r\n\t\t\t\t\t</fieldset>";
     if ($return == true) {
         return $exoFicha;
     } else {
         echo $exoFicha;
     }
 }