@@ -77,6 +77,7 @@ class ReceiptWorkflow
|
||||
$this->conflicts->lockCompany($user);
|
||||
$user = app(CurrentActor::class)->lock($user, [PurchasingRole::Warehouse]);
|
||||
$order = PurchaseOrder::query()->lockForUpdate()->findOrFail($order->id);
|
||||
app(OrderCancellationWorkflow::class)->assertOperational($order);
|
||||
Gate::forUser($user)->authorize('create', [GoodsReceipt::class, $order]);
|
||||
$deliveryNote = Str::squish(Str::upper($data['delivery_note']));
|
||||
if ($deliveryNote === '') {
|
||||
@@ -219,7 +220,11 @@ class ReceiptWorkflow
|
||||
$writer = app(ReceiptStockMovement::class)->for($user);
|
||||
$basis = $writer->preview($item->id);
|
||||
$result = $writer->write($item->id, $basis['source_hash']);
|
||||
$movement = StockMovement::query()->findOrFail($result['movement_id']);
|
||||
$movementId = $result['movement_id'] ?? null;
|
||||
if (! is_int($movementId)) {
|
||||
throw new \LogicException('Resposta inválida do escritor de stock da recepção.');
|
||||
}
|
||||
$movement = StockMovement::query()->findOrFail($movementId);
|
||||
$sourceInput = collect($inputs)->firstWhere('purchase_order_item_id', $line['purchase_order_item_id']);
|
||||
app(InventoryLots::class)->receive($user, $movement, $sourceInput['lots'] ?? [], $data['received_on']);
|
||||
app(AutomaticPurchases::class)->signal($user, $line['stock_item_id'], $warehouse->id);
|
||||
|
||||
Reference in New Issue
Block a user