public function storeAccount()
 {
     $userManager = new \KodeInfo\UserManagement\UserManagement();
     try {
         $user = $userManager->createUser(Input::all(), Input::get('group', 'admin'), true);
         if (Input::hasFile('avatar')) {
             $user->avatar = \Cashout\Helpers\Utils::imageUpload(Input::file('avatar'), 'profile');
             $user->save();
         }
         Session::flash('success_msg', 'Admin created successfully');
         return Redirect::back();
     } catch (\KodeInfo\UserManagement\Exceptions\AuthException $e) {
         Session::flash('error_msg', \Cashout\Helpers\Utils::buildMessages($e->getErrors()));
         return Redirect::back();
     }
 }
 public function store()
 {
     $v = Validator::make(["name" => Input::get('name'), "email" => Input::get('email'), "priority" => Input::get('priority'), "company" => Input::get('company'), "department" => Input::get('department'), "attachment" => Input::get('attachment'), "subject" => Input::get('subject'), "description" => Input::get('description')], ["name" => 'required', "email" => 'required|email', "priority" => 'required', "company" => 'required', "department" => 'required', "description" => 'required', "attachment" => 'mimes:rar,zip|size:10000', "subject" => 'required']);
     if ($v->passes()) {
         $company_customer_ids = CompanyCustomers::where('company_id', Input::get('company'))->lists('customer_id');
         if (sizeof($company_customer_ids) > 0) {
             $user = User::where('email', Input::get('email'))->first();
         } else {
             $user = null;
         }
         if (!empty($user) && !is_null($user)) {
             $user = User::where('email', Input::get('email'))->first();
             if (!empty($user)) {
                 $company_customer = new CompanyCustomers();
                 $company_customer->company_id = Input::get('company');
                 $company_customer->customer_id = $user->id;
                 $company_customer->save();
             }
         } else {
             $password = Str::random();
             $userManager = new \KodeInfo\UserManagement\UserManagement();
             $user = $userManager->createUser(["name" => Input::get('name'), "email" => Input::get('email'), "password" => $password, "password_confirmation" => $password], 'customer', false);
             $user->avatar = "/assets/img/default-avatar.jpg";
             $user->save();
             $company_customer = new CompanyCustomers();
             $company_customer->company_id = Input::get('company');
             $company_customer->customer_id = $user->id;
             $company_customer->save();
         }
         $repo = new KodeInfo\Repo\MessageRepo();
         $thread = $repo->createNewThread($user->id, Input::get("description"), true);
         $ticket = new Tickets();
         $ticket->thread_id = $thread['thread_id'];
         $ticket->customer_id = $user->id;
         $ticket->priority = Input::get("priority");
         $ticket->company_id = Input::get("company");
         $ticket->department_id = Input::get("department");
         $ticket->subject = Input::get("subject");
         $ticket->description = Input::get("description");
         $ticket->status = Tickets::TICKET_NEW;
         $ticket->requested_on = \Carbon\Carbon::now();
         $ticket->save();
         $ticket_attachment = new TicketAttachments();
         $ticket_attachment->thread_id = $thread['thread_id'];
         $ticket_attachment->message_id = $thread['msg_id'];
         $ticket_attachment->has_attachment = Input::hasFile('attachment');
         $ticket_attachment->attachment_path = Input::hasFile('attachment') ? Utils::fileUpload(Input::file('attachment'), 'attachments') : '';
         $ticket_attachment->save();
         $country = DB::table('countries')->where('countryCode', Input::get('country'))->first();
         $geo_info = new ThreadGeoInfo();
         $geo_info->thread_id = $thread['thread_id'];
         $geo_info->ip_address = Input::get('ip');
         $geo_info->country_code = Input::get('country');
         $geo_info->country = !empty($country) ? $country->countryName : "";
         $geo_info->provider = Input::get('provider');
         $geo_info->current_page = "";
         $geo_info->all_pages = "";
         $geo_info->save();
         $customer = User::find($ticket->customer_id);
         $mailer_extra = ['ticket' => $ticket, 'has_attachment' => $ticket_attachment->has_attachment, 'attachment_path' => $ticket_attachment->attachment_path];
         $this->ticketMailer->created($customer->email, $customer->name, $mailer_extra);
         RecentActivities::createActivity("New Ticket created by User ID:" . Auth::user()->id . " User Name:" . Auth::user()->name);
         Session::flash('success_msg', trans('msgs.ticket_created_success'));
         return Redirect::to('/tickets/all');
     } else {
         Session::flash('error_msg', Utils::buildMessages($v->messages()->all()));
         return Redirect::back()->withInput(Input::except('attachment'));
     }
 }