В настоящее время я пытаюсь создать код, в котором значение одной конкретной строки вставляется в тот же столбец другой строки.
Например, у меня есть Тип продукта A как ProdA, и у него есть текущее количество (curr_quantity), ProdA будет превращен в ProdB через 1 неделю из-за порчи, что означает, что значение curr_quantity в ProdA будет вычтено и добавлено к curr_quantity ProdB, у меня есть код для обновления curr_quantity ProdA, но в настоящее время он не добавляет в ProdB.
Мои коды контроллеров:
$decrease = Product::where('created_at', '<', Carbon::now()->subDays(7))
->where('curr_quantity', '>', 0)
->get();
foreach($decrease as $dec){
$sub = $dec->curr_quantity;
if($dec->products_id == 1){
$dec->update([
'curr_quantity' => $dec->curr_quantity - $sub
]);
}
if($dec->products_id == 2){
$dec->update([
'curr_quantity' => $dec->curr_quantity - $sub,
]);
}
В моем коде выше он в настоящее время вычитает curr_quantity из ProdA и ProdB и вычитает, но он не "переносит" значение из одного продукта в другой.
РЕДАКТИРОВАТЬ: В моем текущем коде он вычитает оба, поскольку предполагается, что ProdB «переносится» в ProdC. Извините за недоразумение!
Тип продукта - FK, поэтому Prod A - это products_id == 1, B == 2 и C == 3 в фактическом коде.
[Sample]
ID | Product Type | curr_quantity
0 | Prod A | 70
1 | Prod B | 30
2 | Prod C | 10
3 | Prod A | 90
4 | Prod B | 05
5 | Prod C | 05
Через 7 дней должно быть так:
ID | Product Type | curr_quantity
0 | Prod A | 0
1 | Prod B | 70
2 | Prod C | 40
3 | Prod A | 0
4 | Prod B | 90
5 | Prod C | 10
Есть ли способ обновить curr_quantity ProdA и перенести его в ProdB?