This commit is contained in:
@@ -78,9 +78,14 @@ func (d *Database) CancelCommandAtomic(commandID int, username, reason string, f
|
|||||||
|
|
||||||
if err := tx.Exec(`
|
if err := tx.Exec(`
|
||||||
UPDATE products p
|
UPDATE products p
|
||||||
SET stock = stock + ci.quantite, updated_at = CURRENT_TIMESTAMP
|
SET stock = stock + agg.total_qty, updated_at = CURRENT_TIMESTAMP
|
||||||
FROM command_items ci
|
FROM (
|
||||||
WHERE ci.command_id = ? AND ci.product_id = p.id`, commandID).Error; err != nil {
|
SELECT product_id, SUM(quantite) AS total_qty
|
||||||
|
FROM command_items
|
||||||
|
WHERE command_id = ?
|
||||||
|
GROUP BY product_id
|
||||||
|
) agg
|
||||||
|
WHERE agg.product_id = p.id`, commandID).Error; err != nil {
|
||||||
return fmt.Errorf("erreur remboursement stock: %w", err)
|
return fmt.Errorf("erreur remboursement stock: %w", err)
|
||||||
}
|
}
|
||||||
log.Printf("✅ [CancelAtomic] Stock remboursé")
|
log.Printf("✅ [CancelAtomic] Stock remboursé")
|
||||||
@@ -194,9 +199,14 @@ func (d *Database) DeleteCommandAtomic(commandID int, deletedBy, role string) er
|
|||||||
if !stockAlreadyRestored {
|
if !stockAlreadyRestored {
|
||||||
if err := tx.Exec(`
|
if err := tx.Exec(`
|
||||||
UPDATE products p
|
UPDATE products p
|
||||||
SET stock = stock + ci.quantite, updated_at = CURRENT_TIMESTAMP
|
SET stock = stock + agg.total_qty, updated_at = CURRENT_TIMESTAMP
|
||||||
FROM command_items ci
|
FROM (
|
||||||
WHERE ci.command_id = ? AND ci.product_id = p.id`, commandID).Error; err != nil {
|
SELECT product_id, SUM(quantite) AS total_qty
|
||||||
|
FROM command_items
|
||||||
|
WHERE command_id = ?
|
||||||
|
GROUP BY product_id
|
||||||
|
) agg
|
||||||
|
WHERE agg.product_id = p.id`, commandID).Error; err != nil {
|
||||||
log.Printf("⚠️ [DeleteAtomic] Erreur remboursement: %v", err)
|
log.Printf("⚠️ [DeleteAtomic] Erreur remboursement: %v", err)
|
||||||
} else {
|
} else {
|
||||||
log.Printf("✅ [DeleteAtomic] Stock remboursé (statut: %s)", cmdResult.Status)
|
log.Printf("✅ [DeleteAtomic] Stock remboursé (statut: %s)", cmdResult.Status)
|
||||||
@@ -337,9 +347,14 @@ func (d *Database) CancelCommandByAdminAtomic(commandID int) error {
|
|||||||
if !slices.Contains(noRestoreStatuses, prevStatus) {
|
if !slices.Contains(noRestoreStatuses, prevStatus) {
|
||||||
if err := tx.Exec(`
|
if err := tx.Exec(`
|
||||||
UPDATE products p
|
UPDATE products p
|
||||||
SET stock = stock + ci.quantite, updated_at = CURRENT_TIMESTAMP
|
SET stock = stock + agg.total_qty, updated_at = CURRENT_TIMESTAMP
|
||||||
FROM command_items ci
|
FROM (
|
||||||
WHERE ci.command_id = ? AND ci.product_id = p.id`, commandID).Error; err != nil {
|
SELECT product_id, SUM(quantite) AS total_qty
|
||||||
|
FROM command_items
|
||||||
|
WHERE command_id = ?
|
||||||
|
GROUP BY product_id
|
||||||
|
) agg
|
||||||
|
WHERE agg.product_id = p.id`, commandID).Error; err != nil {
|
||||||
return fmt.Errorf("erreur remboursement stock: %w", err)
|
return fmt.Errorf("erreur remboursement stock: %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -381,9 +396,14 @@ func (d *Database) CancelDeliveryByLivreurAtomic(commandID int) (alreadyCancelle
|
|||||||
|
|
||||||
if e := tx.Exec(`
|
if e := tx.Exec(`
|
||||||
UPDATE products p
|
UPDATE products p
|
||||||
SET stock = stock + ci.quantite, updated_at = CURRENT_TIMESTAMP
|
SET stock = stock + agg.total_qty, updated_at = CURRENT_TIMESTAMP
|
||||||
FROM command_items ci
|
FROM (
|
||||||
WHERE ci.command_id = ? AND ci.product_id = p.id`, commandID).Error; e != nil {
|
SELECT product_id, SUM(quantite) AS total_qty
|
||||||
|
FROM command_items
|
||||||
|
WHERE command_id = ?
|
||||||
|
GROUP BY product_id
|
||||||
|
) agg
|
||||||
|
WHERE agg.product_id = p.id`, commandID).Error; e != nil {
|
||||||
return fmt.Errorf("erreur remboursement stock: %w", e)
|
return fmt.Errorf("erreur remboursement stock: %w", e)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
Reference in New Issue
Block a user