class RifForm(forms.Form): """! Clase que contiene el campo del RIF a incorporar en un formulario @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve) @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> @date 06-05-2016 @version 2.0.0 """ ## R.I.F. de la Unidad Económica que identifica al usuario en el sistema rif = RifField() def clean_rif(self): """! Método que permite validar el campo de rif @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve) @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> @date 27-04-2016 @param self <b>{object}</b> Objeto que instancia la clase @return Devuelve un mensaje de error en caso de que el rif no sea válido o no se encuentre registrado en el sistema, en caso contrario devuelve el valor actual del campo """ rif = self.cleaned_data['rif'] if not verificar_rif(rif): raise forms.ValidationError(_("El RIF es inválido")) elif not User.objects.filter(username=rif): raise forms.ValidationError(_("El RIF no esta registrado")) return rif
class UnidadEconomicaForm(DirectorioForm): """! Formulario para el registro de la unidad económica @author Eveli Ramírez (eramirez at cenditel.gob.ve) @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> @date 04-05-2016 @version 2.0 """ ## R.I.F. de la Unidad Económica que identifica al usuario en el sistema rif = RifField() rif.widget = RifWidgetReadOnly() ## Nombre Comercial de la Unidad Económica nombre_ue = CharField( label=_("Nombre Comercial: "), max_length=30, widget=TextInput( attrs={ 'class': 'form-control', 'data-toggle': 'tooltip', 'size': '50', 'title': _( "Nombre Comercial de la Unidad Económica a registrar"), 'readonly': 'readonly' })) ## Razón Social razon_social = CharField(label=_("Razón Social: "), widget=TextInput( attrs={ 'class': 'form-control input-sm', 'readonly': 'readonly', 'title': _("Razón Social"), 'size': '50', })) ## Actividad económica principal actividad = ChoiceField( label=_("Actividad Económica Principal"), widget=Select( attrs={ 'class': 'form-control', 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("Seleccione la Actividad Económica Principal que realiza"), 'onchange': 'deshabilitar_opcion(this.value)' })) ## Actividad económica secundaria actividad2 = ChoiceField( label=_("Actividad Económica Secundaria"), widget=Select( attrs={ 'class': 'form-control', 'data-toggle': 'tooltip', 'title': _("Seleccione la(s) Actividad(es) Economica(s) Secundaria(s) que realiza" ) }), required=False) ## Actividad económica secundaria (datatable) actividad2_tb = forms.CharField( label=_("Actividad Económica Secundaria"), widget=Select( attrs={ 'class': 'form-control', 'data-toggle': 'tooltip', 'title': _("Seleccione la(s) Actividad(es) Economica(s) Secundaria(s) que realiza" ) }), required=False) ## Organización comunal orga_comunal = ChoiceField( label=_("¿Es una organización comunal?"), choices=((True, ''), (False, '')), widget=CheckboxInput( attrs={ 'class': 'seleccion_si_no', 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("¿Es una organización comunal?"), 'value': 'S', 'onchange': "habilitar($(this).is(':checked'), tipo_comunal.id), habilitar($(this).is(':checked'), situr.id)", })) ## Tipo de organización comunal tipo_comunal = ChoiceField( label=_("Tipo de Organizacón Comunal: "), widget=Select( attrs={ 'class': 'form-control select2', 'data-toggle': 'tooltip', 'title': _("Seleccione el tipo de Organizacón Comunal"), 'disabled': 'disabled' }), required=False) ## Código SITUR situr = CharField( label=_("Código SITUR:"), widget=TextInput( attrs={ 'class': 'form-control', 'data-toggle': 'tooltip', 'title': _("Código SITUR de la organización comunal"), 'size': '40', 'disabled': 'disabled' }), required=False) ## Casa Matriz de alguna Franquicia casa_matriz_franquicia = ChoiceField( label=_("¿Es la casa matríz de una Franquicia?"), choices=((True, ''), (False, '')), widget=CheckboxInput( attrs={ 'class': 'seleccion_si_no', 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("¿Es la casa matríz de una Franquicia?"), 'onchange': "habilitar($(this).is(':checked'), nro_franquicia.id)", })) ## Número de Franquicias asociadas a la Unidad Económica nro_franquicia = CharField( label=_("Número de Franquicias:"), initial=0, widget=NumberInput( attrs={ 'class': 'form-control input-sm', 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("Número de Franquicias de la Unidad Económica"), 'size': '3', 'data-mask': '000', 'readonly': 'readonly' }), required=False) ## Franquiciado franquiciado = ChoiceField( label=_("¿Forma parte de una Franquicia?"), choices=((True, ''), (False, '')), widget=CheckboxInput( attrs={ 'class': 'seleccion_si_no', 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("¿Forma parte de una Franquicia?"), 'onchange': "habilitar($(this).is(':checked'), pais_franquicia.id), habilitar($(this).is(':checked'), nombre_franquicia.id)", })) ## País de la Franquicia pais_franquicia = ChoiceField( label=_("País de Origen de la Franquicia"), widget=Select( attrs={ 'class': 'form-control', 'data-toggle': 'tooltip', 'title': _("Seleccione el país de origen de la franquicia"), 'disabled': 'disabled', 'onchange': """habilitar(this.value, rif_casa_matriz_0.id), habilitar(this.value, rif_casa_matriz_1.id), habilitar(this.value, rif_casa_matriz_2.id), deshabilitar(this.value, nombre_franquicia.id)""" }), required=False) ## Nombre de la Franquicia nombre_franquicia = CharField( label=_("Nombre de la Franquicia"), widget=TextInput( attrs={ 'class': 'form-control', 'data-toggle': 'tooltip', 'title': _("Nombre de la franquicia"), 'size': '40', 'readonly': 'readonly' }), required=False) ## RIF Franquicia rif_casa_matriz = RifField(disabled=True, required=False) def __init__(self, *args, **kwargs): super(UnidadEconomicaForm, self).__init__(*args, **kwargs) self.fields['actividad'].choices = cargar_actividad() self.fields['actividad2'].choices = cargar_actividad() # Si se ha indicado que es una organizacion comunal, se habilitan los atributos tipo_comunal y situr if 'orga_comunal' in self.data: self.fields['tipo_comunal'].widget.attrs.pop('disabled') self.fields['situr'].widget.attrs.pop('disabled') self.fields['tipo_comunal'].choices = cargar_tipo_comunal() if 'franquiciado' in self.data: self.fields['pais_franquicia'].widget.attrs.pop('disabled') if 'pais_franquicia' in self.data and self.data['pais_franquicia']: self.fields['rif_casa_matriz'].disabled = False else: self.fields['nombre_franquicia'].widget.attrs.pop('readonly') if 'casa_matriz_franquicia' in self.data: self.fields['nro_franquicia'].widget.attrs.pop('readonly') self.fields['pais_franquicia'].choices = cargar_pais() def clean_nro_franquicia(self): casa_matriz_franquicia = self.cleaned_data.get( 'casa_matriz_franquicia') nro_franquicia = self.cleaned_data.get('nro_franquicia') if casa_matriz_franquicia and nro_franquicia == '' or nro_franquicia == '0': raise forms.ValidationError(_("Indique el número de franquicias")) return nro_franquicia def clean_tipo_comunal(self): tipo_comunal = self.cleaned_data['tipo_comunal'] if 'orga_comunal' in self.data: orga_comunal = self.data['orga_comunal'] if orga_comunal == 'S' and not tipo_comunal: raise forms.ValidationError( _("Seleccione un tipo de organización comunal")) return orga_comunal return tipo_comunal def clean_situr(self): situr = self.cleaned_data['situr'] if 'orga_comunal' in self.data: orga_comunal = self.data['orga_comunal'] if orga_comunal == 'S' and not situr: raise forms.ValidationError( _("Indique el código SITUR de la organización comunal")) return situr def clean_pais_franquicia(self): franquiciado = self.cleaned_data['franquiciado'] pais_franquicia = self.cleaned_data.get('pais_franquicia', False) if 'franquiciado' in self.data: franquiciado = self.data['franquiciado'] if franquiciado == 'S' and not pais_franquicia: raise forms.ValidationError( _("Indique el país de origen de la franquicia")) return pais_franquicia def clean_rif_casa_matriz(self): rif_casa_matriz = self.cleaned_data['rif_casa_matriz'] pais_franquicia = self.cleaned_data.get('pais_franquicia') if pais_franquicia == '1' and not rif_casa_matriz: raise forms.ValidationError(_("Indique el RIF de la franquicia")) return rif_casa_matriz def clean_nombre_franquicia(self): franquiciado = self.cleaned_data['franquiciado'] pais_franquicia = self.cleaned_data.get('pais_franquicia') nombre_franquicia = self.cleaned_data['nombre_franquicia'] if franquiciado == 'S' and pais_franquicia != '1' and not nombre_franquicia: raise forms.ValidationError(_("Indique nombre de la franquicia")) return nombre_franquicia class Meta(object): model = UnidadEconomica fields = ['rif', 'razon_social', 'nombre_ue']
class InformacionMercantilForm(ModelForm): """! Formulario para la gestión de la información mercantil: capital, accionistas y representante legal. @author Lully Troconis (ltroconis at cenditel.gob.ve) @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> @date 04-05-2016 @version 2.0 """ ## Naturaleza Jurídica naturaleza_juridica = ChoiceField( label=_("Naturaleza Jurídica: "), choices=[('', 'Seleccione...')]+NATURALEZA_JURIDICA, widget=Select( attrs={ 'class': 'form-control input-sm', 'size': '28', } ) ) ## Establece el tipo de capital solicitado: capital suscrito capital_suscrito = CharField( label=_("Capital Social Suscrito: "),max_length=30, widget=TextInput(attrs={ 'class': 'form-control input-sm porcentaje', 'data-toggle': 'tooltip', 'size': '28' }) ) ## Tipo de capital solicitado: capital pagado capital_pagado = CharField( label=_("Capital Social Pagado: "), max_length=30, widget=TextInput(attrs={ 'class': 'form-control input-sm porcentaje', 'data-toggle': 'tooltip', 'size': '28', }) ) ## Tipo de capital solicitado: capital publico nacional publico_nacional = CharField( label=_("Público Nacional: "), max_length=6, widget=TextInput(attrs={ 'class': 'form-control input-sm porcentaje', 'data-toggle': 'tooltip', 'size': '4', 'placeholder': '0' }) ) ## Tipo de capital solicitado: capital público extranjero publico_extranjero = CharField( label=_("Público Extranjero: "), max_length=6, widget=TextInput( attrs={ 'class': 'form-control input-sm porcentaje', 'data-toggle': 'tooltip', 'size': '4', 'placeholder': '0' } ) ) ## Tipo de capital solicitado: capital privado nacional privado_nacional = CharField( label=_("Privado Nacional: "), max_length=6, widget=TextInput( attrs={ 'class': 'form-control input-sm porcentaje', 'data-toggle': 'tooltip', 'size': '4', 'placeholder': '0' } ) ) ## Tipo de capital solicitado: capital privado privado_extranjero = CharField( label=_("Privado Extranjero: "), max_length=6, widget=TextInput( attrs={ 'class': 'form-control input-sm porcentaje', 'data-toggle': 'tooltip', 'size': '4', 'placeholder': '0' } ) ) ## Rif del accionista rif_accionista_orig = RifField(required=False) ## Nombre del accionista nombre = CharField( label=_("Nombre: "), max_length=30, widget=TextInput(attrs={ 'class': 'form-control input-sm', 'placeholder': _("Nombre"), 'data-toggle': 'tooltip', 'title': _("Nombre "), 'size': '28', 'readonly': 'readonly' }), required=False ) # País de origen del accionista pais_origen = ChoiceField( label=_("País de origen: "), required=False ) ## Porcentaje de acciones que posee el accionista porcentaje = CharField( label=_("Porcentaje de acciones: "), max_length=3, widget=NumberInput( attrs={ 'class': 'form-control input-sm', 'data-toggle': 'tooltip', 'step': '0.01', 'title': _("Porcentaje"), 'size': '5', 'placeholder': '0' } ), required=False ) ## Campo oculto para el RIF del accionista rif_accionista_tb = CharField( label=_("Ingrese el R.I.F del accionista"), widget=TextInput(attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'value': 'rif', 'size': '30', }), ) ## Campo oculto para el nombre del accionista nombre_tb = CharField( widget=TextInput(attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'size': '30', }), ) ## Campo oculto para el país de origen del accionista pais_origen_tb = CharField( label=_("Seleccione el país del accionista"), widget=TextInput(attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'size': '30', }),required=False, ) ## Campo oculto para el porcentaje de acciones que posee el accionista porcentaje_tb = CharField( label=_("Seleccione el país del accionista"), widget=TextInput(attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'size': '30', }), ) ## Cédula de identidad del representante legal cedula_representante = CedulaField() ## Nombre del Representante Legal nombre_representante = CharField( label=_("Nombre: "), max_length=30, widget=TextInput( attrs={ 'class': 'form-control input-sm', 'placeholder': _("Nombres del usuario"), 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("Indique el Nombre"), 'size': '50' } ) ) ## Apellido del representante legal apellido_representante = CharField( label=_("Apellido: "), max_length=30, widget=TextInput( attrs={ 'class': 'form-control input-sm', 'placeholder': _("Apellidos del usuario"), 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("Indique el Apellido"), 'size': '50' } ) ) ## Correo electrónico del representante legal correo_electronico = EmailField( label=_("Correo Electrónico: "), max_length=75, widget=EmailInput( attrs={ 'class': 'form-control input-sm email-mask', 'placeholder': _("Correo de contacto"), 'data-toggle': 'tooltip', 'size': '50', 'data-rule-required': 'true', 'title': _("Indique el correo electrónico de contacto con el usuario. " "No se permiten correos de hotmail") } ) ) ## Número telefónico del representante legal telefono = CharField( label=_("Teléfono: "), max_length=20, widget=TextInput( attrs={ 'class': 'form-control input-sm', 'placeholder': '(058)-000-0000000', 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'size': '15', 'title': _("Indique el número telefónico de contacto con el usuario"), 'data-mask': '(000)-000-0000000' } ), help_text=_("(país)-área-número") ) ## Cargo que ejerce el representante legal dentro de la unidad económica cargo = ChoiceField( label=_("Cargo: "), choices=[('', 'Seleccione...')]+CARGO_REP, widget=Select( attrs={ 'class': 'form-control input-sm', 'size': '28', 'onchange': "habilitar(this.value, 'id_cargo_otros')" } ) ) ## Campo para agregar el cargo que ejerce el representante legal en la unidad económica cargo_otros = CharField( label=_("Otros: "), widget=TextInput( attrs={ 'class': 'form-control input-sm', 'size': '28', 'disabled': 'disabled' } ), required=False ) rif_ue = RifField(required=False) def __init__(self, *args, **kwargs): super(InformacionMercantilForm, self).__init__(*args, **kwargs) self.fields['pais_origen'].choices = cargar_pais() class Meta: model = RepresentanteLegal fields = ['cargo_otros']
class RegistroForm(ModelForm): """! Clase que muestra el formulario de registro de usuarios @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve) @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> @date 21-04-2016 @version 2.0.0 """ ## R.I.F. de la Unidad Económica que identifica al usuario en el sistema rif = RifField() ## Nombre de la Unidad Economica nombre_ue = CharField( label=_("Nombre de la Unidad Económica: "), widget=TextInput( attrs={ 'class': 'form-control input-sm', 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("Nombre de la Unidad Económica a registrar"), 'readonly': 'readonly', 'size': '50' }), required=False) ## Cédula de Identidad del usuario cedula = CedulaField() ## Cargo del usuario dentro de la Unidad Económica cargo = CharField( label=_("Cargo que ocupa en la U.E.:"), max_length=175, widget=TextInput( attrs={ 'class': 'form-control input-sm', 'placeholder': _("Cargo en la Empresa"), 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("Indique el cargo del usuario en la empresa"), 'size': '50' })) ## Nombre del usuario nombre = CharField(label=_("Nombre"), max_length=30, widget=TextInput( attrs={ 'class': 'form-control input-sm', 'placeholder': _("Nombres del usuario"), 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("Indique el Nombre"), 'size': '50' })) ## Apellido del usuario apellido = CharField(label=_("Apellido"), max_length=30, widget=TextInput( attrs={ 'class': 'form-control input-sm', 'placeholder': _("Apellidos del usuario"), 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("Indique el Apellido"), 'size': '50' })) ## Número telefónico de contacto con el usuario telefono = CharField( label=_("Teléfono"), max_length=20, widget=TextInput( attrs={ 'class': 'form-control input-sm', 'placeholder': '(058)-000-0000000', 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'size': '15', 'title': _("Indique el número telefónico de contacto con el usuario"), 'data-mask': '(000)-000-0000000' }), help_text=_("(país)-área-número")) ## Correo electrónico de contacto con el usuario correo = EmailField( label=_("Correo Electrónico"), max_length=75, widget=EmailInput( attrs={ 'class': 'form-control input-sm email-mask', 'placeholder': _("Correo de contacto"), 'data-toggle': 'tooltip', 'size': '50', 'data-rule-required': 'true', 'title': _("Indique el correo electrónico de contacto con el usuario. " "No se permiten correos de hotmail") })) ## Contraseña del usuario password = CharField( label=_("Contraseña"), max_length=128, widget=PasswordInput( attrs={ 'class': 'form-control input-sm', 'placeholder': _("Contraseña de acceso"), 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'size': '50', 'title': _("Indique una contraseña de aceso al sistema"), 'onkeyup': 'passwordStrength(this.value)' })) ## Confirmación de contraseña de acceso verificar_contrasenha = CharField( label=_("Verificar Contraseña"), max_length=128, widget=PasswordInput( attrs={ 'class': 'form-control input-sm', 'placeholder': _("Contraseña de acceso"), 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'size': '50', 'title': _( "Indique nuevamente la contraseña de aceso al sistema") })) ## Campo para la validación del captcha captcha = CaptchaField( label=_(u"Captcha"), widget=CaptchaTextInput( attrs={ 'class': 'form-control input-sm', 'placeholder': _("Texto de la imagen"), 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _(u"Indique el texto de la imagen") })) class Meta: model = User exclude = [ 'fecha_modpass', 'username', 'first_name', 'last_name', 'email', 'date_joined' ] def clean_rif(self): """! Método que permite validar el campo de rif @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve) @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> @date 27-04-2016 @param self <b>{object}</b> Objeto que instancia la clase @return Devuelve un mensaje de error en caso de que el rif no sea válido o no se encuentre registrado en el SENIAT, en caso contrario devuelve el valor actual del campo """ rif = self.cleaned_data['rif'] if rif[0] not in TIPO_PERSONA_LIST: raise forms.ValidationError(_("Tipo de RIF incorrecto")) elif User.objects.filter(username=rif): raise forms.ValidationError(_("El RIF ya se encuentra registrado")) elif not rif[1:].isdigit(): raise forms.ValidationError(_("El RIF no es correcto")) return rif def clean_cedula(self): """! Método que permite validar la cedula de identidad del usuario a registrar @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve) @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> @date 02-05-2016 @param self <b>{object}</b> Objeto que instancia la clase @return Devuelve un mensaje de error en caso de la cedula de identidad sea incorrecta """ cedula = self.cleaned_data['cedula'] if cedula[0] not in NACIONALIDAD_LIST: raise forms.ValidationError(_("La nacionalidad no es correcta")) elif not cedula[1:].isdigit(): raise forms.ValidationError( _("El número de cédula no es correcto")) return cedula def clean_correo(self): """! Método que permite validar el campo de correo electronico @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve) @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> @date 02-05-2016 @param self <b>{object}</b> Objeto que instancia la clase @return Devuelve un mensaje de error en caso de que el correo electronico ya se encuentre registrado """ correo = self.cleaned_data['correo'] if User.objects.filter(email=correo): raise forms.ValidationError(_("El correo ya esta registrado")) return correo def clean_password(self): """! Método que permite validar el campo de password @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve) @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> @date 02-05-2016 @param self <b>{object}</b> Objeto que instancia la clase @return Devuelve un mensaje de error en caso de que la fortaleza de la contraseña sea inferior al minimo establecido """ password_meter = self.data['passwordMeterId'] if int(password_meter) < FORTALEZA_CONTRASENHA: raise forms.ValidationError(_("La contraseña es débil")) return self.cleaned_data['password'] def clean_verificar_contrasenha(self): """! Método que permite validar el campo de verificar_contrasenha @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve) @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> @date 02-05-2016 @param self <b>{object}</b> Objeto que instancia la clase @return Devuelve un mensaje de error en caso de que la contrasenha no pueda ser verificada """ verificar_contrasenha = self.cleaned_data['verificar_contrasenha'] contrasenha = self.data['password'] if contrasenha != verificar_contrasenha: raise forms.ValidationError(_("La contraseña no es la misma")) return verificar_contrasenha
class ServiciosGeneralForm(forms.ModelForm): """! Clase que muestra el formulario de registro de servicios @author Rodrigo Boet (rboet at cenditel.gob.ve) @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> @date 05-08-2016 @version 2.0.0 """ def __init__(self, *args, **kwargs): user = kwargs.pop('user') super(ServiciosGeneralForm, self).__init__(*args, **kwargs) self.fields['caev'].choices = cargar_actividad() self.fields['ubicacion_cliente'].choices = cargar_pais() #Se carga una lista con todas las subunidades relacionadas al usuario lista = [('', 'Selecione...')] for l in SubUnidadEconomica.objects.filter( rif=user.username, sede_servicio=True).values_list('id', 'nombre_sub'): lista.append(l) self.fields['subunidad'].choices = lista #Se carga una lista con todos los productos relacionados a una subunidad """prod = [('','Selecione...')] for p in Producto.objects.filter(subunidad_id__rif=user.username).values_list('id','nombre_producto'): prod.append(p) self.fields['cliente_producto'].choices = prod""" ## Listado de las subunidades disponibles subunidad = forms.ChoiceField( label=_("Tipo de Sub-Unidad"), widget=Select( attrs={ 'class': 'form-control input-md', 'required': 'required', 'data-toggle': 'tooltip', 'title': _("Seleccione el Tipo de Sub-Unidad"), }), required=False, ) ## Nombre del servicio nombre_servicio = forms.CharField( label=_("Nombre del Servicio"), widget=TextInput( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Indique el nombre del servicio"), 'size': '50', 'style': 'width: 250px;', }), required=False, ) ## Lista con los tipos de servicio tipo_servicio = forms.ChoiceField( label=_("Tipos de Servicios"), widget=Select( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Seleccione el tipo de servicio"), 'size': '50', 'style': 'width: 250px;', }), required=False, choices=[('', 'Seleccione...'), (1, 'algo') ], #TipoServicio.objects.values_list('id','nombre'), ) ## Cantidad de clientes cantidad_clientes = forms.CharField( label=_("Número de Clientes"), widget=TextInput( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Indique el número de clientes"), 'size': '50', 'style': 'width: 250px;', }), required=False, ) ## Listado del código caev caev = forms.ChoiceField( label=_("Código CAEV"), widget=Select( attrs={ 'class': 'form-control', 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("Seleccione el código Caev"), }), choices=CaevClase.objects.values_list('clase', 'descripcion'), required=False, ) ## Lista con los servicios cliente_servicio = forms.ChoiceField( label=_("Servicio"), widget=Select( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Seleccione el servicio"), 'size': '50', 'style': 'width: 250px;', }), required=False, ) ## Lista con los clientes del servicio cliente_list = forms.ChoiceField( label=_("Cliente"), widget=Select( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Seleccione el cliente"), 'size': '50', 'style': 'width: 250px;', }), required=False, choices=[('', 'Seleccione...'), ("1", "algo")], ) ## Ubicación del cliente ubicacion_cliente = forms.ChoiceField( label=_("Ubicación del Cliente"), widget=Select( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Seleccione la ubicación del cliente"), 'size': '50', 'style': 'width: 250px;', }), required=False, ) ## R.I.F. del cliente rif = RifField(required=False) rif.widget = RifWidgetReadOnly() ## Nombre del cliente nombre_cliente = forms.CharField( label=_("Nombre del Cliente"), widget=TextInput( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Indique el nombre del cliente"), 'size': '50', 'style': 'width: 250px;', }), required=False, ) ## Precio de venta precio = forms.CharField( label=_("Precio"), widget=TextInput( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Indique el precio"), 'size': '50', 'style': 'width: 250px;', }), required=False, ) ## Lista con los clientes del servicio tipo_moneda = forms.ChoiceField( widget=Select( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Seleccione la moneda"), 'size': '50', 'style': 'width: 250px;', }), required=False, choices=MONEDAS, ) ## Monto Facturado monto_facturado = forms.CharField( label=_("Monto Facturado"), widget=TextInput( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Indique el monto facturado"), 'size': '50', 'style': 'width: 250px;', }), required=False, ) ## Servicios prestados servicio_prestado = forms.CharField( label=_("Número de Servicios Prestados"), widget=TextInput( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Indique el número de servicios prestados"), 'size': '50', 'style': 'width: 250px;', }), required=False, ) class Meta: model = Servicio fields = '__all__'
class ProveedorForm(forms.ModelForm): """! Clase para el formulario insumos proveedores @author Hugo Ramirez (hramirez at cenditel.gob.ve) @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> @date 14-09-2016 @version 2.0.0 """ ## Origen del insumo pais_origen = ChoiceField( label=_("País de origen: "), widget=Select( attrs={ 'class': 'form-control input-md', 'required': 'required', 'data-toggle': 'tooltip', 'title': _("Seleccione Sub-Unidad Economica"), 'size': '50', 'style': 'width: 250px;', }), required=False) ## Listado de insumos insumo = forms.ChoiceField( label=_("Insumo"), widget=Select( attrs={ 'class': 'form-control input-md', 'required': 'required', 'data-toggle': 'tooltip', 'title': _( "Seleccione el insumo correspondiente al proveedor"), 'size': '50', 'style': 'width: 250px;', }), ) ## R.I.F. del proveedor rif = RifField(required=False) rif.widget = RifWidgetReadOnly() ## Tipo de cambio tipo_cambio = forms.CharField( label=_("Tipo de cambio"), widget=TextInput( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Indique el tipo de cambio"), 'size': '50', 'style': 'width: 250px;', }), required=False, ) ## Cantidad comprada cantidad_comprada = forms.CharField( label=_("Cantidades Comprada"), widget=TextInput( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Indique la cantidad de Compra"), 'size': '50', 'style': 'width: 250px;', }), required=False, ) ## Unidad de medida unidad_de_medida = forms.ChoiceField( label=_("Unidad de Medida"), widget=Select( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Seleccione la unidad de medida"), 'size': '50', 'style': 'width: 250px;', }), choices=(('', 'Seleccione...'), ) + UNIDAD_MEDIDA, required=False, ) ## Nombre del insumo nombre_proveedor = forms.CharField( label=_("Nombre del proveedor"), widget=TextInput( attrs={ 'class': 'form-control input-md', 'style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip', 'title': _("Indique el nombre del proveedor"), 'size': '50', 'style': 'width: 250px;', }), required=True, ) def __init__(self, *args, **kwargs): super(ProveedorForm, self).__init__(*args, **kwargs) self.fields['pais_origen'].choices = cargar_pais() class Meta: model = ProveedorModel fields = '__all__'
class ClientesForm(forms.ModelForm): """! Clase que muestra el formulario de ingreso de la sub-unidad económica @author Rodrigo Boet (rboet at cenditel.gob.ve) @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> @date 13-07-2016 @version 2.0.0 """ def __init__(self, *args, **kwargs): user = kwargs.pop('user') # now kwargs doesn't contain 'place_user', so we can safely pass it to the base class method super(ClientesForm, self).__init__(*args, **kwargs) self.fields['caev'].choices = cargar_actividad() self.fields['ubicacion_cliente'].choices = cargar_pais() #Se carga una lista con todas las subunidades relacionadas al usuario lista = [('','Selecione...')] for l in SubUnidadEconomica.objects.filter(rif=user.username).values_list('id','nombre_sub'): lista.append(l) self.fields['subunidad'].choices = lista #Se carga una lista con todos los productos relacionados a una subunidad prod = [('','Selecione...')] for p in Producto.objects.filter(subunidad_id__rif=user.username).values_list('id','nombre_producto'): prod.append(p) self.fields['cliente_producto'].choices = prod ## Listado de las subunidades disponibles subunidad = forms.ChoiceField( label=_("Tipo de Sub-Unidad"), widget=Select(attrs={ 'class': 'form-control input-md', 'required':'required', 'data-toggle': 'tooltip','title': _("Seleccione el Tipo de Sub-Unidad"), }), required = False, ) ## Nombre del producto nombre_producto = forms.CharField( label=_("Nombre del Producto"), widget=TextInput(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Indique el nombre del producto"), 'size': '50', 'style': 'width: 250px;', }), required = False, ) ## Especificación técnica del producto especificacion_tecnica = forms.CharField( label=_("Especificación Técnica"), widget=TextInput(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Indique la especificación técnica"), 'size': '50', 'style': 'width: 250px;', }),required = False, ) ## Marca del producto marca = forms.CharField( label=_("Marca"), widget=TextInput(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Indique la marca"), 'size': '50', 'style': 'width: 250px;', }), required = False, ) ## Cantidad de clientes cantidad_clientes = forms.CharField( label=_("Número de Clientes"), widget=TextInput(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Indique el número de clientes"), 'size': '50', 'style': 'width: 250px;', }), required = False, ) ## Cantidad de insumos cantidad_insumos = forms.CharField( label=_("Número de Insumos"), widget=TextInput(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Indique el número de insumos"), 'size': '50', 'style': 'width: 250px;', }), required = False, ) ## Cantidad producida cantidad_produccion = forms.CharField( label=_("Producción"), widget=TextInput(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Indique la cantidad de producción"), 'size': '50', 'style': 'width: 250px;', }), required = False, ) ## Unidad de medida de la cantidad producida unidad_de_medida = forms.ChoiceField( label=_("Unidad de Medida"), widget=Select(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Seleccione la unidad de medida"), 'size': '50', 'style': 'width: 250px;', }), choices = (('','Seleccione...'),)+UNIDAD_MEDIDA, required = False, ) ## Listado del código caev caev = forms.ChoiceField( label=_("Código CAEV"), widget=Select( attrs={ 'class': 'form-control', 'data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("Seleccione el código Caev"), } ), choices = CaevClase.objects.values_list('clase','descripcion'), required = False, ) ## Lista con los productos cliente_producto = forms.ChoiceField( label=_("Producto"), widget=Select(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Seleccione el producto"), 'size': '50', 'style': 'width: 250px;', }), ) ## Lista con los clientes del producto cliente_list = forms.ChoiceField( label=_("Cliente"), widget=Select(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Seleccione el cliente"), 'size': '50', 'style': 'width: 250px;', }), choices = [('','Seleccione...'), ("1","algo")], ) ## Ubicación del cliente ubicacion_cliente = forms.ChoiceField( label=_("Ubicación del Cliente"), widget=Select(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Seleccione la ubicación del cliente"), 'size': '50', 'style': 'width: 250px;', }), ) ## R.I.F. del cliente rif = RifField(required = False) rif.widget = RifWidgetReadOnly() ## Nombre del cliente nombre_cliente = forms.CharField( label=_("Nombre del Cliente"), widget=TextInput(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Indique el nombre del cliente"), 'size': '50', 'style': 'width: 250px;', }), ) ## Precio de venta precio_venta = forms.CharField( label=_("Precio de venta por unidad"), widget=TextInput(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Indique el precio de venta por unidad"), 'size': '50', 'style': 'width: 250px;', }), ) ## Tipo de cambio tipo_cambio = forms.CharField( label=_("Tipo de cambio"), widget=TextInput(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Indique el tipo de cambio"), 'size': '50', 'style': 'width: 250px;', }), ) ## Cantidad producida cantidad_vendida = forms.CharField( label=_("Cantidades Vendidas"), widget=TextInput(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Indique la cantidad de producción"), 'size': '50', 'style': 'width: 250px;', }), ) ## Unidad de medida de la cantidad producida unidad_de_medida_cliente = forms.ChoiceField( label=_("Unidad de Medida"), widget=Select(attrs={ 'class': 'form-control input-md','style': 'min-width: 0; width: auto; display: inline;', 'data-toggle': 'tooltip','title': _("Seleccione la unidad de medida"), 'size': '50', 'style': 'width: 250px;', }), choices = (('','Seleccione...'),)+UNIDAD_MEDIDA, ) """def clean_rif(self): rif = self.cleaned_data['rif'] ubicacion = self.cleaned_data['ubicacion_cliente'] if((ubicacion == 'Venezuela') and (rif=='')): raise forms.ValidationError(_("Este campo es obligatorio")) rif.widget = RifWidget return rif""" class Meta: model = Cliente exclude = ['produccion','pais','nombre','cliente_list']
class SubUnidadEconomicaForm(DirectorioForm, TelefonoForm): """! Clase que muestra el formulario de ingreso de la sub-unidad económica @author Rodrigo Boet (rboet at cenditel.gob.ve) @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> @date 04-05-2016 @version 2.0.0 """ ## R.I.F. de la Unidad Económica que identifica al usuario en el sistema rif = RifField() rif.widget = RifWidgetReadOnly() ## Nombre de la sub unidad nombre_sub = forms.CharField( label=_("Nombre"), widget=TextInput(attrs={ 'class': 'form-control input-md', 'data-toggle': 'tooltip','title': _("Indique el nombre"), 'size': '50', 'required':'required' }) ) ## Tipo de tenencia de la sub unidad tipo_tenencia = forms.ChoiceField( label=_("Tipo de Tenencia"), widget=Select(attrs={'class': 'form-control select2'}), choices = TIPO_TENENCIA ) ## Metros cuadrados de la construcción m2_contruccion = forms.DecimalField( label=_("Metros Cuadrados de la Construcción"), widget=TextInput(attrs={ 'class': 'form-control input-md', 'data-rule-required': 'true', 'required':'required', 'data-toggle': 'tooltip', 'title': _("Indique lo metros cuadrados de la construcción"), 'size': '25', 'type':'number', 'step':'0.01', }), max_digits=20, decimal_places=5 ) ## Metros cuadrados del terreno m2_terreno = forms.DecimalField( label=_("Metros Cuadrados de Terreno"), widget=TextInput(attrs={ 'class': 'form-control input-md', 'data-rule-required': 'true', 'required':'required', 'data-toggle': 'tooltip', 'title': _("Indique lo metros cuadrados del terreno"), 'size': '25', 'type':'number', 'step':'0.01' }), max_digits=20, decimal_places=5 ) ## Autonomía Eléctrica en porcentaje autonomia_electrica = forms.DecimalField( label=_("Porcentaje de Autonomía Eléctrica"), widget=TextInput(attrs={ 'class': 'form-control input-md', 'data-rule-required': 'true', 'required':'required', 'data-toggle': 'tooltip', 'title': _("Indique la autonomía eléctrica en porcentaje"), 'size': '25', 'type':'number', 'step':'0.01' }), max_digits=20, decimal_places=5 ) ## Consumo eléctrico promedio en el mes consumo_electrico = forms.DecimalField( label=_("Consumo Eléctrico"), widget=TextInput(attrs={ 'class': 'form-control input-md', 'data-rule-required': 'true', 'required':'required', 'data-toggle': 'tooltip', 'title': _("Indique el consumo promedio mensual en Kw/h"), 'size': '25', 'type':'number', 'step':'0.01' }), max_digits=20, decimal_places=5 ) cantidad_empleados = forms.IntegerField( label=_("Cantidad de empleados"), widget=TextInput(attrs={ 'class': 'form-control input-md','data-rule-required': 'true', 'required':'required', 'data-toggle': 'tooltip', 'title': _("Indique la cantidad de empleados"), 'size': '25', 'type':'number', 'min':'1', 'step': '1' }) ) ## Pregunta si la unidad económica presta un servicio sede_servicio = forms.ChoiceField( label=_("Presta Servicio: "), widget=CheckboxInput(attrs={'class': 'seleccion_si_no', 'required':'required'}), choices = ((True,''), (False,'')), ) ## Tipo de Sub Unidad Económica tipo_sub_unidad = forms.ChoiceField( label=_("Tipo"), widget=Select(attrs={'class': 'form-control input-md', 'required':'required'}), choices = (('','Seleccione...'),) + (TIPO_SUB_UNIDAD) ) ## tipo de proceso productivo que se lleva a cabo en la sub unidad economica tipo_proceso = forms.ChoiceField( label=_("Tipo de Proceso Productivo"), widget=Select(attrs={ 'class': 'form-control input-md', 'data-toggle': 'tooltip','title': _("Indique el Tipo de Proceso Productivo") }), choices = TIPO_PROCESO, required=False ) ## nombre del proceso productivo nombre_proceso = forms.CharField( label=_("Nombre del Proceso Productivo"), widget=TextInput(attrs={ 'class': 'form-control input-md', 'data-toggle': 'tooltip','title': _("Indique el nombre"), 'size': '50' }), required=False ) ## descripcion del proceso productivo descripcion_proceso = forms.CharField( label=_("Descripción del Proceso Productivo"), widget=Textarea(attrs={ 'class': 'form-control input-md', 'data-toggle': 'tooltip', 'title': _("Indique la descripción del proceso productivo") }), required=False ) ## estado del proceso productivo estado_proceso = forms.ChoiceField( label=_("Estado del Proceso Productivo"), widget=Select(attrs={ 'class': 'form-control input-md', 'data-toggle': 'tooltip', 'title': _("Indique el estado del proceso productivo") }), choices = ESTADO_PROCESO, required=False ) ## Código CAEV primaria actividad_caev_primaria = forms.ChoiceField( label=_("Actividad Económica Primaria de la Sub-Unidad"), widget=Select(attrs={ 'class': 'form-control input-md', 'data-toggle': 'tooltip','title': _("Indique la Actividad Económica Primaria de la Sub-Unidad en Ramas") }), choices = (('','Seleccione...'),(1,"Primera Opcion"),(2,"Segunda Opcion")), required=False ) ## Código CAEV actividad_caev = forms.ChoiceField( label=_("Actividad Económica Secundaria de la Sub-Unidad"), widget=Select(attrs={ 'class': 'form-control input-md', 'data-toggle': 'tooltip', 'title': _("Indique la Actividad Económica Secundaria de la Sub-Unidad en Ramas") }), choices = (('','Seleccione...'),(1,"Primera Opcion"),(2,"Segunda Opcion")), required=False ) ## Código CAEV actividad_caev_tb = forms.ChoiceField( label=_("Actividad Económica de la Sub-Unidad"), widget=Select(attrs={ 'class': 'form-control input-md', 'data-toggle': 'tooltip', 'title': _("Indique la Actividad Económica de la Sub-Unidad en Ramas") }), choices = (('','Seleccione...'),(1,"Primera Opcion"),(2,"Segunda Opcion")), required=False ) ## Capacidad instalada mensual (campo de texto) capacidad_instalada_texto = forms.DecimalField( label=_("Capacidad Instalada Mensual"), widget=TextInput(attrs={ 'class': 'form-control input-md','data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("Indique la capacidad instalada"), 'size': '25', 'type':'number', 'step':'0.01', }), max_digits=20, decimal_places=5, required=False ) ## Capacidad instalada mensual (Unidad de Medida) capacidad_instalada_medida = forms.ChoiceField( widget=Select(attrs={'class': 'form-control input-md', 'required':'required'}), choices = CAPACIDAD_INSTALADA_MEDIDA, required=False ) ## Capacidad instalada mensual (campo de texto) capacidad_utilizada = forms.DecimalField( label=_("Capacidad Utilizada Mensual"), widget=TextInput(attrs={ 'class': 'form-control input-md','data-rule-required': 'true', 'data-toggle': 'tooltip', 'title': _("Indique la capacidad utilizada en porcentaje"), 'size': '25', 'type':'number', 'step':'0.01', }), max_digits=20, decimal_places=5, required=False ) ## tipo de proceso productivo que se lleva a cabo en la sub unidad economica (datatable) tipo_proceso_tb = forms.CharField( label=_("Tipo de Proceso Productivo"), widget=TextInput(attrs={'class': 'form-control input-md', 'size': '30'}), required=False ) ## nombre del proceso productivo (datatable) nombre_proceso_tb = forms.CharField( label=_("Nombre del Proceso Productivo"), widget=TextInput(attrs={ 'class': 'form-control input-md', 'size': '30' }), required=False ) ## descripcion del proceso productivo (datatable) descripcion_proceso_tb = forms.CharField( label=_("Descripción del Proceso Productivo"), widget=TextInput(attrs={ 'class': 'form-control input-md', 'size': '30' }), required=False ) ## estado del proceso productivo (datatable) estado_proceso_tb = forms.CharField( label=_("Estado del Proceso Productivo"), widget=TextInput(attrs={ 'class': 'form-control input-md', 'size': '30' }), required=False ) def clean_codigo_ciiu(self): tipo = self.cleaned_data['tipo_sub_unidad'] codigo_ciiu = self.cleaned_data['codigo_ciiu'] if (tipo == 'Pl' or tipo == "Su") and codigo_ciiu=='': raise forms.ValidationError(_("Este campo es obligatorio")) return codigo_ciiu def clean_capacidad_instalada_texto(self): tipo = self.cleaned_data['tipo_sub_unidad'] capacidad_instalada_texto = self.cleaned_data['capacidad_instalada_texto'] if (tipo == 'Pl' or tipo == "Su") and capacidad_instalada_texto=='': raise forms.ValidationError(_("Este campo es obligatorio")) return capacidad_instalada_texto def clean_capacidad_instalada_medida(self): tipo = self.cleaned_data['tipo_sub_unidad'] capacidad_instalada_medida = self.cleaned_data['capacidad_instalada_medida'] if (tipo == 'Pl' or tipo == "Su") and capacidad_instalada_medida=='': raise forms.ValidationError(_("Este campo es obligatorio")) return capacidad_instalada_medida def clean_capacidad_utilizada(self): tipo = self.cleaned_data['tipo_sub_unidad'] capacidad_utilizada = self.cleaned_data['capacidad_utilizada'] if (tipo == 'Pl' or tipo == "Su") and capacidad_utilizada=='': raise forms.ValidationError(_("Este campo es obligatorio")) return capacidad_utilizada def clean_tipo_proceso_tb(self): tipo = self.cleaned_data['tipo_sub_unidad'] tipo_proceso_tb = self.cleaned_data['tipo_proceso_tb'] if tipo == 'Pl' and tipo_proceso_tb=='': raise forms.ValidationError(_("Este campo es obligatorio")) return tipo_proceso_tb def clean_nombre_proceso_tb(self): tipo = self.cleaned_data['tipo_sub_unidad'] nombre_proceso_tb = self.cleaned_data['nombre_proceso_tb'] if tipo == 'Pl' and nombre_proceso_tb=='': raise forms.ValidationError(_("Este campo es obligatorio")) return nombre_proceso_tb def clean_descripcion_proceso_tb(self): tipo = self.cleaned_data['tipo_sub_unidad'] descripcion_proceso_tb = self.cleaned_data['descripcion_proceso_tb'] if tipo == 'Pl' and descripcion_proceso_tb=='': raise forms.ValidationError(_("Este campo es obligatorio")) return descripcion_proceso_tb def clean_estado_proceso_tb(self): tipo = self.cleaned_data['tipo_sub_unidad'] estado_proceso_tb = self.cleaned_data['estado_proceso_tb'] if tipo == 'Pl' and estado_proceso_tb=='': raise forms.ValidationError(_("Este campo es obligatorio")) return estado_proceso_tb def clean_actividad_caev_primaria(self): tipo = self.cleaned_data['tipo_sub_unidad'] actividad_caev_primaria = self.cleaned_data['actividad_caev_primaria'] if (tipo == 'Pl' or tipo == "Su") and actividad_caev_primaria=='': raise forms.ValidationError(_("Este campo es obligatorio")) return actividad_caev_primaria class Meta: model = SubUnidadEconomica fields = '__all__'