Esempio n. 1
0
 /**
  * Show the form for creating a new resource.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function createSalesman($id)
 {
     $userId = Auth::user()->id;
     $moduleUser = ModuleAssigment::where(["salesman_id" => $userId, "status" => 1])->first();
     if (!is_object($moduleUser)) {
         return back()->withErrors(['Usted no tiene modulo asignado, por lo tanto no puede vender']);
     } else {
         if (Auth::user()->role_id == config('constants.salesman') && Auth::user()->module && Auth::user()->module->openModule == 0) {
             return back()->withErrors(['Usted no ha abierto su caja, por lo tanto no puede vender']);
         }
     }
     //Buscar y enviar info de evento con $id
     $event = Event::find($id);
     $presentations = Presentation::where('event_id', $id)->where('cancelled', 0)->where('starts_at', '>', strtotime(Carbon::now()))->get();
     $slots_array = array();
     foreach ($presentations as $pres) {
         $slots = DB::table('slot_presentation')->where('presentation_id', $pres->id)->where('status', config('constants.seat_available'))->lists('slot_id', 'slot_id');
         $slots_array[$pres->id] = $slots;
     }
     $presentations = $presentations->lists('starts_at', 'id');
     foreach ($presentations as $key => $pres) {
         $presentations[$key] = date("Y-m-d H:i", $pres);
     }
     $presentations = $presentations->toArray();
     $zones = Zone::where('event_id', $id)->lists('name', 'id');
     $exchangeRate = ExchangeRate::where('status', config('constants.active'))->first();
     return view('internal.salesman.buy', compact('event', 'presentations', 'zones', 'slots_array', 'exchangeRate'));
 }
 /**
  * Show the form for creating a new resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function create($ticket_id)
 {
     $ticket = Ticket::findOrFail($ticket_id);
     if ($ticket == null) {
         Session::flash('message', 'Este ticket no existe');
         Session::flash('alert-class', 'alert-danger');
         return redirect('salesman/devolutions');
     }
     if ($ticket->cancelled) {
         Session::flash('message', 'El ticket fue cancelado');
         Session::flash('alert-class', 'alert-danger');
         return redirect('salesman/devolutions');
     }
     $presentation = $ticket->presentation()->first();
     if (!$presentation->cancelled) {
         Session::flash('message', 'La presentación no fue cancelado');
         Session::flash('alert-class', 'alert-danger');
         return redirect('salesman/devolutions');
     }
     $cancelPresentation = CancelPresentation::where("presentation_id", $ticket->presentation_id)->first();
     if (!$cancelPresentation->authorized) {
         Session::flash('message', 'El ticket no esta autorizado para ser devuelto');
         Session::flash('alert-class', 'alert-danger');
         return redirect('salesman/devolutions');
     }
     $today = strtotime(date("Y-m-d"));
     $date_refund = strtotime($cancelPresentation->date_refund);
     $date_refund_last = $date_refund + $cancelPresentation->duration * 86400;
     if ($today < $date_refund) {
         Session::flash('message', 'El ticket aun no se puede devolver. Autorizado para devolución a partir de ' . $cancelPresentation->date_refund);
         Session::flash('alert-class', 'alert-danger');
         return redirect('salesman/devolutions');
     }
     if ($today > $date_refund_last) {
         Session::flash('message', 'El ticket no puede ser devuelto, tiempo de devolución agotado');
         Session::flash('alert-class', 'alert-danger');
         return redirect('salesman/devolutions');
     }
     $modulesAuth = $cancelPresentation->modules;
     $userId = Auth::user()->id;
     $moduleUser = ModuleAssigment::where(["salesman_id" => $userId, "status" => 1])->first();
     if (!is_object($moduleUser)) {
         Session::flash('message', 'Usted no tiene modulo asignado, por lo tanto no puede devolver');
         Session::flash('alert-class', 'alert-danger');
         return redirect('salesman/devolutions');
     }
     $isAuthorized = 0;
     foreach ($modulesAuth as $obj) {
         if ($obj->id == $moduleUser->module_id) {
             $isAuthorized = 1;
             break;
         }
     }
     return view('internal.salesman.devolution.new', ["ticket" => $ticket, "authorizedModule" => $modulesAuth, "isAuthorized" => $isAuthorized]);
 }
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     ModuleAssigment::insert(['module_id' => 1, 'salesman_id' => 2, 'status' => 1, 'dateAssigments' => Carbon::create(2011, 1, 1, 8, 0, 0)]);
     ModuleAssigment::insert(['module_id' => 2, 'salesman_id' => 5, 'status' => 1, 'dateAssigments' => Carbon::create(2011, 1, 1, 8, 0, 0)]);
 }
Esempio n. 4
0
 public function destroyAssigment($id)
 {
     //
     $moduleassigment = ModuleAssigment::find($id);
     $module = Module::find($moduleassigment->module_id);
     if ($module->openModule == true) {
         return back()->withErrors(['Antes de desasociar al vendedor, primero este debe cerrar su caja']);
     }
     $salesman = User::find($moduleassigment->salesman_id);
     $tickets = DB::table('tickets')->where('salesman_id', '=', $salesman->id)->where('payment_date', '<', new Carbon())->where('payment_date', '>=', Carbon::today())->whereNull('cashCount_register')->get();
     $devolutions = DB::table('devolutions')->where('tickets.salesman_id', '=', $salesman->id)->where('devolutions.created_at', '<', new Carbon())->where('devolutions.created_at', '>=', Carbon::today())->whereNull('devolutions.cashCount_register')->leftJoin('tickets', 'tickets.id', '=', 'devolutions.ticket_id')->get();
     if ($tickets != null) {
         return back()->withErrors(['Antes de desasociar, primero este debe hacer el arqueo de caja']);
     }
     if ($devolutions != null) {
         return back()->withErrors(['Antes de desasociar, primero este debe hacer el arqueo de caja']);
     }
     $moduleassigment->status = 2;
     $moduleassigment->dateMoveAssigments = new Carbon();
     $salesman = User::find($moduleassigment->salesman_id);
     $salesman->module_id = null;
     $salesman->save();
     $moduleassigment->save();
     return redirect('admin/modules/assigment');
 }
Esempio n. 5
0
 /**
  * Display the specified resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function showAssigment()
 {
     $moduleAssigments = ModuleAssigment::all();
     $assiInformation = [];
     foreach ($moduleAssigments as $moduleAssigment) {
         // pueden ser muchos eventos. Necesito información para llenar la tabla
         $module = Module::find($moduleAssigment->module_id);
         $salesman = User::find($moduleAssigment->salesman_id);
         $role = Role::find($salesman->role_id);
         array_push($assiInformation, array($module->name, $salesman->name, $salesman->lastname, $moduleAssigment->dateAssigments, $moduleAssigment->dateMoveAssigments, $role->description));
     }
     //$array_module = [];
     $modules_list = Module::all()->lists('name', 'id');
     $array = ['modules_list' => $modules_list];
     return view('internal.admin.reports.assignment', compact('assiInformation'), $array);
 }
Esempio n. 6
0
 public function destroySalesman($id)
 {
     $moduleassigment = ModuleAssigment::where('salesman_id', $id)->where('status', 1)->get();
     if ($moduleassigment->count() == 0) {
         $user = User::find($id);
         $user->delete();
     } else {
         return back()->withErrors(['Debe primero desasociar el vendedor del punto de venta']);
     }
     return redirect('admin/salesman');
 }