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