feat: Introduce a generic stock activity log method and translate log descriptions to Indonesian.

This commit is contained in:
Yoga Pangestu 2026-02-12 15:30:20 +07:00
parent 3b289588f2
commit 44576b6bf7
6 changed files with 168 additions and 119 deletions

View File

@ -82,7 +82,7 @@ public function save(Warehouse $warehouse): void
StockActivityLogService::logWarehouse(
logName: 'adjustment',
event: 'update',
description: "Manual adjustment for {$this->name}: changed from {$oldStockValue} to {$newStockValue}. Note: ".($this->note ?? '-'),
description: "Penyesuaian manual untuk {$this->name}: berubah dari {$oldStockValue} menjadi {$newStockValue}. Catatan: ".($this->note ?? '-'),
performedOn: $item,
warehouse: $warehouse,
quantityChange: $newStockValue - $oldStockValue,

View File

@ -37,7 +37,7 @@ public static function purchase(
self::logWarehouse(
logName: self::LOG_PURCHASE,
event: 'increase',
description: "Purchase #{$purchase->hash_id}: Added {$quantity} stock to Warehouse.",
description: "Pembelian #{$purchase->hash_id}: Menambah {$quantity} stok ke Gudang.",
performedOn: $product,
warehouse: $purchase->warehouse,
quantityChange: $quantity,
@ -69,7 +69,7 @@ public static function distribution(
self::logWarehouse(
logName: self::LOG_DISTRIBUTION,
event: 'decrease',
description: "Restock #{$restock->hash_id}: Moved {$quantity} stock from Warehouse to Outlet.",
description: "Restock #{$restock->hash_id}: Memindahkan {$quantity} stok dari Gudang ke Outlet.",
performedOn: $product,
warehouse: $restock->warehouse,
quantityChange: -1 * abs($quantity),
@ -87,7 +87,7 @@ public static function distribution(
self::logOutlet(
logName: self::LOG_DISTRIBUTION,
event: 'increase',
description: "Restock #{$restock->hash_id}: Received {$quantity} stock from Warehouse.",
description: "Restock #{$restock->hash_id}: Menerima {$quantity} stok dari Gudang.",
performedOn: $product,
outlet: $restock->outlet,
quantityChange: abs($quantity),
@ -116,7 +116,7 @@ public static function sale(
self::logOutlet(
logName: self::LOG_SALE,
event: 'decrease',
description: "Order #{$order->hash_id}: Sold {$quantity} items.",
description: "Pesanan #{$order->hash_id}: Menjual {$quantity} item.",
performedOn: $product,
outlet: $order->outlet,
quantityChange: -1 * abs($quantity),
@ -147,7 +147,7 @@ public static function stockOpname(
self::logOutlet(
logName: self::LOG_STOCK_OPNAME,
event: $event,
description: "Stock Opname #{$stockOpname->hash_id}: Adjusted stock by {$quantityChange}.",
description: "Stock Opname #{$stockOpname->hash_id}: Penyesuaian stok sebesar {$quantityChange}.",
performedOn: $product,
outlet: $stockOpname->outlet,
quantityChange: $quantityChange,
@ -180,7 +180,7 @@ public static function transfer(
self::logOutlet(
logName: self::LOG_TRANSFER,
event: 'decrease',
description: "Stock Transfer #{$stockTransfer->hash_id}: Moved {$quantity} stock from Source to Destination Outlet.",
description: "Transfer Stok #{$stockTransfer->hash_id}: Memindahkan {$quantity} stok dari Outlet Asal ke Outlet Tujuan.",
performedOn: $product,
outlet: $stockTransfer->sourceOutlet,
quantityChange: -1 * abs($quantity),
@ -198,7 +198,7 @@ public static function transfer(
self::logOutlet(
logName: self::LOG_TRANSFER,
event: 'increase',
description: "Stock Transfer #{$stockTransfer->hash_id}: Received {$quantity} stock from Source Outlet.",
description: "Transfer Stok #{$stockTransfer->hash_id}: Menerima {$quantity} stok dari Outlet Asal.",
performedOn: $product,
outlet: $stockTransfer->destinationOutlet,
quantityChange: abs($quantity),
@ -213,6 +213,55 @@ public static function transfer(
);
}
/**
* Generic log method that delegates to logOutlet or logWarehouse.
*/
public static function log(
string $logName,
string $event,
string $description,
Model $performedOn,
?Model $outlet = null,
?Warehouse $warehouse = null,
int $quantityChange = 0,
int $previousStock = 0,
int $newStock = 0,
array $extraProperties = [],
?Model $causedBy = null
): void {
if ($warehouse) {
self::logWarehouse(
logName: $logName,
event: $event,
description: $description,
performedOn: $performedOn,
warehouse: $warehouse,
quantityChange: $quantityChange,
previousStock: $previousStock,
newStock: $newStock,
extraProperties: $extraProperties,
causedBy: $causedBy
);
return;
}
if ($outlet) {
self::logOutlet(
logName: $logName,
event: $event,
description: $description,
performedOn: $performedOn,
outlet: $outlet,
quantityChange: $quantityChange,
previousStock: $previousStock,
newStock: $newStock,
extraProperties: $extraProperties,
causedBy: $causedBy
);
}
}
/**
* Log stock related activity for Outlet.
*/
@ -236,7 +285,7 @@ public static function logOutlet(
'previous_stock' => $previousStock,
'new_stock' => $newStock,
'location_type' => 'outlet',
'location_name' => $outlet->name ?? 'Unknown Outlet',
'location_name' => $outlet->name ?? 'Outlet Tidak Diketahui',
], $extraProperties);
activity($logName)
@ -270,7 +319,7 @@ public static function logWarehouse(
'previous_stock' => $previousStock,
'new_stock' => $newStock,
'location_type' => 'warehouse',
'location_name' => $warehouse->name ?? 'Unknown Warehouse',
'location_name' => $warehouse->name ?? 'Gudang Tidak Diketahui',
], $extraProperties);
activity($logName)

View File

@ -128,7 +128,7 @@ public function reverseStockTransfer($warehouse, $outlet, $item): void
StockActivityLogService::logWarehouse(
logName: StockActivityLogService::LOG_DISTRIBUTION,
event: 'increase',
description: "Restock #{$restock->hash_id} Deleted: Returned {$quantity} stock to Warehouse.",
description: "Restock #{$restock->hash_id} Dihapus: Mengembalikan {$quantity} stok ke Gudang.",
performedOn: $item->restockable,
warehouse: $warehouse,
quantityChange: $quantity,
@ -156,7 +156,7 @@ public function reverseStockTransfer($warehouse, $outlet, $item): void
StockActivityLogService::logOutlet(
logName: StockActivityLogService::LOG_DISTRIBUTION,
event: 'decrease',
description: "Restock #{$restock->hash_id} Deleted: Removed {$quantity} stock from Outlet.",
description: "Restock #{$restock->hash_id} Dihapus: Menghapus {$quantity} stok dari Outlet.",
performedOn: $item->restockable,
outlet: $outlet,
quantityChange: -1 * abs($quantity),

View File

@ -128,7 +128,7 @@ public function reverseStockTransferBetweenOutlets($sourceOutlet, $destinationOu
StockActivityLogService::logOutlet(
logName: StockActivityLogService::LOG_TRANSFER,
event: 'increase',
description: "Stock Transfer #{$stockTransfer->hash_id} Deleted: Returned {$quantity} stock to source outlet.",
description: "Transfer Stok #{$stockTransfer->hash_id} Dihapus: Mengembalikan {$quantity} stok ke outlet asal.",
performedOn: $item->transferable,
outlet: $sourceOutlet,
quantityChange: $quantity,
@ -156,7 +156,7 @@ public function reverseStockTransferBetweenOutlets($sourceOutlet, $destinationOu
StockActivityLogService::logOutlet(
logName: StockActivityLogService::LOG_TRANSFER,
event: 'decrease',
description: "Stock Transfer #{$stockTransfer->hash_id} Deleted: Removed {$quantity} stock from destination outlet.",
description: "Transfer Stok #{$stockTransfer->hash_id} Dihapus: Menghapus {$quantity} stok dari outlet tujuan.",
performedOn: $item->transferable,
outlet: $destinationOutlet,
quantityChange: -1 * abs($quantity),