mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-31 15:42:03 -04:00
refactor for download routes
This commit is contained in:
parent
ce4f808945
commit
86015c66e0
@ -252,11 +252,9 @@ class InvoiceController extends Controller
|
|||||||
if ($invoices->count() == 1) {
|
if ($invoices->count() == 1) {
|
||||||
$invoice = $invoices->first();
|
$invoice = $invoices->first();
|
||||||
|
|
||||||
$file = $invoice->service()->getInvoicePdf(auth()->guard('contact')->user());
|
return response()->streamDownload(function () use ($invoice) {
|
||||||
|
echo $invoice->service()->getInvoicePdf(auth()->guard('contact')->user());
|
||||||
return response()->streamDownload(function () use ($file) {
|
}, $invoice->getFileName(), ['Content-Type' => 'application/pdf']);
|
||||||
echo Storage::get($file);
|
|
||||||
}, basename($file), ['Content-Type' => 'application/pdf']);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->buildZip($invoices);
|
return $this->buildZip($invoices);
|
||||||
|
@ -526,11 +526,11 @@ class InvoiceController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'download' && $invoices->count() >=1 && $user->can('view', $invoices->first())) {
|
if ($action == 'download' && $invoices->count() >=1 && $user->can('view', $invoices->first())) {
|
||||||
$file = $invoices->first()->service()->getInvoicePdf();
|
|
||||||
$filename = $invoices->first()->getFileName();
|
$filename = $invoices->first()->getFileName();
|
||||||
nlog($filename);
|
|
||||||
return response()->streamDownload(function () use ($file) {
|
return response()->streamDownload(function () use($invoices) {
|
||||||
echo Storage::get($file);
|
echo $invoices->first()->service()->getInvoicePdf();
|
||||||
}, $filename, ['Content-Type' => 'application/pdf']);
|
}, $filename, ['Content-Type' => 'application/pdf']);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -539,10 +539,10 @@ class InvoiceController extends BaseController
|
|||||||
return (new \App\Jobs\Entity\CreateRawPdf($invoice->invitations->first()))->handle();
|
return (new \App\Jobs\Entity\CreateRawPdf($invoice->invitations->first()))->handle();
|
||||||
});
|
});
|
||||||
|
|
||||||
$merge = (new PdfMerge($paths->toArray()))->run();
|
|
||||||
|
|
||||||
return response()->streamDownload(function () use ($merge) {
|
return response()->streamDownload(function () use ($paths) {
|
||||||
echo($merge);
|
echo $merge = (new PdfMerge($paths->toArray()))->run();
|
||||||
}, 'print.pdf', ['Content-Type' => 'application/pdf']);
|
}, 'print.pdf', ['Content-Type' => 'application/pdf']);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -938,11 +938,10 @@ class InvoiceController extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function deliveryNote(ShowInvoiceRequest $request, Invoice $invoice)
|
public function deliveryNote(ShowInvoiceRequest $request, Invoice $invoice)
|
||||||
{
|
{
|
||||||
$file = $invoice->service()->getInvoiceDeliveryNote($invoice, $invoice->invitations->first()->contact);
|
|
||||||
$file_name = ctrans('texts.delivery_note'). " " .$invoice->getFileName();
|
return response()->streamDownload(function () use ($invoice) {
|
||||||
return response()->streamDownload(function () use ($file) {
|
echo $invoice->service()->getInvoiceDeliveryNote($invoice, $invoice->invitations->first()->contact);
|
||||||
echo $file;
|
}, $invoice->getDeliveryNoteName(), ['Content-Type' => 'application/pdf']);
|
||||||
}, $file_name, ['Content-Type' => 'application/pdf']);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -236,6 +236,22 @@ class BaseModel extends Model
|
|||||||
return $this->numberFormatter().'.'.$extension;
|
return $this->numberFormatter().'.'.$extension;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getDeliveryNoteName($extension = 'pdf')
|
||||||
|
{
|
||||||
|
|
||||||
|
$number = ctrans("texts.delivery_note"). "_" . $this->numberFormatter().'.'.$extension;
|
||||||
|
|
||||||
|
$formatted_number = mb_ereg_replace("([^\w\s\d\-_~,;\[\]\(\).])", '', $number);
|
||||||
|
|
||||||
|
$formatted_number = mb_ereg_replace("([\.]{2,})", '', $formatted_number);
|
||||||
|
|
||||||
|
$formatted_number = preg_replace('/\s+/', '_', $formatted_number);
|
||||||
|
|
||||||
|
return \Illuminate\Support\Str::ascii($formatted_number);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $extension
|
* @param string $extension
|
||||||
* @return string
|
* @return string
|
||||||
|
@ -21,7 +21,7 @@ use Tests\TestCase;
|
|||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
* @covers App\Http\Controllers\ActivityController
|
* @covers App\Http\Controllers\ActivityController
|
||||||
*/
|
*/
|
||||||
class DownloadHistoricalInvoiceTest extends TestCase
|
class DownloadHistoricalInvoiceTest extends TestCase
|
||||||
{
|
{
|
||||||
use MockAccountData;
|
use MockAccountData;
|
||||||
@ -39,6 +39,50 @@ class DownloadHistoricalInvoiceTest extends TestCase
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testDownloadInvoiceRoute()
|
||||||
|
{
|
||||||
|
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
|
'X-API-TOKEN' => $this->token,
|
||||||
|
])->get("/api/v1/invoices/{$this->invoice->hashed_id}/download");
|
||||||
|
|
||||||
|
$response->assertStatus(200);
|
||||||
|
$response->assertDownload();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDownloadDeliveryRoute()
|
||||||
|
{
|
||||||
|
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
|
'X-API-TOKEN' => $this->token,
|
||||||
|
])->get("/api/v1/invoices/{$this->invoice->hashed_id}/delivery_note");
|
||||||
|
|
||||||
|
$response->assertStatus(200);
|
||||||
|
$response->assertDownload();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDownloadInvoiceBulkActionRoute()
|
||||||
|
{
|
||||||
|
$data = [
|
||||||
|
'action' => 'download',
|
||||||
|
'ids' => [$this->invoice->hashed_id],
|
||||||
|
];
|
||||||
|
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
|
'X-API-TOKEN' => $this->token,
|
||||||
|
])->post("/api/v1/invoices/bulk", $data);
|
||||||
|
|
||||||
|
$response->assertStatus(200);
|
||||||
|
$response->assertDownload();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private function mockActivity()
|
private function mockActivity()
|
||||||
{
|
{
|
||||||
$activity_repo = new ActivityRepository();
|
$activity_repo = new ActivityRepository();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user