/**
  * Funcion que establece un estatus segun los criterios sobre politicas de creditos
  *
  * @param integer $recibo		//Numero numero de recibo al que se agregan los movimientos
  * @param date $fecha			//Fecha de Operacion
  * @param date $AppSucursal		//si Aplica para todas las sucursales
  * @return string $msg			//Mensages del LOG
  */
 function setEstatusDeCreditos($recibo, $fecha = false, $AppSucursal = true, $force_updates = false, $credito = false)
 {
     $fecha = $fecha == false ? fechasys() : $fecha;
     $cierre_sucursal = "";
     $credito = setNoMenorQueCero($credito);
     $ql = new MQL();
     $xLi = new cSQLListas();
     $xLog = new cCoreLog();
     if ($AppSucursal == true) {
         //$cierre_sucursal = "AND (`creditos_solicitud`.`sucursal`='" . getSucursal() . "')";
     }
     $xLog->add("==\t\t\tMODIFICACION_DE_ESTATUS_EN_CREDITOS\r\n", $xLog->DEVELOPER);
     if ($force_updates == true) {
         $xLog->add("==\tSe Actualizaran ESTADOS\r\n", $xLog->DEVELOPER);
     }
     $xRec = new cReciboDeOperacion(10);
     $tolerancia_en_pesos = TOLERANCIA_SALDOS;
     $ByCredito = $xLi->OFiltro()->CreditoPorClave($credito);
     $sqlH = "SELECT\n\t\t\t\t`historial_de_pagos`.* FROM\n\t\t\t`historial_de_pagos` `historial_de_pagos` INNER JOIN `creditos_solicitud` `creditos_solicitud` \n\t\t\t\tON `historial_de_pagos`.`credito` = `creditos_solicitud`.\n\t\t\t\t`numero_solicitud` WHERE (`creditos_solicitud`.`estatus_actual`!=50) {$cierre_sucursal} {$ByCredito} AND (`creditos_solicitud`.`saldo_actual`>{$tolerancia_en_pesos}) ORDER BY `creditos_solicitud`.`fecha_vencimiento` ";
     $rsPagos = $ql->getDataRecord($sqlH);
     $DPagos = array();
     foreach ($rsPagos as $rwpagos) {
         $id = $rwpagos["credito"];
         $DPagos[$id][] = $rwpagos;
     }
     $rsPagos = null;
     //setLog($sqlH);
     /*INICIALIZA EL RECIBO*/
     /** @since 2010-12-27 */
     $sql = $xLi->getInicialDeCreditos() . " WHERE (`creditos_solicitud`.`estatus_actual`!=50) {$cierre_sucursal} {$ByCredito} AND (`creditos_solicitud`.`saldo_actual`>{$tolerancia_en_pesos}) ORDER BY `creditos_solicitud`.`fecha_vencimiento` ";
     $rs = $ql->getDataRecord($sql);
     $xDD = new cCreditos_solicitud();
     foreach ($rs as $rw) {
         $xDD->setData($rw);
         $idcredito = $xDD->numero_solicitud()->v();
         $xCred = new cCredito($idcredito);
         $xCred->init($rw);
         $DPago = isset($DPagos[$idcredito]) ? $DPagos[$idcredito] : false;
         $xCred->setDetermineDatosDeEstatus($fecha, false, $force_updates, $DPago);
         $xLog->add($xCred->getMessages(), $xLog->DEVELOPER);
     }
     $DPagos = null;
     $this->mMessages .= $xLog->getMessages();
     return $xLog->getMessages();
 }
 /**
  * Retorna un Listado en Formato Pedido de los Creditos Actuales
  */
 function initDatosDeCredito()
 {
     $sql = "SELECT `creditos_solicitud`.* FROM `creditos_solicitud` WHERE (`creditos_solicitud`.`numero_socio` =" . $this->mPersona . ") ";
     $xCred = new cCreditos_solicitud();
     $mql = new MQL();
     $data = $mql->getDataRecord($sql);
     foreach ($data as $row) {
         $xCred->setData($row);
         if ($xCred->saldo_actual()->v() > TOLERANCIA_SALDOS) {
             $this->mTCredsActivos++;
             $this->mTCredsSaldo += $xCred->saldo_actual()->v();
             //$this->mAListaDeCreds[ $xCred->numero_solicitud()->v() ][SYS_MONTO]	= $xCred->saldo_actual()->v();
             $this->mAListaDeCreds[$xCred->numero_solicitud()->v()] = $row;
             $this->mTCredsActivosAut += $xCred->monto_autorizado()->v();
             //TODO: Acompletar
         }
         $this->mTCredsNum++;
     }
 }
 function setClonar($saldo = false, $autorizado = false)
 {
     $saldo = $saldo == false ? $this->getSaldoActual() : $saldo;
     $autorizado = $autorizado == false ? $this->getMontoAutorizado() : $autorizado;
     //retorna numero de credito
     $xS = new cSocio($this->getClaveDePersona());
     $xS->init();
     $nuevoID = $xS->getIDNuevoDocto(iDE_CREDITO);
     $xCD = new cCreditos_solicitud();
     $xCD->numero_solicitud($nuevoID);
     $xCD->numero_socio($this->getClaveDePersona());
     $xCD->causa_de_mora($this->mCausaDeMora);
     $xCD->contrato_corriente_relacionado($this->mContratoCorriente);
     $xCD->descripcion_aplicacion($this->mDescripcionDestino);
     $xCD->destino_credito($this->mTipoDeDestino);
     $xCD->dias_autorizados($this->mDiasAutorizados);
     $xCD->docto_autorizacion("CLONADO DEL CREDITO " . $this->mNumeroCredito);
     $xCD->eacp(EACP_CLAVE);
     $xCD->estatus_actual($this->getEstadoActual());
     //$xCD->estatus_de_negociacion()
     $xCD->fecha_autorizacion($this->mFechaDeAutorizacion);
     $xCD->fecha_castigo("2018-01-01");
     $xCD->fecha_conciliada(fechasys());
     $xCD->fecha_ministracion($this->mFechaMinistracion);
     $xCD->fecha_mora($this->mFechaMora);
     $xCD->fecha_revision(fechasys());
     $xCD->fecha_solicitud($this->mFechaDeSolictud);
     $xCD->fecha_ultimo_mvto($this->mFechaUltimoMvtoCapital);
     $xCD->fecha_vencimiento($this->mFechaVencimiento);
     $xCD->fecha_vencimiento_dinamico($this->mFechaVencimientoLegal);
     $xCD->grupo_asociado($this->mGrupoAsociado);
     $xCD->idusuario(getUsuarioActual());
     $xCD->interes_diario($this->mInteresDiario);
     $xCD->interes_moratorio_devengado($this->mInteresMoratorioDev);
     $xCD->interes_moratorio_pagado($this->mInteresMoratorioPag);
     $xCD->interes_normal_devengado($this->mInteresNormalDevengado);
     $xCD->interes_normal_pagado($this->mInteresNormalPagado);
     $xCD->monto_autorizado($autorizado);
     $xCD->monto_parcialidad($this->mMontoFijoParcialidad);
     $xCD->monto_solicitado($autorizado);
     //igual que el autorizado
     $xCD->numero_pagos($this->getPagosAutorizados());
     $xCD->saldo_actual($saldo);
     $xCD->saldo_conciliado($saldo);
     $xCD->saldo_vencido(0);
     $xCD->sdo_int_ant(0);
     $xCD->sucursal(getSucursal());
     $xCD->pagos_autorizados($this->getPagosAutorizados());
     $xCD->periocidad_de_pago($this->getPeriocidadDePago());
     $xCD->periodo_notificacion(0);
     $xCD->periodo_solicitudes(EACP_PER_SOLICITUDES);
     $xCD->plazo_en_dias($this->mDiasAutorizados);
     $xCD->tipo_credito($this->mModalidadDeCredito);
     $xCD->tipo_autorizacion($this->mTipoDeAutorizacion);
     $xCD->tasa_ahorro($this->mTasaAhorro);
     $xCD->tasa_interes($this->mTasaInteres);
     $xCD->tasa_moratorio($this->mTasaMoratorio);
     $xCD->tipo_convenio($this->mTipoDeConvenio);
     $xCD->tipo_de_calculo_de_interes($this->mTipoDeCalculoDeInteres);
     $xCD->tipo_de_pago($this->mTipoDePago);
     $xCD->ultimo_periodo_afectado($this->mParcialidadActual);
     $xCD->query()->insert()->save();
     return $nuevoID;
 }
 $ministracion = $xF->getFechaISO($datos[10]);
 $fechaSolicitado = $xF->getFechaISO($datos[5]);
 $descDestino = $cT->cChar($datos[9]);
 $tasa = $cT->cFloat($datos[15]);
 $tasa = $tasa / 100;
 $dias = $periocidad * $pagos;
 $aplicacion = $cT->cChar($datos[17]) == "S" ? 501 : 100;
 $vencimiento = $xF->setSumarDias($dias, $ministracion);
 //$cT->cFecha($datos[5]);
 $saldo = $cT->cFloat($datos[11]);
 $UltimaOperacion = fechasys();
 //$cT->cFecha($datos[9]);
 $ContratoCorriente = CTA_GLOBAL_CORRIENTE;
 //$cT->cInt($datos[10]);
 //Eliminar créditos anteriores
 $Creds = new cCreditos_solicitud();
 $rs = $Creds->query()->select()->exec("numero_socio={$socio}");
 foreach ($rs as $data) {
     /*$Creds->setData($data);
     		$solicitud 	= $Creds->numero_solicitud()->v();
     		$socio		= $Creds->numero_socio()->v();
     		$xCred		= new cCredito($solicitud, $socio);
     		$msg		.= $xCred->setDelete();*/
 }
 if ($socio == 0) {
     $msg .= "{$iReg}\t\tERROR\tLa Linea({$iReg}) no se leyo({$bufer})\r\n";
 } else {
     $sqls = "UPDATE socios_general SET dependencia=" . DEFAULT_EMPRESA . " WHERE codigo={$socio}";
     my_query($sqls);
     $xCred = new cCredito();
     $xConv = new cProductoDeCredito($producto);
function jsaGetDatos($solicitud)
{
    if ($solicitud != 0 and $solicitud != '') {
        $xCred = new cCreditos_solicitud();
        $xCred->setData($xCred->query()->getRow("numero_solicitud={$solicitud}"));
        $pagos = $xCred->numero_pagos()->v();
        $monto = $xCred->monto_solicitado()->v();
        $periocidad = $xCred->periocidad_de_pago()->v();
        $tasa = $xCred->tasa_interes()->v();
        $xF = new cFecha();
        $xT = new cTipos();
        $tab = new TinyAjaxBehavior();
        $tab->add(TabSetvalue::getBehavior('idpagos', $pagos));
        $tab->add(TabSetvalue::getBehavior('idmonto', $monto));
        $tab->add(TabSetvalue::getBehavior('idtasa', $tasa * 100));
        $tab->add(TabSetvalue::getBehavior('idperiocidad', $periocidad));
        $tab->add(TabSetvalue::getBehavior('idtipodepago', $xCred->tipo_de_pago()->v()));
        //Fechas de ministracion
        $tab->add(TabSetvalue::getBehavior('idfecha1', $xF->getFechaMX($xCred->fecha_autorizacion()->v(), "-")));
        $tab->add(TabSetvalue::getBehavior('idfecha2', $xF->getFechaMX($xCred->fecha_ministracion()->v(), "-")));
        $tab->add(TabSetvalue::getBehavior('idautorizacion', $xCred->docto_autorizacion()->v()));
        $tab->add(TabSetvalue::getBehavior('idtipodeautorizacion', $xCred->tipo_autorizacion()->v()));
        return $tab->getString();
    }
}