Ir al contenido
Odoo Menú
  • Iniciar sesión
  • Pruébalo gratis
  • Aplicaciones
    Finanzas
    • Contabilidad
    • Facturación
    • Gastos
    • Hoja de cálculo (BI)
    • Documentos
    • Firma electrónica
    Ventas
    • CRM
    • Ventas
    • TPV para tiendas
    • TPV para restaurantes
    • Suscripciones
    • Alquiler
    Sitios web
    • Creador de sitios web
    • Comercio electrónico
    • Blog
    • Foro
    • Chat en directo
    • e-learning
    Cadena de suministro
    • Inventario
    • Fabricación
    • PLM
    • Compra
    • Mantenimiento
    • Calidad
    Recursos Humanos
    • Empleados
    • Reclutamiento
    • Ausencias
    • Evaluación
    • Referencias
    • Flota
    Marketing
    • Marketing social
    • Marketing por correo electrónico
    • Marketing por SMS
    • Eventos
    • Automatización de marketing
    • Encuestas
    Servicios
    • Proyecto
    • Partes de horas
    • Servicio de campo
    • Servicio de asistencia
    • Planificación
    • Citas
    Productividad
    • Conversaciones
    • Inteligencia artificial
    • IoT
    • VoIP
    • Información
    • WhatsApp
    Aplicaciones de terceros Studio de Odoo Plataforma de Odoo Cloud
  • Industrias
    Comercio al por menor
    • Librería
    • Tienda de ropa
    • Tienda de muebles
    • Tienda de ultramarinos
    • Ferretería
    • Juguetería
    Alimentación y hostelería
    • Bar y pub
    • Restaurante
    • Comida rápida
    • Casa de huéspedes
    • Distribuidor de bebidas
    • Hotel
    Inmueble
    • Agencia inmobiliaria
    • Estudio de arquitectura
    • Construcción
    • Gestión inmobiliaria
    • Jardinería
    • Asociación de propietarios
    Consultoría
    • Empresa contable
    • Partner de Odoo
    • Agencia de marketing
    • Bufete de abogados
    • Adquisición de talentos
    • Auditorías y certificaciones
    Fabricación
    • Textil
    • Metal
    • Muebles
    • Alimentos
    • Cervecería
    • Regalos de empresas
    Salud y bienestar
    • Club deportivo
    • Óptica
    • Gimnasio
    • Terapeutas
    • Farmacia
    • Peluquería
    Oficios
    • Handyman
    • Hardware y soporte técnico
    • Sistemas de energía solar
    • Zapatero
    • Servicios de limpieza
    • Servicios de calefacción, ventilación y aire acondicionado
    Otros
    • Organización sin ánimo de lucro
    • Agencia de protección del medio ambiente
    • Alquiler de paneles publicitarios
    • Estudio fotográfico
    • Alquiler de bicicletas
    • Distribuidor de software
    Explorar todos los sectores
  • Comunidad
    Aprender
    • Tutoriales
    • Documentación
    • Certificaciones
    • Formación
    • Blog
    • Podcast
    Potenciar la educación
    • Programa de formación
    • Scale Up! El juego empresarial
    • Visita Odoo
    Obtener el software
    • Descargar
    • Comparar ediciones
    • Versiones
    Colaborar
    • GitHub
    • Foro
    • Eventos
    • Traducciones
    • Convertirse en partner
    • Servicios para partners
    • Registrar tu empresa contable
    Obtener servicios
    • Encontrar un partner
    • Encontrar un asesor fiscal
    • Contacta con un experto
    • Servicios de implementación
    • Referencias de clientes
    • Ayuda
    • Actualizaciones
    GitHub YouTube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Solicitar una demostración
  • Precios
  • Ayuda
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Sobre este foro
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Sobre este foro
Ayuda

Multiple Fields Constraint

Suscribirse

Reciba una notificación cuando haya actividad en esta publicación

