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'); }