mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP] Day info summary
This commit is contained in:
@@ -32,6 +32,7 @@ class CashDailyReportWizard(models.TransientModel):
|
|||||||
FILENAME = 'cash_daily_report.xls'
|
FILENAME = 'cash_daily_report.xls'
|
||||||
_name = 'cash.daily.report.wizard'
|
_name = 'cash.daily.report.wizard'
|
||||||
|
|
||||||
|
@api.model
|
||||||
@api.model
|
@api.model
|
||||||
def _get_default_date_start(self):
|
def _get_default_date_start(self):
|
||||||
return datetime.now().strftime(DEFAULT_SERVER_DATE_FORMAT)
|
return datetime.now().strftime(DEFAULT_SERVER_DATE_FORMAT)
|
||||||
@@ -98,6 +99,7 @@ class CashDailyReportWizard(models.TransientModel):
|
|||||||
total_account_expenses = 0.0
|
total_account_expenses = 0.0
|
||||||
payment_journals = {}
|
payment_journals = {}
|
||||||
expense_journals = {}
|
expense_journals = {}
|
||||||
|
total_dates = {}
|
||||||
for k_payment, v_payment in enumerate(account_payments):
|
for k_payment, v_payment in enumerate(account_payments):
|
||||||
where = v_payment.partner_id.name
|
where = v_payment.partner_id.name
|
||||||
amount = v_payment.amount if v_payment.payment_type in ('inbound') \
|
amount = v_payment.amount if v_payment.payment_type in ('inbound') \
|
||||||
@@ -109,18 +111,40 @@ class CashDailyReportWizard(models.TransientModel):
|
|||||||
payment_journals.update({v_payment.destination_journal_id.name: -amount})
|
payment_journals.update({v_payment.destination_journal_id.name: -amount})
|
||||||
else:
|
else:
|
||||||
payment_journals[v_payment.destination_journal_id.name] += -amount
|
payment_journals[v_payment.destination_journal_id.name] += -amount
|
||||||
|
if v_payment.payment_date not in total_dates:
|
||||||
|
total_dates.update({v_payment.payment_date: {v_payment.destination_journal_id.name: -amount}})
|
||||||
|
else:
|
||||||
|
if v_payment.destination_journal_id.name not in total_dates[v_payment.payment_date]:
|
||||||
|
total_dates[v_payment.payment_date].update({v_payment.destination_journal_id.name: -amount})
|
||||||
|
else:
|
||||||
|
total_dates[v_payment.payment_date][v_payment.destination_journal_id.name] += -amount
|
||||||
if amount < 0:
|
if amount < 0:
|
||||||
total_account_expenses += -amount
|
total_account_expenses += -amount
|
||||||
if v_payment.journal_id.name not in expense_journals:
|
if v_payment.journal_id.name not in expense_journals:
|
||||||
expense_journals.update({v_payment.journal_id.name: amount})
|
expense_journals.update({v_payment.journal_id.name: amount})
|
||||||
else:
|
else:
|
||||||
expense_journals[v_payment.journal_id.name] += amount
|
expense_journals[v_payment.journal_id.name] += amount
|
||||||
|
if v_payment.payment_date not in total_dates:
|
||||||
|
total_dates.update({v_payment.payment_date: {v_payment.journal_id.name: amount}})
|
||||||
|
else:
|
||||||
|
if v_payment.journal_id.name not in total_dates[v_payment.payment_date]:
|
||||||
|
total_dates[v_payment.payment_date].update({v_payment.journal_id.name: amount})
|
||||||
|
else:
|
||||||
|
total_dates[v_payment.payment_date][v_payment.journal_id.name] += amount
|
||||||
else:
|
else:
|
||||||
total_account_payment += amount
|
total_account_payment += amount
|
||||||
if v_payment.journal_id.name not in payment_journals:
|
if v_payment.journal_id.name not in payment_journals:
|
||||||
payment_journals.update({v_payment.journal_id.name: amount})
|
payment_journals.update({v_payment.journal_id.name: amount})
|
||||||
else:
|
else:
|
||||||
payment_journals[v_payment.journal_id.name] += amount
|
payment_journals[v_payment.journal_id.name] += amount
|
||||||
|
if v_payment.payment_date not in total_dates:
|
||||||
|
total_dates.update({v_payment.payment_date: {v_payment.journal_id.name: amount}})
|
||||||
|
else:
|
||||||
|
if v_payment.journal_id.name not in total_dates[v_payment.payment_date]:
|
||||||
|
total_dates[v_payment.payment_date].update({v_payment.journal_id.name: amount})
|
||||||
|
else:
|
||||||
|
total_dates[v_payment.payment_date][v_payment.journal_id.name] += amount
|
||||||
|
|
||||||
worksheet.write(k_payment+offset, 0, v_payment.name)
|
worksheet.write(k_payment+offset, 0, v_payment.name)
|
||||||
worksheet.write(k_payment+offset, 1, v_payment.communication)
|
worksheet.write(k_payment+offset, 1, v_payment.communication)
|
||||||
worksheet.write(k_payment+offset, 2, where)
|
worksheet.write(k_payment+offset, 2, where)
|
||||||
@@ -145,6 +169,15 @@ class CashDailyReportWizard(models.TransientModel):
|
|||||||
return_journals.update({v_payment.journal_id.name: -v_line.amount})
|
return_journals.update({v_payment.journal_id.name: -v_line.amount})
|
||||||
else:
|
else:
|
||||||
return_journals[v_payment.journal_id.name] += -v_line.amount
|
return_journals[v_payment.journal_id.name] += -v_line.amount
|
||||||
|
|
||||||
|
if v_payment.date not in total_dates:
|
||||||
|
total_dates.update({v_payment.date: {v_payment.journal_id.name: -amount}})
|
||||||
|
else:
|
||||||
|
if v_payment.journal_id.name not in total_dates[v_payment.date]:
|
||||||
|
total_dates[v_payment.date].update({v_payment.journal_id.name: -v_line.amount})
|
||||||
|
else:
|
||||||
|
total_dates[v_payment.date][v_payment.journal_id.name] += -v_line.amount
|
||||||
|
|
||||||
worksheet.write(k_line+offset, 0, v_payment.name)
|
worksheet.write(k_line+offset, 0, v_payment.name)
|
||||||
worksheet.write(k_line+offset, 1, v_line.reference)
|
worksheet.write(k_line+offset, 1, v_line.reference)
|
||||||
worksheet.write(k_line+offset, 2, v_line.partner_id.name)
|
worksheet.write(k_line+offset, 2, v_line.partner_id.name)
|
||||||
@@ -161,7 +194,7 @@ class CashDailyReportWizard(models.TransientModel):
|
|||||||
if k_line:
|
if k_line:
|
||||||
line = k_line + offset
|
line = k_line + offset
|
||||||
|
|
||||||
|
|
||||||
result_journals = {}
|
result_journals = {}
|
||||||
# NORMAL PAYMENTS
|
# NORMAL PAYMENTS
|
||||||
if total_account_payment != 0:
|
if total_account_payment != 0:
|
||||||
@@ -224,7 +257,27 @@ class CashDailyReportWizard(models.TransientModel):
|
|||||||
worksheet.write(line, 4, _(journal))
|
worksheet.write(line, 4, _(journal))
|
||||||
worksheet.write(line, 5, result_journals[journal],
|
worksheet.write(line, 5, result_journals[journal],
|
||||||
xls_cell_format_money)
|
xls_cell_format_money)
|
||||||
|
|
||||||
|
worksheet = workbook.add_worksheet(_('Por dia'))
|
||||||
|
worksheet.write('A1', _('Date'), xls_cell_format_header)
|
||||||
|
columns = ('B1','C1','D1','E1','F1','G1','H1')
|
||||||
|
i = 0
|
||||||
|
column_journal = {}
|
||||||
|
for journal in result_journals:
|
||||||
|
worksheet.write(columns[i], _(journal), xls_cell_format_header)
|
||||||
|
i += 1
|
||||||
|
column_journal.update({journal: i})
|
||||||
|
|
||||||
|
worksheet.set_column('C:C', 50)
|
||||||
|
worksheet.set_column('D:D', 11)
|
||||||
|
|
||||||
|
offset = 1
|
||||||
|
total_dates = sorted(total_dates.items(), key=lambda x: x[0])
|
||||||
|
for k_day, v_day in enumerate(total_dates):
|
||||||
|
worksheet.write(k_day+offset, 0, v_day[0])
|
||||||
|
for journal in v_day[1]:
|
||||||
|
worksheet.write(k_day+offset, column_journal[journal], v_day[1][journal])
|
||||||
|
|
||||||
workbook.close()
|
workbook.close()
|
||||||
file_data.seek(0)
|
file_data.seek(0)
|
||||||
tnow = fields.Datetime.now().replace(' ', '_')
|
tnow = fields.Datetime.now().replace(' ', '_')
|
||||||
|
|||||||
Reference in New Issue
Block a user