mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
[IMP] : black, isort, prettier
This commit is contained in:
committed by
Francisco Ivan Anton Prieto
parent
15423b63cd
commit
a2f71595bf
@@ -6,7 +6,7 @@ from odoo import api, fields, models
|
||||
|
||||
class ContractContractTerminate(models.TransientModel):
|
||||
|
||||
_name = 'contract.contract.terminate'
|
||||
_name = "contract.contract.terminate"
|
||||
_description = "Terminate Contract Wizard"
|
||||
|
||||
contract_id = fields.Many2one(
|
||||
|
||||
@@ -1,34 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright 2020 ACSONE SA/NV
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
|
||||
<odoo>
|
||||
|
||||
<record model="ir.ui.view" id="contract_contract_terminate_form_view">
|
||||
<field name="model">contract.contract.terminate</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Contract Contract Terminate">
|
||||
<group>
|
||||
<field name="contract_id" invisible="True"/>
|
||||
<field name="terminate_comment_required" invisible="True"/>
|
||||
<field name="terminate_date"/>
|
||||
<field name="terminate_reason_id" widget="selection"/>
|
||||
<field name="terminate_comment" attrs="{'required': [('terminate_comment_required', '=', True)]}"/>
|
||||
<field name="contract_id" invisible="True" />
|
||||
<field name="terminate_comment_required" invisible="True" />
|
||||
<field name="terminate_date" />
|
||||
<field name="terminate_reason_id" widget="selection" />
|
||||
<field
|
||||
name="terminate_comment"
|
||||
attrs="{'required': [('terminate_comment_required', '=', True)]}"
|
||||
/>
|
||||
</group>
|
||||
<footer>
|
||||
<button name="terminate_contract"
|
||||
string="Terminate Contract"
|
||||
class="btn-primary"
|
||||
confirm="Are you sure you want to terminate this contract?"
|
||||
type="object"/>
|
||||
<button string="Cancel"
|
||||
class="btn-default"
|
||||
special="cancel"/>
|
||||
<button
|
||||
name="terminate_contract"
|
||||
string="Terminate Contract"
|
||||
class="btn-primary"
|
||||
confirm="Are you sure you want to terminate this contract?"
|
||||
type="object"
|
||||
/>
|
||||
<button string="Cancel" class="btn-default" special="cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
</odoo>
|
||||
|
||||
@@ -6,12 +6,12 @@ from odoo import api, fields, models
|
||||
|
||||
class ContractLineWizard(models.TransientModel):
|
||||
|
||||
_name = 'contract.line.wizard'
|
||||
_description = 'Contract Line Wizard'
|
||||
_name = "contract.line.wizard"
|
||||
_description = "Contract Line Wizard"
|
||||
|
||||
date_start = fields.Date(string='Date Start')
|
||||
date_end = fields.Date(string='Date End')
|
||||
recurring_next_date = fields.Date(string='Next Invoice Date')
|
||||
date_start = fields.Date(string="Date Start")
|
||||
date_end = fields.Date(string="Date End")
|
||||
recurring_next_date = fields.Date(string="Next Invoice Date")
|
||||
is_auto_renew = fields.Boolean(string="Auto Renew", default=False)
|
||||
manual_renew_needed = fields.Boolean(
|
||||
string="Manual renew needed",
|
||||
|
||||
@@ -1,100 +1,114 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright 2018 ACSONE SA/NV
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
|
||||
<odoo>
|
||||
|
||||
<record model="ir.ui.view" id="contract_line_wizard_stop_form_view">
|
||||
<field name="name">contract.line.stop.wizard.form (in contract)</field>
|
||||
<field name="model">contract.line.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<group>
|
||||
<field name="contract_line_id" invisible="True"/>
|
||||
<field string="Stop Date" name="date_end" required="True"/>
|
||||
<field string="Is suspension without end date" name="manual_renew_needed"/>
|
||||
<field name="contract_line_id" invisible="True" />
|
||||
<field string="Stop Date" name="date_end" required="True" />
|
||||
<field
|
||||
string="Is suspension without end date"
|
||||
name="manual_renew_needed"
|
||||
/>
|
||||
</group>
|
||||
<footer>
|
||||
<button name="stop"
|
||||
string="Validate"
|
||||
class="btn-primary"
|
||||
type="object"/>
|
||||
<button string="Cancel"
|
||||
class="btn-default"
|
||||
special="cancel"/>
|
||||
<button
|
||||
name="stop"
|
||||
string="Validate"
|
||||
class="btn-primary"
|
||||
type="object"
|
||||
/>
|
||||
<button string="Cancel" class="btn-default" special="cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="contract_line_wizard_plan_successor_form_view">
|
||||
<field name="name">contract.line.plan_successor.wizard.form (in contract)</field>
|
||||
<field
|
||||
name="name"
|
||||
>contract.line.plan_successor.wizard.form (in contract)</field>
|
||||
<field name="model">contract.line.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<group>
|
||||
<field name="contract_line_id" invisible="True"/>
|
||||
<field name="date_start" required="True"/>
|
||||
<field name="date_end" attrs="{'required': [('is_auto_renew', '=', True)]}"/>
|
||||
<field name="is_auto_renew"/>
|
||||
<field name="contract_line_id" invisible="True" />
|
||||
<field name="date_start" required="True" />
|
||||
<field
|
||||
name="date_end"
|
||||
attrs="{'required': [('is_auto_renew', '=', True)]}"
|
||||
/>
|
||||
<field name="is_auto_renew" />
|
||||
</group>
|
||||
<footer>
|
||||
<button name="plan_successor"
|
||||
string="Validate"
|
||||
class="btn-primary"
|
||||
type="object"/>
|
||||
<button string="Cancel"
|
||||
class="btn-default"
|
||||
special="cancel"/>
|
||||
<button
|
||||
name="plan_successor"
|
||||
string="Validate"
|
||||
class="btn-primary"
|
||||
type="object"
|
||||
/>
|
||||
<button string="Cancel" class="btn-default" special="cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="contract_line_wizard_stop_plan_successor_form_view">
|
||||
<field name="name">contract.line.stop_plan_successor.wizard.form (in contract)</field>
|
||||
<field
|
||||
name="name"
|
||||
>contract.line.stop_plan_successor.wizard.form (in contract)</field>
|
||||
<field name="model">contract.line.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<group>
|
||||
<field name="contract_line_id" invisible="True"/>
|
||||
<field string="Suspension Start Date" name="date_start" required="True"/>
|
||||
<field string="Suspension End Date" name="date_end" required="True"/>
|
||||
<field name="is_auto_renew" invisible="1"/>
|
||||
<field name="contract_line_id" invisible="True" />
|
||||
<field
|
||||
string="Suspension Start Date"
|
||||
name="date_start"
|
||||
required="True"
|
||||
/>
|
||||
<field
|
||||
string="Suspension End Date"
|
||||
name="date_end"
|
||||
required="True"
|
||||
/>
|
||||
<field name="is_auto_renew" invisible="1" />
|
||||
</group>
|
||||
<footer>
|
||||
<button name="stop_plan_successor"
|
||||
string="Validate"
|
||||
class="btn-primary"
|
||||
type="object"/>
|
||||
<button string="Cancel"
|
||||
class="btn-default"
|
||||
special="cancel"/>
|
||||
<button
|
||||
name="stop_plan_successor"
|
||||
string="Validate"
|
||||
class="btn-primary"
|
||||
type="object"
|
||||
/>
|
||||
<button string="Cancel" class="btn-default" special="cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="contract_line_wizard_uncancel_form_view">
|
||||
<field name="name">contract.line.stop_plan_successor.wizard.form (in contract)</field>
|
||||
<field
|
||||
name="name"
|
||||
>contract.line.stop_plan_successor.wizard.form (in contract)</field>
|
||||
<field name="model">contract.line.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<group>
|
||||
<field name="contract_line_id" invisible="True"/>
|
||||
<field name="recurring_next_date" required="True"/>
|
||||
<field name="contract_line_id" invisible="True" />
|
||||
<field name="recurring_next_date" required="True" />
|
||||
</group>
|
||||
<footer>
|
||||
<button name="uncancel"
|
||||
string="Validate"
|
||||
class="btn-primary"
|
||||
type="object"/>
|
||||
<button string="Cancel"
|
||||
class="btn-default"
|
||||
special="cancel"/>
|
||||
<button
|
||||
name="uncancel"
|
||||
string="Validate"
|
||||
class="btn-primary"
|
||||
type="object"
|
||||
/>
|
||||
<button string="Cancel" class="btn-default" special="cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
||||
@@ -1,40 +1,38 @@
|
||||
# Copyright 2019 ACSONE SA/NV
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import api, fields, models, _
|
||||
from odoo import _, api, fields, models
|
||||
|
||||
|
||||
class ContractManuallyCreateInvoice(models.TransientModel):
|
||||
|
||||
_name = 'contract.manually.create.invoice'
|
||||
_description = 'Contract Manually Create Invoice Wizard'
|
||||
_name = "contract.manually.create.invoice"
|
||||
_description = "Contract Manually Create Invoice Wizard"
|
||||
|
||||
invoice_date = fields.Date(string="Invoice Date", required=True)
|
||||
contract_to_invoice_count = fields.Integer(
|
||||
compute="_compute_contract_to_invoice_ids"
|
||||
)
|
||||
contract_to_invoice_ids = fields.Many2many(
|
||||
comodel_name="contract.contract",
|
||||
compute="_compute_contract_to_invoice_ids",
|
||||
comodel_name="contract.contract", compute="_compute_contract_to_invoice_ids",
|
||||
)
|
||||
contract_type = fields.Selection(
|
||||
selection=[('sale', 'Customer'), ('purchase', 'Supplier')],
|
||||
default='sale',
|
||||
selection=[("sale", "Customer"), ("purchase", "Supplier")],
|
||||
default="sale",
|
||||
required=True,
|
||||
)
|
||||
|
||||
@api.depends('invoice_date')
|
||||
@api.depends("invoice_date")
|
||||
def _compute_contract_to_invoice_ids(self):
|
||||
if not self.invoice_date:
|
||||
# trick to show no invoice when no date has been entered yet
|
||||
contract_to_invoice_domain = [('id', '=', False)]
|
||||
contract_to_invoice_domain = [("id", "=", False)]
|
||||
else:
|
||||
contract_to_invoice_domain = self.env[
|
||||
'contract.contract'
|
||||
"contract.contract"
|
||||
]._get_contracts_to_invoice_domain(self.invoice_date)
|
||||
self.contract_to_invoice_ids = self.env['contract.contract'].search(
|
||||
contract_to_invoice_domain
|
||||
+ [('contract_type', '=', self.contract_type)]
|
||||
self.contract_to_invoice_ids = self.env["contract.contract"].search(
|
||||
contract_to_invoice_domain + [("contract_type", "=", self.contract_type)]
|
||||
)
|
||||
self.contract_to_invoice_count = len(self.contract_to_invoice_ids)
|
||||
|
||||
@@ -45,7 +43,7 @@ class ContractManuallyCreateInvoice(models.TransientModel):
|
||||
"type": "ir.actions.act_window",
|
||||
"name": _("Contracts to invoice"),
|
||||
"res_model": "contract.contract",
|
||||
"domain": [('id', 'in', self.contract_to_invoice_ids.ids)],
|
||||
"domain": [("id", "in", self.contract_to_invoice_ids.ids)],
|
||||
"view_mode": "tree,form",
|
||||
"context": self.env.context,
|
||||
}
|
||||
@@ -53,14 +51,14 @@ class ContractManuallyCreateInvoice(models.TransientModel):
|
||||
@api.multi
|
||||
def create_invoice(self):
|
||||
self.ensure_one()
|
||||
invoices = self.env['account.invoice']
|
||||
invoices = self.env["account.invoice"]
|
||||
for contract in self.contract_to_invoice_ids:
|
||||
invoices |= contract.recurring_create_invoice()
|
||||
return {
|
||||
"type": "ir.actions.act_window",
|
||||
"name": _("Invoices"),
|
||||
"res_model": "account.invoice",
|
||||
"domain": [('id', 'in', invoices.ids)],
|
||||
"domain": [("id", "in", invoices.ids)],
|
||||
"view_mode": "tree,form",
|
||||
"context": self.env.context,
|
||||
}
|
||||
|
||||
@@ -1,79 +1,91 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright 2019 ACSONE SA/NV
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
|
||||
<odoo>
|
||||
|
||||
<record model="ir.ui.view" id="contract_manually_create_invoice_form_view">
|
||||
<field name="model">contract.manually.create.invoice</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Contract Manually Create Invoice">
|
||||
<group>
|
||||
<group>
|
||||
<field name="invoice_date"/>
|
||||
<field name="contract_type" invisible="1"/>
|
||||
<field name="invoice_date" />
|
||||
<field name="contract_type" invisible="1" />
|
||||
</group>
|
||||
<group>
|
||||
<button name="action_show_contract_to_invoice" type="object"
|
||||
class="btn-link"
|
||||
attrs="{'invisible': [('contract_to_invoice_count', '=', 0)]}">
|
||||
<field name="contract_to_invoice_count"/>
|
||||
<span attrs="{'invisible': [('contract_to_invoice_count', '>', 1)]}">
|
||||
<button
|
||||
name="action_show_contract_to_invoice"
|
||||
type="object"
|
||||
class="btn-link"
|
||||
attrs="{'invisible': [('contract_to_invoice_count', '=', 0)]}"
|
||||
>
|
||||
<field name="contract_to_invoice_count" />
|
||||
<span
|
||||
attrs="{'invisible': [('contract_to_invoice_count', '>', 1)]}"
|
||||
>
|
||||
contract to invoice
|
||||
</span>
|
||||
<span attrs="{'invisible': [('contract_to_invoice_count', '<', 1)]}">
|
||||
<span
|
||||
attrs="{'invisible': [('contract_to_invoice_count', '<', 1)]}"
|
||||
>
|
||||
contracts to invoice
|
||||
</span>
|
||||
</button>
|
||||
</group>
|
||||
</group>
|
||||
<footer>
|
||||
<button name="create_invoice"
|
||||
attrs="{'invisible': [('contract_to_invoice_count', '=', 0)]}"
|
||||
string="Create Invoices"
|
||||
class="btn-primary"
|
||||
type="object"/>
|
||||
<button string="Cancel"
|
||||
class="btn-default"
|
||||
special="cancel"/>
|
||||
<button
|
||||
name="create_invoice"
|
||||
attrs="{'invisible': [('contract_to_invoice_count', '=', 0)]}"
|
||||
string="Create Invoices"
|
||||
class="btn-primary"
|
||||
type="object"
|
||||
/>
|
||||
<button string="Cancel" class="btn-default" special="cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window"
|
||||
id="sale_contract_manually_create_invoice_act_window">
|
||||
<record
|
||||
model="ir.actions.act_window"
|
||||
id="sale_contract_manually_create_invoice_act_window"
|
||||
>
|
||||
<field name="name">Manually Invoice Sale Contracts</field>
|
||||
<field name="res_model">contract.manually.create.invoice</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="context">{'default_contract_type': 'sale'}</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.menu" id="sale_contract_manually_create_invoice_menu">
|
||||
<field name="name">Manually Invoice Sale Contracts</field>
|
||||
<field name="parent_id" ref="account.menu_finance_receivables"/>
|
||||
<field name="groups_id" eval="[(6, 0, [ref('account.group_account_manager')])]"/>
|
||||
<field name="action"
|
||||
ref="sale_contract_manually_create_invoice_act_window"/>
|
||||
<field name="sequence" eval="999"/>
|
||||
<field name="parent_id" ref="account.menu_finance_receivables" />
|
||||
<field
|
||||
name="groups_id"
|
||||
eval="[(6, 0, [ref('account.group_account_manager')])]"
|
||||
/>
|
||||
<field name="action" ref="sale_contract_manually_create_invoice_act_window" />
|
||||
<field name="sequence" eval="999" />
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window"
|
||||
id="purchase_contract_manually_create_invoice_act_window">
|
||||
<record
|
||||
model="ir.actions.act_window"
|
||||
id="purchase_contract_manually_create_invoice_act_window"
|
||||
>
|
||||
<field name="name">Manually Invoice Purchase Contracts</field>
|
||||
<field name="res_model">contract.manually.create.invoice</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="context">{'default_contract_type': 'purchase'}</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.menu" id="purchase_contract_manually_create_invoice_menu">
|
||||
<field name="name">Manually Invoice Purchase Contracts</field>
|
||||
<field name="parent_id" ref="account.menu_finance_payables"/>
|
||||
<field name="groups_id" eval="[(6, 0, [ref('account.group_account_manager')])]"/>
|
||||
<field name="action"
|
||||
ref="purchase_contract_manually_create_invoice_act_window"/>
|
||||
<field name="sequence" eval="999"/>
|
||||
<field name="parent_id" ref="account.menu_finance_payables" />
|
||||
<field
|
||||
name="groups_id"
|
||||
eval="[(6, 0, [ref('account.group_account_manager')])]"
|
||||
/>
|
||||
<field
|
||||
name="action"
|
||||
ref="purchase_contract_manually_create_invoice_act_window"
|
||||
/>
|
||||
<field name="sequence" eval="999" />
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
Reference in New Issue
Block a user