feat: enhance sale detail retrieval by including trashed cart items and update related tests
This commit is contained in:
parent
8c09ca1204
commit
dd81e3b3f7
|
|
@ -53,6 +53,7 @@ class AdminAppSaleService
|
|||
->where('tenant_codigo', $tenant->codigo)
|
||||
->with([
|
||||
'items',
|
||||
'cart' => fn ($query) => $query->withTrashed(),
|
||||
'cart.items.catalogItem',
|
||||
'cart.items.variant.catalogItem',
|
||||
'cart.items.variant.eventDates',
|
||||
|
|
@ -188,6 +189,8 @@ class AdminAppSaleService
|
|||
|
||||
protected function quantityExpression(): string
|
||||
{
|
||||
// El fallback se resuelve en SQL para poder ordenar por cantidad antes de paginar;
|
||||
// los ítems consolidados de la compra tienen prioridad sobre los del carrito de origen.
|
||||
return <<<'SQL'
|
||||
COALESCE(
|
||||
(SELECT SUM(compra_items.cantidad)
|
||||
|
|
|
|||
|
|
@ -317,6 +317,11 @@ class AdminAppSaleControllerTest extends TestCase
|
|||
$this->assertSame(Purchase::STATUS_CANCELLED, $purchase->fresh()->status);
|
||||
$this->assertSoftDeleted('carritos', ['id' => $cart->id]);
|
||||
$this->assertSame('converted', Cart::withTrashed()->findOrFail($cart->id)->status);
|
||||
|
||||
$this->getJson("/api/v1/adminapp/tenant/sales/{$purchase->id}")
|
||||
->assertOk()
|
||||
->assertJsonPath('data.items.0.product', 'Entrada general')
|
||||
->assertJsonPath('data.items.0.quantity', 2);
|
||||
}
|
||||
|
||||
public function test_an_adminapp_user_cannot_change_a_sale_from_another_tenant(): void
|
||||
|
|
|
|||
Loading…
Reference in New Issue