public static function validar()
 {
     $nro_tarjeta = str_replace('-', '', Input::get('nro_tarjeta'));
     $pago = Input::get('pago');
     $cuotas = Input::get('cuotas') * 1;
     $importe = str_replace(',', '.', Input::get('importe'));
     $cupon = Input::get('cupon');
     $fechahoy = Formatos::fechaHoraActual();
     //--- Validar tarjeta ---
     $datos = TarjetasPlasticos::validarTarjeta($nro_tarjeta);
     if (count($datos) == 0) {
         return 'Nro. de Tarjeta Inválido';
     }
     $fechahoy = Formatos::fechaHoraActual();
     //$nombre 			= Formatos::capital($datos[0]->nombre);
     $tarjeta_estado = $datos[0]->tarjeta_estado;
     $socio_estado = $datos[0]->socio_estado;
     $cuenta_estado = $datos[0]->cuenta_estado;
     $fecha_vencimiento = $datos[0]->fecha_vencimiento;
     $fecha_inicio = $datos[0]->fecha_inicio;
     if ($tarjeta_estado != 0) {
         return 'La tarjeta no está Activa';
     }
     if ($socio_estado != 'A') {
         return 'El socio no está activo';
     }
     if ($cuenta_estado != 0 && $cuenta_estado != 4) {
         return 'Cuenta inactiva';
     }
     $dt = new DateTime($fecha_vencimiento);
     if (date_format($dt, 'd-m-Y') < $fechahoy) {
         return 'Tarjeta Vencida ' . $fechahoy;
     }
     if ($fecha_inicio > $fechahoy) {
         return 'Fecha de Inicio posterior a hoy';
     }
     //--- Validar cantidad de cuotas
     if ($pago == 0 || $pago > 2) {
         return 'Forma de pago incorrecta';
     }
     if ($pago == 1) {
         $pago = 'contado';
     }
     if ($pago == 2) {
         $pago = 'cuotas';
     }
     if ($pago == 'cuotas' && $cuotas <= 1) {
         return 'Para pago en Cuotas, el mínimo de cuotas es 2';
     }
     if ($pago == 'contado' && $cuotas != 1) {
         return 'Para pago de Contado, la cantidad de cuotas debe ser 1';
     }
     $planes = TarjetasPlanes::validarCuotas($cuotas) * 1;
     if ($planes <= 0) {
         return 'Supera el límite de cuotas';
     }
     //--- Validar períodos de cuotas
     $numero_cuenta = TarjetasPlasticos::cuenta($nro_tarjeta);
     if (!TarjetasLiquidaciones::validarLiquidaciones($numero_cuenta, $cuotas)) {
         return 'Faltan cargar Períodos para éstas cuotas';
     }
     //--- Validar importe
     if ($importe * 1 <= 0) {
         return 'Importe Inválido';
     }
     try {
         $nro_socio = TarjetasPlasticos::find($nro_tarjeta)->numero_socio;
         $numero_cuenta = TarjetasPlasticos::find($nro_tarjeta)->numero_cuenta;
     } catch (Exception $e) {
         return 'Falta Validar Nro. de Tarjeta';
     }
     $datos = Socio::scoring($nro_socio);
     $pendiente = Socio::consumosPendiente($numero_cuenta, $pago);
     $saldo_contado = $datos[0]->saldo_contado - $pendiente;
     $saldo_cuotas = $datos[0]->saldo_cuotas - $pendiente;
     if ($pago == 'contado') {
         $resto = $saldo_contado - $importe;
     }
     if ($pago == 'cuotas') {
         $resto = $saldo_cuotas - $importe;
     }
     if ($resto < 0) {
         return 'No tiene saldo suficiente';
     }
     //--- Validar cupón
     if ($cupon * 1 <= 0) {
         return 'Nro de Cupón Inválido';
     }
     if (TarjetasCupones::validarCupon($cupon) <= 0) {
         return 'Cupón no válido, o ya fué usado';
     }
     //$codigo_autorizacion = ParametrosTarjeta::codigoAutorizacion($pago);
     $codigo_comercio = Persona::numeroComercio();
     DB::beginTransaction();
     $codigo_autorizacion_mostrar = ParametrosTarjeta::codigoAutorizacion($pago);
     if ($codigo_autorizacion_mostrar == 'error') {
         return 'No se pudo generar el Código de Autorización.';
     }
     $cod_aut = explode('/', $codigo_autorizacion_mostrar);
     $codigo_autorizacion = $cod_aut[0];
     $codigo_autorizacion_add = $cod_aut[1];
     $sql = "\n\t\t      insert into hb_autorizaciones\n\t\t      (\n\t\t        nro_empresa,\t\t        nro_sucursal,\n\t\t        codigo_tarjeta,\t\t        codigo_autorizacion,\n\t\t        codigo_autorizacion_add,    numero_cuenta,\n\n\t\t        numero_tarjeta,\t\t        fecha_autorizacion,\n\t\t        importe,\t\t        \tcant_cuotas,\n\t\t        numero_cupon,\t\t        codigo_comercio\n\t\t      )\n\t\t      values\n\t\t      (\n\t\t        1,\t\t        \t\t\t1,\n\t\t        1,\t\t        \t\t\t{$codigo_autorizacion},\n\t\t        '{$codigo_autorizacion_add}',\t'{$numero_cuenta}',\n\t\t        \n\t\t        '{$nro_tarjeta}',\t\t        '{$fechahoy}',\n\t\t        {$importe},\t\t        \t{$cuotas},\n\t\t        {$cupon},\t\t        \t\t{$codigo_comercio}\n\t\t      )\n\t\t    ";
     try {
         $grabar = DB::insert($sql);
     } catch (Exception $e) {
         DB::rollback();
         return 'No se pudo finalizar la operación. Reintentar.';
     }
     if ($grabar != 1) {
         DB::rollback();
         return 'No se pudo finalizar la operación. Reintentar.';
     }
     DB::commit();
     return 'Código de Autorización: ' . $codigo_autorizacion_mostrar;
 }