You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
6.4 KiB
99 lines
6.4 KiB
from django import forms
|
|
from .models import proveedor, bodega, tipo_articulo, articulo,inventario,tipo_inv_movimiento
|
|
|
|
class formulario_proveedor(forms.ModelForm):
|
|
class Meta:
|
|
model = proveedor
|
|
fields = '__all__'
|
|
widgets={
|
|
'nombre_proveedor': forms.TextInput(attrs={'class': 'form-control' , 'placeholder': 'Escribe el nombre del proveedor'}),
|
|
'email': forms.EmailInput(attrs={'class':'form-control','placeholder':'email del proveedor'}),
|
|
'direccion': forms.Textarea(attrs={'class':'form-control','placeholder':'direccion del proveedor','rows':'5'}),
|
|
'telefono': forms.TextInput(attrs={'type':'tel','class':'form-control','placeholder':'0000-0000','maxlength':'9' ,'oninput':'formatearInput(this)'}),
|
|
}
|
|
|
|
class formulario_bodega(forms.ModelForm):
|
|
class Meta:
|
|
model = bodega
|
|
fields = '__all__'
|
|
widgets={
|
|
'nombre_bodega': forms.TextInput(attrs={'class': 'form-control' , 'placeholder': 'Escribe el nombre de la bodega'}),
|
|
'estado': forms.CheckboxInput(attrs={'class':'form-check-input'}),
|
|
'direccion_bodega': forms.Textarea(attrs={'class':'form-control','placeholder':'direccion de la bodega','rows':'5'}),
|
|
'codigo_bodega': forms.TextInput(attrs={'class': 'form-control' , 'placeholder': 'Escribe el codigo de la bodega','oninput':'permitirSoloNumeros(this)'}),
|
|
}
|
|
|
|
class formulario_tipo(forms.ModelForm):
|
|
class Meta:
|
|
model = tipo_articulo
|
|
fields = '__all__'
|
|
widgets={
|
|
'tipo_articulo': forms.TextInput(attrs={'class': 'form-control' , 'placeholder': 'escriba el tipo de articulo'}),
|
|
'descripcion': forms.Textarea(attrs={'class':'form-control','placeholder':'escriba una descripcion de este tipo de articulo','rows':'5'}),
|
|
}
|
|
|
|
class formulario_articulo(forms.ModelForm):
|
|
tipo_articulo=forms.ModelChoiceField(queryset=tipo_articulo.objects.all(),
|
|
empty_label="Selecciona un tipo de articulo",
|
|
widget=forms.Select(attrs={'class': 'btn btn-secondary dropdown-toggle', 'data-bs-toggle': 'dropdown', 'aria-expanded': 'false'}),
|
|
label="tipo_articulo")
|
|
proveedor=forms.ModelChoiceField(queryset=proveedor.objects.all(),
|
|
empty_label="Selecciona un proveedor",
|
|
widget=forms.Select(attrs={'class': 'btn btn-secondary dropdown-toggle ', 'data-bs-toggle': 'dropdown', 'aria-expanded': 'false'}),
|
|
label="proveedor")
|
|
class Meta:
|
|
model = articulo
|
|
fields = '__all__'
|
|
widgets={
|
|
'nombre_articulo': forms.TextInput(attrs={'class': 'form-control' , 'placeholder': 'escriba el nombre del articulo'}),
|
|
'medida': forms.TextInput(attrs={'class':'form-control','placeholder':'medida del producto lts, cm, etc'}),
|
|
'descripcion': forms.Textarea(attrs={'class':'form-control','placeholder':'describa el producto','rows':'5'}),
|
|
}
|
|
|
|
class formilario_inventarios(forms.ModelForm):
|
|
|
|
articulo=forms.ModelChoiceField(queryset=articulo.objects.all(),
|
|
empty_label="selecciones un articulo",
|
|
widget=forms.Select(attrs={'class': 'btn btn-secondary dropdown-toggle', 'data-bs-toggle': 'dropdown', 'aria-expanded': 'false'}),
|
|
label="articulo")
|
|
bodega=forms.ModelChoiceField(queryset=bodega.objects.all(),
|
|
empty_label="Selecciona una bodega",
|
|
widget=forms.Select(attrs={'class': 'btn btn-secondary dropdown-toggle ', 'data-bs-toggle': 'dropdown', 'aria-expanded': 'false'}),
|
|
label="bodega")
|
|
class Meta:
|
|
model = inventario
|
|
fields = '__all__'
|
|
widgets={
|
|
'cantidad': forms.TextInput(attrs={'class': 'form-control' , 'placeholder': 'Cantidad de productos','oninput':'permitirSoloNumeros(this)',}),
|
|
'precio': forms.NumberInput(attrs={'class':'form-control','placeholder':'Ej: 99.99','step': '0.01','min':'0','max':'10000',}),
|
|
}
|
|
|
|
class formilario_inventario(forms.ModelForm):
|
|
tipo_inventario=forms.ModelChoiceField(queryset=tipo_inv_movimiento.objects.all(),
|
|
empty_label="selecciones un articulo",
|
|
widget=forms.Select(attrs={'class': 'btn btn-secondary dropdown-toggle', 'data-bs-toggle': 'dropdown', 'aria-expanded': 'false'}),
|
|
label="tipo de inventario")
|
|
bodega=forms.ModelChoiceField(queryset=bodega.objects.all(),
|
|
empty_label="Selecciona una bodega",
|
|
widget=forms.Select(attrs={'class': 'btn btn-secondary dropdown-toggle ', 'data-bs-toggle': 'dropdown', 'aria-expanded': 'false'}),
|
|
label="bodega")
|
|
articulo=forms.ModelChoiceField(queryset=articulo.objects.all(),
|
|
empty_label="Selecciona una bodega",
|
|
widget=forms.Select(attrs={'class': 'btn btn-secondary dropdown-toggle ', 'data-bs-toggle': 'dropdown', 'aria-expanded': 'false'}),
|
|
label="articulo")
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
# Personaliza cómo se muestran las opciones en el dropdown
|
|
self.fields['articulo'].label_from_instance = lambda obj: f"{obj.nombre_articulo} ({obj.medida})" if obj.medida else obj.nombre_articulo
|
|
self.fields['bodega'].label_from_instance = lambda obj: f"{obj.nombre_bodega} ({obj.codigo_bodega})" if obj.codigo_bodega else obj.nombre_bodega
|
|
|
|
|
|
class Meta:
|
|
model = inventario
|
|
fields = '__all__'
|
|
widgets={
|
|
'fecha': forms.DateInput(attrs={'type': 'date','class': 'form-control','placeholder': 'Seleccione una fecha'}),
|
|
'precio': forms.NumberInput(attrs={'class':'form-control','placeholder':'Ej: 99.99','step': '0.01','min':'0','max':'10000',}),
|
|
'cantidad': forms.TextInput(attrs={'class': 'form-control' , 'placeholder': 'Cantidad de productos','oninput':'permitirSoloNumeros(this)',}),
|
|
'observacion': forms.Textarea(attrs={'class':'form-control','placeholder':'observacion','rows':'5'}),
|
|
}
|
|
|