function jsaSetCreditosADespedidos($credito, $fecha, $observaciones)
{
    $msg = "";
    $xCred = new cCredito($credito);
    $xCred->init();
    $xdat = new cFecha(0);
    $fecha = $xdat->getFechaISO($fecha);
    $xCred->init();
    $socio = $xCred->getClaveDePersona();
    $xSoc = new cSocio($socio);
    $xSoc->init();
    $xCred->setCambioProducto(CREDITO_PRODUCTO_DESTINO_DESCARTADOS);
    $xCred->setResetPersonaAsociada($fecha, $observaciones);
    //Agregar operacion de desvinculacion
    $xRe = new cReciboDeOperacion(RECIBOS_TIPO_ESTADISTICO, false, DEFAULT_RECIBO);
    $xRe->init();
    $xRe->setNuevoMvto($fecha, $xCred->getSaldoActual(), OPERACION_CLAVE_DESVINCULACION, $xCred->getPeriodoActual(), "", 1, false, $socio, $credito, $fecha);
    $xRe->setFinalizarRecibo();
    $msg .= $xSoc->getMessages(OUT_TXT);
    $msg .= $xCred->getMessages(OUT_TXT);
    $msg .= $xRe->getMessages(OUT_TXT);
    $xRN = new cReglaDeNegocio();
    $xEmp = new cEmpresas($xCred->getClaveDeEmpresa());
    $xEmp->init();
    $oP = $xCred->getOPersona();
    $xRN->setVariables(array("nombre_de_persona" => $oP->getNombreCompleto(), "mensaje" => $observaciones, "saldo_del_credito" => $xCred->getSaldoActual(), "nombre_de_la_empresa" => $xEmp->getNombreCorto()));
    $xRN->setExecuteActions($xRN->reglas()->RN_NOMINA_AL_DESPEDIR);
    $xF = new cFileLog();
    $xF->setWrite($msg);
    $xF->setClose();
    return $xF->getLinkDownload("Descarga de Log");
}
 /**
  * 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;
 }
function jsaVincularEmpresa($credito, $observaciones, $empresa)
{
    $msg = "";
    $xCred = new cCredito($credito);
    $xCred->init();
    $xdat = new cFecha(0);
    $fecha = $xdat->get();
    // FechaISO($fecha);
    $xCred->init();
    $socio = $xCred->getClaveDePersona();
    $xSoc = new cSocio($socio);
    $xSoc->init();
    $xCred->setCambioProducto(CREDITO_PRODUCTO_NOMINA);
    $xCred->setResetPersonaAsociada($fecha, $observaciones, $empresa);
    //Agregar operacion de desvinculacion
    $xRe = new cReciboDeOperacion(RECIBOS_TIPO_ESTADISTICO, false, DEFAULT_RECIBO);
    $xRe->init();
    $xRe->setNuevoMvto($fecha, $xCred->getSaldoActual(), OPERACION_CLAVE_VINCULACION, $xCred->getPeriodoActual(), "", 1, false, $socio, $credito, $fecha);
    $xRe->setFinalizarRecibo();
    $msg .= $xSoc->getMessages(OUT_TXT);
    $msg .= $xCred->getMessages(OUT_TXT);
    $msg .= $xRe->getMessages(OUT_TXT);
    $xF = new cFileLog();
    $xF->setWrite($msg);
    $xF->setClose();
    return $xF->getLinkDownload("Descarga de Log");
}
 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;
 }
         }
         if ($montocomision > 0) {
             $xRec = new cReciboDeOperacion();
             $idrecibo = $xRec->setNuevoRecibo($idsocio, $idsolicitud, $fecha, 1, RECIBOS_TIPO_OINGRESOS, $observaciones, $cheque, TESORERIA_COBRO_DESCTO, $recibo_fiscal);
             if (setNoMenorQueCero($idrecibo) > 0) {
                 $montocomision = round($montocomision * (1 / (1 + TASA_IVA)), 2);
                 $montoivacomi = round($montocomision * TASA_IVA, 2);
                 $xRec->setNuevoMvto($fecha, $montocomision, OPERACION_CLAVE_COMISION_APERTURA, 1, $observaciones, 1, TM_CARGO, $idsocio);
                 $xRec->setNuevoMvto($fecha, $montoivacomi, OPERACION_CLAVE_PAGO_IVA_OTROS, 1, $observaciones, 1, TM_CARGO, $idsocio);
                 //$xRec->addMvtoContableByTipoDePago($montocomision, TM_CARGO);
                 if ($xRec->setFinalizarRecibo(true) == true) {
                     $xFRM->OButton("TR.Recibo de Comisiones", "jsImprimirRecibo()", "imprimir");
                     $xFRM->addHTML($xRec->getJsPrint(true));
                     $xRec->setFinalizarTesoreria(array("cuenta" => $cuenta_cheques, "cheque" => $cheque));
                 }
                 $msg .= MODO_DEBUG == true ? $xRec->getMessages() : "";
             }
         }
         //Buttons
         $xFRM->OButton("TR.VER/IMPRIMIR PAGARE DE CREDITO", "printpagare();", "imprimir", 'id1');
         $xFRM->OButton("TR.VER/IMPRIMIR CONTRATO DE CREDITO", "contratocredito();", "imprimir", 'id2');
         $xFRM->OButton("TR.IMPRIMIR MANDATO", "printmandato()", "imprimir", "id3");
     } else {
         $xFRM->addAvisoRegistroError();
     }
     if (MODO_DEBUG == true) {
         $msg .= $xCred->getMessages();
         $xFRM->addAviso($msg);
     }
 } else {
     //ESTADO NO APPLICABLE
function Common_c5fe0408555dbf392918c6f77a4d01b2($params)
{
    $stdDiv = STD_LITERAL_DIVISOR;
    $DPar = explode($stdDiv, $params, 10);
    //mensajes
    //grupo
    $xTip = new cTipos();
    //
    $socio = $xTip->cInt($DPar[0]);
    $credito = $xTip->cInt($DPar[1]);
    $letra = $xTip->cInt($DPar[2]);
    $capital = $xTip->cFloat($DPar[3]);
    $interes = $xTip->cFloat($DPar[4]);
    $iva = $xTip->cFloat($DPar[5]);
    $ahorro = $xTip->cFloat($DPar[6]);
    $nota = $xTip->cChar($DPar[7]);
    $numero = $xTip->cInt($DPar[8]);
    $limit = $xTip->cInt($DPar[9]);
    $msg = "====================== MOVIMIENTO {$numero} DE {$limit} ====================\r\n";
    //Datos del Credito
    $Cred = new cCredito($credito, $socio);
    $Cred->initCredito();
    $DCred = $Cred->getDatosDeCredito();
    $saldo = $DCred["saldo_actual"] - $capital;
    $contrato_captacion = $DCred["contrato_corriente_relacionado"];
    $grupo = $DCred["grupo_asociado"];
    $msg .= $Cred->getMessages();
    if (isset($_SESSION["recibo_en_proceso"])) {
        $recibo = $_SESSION["recibo_en_proceso"];
        $fecha = fechasys();
        $_SESSION["total_recibo_en_proceso"] += $capital + $interes + $ahorro;
        $xRec = new cReciboDeOperacion(200, false, $recibo);
        $xRec->setNumeroDeRecibo($recibo, true);
        $xRec->setNumeroDeRecibo($recibo, true);
        $DRec = $xRec->getDatosInArray();
        $cheque = $DRec["cheque_afectador"];
        $tipopago = $DRec["tipo_pago"];
        $recibofiscal = $DRec["recibo_fiscal"];
        $xRec->setGenerarPoliza();
        $msg .= "{$socio}\t{$credito}\tCREDITO\tMovimiento {$i} del Credito {$credito} del Socio {$socio} con Saldo {$saldo}\r\n ";
        $msg .= "{$socio}\t{$credito}\tMONTOS\tCapital: {$capital} || Interes: {$interes} || Ahorro: {$ahorro} \r\n";
        //Agregando Capital
        if ($capital > 0) {
            $xRec->setNuevoMvto($fecha, $capital, 120, $letra, $nota . ";SDO:" . $saldo, 1, TM_ABONO, $socio, $credito);
            $arrCred = array("saldo_actual" => $saldo);
            $Cred->setUpdate($arrCred);
        }
        //Agregando Interes
        if ($interes > 0) {
            $xRec->setNuevoMvto($fecha, $interes, 140, $letra, $nota, 1, TM_ABONO, $socio, $credito);
        }
        //agregando el IVA
        if ($interes > 0) {
            $xRec->setNuevoMvto($fecha, $iva, 151, $letra, $nota, 1, TM_ABONO, $socio, $credito);
        }
        //Agregando Ahorro
        if ($ahorro > 0) {
            $xC = new cCuentaALaVista($contrato_captacion);
            if (!isset($contrato_captacion) or $contrato_captacion == CTA_GLOBAL_CORRIENTE or $contrato_captacion == 0) {
                $contrato_captacion = $xC->setNuevaCuenta(2, 1, $socio, "CUENTA_AUTOMATICA", $credito);
                $msg .= "{$socio}\t{$credito}\tNuevaCta\tse dio de alta a la cuenta {$contrato_captacion}\r\n";
                //2011-nov-30 se agrego la actualizacion del contrato relacionado
                $arrCred = array("contrato_corriente_relacionado" => $contrato_captacion);
                $Cred->setUpdate($arrCred);
            }
            $xC = new cCuentaALaVista($contrato_captacion);
            $xC->setSocioTitular($socio);
            $xC->setReciboDeOperacion($recibo);
            $xC->setDeposito($ahorro, $cheque, $tipopago, $recibofiscal, $nota, $grupo, $fecha, $recibo);
            $msg .= $xC->getMessages("txt");
            $msg .= "{$socio}\t{$credito}\tAhorro\t El Saldo Quedo en " . $xC->getNuevoSaldo() . "\r\n";
        }
        $msg .= "{$socio}\t{$credito}\tObservacion\t {$nota}\r\n";
        $msg .= $xRec->getMessages("txt");
    } else {
        $msg .= "NO_SE_HA_DEFINIDO_UN_RECIBO";
    }
    $xLog = new cFileLog("log_de_recibo_" . $recibo);
    $xLog->setWrite($msg);
    $xLog->setClose();
    $MsgEnd = "";
    if ($numero == $limit) {
        $xRec->setForceUpdateSaldos();
        $xRec->setFinalizarRecibo(true);
        //$MsgEnd		.= "**** proceso terminado ****";
    }
    //retorna el id del control de origen para neutralizar
    return "-{$numero}";
}
 //obtener recibo de la garantia
 if ($solo_simular == 0) {
     $messages .= "Efectuar Retiro de la Socia {$codigo_rep} <br /> ";
     $sqlSumGtiaLiquida = "SELECT\n\t\t\t\t\t\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\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`miembro`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`docto_afectado`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUM( (`eacp_config_bases_de_integracion_miembros`.`afectacion` *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`afectacion_real`) ) AS 'monto'\n\t\t\t\t\t\t\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t`operaciones_mvtos` `operaciones_mvtos`\n\t\t\t\t\t\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\t\t\t\t`eacp_config_bases_de_integracion_miembros`\n\t\t\t\t\t\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\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`miembro`\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(`eacp_config_bases_de_integracion_miembros`.`codigo_de_base` =2500)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(`operaciones_mvtos`.`docto_afectado` = {$credito})\n\t\t\t\t\t\t\t\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`codigo_de_base`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`docto_afectado` ";
     $DG = obten_filas($sqlSumGtiaLiquida);
     $GDocto = $DG["docto_afectado"];
     $monto = $DG["monto"];
     $GDate = date("Y-m-d");
     //=============================retirar de garantia Liquida
     if ($monto > 0) {
         $xr = new cReciboDeOperacion(17);
         $xr->setNuevorecibo($codigo_rep, $GDocto, $GDate, 1, 17, "GENERADO_AUTOMATICAMENTE_POR_{$iduser}", "NA", "ninguno", "NA", $grupo);
         $xr->setNuevoMvto($GDate, $monto, 353, 1, "GENERADO_AUTOMATICAMENTE_POR_{$iduser}", 1, TM_CARGO);
         $xr->setFinalizarRecibo();
         //Mensages
         $messages .= $xr->getMessages() . "<br />";
     }
     //===============================Retirar el Ahorro
     //Buscar Ahorro
     $xCR = new cCuentaALaVista("50" . $codigo_rep . "01");
     $exist = $xCR->setContarCuentaBySocio($codigo_rep, 50);
     //Si el Ahorro exisre proseguir en el retiro
     if ($exist >= 1) {
         $messages .= "Efectuar Retiro de Ahorro de la Socia {$codigo_rep} <br /> ";
         $sqlSCta = "SELECT\n\t\t\t\t\t\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\t\t\t\tFROM\n\t\t\t\t\t\t\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\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(`captacion_cuentas`.`numero_socio` = {$codigo_rep})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(`captacion_cuentas`.`tipo_subproducto` = 50)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tLIMIT 0,1";
         $RDG = obten_filas($sqlSCta);
         $RCta = $RDG["numero_cuenta"];
         $RMonto = $RDG["saldo_cuenta"];
         $xNC = new cCuentaALaVista($RCta);
         $xNC->setSocioTitular($codigo_rep);
         $xNC->setRetiro($RMonto, "NA", "ninguno", "NA", "MVTO_AUTOMATICO_POR_{$iduser}", $grupo);
 function setCambiarRelacionados($NuevoCredito = false, $NuevaPersona = false)
 {
     $xRec = new cReciboDeOperacion(RECIBOS_TIPO_PLAN_DE_PAGO, true, $this->mNumeroDePlan);
     $xRec->setCambiarRelacionados($NuevoCredito, $NuevaPersona, true);
     $this->mMessages .= $xRec->getMessages(OUT_TXT);
 }
             $io++;
             //fin del Agregado
         }
         $i++;
     }
     //Ejecuta la Consulta de Actualizacion
     if ($strWH != "") {
         $sqlUS = "UPDATE operaciones_mvtos\n\t\t\t\t\t\t\tSET recibo_afectado = {$RecHuerf}\n\t\t\t\t\t\t\tWHERE FIND_IN_SET(recibo_afectado, \"{$strWH}\" ) ";
         if ($afectar == "si") {
             $a = my_query($sqlUS);
         }
         $msg .= $a["info"];
     }
     if ($afectar == "si") {
         $cRec->setFinalizarRecibo(true);
         $msg .= $cRec->getMessages();
     }
     break;
 case 857:
     $ForzarCorreccion = strtoupper($id);
     $Forzar = $ForzarCorreccion == "SI" ? true : false;
     $msg .= "================== REESTRUCTURANDO SALDOS DE INTERESES EN CREDITOS\r\n ";
     $msg .= "================== USUARIO: {$oficial} \r\n ";
     //Actualiza los Intereses Devengados y Pagados, asi  como los no pagados en base a los movimientos que tengan.
     //lleva a cero los registros
     $xCUtils = new cUtileriasParaCreditos();
     $msg .= $xCUtils->setAcumularIntereses($Forzar);
     break;
 case 858:
     $validar = strtolower($id);
     $sqlSocs = "SELECT\n\t\t\t\t\t\t\t\t`socios_general`.*\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t`socios_general` `socios_general`\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t(`socios_general`.`estatusactual` !=20) ";
 function setGenerarPlanDePagos()
 {
     $msg = "";
     $cRec = new cReciboDeOperacion(10);
     $xRec = $cRec->setNuevoRecibo(DEFAULT_SOCIO, DEFAULT_CREDITO, fechasys(), 1, 10, "RECIBO_DE_AJUSTES_DE_PLAN_DE_PAGOS");
     $msg .= "\t\tRECIBO\tEl Recibo de Operacion es {$xRec}\r\n";
     $cRec->setNumeroDeRecibo($xRec, true);
     //Concilia Creditos sin Planes de Pago a SISBANCS
     $sql = "SELECT * FROM creditos_solicitud WHERE (SELECT\n\t\t\t\t\t\t\t\tCOUNT(credito) FROM sisbancs_suma_amorizaciones\n\t\t\t\t\t\t\t\tWHERE credito = creditos_solicitud.numero_solicitud) = 0\n\t\t\t\t\t\t\t\tAND saldo_actual > 0\n\t\t\t\t\t\t\t\tAND estatus_actual != 50 ";
     $rs = getRecordset($sql);
     while ($rw = mysql_fetch_array($rs)) {
         $socio = $rw["numero_socio"];
         $credito = $rw["numero_solicitud"];
         $saldo_actual = $rw["saldo_actual"];
         $letra = $rw["ultimo_periodo_afectado"] + 1;
         $fecha = sumardias($rw["fecha_ultimo_mvto"], $rw["periocidad_de_pago"]);
         $monto = $saldo_actual;
         $msg .= "{$socio}\t{$credito}\tAGREGAR\tUnica Letra por el SALDO de {$saldo_actual} \r\n";
         $sqlIS = "INSERT INTO sisbancs_amortizaciones(socio, credito, parcialidad, fecha_de_vencimiento,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsaldo_vigente, saldo_vencido, interes_vigente, interes_vencido, saldo_interes_vencido, interes_moratorio,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\testatus, iva_interes_normal, iva_interes_moratorio)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tVALUES ({$socio}, {$credito}, {$letra}, '{$fecha}',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{$saldo_actual}, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t1, 0, 0)";
         $cRec->setNuevoMvto($fecha, $monto, 410, $letra, "", 1, false, $socio, $credito);
         $x = my_query($sqlIS);
         if ($x["stat"] == false) {
             $msg .= "{$socio}\t{$credito}\tERROR\t   \r\n";
         }
     }
     $msg .= $cRec->getMessages("txt");
     return $msg;
 }
        $xCred->setAbonoCapital(2200, 1, DEFAULT_CHEQUE, TESORERIA_COBRO_EFECTIVO, DEFAULT_RECIBO_FISCAL, "", DEFAULT_GRUPO, "2014-02-20");
        //if($xCred->getORecibo() != null){ $xCred->getORecibo()->setFinalizarRecibo(true); }
        $xCred->setAbonoCapital(4200, 1, DEFAULT_CHEQUE, TESORERIA_COBRO_EFECTIVO, DEFAULT_RECIBO_FISCAL, "", DEFAULT_GRUPO, "2014-02-25");
        $idrec = $xCred->setAbonoCapital(4200, 1, DEFAULT_CHEQUE, TESORERIA_COBRO_EFECTIVO, DEFAULT_RECIBO_FISCAL, "", DEFAULT_GRUPO, "2014-02-28");
        //if($xCred->getORecibo() != null){ $xCred->getORecibo()->setFinalizarRecibo(true); }
        $xRec->init();
        $xRec->setFinalizarRecibo(true);
        $xRec->setMoneda("USD");
        $xRec->setUnidadesOriginales(100);
        $x2Rec = new cReciboDeOperacion(RECIBOS_TIPO_PAGO_APORTACIONES, true);
        $x2Rec->setNuevoRecibo($xCred->getClaveDePersona(), DEFAULT_CREDITO, "2013-01-01", 1);
        $x2Rec->setNuevoMvto("2013-01-01", 15000, OPERACION_CLAVE_APORT_CORRIENTE, 1, "Prueba de AML");
        $x2Rec->setNuevoMvto("2013-01-02", 1500, OPERACION_CLAVE_APORT_FONDO, 1, "Prueba de AML 2");
        $x2Rec->setNuevoMvto("2013-01-03", 45000, OPERACION_CLAVE_APORT_VOLUNTARIA, 1, "Prueba de AML 3");
        $x2Rec->setFinalizarRecibo(true);
        $xHFrm->addHElem("<p class='aviso'>" . $x2Rec->getMessages(OUT_HTML) . "</p>");
        $xAML->setGuardarPerfilTransaccional(101, "MX", 10000, 10, "");
        $xAML->setGuardarPerfilTransaccional(201, "MX", 20000, 2, "");
        $xAML->setGuardarPerfilTransaccional(301, "MX", 30000, 3, "");
        $xAML->setGuardarPerfilTransaccional(401, "MX", 40000, 4, "");
    }
    $xHFrm->addHElem("<p class='aviso'>" . $xCred->getMessages(OUT_HTML) . "</p>");
}
//$xHFrm->addHElem( $txt );
//$xHFrm->addHElem( $xF->show(true) );
//$xHFrm->addHElem( "<p class='aviso'>La $miFecha, Dias del Mes==". $xF->getDiasDelMes() ."</p>");
//$xAML->getSimilaresPorNombre("jose leonides", "cocom");
//$xAML->getSimilaresPorNombre("alberto", "chi");
$miFecha = "2014-03-01";
//$xAML->getSimilaresPorNombre();
//$acum	= $xAML->getOAcumuladoDeOperaciones("2013-12-30", $miFecha, SYS_TODAS);
$empresa = parametro("empresa", SYS_TODAS);
$out = parametro("out", SYS_DEFAULT);
$idrecibo = parametro("cNumeroRecibo", 0, MQL_INT);
$idrecibo = parametro("recibo", $idrecibo, MQL_INT);
$idrecibo = parametro("idrecibo", $idrecibo, MQL_INT);
$idrecibo = parametro("clave", $idrecibo, MQL_INT);
$FechaInicial = parametro("on", false);
$FechaInicial = parametro("fecha-0", $FechaInicial);
$FechaInicial = $FechaInicial == false ? FECHA_INICIO_OPERACIONES_SISTEMA : $xF->getFechaISO($FechaInicial);
$FechaFinal = parametro("off", false);
$FechaFinal = parametro("fecha-1", $FechaFinal);
$FechaFinal = $FechaFinal == false ? fechasys() : $xF->getFechaISO($FechaFinal);
$jsEvent = $out != OUT_EXCEL ? "initComponents()" : "";
$senders = getEmails($_REQUEST);
$sql = "SELECT * FROM `operaciones_archivo_de_facturas` WHERE `clave_de_recibo` = ";
$titulo = "";
$archivo = "";
$xRec = new cReciboDeOperacion(false, false, $idrecibo);
$xRec->init();
$archivo = $xRec->getFactura(true);
if ($archivo == null) {
    header("Content-type: text/plain");
    echo $xRec->getMessages(OUT_TXT);
} else {
    $nombrearchivo = "Factura_recibo_num_" . $xRec->getCodigoDeRecibo();
    header("Content-type: application/pdf");
    //ISO-8859-1
    header("Content-Disposition: attachment; filename=\"{$nombrearchivo}.pdf\"; ");
    //readfile($xRec->OFactura()->getComprobante() . ".pdf");
    echo $archivo;
}
 function setEliminarInteresesDeCreditosPagados()
 {
     $msg = "";
     //==============================================================================
     $fecha = fechasys();
     $cheque = DEFAULT_CHEQUE;
     $recibo_fiscal = "NA";
     $observaciones = "GENERADO_EN_LA_UTILERIA_883";
     //==============================================================================
     $CRecibo = new cReciboDeOperacion(1, false);
     //Set a Mvto Contable
     //$CRecibo->setGenerarPoliza();
     //$CRecibo->setGenerarTesoreria();
     $recibo = $CRecibo->setNuevoRecibo(DEFAULT_SOCIO, DEFAULT_CREDITO, $fecha, 1, 1, $observaciones, $cheque, "ninguno", $recibo_fiscal, DEFAULT_GRUPO);
     $CRecibo->setNumeroDeRecibo($recibo);
     //
     $sql = "SELECT\n\t\t\t\t*\n\t\t\tFROM\n\t\t\t\t`creditos_solicitud` `creditos_solicitud`\n\t\t\tWHERE\n\t\t\t\t(`creditos_solicitud`.`saldo_actual` <= 0) AND\n\t\t\t\t(\n\t\t\t\t\t(`creditos_solicitud`.`interes_moratorio_devengado` != 0)\n\t\t\tOR\n\t\t\t\t\t(`creditos_solicitud`.`interes_normal_devengado` != 0)\n\t\t\t\t)";
     $rs = mysql_query($sql, cnnGeneral());
     while ($rw = mysql_fetch_array($rs)) {
         $socio = $rw["numero_socio"];
         $solicitud = $rw["numero_solicitud"];
         $OpNormal = 420;
         //420;
         $OpMora = 421;
         //431;
         $MontoM = 0;
         $MontoN = 0;
         //terminado: oct/2011
         $interesDN = $rw["interes_normal_devengado"];
         $interesDM = $rw["interes_moratorio_devengado"];
         $interesPN = $rw["interes_normal_pagado"];
         $interesPM = $rw["interes_moratorio_pagado"];
         if ($interesDN > $interesPN) {
             $OpNormal = 140;
             $MontoN = $interesDN - $interesPN;
         } else {
             $MontoN = $interesPN - $interesDN;
         }
         if ($interesDM > $interesPM) {
             $OpNormal = 141;
             $MontoM = $interesDM - $interesPM;
         } else {
             $MontoM = $interesPM - $interesDM;
         }
         if ($MontoN > 0) {
             $CRecibo->setNuevoMvto($fecha, $MontoN, $OpNormal, 1, " Ajuste por {$MontoN} de {$interesDN} | {$interesPN} ", 1, TM_CARGO, $socio, $solicitud);
             $msg .= "{$socio}\t{$solicitud}\tINTERES_NORMAL_DEV\tAjuste por {$MontoN} de {$interesDN} | {$interesPN} \r\n";
         } else {
         }
         if ($MontoM > 0) {
             $CRecibo->setNuevoMvto($fecha, $MontoN, $OpMora, 1, "Ajuste por {$MontoM} de {$interesDM} | {$interesPM}", 1, TM_CARGO, $socio, $solicitud);
             $msg .= "{$socio}\t{$solicitud}\tINTERES_MOR_DEV\tAjuste por {$MontoM} {$interesDM} | {$interesPM} \r\n";
         } else {
         }
     }
     $msg .= $CRecibo->getMessages("txt");
     $xCUtils = new cUtileriasParaCreditos();
     $msg .= $xCUtils->setAcumularIntereses(true);
     return $msg;
 }
 function getGenerarBaseGravadaMensualIDE($fecha = false)
 {
     if ($fecha == false) {
         $fecha = fechasys();
     }
     $msg = "";
     $msg .= "============== GENERANDO EL MOVIMIENTO DE BASE GRAVABLE DEL IDE\t==========\r\n";
     $msg .= "============== FECHA: {$fecha}                                    ==========\r\n";
     $xF = new cFecha(0, $fecha);
     $dia_inicial = $xF->getDiaInicial();
     $dia_final = $xF->getDiaFinal();
     $sqlGravados = "SELECT\n\t\t\t\t\t\t\t\t`operaciones_mvtos`.`socio_afectado`,\n\t\t\t\t\t\t\t\tSUM(`operaciones_mvtos`.`afectacion_real`) AS 'monto'\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t`operaciones_mvtos` `operaciones_mvtos`\n\t\t\t\t\t\t\t\t\tINNER JOIN `operaciones_recibos` `operaciones_recibos`\n\t\t\t\t\t\t\t\t\tON `operaciones_mvtos`.`recibo_afectado` = `operaciones_recibos`.\n\t\t\t\t\t\t\t\t\t`idoperaciones_recibos`\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`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\tWHERE\n\t\t\t\t\t\t\t(`operaciones_mvtos`.`fecha_afectacion` >='{$dia_inicial}')\n\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t(`operaciones_mvtos`.`fecha_afectacion` <='{$dia_final}')\n\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t(`eacp_config_bases_de_integracion_miembros`.`codigo_de_base` = 2600)\n\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t(`operaciones_recibos`.`tipo_pago` = 'efectivo' )\n\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`codigo_de_base`,\n\t\t\t\t\t\t\t`operaciones_mvtos`.`socio_afectado`,\n\t\t\t\t\t\t\t`operaciones_recibos`.`tipo_pago` ";
     //$msg		.= "$sqlGravados\r\n";
     //Agregar Recibo
     $xRec = new cReciboDeOperacion(10);
     //$xRec->setGenerarPoliza();
     $xRec->setForceUpdateSaldos();
     $idrecibo = $xRec->setNuevoRecibo(1, 1, $fecha, 1, 10, "BASE_REMANENTE_GRAVABLE_AL_IDE", "NA", "ninguno", "NA", DEFAULT_GRUPO);
     $xRec->setNumeroDeRecibo($idrecibo);
     $rs = getRecordset($sqlGravados);
     while ($rw = mysql_fetch_array($rs)) {
         $socio = $rw["socio_afectado"];
         $excencion = EXCENCION_IDE;
         $base_gravada = setNoMenorQueCero($rw["monto"] - $excencion);
         if ($base_gravada > 0) {
             $xRec->setNuevoMvto($dia_final, $base_gravada, 9302, 1, "", 1, false, $socio, 1);
         }
     }
     $xRec->setFinalizarRecibo();
     $msg .= $xRec->getMessages("txt");
     return $msg;
 }
    $xRec = new cReciboDeOperacion(false, true, $cargar);
    $xRec->init();
    $monto = $xRec->getTotal();
    //$documento	= $xRec->getCodigoDeDocumento();
    $recibo = $cargar;
    $fecha = $xRec->getFechaDeRecibo();
    //$operacion	= BANCOS_OPERACION_DEPOSITO;
    $cheque = $xRec->getNumeroDeCheque();
    $observaciones = $xRec->getObservaciones();
    //$xBanc		= new cCuentaBancaria("");
    $xBanc = $xRec->getBancoPorOperacion();
    if ($xBanc != null) {
        $banco = $xBanc->getClaveDeBanco();
        $CuentaBancaria = $xBanc->getNumeroDeCuenta();
    }
    $msg .= $xRec->getMessages(OUT_TXT);
}
//$jxc = new TinyAjax();
//$jxc ->exportFunction('datos_del_pago', array('idsolicitud', 'idparcialidad'), "#iddatos_pago");
//$jxc ->process();
echo $xHP->getHeader();
$jsb = new jsBasicForm("tesoreria_operaciones", iDE_OPERACION);
$jsb->setIncludeOnlyCommons();
//$jxc ->drawJavaScript(false, true);
echo $xHP->setBodyinit();
$xFRM = new cHForm("tesoreria_operaciones", "./tesoreria_operaciones.frm.php");
$xBtn = new cHButton();
$xTxt = new cHText();
$xTest = new cCaja();
//$xTest->addOperacion($recibo, )
$xHCob = new cHCobros();
    $comopago = isset($_POST["ctipo_pago"]) ? $xT->cChar($_POST["ctipo_pago"]) : DEFAULT_TIPO_PAGO;
    $foliofiscal = isset($_POST["foliofiscal"]) ? $xT->cChar($_POST["foliofiscal"]) : DEFAULT_RECIBO_FISCAL;
    if (setNoMenorQueCero($idsocio) <= 0) {
        //header("location: frmcobrodemultas.php?msg=FALTAN_DATOS");
        $xFRM->addAvisoRegistroError();
    } else {
        if (setNoMenorQueCero($monto) <= 0) {
            $xFRM->addAvisoRegistroError();
        } else {
            $iddocto = DEFAULT_CREDITO;
            $xRec = new cReciboDeOperacion(RECIBOS_TIPO_TERCEROS, false, false);
            $xRec->setGenerarBancos();
            $xRec->setGenerarPoliza();
            $xRec->setGenerarTesoreria();
            $idrecibo = $xRec->setNuevoRecibo($idsocio, $iddocto, $fecha, 1, RECIBOS_TIPO_TERCEROS, $observaciones, $cheque, $comopago, $foliofiscal);
            $xRec->setNuevoMvto($fecha, $monto, OPERACION_CLAVE_MULTAS, 1, $observaciones, 1, TM_ABONO, $idsocio);
            $xRec->addMvtoContableByTipoDePago($monto, TM_CARGO);
            $xRec->setFinalizarRecibo(true);
            $xFRM->addHTML($xRec->getFichaSocio());
            $xFRM->addHTML($xRec->getFicha());
            $xFRM->addPrintRecibo();
            $xFRM->addHTML($xRec->getJsPrint(true));
            $xFRM->addAvisoRegistroOK();
            if (MODO_DEBUG == true) {
                $xFRM->addAviso($xRec->getMessages());
            }
        }
    }
}
echo $xFRM->get();
$xHP->fin();
    } else {
        $msg .= "\tEl Estatus Es Aceptable\r\n";
        $sucess = true;
    }
} else {
    $msg .= "\tLa Planeacion de un Credito con menos de " . DIAS_ESPERA_CREDITO . " Dias no Existe\r\n";
    $sucess = true;
}
if ($sucess == true) {
    $PlanAnterior = $xP["idoperaciones_recibos"];
    //Eliminar la Planeacion Anterior
    if (isset($PlanAnterior)) {
        $DRec = new cReciboDeOperacion(14, false, $PlanAnterior);
        $DRec->setNuevoRecibo($PlanAnterior);
        $DRec->setRevertir();
        $msg .= $DRec->getMessages();
    }
    //--------------------------------------- DATOS DEL RECIBO -----------------------------------------------
    // DATOS GENERALES
    $fechaop = fechasys();
    // fecha de la Operacion y el recibo.
    /* *******************************************************************************************************
                                   Agrega el Recibo..- VALIDO SOLO PARA PLANEACION DE CREDITO
       **************************************************************************************************** */
    $msqlf = "idoperaciones_recibos, fecha_operacion, numero_socio, docto_afectado, tipo_docto, total_operacion, observacion_recibo, tipo_pago, grupo_asociado, idusuario";
    $msqlv = "{$idrecibo}, '{$fechaop}', {$presidenta}, 1, 14, 0, 'PLANEACION DE CREDITO HECHA POR {$oficial}', 'ninguno', {$idgrupo}, {$iduser}";
    $sqlrec = "INSERT INTO operaciones_recibos({$msqlf}) VALUES ({$msqlv})";
    // --------------------------------------- VALOR SQL DEL MVTO.-------------------------------------------------------
    // VALORES FIJOS
    $smf = "idoperaciones_mvtos, fecha_operacion, fecha_afectacion, recibo_afectado, socio_afectado, docto_afectado, ";
    $smf .= "tipo_operacion, afectacion_real, afectacion_cobranza, afectacion_contable, ";
                }
            }
            //Imprime la Ficha del socio
            $xRec = new cReciboDeOperacion();
            $xRec->setNumeroDeRecibo($recibo, true);
            $xFRM->addHTML($xRec->getFichaSocio());
            $xFRM->addHTML($xRec->getFicha(true));
            $xFRM->addHTML($xRec->getJsPrint(true));
            if (CAPTACION_IMPUESTOS_A_DEPOSITOS_ACTIVO == true) {
                if ($ReciboIDE != 0) {
                    $xFRM->addToolbar($xBtn->getBasic("TR. Imprimir recibo de impuestos", "jsPrintIDE()", "imprimir", "idrec-ide", false));
                }
            }
            if (MODO_DEBUG == true) {
                $msg .= $xCta->getMessages();
                $msg .= $xRec->getMessages();
                $xFL = new cFileLog(false, true);
                $xFL->setWrite($msg);
                $xFL->setClose();
                $xFRM->addToolbar($xFL->getLinkDownload("TR.Archivo de sucesos", ""));
            }
            $xFRM->addToolbar($xBtn->getBasic("TR. Imprimir recibo de deposito", "jsImprimirRecibo()", "imprimir", "idrec-dep", false));
        } else {
            $msg .= "ERROR\tLA CUENTA NO ES OPERATIVA EN LA FECHA {$Fecha}\r\n";
        }
        $xFRM->addToolbar($xBtn->getIrAlInicio(true));
    }
    $xFRM->addAviso($msg, "idmsg", true);
}
echo $xFRM->get();
?>
function jsaAjustarTotal($recibo, $nuevoTotal, $nuevaletra)
{
    $xRec = new cReciboDeOperacion(false, true, $recibo);
    $xRec->init();
    $xRec->setGenerarBancos(false);
    $xRec->setGenerarPoliza(false);
    $xRec->setGenerarTesoreria(false);
    $xRec->setForceUpdateSaldos(true);
    $total = $xRec->getTotal();
    $QL = new MQL();
    $DMov = new cOperaciones_mvtos();
    $msg = "";
    if ($nuevoTotal < $total) {
        $NRec = new cReciboDeOperacion($xRec->getTipoDeRecibo(), false, $recibo);
        $idNRec = $NRec->setNuevoRecibo($xRec->getCodigoDeSocio(), $xRec->getCodigoDeDocumento(), $xRec->getFechaDeRecibo(), 0, $xRec->getTipoDeRecibo(), "AJUSTE DEL RECIBO {$recibo}");
        $NRec->setForceUpdateSaldos(true);
        $NRec->setGenerarBancos(false);
        $NRec->setGenerarPoliza(false);
        $NRec->setGenerarTesoreria(false);
        /*`idoperaciones_mvtos`,
        		`operaciones_mvtos`.`fecha_operacion`,
        		`operaciones_mvtos`.`fecha_afectacion`,
        		`operaciones_mvtos`.`recibo_afectado`,
        		`operaciones_mvtos`.`socio_afectado`,
        		`operaciones_mvtos`.`docto_afectado`,
        		`operaciones_mvtos`.`tipo_operacion`,
        		`operaciones_mvtos`.`afectacion_real`  */
        $sql = "SELECT\n\t\t\t`operaciones_mvtos`.*\n\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\tORDER BY\n\t\t\t`operaciones_mvtos`.`tipo_operacion` DESC ";
        $rs = $QL->getDataRecord($sql);
        $arrops = array();
        foreach ($rs as $rw) {
            $DMov->setData($rw);
            $NMonto = $DMov->afectacion_real()->v();
            $IDOpe = $DMov->idoperaciones_mvtos()->v();
            if ($nuevoTotal > 0) {
                $nuevoTotal -= $NMonto;
                $msg .= $IDOpe . " \t {$nuevoTotal} DE {$NMonto}\r\n";
                if ($nuevoTotal < 0) {
                    $msg .= "CUADRAR {$NMonto} DE {$nuevoTotal}  \r\n";
                    $nuevoTotal = $nuevoTotal * -1;
                    $dif = $NMonto - $nuevoTotal;
                    $sql = "UPDATE operaciones_mvtos \n\t\t\t\t\t\t\tSET afectacion_real={$dif}, afectacion_cobranza={$dif}, afectacion_contable={$dif},\n\t\t\t\t\t\t\tafectacion_estadistica={$dif} WHERE idoperaciones_mvtos={$IDOpe} ";
                    $x = my_query($sql);
                    $msg .= $x[SYS_INFO];
                    //agregar el movimiento al nuevo recibo con cargos
                    $NRec->setNuevoMvto($DMov->fecha_operacion()->v(), $nuevoTotal, $DMov->tipo_operacion()->v(), $DMov->periodo_socio()->v(), "SEPARACION DEL MVTO {$IDOpe} {$nuevoTotal}", $DMov->valor_afectacion()->v(), false, $DMov->socio_afectado()->v(), $DMov->docto_afectado()->v(), $DMov->fecha_afectacion()->v(), $DMov->fecha_vcto()->v(), $DMov->saldo_anterior()->v(), $DMov->saldo_actual()->v());
                    //listo
                    $nuevoTotal = 0;
                }
            } else {
                $arrops[$DMov->idoperaciones_mvtos()->v()] = $DMov->afectacion_real()->v();
            }
        }
        //$total	= $total  * -1;
        foreach ($arrops as $operacion => $monto) {
            $x = my_query("UPDATE operaciones_mvtos SET recibo_afectado={$idNRec} WHERE idoperaciones_mvtos={$operacion}");
            //100 - 50
            //$dif	= $monto - $total;
            $msg .= $x[SYS_INFO];
        }
        $NRec->setFinalizarRecibo(true);
        $msg .= $NRec->getMessages(OUT_TXT);
        $xRec->setFinalizarRecibo(true);
    } else {
        $msg .= "WARN\tNO SE MODIFICA NADA({$nuevoTotal}|{$total})\r\n";
    }
    $msg .= $xRec->getMessages(OUT_TXT);
    return $msg;
}