Esta pregunta ha sido marcada
constraintodooV12
4 Respuestas
9018 Vistas
Avatar
Ali Mahmoud

Hi,

I'm using odoo 12 and I have a model called "shift", this shift is related to user (user_id), and has a selection field called status with options: (open, closed)

i want to ensure that user can't open 2 shifts at the same time

he can have a lot of closed shifts but if he has one open shift he can't open another one

anyone can help me with creating the constraint and i'll be thankful 

2
Avatar
Descartar
Avatar
Ajeet Yadav (Softprime Consulting Pvt Ltd)
Mejor respuesta

You can apply constrains on two fields-

@api.constrains('user_id', 'status')

def check_user_open_shift(self):

    // here you can search already existing shift in open state for selected user and raise error if already exist.


 


4
Avatar
Descartar
Ali Mahmoud
Autor

Thank You

Tauqir Wahab

Hello sir i want to use constrain on many2one field, the constrain should be different for each data of that many2one field.

Avatar
faOtools
Mejor respuesta

Try to add to the shift model like this:

from odoo.exceptions import UserError # in the import list
@api.multi
@api.constrains('state', 'user_id')
def _check_open_shifts(self):
user_ids = self.mapped("user_id") # assume that shift user field is called 'user_id'
for user in user_ids:
open_shifts = self.search([("state", "=", "open"), ("user_id", "=", user.id)], limit=2)
if len(open_shifts) > 1:
raise UserError("Only a single open shift is allowed per user")
1
Avatar
Descartar
Ali Mahmoud
Autor

sorry but in this way we will prevent open 2 shifts whoever the user was, what i want is to prevent opening 2 shifts for the same user, i mean user a can have one open shift and user b can have one open shift etc but user a can't have 2 open shift at the same time

faOtools

look at the updated answer

Ali Mahmoud
Autor

Thank you very much, i appreciate your help

Avatar
Niyas Raphy (Walnut Software Solutions)
Mejor respuesta

Hi,

You can check how the warning is shown in the attendance module. In it if the employee is checkd in once, on next checkin(without checkout)  and system will throw a warning message .


Thanks

1
Avatar
Descartar
Ali Mahmoud
Autor

Thank you

¿Le interesa esta conversación? ¡Participe en ella!

Cree una cuenta para poder utilizar funciones exclusivas e interactuar con la comunidad.

Inscribirse
Publicaciones relacionadas Respuestas Vistas Actividad
Data Exceeded error while importing data in Odoo v12 Resuelto
odooV12
Avatar
Avatar
Avatar
Avatar
Avatar
4
may 24
9292
Project and Timesheets
odooV12
Avatar
Avatar
1
jul 23
3392
Accepting Bancontact payments through Paypal
odooV12
Avatar
Avatar
Avatar
3
jun 23
4620
python code customisation to calculate professional tax in payroll module
odooV12
Avatar
Avatar
Avatar
4
jun 22
6720
Invisible Sale Order line Description Field
odooV12
Avatar
Avatar
Avatar
Avatar
3
abr 22
7240
Comunidad
  • Tutoriales
  • Documentación
  • Foro
Código abierto
  • Descargar
  • GitHub
  • Runbot
  • Traducciones
Servicios
  • Alojamiento Odoo.sh
  • Ayuda
  • Actualizar
  • Desarrollos personalizados
  • Educación
  • Encontrar un asesor fiscal
  • Encontrar un partner
  • Convertirse en partner
Sobre nosotros
  • Nuestra empresa
  • Activos de marca
  • Contacta con nosotros
  • Puestos de trabajo
  • Eventos
  • Podcast
  • Blog
  • Clientes
  • Información legal • Privacidad
  • Seguridad
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk Slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo es un conjunto de aplicaciones empresariales de código abierto que cubre todas las necesidades de tu empresa: CRM, comercio electrónico, contabilidad, inventario, punto de venta, gestión de proyectos, etc.

La propuesta única de valor de Odoo es ser muy fácil de usar y estar totalmente integrado.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now