Skip to content

Commit

Permalink
fix: merge
Browse files Browse the repository at this point in the history
  • Loading branch information
itzArtha committed Jan 21, 2025
2 parents 557787e + 505b44e commit cf00e11
Show file tree
Hide file tree
Showing 26 changed files with 879 additions and 204 deletions.
235 changes: 234 additions & 1 deletion app/Actions/Fulfilment/Fulfilment/UI/ShowFulfilment.php

Large diffs are not rendered by default.

48 changes: 12 additions & 36 deletions app/Actions/Fulfilment/PalletReturn/AddAddressToPalletReturn.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
use App\Actions\Traits\WithModelAddressActions;
use App\Http\Resources\Fulfilment\PalletReturnResource;
use App\Models\CRM\WebUser;
use App\Models\Fulfilment\FulfilmentCustomer;
use App\Models\Fulfilment\PalletReturn;
use App\Rules\ValidAddress;
use Lorisleiva\Actions\ActionRequest;
Expand All @@ -26,29 +25,17 @@ class AddAddressToPalletReturn extends OrgAction
use WithActionUpdate;
use WithModelAddressActions;

public function handle(FulfilmentCustomer $fulfilmentCustomer, PalletReturn $palletReturn, array $modelData): PalletReturn
public function handle(PalletReturn $palletReturn, array $modelData): PalletReturn
{
if ($modelData == []) {
$address = $fulfilmentCustomer->customer->address->toArray();
$palletReturn = $this->addAddressToModelFromArray(
model: $palletReturn,
addressData: $address,
scope: 'delivery',
updateLocation: false,
updateAddressField:false
);
} else {
$palletReturn = $this->addAddressToModelFromArray(
model: $palletReturn,
addressData: $modelData['delivery_address'],
scope: 'delivery',
updateLocation: false,
updateAddressField:false
);
}
$palletReturn = $this->addAddressToModelFromArray(
model: $palletReturn,
addressData: $modelData['delivery_address'],
scope: 'delivery',
updateLocation: false,
updateAddressField:false
);

$palletReturn->refresh();
$palletReturn->update(['delivery_address_id' => null]);
PalletReturnRecordSearch::dispatch($palletReturn);

return $palletReturn;
Expand Down Expand Up @@ -76,35 +63,24 @@ public function rules(): array
}


public function asController(FulfilmentCustomer $fulfilmentCustomer, PalletReturn $palletReturn, ActionRequest $request): PalletReturn
public function asController(PalletReturn $palletReturn, ActionRequest $request): PalletReturn
{
$this->initialisationFromFulfilment($palletReturn->fulfilment, $request);

return $this->handle($fulfilmentCustomer, $palletReturn, $this->validatedData);
return $this->handle($palletReturn, $this->validatedData);
}

public function action(FulfilmentCustomer $fulfilmentCustomer, PalletReturn $palletReturn, array $modelData, int $hydratorsDelay = 0, bool $strict = true): PalletReturn
public function action(PalletReturn $palletReturn, array $modelData, int $hydratorsDelay = 0, bool $strict = true): PalletReturn
{
$this->asAction = true;
$this->hydratorsDelay = $hydratorsDelay;
$this->strict = $strict;
$this->initialisationFromFulfilment($palletReturn->fulfilment, $modelData);


return $this->handle($fulfilmentCustomer, $palletReturn, $this->validatedData);
return $this->handle($palletReturn, $this->validatedData);
}

public function fromRetina(PalletReturn $palletReturn, ActionRequest $request): PalletReturn
{
$customer = $request->user()->customer;
$palletReturn = $request->user()->customer->palletReturn;

$this->initialisation($request->get('website')->organisation, $request);

return $this->handle($customer, $palletReturn, $this->validatedData);
}


