[IMP] odex_benefit: IMP benefit
This commit is contained in:
parent
0ced8d2a5a
commit
229e30ffcd
|
|
@ -16513,7 +16513,6 @@ msgstr "إعادة حساب"
|
|||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_family_bank_report_wizard_form
|
||||
msgid "Family Monthly Expense"
|
||||
msgstr "المصروف الشهري للأسر"
|
||||
|
||||
|
|
@ -16602,17 +16601,6 @@ msgstr "تقرير البنك للأسر"
|
|||
msgid "Family Bank Report (Excel)"
|
||||
msgstr "تقرير البنك للأسر (إكسل)"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_bank_report_wizard__move_ids
|
||||
msgid "Monthly Expenses"
|
||||
msgstr "المصروفات الشهرية"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/wizards/family_bank_report_wizard.py:0
|
||||
#, python-format
|
||||
msgid "Please select at least one Monthly Expense."
|
||||
msgstr "يرجى اختيار مصروف شهري واحد على الأقل."
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/wizards/family_bank_report_wizard.py:0
|
||||
#, python-format
|
||||
|
|
@ -17073,4 +17061,13 @@ msgstr "إجمالي المبلغ"
|
|||
#: code:addons/odex_benefit/models/payment_order.py:0
|
||||
#, python-format
|
||||
msgid "Please select a journal before creating the entry."
|
||||
msgstr "يرجى اختيار دفتر اليومية قبل إنشاء القيد."
|
||||
msgstr "يرجى اختيار دفتر اليومية قبل إنشاء القيد."
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.actions.act_window,name:odex_benefit.action_payment_orders
|
||||
#: model:ir.model,name:odex_benefit.model_payment_orders
|
||||
#: model:ir.ui.menu,name:odex_benefit.menu_payment_orders
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.payment_orders_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.payment_orders_tree
|
||||
msgid "Payment Orders"
|
||||
msgstr "أوامر صرف الخدمات"
|
||||
|
|
@ -441,7 +441,6 @@ class ConfirmBenefitExpense(models.Model):
|
|||
}
|
||||
|
||||
invoice = self.env['account.move'].create(invoice_vals)
|
||||
invoice.action_post()
|
||||
rec.move_id = invoice
|
||||
|
||||
return True
|
||||
|
|
|
|||
|
|
@ -1035,6 +1035,7 @@ class ServiceRequest(models.Model):
|
|||
'analytic_account_id': rec.family_id.branch_family_id.branch.analytic_account_id.id,
|
||||
'quantity': rec.requested_quantity,
|
||||
'price_unit': rec.requested_service_amount,
|
||||
'benefit_family_id': rec.family_id.id,
|
||||
})
|
||||
line_ids.append(invoice_line)
|
||||
vendor_bill = self.env['account.move'].create({
|
||||
|
|
|
|||
|
|
@ -13,8 +13,6 @@ class FamilyBankReportXlsx(models.AbstractModel):
|
|||
@api.model
|
||||
def generate_xlsx_report(self, workbook, data, objs):
|
||||
sheet = workbook.add_worksheet(_('Family Bank Report'))
|
||||
if self.env.user.lang != 'en_US':
|
||||
sheet.right_to_left()
|
||||
|
||||
header_format = workbook.add_format({
|
||||
'bold': True,
|
||||
|
|
@ -77,12 +75,6 @@ class FamilyBankReportXlsx(models.AbstractModel):
|
|||
total_amount += line['transfer_amount']
|
||||
row += 1
|
||||
|
||||
|
||||
sheet.merge_range(row + 1, 0, row + 1, 2, "Total" + " / " + "الإجمالي", bold)
|
||||
sheet.write_number(row + 1, 3, total_amount, bold)
|
||||
sheet.write(row + 1, 4, "", bold)
|
||||
sheet.write(row + 1, 5, "SAR", bold)
|
||||
|
||||
sheet.set_column('A:A', 25)
|
||||
sheet.set_column('B:B', 25)
|
||||
sheet.set_column('C:C', 30)
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ from odoo import models, fields, api, _
|
|||
from odoo.exceptions import UserError
|
||||
from odoo.tools import date_utils
|
||||
|
||||
|
||||
class FamilyBankReportWizard(models.TransientModel):
|
||||
_name = 'family.bank.report.wizard'
|
||||
_description = 'Family Bank Report'
|
||||
|
|
@ -18,39 +19,46 @@ class FamilyBankReportWizard(models.TransientModel):
|
|||
default=lambda self: date_utils.end_of(fields.Date.today(), 'month'),
|
||||
required=True
|
||||
)
|
||||
move_ids = fields.Many2many(comodel_name='account.move',
|
||||
string="Monthly Expenses", required=True,
|
||||
domain="[('state', '=', 'posted'),('date','>=', start_date),('date','<=', end_date),('line_ids.benefit_family_id', '!=', False)]"
|
||||
)
|
||||
payment_order_ids = fields.Many2many(comodel_name='payment.orders',
|
||||
string="Payment Orders", required=True,
|
||||
domain="[('state', '=', 'waiting_deposit'),('payment_order_date','>=', start_date),('payment_order_date','<=', end_date)]")
|
||||
|
||||
def action_print_bank_report(self):
|
||||
if not self.move_ids:
|
||||
raise UserError(_("Please select at least one Monthly Expense."))
|
||||
lines_data = []
|
||||
for move in self.move_ids:
|
||||
if not self.payment_order_ids:
|
||||
raise UserError(_("Please select at least one Payment Order."))
|
||||
|
||||
moves = self.payment_order_ids.mapped('move_id')
|
||||
if not moves:
|
||||
raise UserError(_("Selected Payment Orders do not reference any posted moves."))
|
||||
|
||||
grouped = {}
|
||||
for move in moves:
|
||||
for line in move.line_ids.filtered(lambda l: l.debit > 0 and l.benefit_family_id):
|
||||
family = line.benefit_family_id
|
||||
beneficiary_name = ''
|
||||
beneficiary_id = ''
|
||||
if family.is_family_member:
|
||||
beneficiary_name = family.family_member_id.name
|
||||
beneficiary_id = family.family_member_id.member_id_number
|
||||
else:
|
||||
beneficiary_name = family.acc_holder_name
|
||||
beneficiary_id = family.acc_holder_id_number
|
||||
lines_data.append({
|
||||
'bank_name': family.bank_id.name or '',
|
||||
'account_number': 'SA' + family.acc_number or '',
|
||||
'beneficiary_name': beneficiary_name,
|
||||
'transfer_amount': line.debit or 0.0,
|
||||
'beneficiary_id': beneficiary_id,
|
||||
'currency': 'SAR',
|
||||
'family_code': family.code or '',
|
||||
'purpose': 'Others',
|
||||
})
|
||||
key = family.id
|
||||
if key not in grouped:
|
||||
if family.is_family_member and family.family_member_id:
|
||||
beneficiary_name = family.family_member_id.name or ''
|
||||
beneficiary_id = getattr(family.family_member_id, 'member_id_number', '') or ''
|
||||
else:
|
||||
beneficiary_name = family.acc_holder_name or ''
|
||||
beneficiary_id = family.acc_holder_id_number or ''
|
||||
grouped[key] = {
|
||||
'bank_name': (family.bank_id.name or ''),
|
||||
'account_number': 'SA' + (family.acc_number or ''),
|
||||
'beneficiary_name': beneficiary_name,
|
||||
'beneficiary_id': beneficiary_id,
|
||||
'transfer_amount': 0.0,
|
||||
'currency': 'SAR',
|
||||
'family_code': family.code or '',
|
||||
'purpose': 'Others',
|
||||
}
|
||||
grouped[key]['transfer_amount'] += float(line.debit or 0.0)
|
||||
|
||||
lines_data = list(grouped.values())
|
||||
if not lines_data:
|
||||
raise UserError(_("No debit lines with family information found."))
|
||||
|
||||
datas = {
|
||||
'start_date': self.start_date,
|
||||
'end_date': self.end_date,
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Family Monthly Expense">
|
||||
<field name="move_ids" options="{'no_create': True}"/>
|
||||
<page string="Payment Orders">
|
||||
<field name="payment_order_ids" options="{'no_create': True}"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
|
|
|
|||
Loading…
Reference in New Issue