mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP] Cash daily report
This commit is contained in:
@@ -94,14 +94,25 @@ class CashDailyReportWizard(models.TransientModel):
|
||||
])
|
||||
offset = 1
|
||||
total_account_payment_amount = 0.0
|
||||
journals = {}
|
||||
total_account_payment = 0.0
|
||||
total_account_expenses = 0.0
|
||||
payment_journals = {}
|
||||
expense_journals = {}
|
||||
for k_payment, v_payment in enumerate(account_payments):
|
||||
amount = v_payment.amount if v_payment.payment_type == 'inbound' \
|
||||
else -v_payment.amount
|
||||
if v_payment.journal_id.name not in journals:
|
||||
journals.update({v_payment.journal_id.name: amount})
|
||||
if amount < 0:
|
||||
total_account_expenses += -amount
|
||||
if v_payment.journal_id.name not in expense_journals:
|
||||
expense_journals.update({v_payment.journal_id.name: -amount})
|
||||
else:
|
||||
expense_journals[v_payment.journal_id.name] += -amount
|
||||
else:
|
||||
journals[v_payment.journal_id.name] += amount
|
||||
total_account_payment += amount
|
||||
if v_payment.journal_id.name not in payment_journals:
|
||||
payment_journals.update({v_payment.journal_id.name: amount})
|
||||
else:
|
||||
payment_journals[v_payment.journal_id.name] += amount
|
||||
worksheet.write(k_payment+offset, 0, v_payment.name)
|
||||
worksheet.write(k_payment+offset, 1, v_payment.communication)
|
||||
worksheet.write(k_payment+offset, 2, v_payment.partner_id.name)
|
||||
@@ -123,9 +134,9 @@ class CashDailyReportWizard(models.TransientModel):
|
||||
for k_payment, v_payment in enumerate(payment_returns):
|
||||
for k_line, v_line in enumerate(v_payment.line_ids):
|
||||
if v_payment.journal_id.name not in return_journals:
|
||||
journals.update({v_payment.journal_id.name: v_line.amount})
|
||||
return_journals.update({v_payment.journal_id.name: -v_line.amount})
|
||||
else:
|
||||
return_journals[v_payment.journal_id.name] += amount
|
||||
return_journals[v_payment.journal_id.name] += -amount
|
||||
worksheet.write(k_line+offset, 0, v_payment.name)
|
||||
worksheet.write(k_line+offset, 1, v_line.reference)
|
||||
worksheet.write(k_line+offset, 2, v_line.partner_id.name)
|
||||
@@ -134,36 +145,55 @@ class CashDailyReportWizard(models.TransientModel):
|
||||
worksheet.write(k_line+offset, 4, v_payment.journal_id.name)
|
||||
worksheet.write(k_line+offset, 5, -v_line.amount,
|
||||
xls_cell_format_money)
|
||||
total_payment_returns_amount += v_line.amount
|
||||
total_payment_returns_amount += -v_line.amount
|
||||
offset += len(v_payment.line_ids)
|
||||
if total_account_payment_amount == 0 and total_payment_returns_amount == 0:
|
||||
raise UserError(_('Not Any Payments'))
|
||||
line = offset
|
||||
if k_line:
|
||||
line = k_line + offset
|
||||
if total_account_payment_amount > 0:
|
||||
# NORMAL PAYMENTS
|
||||
if total_account_payment != 0:
|
||||
line += 1
|
||||
worksheet.write(line, 4, _('TOTAL PAYMENTS'))
|
||||
worksheet.write(line, 5, total_account_payment_amount,
|
||||
worksheet.write(line, 4, _('TOTAL PAYMENTS'), xls_cell_format_header)
|
||||
worksheet.write(line, 5, total_account_payment,
|
||||
xls_cell_format_header)
|
||||
for journal in payment_journals:
|
||||
line += 1
|
||||
worksheet.write(line, 4, _(journal))
|
||||
worksheet.write(line, 5, payment_journals[journal],
|
||||
xls_cell_format_money)
|
||||
if total_payment_returns_amount > 0:
|
||||
|
||||
# RETURNS
|
||||
if total_payment_returns_amount != 0:
|
||||
line += 1
|
||||
worksheet.write(line, 4, _('TOTAL PAYMENT RETURNS'))
|
||||
worksheet.write(line, 5, -total_payment_returns_amount,
|
||||
worksheet.write(line, 4, _('TOTAL PAYMENT RETURNS'), xls_cell_format_header)
|
||||
worksheet.write(line, 5, total_payment_returns_amount,
|
||||
xls_cell_format_header)
|
||||
for journal in return_journals:
|
||||
line += 1
|
||||
worksheet.write(line, 4, _(journal))
|
||||
worksheet.write(line, 5, return_journals[journal],
|
||||
xls_cell_format_money)
|
||||
|
||||
# EXPENSES
|
||||
if total_account_expenses != 0:
|
||||
line += 1
|
||||
worksheet.write(line, 4, _('TOTAL EXPENSES'), xls_cell_format_header)
|
||||
worksheet.write(line, 5, -total_account_expenses,
|
||||
xls_cell_format_header)
|
||||
for journal in expense_journals:
|
||||
line += 1
|
||||
worksheet.write(line, 4, _(journal))
|
||||
worksheet.write(line, 5, -expense_journals[journal],
|
||||
xls_cell_format_money)
|
||||
line += 1
|
||||
worksheet.write(line, 4, _('TOTAL'))
|
||||
worksheet.write(line, 4, _('TOTAL'), xls_cell_format_header)
|
||||
worksheet.write(
|
||||
line,
|
||||
5,
|
||||
total_account_payment_amount - total_payment_returns_amount,
|
||||
xls_cell_format_money)
|
||||
for journal in journals:
|
||||
line += 1
|
||||
worksheet.write(line, 4, _(journal))
|
||||
worksheet.write(line, 5, journals[journal],
|
||||
xls_cell_format_money)
|
||||
|
||||
total_account_payment_amount + total_payment_returns_amount,
|
||||
xls_cell_format_header)
|
||||
workbook.close()
|
||||
file_data.seek(0)
|
||||
tnow = fields.Datetime.now().replace(' ', '_')
|
||||
|
||||
Reference in New Issue
Block a user