mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-20 20:25:01 +00:00
update invoice profile
This commit is contained in:
@@ -3,38 +3,72 @@
|
|||||||
namespace App\Http\Controllers\Oasis;
|
namespace App\Http\Controllers\Oasis;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Resources\Oasis\InvoiceProfileCollection;
|
use App\Http\Resources\Oasis\InvoiceProfileResource;
|
||||||
|
use App\Models\Oasis\InvoiceProfile;
|
||||||
|
use App\Models\Setting;
|
||||||
|
use Illuminate\Contracts\Foundation\Application;
|
||||||
|
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Http\Response;
|
||||||
|
|
||||||
class InvoiceProfileController extends Controller
|
class InvoiceProfileController extends Controller
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @param Request $request
|
||||||
|
* @return Application|ResponseFactory|Response
|
||||||
|
*/
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$profile = \Auth::user()
|
$profile = InvoiceProfile::create([
|
||||||
->invoiceProfile()
|
'user_id' => $request->user()->id,
|
||||||
->create([
|
'logo' => store_avatar($request, 'logo') ?? null,
|
||||||
'logo' => store_avatar($request, 'logo') ?? null,
|
'stamp' => store_avatar($request, 'stamp') ?? null,
|
||||||
'stamp' => store_avatar($request, 'stamp') ?? null,
|
'company' => $request->company,
|
||||||
'company' => $request->company,
|
'email' => $request->email,
|
||||||
'email' => $request->email,
|
'ico' => $request->ico,
|
||||||
'ico' => $request->ico,
|
'dic' => $request->dic,
|
||||||
'dic' => $request->dic,
|
'ic_dph' => $request->ic_dph,
|
||||||
'ic_dph' => $request->ic_dph,
|
'registration_notes' => $request->registration_notes,
|
||||||
'registration_notes' => $request->registration_notes,
|
'author' => $request->author,
|
||||||
'author' => $request->author,
|
'address' => $request->address,
|
||||||
'address' => $request->address,
|
'state' => $request->state,
|
||||||
'state' => $request->state,
|
'city' => $request->city,
|
||||||
'city' => $request->city,
|
'postal_code' => $request->postal_code,
|
||||||
'postal_code' => $request->postal_code,
|
'country' => $request->country,
|
||||||
'country' => $request->country,
|
'phone' => $request->phone,
|
||||||
'phone' => $request->phone,
|
'bank' => $request->bank,
|
||||||
'bank' => $request->bank,
|
'iban' => $request->iban,
|
||||||
'iban' => $request->iban,
|
'swift' => $request->swift,
|
||||||
'swift' => $request->swift,
|
]);
|
||||||
]);
|
|
||||||
|
|
||||||
return response(
|
return response(
|
||||||
new InvoiceProfileCollection($profile), 201
|
new InvoiceProfileResource($profile), 201
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function update(Request $request)
|
||||||
|
{
|
||||||
|
// Store image if exist
|
||||||
|
if ($request->hasFile($request->name)) {
|
||||||
|
|
||||||
|
// Find and update image path
|
||||||
|
$request->user()
|
||||||
|
->invoiceProfile()
|
||||||
|
->update([
|
||||||
|
$request->name => store_avatar($request, $request->name)
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response('Done', 204);
|
||||||
|
}
|
||||||
|
|
||||||
|
$request->user()
|
||||||
|
->invoiceProfile()
|
||||||
|
->update(make_single_input($request));
|
||||||
|
|
||||||
|
return response('Done', 204);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,10 +12,12 @@ class InvoiceProfileCollection extends ResourceCollection
|
|||||||
* Transform the resource collection into an array.
|
* Transform the resource collection into an array.
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @return \Illuminate\Support\Collection
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function toArray($request)
|
public function toArray($request)
|
||||||
{
|
{
|
||||||
return $this->collection;
|
return [
|
||||||
|
'data' => $this->collection,
|
||||||
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
namespace App\Http\Resources\Oasis;
|
namespace App\Http\Resources\Oasis;
|
||||||
|
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
use Laravel\Cashier\Cashier;
|
|
||||||
|
|
||||||
class InvoiceProfileResource extends JsonResource
|
class InvoiceProfileResource extends JsonResource
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ Route::group(['middleware' => 'api', 'prefix' => '/api/oasis'], function () {
|
|||||||
Route::post('/', [InvoiceController::class, 'store']);
|
Route::post('/', [InvoiceController::class, 'store']);
|
||||||
|
|
||||||
Route::post('/profile', [InvoiceProfileController::class, 'store']);
|
Route::post('/profile', [InvoiceProfileController::class, 'store']);
|
||||||
|
Route::patch('/profile', [InvoiceProfileController::class, 'update']);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Clients
|
// Clients
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ use Tests\TestCase;
|
|||||||
|
|
||||||
class LanguageEditorTest extends TestCase
|
class LanguageEditorTest extends TestCase
|
||||||
{
|
{
|
||||||
//use DatabaseMigrations;
|
use DatabaseMigrations;
|
||||||
|
|
||||||
protected $setup;
|
protected $setup;
|
||||||
|
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ class OasisClientTest extends TestCase
|
|||||||
'id' => $client->id,
|
'id' => $client->id,
|
||||||
])->assertStatus(200);
|
])->assertStatus(200);
|
||||||
|
|
||||||
$this->getJson('/api/oasis/clients/search?query=info')
|
$this->getJson('/api/oasis/clients/search?query=inf')
|
||||||
->assertJsonFragment([
|
->assertJsonFragment([
|
||||||
'id' => $client->id,
|
'id' => $client->id,
|
||||||
])->assertStatus(200);
|
])->assertStatus(200);
|
||||||
|
|||||||
@@ -48,7 +48,10 @@ class OasisInvoiceProfileTest extends TestCase
|
|||||||
'bank' => 'Fio Banka',
|
'bank' => 'Fio Banka',
|
||||||
'iban' => 'SK20000054236423624',
|
'iban' => 'SK20000054236423624',
|
||||||
'swift' => 'FIOZXXX',
|
'swift' => 'FIOZXXX',
|
||||||
])->assertStatus(201);
|
])->assertStatus(201)
|
||||||
|
->assertJsonFragment([
|
||||||
|
'company' => 'VueFileManager Inc.',
|
||||||
|
]);
|
||||||
|
|
||||||
$this->assertDatabaseHas('invoice_profiles', [
|
$this->assertDatabaseHas('invoice_profiles', [
|
||||||
'user_id' => $user->id,
|
'user_id' => $user->id,
|
||||||
@@ -61,4 +64,58 @@ class OasisInvoiceProfileTest extends TestCase
|
|||||||
Storage::disk('local')->assertExists($profile->logo);
|
Storage::disk('local')->assertExists($profile->logo);
|
||||||
Storage::disk('local')->assertExists($profile->stamp);
|
Storage::disk('local')->assertExists($profile->stamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public function user_update_invoice_profile_column()
|
||||||
|
{
|
||||||
|
$user = User::factory(User::class)
|
||||||
|
->create(['role' => 'user']);
|
||||||
|
|
||||||
|
InvoiceProfile::factory(InvoiceProfile::class)
|
||||||
|
->create(['user_id' => $user->id]);
|
||||||
|
|
||||||
|
Sanctum::actingAs($user);
|
||||||
|
|
||||||
|
$this->patchJson('/api/oasis/invoices/profile', [
|
||||||
|
'name' => 'company',
|
||||||
|
'value' => 'VueFileManager Inc.',
|
||||||
|
])->assertStatus(204);
|
||||||
|
|
||||||
|
$this->assertDatabaseHas('invoice_profiles', [
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'company' => 'VueFileManager Inc.',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public function user_update_invoice_profile_logo()
|
||||||
|
{
|
||||||
|
$user = User::factory(User::class)
|
||||||
|
->create(['role' => 'user']);
|
||||||
|
|
||||||
|
InvoiceProfile::factory(InvoiceProfile::class)
|
||||||
|
->create(['user_id' => $user->id]);
|
||||||
|
|
||||||
|
Sanctum::actingAs($user);
|
||||||
|
|
||||||
|
$image = UploadedFile::fake()
|
||||||
|
->image('fake-image.jpg');
|
||||||
|
|
||||||
|
$this->patchJson('/api/oasis/invoices/profile', [
|
||||||
|
'name' => 'logo',
|
||||||
|
'logo' => $image,
|
||||||
|
])->assertStatus(204);
|
||||||
|
|
||||||
|
$this->assertDatabaseMissing('invoice_profiles', [
|
||||||
|
'logo' => null,
|
||||||
|
]);
|
||||||
|
|
||||||
|
Storage::disk('local')->assertExists(
|
||||||
|
InvoiceProfile::first()->logo
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user