[IMP] odex_benefit: IMP benefit
This commit is contained in:
parent
1cb8da1726
commit
6159005021
|
|
@ -427,7 +427,7 @@ class ConfirmBenefitExpense(models.Model):
|
|||
'quantity': 1,
|
||||
'benefit_family_id': family.id,
|
||||
'price_unit': line.family_monthly_meals,
|
||||
'analytic_account_id': family.branch_custom_id.branch.analytic_account_id.id
|
||||
'analytic_account_id': family.branch_family_id.branch.analytic_account_id.id
|
||||
}))
|
||||
invoice_vals = {
|
||||
'move_type': 'in_invoice',
|
||||
|
|
|
|||
|
|
@ -28,11 +28,4 @@ class BenefitExpenseLine(models.Model):
|
|||
@api.depends('family_monthly_income', 'family_monthly_clotting', 'family_monthly_meals')
|
||||
def _compute_total_family_expenses(self):
|
||||
for rec in self:
|
||||
total_family_expenses = 0.0
|
||||
if rec.confirm_expense_id.cash_expense:
|
||||
total_family_expenses += rec.family_monthly_income
|
||||
if rec.confirm_expense_id.meal_expense:
|
||||
total_family_expenses += rec.family_monthly_meals
|
||||
if rec.confirm_expense_id.cloth_expense:
|
||||
total_family_expenses += rec.family_monthly_clotting
|
||||
rec.total_family_expenses = total_family_expenses
|
||||
rec.total_family_expenses = rec.family_monthly_income + rec.family_monthly_meals + rec.family_monthly_clotting
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ class FamilyValidationSetting(models.Model):
|
|||
|
||||
meal_partner_id = fields.Many2one('res.partner', string='Meal Partner')
|
||||
journal_id = fields.Many2one('account.journal', string='Journal')
|
||||
payment_journal_id = fields.Many2one('account.journal', string='Payment Journal' , domain="[('type', 'in', ['cash', 'bank'])]")
|
||||
account_id = fields.Many2one('account.account',string='Expenses Account')
|
||||
accountant_id = fields.Many2one('res.users', string='Accountant')
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ class PaymentOrders(models.Model):
|
|||
|
||||
def _default_journal(self):
|
||||
setting = self.env['family.validation.setting'].search([], limit=1)
|
||||
return setting.journal_id.id if setting and setting.journal_id else False
|
||||
return setting.payment_journal_id.id if setting and setting.journal_id else False
|
||||
|
||||
name = fields.Char(string="Code", copy=False, readonly=True, default=lambda x: _('New'))
|
||||
ref_num = fields.Many2one('seasonal.service', string='Ref. Number', compute='_compute_ref_num')
|
||||
|
|
@ -47,6 +47,20 @@ class PaymentOrders(models.Model):
|
|||
],
|
||||
string='Payment Order Type', required=True, default='services', )
|
||||
move_id = fields.Many2one('account.move', ondelete='cascade')
|
||||
total_amount = fields.Float(string="Total Amount", compute='_compute_total_amount')
|
||||
company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.company)
|
||||
currency_id = fields.Many2one('res.currency', string='Currency',
|
||||
related='company_id.currency_id')
|
||||
|
||||
@api.depends('service_requests_ids', 'benefit_expense_line_ids')
|
||||
def _compute_total_amount(self):
|
||||
for rec in self:
|
||||
if rec.type in ['services', 'seasonal_services']:
|
||||
rec.total_amount = sum(rec.service_requests_ids.mapped('requested_service_amount'))
|
||||
elif rec.type == 'benefit_expense':
|
||||
rec.total_amount = sum(rec.benefit_expense_line_ids.mapped('total_family_expenses'))
|
||||
else:
|
||||
rec.total_amount = 0.0
|
||||
|
||||
def action_manager_approval(self):
|
||||
for rec in self:
|
||||
|
|
@ -69,7 +83,7 @@ class PaymentOrders(models.Model):
|
|||
'journal_id': rec.journal_id.id,
|
||||
# 'payment_order_id': rec.id, # bug
|
||||
'line_ids': line_ids,
|
||||
'ref': f'{rec.payment_order_description}/{rec.ref_num}',
|
||||
'ref': rec.name + '/' + rec.type,
|
||||
}
|
||||
if rec.type == "benefit_expense":
|
||||
# ref1 = ", ".join(rec.benefit_expense_line_ids.mapped('name'))
|
||||
|
|
@ -195,7 +209,7 @@ class PaymentOrders(models.Model):
|
|||
'family_confirm_id': line.confirm_expense_id.id,
|
||||
'benefit_family_id': line.family_id.id,
|
||||
'partner_id': line.family_id.partner_id.id,
|
||||
'analytic_account_id': line.family_id.branch_custom_id.branch.analytic_account_id.id,
|
||||
'analytic_account_id': line.family_id.branch_family_id.branch.analytic_account_id.id,
|
||||
'account_id': account_id,
|
||||
'debit': amount,
|
||||
'credit': 0.0,
|
||||
|
|
@ -214,7 +228,7 @@ class PaymentOrders(models.Model):
|
|||
'benefit_family_id': request.family_id.id,
|
||||
'account_id': request.account_id.id,
|
||||
'partner_id': request.family_id.partner_id.id,
|
||||
'analytic_account_id': request.branch_custom_id.branch.analytic_account_id.id,
|
||||
'analytic_account_id': request.family_id.branch_family_id.branch.analytic_account_id.id,
|
||||
'debit': request.requested_service_amount,
|
||||
'credit': 0.0,
|
||||
}
|
||||
|
|
@ -229,7 +243,7 @@ class PaymentOrders(models.Model):
|
|||
|
||||
lines.append({
|
||||
'account_id': self.journal_id.default_account_id.id,
|
||||
'name': f'{self.name}-{self.ref_num}',
|
||||
'name': f'{self.name}-{self.type}',
|
||||
'credit': total_credit,
|
||||
'debit': 0.0,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -978,6 +978,7 @@ class ServiceRequest(models.Model):
|
|||
rec.state = 'draft'
|
||||
|
||||
def action_accounting_transfer(self):
|
||||
validation_setting = self.env["family.validation.setting"].search([], limit=1)
|
||||
line_ids = []
|
||||
service_cats = self.mapped('service_cat')
|
||||
if len(service_cats) > 1:
|
||||
|
|
@ -1031,7 +1032,7 @@ class ServiceRequest(models.Model):
|
|||
invoice_line = (0, 0, {
|
||||
'name': f'{rec.family_id.name}/{rec.device_id.device_name}/{rec.description}/{rec.name}',
|
||||
'account_id': rec.device_account_id.id,
|
||||
'analytic_account_id': rec.branch_custom_id.branch.analytic_account_id.id,
|
||||
'analytic_account_id': rec.family_id.branch_family_id.branch.analytic_account_id.id,
|
||||
'quantity': rec.requested_quantity,
|
||||
'price_unit': rec.requested_service_amount,
|
||||
})
|
||||
|
|
@ -1039,6 +1040,7 @@ class ServiceRequest(models.Model):
|
|||
vendor_bill = self.env['account.move'].create({
|
||||
'move_type': 'in_invoice',
|
||||
'partner_id': self[0].service_producer_id.id,
|
||||
'journal_id': validation_setting.journal_id.id,
|
||||
# 'accountant_id': self.accountant_id.id,
|
||||
'invoice_line_ids': line_ids,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="payment_journal_id"/>
|
||||
<field name="account_id" string="Service Payment Account"/>
|
||||
<field name="accountant_id"/>
|
||||
</group>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<field name="name">payment.orders.form</field>
|
||||
<field name="model">payment.orders</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Payment Orders">
|
||||
<form string="Payment Orders" create="false">
|
||||
<header>
|
||||
<button name="action_manager_approval" type="object" states="draft"
|
||||
string="Manager approval" class="oe_highlight"/>
|
||||
|
|
@ -60,16 +60,20 @@
|
|||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<field name="payment_order_date"/>
|
||||
<field name="payment_order_date" readonly="1"/>
|
||||
<field name="type" readonly="1"/>
|
||||
<field name="accountant_id"/>
|
||||
<field name="journal_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="payment_order_description"/>
|
||||
<field name="ref_num"/>
|
||||
<field name="payment_order_description" readonly="1"/>
|
||||
<field name="ref_num" readonly="1"/>
|
||||
<field name="is_seasonal" invisible="1"/>
|
||||
<field name="move_id" attrs="{'invisible':[('move_id','=',False)]}"/>
|
||||
<field name="move_id" attrs="{'invisible':[('move_id','=',False)]}" readonly="1"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="currency_id" groups="base.group_multi_currency" invisible="1"/>
|
||||
<field name="total_amount" widget="monetary"
|
||||
options="{'currency_field': 'currency_id'}"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
|
|
@ -144,13 +148,21 @@
|
|||
<field name="name">payment.orders.tree</field>
|
||||
<field name="model">payment.orders</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Payment Orders">
|
||||
<tree string="Payment Orders" create="false">
|
||||
<field name="name" readonly="1"/>
|
||||
<field name="payment_order_date"/>
|
||||
<field name="accountant_id" widget="many2one_avatar_user"/>
|
||||
<field name="payment_order_description"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="currency_id" groups="base.group_multi_currency" invisible="1"/>
|
||||
<field name="total_amount" widget="monetary" decoration-bf="1"
|
||||
options="{'currency_field': 'currency_id'}"/>
|
||||
<field name="type"/>
|
||||
<field name="state"/>
|
||||
<field name="state"
|
||||
widget="badge"
|
||||
decoration-info="state == 'draft'"
|
||||
decoration-warning="state not in ['draft','done']"
|
||||
decoration-success="state == 'done'"
|
||||
/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
|||
Loading…
Reference in New Issue