Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
ea1cd1d
INI-1495 : Added Transport Company CTT on Aiku
davamoreno Apr 30, 2026
286f2e8
Update CTT configuration: move credentials to `app.sandbox` and refac…
inikoo May 5, 2026
1544646
Add `GetRelatedProductsFromAurora` action and refactor `CallApiCttEsS…
inikoo May 5, 2026
723d226
Merge branch 'main' into INI-1495
inikoo May 5, 2026
b2c9c62
feat: Pages: BlankLayout
aqordeon May 5, 2026
9011857
refactor: clean up commented code in family3Iris and family3Workshop …
YudhistiraA May 5, 2026
bd67a2a
feat(RedirectUnsubscribe): add error handling for invalid encrypted e…
ekayudinata May 5, 2026
f612e91
fix: code cant before namespace
aqordeon May 5, 2026
8fcc024
fix: Batchcode: hydrate from dispatch to run
aqordeon May 5, 2026
7268792
refactor: adjust UX loading click topbariris
RifqiTaw May 5, 2026
61eb310
fix: update layout for discount wrapper in Family3 component
YudhistiraA May 5, 2026
09e1f4a
Refactor related products syncing logic to include positional data; u…
inikoo May 5, 2026
a7fd2d8
Refactor spacing, formatting, and enums usage in Discounts test, Offe…
inikoo May 5, 2026
3f67959
Remove unused `AnnouncementResource` import; standardize spacing and …
inikoo May 5, 2026
59e39ec
Fix AIKU-18FA Standardize spacing, formatting, and exception handlin…
inikoo May 5, 2026
fe06782
Standardize spacing and add `date` field to Aurora API payload in `De…
inikoo May 5, 2026
d8253f1
Remove unused imports and commented code in Retina Dropshipping compo…
inikoo May 5, 2026
5bd78c4
Remove unused imports in `RetinaGoods.vue` to improve readability and…
inikoo May 5, 2026
b9245ec
Remove type declaration from `defineProps` in `RetinaGoods.vue` to im…
inikoo May 5, 2026
764fe03
Remove unused imports, commented code, and improve spacing in Retina …
inikoo May 5, 2026
cda9117
Refine chunking logic in Vite config to exclude Sentry from node_modu…
inikoo May 5, 2026
0d2a643
Remove unused imports and commented code in `RetinaPalletDelivery.vue…
inikoo May 5, 2026
4a92302
Update Sentry DSN environment variables for Iris, GRP, and Retina app…
inikoo May 5, 2026
2f8269c
Remove unused imports and commented code in Retina SysAdmin component…
inikoo May 5, 2026
788991a
Update Sentry DSN environment variables to use app-specific keys for …
inikoo May 5, 2026
85257d7
Remove unused import `RetinaTablePalletOrders` in `RetinaEcomOrders.v…
inikoo May 5, 2026
93c5bd0
Standardize import formatting and update Sentry integration in `app-i…
inikoo May 5, 2026
bd00a4e
Remove unused imports in `EbayAccountNameForm.vue` to improve readabi…
inikoo May 5, 2026
c8bd977
Restore Sentry release step in staging workflow with updated projects…
inikoo May 5, 2026
98d3b49
Fix Sentry projects variable in staging workflow for proper secrets u…
inikoo May 5, 2026
50b3ec6
Update Sentry projects configuration in staging workflow
inikoo May 5, 2026
6e4d3c8
Update Sentry projects configuration in staging workflow to include `…
inikoo May 5, 2026
ed12ceb
Update Sentry organization and projects configuration in staging work…
inikoo May 5, 2026
47ba047
Set `SENTRY_LOG_LEVEL` to `debug` in staging workflow for enhanced lo…
inikoo May 5, 2026
290016c
Comment out Sentry release step in staging workflow.
inikoo May 5, 2026
982ce83
fix: update warehouse parameter to use selected picking for batch code
aqordeon May 6, 2026
97f1294
fix: BatchCode: adjust UI
aqordeon May 6, 2026
c960fd0
fix: remove unused `$command` parameter from CheckBulkShopifyPortfoli…
itzArtha May 5, 2026
f86548b
fix: validate SKU presence for Shopify product variant operations
itzArtha May 6, 2026
cb0fc88
show Gr in family 3
YudhistiraA May 6, 2026
777e67b
fix margin button
YudhistiraA May 6, 2026
5f51d66
fix: use `Arr::get` for safer array access in ProspectImport
itzArtha May 6, 2026
ea6bbc5
fix link Button family-3
YudhistiraA May 6, 2026
aa05e1f
fix: remove environment checks for Tiktok channel UI elements
itzArtha May 6, 2026
bc5f8bd
fix: BatchCode: adjust title on create
aqordeon May 6, 2026
7c69d8b
fix: Table: press Enter on search will immediate search
aqordeon May 6, 2026
1f66a57
fix: Table: immediate cancel visit on typing search
aqordeon May 6, 2026
9a5ed19
fix: add default values for Tiktok service configuration
itzArtha May 6, 2026
7f73ed1
fix: update redirect URI for TikTok authentication callback
itzArtha May 6, 2026
23978ba
feat(Prospect): add prospect creation functionality and UI improvements
ekayudinata May 6, 2026
5095acf
update button label to "Create Prospect"
ekayudinata May 6, 2026
7a70f67
refactor: adjust UX click loading cta1,4, families 3 & slider iris
RifqiTaw May 6, 2026
391263d
refactor: adjust typo variable definiton family3iris component
RifqiTaw May 6, 2026
176562f
update create prospect page authorization
ekayudinata May 6, 2026
9d60a3a
refactor: adjust validation loading value in iris ds
RifqiTaw May 6, 2026
71c9195
Add null check for products before accessing `master_product_id` in A…
inikoo May 6, 2026
d6eb3d9
INI-1498: Duplicate item being shown on Order fix
louis-perez May 6, 2026
7ee28a1
refactor: adjust Ux loading in banner slider & announceinformation iris
RifqiTaw May 6, 2026
4435fe7
Refactoring CTT Shipping code
davamoreno May 6, 2026
6735dd0
fix: populate address error key in CTT ES to trigger UI error modal
davamoreno May 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/deploy-staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ jobs:
environment: staging
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
SENTRY_LOG_LEVEL: debug
steps:
- name: Checkout repo
uses: actions/checkout@v6
Expand Down Expand Up @@ -58,8 +59,8 @@ jobs:
# uses: getsentry/action-release@v3
# env:
# SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
# SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
# SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECTS }}
# SENTRY_ORG: 'inikoo-ltd'
# with:
# environment: staging
# projects: 'aiku'
# release: ${{ steps.date.outputs.date }}
17 changes: 17 additions & 0 deletions app/Actions/CRM/Prospect/StoreProspect.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
use Illuminate\Validation\Rule;
use Illuminate\Validation\Rules\Enum;
use Illuminate\Validation\Validator;
use Inertia\Inertia;
use Lorisleiva\Actions\ActionRequest;
use Lorisleiva\Actions\Concerns\WithAttributes;

