/**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     try {
         $admin = \Auth::User();
         if (!$admin) {
             return $this->failResponse('admin not logged in');
         }
         $invoiceObj = new Invoice();
         $data = $this->getRequestBody();
         $invoiceObj->customer_id = $data['customer_id'];
         $invoiceObj->attn = $data['attn'];
         $invoiceObj->invoice_number = $data['invoice_number'];
         $invoiceObj->description = $data['description'];
         $invoiceObj->save();
         if (!$invoiceObj->save()) {
             Log::error("error in saving");
             $errors = $invoiceObj->getErrors();
             return $this->failResponse('Validation failed. Cannot save data.' . $errors);
         } else {
             return $this->successResponse('updated sucessfully');
         }
     } catch (\Exception $e) {
         Log::error($invoiceObj->getErrors());
         return $this->failResponse($e->getMessage());
     }
 }
Example #2
0
 public function create($id)
 {
     $invoice = new Invoice();
     $invoice->customer_id = $id;
     $invoice->save();
     return redirect("/invoice/" . $invoice->getId());
 }
 public function sendInvoice(Invoice $invoice)
 {
     $invoice->load('invitations', 'client', 'account');
     $entityType = $invoice->getEntityType();
     $view = 'invoice';
     $subject = trans("texts.{$entityType}_subject", ['invoice' => $invoice->invoice_number, 'account' => $invoice->account->getDisplayName()]);
     $accountName = $invoice->account->getDisplayName();
     $emailTemplate = $invoice->account->getEmailTemplate($entityType);
     $invoiceAmount = Utils::formatMoney($invoice->getRequestedAmount(), $invoice->client->currency_id);
     foreach ($invoice->invitations as $invitation) {
         if (!$invitation->user || !$invitation->user->email) {
             return false;
         }
         if (!$invitation->contact || !$invitation->contact->email) {
             return false;
         }
         $invitation->sent_date = \Carbon::now()->toDateTimeString();
         $invitation->save();
         $variables = ['$footer' => $invoice->account->getEmailFooter(), '$link' => $invitation->getLink(), '$client' => $invoice->client->getDisplayName(), '$account' => $accountName, '$contact' => $invitation->contact->getDisplayName(), '$amount' => $invoiceAmount];
         $data['body'] = str_replace(array_keys($variables), array_values($variables), $emailTemplate);
         $data['link'] = $invitation->getLink();
         $data['entityType'] = $entityType;
         $data['invoice_id'] = $invoice->id;
         $fromEmail = $invitation->user->email;
         $this->sendTo($invitation->contact->email, $fromEmail, $accountName, $subject, $view, $data);
         Activity::emailInvoice($invitation);
     }
     if (!$invoice->isSent()) {
         $invoice->invoice_status_id = INVOICE_STATUS_SENT;
         $invoice->save();
     }
     Event::fire(new InvoiceSent($invoice));
 }
Example #4
0
 /**
  * Creates a new Invoice model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new Invoice();
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['view', 'id' => $model->id]);
     } else {
         return $this->render('create', ['model' => $model]);
     }
 }
 public function actionCreate()
 {
     $model = new Invoice(['user_name' => Yii::$app->user->identity->name, 'status' => 'create']);
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['view', 'id' => $model->id]);
     } else {
         return $this->render('create', ['model' => $model]);
     }
 }
 /**
  * Creates a new Registration model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $registration_model = new Registration();
     $registration_model->registration_type_id = 1;
     $invoice_model = new Invoice();
     if ($registration_model->load(Yii::$app->request->post())) {
         $registration_model->file_payment_receipt = UploadedFile::getInstance($registration_model, 'file_payment_receipt');
         switch ($registration_model->registration_type_id) {
             case 2:
             case 4:
             case 5:
                 $registration_model->file_student_id = UploadedFile::getInstance($registration_model, 'file_student_id');
                 break;
         }
         $isValid = $registration_model->validate();
         if ($registration_model->requires_invoice) {
             if ($invoice_model->load(Yii::$app->request->post())) {
                 $isValid = $isValid && $invoice_model->validate();
                 var_dump($invoice_model->errors);
             }
         }
         var_dump($registration_model->errors);
         if ($isValid) {
             if ($registration_model->save(false)) {
                 if ($registration_model->requires_invoice) {
                     $invoice_model->registration_id = $registration_model->id;
                     if ($invoice_model->save(false)) {
                         return $this->redirect(['view', 'id' => $registration_model->id]);
                     }
                 } else {
                     return $this->redirect(['view', 'id' => $registration_model->id]);
                 }
             }
         }
     } else {
         return $this->render('create', ['registration_model' => $registration_model, 'invoice_model' => $invoice_model]);
     }
 }
 public function createNinjaInvoice($client)
 {
     $account = $this->getNinjaAccount();
     $lastInvoice = Invoice::withTrashed()->whereAccountId($account->id)->orderBy('public_id', 'DESC')->first();
     $publicId = $lastInvoice ? $lastInvoice->public_id + 1 : 1;
     $invoice = new Invoice();
     $invoice->account_id = $account->id;
     $invoice->user_id = $account->users()->first()->id;
     $invoice->public_id = $publicId;
     $invoice->client_id = $client->id;
     $invoice->invoice_number = $account->getNextInvoiceNumber();
     $invoice->invoice_date = date_create()->format('Y-m-d');
     $invoice->amount = PRO_PLAN_PRICE;
     $invoice->balance = PRO_PLAN_PRICE;
     $invoice->save();
     $item = new InvoiceItem();
     $item->account_id = $account->id;
     $item->user_id = $account->users()->first()->id;
     $item->public_id = $publicId;
     $item->qty = 1;
     $item->cost = PRO_PLAN_PRICE;
     $item->notes = trans('texts.pro_plan_description');
     $item->product_key = trans('texts.pro_plan_product');
     $invoice->invoice_items()->save($item);
     $invitation = new Invitation();
     $invitation->account_id = $account->id;
     $invitation->user_id = $account->users()->first()->id;
     $invitation->public_id = $publicId;
     $invitation->invoice_id = $invoice->id;
     $invitation->contact_id = $client->contacts()->first()->id;
     $invitation->invitation_key = str_random(RANDOM_KEY_LENGTH);
     $invitation->save();
     return $invitation;
 }
 public function setStatusInvoice(Invoice $invoice, $status)
 {
     $invoice->status = $status;
     $invoice->save();
     return $invoice;
 }