diff --git a/app/Http/Controllers/CreditController.php b/app/Http/Controllers/CreditController.php index 24db27876e92..41094bc129bd 100644 --- a/app/Http/Controllers/CreditController.php +++ b/app/Http/Controllers/CreditController.php @@ -11,35 +11,36 @@ namespace App\Http\Controllers; -use App\Events\Credit\CreditWasCreated; -use App\Events\Credit\CreditWasUpdated; -use App\Factory\CloneCreditFactory; +use App\Utils\Ninja; +use App\Models\Client; +use App\Models\Credit; +use App\Models\Account; +use App\Models\Invoice; +use Illuminate\Http\Response; use App\Factory\CreditFactory; use App\Filters\CreditFilters; -use App\Http\Requests\Credit\ActionCreditRequest; +use App\Jobs\Credit\ZipCredits; +use App\Utils\Traits\MakesHash; +use App\Jobs\Entity\EmailEntity; +use App\Factory\CloneCreditFactory; +use App\Services\PdfMaker\PdfMerge; +use Illuminate\Support\Facades\App; +use App\Utils\Traits\SavesDocuments; +use App\Repositories\CreditRepository; +use App\Events\Credit\CreditWasCreated; +use App\Events\Credit\CreditWasUpdated; +use App\Transformers\CreditTransformer; +use Illuminate\Support\Facades\Storage; +use App\Services\Template\TemplateAction; use App\Http\Requests\Credit\BulkCreditRequest; -use App\Http\Requests\Credit\CreateCreditRequest; -use App\Http\Requests\Credit\DestroyCreditRequest; use App\Http\Requests\Credit\EditCreditRequest; use App\Http\Requests\Credit\ShowCreditRequest; use App\Http\Requests\Credit\StoreCreditRequest; +use App\Http\Requests\Credit\ActionCreditRequest; +use App\Http\Requests\Credit\CreateCreditRequest; use App\Http\Requests\Credit\UpdateCreditRequest; use App\Http\Requests\Credit\UploadCreditRequest; -use App\Jobs\Credit\ZipCredits; -use App\Jobs\Entity\EmailEntity; -use App\Models\Account; -use App\Models\Client; -use App\Models\Credit; -use App\Models\Invoice; -use App\Repositories\CreditRepository; -use App\Services\PdfMaker\PdfMerge; -use App\Transformers\CreditTransformer; -use App\Utils\Ninja; -use App\Utils\Traits\MakesHash; -use App\Utils\Traits\SavesDocuments; -use Illuminate\Http\Response; -use Illuminate\Support\Facades\App; -use Illuminate\Support\Facades\Storage; +use App\Http\Requests\Credit\DestroyCreditRequest; /** * Class CreditController. @@ -550,6 +551,27 @@ class CreditController extends BaseController }, 'print.pdf', ['Content-Type' => 'application/pdf']); } + + if($action == 'template' && $user->can('view', $credits->first())) { + + $hash_or_response = $request->boolean('send_email') ? 'email sent' : \Illuminate\Support\Str::uuid(); + + TemplateAction::dispatch( + $credits->pluck('id')->toArray(), + $request->template_id, + Credit::class, + $user->id, + $user->company(), + $user->company()->db, + $hash_or_response, + $request->boolean('send_email') + ); + + return response()->json(['message' => $hash_or_response], 200); + } + + + $credits->each(function ($credit, $key) use ($action, $user) { if ($user->can('edit', $credit)) { $this->performAction($credit, $action, true); diff --git a/app/Http/Controllers/PaymentController.php b/app/Http/Controllers/PaymentController.php index adc3500acaeb..5977aae8f3d3 100644 --- a/app/Http/Controllers/PaymentController.php +++ b/app/Http/Controllers/PaymentController.php @@ -11,25 +11,27 @@ namespace App\Http\Controllers; -use App\Events\Payment\PaymentWasUpdated; -use App\Factory\PaymentFactory; -use App\Filters\PaymentFilters; -use App\Http\Requests\Payment\CreatePaymentRequest; -use App\Http\Requests\Payment\DestroyPaymentRequest; -use App\Http\Requests\Payment\EditPaymentRequest; -use App\Http\Requests\Payment\RefundPaymentRequest; -use App\Http\Requests\Payment\ShowPaymentRequest; -use App\Http\Requests\Payment\StorePaymentRequest; -use App\Http\Requests\Payment\UpdatePaymentRequest; -use App\Http\Requests\Payment\UploadPaymentRequest; +use App\Utils\Ninja; use App\Models\Account; use App\Models\Payment; -use App\Repositories\PaymentRepository; -use App\Transformers\PaymentTransformer; -use App\Utils\Ninja; +use Illuminate\Http\Response; +use App\Factory\PaymentFactory; +use App\Filters\PaymentFilters; use App\Utils\Traits\MakesHash; use App\Utils\Traits\SavesDocuments; -use Illuminate\Http\Response; +use App\Repositories\PaymentRepository; +use App\Transformers\PaymentTransformer; +use App\Events\Payment\PaymentWasUpdated; +use App\Services\Template\TemplateAction; +use App\Http\Requests\Payment\EditPaymentRequest; +use App\Http\Requests\Payment\ShowPaymentRequest; +use App\Http\Requests\Payment\StorePaymentRequest; +use App\Http\Requests\Payment\CreatePaymentRequest; +use App\Http\Requests\Payment\RefundPaymentRequest; +use App\Http\Requests\Payment\UpdatePaymentRequest; +use App\Http\Requests\Payment\UploadPaymentRequest; +use App\Http\Requests\Payment\DestroyPaymentRequest; +use App\Http\Requests\Payment\BulkActionPaymentRequest; /** * Class PaymentController. @@ -499,16 +501,39 @@ class PaymentController extends BaseController * ), * ) */ - public function bulk() + public function bulk(BulkActionPaymentRequest $request) { /** @var \App\Models\User $user */ $user = auth()->user(); - $action = request()->input('action'); + $action = $request->input('action'); - $ids = request()->input('ids'); + $ids = $request->input('ids'); + + $payments = Payment::withTrashed()->whereIn('id', $this->transformKeys($ids))->company()->get(); + + if (!$payments) { + return response()->json(['message' => ctrans('texts.record_not_found')]); + } + + if($action == 'template' && $user->can('view', $payments->first())) { + + $hash_or_response = request()->boolean('send_email') ? 'email sent' : \Illuminate\Support\Str::uuid(); + + TemplateAction::dispatch( + $payments->pluck('id')->toArray(), + $request->template_id, + PurchaseOrder::class, + $user->id, + $user->company(), + $user->company()->db, + $hash_or_response, + $request->boolean('send_email') + ); + + return response()->json(['message' => $hash_or_response], 200); + } - $payments = Payment::withTrashed()->find($this->transformKeys($ids)); $payments->each(function ($payment, $key) use ($action, $user) { if ($user->can('edit', $payment)) { diff --git a/app/Http/Controllers/PurchaseOrderController.php b/app/Http/Controllers/PurchaseOrderController.php index 4b0ad2e006c7..528442886b22 100644 --- a/app/Http/Controllers/PurchaseOrderController.php +++ b/app/Http/Controllers/PurchaseOrderController.php @@ -11,33 +11,34 @@ namespace App\Http\Controllers; -use App\Events\PurchaseOrder\PurchaseOrderWasCreated; -use App\Events\PurchaseOrder\PurchaseOrderWasUpdated; +use App\Utils\Ninja; +use App\Models\Client; +use App\Models\Account; +use App\Models\PurchaseOrder; +use Illuminate\Http\Response; +use App\Utils\Traits\MakesHash; +use App\Jobs\Entity\CreateRawPdf; +use App\Services\PdfMaker\PdfMerge; +use App\Utils\Traits\SavesDocuments; use App\Factory\PurchaseOrderFactory; use App\Filters\PurchaseOrderFilters; -use App\Http\Requests\PurchaseOrder\ActionPurchaseOrderRequest; +use Illuminate\Support\Facades\Storage; +use App\Services\Template\TemplateAction; +use App\Jobs\PurchaseOrder\ZipPurchaseOrders; +use App\Repositories\PurchaseOrderRepository; +use App\Jobs\PurchaseOrder\PurchaseOrderEmail; +use App\Transformers\PurchaseOrderTransformer; +use App\Events\PurchaseOrder\PurchaseOrderWasCreated; +use App\Events\PurchaseOrder\PurchaseOrderWasUpdated; use App\Http\Requests\PurchaseOrder\BulkPurchaseOrderRequest; -use App\Http\Requests\PurchaseOrder\CreatePurchaseOrderRequest; -use App\Http\Requests\PurchaseOrder\DestroyPurchaseOrderRequest; use App\Http\Requests\PurchaseOrder\EditPurchaseOrderRequest; use App\Http\Requests\PurchaseOrder\ShowPurchaseOrderRequest; use App\Http\Requests\PurchaseOrder\StorePurchaseOrderRequest; +use App\Http\Requests\PurchaseOrder\ActionPurchaseOrderRequest; +use App\Http\Requests\PurchaseOrder\CreatePurchaseOrderRequest; use App\Http\Requests\PurchaseOrder\UpdatePurchaseOrderRequest; use App\Http\Requests\PurchaseOrder\UploadPurchaseOrderRequest; -use App\Jobs\Entity\CreateRawPdf; -use App\Jobs\PurchaseOrder\PurchaseOrderEmail; -use App\Jobs\PurchaseOrder\ZipPurchaseOrders; -use App\Models\Account; -use App\Models\Client; -use App\Models\PurchaseOrder; -use App\Repositories\PurchaseOrderRepository; -use App\Services\PdfMaker\PdfMerge; -use App\Transformers\PurchaseOrderTransformer; -use App\Utils\Ninja; -use App\Utils\Traits\MakesHash; -use App\Utils\Traits\SavesDocuments; -use Illuminate\Http\Response; -use Illuminate\Support\Facades\Storage; +use App\Http\Requests\PurchaseOrder\DestroyPurchaseOrderRequest; class PurchaseOrderController extends BaseController { @@ -524,6 +525,28 @@ class PurchaseOrderController extends BaseController }, 'print.pdf', ['Content-Type' => 'application/pdf']); } + + + + if($action == 'template' && $user->can('view', $purchase_orders->first())) { + + $hash_or_response = $request->boolean('send_email') ? 'email sent' : \Illuminate\Support\Str::uuid(); + + TemplateAction::dispatch( + $purchase_orders->pluck('id')->toArray(), + $request->template_id, + PurchaseOrder::class, + $user->id, + $user->company(), + $user->company()->db, + $hash_or_response, + $request->boolean('send_email') + ); + + return response()->json(['message' => $hash_or_response], 200); + } + + /* * Send the other actions to the switch */ diff --git a/app/Http/Controllers/QuoteController.php b/app/Http/Controllers/QuoteController.php index 0a85ec8e9463..c5c6532f0b59 100644 --- a/app/Http/Controllers/QuoteController.php +++ b/app/Http/Controllers/QuoteController.php @@ -11,40 +11,41 @@ namespace App\Http\Controllers; -use App\Events\Quote\QuoteWasCreated; -use App\Events\Quote\QuoteWasUpdated; -use App\Factory\CloneQuoteFactory; -use App\Factory\CloneQuoteToInvoiceFactory; +use App\Utils\Ninja; +use App\Models\Quote; +use App\Models\Client; +use App\Models\Account; +use App\Models\Invoice; +use App\Models\Project; +use Illuminate\Http\Request; use App\Factory\QuoteFactory; use App\Filters\QuoteFilters; -use App\Http\Requests\Quote\ActionQuoteRequest; -use App\Http\Requests\Quote\BulkActionQuoteRequest; -use App\Http\Requests\Quote\CreateQuoteRequest; -use App\Http\Requests\Quote\DestroyQuoteRequest; +use App\Jobs\Quote\ZipQuotes; +use Illuminate\Http\Response; +use App\Utils\Traits\MakesHash; +use App\Factory\CloneQuoteFactory; +use App\Services\PdfMaker\PdfMerge; +use Illuminate\Support\Facades\App; +use App\Utils\Traits\SavesDocuments; +use App\Events\Quote\QuoteWasCreated; +use App\Events\Quote\QuoteWasUpdated; +use App\Repositories\QuoteRepository; +use App\Transformers\QuoteTransformer; +use App\Utils\Traits\GeneratesCounter; +use Illuminate\Support\Facades\Storage; +use App\Transformers\InvoiceTransformer; +use App\Transformers\ProjectTransformer; +use App\Services\Template\TemplateAction; +use App\Factory\CloneQuoteToInvoiceFactory; use App\Http\Requests\Quote\EditQuoteRequest; use App\Http\Requests\Quote\ShowQuoteRequest; use App\Http\Requests\Quote\StoreQuoteRequest; +use App\Http\Requests\Quote\ActionQuoteRequest; +use App\Http\Requests\Quote\CreateQuoteRequest; use App\Http\Requests\Quote\UpdateQuoteRequest; use App\Http\Requests\Quote\UploadQuoteRequest; -use App\Jobs\Quote\ZipQuotes; -use App\Models\Account; -use App\Models\Client; -use App\Models\Invoice; -use App\Models\Project; -use App\Models\Quote; -use App\Repositories\QuoteRepository; -use App\Services\PdfMaker\PdfMerge; -use App\Transformers\InvoiceTransformer; -use App\Transformers\ProjectTransformer; -use App\Transformers\QuoteTransformer; -use App\Utils\Ninja; -use App\Utils\Traits\GeneratesCounter; -use App\Utils\Traits\MakesHash; -use App\Utils\Traits\SavesDocuments; -use Illuminate\Http\Request; -use Illuminate\Http\Response; -use Illuminate\Support\Facades\App; -use Illuminate\Support\Facades\Storage; +use App\Http\Requests\Quote\DestroyQuoteRequest; +use App\Http\Requests\Quote\BulkActionQuoteRequest; /** * Class QuoteController. @@ -584,6 +585,28 @@ class QuoteController extends BaseController return $this->listResponse(Quote::query()->withTrashed()->whereIn('id', $this->transformKeys($ids))->company()); } + + if($action == 'template' && $user->can('view', $quotes->first())) { + + $hash_or_response = $request->boolean('send_email') ? 'email sent' : \Illuminate\Support\Str::uuid(); + + TemplateAction::dispatch( + $ids, + $request->template_id, + Quote::class, + $user->id, + $user->company(), + $user->company()->db, + $hash_or_response, + $request->boolean('send_email') + ); + + return response()->json(['message' => $hash_or_response], 200); + } + + + + /* * Send the other actions to the switch */ diff --git a/app/Http/Requests/Payment/BulkActionPaymentRequest.php b/app/Http/Requests/Payment/BulkActionPaymentRequest.php new file mode 100644 index 000000000000..393010c1b6d5 --- /dev/null +++ b/app/Http/Requests/Payment/BulkActionPaymentRequest.php @@ -0,0 +1,40 @@ + 'required|string', + 'ids' => 'required|array', + 'template' => 'sometimes|string', + 'template_id' => 'sometimes|string', + 'send_email' => 'sometimes|bool' + ]; + + } +}