Как получить диапазон дат с помощью frappe.db.get_list()?


person laydros    schedule 04.06.2020    source источник


Ответы (2)


Вы можете быстро найти «между» в erpnext src, чтобы проверить реализации. Для меня это был единственный надежный источник.

"holiday_date": ["between", (self.start_date, self.end_date)],

Опубликованное вами решение не будет работать, потому что Python не допустит двух ключей с одинаковым именем в dict.

Другое решение, которое вернет список, может быть

holidays = frappe.db.sql_list('''select holiday_date, rate from `tabHoliday`
        where
            parent=%(holiday_list)s
            and holiday_date >= %(start_date)s
            and holiday_date <= %(end_date)s''', {
                "holiday_list": holiday_list,
                "start_date": self.start_date,
                "end_date": self.end_date
            })
person Sebastian Gomez    schedule 17.06.2020

Вы также можете передавать фильтры в виде списка:

frappe.db.get_list('Subscription', filters=[
    ['current_invoice_end', '<', end_period],
    ['current_invoice_end', '>', start_period]
])

Я бы не стал использовать для этого прямой SQL!

person Rushabh Mehta    schedule 06.07.2020