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")
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")
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")
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")
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')
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')
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")