Beispiel #1
0
    def __init__(self, *args, **kwargs):
        """!
        Método que inicializa la clase del formulario PerfilForm

        @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 09-05-2016
        @param self <b>{object}</b> Objeto que instancia la clase
        @param *args <b>{tupla}</b> Tupla de valores, inicialmente vacia
        @param *kwargs <b>{dict}</b> Diccionario de datos, inicialmente vacio
        """
        super(PerfilForm, self).__init__(*args, **kwargs)
        self.fields['password'].required = False
        self.fields['verificar_contrasenha'].required = False
        if self.data.__contains__('password') and self.data['password'] != '':
            self.fields['password'].required = True
            self.fields['verificar_contrasenha'].required = True
        self.fields['rif'].required = False
        self.fields['rif'].widget = RifWidgetReadOnly()
        self.fields['password'].help_text = 'passwordMeterId'
Beispiel #2
0
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']
Beispiel #3
0
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__'
Beispiel #4
0
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__'
Beispiel #5
0
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']
        
Beispiel #6
0
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__'