Esempio n. 1
0
 def clean(self):
     """Las fechas para un mismo contrato pueden solaparse"""
     if self.fecha_fin < self.fecha_inicio:
         raise ValidationError("La fecha fin debe ser mayor que la inicial")
     condiciones = RestriccionBlackout.objects.filter(contrato=self.contrato)
     if self.id:
         condiciones = condiciones.exclude(pk=self.pk)
     if overlaps_in_range(condiciones, self.fecha_inicio, self.fecha_fin,
                                      lambda x: (x.fecha_inicio, x.fecha_fin)):
         raise ValidationError("Las condiciones para este suplemento se solapan")
Esempio n. 2
0
 def clean(self):
     """Las fechas para un mismo contrato y tipo de habitación no pueden solaparse"""
     if self.fecha_fin < self.fecha_inicio:
         raise ValidationError("La fecha fin debe ser mayor que la inicial")
     condiciones = SuplementoOcupacion.objects.filter(contrato=self.contrato,
                                                      tipo_habitacion=self.tipo_habitacion)
     if self.id:
         condiciones = condiciones.exclude(pk=self.pk)
     if overlaps_in_range(condiciones, self.fecha_inicio, self.fecha_fin,
                                      lambda x: (x.fecha_inicio, x.fecha_fin)):
         raise ValidationError("Las condiciones para este suplemento se solapan")
Esempio n. 3
0
 def clean(self):
     """Las fechas para un mismo contrato y regimen no pueden solaparse"""
     if self.fecha_fin < self.fecha_inicio:
         raise ValidationError("La fecha fin debe ser mayor que la inicial")
     condiciones = SuplementoRegimen.objects.filter(hotel=self.hotel,
                                                      regimen=self.regimen)
     if self.id:
         condiciones = condiciones.exclude(pk=self.pk)
     if overlaps_in_range(condiciones, self.fecha_inicio, self.fecha_fin,
                                      lambda x: (x.fecha_inicio, x.fecha_fin)):
         raise ValidationError("Las condiciones para este suplemento se solapan")
Esempio n. 4
0
 def clean(self):
     if self.fecha_fin < self.fecha_inicio:
         raise ValidationError("La fecha fin debe ser mayor que la inicial")
     contratos = Contrato.objects.filter(hotel=self.hotel, activo=True)
     if self.id:
         contratos = contratos.exclude(pk=self.pk)
     if overlaps_in_range(contratos, self.fecha_inicio, self.fecha_fin,
                                      lambda x: (x.fecha_inicio, x.fecha_fin)):
         raise ValidationError("Los contratos para este hotel se solapan")
     if not self.revisado and self.activo:
         raise ValidationError("Un contrato no puede ser activado si no se marca como revisado")
Esempio n. 5
0
 def clean(self):
     """Las fechas para un mismo contrato pueden solaparse"""
     if self.fecha_fin < self.fecha_inicio:
         raise ValidationError("La fecha fin debe ser mayor que la inicial")
     condiciones = RestriccionEstanciaMinima.objects.filter(contrato=self.contrato)
     if self.id:
         condiciones = condiciones.exclude(pk=self.pk)
     if overlaps_in_range(condiciones, self.fecha_inicio, self.fecha_fin,
                                      lambda x: (x.fecha_inicio, x.fecha_fin)):
         raise ValidationError("Las condiciones para esta restricción se solapan")
     if  self.minimo_noches > self.maximo_noches:
         raise ValidationError('El mínimo de noches debe ser inferior al máximo')
Esempio n. 6
0
 def clean(self):
     """Las fechas para un mismo contrato pueden solaparse"""
     if self.fecha_fin < self.fecha_inicio:
         raise ValidationError("La fecha fin debe ser mayor que la inicial")
     condiciones = RestriccionOcupacion.objects.filter(contrato=self.contrato, tipo_habitacion=self.tipo_habitacion)
     if self.id:
         condiciones = condiciones.exclude(pk=self.pk)
     if overlaps_in_range(condiciones, self.fecha_inicio, self.fecha_fin,
                                      lambda x: (x.fecha_inicio, x.fecha_fin)):
         raise ValidationError("Las condiciones para este suplemento se solapan")
     if not inside((self.contrato.fecha_inicio, self.contrato.fecha_fin,), \
                   (self.fecha_inicio, self.fecha_fin)):
         raise ValidationError('Las fechas deben corresponder con las del contrato')
     if  self.minimo_adultos > self.maximo_adultos:
         raise ValidationError('El mínimo de adultos debe ser inferior al máximo')
Esempio n. 7
0
 def clean(self):
     """
     La fecha de inicio debe ser mayor que la final.
     Las fectas debe estar dentro del rango del contrato
     Las fechas no deben solaparse para un mismo tipo y régimen
     El precio debe ser mayor que cero.
     """
     if self.fecha_fin < self.fecha_inicio:
         raise ValidationError("La fecha fin debe ser mayor que la inicial")
     condiciones = CondicionesContrato.objects.filter(contrato=self.contrato,
                                                      regimen=self.regimen,
                                                      tipo_habitacion=self.tipo_habitacion)
     if self.id:
         condiciones = condiciones.exclude(pk=self.pk)
     if overlaps_in_range(condiciones, self.fecha_inicio, self.fecha_fin,
                                      lambda x: (x.fecha_inicio, x.fecha_fin)):
         raise ValidationError("Las condiciones para este contrato se solapan")
     if self.precio <=0 and not self.is_paro_ventas:
         raise ValidationError("El precio debe ser mayor que cero si no hay paro de ventas")