mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 00:44:30 -04:00
Static analysis
This commit is contained in:
parent
b09f1a7d07
commit
26d520c9c2
@ -139,6 +139,8 @@ class NinjaPlanController extends Controller
|
||||
//set free trial
|
||||
if (auth()->guard('contact')->user()->client->custom_value2) {
|
||||
MultiDB::findAndSetDbByAccountKey(auth()->guard('contact')->user()->client->custom_value2);
|
||||
|
||||
/** @var \App\Models\Account $account **/
|
||||
$account = Account::where('key', auth()->guard('contact')->user()->client->custom_value2)->first();
|
||||
// $account->trial_started = now();
|
||||
// $account->trial_plan = 'pro';
|
||||
|
@ -69,7 +69,7 @@ class DocumentController extends BaseController
|
||||
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||
* ),
|
||||
* )
|
||||
* @param DocumentsFilters $filters
|
||||
* @param DocumentFilters $filters
|
||||
* @return Response|mixed
|
||||
*/
|
||||
public function index(DocumentFilters $filters)
|
||||
@ -168,6 +168,9 @@ class DocumentController extends BaseController
|
||||
|
||||
public function bulk()
|
||||
{
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$action = request()->input('action');
|
||||
|
||||
$ids = request()->input('ids');
|
||||
@ -179,15 +182,15 @@ class DocumentController extends BaseController
|
||||
}
|
||||
|
||||
if ($action == 'download') {
|
||||
ZipDocuments::dispatch($documents->pluck('id'), auth()->user()->company(), auth()->user());
|
||||
ZipDocuments::dispatch($documents->pluck('id'), $user->company(), auth()->user());
|
||||
|
||||
return response()->json(['message' => ctrans('texts.sent_message')], 200);
|
||||
}
|
||||
/*
|
||||
* Send the other actions to the switch
|
||||
*/
|
||||
$documents->each(function ($document, $key) use ($action) {
|
||||
if (auth()->user()->can('edit', $document)) {
|
||||
$documents->each(function ($document, $key) use ($action, $user) {
|
||||
if ($user->can('edit', $document)) {
|
||||
$this->document_repo->{$action}($document);
|
||||
}
|
||||
});
|
||||
|
@ -73,7 +73,7 @@ class EmailController extends BaseController
|
||||
$mo->cc[] = new Address($request->cc_email);
|
||||
}
|
||||
|
||||
$entity_obj->invitations->each(function ($invitation) use ($data, $entity_obj, $template, $mo) {
|
||||
$entity_obj->invitations->each(function ($invitation) use ($entity_obj, $mo) {
|
||||
if (! $invitation->contact->trashed() && $invitation->contact->email) {
|
||||
$entity_obj->service()->markSent()->save();
|
||||
|
||||
|
@ -138,8 +138,7 @@ class ExpenseCategoryController extends BaseController
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param StoreInvoiceRequest $request The request
|
||||
*
|
||||
* @param StoreExpenseCategoryRequest $request
|
||||
* @return Response
|
||||
*
|
||||
*
|
||||
@ -175,7 +174,10 @@ class ExpenseCategoryController extends BaseController
|
||||
*/
|
||||
public function store(StoreExpenseCategoryRequest $request)
|
||||
{
|
||||
$expense_category = ExpenseCategoryFactory::create(auth()->user()->company()->id, auth()->user()->id);
|
||||
/** @var \App\Models\User $user **/
|
||||
$user = auth()->user();
|
||||
|
||||
$expense_category = ExpenseCategoryFactory::create($user->company()->id, $user->id);
|
||||
$expense_category->fill($request->all());
|
||||
$expense_category->save();
|
||||
|
||||
@ -454,14 +456,17 @@ class ExpenseCategoryController extends BaseController
|
||||
*/
|
||||
public function bulk()
|
||||
{
|
||||
/** @var \App\Models\User $user **/
|
||||
$user = auth()->user();
|
||||
|
||||
$action = request()->input('action');
|
||||
|
||||
$ids = request()->input('ids');
|
||||
|
||||
$expense_categories = ExpenseCategory::withTrashed()->find($this->transformKeys($ids));
|
||||
|
||||
$expense_categories->each(function ($expense_category, $key) use ($action) {
|
||||
if (auth()->user()->can('edit', $expense_category)) {
|
||||
$expense_categories->each(function ($expense_category, $key) use ($action, $user) {
|
||||
if ($user->can('edit', $expense_category)) {
|
||||
$this->base_repo->{$action}($expense_category);
|
||||
}
|
||||
});
|
||||
|
@ -43,6 +43,8 @@ class HostedMigrationController extends Controller
|
||||
|
||||
$company = $account->companies->first();
|
||||
|
||||
/** @var \App\Models\CompanyToken $company_token **/
|
||||
|
||||
$company_token = CompanyToken::where('user_id', auth()->user()->id)
|
||||
->where('company_id', $company->id)
|
||||
->first();
|
||||
@ -60,6 +62,7 @@ class HostedMigrationController extends Controller
|
||||
|
||||
MultiDB::findAndSetDbByCompanyKey($input['account_key']);
|
||||
|
||||
/** @var \App\Models\Company $company **/
|
||||
$company = Company::with('account')->where('company_key', $input['account_key'])->first();
|
||||
|
||||
$forward_url = $company->domain();
|
||||
|
@ -255,7 +255,6 @@ class MigrationController extends BaseController
|
||||
* ),
|
||||
* )
|
||||
* @param Request $request
|
||||
* @param Company $company
|
||||
* @return \Illuminate\Http\JsonResponse|void
|
||||
*/
|
||||
public function startMigration(Request $request)
|
||||
|
@ -11,14 +11,15 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\OneTimeToken\OneTimeRouterRequest;
|
||||
use App\Http\Requests\OneTimeToken\OneTimeTokenRequest;
|
||||
use App\Models\Company;
|
||||
use App\Models\User;
|
||||
use App\Models\Company;
|
||||
use App\Libraries\MultiDB;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\Support\Str;
|
||||
use App\Http\Requests\OneTimeToken\OneTimeTokenRequest;
|
||||
use App\Http\Requests\OneTimeToken\OneTimeRouterRequest;
|
||||
|
||||
class OneTimeTokenController extends BaseController
|
||||
{
|
||||
@ -33,7 +34,7 @@ class OneTimeTokenController extends BaseController
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param CreateOneTimeTokenRequest $request
|
||||
* @param OneTimeTokenRequest $request
|
||||
* @return Response
|
||||
*
|
||||
* @OA\Post(
|
||||
@ -64,11 +65,14 @@ class OneTimeTokenController extends BaseController
|
||||
*/
|
||||
public function create(OneTimeTokenRequest $request)
|
||||
{
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$hash = Str::random(64);
|
||||
|
||||
$data = [
|
||||
'user_id' => auth()->user()->id,
|
||||
'company_key'=> auth()->user()->company()->company_key,
|
||||
'user_id' => $user->id,
|
||||
'company_key'=> $user->company()->company_key,
|
||||
'context' => $request->input('context'),
|
||||
];
|
||||
|
||||
@ -83,10 +87,6 @@ class OneTimeTokenController extends BaseController
|
||||
|
||||
MultiDB::findAndSetDbByCompanyKey($data['company_key']);
|
||||
|
||||
// $user = User::findOrFail($data['user_id']);
|
||||
// Auth::login($user, true);
|
||||
// Cache::forget($request->input('hash'));
|
||||
|
||||
$this->sendTo($data['context']);
|
||||
}
|
||||
|
||||
|
@ -152,7 +152,10 @@ class PaymentController extends BaseController
|
||||
*/
|
||||
public function create(CreatePaymentRequest $request)
|
||||
{
|
||||
$payment = PaymentFactory::create(auth()->user()->company()->id, auth()->user()->id);
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$payment = PaymentFactory::create($user->company()->id, $user->id);
|
||||
|
||||
return $this->itemResponse($payment);
|
||||
}
|
||||
@ -203,7 +206,10 @@ class PaymentController extends BaseController
|
||||
*/
|
||||
public function store(StorePaymentRequest $request)
|
||||
{
|
||||
$payment = $this->payment_repo->save($request->all(), PaymentFactory::create(auth()->user()->company()->id, auth()->user()->id));
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$payment = $this->payment_repo->save($request->all(), PaymentFactory::create($user->company()->id, $user->id));
|
||||
|
||||
event('eloquent.created: App\Models\Payment', $payment);
|
||||
|
||||
@ -372,13 +378,16 @@ class PaymentController extends BaseController
|
||||
*/
|
||||
public function update(UpdatePaymentRequest $request, Payment $payment)
|
||||
{
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
if ($request->entityIsDeleted($payment)) {
|
||||
return $request->disallowUpdate();
|
||||
}
|
||||
|
||||
$payment = $this->payment_repo->save($request->all(), $payment);
|
||||
|
||||
event(new PaymentWasUpdated($payment, $payment->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));
|
||||
event(new PaymentWasUpdated($payment, $payment->company, Ninja::eventVars($user->id)));
|
||||
|
||||
event('eloquent.updated: App\Models\Payment', $payment);
|
||||
|
||||
@ -495,14 +504,17 @@ class PaymentController extends BaseController
|
||||
*/
|
||||
public function bulk()
|
||||
{
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$action = request()->input('action');
|
||||
|
||||
$ids = request()->input('ids');
|
||||
|
||||
$payments = Payment::withTrashed()->find($this->transformKeys($ids));
|
||||
|
||||
$payments->each(function ($payment, $key) use ($action) {
|
||||
if (auth()->user()->can('edit', $payment)) {
|
||||
$payments->each(function ($payment, $key) use ($action, $user) {
|
||||
if ($user->can('edit', $payment)) {
|
||||
$this->performAction($payment, $action, true);
|
||||
}
|
||||
});
|
||||
@ -576,7 +588,6 @@ class PaymentController extends BaseController
|
||||
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||
* ),
|
||||
* )
|
||||
* @param ActionPaymentRequest $request
|
||||
* @param Payment $payment
|
||||
* @param $action
|
||||
*/
|
||||
|
@ -23,6 +23,8 @@ class PaymentNotificationWebhookController extends Controller
|
||||
|
||||
public function __invoke(PaymentNotificationWebhookRequest $request, string $company_key, string $company_gateway_id, string $client_hash)
|
||||
{
|
||||
/** @var \App\Models\CompanyGateway $company_gateway */
|
||||
|
||||
$company_gateway = CompanyGateway::find($this->decodePrimaryKey($company_gateway_id));
|
||||
$client = Client::find($this->decodePrimaryKey($client_hash));
|
||||
|
||||
|
@ -1,20 +1,29 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2023. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\PaymentTerm;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Utils\Traits\MakesHash;
|
||||
use App\Factory\PaymentTermFactory;
|
||||
use App\Filters\PaymentTermFilters;
|
||||
use App\Http\Requests\PaymentTerm\CreatePaymentTermRequest;
|
||||
use App\Http\Requests\PaymentTerm\DestroyPaymentTermRequest;
|
||||
use App\Http\Requests\PaymentTerm\ShowPaymentTermRequest;
|
||||
use App\Http\Requests\PaymentTerm\StorePaymentTermRequest;
|
||||
use App\Http\Requests\PaymentTerm\UpdatePaymentTermRequest;
|
||||
use App\Models\PaymentTerm;
|
||||
use App\Repositories\PaymentTermRepository;
|
||||
use App\Transformers\PaymentTermTransformer;
|
||||
use App\Utils\Traits\MakesHash;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Http\Requests\PaymentTerm\EditPaymentTermRequest;
|
||||
use App\Http\Requests\PaymentTerm\ShowPaymentTermRequest;
|
||||
use App\Http\Requests\PaymentTerm\StorePaymentTermRequest;
|
||||
use App\Http\Requests\PaymentTerm\CreatePaymentTermRequest;
|
||||
use App\Http\Requests\PaymentTerm\UpdatePaymentTermRequest;
|
||||
use App\Http\Requests\PaymentTerm\DestroyPaymentTermRequest;
|
||||
|
||||
class PaymentTermController extends BaseController
|
||||
{
|
||||
@ -25,7 +34,7 @@ class PaymentTermController extends BaseController
|
||||
protected $entity_transformer = PaymentTermTransformer::class;
|
||||
|
||||
/**
|
||||
* @var PaymentRepository
|
||||
* @var PaymentTermRepository
|
||||
*/
|
||||
protected $payment_term_repo;
|
||||
|
||||
@ -121,7 +130,9 @@ class PaymentTermController extends BaseController
|
||||
*/
|
||||
public function create(CreatePaymentTermRequest $request)
|
||||
{
|
||||
$payment_term = PaymentTermFactory::create(auth()->user()->company()->id, auth()->user()->id);
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
$payment_term = PaymentTermFactory::create($user->company()->id, $user->id);
|
||||
|
||||
return $this->itemResponse($payment_term);
|
||||
}
|
||||
@ -172,7 +183,10 @@ class PaymentTermController extends BaseController
|
||||
*/
|
||||
public function store(StorePaymentTermRequest $request)
|
||||
{
|
||||
$payment_term = PaymentTermFactory::create(auth()->user()->company()->id, auth()->user()->id);
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$payment_term = PaymentTermFactory::create($user->company()->id, $user->id);
|
||||
$payment_term->fill($request->all());
|
||||
$payment_term->save();
|
||||
|
||||
@ -270,13 +284,13 @@ class PaymentTermController extends BaseController
|
||||
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||
* ),
|
||||
* )
|
||||
* @param EditPaymentRequest $request
|
||||
* @param Payment $payment
|
||||
* @param EditPaymentTermRequest $request
|
||||
* @param PaymentTerm $payment_term
|
||||
* @return Response|mixed
|
||||
*/
|
||||
public function edit(EditPaymentRequest $request, Payment $payment)
|
||||
public function edit(EditPaymentTermRequest $request, PaymentTerm $payment_term)
|
||||
{
|
||||
return $this->itemResponse($payment);
|
||||
return $this->itemResponse($payment_term);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -447,14 +461,17 @@ class PaymentTermController extends BaseController
|
||||
*/
|
||||
public function bulk()
|
||||
{
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$action = request()->input('action');
|
||||
|
||||
$ids = request()->input('ids');
|
||||
|
||||
$payment_terms = PaymentTerm::withTrashed()->company()->find($this->transformKeys($ids));
|
||||
|
||||
$payment_terms->each(function ($payment_term, $key) use ($action) {
|
||||
if (auth()->user()->can('edit', $payment_term)) {
|
||||
$payment_terms->each(function ($payment_term, $key) use ($action, $user) {
|
||||
if ($user->can('edit', $payment_term)) {
|
||||
$this->payment_term_repo->{$action}($payment_term);
|
||||
}
|
||||
});
|
||||
|
@ -209,7 +209,7 @@ class PreviewController extends BaseController
|
||||
|
||||
if ($request->has('entity_id')) {
|
||||
|
||||
/** @var \App\Models\BaseModel $class */
|
||||
/** @var \App\Models\Quote | \App\Models\Invoice | \App\Models\RecurringInvoice | \App\Models\Credit $class */
|
||||
$entity_obj = $class::on(config('database.default'))
|
||||
->with('client.company')
|
||||
->where('id', $this->decodePrimaryKey($request->input('entity_id')))
|
||||
@ -239,6 +239,7 @@ class PreviewController extends BaseController
|
||||
|
||||
$html = new HtmlEngine($entity_obj->invitations()->first());
|
||||
|
||||
/** @var \App\Models\Design $design */
|
||||
$design = \App\Models\Design::withTrashed()->find($entity_obj->design_id);
|
||||
|
||||
/* Catch all in case migration doesn't pass back a valid design */
|
||||
@ -343,6 +344,7 @@ class PreviewController extends BaseController
|
||||
$t = app('translator');
|
||||
$t->replace(Ninja::transformTranslations($company->settings));
|
||||
|
||||
/** @var \App\Models\InvoiceInvitation $invitation */
|
||||
$invitation = InvoiceInvitation::where('company_id', $company->id)->orderBy('id', 'desc')->first();
|
||||
|
||||
/* If we don't have a valid invitation in the system - create a mock using transactions */
|
||||
|
@ -140,10 +140,13 @@ class PreviewPurchaseOrderController extends BaseController
|
||||
return (new Phantom)->convertHtmlToPdf($maker->getCompiledHTML(true));
|
||||
}
|
||||
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
if (config('ninja.invoiceninja_hosted_pdf_generation') || config('ninja.pdf_generator') == 'hosted_ninja') {
|
||||
$pdf = (new NinjaPdf())->build($maker->getCompiledHTML(true));
|
||||
|
||||
$numbered_pdf = $this->pageNumbering($pdf, auth()->user()->company());
|
||||
$numbered_pdf = $this->pageNumbering($pdf, $user->company());
|
||||
|
||||
if ($numbered_pdf) {
|
||||
$pdf = $numbered_pdf;
|
||||
@ -153,7 +156,7 @@ class PreviewPurchaseOrderController extends BaseController
|
||||
}
|
||||
|
||||
//else
|
||||
$file_path = (new PreviewPdf($maker->getCompiledHTML(true), auth()->user()->company()))->handle();
|
||||
$file_path = (new PreviewPdf($maker->getCompiledHTML(true), $user->company()))->handle();
|
||||
|
||||
return response()->download($file_path, basename($file_path), ['Cache-Control:' => 'no-cache'])->deleteFileAfterSend(true);
|
||||
}
|
||||
@ -163,12 +166,15 @@ class PreviewPurchaseOrderController extends BaseController
|
||||
|
||||
public function live(PreviewPurchaseOrderRequest $request)
|
||||
{
|
||||
$company = auth()->user()->company();
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$company = $user->company();
|
||||
|
||||
MultiDB::setDb($company->db);
|
||||
|
||||
$repo = new PurchaseOrderRepository();
|
||||
$entity_obj = PurchaseOrderFactory::create($company->id, auth()->user()->id);
|
||||
$entity_obj = PurchaseOrderFactory::create($company->id, $user->id);
|
||||
$class = PurchaseOrder::class;
|
||||
|
||||
try {
|
||||
@ -196,6 +202,7 @@ class PreviewPurchaseOrderController extends BaseController
|
||||
|
||||
$html = new VendorHtmlEngine($entity_obj->invitations()->first());
|
||||
|
||||
/** @var \App\Models\Design $design */
|
||||
$design = \App\Models\Design::withTrashed()->find($entity_obj->design_id);
|
||||
|
||||
/* Catch all in case migration doesn't pass back a valid design */
|
||||
@ -243,6 +250,8 @@ class PreviewPurchaseOrderController extends BaseController
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
//if phantom js...... inject here..
|
||||
if (config('ninja.phantomjs_pdf_generation') || config('ninja.pdf_generator') == 'phantom') {
|
||||
@ -252,7 +261,7 @@ class PreviewPurchaseOrderController extends BaseController
|
||||
if (config('ninja.invoiceninja_hosted_pdf_generation') || config('ninja.pdf_generator') == 'hosted_ninja') {
|
||||
$pdf = (new NinjaPdf())->build($maker->getCompiledHTML(true));
|
||||
|
||||
$numbered_pdf = $this->pageNumbering($pdf, auth()->user()->company());
|
||||
$numbered_pdf = $this->pageNumbering($pdf, $user->company());
|
||||
|
||||
if ($numbered_pdf) {
|
||||
$pdf = $numbered_pdf;
|
||||
@ -279,11 +288,15 @@ class PreviewPurchaseOrderController extends BaseController
|
||||
|
||||
private function blankEntity()
|
||||
{
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
App::forgetInstance('translator');
|
||||
$t = app('translator');
|
||||
$t->replace(Ninja::transformTranslations(auth()->user()->company()->settings));
|
||||
$t->replace(Ninja::transformTranslations($user->company()->settings));
|
||||
|
||||
$invitation = PurchaseOrderInvitation::where('company_id', auth()->user()->company()->id)->orderBy('id', 'desc')->first();
|
||||
/** @var \App\Models\PurchaseOrderInvitation $invitation */
|
||||
$invitation = PurchaseOrderInvitation::where('company_id', $user->company()->id)->orderBy('id', 'desc')->first();
|
||||
|
||||
/* If we don't have a valid invitation in the system - create a mock using transactions */
|
||||
if (!$invitation) {
|
||||
@ -327,10 +340,13 @@ class PreviewPurchaseOrderController extends BaseController
|
||||
return (new Phantom)->convertHtmlToPdf($maker->getCompiledHTML(true));
|
||||
}
|
||||
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
if (config('ninja.invoiceninja_hosted_pdf_generation') || config('ninja.pdf_generator') == 'hosted_ninja') {
|
||||
$pdf = (new NinjaPdf())->build($maker->getCompiledHTML(true));
|
||||
|
||||
$numbered_pdf = $this->pageNumbering($pdf, auth()->user()->company());
|
||||
$numbered_pdf = $this->pageNumbering($pdf, $user->company());
|
||||
|
||||
if ($numbered_pdf) {
|
||||
$pdf = $numbered_pdf;
|
||||
@ -339,7 +355,7 @@ class PreviewPurchaseOrderController extends BaseController
|
||||
return $pdf;
|
||||
}
|
||||
|
||||
$file_path = (new PreviewPdf($maker->getCompiledHTML(true), auth()->user()->company()))->handle();
|
||||
$file_path = (new PreviewPdf($maker->getCompiledHTML(true), $user->company()))->handle();
|
||||
|
||||
$response = Response::make($file_path, 200);
|
||||
$response->header('Content-Type', 'application/pdf');
|
||||
@ -349,40 +365,47 @@ class PreviewPurchaseOrderController extends BaseController
|
||||
|
||||
private function mockEntity()
|
||||
{
|
||||
DB::connection(auth()->user()->company()->db)->beginTransaction();
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
DB::connection($user->company()->db)->beginTransaction();
|
||||
|
||||
/** @var \App\Models\Vendor $vendor */
|
||||
$vendor = Vendor::factory()->create([
|
||||
'user_id' => auth()->user()->id,
|
||||
'company_id' => auth()->user()->company()->id,
|
||||
'user_id' => $user->id,
|
||||
'company_id' => $user->company()->id,
|
||||
]);
|
||||
|
||||
/** @var \App\Models\VendorContact $contact */
|
||||
$contact = VendorContact::factory()->create([
|
||||
'user_id' => auth()->user()->id,
|
||||
'company_id' => auth()->user()->company()->id,
|
||||
'user_id' => $user->id,
|
||||
'company_id' => $user->company()->id,
|
||||
'vendor_id' => $vendor->id,
|
||||
'is_primary' => 1,
|
||||
'send_email' => true,
|
||||
]);
|
||||
|
||||
/** @var \App\Models\PurchaseOrder $purchase_order */
|
||||
$purchase_order = PurchaseOrder::factory()->create([
|
||||
'user_id' => auth()->user()->id,
|
||||
'company_id' => auth()->user()->company()->id,
|
||||
'user_id' => $user->id,
|
||||
'company_id' => $user->company()->id,
|
||||
'vendor_id' => $vendor->id,
|
||||
'terms' => 'Sample Terms',
|
||||
'footer' => 'Sample Footer',
|
||||
'public_notes' => 'Sample Public Notes',
|
||||
]);
|
||||
|
||||
/** @var \App\Models\PurchaseOrderInvitation $invitation */
|
||||
$invitation = PurchaseOrderInvitation::factory()->create([
|
||||
'user_id' => auth()->user()->id,
|
||||
'company_id' => auth()->user()->company()->id,
|
||||
'user_id' => $user->id,
|
||||
'company_id' => $user->company()->id,
|
||||
'purchase_order_id' => $purchase_order->id,
|
||||
'vendor_contact_id' => $contact->id,
|
||||
]);
|
||||
|
||||
$purchase_order->setRelation('invitations', $invitation);
|
||||
$purchase_order->setRelation('vendor', $vendor);
|
||||
$purchase_order->setRelation('company', auth()->user()->company());
|
||||
$purchase_order->setRelation('company', $user->company());
|
||||
$purchase_order->load('vendor.company');
|
||||
|
||||
$design_object = json_decode(json_encode(request()->input('design')));
|
||||
@ -413,7 +436,10 @@ class PreviewPurchaseOrderController extends BaseController
|
||||
->design($design)
|
||||
->build();
|
||||
|
||||
DB::connection(auth()->user()->company()->db)->rollBack();
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
DB::connection($user->company()->db)->rollBack();
|
||||
|
||||
if (request()->query('html') == 'true') {
|
||||
return $maker->getCompiledHTML();
|
||||
@ -426,7 +452,7 @@ class PreviewPurchaseOrderController extends BaseController
|
||||
if (config('ninja.invoiceninja_hosted_pdf_generation') || config('ninja.pdf_generator') == 'hosted_ninja') {
|
||||
$pdf = (new NinjaPdf())->build($maker->getCompiledHTML(true));
|
||||
|
||||
$numbered_pdf = $this->pageNumbering($pdf, auth()->user()->company());
|
||||
$numbered_pdf = $this->pageNumbering($pdf, $user->company());
|
||||
|
||||
if ($numbered_pdf) {
|
||||
$pdf = $numbered_pdf;
|
||||
@ -435,7 +461,7 @@ class PreviewPurchaseOrderController extends BaseController
|
||||
return $pdf;
|
||||
}
|
||||
|
||||
$file_path = (new PreviewPdf($maker->getCompiledHTML(true), auth()->user()->company()))->handle();
|
||||
$file_path = (new PreviewPdf($maker->getCompiledHTML(true), $user->company()))->handle();
|
||||
|
||||
$response = Response::make($file_path, 200);
|
||||
$response->header('Content-Type', 'application/pdf');
|
||||
|
@ -312,7 +312,10 @@ class ProjectController extends BaseController
|
||||
*/
|
||||
public function create(CreateProjectRequest $request)
|
||||
{
|
||||
$project = ProjectFactory::create(auth()->user()->company()->id, auth()->user()->id);
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$project = ProjectFactory::create($user->company()->id, $user->id);
|
||||
|
||||
return $this->itemResponse($project);
|
||||
}
|
||||
@ -357,7 +360,10 @@ class ProjectController extends BaseController
|
||||
*/
|
||||
public function store(StoreProjectRequest $request)
|
||||
{
|
||||
$project = ProjectFactory::create(auth()->user()->company()->id, auth()->user()->id);
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$project = ProjectFactory::create($user->company()->id, $user->id);
|
||||
$project->fill($request->all());
|
||||
$project->saveQuietly();
|
||||
|
||||
@ -486,14 +492,17 @@ class ProjectController extends BaseController
|
||||
*/
|
||||
public function bulk()
|
||||
{
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$action = request()->input('action');
|
||||
|
||||
$ids = request()->input('ids');
|
||||
|
||||
$projects = Project::withTrashed()->find($this->transformKeys($ids));
|
||||
|
||||
$projects->each(function ($project, $key) use ($action) {
|
||||
if (auth()->user()->can('edit', $project)) {
|
||||
$projects->each(function ($project, $key) use ($action, $user) {
|
||||
if ($user->can('edit', $project)) {
|
||||
$this->project_repo->{$action}($project);
|
||||
}
|
||||
});
|
||||
@ -504,12 +513,10 @@ class ProjectController extends BaseController
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param UploadProductRequest $request
|
||||
* @param Product $project
|
||||
* @param UploadProjectRequest $request
|
||||
* @param Project $project
|
||||
* @return Response
|
||||
*
|
||||
*
|
||||
*
|
||||
* @OA\Put(
|
||||
* path="/api/v1/projects/{id}/upload",
|
||||
* operationId="uploadProject",
|
||||
|
@ -162,7 +162,10 @@ class QuoteController extends BaseController
|
||||
*/
|
||||
public function create(CreateQuoteRequest $request)
|
||||
{
|
||||
$quote = QuoteFactory::create(auth()->user()->company()->id, auth()->user()->id);
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$quote = QuoteFactory::create($user->company()->id, $user->id);
|
||||
|
||||
return $this->itemResponse($quote);
|
||||
}
|
||||
@ -208,16 +211,17 @@ class QuoteController extends BaseController
|
||||
*/
|
||||
public function store(StoreQuoteRequest $request)
|
||||
{
|
||||
$client = Client::find($request->input('client_id'));
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$quote = $this->quote_repo->save($request->all(), QuoteFactory::create(auth()->user()->company()->id, auth()->user()->id));
|
||||
$quote = $this->quote_repo->save($request->all(), QuoteFactory::create($user->company()->id, $user->id));
|
||||
|
||||
$quote = $quote->service()
|
||||
->fillDefaults()
|
||||
->triggeredActions($request)
|
||||
->save();
|
||||
|
||||
event(new QuoteWasCreated($quote, $quote->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));
|
||||
event(new QuoteWasCreated($quote, $quote->company, Ninja::eventVars($user->id)));
|
||||
|
||||
return $this->itemResponse($quote);
|
||||
}
|
||||
@ -509,6 +513,9 @@ class QuoteController extends BaseController
|
||||
*/
|
||||
public function bulk(BulkActionQuoteRequest $request)
|
||||
{
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$action = request()->input('action');
|
||||
|
||||
$ids = request()->input('ids');
|
||||
@ -528,8 +535,8 @@ class QuoteController extends BaseController
|
||||
*/
|
||||
|
||||
if ($action == 'bulk_download' && $quotes->count() >= 1) {
|
||||
$quotes->each(function ($quote) {
|
||||
if (auth()->user()->cannot('view', $quote)) {
|
||||
$quotes->each(function ($quote) use($user){
|
||||
if ($user->cannot('view', $quote)) {
|
||||
return response()->json(['message'=> ctrans('texts.access_denied')]);
|
||||
}
|
||||
});
|
||||
@ -543,8 +550,8 @@ class QuoteController extends BaseController
|
||||
$this->entity_type = Quote::class;
|
||||
$this->entity_transformer = QuoteTransformer::class;
|
||||
|
||||
$quotes->each(function ($quote, $key) use ($action) {
|
||||
if (auth()->user()->can('edit', $quote) && $quote->service()->isConvertable()) {
|
||||
$quotes->each(function ($quote, $key) use ($user) {
|
||||
if ($user->can('edit', $quote) && $quote->service()->isConvertable()) {
|
||||
$quote->service()->convertToInvoice();
|
||||
}
|
||||
});
|
||||
@ -552,7 +559,7 @@ class QuoteController extends BaseController
|
||||
return $this->listResponse(Quote::withTrashed()->whereIn('id', $this->transformKeys($ids))->company());
|
||||
}
|
||||
|
||||
if ($action == 'bulk_print' && auth()->user()->can('view', $quotes->first())) {
|
||||
if ($action == 'bulk_print' && $user->can('view', $quotes->first())) {
|
||||
$paths = $quotes->map(function ($quote) {
|
||||
return $quote->service()->getQuotePdf();
|
||||
});
|
||||
@ -566,9 +573,9 @@ class QuoteController extends BaseController
|
||||
|
||||
|
||||
if ($action == 'convert_to_project') {
|
||||
$quotes->each(function ($quote, $key) use ($action) {
|
||||
if (auth()->user()->can('edit', $quote)) {
|
||||
$project = CloneQuoteToProjectFactory::create($quote, auth()->user()->id);
|
||||
$quotes->each(function ($quote, $key) use ($user) {
|
||||
if ($user->can('edit', $quote)) {
|
||||
$project = CloneQuoteToProjectFactory::create($quote, $user->id);
|
||||
|
||||
if (empty($project->number)) {
|
||||
$project->number = $this->getNextProjectNumber($project);
|
||||
@ -585,8 +592,8 @@ class QuoteController extends BaseController
|
||||
/*
|
||||
* Send the other actions to the switch
|
||||
*/
|
||||
$quotes->each(function ($quote, $key) use ($action) {
|
||||
if (auth()->user()->can('edit', $quote)) {
|
||||
$quotes->each(function ($quote, $key) use ($action, $user) {
|
||||
if ($user->can('edit', $quote)) {
|
||||
$this->performAction($quote, $action, true);
|
||||
}
|
||||
});
|
||||
@ -607,18 +614,18 @@ class QuoteController extends BaseController
|
||||
* tags={"quotes"},
|
||||
* summary="Performs a custom action on an Quote",
|
||||
* description="Performs a custom action on an Quote.
|
||||
|
||||
The current range of actions are as follows
|
||||
- clone_to_quote
|
||||
- history
|
||||
- delivery_note
|
||||
- mark_paid
|
||||
- download
|
||||
- archive
|
||||
- delete
|
||||
- convert
|
||||
- convert_to_invoice
|
||||
- email",
|
||||
*
|
||||
* The current range of actions are as follows
|
||||
* - clone_to_quote
|
||||
* - history
|
||||
* - delivery_note
|
||||
* - mark_paid
|
||||
* - download
|
||||
* - archive
|
||||
* - delete
|
||||
* - convert
|
||||
* - convert_to_invoice
|
||||
* - email",
|
||||
* @OA\Parameter(ref="#/components/parameters/X-API-TOKEN"),
|
||||
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||
|
@ -49,7 +49,7 @@ class RecurringExpenseController extends BaseController
|
||||
protected $entity_transformer = RecurringExpenseTransformer::class;
|
||||
|
||||
/**
|
||||
* @var RecurringExpenseepository
|
||||
* @var RecurringExpenseRepository
|
||||
*/
|
||||
protected $recurring_expense_repo;
|
||||
|
||||
@ -72,7 +72,7 @@ class RecurringExpenseController extends BaseController
|
||||
* summary="Gets a list of recurring_expenses",
|
||||
* description="Lists recurring_expenses, search and filters allow fine grained lists to be generated.
|
||||
|
||||
Query parameters can be added to performed more fine grained filtering of the recurring_expenses, these are handled by the RecurringExpenseFilters class which defines the methods available",
|
||||
* Query parameters can be added to performed more fine grained filtering of the recurring_expenses, these are handled by the RecurringExpenseFilters class which defines the methods available",
|
||||
* @OA\Parameter(ref="#/components/parameters/X-API-TOKEN"),
|
||||
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||
|
@ -231,7 +231,7 @@ class User extends Authenticatable implements MustVerifyEmail
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
|
||||
*/
|
||||
public function companies()
|
||||
public function companies(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
|
||||
{
|
||||
return $this->belongsToMany(Company::class)->using(CompanyUser::class)->withPivot('permissions', 'settings', 'is_admin', 'is_owner', 'is_locked')->withTimestamps();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user