from django import forms from .models import Cuenta, Movimientos, TipoMovimiento from django.core.exceptions import ValidationError from datetime import datetime class RegistroCuentaForm(forms.ModelForm): class Meta: model = Cuenta fields = ['cuenta', 'observacion'] widgets = { 'cuenta': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Nombre de la cuenta'}), 'observacion': forms.Textarea(attrs={'class': 'form-control', 'rows': 3, 'placeholder': 'Observaciones'}), } class RegistroMovimientosForm(forms.ModelForm): tipo_movimiento = forms.ModelChoiceField( queryset=TipoMovimiento.objects.all(), empty_label="Seleccione un tipo de movimiento", widget=forms.Select(attrs={'class': 'form-control'}), label="Tipo de movimiento" ) fecha_factura = forms.DateField( widget=forms.DateInput( attrs={'type': 'date', 'class': 'form-control', 'max': datetime.now().strftime('%Y-%m-%dT%H:%M')} ), label="Fecha de factura", ) class Meta: model = Movimientos fields = ['tipo_movimiento','fecha_factura', 'saldo','n_factura', 'observacion','proveedor','responsable_cuenta'] widgets = { 'saldo': forms.NumberInput(attrs={'class': 'form-control', 'placeholder': 'Monto'}), 'observacion': forms.Textarea(attrs={'class': 'form-control', 'rows': 3, 'placeholder': 'Observaciones'}), 'n_factura': forms.NumberInput(attrs={'class': 'form-control', 'placeholder': 'Ingrese numero de factura'}), 'proveedor': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Nombre del proveedor'}), 'responsable_cuenta': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Nombre del responsable'}), } def clean_fecha_factura(self): fecha_factura = self.cleaned_data.get('fecha_factura') if fecha_factura > datetime.now().date(): raise ValidationError("La fecha no puede ser en el futuro.") return fecha_factura