public function jsonResponse(PalletReturn $palletReturn): PalletReturnResource
{
return new PalletReturnResource($palletReturn);
Expand Down
16 changes: 2 additions & 14 deletions app/Actions/Fulfilment/PalletReturn/DeletePalletReturnAddress.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@

use App\Actions\Helpers\Address\Hydrators\AddressHydrateUsage;
use App\Actions\OrgAction;
use App\Models\Fulfilment\FulfilmentCustomer;
use App\Models\Fulfilment\PalletReturn;
use App\Models\Helpers\Address;
use Illuminate\Support\Facades\DB;
Expand All @@ -31,7 +30,6 @@ public function handle(PalletReturn $palletreturn, Address $address): PalletRetu
$address->delete();

$palletreturn->refresh();
$palletreturn->update(['is_collection' => true]);
return $palletreturn;
}

Expand All @@ -44,10 +42,10 @@ public function afterValidator(Validator $validator): void

}

public function asController(FulfilmentCustomer $fulfilmentCustomer, PalletReturn $palletReturn, Address $address, ActionRequest $request): void
public function asController(PalletReturn $palletReturn, Address $address, ActionRequest $request): void
{
$this->address = $address;
$this->initialisationFromFulfilment($fulfilmentCustomer->fulfilment, $request);
$this->initialisationFromFulfilment($palletReturn->fulfilment, $request);
$this->handle($palletReturn, $address);
}

Expand All @@ -57,14 +55,4 @@ public function action(PalletReturn $palletreturn, Address $address): PalletRetu
$this->initialisationFromShop($palletreturn->shop, []);
return $this->handle($palletreturn, $address);
}

