function jsaSetPago($Recibo, $cuentabancaria, $monto, $fecha, $referencia)
{
    $xF = new cFecha();
    $fecha = $xF->getFechaISO($fecha);
    $xCta = new cCuentaBancaria($cuentabancaria);
    $msg = "";
    if ($xCta->init() == true) {
        $xCta->setNuevoRetiro($referencia, $Recibo, "", $monto, $fecha);
        $xRec = new cReciboDeOperacion(false, false, $Recibo);
        $xRec->setDatosDePago(AML_CLAVE_MONEDA_LOCAL, $monto, $referencia, TESORERIA_PAGO_TRANSFERENCIA);
    }
}
function jsaSetPago($Recibo, $cuentabancaria, $monto, $fecha, $cheque)
{
    $xF = new cFecha();
    $fecha = $xF->getFechaISO($fecha);
    $xCta = new cCuentaBancaria($cuentabancaria);
    $msg = "";
    if ($xCta->init() == true) {
        $xCta->setNuevoCheque($cheque, $cuentabancaria, $Recibo, "", $monto, $fecha);
        $xRec = new cReciboDeOperacion(false, false, $Recibo);
        $xRec->setDatosDePago(AML_CLAVE_MONEDA_LOCAL, $monto, $cheque, TESORERIA_PAGO_CHEQUE);
    }
    //if(MODO_DEBUG == true){ setLog($xCta->getMessages()); }
}
function jsaSetUltimoCheque($persona, $credito, $cuenta_bancaria)
{
    $xBanc = new cCuentaBancaria($cuenta_bancaria);
    $cheque = $xBanc->getUltimoCheque();
    $xCred = new cCredito($credito);
    $xCred->init();
    $montocheque = $xCred->getMontoAutorizado();
    $tab = new TinyAjaxBehavior();
    $tab->add(TabSetValue::getBehavior("idnumerocheque", $cheque));
    $tab->add(TabSetValue::getBehavior("idmontocheque", $montocheque));
    $tab->add(TabSetValue::getBehavior("idmontooriginal", $montocheque));
    return $tab->getString();
}
    $numOperacion = isset($_POST["cOperacion"]) ? $_POST["cOperacion"] : false;
    $monto = isset($_POST["cMonto"]) ? $_POST["cMonto"] : false;
    $observaciones = isset($_POST["observaciones"]) ? $_POST["observaciones"] : "";
    if ($monto != false and $banco != false) {
        $xRec = new cReciboDeOperacion(201, true);
        $xRec->setGenerarBancos(false);
        $xRec->setGenerarPoliza();
        $xRec->setForceUpdateSaldos();
        $xRec->setCuentaBancaria($banco);
        $idrecibo = $xRec->setNuevoRecibo(DEFAULT_SOCIO, 1, $fecha, 1, 201, $observaciones, "NA", "efectivo", "NA", DEFAULT_GRUPO, $banco);
        $xRec->setNumeroDeRecibo($idrecibo);
        $xRec->setNuevoMvto($fecha, $monto, 9301, 1, $observaciones, 1, TM_ABONO, DEFAULT_SOCIO);
        $xRec->addMvtoContableByTipoDePago($monto, TM_CARGO);
        $xRec->setFinalizarRecibo(true);
        //Agregar la Operacion Bancaria
        $xB = new cCuentaBancaria($banco);
        $xB->setNewRetiro($numOperacion, $idrecibo, "PAGO DEL IDE", $monto, $fecha);
        //
        echo $xRec->getFicha();
        //
        echo "<input type='button' onclick='jsPrintIDE()' value='Imprimir Recibo' />";
    }
}
?>
</body>
<script  >
	function jsPrintIDE() {
		var elUrl			= "../rpt_formatos/recibo.rpt.php?recibo=<?php 
echo $idrecibo;
?>
";
 function getDatosDeCobro()
 {
     $OTipo = $this->getOTipoRecibo();
     $info = "";
     $info .= strtoupper($this->getTipoDePago()) . "|";
     //TODO: Terminar tipos de info
     switch ($OTipo->getAfectacionEnEfvo()) {
         case SYS_ENTRADAS:
             $info .= $this->getOCaja()->getChequeActivo() . "|";
             $info .= $this->getOCaja()->getCuentaBancoActivo() . "|";
             $info .= $this->getOCaja()->getBancoActivo() . "|";
             $this->mCuentaBancaria = setNoMenorQueCero($this->getOCaja()->getCuentaBancoActivo());
             $xCtaBanc = new cCuentaBancaria($this->mCuentaBancaria);
             if ($xCtaBanc->init() == true) {
                 $this->mOBanco = $xCtaBanc;
                 $xBanc = new cBancos_entidades();
                 $xBanc->setData($xBanc->query()->initByID($xCtaBanc->getClaveDeBanco()));
                 $info .= $xBanc->nombre_de_la_entidad()->v(OUT_TXT) . "|";
             }
             break;
         case SYS_SALIDAS:
             switch ($this->getTipoDePago()) {
                 case TESORERIA_PAGO_CHEQUE:
                     //$xBac	= new cCuentaBancaria($numero_de_cuenta)
                     //Buscar si existe
                     $xOp = new cOperacionBancaria();
                     $xOp->initByRecibo($this->mCodigoDeRecibo);
                     //$PorOperar	= setNoMenorQueCero($this->getTotal() - $xOp->getMonto());
                     $info .= $xOp->getNumeroDeCheque() . "|";
                     $info .= $xOp->getCuentaBancaria() . "|";
                     //obtener el nombre del banco
                     $this->mCuentaBancaria = setNoMenorQueCero($xOp->getCuentaBancaria());
                     $xCtaBanc = new cCuentaBancaria($this->mCuentaBancaria);
                     if ($xCtaBanc->init() == true) {
                         $this->mOBanco = $xCtaBanc;
                         $xBanc = new cBancos_entidades();
                         $xBanc->setData($xBanc->query()->initByID($xCtaBanc->getClaveDeBanco()));
                         $info .= $xBanc->nombre_de_la_entidad()->v(OUT_TXT) . "|";
                     }
                     break;
                 case TESORERIA_PAGO_DOCTO:
                     break;
                 case TESORERIA_PAGO_EFECTIVO:
                     break;
                 case TESORERIA_PAGO_TRANSFERENCIA:
                     $xOp = new cOperacionBancaria();
                     $xOp->initByRecibo($this->mCodigoDeRecibo);
                     //$PorOperar	= setNoMenorQueCero($this->getTotal() - $xOp->getMonto());
                     $info .= $xOp->getNumeroDeCheque() . "|";
                     $info .= $xOp->getCuentaBancaria() . "|";
                     //obtener el nombre del banco
                     $this->mCuentaBancaria = setNoMenorQueCero($xOp->getCuentaBancaria());
                     $xCtaBanc = new cCuentaBancaria($this->mCuentaBancaria);
                     if ($xCtaBanc->init() == true) {
                         $this->mOBanco = $xCtaBanc;
                         $xBanc = new cBancos_entidades();
                         $xBanc->setData($xBanc->query()->initByID($xCtaBanc->getClaveDeBanco()));
                         $info .= $xBanc->nombre_de_la_entidad()->v(OUT_TXT) . "|";
                     }
                     break;
             }
             break;
     }
     return $info;
 }
    $totalExcedente += $MontoGrav;
    $totalOperaciones++;
    $totalPendiente += $IDEPend;
    $totalRecaudado += $IDERet;
    $totalDeterminados += $IDECalc;
    $totalRemanenteDep += $RemPerA;
    echo "\n\t\t\t\t<PersonaFisica curp=\"{$curp}\" rfc=\"{$rfc}\">\n\t\t\t\t\t<Nombre>\n\t\t\t\t\t\t<NombreCompleto>{$nombre}</NombreCompleto>\n\t\t\t\t\t</Nombre>\n\t\t\t\t\t<Domicilio>\n\t\t\t\t\t\t<DomicilioCompleto>{$domicilio}</DomicilioCompleto>\n\t\t\t\t\t</Domicilio>\n\t\t\t\t</PersonaFisica>\n\n\t\t\t\t<DepositoEnEfectivo impuestoDeterminado=\"{$IDECalc}\"\n                                        remanentePeriodosAnteriores=\"{$RemPerA}\"\n                                        montoExcedente=\"{$MontoGrav}\"\n                                        impuestoRecaudado=\"{$IDERet}\"\n                                        recaudacionPendiente=\"{$IDEPend}\"\n                                        />\n";
}
echo "</RegistroDeDetalle>";
//Registra el Pago diario del IDE
$sqlPagos = "SELECT\n\t\t\t`operaciones_mvtos`.`idoperaciones_mvtos`,\n\t\t\t`operaciones_mvtos`.`fecha_operacion`,\n\t\t\t`operaciones_mvtos`.`socio_afectado`,\n\t\t\t`operaciones_mvtos`.`docto_afectado`,\n\t\t\t`operaciones_mvtos`.`recibo_afectado`,\n\t\t\t`operaciones_mvtos`.`tipo_operacion`,\n\t\t\t`operaciones_mvtos`.`afectacion_real`\n\t\tFROM\n\t\t\t`operaciones_mvtos`\n\t\tWHERE\n\t\t\t(`operaciones_mvtos`.`fecha_operacion` >='{$fecha_inicial}')\n\t\t\tAND\n\t\t\t(`operaciones_mvtos`.`fecha_operacion` <='{$fecha_final}')\n\t\t\tAND\n\t\t\t(`operaciones_mvtos`.`tipo_operacion` = 9301 )\n\t\tORDER BY\n\t\t\t`operaciones_mvtos`.`fecha_operacion` ";
//echo $sqlPagos;
$rsPagos = mysql_query($sqlPagos, cnnGeneral());
while ($rwPagos = mysql_fetch_array($rsPagos)) {
    $fecha_de_pago = $rwPagos["fecha_operacion"];
    $monto = $rwPagos["afectacion_real"];
    $numero_operac = $rwPagos["idoperaciones_mvtos"];
    $recibo = $rwPagos["recibo_afectado"];
    $sqlOps = "SELECT\n\t\t\t\t\t        numero_de_documento\n\t\t\t\t\t        recibo_relacionado,\n\t\t\t\t\t        fecha_expedicion,\n\t\t\t\t\t        cuenta_bancaria\n\t\t\t\t\t    FROM bancos_operaciones\n\t\t\t\t\tWHERE recibo_relacionado = {$recibo}\n\t\t\t\t\t\tAND fecha_expedicion ='{$fecha_de_pago}'\n\t\t\t\t\t\tAND tipo_operacion = 'retiro'\n\t\t\t\t\tLIMIT 0,1 ";
    $DOps = obten_filas($sqlOps);
    $operacion = $DOps["numero_de_documento"];
    $banco = $DOps["cuenta_bancaria"];
    $xBanc = new cCuentaBancaria($banco);
    $DBanc = $xBanc->getDatosInArray();
    $banco_nom = $DBanc["nombre_de_la_entidad"];
    $banco_rfc = $DBanc["rfc_de_la_entidad"];
    $totalEnterado += $monto;
    $totalOperaciones++;
    echo "\n\t\t\t<EnteroPropio noOperacion=\"{$operacion}\" impuestoEnterado=\"{$monto}\" fechaEntero=\"{$fecha_de_pago}\" nombreInstitucion=\"{$banco_nom}\" rfcInstitucion=\"{$banco_rfc}\"/>\n";
}
echo "\n\t\t</ReporteDeRecaudacionYEnteroDiaria>\n\t\t<Totales importeRemanenteDepositos=\"{$totalRemanenteDep}\" importeCheques=\"0\" importeDeterminadoDepositos=\"{$totalDeterminados}\" importeRecaudadoDepositos=\"{$totalRecaudado}\"\n\t\timportePendienteRecaudacion=\"{$totalPendiente}\" operacionesRelacionadas=\"{$totalOperaciones}\" importeExcedenteDepositos=\"{$totalExcedente}\" importeEnterado=\"{$totalEnterado}\"/>\n\t</InstitucionDeCredito>\n</DeclaracionInformativaMensualIDE>";
 /**
  * Agrega una operacion a tesoreria
  * @param integer $recibo	Numero de recibo
  * 
  */
 function addOperacion($recibo, $tipoDeExposicion, $MontoRecibido, $MontoOperacion = 0, $MontoCambio = 0, $banco = FALLBACK_CLAVE_DE_BANCO, $cheque = "", $CuentaBancaria = 0, $DocumentoDescontado = 0, $Observaciones = "", $fecha = false, $hora = false, $moneda = false, $monto_original = 0, $persona = false, $documento = false, $transaccion = SYS_NINGUNO)
 {
     $sucess = false;
     $fecha = $fecha == false ? fechasys() : $fecha;
     $arrQ = array("aumento" => 1, "disminucion" => -1, "ninguna" => 0);
     $xF = new cFecha(0, $fecha);
     $xT = new cTipos();
     $fecha = $xF->get();
     $hora = $hora == false ? date("H:i:s") : $hora;
     $CodigoDeCaja = $this->getKey();
     $cajero = $this->mCajero;
     $banco = setNoMenorQueCero($banco) <= 0 ? FALLBACK_CLAVE_DE_BANCO : $banco;
     $this->mMoneda = $this->mMoneda == "" ? AML_CLAVE_MONEDA_LOCAL : $this->mMoneda;
     if ($moneda == false or $moneda == AML_CLAVE_MONEDA_LOCAL) {
         $moneda = $this->mMoneda != AML_CLAVE_MONEDA_LOCAL ? $this->mMoneda : AML_CLAVE_MONEDA_LOCAL;
     }
     //$monto_original	= setNoMenorQueCero($monto_original);
     $monto_original = $monto_original == 0 ? $this->mMontoOrigen : $monto_original;
     $xRec = new cReciboDeOperacion(false, false, $recibo);
     $xRec->init();
     $DRec = $xRec->getDatosInArray();
     $persona = ($persona == false or $persona == "") ? DEFAULT_SOCIO : $persona;
     $documento = $documento == false ? $xRec->getCodigoDeDocumento() : $documento;
     $afectaCaja = $arrQ[$DRec["afectacion_en_flujo_efvo"]];
     $MontoOperacion = $MontoOperacion == 0 ? $DRec["total_operacion"] : $MontoOperacion;
     $MontoCambio = $MontoCambio == 0 ? $MontoRecibido - $MontoOperacion : $MontoCambio;
     //Obtener Banco
     $pais = EACP_CLAVE_DE_PAIS;
     $eacp = EACP_CLAVE;
     $sucursal = getSucursal();
     if ($banco == FALLBACK_CLAVE_DE_BANCO and $CuentaBancaria > 0) {
         $xCta = new cCuentaBancaria($CuentaBancaria);
         $xCta->init();
         $banco = $xCta->getClaveDeBanco();
         $pais = $xCta->getPaisDeOrigen();
     }
     $xBanco = new cBancos_entidades();
     $xBanco->setData($xBanco->query()->initByID($banco));
     $pais = $xBanco->pais_de_origen()->v();
     //Actualizar Moneda por pais
     if ($banco != FALLBACK_CLAVE_DE_BANCO) {
         $moneda2 = mifila("SELECT clave_de_moneda FROM `tesoreria_monedas` WHERE `pais_de_origen` ='{$pais}' LIMIT 0,1 ", "clave_de_moneda");
         if ($moneda2 === 0) {
         } else {
             $moneda = $moneda2;
         }
     }
     $xTes = new cTesoreria_cajas_movimientos();
     $xTes->banco($banco);
     $xTes->codigo_de_caja($CodigoDeCaja);
     $xTes->cuenta_bancaria($CuentaBancaria);
     $xTes->documento($documento);
     $xTes->documento_descontado($DocumentoDescontado);
     $xTes->eacp(EACP_CLAVE);
     $xTes->fecha($fecha);
     $xTes->hora($hora);
     $xTes->idtesoreria_cajas_movimientos($xTes->query()->getLastID());
     $xTes->idusuario($cajero);
     $xTes->moneda_de_operacion($moneda);
     if ($moneda != AML_CLAVE_MONEDA_LOCAL) {
     }
     //EVALUAR MONEDA
     $xTes->monto_del_movimiento($MontoOperacion);
     $xTes->monto_en_cambio($MontoCambio);
     $xTes->monto_recibido($MontoRecibido);
     $xTes->numero_de_cheque($cheque);
     $xTes->observaciones($Observaciones);
     $xTes->recibo($recibo);
     $xTes->sucursal($sucursal);
     $xTes->tipo_de_exposicion($tipoDeExposicion);
     $xTes->tipo_de_movimiento($afectaCaja);
     $xTes->unidades_de_moneda(setNoMenorQueCero($monto_original));
     $xTes->persona($persona);
     $sucess = $xT->getEvalNotNull(array($cajero, $CodigoDeCaja));
     if ($sucess == true) {
         $q = $xTes->query()->insert();
         $id = $q->save();
         $sucess = $id == false ? false : true;
         if ($sucess == true) {
             $this->mMessages .= "OK\tRegistro Agregado exitosamente, relacionado con el Recibo {$recibo}, Operacion {$id} ({$moneda}|{$monto_original}|{$cheque}|{$tipoDeExposicion}|{$transaccion})\r\n";
             //Agregar recibo
             $xRec->setDatosDePago($moneda, $monto_original, $cheque, $tipoDeExposicion, $transaccion);
             $this->mMessages .= $xRec->getMessages(OUT_TXT);
         } else {
             if (MODO_DEBUG == true) {
                 $this->mMessages .= $q->getMessages(OUT_TXT);
             }
         }
     } else {
         $this->mMessages .= "ERROR\tSe produjo un error al Agregar la Operacion de Tesoreria({$cajero}, {$CodigoDeCaja})\r\n";
     }
     return $sucess;
 }
