Как проверить, изменился ли месяц? - PullRequest
0 голосов
/ 01 декабря 2019

Я хочу обновлять все свои амортизационные расходы каждый месяц для всех товаров до 0

Пример.

Depriciation has value of 111 . each month it should be depreciated until depriciation cost 
reach 0 or less than 

enter image description here

контроллер

all_item=assets::all();

foreach($all_item as $item)
{
     //should i make static month to compare?

     $month=Carbon::now()->format('m');

     $update_item = assets::findOrFail($item->id);
     $update_item->depriciation_cost = $item->depriciation - $item->depriciation_cost;
     $update_item->update();
}

1 Ответ

0 голосов
/ 01 декабря 2019

Вы можете создать новый столбец в таблице, чтобы отслеживать последнее обновленное значение амортизации, например depreciation_updated_at (тип: дата) ИЛИ использовать created_at/updated_at столбец, чтобы получить последний месяц обновления (если нет других причин для обновления записи).

Тогда просто используйте обновленную версию своего кода:

all_item=assets::all();

foreach($all_item as $item)
{
   $month=Carbon::now()->format('m');
   $depreciation_updated_at = createFromFormat('Y-m-d', $item->depreciation_updated_at); //or can use created_at/updated_at as said below
   if ($depreciation_updated_at ->format('m') != $month) {
      $update_item = assets::findOrFail($item->id);
      $update_item->depriciation_cost = $item->depriciation - $item->depriciation_cost;
      $update_item->update();
   }
}

Надеюсь, он выполнит вашу задачу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...