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.
 
 
 
 
 

44 lines
1.5 KiB

# -*- coding: utf-8 -*-
from openerp import models, fields, api, exceptions, _
from openerp.exceptions import UserError, ValidationError
class ValidateAttendanceSheet(models.TransientModel):
_name = "beesdoo.shift.sheet.validate"
_description = """Check the user name and validate sheet.
Useless for users in group_cooperative_admin"""
def _get_sheet(self):
return self._context.get("active_id")
# current user as default value !
#card = fields.Many2one("member.card", string="MemberCard")
barcode = fields.Char(string="Barcode", required=True)
user = fields.Many2one("res.partner", compute="_compute_user", string="User Name", readonly=True)
@api.depends("barcode")
def _compute_user(self):
if self.barcode:
card = self.env["member.card"].search([("barcode", "=", self.barcode)])
if card:
self.user = card[0].partner_id
else:
self.user = False
# Is the "@api.multi" correct here ?
@api.multi
def validate_sheet(self):
if not self.user:
raise UserError("Please set a correct barcode.")
sheet_id = self._context.get("active_id")
sheet_model = self._context.get("active_model")
sheet = self.env[sheet_model].browse(sheet_id)
sheet.ensure_one()
if not self.user.super:
raise UserError(
"You must be super-coop or admin to validate the sheet."
)
sheet.validated_by = self.user
sheet.validate()
return