public function getClientDatatable()
 {
     $search = Input::get('sSearch');
     $invitationKey = Session::get('invitation_key');
     $invitation = Invitation::where('invitation_key', '=', $invitationKey)->with('contact.client')->first();
     if (!$invitation) {
         return [];
     }
     $invoice = $invitation->invoice;
     if (!$invoice || $invoice->is_deleted) {
         return [];
     }
     $payments = $this->paymentRepo->findForContact($invitation->contact->id, Input::get('sSearch'));
     return Datatable::query($payments)->addColumn('invoice_number', function ($model) {
         return $model->invitation_key ? link_to('/view/' . $model->invitation_key, $model->invoice_number) : $model->invoice_number;
     })->addColumn('transaction_reference', function ($model) {
         return $model->transaction_reference ? $model->transaction_reference : '<i>Manual entry</i>';
     })->addColumn('payment_type', function ($model) {
         return $model->payment_type ? $model->payment_type : ($model->account_gateway_id ? '<i>Online payment</i>' : '');
     })->addColumn('amount', function ($model) {
         return Utils::formatMoney($model->amount, $model->currency_id);
     })->addColumn('payment_date', function ($model) {
         return Utils::dateToString($model->payment_date);
     })->make();
 }
 /**
  * Show the form for creating a new resource.
  *
  * @param  string  $code
  * @return Response
  */
 public function create($code = null)
 {
     if ($code != null && is_null(Invitation::where('code', '=', $code)->where('used_by', '=', '0')->first())) {
         return View::make('admin.login.register')->withErrors(array('mainError' => 'Кодът Ви е грешен. Ако мислите, че няма грешка, моля въведете кода и имейла по-отдолу.'));
     } elseif (!is_null(Invitation::where('code', '=', $code)->where('used_by', '=', '0')->first())) {
         $email = Invitation::where('code', '=', $code)->first()->email;
         return View::make('admin.login.register')->with('code', $code)->with('email', $email);
     }
     return View::make('admin.login.register');
 }
Пример #3
0
 public function getClientDatatable()
 {
     $search = Input::get('sSearch');
     $invitationKey = Session::get('invitation_key');
     $invitation = Invitation::where('invitation_key', '=', $invitationKey)->first();
     if (!$invitation || $invitation->is_deleted) {
         return [];
     }
     $invoice = $invitation->invoice;
     if (!$invoice || $invoice->is_deleted) {
         return [];
     }
     return $this->invoiceRepo->getClientDatatable($invitation->contact_id, ENTITY_QUOTE, $search);
 }
 public function view($invitationKey)
 {
     $invitation = Invitation::where('invitation_key', '=', $invitationKey)->firstOrFail();
     $invoice = $invitation->invoice;
     if (!$invoice || $invoice->is_deleted) {
         return View::make('invoices.deleted');
     }
     if ($invoice->is_quote && $invoice->quote_invoice_id) {
         $invoice = Invoice::scope($invoice->quote_invoice_id, $invoice->account_id)->firstOrFail();
         if (!$invoice || $invoice->is_deleted) {
             return View::make('invoices.deleted');
         }
     }
     $invoice->load('user', 'invoice_items', 'invoice_design', 'account.country', 'client.contacts', 'client.country');
     $client = $invoice->client;
     if (!$client || $client->is_deleted) {
         return View::make('invoices.deleted');
     }
     if (!Session::has($invitationKey) && (!Auth::check() || Auth::user()->account_id != $invoice->account_id)) {
         Activity::viewInvoice($invitation);
         Event::fire('invoice.viewed', $invoice);
     }
     Session::set($invitationKey, true);
     Session::set('invitation_key', $invitationKey);
     Session::set('white_label', $client->account->isWhiteLabel());
     $client->account->loadLocalizationSettings();
     $invoice->invoice_date = Utils::fromSqlDate($invoice->invoice_date);
     $invoice->due_date = Utils::fromSqlDate($invoice->due_date);
     $invoice->is_pro = $client->account->isPro();
     $contact = $invitation->contact;
     $contact->setVisible(['first_name', 'last_name', 'email', 'phone']);
     $data = array('showClientHeader' => true, 'showBreadcrumbs' => false, 'hideLogo' => $client->account->isWhiteLabel(), 'invoice' => $invoice->hidePrivateFields(), 'invitation' => $invitation, 'invoiceLabels' => $client->account->getInvoiceLabels(), 'contact' => $contact);
     return View::make('invoices.view', $data);
 }
Пример #5
0
 public function validate()
 {
     if (is_null(Invitation::where('code', '=', $this->invitation)->where('used_by', '=', '0')->first())) {
         throw new ValidationException(null, null, null, array('invitation' => "Грешен код."));
     } else {
         return true;
     }
 }
Пример #6
0
 /**
  * @api {post} /groups/:idGroup/users/:id/invite Invite User
  * @apiName Invite User by Admin
  * @apiGroup Group
  * @apiHeader (Header) {String} X_Authorization Authorization value.
  * @apiParam  (url Parameter) {Number} idGroup Group unique ID.
  * @apiParam  (url Parameter) {Number} id Users unique ID. The operator's id, usually the admin of the group.
  * @apiParam  {String} email User's email.
  * 
  * @apiError 400 Input Invalid. This will happen if the param is missing or not the valid format.
  * @apiError 404 Not found. This will happen if the role id/user id/group id is not in our system.
  * @apiError 401 Not authorized. This will happen if the header value is not attached.
  * @apiError 409 The User already enrolled to this group. 
  * @apiError 412 The User are not in the same company as the manager.
  * 
  * @apiSuccess 200 New Invitation is created and email sent out.
  * @apiSuccess 203 The Invitation to this group already exist. No new recored created, no email send out.
  */
 public static function inviteUser($idGroup, $idUser)
 {
     $app = \Slim\Slim::getInstance();
     $request = $app->request->post();
     $validata = $app->validata;
     $validator = $validata::key('email', $validata::email()->notEmpty());
     if (!$validator->validate($request)) {
         $app->halt("400", json_encode("Input Invalid"));
     }
     $role = self::getRole($idGroup, $idUser);
     if ($role->id < 3) {
         $app->halt("403", json_encode("permission denied"));
     }
     $user = User::where('email', '=', $request['email'])->first();
     if (!$user) {
         $app->halt("404", json_encode("User not found."));
     }
     if (self::isMember($idGroup, $user->id)) {
         $app->halt("409", json_encode("User already in group."));
     }
     //self::sameCompanyRestriction($idGroup,$user->id);
     $invitation = Invitation::where('receiver_id', '=', $user->id)->where('group_id', '=', $idGroup)->first();
     if ($invitation) {
         $invitation->invited_at = date('Y-m-d H:i:s');
         $invitation->group_jointed_at = null;
         $invitation->save();
         $app->halt("202", json_encode("This user already has the same group invitation in record."));
     }
     User::find($user->id)->invitations()->create(['sender_id' => $idUser, 'group_id' => $idGroup, 'invited_at' => date('Y-m-d H:i:s')]);
     EmailController::noticificationReminder($user->id);
 }