You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

55 lines
1.6 KiB

from odoo import _, api, fields, models
from odoo.exceptions import UserError
class ShareLineUpdateInfo(models.TransientModel):
_name = "share.line.update.info"
_description = "Share line update info"
@api.model
def _get_share_line(self):
active_id = self.env.context.get("active_id")
return self.env["share.line"].browse(active_id)
@api.model
def _get_effective_date(self):
share_line = self._get_share_line()
return share_line.effective_date
effective_date = fields.Date(
string="effective date", required=True, default=_get_effective_date
)
cooperator = fields.Many2one(
related="share_line.partner_id", string="Cooperator"
)
share_line = fields.Many2one(
"share.line", string="Share line", default=_get_share_line
)
@api.multi
def update(self):
line = self.share_line
cooperator = line.partner_id
sub_reg = self.env["subscription.register"].search(
[
("partner_id", "=", cooperator.id),
("share_product_id", "=", line.share_product_id.id),
("quantity", "=", line.share_number),
("date", "=", line.effective_date),
]
)
if sub_reg:
if len(sub_reg) > 1:
raise UserError(
_(
"Error the update return more than one"
" subscription register lines."
)
)
else:
line.effective_date = self.effective_date
sub_reg.date = self.effective_date
return True