Datarange - сводка платежей клиентов из базы данных
Я не знаю, как сделать, чтобы подключить datarange_picker, к запросу базы данных в python, чтобы он подсчитал все платежи клиентов в выбранный период времени для me....
Буду очень благодарен за любые подсказки, как решить эту проблему или начать работу.
В данный момент я создаю CRM в которой такая опция должна быть, ниже приведены таблицы и модели как она выглядит на данный момент и что она должна считать.
Необходимо подсчитать все платежи со статусом 4 и типом 2 в заданном диапазоне времени, выбранном благодаря datapicker, и вернуть эти подсчитанные данные в некоторую переменную.
Скрипт таблицы, (возможно, здесь он не нужен):
$('#operation-list').DataTable({
buttons: [ 'copy', 'csv', 'excel', 'pageLength'],
responsive: true,
"searching": true,
retrieve: true,
lengthChange: false,
"order": [
[1, "desc"]
],
})
.buttons().container()
.appendTo('#operation-list_wrapper .col-md-6:eq(0)');
models.py - Операции
class Operation(models.Model):
# def __str__(self):
# return self.client.name + ' ' + self.client.lastname + ' Cash: ' + str(self.cash)
client = models.ForeignKey(Client, on_delete=models.CASCADE, related_name='operations')
cash = models.DecimalField(max_digits=12, decimal_places=2)
date = models.DateField(blank=True, null=True)
bank = models.ForeignKey(Bank, on_delete=models.CASCADE, related_name='operation_bank')
type = models.ForeignKey(Status, on_delete=models.CASCADE, related_name='operation_type')
who = models.ForeignKey(Employee, on_delete=models.CASCADE)
status = models.ForeignKey(Status, on_delete=models.CASCADE, related_name='operation_status')
class Meta:
verbose_name = 'Operations'
verbose_name_plural = 'Operations'
Employee.html - здесь нужно вывести общую сумму платежей клиента за выбранный период времени в:
<div>
<span class="opacity-10 text-success pr-2">
<i </span>
{{ employee.e_depo }} €
</div>
И datapicker->, который нужно как-то преобразовать, чтобы подсчитать эти данные или передать данные о дате начала_даты и дате окончания. В настоящее время я использую это для таблицы:
$('#reportrange').on('apply.daterangepicker', function (ev, picker) {
var start = picker.startDate.format('YYYY-MM-DD');
var end = picker.endDate.format('YYYY-MM-DD');
console.log("-----------------------------");
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
var min = new Date(start);
var max = new Date(end);
var startDate = new Date(data[1]);
console.log(startDate + " <= " + max + " --- " + (startDate <= max));
if (min == null && max == null) {
return true;
}
if (min == null && startDate <= max) {
return true;
}
if (max == null && startDate >= min) {
return true;
}
if (startDate <= max && startDate >= min) {
return true;
}
return false;
}
);
table.draw();
$.fn.dataTable.ext.search.pop();
});