public function fromRetina(FulfilmentCustomer $fulfilmentCustomer, PalletReturn $palletreturn, Address $address, ActionRequest $request): PalletReturn
{
$this->address = $address;
$palletreturn = $request->user()->palletreturn;

$this->initialisation($request->get('website')->organisation, $request);

return $this->handle($palletreturn, $address);
}
}
47 changes: 12 additions & 35 deletions app/Actions/Fulfilment/PalletReturn/UI/ShowPalletReturn.php
Original file line number Diff line number Diff line change
Expand Up @@ -494,63 +494,40 @@ public function htmlResponse(PalletReturn $palletReturn, ActionRequest $request)
FulfilmentCustomerResource::make($palletReturn->fulfilmentCustomer)->getArray(),
[
'address' => [
'value' => $palletReturn->is_collection ? [] : AddressResource::make($palletReturn->deliveryAddress),
'value' => $palletReturn->is_collection ?
[] :
AddressResource::make($palletReturn->deliveryAddress),
'options' => [
'countriesAddressData' => GetAddressData::run()
],
// 'address' => $palletReturn->is_collection ? [] : AddressResource::make($palletReturn->deliveryAddress),
// 'address_list' => AddressResource::make($palletReturn->deliveryAddress),
'address_customer' => [
'value' => AddressResource::make($palletReturn->fulfilmentCustomer->customer->address),
'options' => [
'countriesAddressData' => GetAddressData::run()
],
],
'pinned_address_id' => $palletReturn->fulfilmentCustomer->customer->delivery_address_id,
'home_address_id' => $palletReturn->fulfilmentCustomer->customer->address_id,
'current_selected_address_id' => $palletReturn->delivery_address_id,
// 'selected_delivery_addresses_id' => $palletReturnDeliveryAddressIds,
// 'routes_list' => [
// 'pinned_route' => [
// 'method' => 'patch',
// 'name' => 'grp.models.customer.delivery-address.update',
// 'parameters' => [
// 'customer' => $palletReturn->fulfilmentCustomer->customer_id
// ]
// ],
// 'delete_route' => [
// 'method' => 'delete',
// 'name' => 'grp.models.fulfilment-customer.pallet-return-address.delete',
// 'parameters' => [
// 'fulfilmentCustomer' => $palletReturn->fulfilmentCustomer->id,
// 'palletReturn' => $palletReturn->id
// ]
// ],
// 'store_route' => [
// 'method' => 'post',
// 'name' => 'grp.models.fulfilment-customer.pellet-return-address.store',
// 'parameters' => [
// 'fulfilmentCustomer' => $palletReturn->fulfilmentCustomer->id,
// 'palletReturn' => $palletReturn->id
// ]
// ],
// ]
'routes_address' => [
'store' => [
'method' => 'post',
'name' => 'grp.models.fulfilment-customer.pallet-return-address.store',
'name' => 'grp.models.pallet-return.address.store',
'parameters' => [
'fulfilmentCustomer' => $palletReturn->fulfilmentCustomer->id,
'palletReturn' => $palletReturn->id
]
],
'delete' => [
'method' => 'delete',
'name' => 'grp.models.fulfilment-customer.pallet-return-address.delete',
'name' => 'grp.models.pallet-return.address.delete',
'parameters' => [
'fulfilmentCustomer' => $palletReturn->fulfilmentCustomer->id,
'palletReturn' => $palletReturn->id
]
],
'update' => [
'method' => 'patch',
'name' => 'grp.models.fulfilment-customer.pallet-return-address.update',
'name' => 'grp.models.pallet-return.address.update',
'parameters' => [
'fulfilmentCustomer' => $palletReturn->fulfilmentCustomer->id,
'palletReturn' => $palletReturn->id
]
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,12 @@

class UpdatePalletReturnDeliveryAddress extends OrgAction
{
public function handle(FulfilmentCustomer $fulfilmentcustomer, PalletReturn $palletReturn, array $modelData): void
public function handle(PalletReturn $palletReturn, array $modelData): void
{
if (Arr::get($modelData, 'is_collection', true)) {
$isCollection = Arr::get($modelData, 'is_collection', true);
$palletReturn->update(['is_collection' => $isCollection]);

if (!$isCollection) {
$addressData = Arr::get($modelData, 'address');
$countryCode = Country::find($addressData['country_id'])->code;
data_set($addressData, 'country_code', $countryCode);
Expand All @@ -37,8 +40,8 @@ public function handle(FulfilmentCustomer $fulfilmentcustomer, PalletReturn $pal
$updatedAddress->id,
$pivotData
);
} else {
DeletePalletReturnAddress::run($palletReturn, Address::find($fulfilmentcustomer->palletReturn->delivery_address_id));
} elseif ($palletReturn->delivery_address_id) {
DeletePalletReturnAddress::run($palletReturn, Address::find($palletReturn->delivery_address_id));
}
}

Expand All @@ -64,27 +67,19 @@ public function authorize(ActionRequest $request): bool
return false;
}

public function asController(FulfilmentCustomer $fulfilmentcustomer, PalletReturn $palletReturn, ActionRequest $request): void
public function asController(PalletReturn $palletReturn, ActionRequest $request): void
{
$this->scope = $fulfilmentcustomer;
$this->initialisationFromShop($fulfilmentcustomer->shop, $request);
$this->scope = $palletReturn->customer;
$this->initialisationFromShop($palletReturn->shop, $request);

$this->handle($fulfilmentcustomer, $palletReturn, $this->validatedData);
$this->handle($palletReturn, $this->validatedData);
}

// public function fromFulfilmentFulfilmentCustomer(FulfilmentFulfilmentCustomer $fulfilmentFulfilmentCustomer, ActionRequest $request): void
// {
// $this->scope = $fulfilmentFulfilmentCustomer;
// $this->initialisationFromFulfilment($fulfilmentFulfilmentCustomer->fulfilment, $request);

// $this->handle($fulfilmentFulfilmentCustomer->fulfilmentcustomer, $this->validatedData);
// }

public function action(FulfilmentCustomer $fulfilmentcustomer, PalletReturn $palletReturn, $modelData): void
public function action(PalletReturn $palletReturn, $modelData): void
{
$this->asAction = true;
$this->initialisationFromShop($fulfilmentcustomer->shop, $modelData);
$this->initialisationFromShop($palletReturn->shop, $modelData);

$this->handle($fulfilmentcustomer, $palletReturn, $this->validatedData);
$this->handle($palletReturn, $this->validatedData);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,10 @@ public function fromRetinaInPalletReturn(PalletReturn $palletReturn, ActionReque
$this->handle($palletReturn, $this->validatedData);
}

public function action(PalletReturn|PalletDelivery $parent, array $modelData): void
public function action(PalletReturn|PalletDelivery $parent, array $modelData): FulfilmentTransaction
{
$this->initialisationFulfilmentActions($parent->fulfilmentCustomer, $modelData);

$this->handle($parent, $this->validatedData);
return $this->handle($parent, $this->validatedData);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
use App\Actions\RetinaAction;
use App\Enums\Fulfilment\Pallet\PalletStateEnum;
use App\Enums\Fulfilment\Pallet\PalletStatusEnum;
use App\Models\CRM\WebUser;
use App\Models\Fulfilment\Pallet;
use App\Models\Fulfilment\PalletReturn;
use Illuminate\Http\RedirectResponse;
Expand All @@ -27,7 +28,7 @@ class AttachRetinaPalletsToReturn extends RetinaAction


private PalletReturn $parent;

private bool $action = false;
public function handle(PalletReturn $palletReturn, array $modelData): PalletReturn
{

Expand Down Expand Up @@ -56,7 +57,7 @@ public function handle(PalletReturn $palletReturn, array $modelData): PalletRetu
Pallet::whereIn('id', $palletsToSelect)->update([
'pallet_return_id' => $palletReturn->id,
'status' => PalletStatusEnum::RETURNING,
'state' => PalletStateEnum::REQUEST_RETURN
'state' => PalletStateEnum::REQUEST_RETURN_IN_PROCESS
]);

$pallets = Pallet::findOrFail($palletsToSelect);
Expand Down Expand Up @@ -100,7 +101,15 @@ public function unselectPallets(PalletReturn $palletReturn, array $palletIds): v

public function authorize(ActionRequest $request): bool
{
return true;
if ($this->action) {
return true;
}

if ($request->user() instanceof WebUser) {
return true;
}

return false;
}

public function rules(): array
Expand All @@ -118,6 +127,14 @@ public function asController(PalletReturn $palletReturn, ActionRequest $request)
return $this->handle($palletReturn, $this->validatedData);
}

public function action(PalletReturn $palletReturn, array $modelData): PalletReturn
{
$this->action = true;
$this->initialisationFulfilmentActions($palletReturn->fulfilmentCustomer, $modelData);

return $this->handle($palletReturn, $this->validatedData);
}

public function htmlResponse(PalletReturn $palletReturn, ActionRequest $request): RedirectResponse
{
return Redirect::route('retina.fulfilment.storage.pallet-returns.show', [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class CancelRetinaPalletReturn extends RetinaAction
{
use WithActionUpdate;


private bool $action = false;
public function handle(PalletReturn $palletReturn, array $modelData): PalletReturn
{
$modelData[PalletReturnStateEnum::CANCEL->value.'_at'] = now();
Expand All @@ -55,6 +55,9 @@ public function handle(PalletReturn $palletReturn, array $modelData): PalletRetu

public function authorize(ActionRequest $request): bool
{
if ($this->action) {
return true;
}
return true;
}

Expand All @@ -68,4 +71,11 @@ public function asController(PalletReturn $palletReturn, ActionRequest $request)
$this->initialisation($request);
return $this->handle($palletReturn, $this->validatedData);
}

public function action(PalletReturn $palletReturn, array $modelData): PalletReturn
{
$this->action = true;
$this->initialisationFulfilmentActions($palletReturn->fulfilmentCustomer, $modelData);
return $this->handle($palletReturn, $this->validatedData);
}
}
Loading

0 comments on commit cf00e11

Please sign in to comment.