Example #1
0
 public function ventaVale(Request $request)
 {
     $vale = Vale::find($request->input('id_vale'));
     $folio = $request->input('folio');
     $serie = strtoupper($request->input('serie'));
     $idCliente = $request->input('id_cliente');
     $nombre = strtoupper($request->input('nombre'));
     $cuenta = Session::get('id');
     $fechaVenta = $request->input('fecha_venta');
     $numeroPagos = $request->input('numero_pagos');
     $folioVenta = $request->input('folio_venta');
     $cantidad = $request->input('cantidad');
     $fechaPago = $request->input('fecha_inicio_pago');
     $idPromocion = $request->input('id_promocion');
     $saldoDistribuidor = $vale->distribuidor->saldo_actual;
     $saldoNuevoDistribuidor = $saldoDistribuidor + $cantidad;
     $limiteCreditoDistribuidor = $vale->distribuidor->limite_credito;
     if ($vale->estatus == 0) {
         if ($vale->distribuidor->estatus == 0) {
             //0->activo 1->desactivado
             if ($cantidad <= $vale->cantidad_limite || $vale->cantidad_limite == 0) {
                 if ($saldoNuevoDistribuidor <= $limiteCreditoDistribuidor) {
                     if (is_null($idCliente)) {
                         $cliente = new Cliente();
                         $cliente->nombre = $nombre;
                         $cliente->save();
                         $idCliente = Cliente::max('id_cliente');
                     }
                     if ($idPromocion > 0) {
                         $vale_promo = new Vales_has_promociones();
                         $vale_promo->vale_id = $vale->id_vale;
                         $vale_promo->promocion_id = $idPromocion;
                         $vale_promo->save();
                     }
                     $vale->distribuidor->saldo_actual = $saldoNuevoDistribuidor;
                     $vale->distribuidor->save();
                     $vale->id_cliente = $idCliente;
                     $vale->id_cuenta = $cuenta;
                     $vale->fecha_venta = Carbon::today();
                     $vale->cantidad = $cantidad;
                     $vale->numero_pagos = $numeroPagos;
                     $vale->folio_venta = $folioVenta;
                     $vale->deuda_actual = $cantidad;
                     $vale->id_promocion = $idPromocion;
                     $vale->estatus = 1;
                     // 0=disponible, 1=ocupado 2=cancelado
                     $vale->fecha_inicio_pago = $fechaPago;
                     if ($vale->save()) {
                         Session::flash('message', 'Venta con vale exitoso!');
                         Session::flash('class', 'success');
                     } else {
                         Session::flash('message', 'Error al guardar el vale en la base de datos');
                         Session::flash('class', 'danger');
                     }
                 } else {
                     Session::flash('message', 'El distribuidor a superado limite de credito por $' . ($saldoNuevoDistribuidor - $limiteCreditoDistribuidor) . '.00');
                     Session::flash('class', 'danger');
                 }
             } else {
                 Session::flash('message', 'El monto de venta es mayor al limite permitido para este vale');
                 Session::flash('class', 'danger');
             }
         } else {
             Session::flash('message', 'Por el momento el distribuidor se encuentra dado de baja temporalmente');
             Session::flash('class', 'danger');
         }
     } else {
         if ($vale->estatus == 2) {
             Session::flash('message', 'El vale ' . $serie . ' - ' . $folio . ' se encuentra cancelado debiado a: ' . $vale->motivo_cancelacion);
             Session::flash('class', 'danger');
         } else {
             Session::flash('message', 'El vale  ' . $serie . ' - ' . $folio . ' ya ha sido utilizado');
             Session::flash('class', 'danger');
         }
     }
     return redirect('registrarVale');
 }