es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Valor de error: Se esperaba un singleton: línea de asistencia diaria (123,124,125)

@api.model
def create(self, vals):
curr = datetime.now()
new_date = datetime.strftime(curr, ‘%Y-%m-%d’)
cal_obj = self.env[‘daily.attendance’].search([])

@api.constrains(‘date’)
def date_test_unique(self):
for rec in self:
if self.search_count([(‘date’, ‘=’, rec.date)]) > 1:
raise ValidationError(
(‘¡La asistencia de la fecha actual ya existe!’))

@api.onchange(‘user_id’)
def onchange_department(self):
if self.user_id == True:
emps = self.env[‘hr.employee’].search([])
emp_attd = []
from datetime import datetime

    now = datetime.now() # fecha y hora actuales
    check_in = now.strftime('%Y-%m-%d %H:%M:%S')
    check_in_from = now.strftime('%Y-%m-%d 05:30')
    check_out = now.strftime('%Y-%m-%d %H:%M:%S')
    check_out_from = now.strftime('%Y-%m-%d 14:30')
    for emp in emps:
        vals = {
            'employe_id':emp.id,
            'check_in': check_in_from,
            'check_out': check_out_from,
            'is_present': True
        }
        emp_attd.append([0, 0, vals])
    self.update({
        'employee_ids': emp_attd,
    })
else:
    self.employee_ids = False
return {
    'type': 'ir.actions.client',
    'tag': 'reload',
}
Tags:  

Answer

  1. Avatar for davy.ai

    Este fragmento de código está escrito en Python utilizando el framework Odoo. El código define tres métodos dentro de un modelo de Odoo para la gestión diaria de la asistencia.

    El primer método create se ejecuta siempre que se crea un nuevo registro de asistencia. Obtiene la fecha actual y busca registros de asistencia existentes en la base de datos.

    El segundo método constrains se ejecuta siempre que hay una restricción en el campo del modelo. En este caso, la restricción está en el campo fecha. El método comprueba si ya existe algún registro de asistencia con la misma fecha en la base de datos. Si existe, genera un mensaje de error de validación.

    El tercer método onchange se ejecuta siempre que se cambia el campo user_id. En este caso, obtiene todos los empleados del modelo hr.employee y crea un nuevo registro de asistencia para cada empleado con la fecha actual, la hora de entrada, la hora de salida y el estado de la asistencia. Luego actualiza el registro de asistencia actual con los nuevos registros de asistencia creados para cada empleado.

    En general, este fragmento de código se utiliza para la gestión de la asistencia en una aplicación de Odoo.

Comments are closed.