$monto = isset($DPDATA["idmonto"]) ? $DPDATA["idmonto"] : 0;
$numero_de_cuenta = isset($DPDATA["idcuenta"]) ? $DPDATA["idcuenta"] : "";
$socio = isset($DPDATA["idsocio"]) ? $DPDATA["idsocio"] : "";
$documento = isset($DPDATA["iddocumento"]) ? $DPDATA["iddocumento"] : "";
$recibo = isset($DPDATA["idrecibo"]) ? $DPDATA["idrecibo"] : "";
$operacion = isset($DPDATA["idoperacion"]) ? $DPDATA["idoperacion"] : "";
$estado = isset($DPDATA["idestatus"]) ? $DPDATA["idestatus"] : "";
$beneficiario = isset($DPDATA["idbeneficiario"]) ? $DPDATA["idbeneficiario"] : "";
$descuento = isset($DPDATA["iddescuento"]) ? $DPDATA["iddescuento"] : 0;
$fecha = isset($DPDATA["idfecha-0"]) ? $xF->getFechaISO($DPDATA["idfecha-0"]) : fechasys();
$msg = isset($DPDATA[SYS_MSG]) ? $DPDATA[SYS_MSG] : "";
$cargar = isset($DPDATA["item"]) ? $DPDATA["item"] : "";
$origen = isset($DPDATA["origen"]) ? $DPDATA["origen"] : SYS_NINGUNO;
if ($monto > 0) {
    //
    $xBanc = new cCuentaBancaria($numero_de_cuenta);
    $r = $xBanc->addOperacion($operacion, $documento, $recibo, $beneficiario, $monto, $socio, $fecha, $estado, false, $descuento);
    if ($r == false) {
        $strGet = "";
        $aviso = "";
        foreach ($DPDATA as $llave => $valor) {
            $valor = $llave == "idmonto" ? 0 : $valor;
            $strGet .= "{$llave}={$valor}&";
        }
        $aviso = "El Registro no se Guardo, Revise sus Valores, EL Monto se lleva a Cero";
        $strGet .= "msg=" . htmlentities($aviso);
        echo $xHP->getJsBack($aviso, $strGet);
    } else {
        $msg = "El Registro se ha Guardado Exitosamente";
    }
}
function jsaGetCheque2($cheque, $cuenta)
{
    $xCta = new cCuentaBancaria($cuenta);
    return $xCta->getMontoCheque($cheque);
}
function getCuentaContablePorBanco($numero_de_cuenta)
{
    $xBc = new cCuentaBancaria($numero_de_cuenta);
    $xBc->init();
    return $xBc->getCuentaContable();
}