Expand Down Expand Up @@ -221,4 +222,20 @@ public function action(Shop $shop, array $modelData, int $hydratorsDelay = 0, bo
return $this->handle($shop, $this->validatedData);
}

public function asController(Shop $shop, ActionRequest $request): Prospect
{
$this->initialisationFromShop($shop, $request);
return $this->handle($shop, $this->validatedData);
}

public function htmlResponse(Prospect $prospect): \Symfony\Component\HttpFoundation\Response
{
return Inertia::location(route(
'grp.org.shops.show.crm.prospects.index',
[
'organisation' => $prospect->organisation->slug,
'shop' => $prospect->shop->slug,
]
));
}
}
78 changes: 39 additions & 39 deletions app/Actions/CRM/Prospect/UI/CreateProspect.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,50 +48,50 @@ public function handle(Shop $parent, ActionRequest $request): Response
],
'formData' => [
'blueprint' =>
[
[
[
'title' => __('Contact'),
'fields' => [
'company_name' => [
'type' => 'input',
'label' => __('Company')
],
'contact_name' => [
'type' => 'input',
'label' => __('Contact name'),
'required' => true
],
'email' => [
'type' => 'input',
'label' => __('Email')
],
'phone' => [
'type' => 'phone',
'label' => __('phone')
],
'contact_website' => [
'type' => 'inputWithAddOn',
'label' => __('website'),
'leftAddOn' => [
'label' => 'https://'
],
'title' => __('Contact'),
'fields' => [
'company_name' => [
'type' => 'input',
'label' => __('Company')
],
'contact_name' => [
'type' => 'input',
'label' => __('Contact name'),
'required' => true
],
'email' => [
'type' => 'input',
'label' => __('Email')
],
'phone' => [
'type' => 'phone',
'label' => __('phone')
],
'contact_website' => [
'type' => 'inputWithAddOn',
'label' => __('website'),
'leftAddOn' => [
'label' => 'https://'
],
],

]
],
]
],
],
'route' =>
match (class_basename($parent)) {
'Shop' => [
'name' => 'org.models.shop.prospect.store',
'parameters' => [$parent->id]
],
default => [
[
'name' => 'org.models.prospect.store',
]
match (class_basename($parent)) {
'Shop' => [
'name' => 'grp.models.shop.prospect.store',
'parameters' => [$parent->id]
],
default => [
[
'name' => 'org.models.prospect.store',
]
}
]
}
]

]
Expand All @@ -100,7 +100,7 @@ public function handle(Shop $parent, ActionRequest $request): Response

public function authorize(ActionRequest $request): bool
{
return $request->user()->authTo('crm.edit');
return $request->user()->authTo("crm.{$this->shop->id}.edit");
}


Expand Down
42 changes: 15 additions & 27 deletions app/Actions/CRM/Prospect/UI/IndexProspects.php
Original file line number Diff line number Diff line change
Expand Up @@ -448,33 +448,21 @@ public function htmlResponse(
'icon' => ['fal', 'fa-user-plus'],
'title' => __('Prospects'),
'actions' => [
$this->canEdit ? [
'type' => 'buttonGroup',
'buttons' =>
match (class_basename($this->parent)) {
'Shop' => [
[
'style' => 'primary',
'icon' => ['fal', 'fa-upload'],
'label' => 'Upload',
'route' => [
'name' => 'grp.org.models.shop.prospects.upload',
'parameters' => $this->parent->id
],
],
[
'type' => 'button',
'style' => 'create',
'label' => __('Prospect'),
'route' => [
'name' => 'grp.org.shops.show.prospects.create',
'parameters' => $request->route()->originalParameters()
]
]
],
default => []
}
] : false
$this->canEdit ?
match (class_basename($this->parent)) {
'Shop' => [
'type' => 'button',
'style' => 'create',
'label' => __('Create Prospect'),
'route' => [
'name' => 'grp.org.shops.show.crm.prospects.create',
'parameters' => $request->route()->originalParameters()
]

],
default => []
}
: false
],
'subNavigation' => $subNavigation,
]),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
use App\Actions\IrisAction;
use App\Enums\Announcement\AnnouncementStatusEnum;
use App\Http\Resources\Web\AnnouncementIrisResource;
use App\Http\Resources\Web\AnnouncementResource;
use App\Models\Web\Website;
use Lorisleiva\Actions\ActionRequest;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,19 @@ class SyncProductCategoryRelatedProducts extends OrgAction
{
public function handle(ProductCategory $productCategory, array $modelData): ProductCategory
{
$productIds = collect(Arr::get($modelData, 'product_ids', []))
->map(fn ($productId) => (int)$productId)
->unique()
->values();
$productIds = array_unique(Arr::get($modelData, 'product_ids', []));

$productCategory->relatedProducts()->sync($productIds->all());
$relatedProducts = [];
$position = 0;
foreach ($productIds as $productId) {
$position++;
$relatedProducts[$productId] = [
'position' => $position
];
}


$productCategory->relatedProducts()->sync($relatedProducts);

return $productCategory;
}
Expand Down
2 changes: 1 addition & 1 deletion app/Actions/Dispatching/BatchCode/DeleteBatchCode.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public function handle(BatchCode $batchCode): BatchCode
$batchCode->delete();

if ($orgStockId) {
OrgStockHydrateCurrentBatchCodes::dispatch(OrgStock::find($orgStockId))->delay($this->hydratorsDelay);
OrgStockHydrateCurrentBatchCodes::run(OrgStock::find($orgStockId));
}

return $batchCode;
Expand Down
2 changes: 1 addition & 1 deletion app/Actions/Dispatching/BatchCode/StoreBatchCode.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public function handle(Warehouse $warehouse, array $modelData): BatchCode

$batchCode = BatchCode::create($modelData);

OrgStockHydrateCurrentBatchCodes::dispatch(OrgStock::find($batchCode->org_stock_id))->delay($this->hydratorsDelay);
OrgStockHydrateCurrentBatchCodes::run(OrgStock::find($batchCode->org_stock_id));

return $batchCode;
}
Expand Down
6 changes: 4 additions & 2 deletions app/Actions/Dispatching/BatchCode/UI/CreateBatchCode.php
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,11 @@ public function handle(ActionRequest $request, ?OrgStock $orgStock): Response
'breadcrumbs' => $orgStock
? $this->getOrgStockBreadcrumbs($orgStock, $request)
: $this->getBreadcrumbs($request->route()->originalParameters()),
'title' => __('New Batch Code'),
'title' => __('Batch Code') . ': ' . __('create new'),
'pageHead' => [
'title' => __('New Batch Code'),
'title' => __('Create new'),
'icon' => 'fal fa-barcode',
'model' => __('Batch code'),
'actions' => [
[
'type' => 'button',
Expand Down
19 changes: 16 additions & 3 deletions app/Actions/Dispatching/BatchCode/UI/EditBatchCode.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,14 @@ public function handle(BatchCode $batchCode, ActionRequest $request): Response
'EditModel',
[
'breadcrumbs' => $this->getBreadcrumbs($batchCode, $request->route()->originalParameters()),
'title' => __('Edit Batch Code').' '.$batchCode->code,
'title' => __('Batch Code') . ': ' . $batchCode->code . ' (' . __('edit') . ')',
'pageHead' => [
'title' => __('Edit Batch Code'),
'icon' => 'fal fa-barcode',
'title' => __('Edit'),
'model' => __('Batch code'),
'container' => [
'label' => $batchCode->code,
],
'actions' => [
[
'type' => 'button',
Expand All @@ -66,6 +71,14 @@ public function handle(BatchCode $batchCode, ActionRequest $request): Response
'label' => __('SKU'),
'placeholder' => __('Select SKU'),
'mode' => 'single',
'options' => [
[
'id' => $batchCode->orgStock?->id,
'slug' => $batchCode->orgStock?->slug,
'code' => $batchCode->orgStock?->code,
'name' => $batchCode->orgStock?->name,
]
],
'searchable' => true,
'labelProp' => 'name',
'valueProp' => 'id',
Expand All @@ -85,7 +98,7 @@ public function handle(BatchCode $batchCode, ActionRequest $request): Response
'expiry_date' => [
'type' => 'date',
'label' => __('Expiry Date'),
'value' => $batchCode->expiry_date?->format('Y-m-d'),
'value' => $batchCode->expiry_date,
],
],
],
Expand Down
4 changes: 2 additions & 2 deletions app/Actions/Dispatching/BatchCode/UpdateBatchCode.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ public function handle(BatchCode $batchCode, array $modelData): BatchCode

if ($batchCode->wasChanged('org_stock_id')) {
if ($previousOrgStockId) {
OrgStockHydrateCurrentBatchCodes::dispatch(OrgStock::find($previousOrgStockId))->delay($this->hydratorsDelay);
OrgStockHydrateCurrentBatchCodes::run(OrgStock::find($previousOrgStockId));
}
if ($batchCode->org_stock_id) {
OrgStockHydrateCurrentBatchCodes::dispatch(OrgStock::find($batchCode->org_stock_id))->delay($this->hydratorsDelay);
OrgStockHydrateCurrentBatchCodes::run(OrgStock::find($batchCode->org_stock_id));
}
}

Expand Down
5 changes: 3 additions & 2 deletions app/Actions/Dispatching/Picking/DeletePickingInAurora.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public function getJobUniqueId(int $pickingID, Organisation $organisation): stri
*/
public function handle(int $pickingID, Organisation $organisation, string $name, OrgStock $orgStock): void
{
$apiUrl = $this->getApiUrl($organisation);
$apiUrl = $this->getApiUrl($organisation);
$auroraApiToken = $this->getApiToken($organisation);
if (!$auroraApiToken || !app()->environment('production')) {
return;
Expand All @@ -45,7 +45,8 @@ public function handle(int $pickingID, Organisation $organisation, string $name,
'picker_name' => $name,
'action' => 'aiku_delete_picking',
'part_sku' => $this->getAuroraObjectKey($orgStock),
'picking_key' => $pickingID
'picking_key' => $pickingID,
'date' => now()->utc()->toIso8601String(),

]
)->get($apiUrl);
Expand Down
Loading