Я пытаюсь придумать, как добавить ставки дополнительных сборов к набору записей вызовов. До недавнего времени тарифы никогда не менялись, и я могу получить правильный тариф для Записи подробностей о вызовах (CDR), но теперь у нас есть новые тарифы с 1 мая. Стоимость зависит от страны, из которой поступает звонок. Не во всех странах есть тарифы, и у нас могут быть разные тарифы для каждого клиента. Теперь нам нужно иметь историческую цену для CDR, если дата вызова была до 1 мая 2025 года, или новую ставку, если дата после 1 мая.
Я запрашиваю набор записей вызовов из таблицы CDR в одной базе данных. Что возвращает что-то вроде приведенного ниже для каждого CDR.
Код: Выделить всё
"calldate": "2025-04-30 16:39:42"
"src": "353833333333"
"dst": "1800000000"
"duration": 33
Затем мне нужно определить страну, из которой звонил источник. Я делаю это, просматривая записи вызовов. В этом цикле у меня есть массив телефонных кодов/данных о стране, который я просматриваю для сравнения со значением src из CDR. Что-то вроде ниже.
Код: Выделить всё
// Get the Call records
$cdrs = DB::connection('db2')
->table('cdr)
->whereDate('calldate', '>=', $filters['start_date'])
->whereDate('calldate', '
Подробнее здесь: [url]https://stackoverflow.com/questions/79602021/how-can-i-query-for-a-price-rate-based-on-the-price-effective-from-date-after-de[/url]