Commits

Alejandro Villanueva committed 4de4dce

fixing sales form bugs adding extra fields, adding reparation module, adding reporter

Comments (0)

Files changed (20)

apps/autos/forms.py

             'anio': forms.TextInput(attrs={'class': 'span2'}),
             'precio': forms.TextInput(attrs={'class': 'span2'})
         }
+
+
+class ReparacionForm(forms.ModelForm):
+    class Meta:
+        model = Reparaciones
+        widgets = {
+            'auto': forms.HiddenInput(),
+            'descripcion': forms.Textarea(attrs={'rows': '10', 'cols': '20',
+            'class': 'span4'}),
+            'proveedor': forms.TextInput(attrs={'class':'span4'}),
+            'fecha': forms.TextInput(attrs={'class': 'dp'}),
+        }

apps/autos/urls.py

 from django.conf.urls.defaults import patterns, include, url
+from apps.autos.views import lista_autos
 
 urlpatterns = patterns('apps.autos.views',
     url(r'list', 'autos'),
     url(r'add/$', 'add_autos'),
     url(r'api/get/(?P<id>\d+)$', 'api_get_car'),
     # Reparaciones
-    # Agregar el modulo de las reparaciones de los autos
+    url(r'reparaciones', lista_autos),
+    url(r'reparacion/add/(?P<id>\d+)/$', 'add_reparacion'),
+    url(r'reparacion/detalle/(?P<autoid>\d+)/$', 'detalle_reparacion'),
+    url(r'reparacion/eliminar/(?P<id>\d+)/$', 'del_reparacion'),
 )

apps/autos/views.py

 from django.contrib.auth.decorators import permission_required, login_required
 from django.template import RequestContext
 from django.core.paginator import Paginator, InvalidPage, EmptyPage
-from apps.autos.models import Autos
-from apps.autos.forms import AutosForm
+from apps.autos.models import Autos, Reparaciones
+from apps.autos.forms import AutosForm, ReparacionForm
 from django.contrib import messages
 from apps.eonutils.forms import DivErrorList
 from django.core import serializers
 from django.http import HttpResponse
 from django.utils import simplejson
+from django.db.models import Sum
+from django.views.generic import ListView
 
 
 @login_required
     car = get_list_or_404(Autos, pk=id)
     json = serializers.serialize("json", car)
     return HttpResponse(simplejson.dumps(json), mimetype='application/javascript')
-    
 
 
+@permission_required('autos.add_reparaciones')
+def add_reparacion(request, id):
+    auto = get_object_or_404(Autos, pk=id)
+    if request.method == 'POST':
+        form = ReparacionForm(request.POST, error_class=DivErrorList)
+        if form.is_valid():
+            form.save()
+            return redirect('/autos/reparaciones/')
+    else:
+        form = ReparacionForm(initial={'auto': auto}, error_class=DivErrorList)
+    vars = {'form': form, 'auto': auto}
+    return render_to_response('autos/add_reparacion.html', vars,
+                                context_instance = RequestContext(request))
+
+
+@permission_required('autos.delete_reparaciones')
+def del_reparacion(request, id):
+    reparacion = get_object_or_404(Reparaciones, pk=id)
+    reparacion.delete()
+    messages.error(request, 'La reparacion ha sido eliminada.')
+    return redirect('/autos/reparacion/detalle/' + id)
+
+
+@login_required
+def detalle_reparacion(request, autoid):
+    auto = get_object_or_404(Autos, pk=autoid)
+    reparaciones = Reparaciones.objects.filter(auto=auto)
+    total = Reparaciones.objects.filter(auto=auto).aggregate(Sum('monto'))
+    vars = {'reparaciones': reparaciones, 'auto': auto, 'total': total}
+    return render_to_response('autos/detalle_reparacion.html', vars,
+                                context_instance = RequestContext(request))
+
+
+lista_autos = ListView.as_view(model=Autos)

apps/ventas/forms.py

 from django import forms
 from apps.ventas.models import Ventas, Reservaciones
+from apps.autos.models import Autos
+from django.contrib.auth.models import User
 
 CHOICES = (
             ('1', '1/8'),
         model = Ventas
         exclude = (
             'created_at', 'finalizada', 'hora_extra', 'total_seguros',
-            'gas_octavos_entrada', 'reembolso', 'danios',
+            'gas_octavos_entrada', 'reembolso', 'danios', 'total_conductor',
             'total_dias', 'total_gas', 'total_horaextra', 'total_iva',
+            'km_entrada', 'km_recorridos', 'vendedor',
             
         )
         widgets = {
             'lic_vencimiento_conductor': forms.TextInput(attrs={'class': 'dp'}),
             'lic_expedicion_conductor': forms.TextInput(attrs={'class': 'dp'}),
-            'fecha_entrada' : forms.TextInput(attrs={'class': 'dtp'}),
-            'fecha_salida' : forms.TextInput(attrs={'class': 'dtp'}),
+            'fecha_entrada' : forms.DateTimeInput(attrs={'class': 'dtp'}),
+            'fecha_salida' : forms.DateTimeInput(attrs={'class': 'dtp'}),
             'gas_octavos_salida' : forms.RadioSelect(choices=CHOICES),
             'auto': forms.Select(attrs={'class': 'span6 completeselect'}),
             'cliente': forms.Select(attrs={'class': 'span6 completeselect'}),
             'dias' : forms.HiddenInput(),
             'serie': forms.Select(attrs={'class': 'span1'}),
             'total': forms.HiddenInput(),
+            'tar_vencimiento': forms.DateInput(attrs={'class': 'dp'}),
         }
 
 
         model = Reservaciones
         exclude = ('created_at')
         widgets = {
-            'fecha' : forms.TextInput(attrs={'class': 'dtp'}),
+            'fecha' : forms.DateTimeInput(attrs={'class': 'dtp'}),
             'cliente':  forms.TextInput(attrs={'class': 'span6'}),
             'auto':  forms.Select(attrs={'class': 'span6 completeselect'}),
             'comentarios': forms.Textarea(attrs={'class': 'span6'})
             'seguro_accidentes', 'seguro_colision', 'adelanto', 'iva',
             'total_dias', 'total_gas', 'total_horaextra', 'total_iva',
             'total_seguros', 'dias', 'tipo_pago', 'num_contrato', 'serie',
-            'deposito'
+            'deposito', 'total_conductor', 'km_recorridos', 'km_salida',
+            'vendedor', 'tiene_conductor', 'nombre_conductor', 'tar_numero',
+            'lic_vencimiento_conductor','licencia_conductor', 'tar_vencimiento',
+            'lic_expedicion_conductor', 'tarjeta',
         )
         widgets = {
             'fecha_entrada' : forms.DateTimeInput(attrs={'class': 'dtp'}),
             'comentarios': forms.Textarea(attrs={'class': 'span6'}),
             'gas_octavos_entrada' : forms.RadioSelect(choices=CHOICES),
         }
+
+
+class ReporteVentasForm(forms.Form):
+    SERIE = (
+        ('', '------'),
+        ('E','E'), # Fiscal
+        ('D', 'D'), # No fiscal
+    )
+    fecha_inicial = forms.DateField(required=False, 
+        widget=forms.DateInput(attrs={'class': 'dp'}))
+    fecha_final = forms.DateField(required=False,
+        widget=forms.DateInput(attrs={'class': 'dp'}))
+    vendedor = forms.ModelChoiceField(required=False, 
+        queryset=User.objects.filter(is_staff=False))
+    auto = forms.ModelChoiceField(required=False, queryset=Autos.objects.all(),
+        widget=forms.Select(attrs={'class': 'completeselect'})
+    )
+    tipo_contrato = forms.ChoiceField(choices=SERIE, required=False)
+

apps/ventas/models.py

 from django.db import models
 from apps.autos.models import Autos
 from apps.clientes.models import Clientes
+from django.contrib.auth.models import User
 from datetime import datetime
 
 
     )
     auto = models.ForeignKey(Autos)
     cliente = models.ForeignKey(Clientes)
+    vendedor = models.ForeignKey(User)
+    km_entrada = models.PositiveIntegerField(default=0)
+    km_salida = models.PositiveIntegerField(default=0)
+    km_recorridos = models.PositiveIntegerField(default=0)
     finalizada = models.BooleanField(default=False)
     fecha_salida = models.DateTimeField()
     created_at = models.DateTimeField(default=datetime.now())
     seguro_colision = models.BooleanField(default=False)
     tiene_conductor = models.BooleanField(default=False)
     nombre_conductor = models.CharField(max_length=500, blank=True, null=True)
-    licencia_conductor = models.IntegerField(blank=True, null=True)
+    licencia_conductor = models.CharField(blank=True, null=True, max_length=100)
     lic_vencimiento_conductor = models.DateField(blank=True, null=True)
     lic_expedicion_conductor = models.DateField(blank=True, null=True)
     deposito = models.FloatField(default=0)
     total_dias = models.FloatField(default=0) # Dinero de renta
     total_gas = models.FloatField(default=0)
     total_seguros = models.FloatField(default=0)
+    total_conductor = models.FloatField(default=0)
     total = models.FloatField(null=True)
     danios = models.FloatField(default=0)
     dias = models.PositiveIntegerField() # Numero dias que se rento

apps/ventas/urls.py

     url(r'devolver/(?P<id>\d+)/$', 'entregar'),
     url(r'checkout/(?P<id>\d+)/$', 'checkout'),
     url(r'finished/$', 'terminadas'),
-    
+    url(r'reportes/$', 'reportes'),
     # URL Reservaciones
     url(r'reservaciones', 'reservaciones'),
     url(r'reservacion/borrar/(?P<id>\d+)', 'del_reservaciones'),

apps/ventas/views.py

 from django.core.paginator import Paginator, InvalidPage, EmptyPage
 from apps.ventas.models import Ventas, Reservaciones
 from apps.ventas.forms import ReservacionesForm, VentasCompleteForm, \
-     VentasForm, VentasReturnForm
+     VentasForm, VentasReturnForm, ReporteVentasForm
 from django.contrib import messages
 from apps.admin.models import Precios
 from apps.eonutils.forms import DivErrorList
+from datetime import datetime, time
+from django.db.models import Sum
 
 
 @login_required
     
     if request.method == 'POST':
         reservacion = get_object_or_404(Reservaciones, pk = id)
-        form = ReservacionesForm(request.POST, instance = reservacion)
+        form = ReservacionesForm(request.POST, instance=reservacion)
         if form.is_valid():
             form.save()
         return redirect('/ventas/reservaciones/?page=' + str(page), 
 # Ventas
 @login_required
 def ventas(request):
-    ventas = Ventas.objects.all().order_by('num_contrato')
-    paginator = Paginator(ventas, 30) 
+    ventas = Ventas.objects.all().order_by('serie').order_by('num_contrato')
+    paginator = Paginator(ventas, 60) 
     
      # Make sure page request is an int. If not, deliver first page.
     try:
     if request.method == 'POST':
         form = VentasForm(request.POST, error_class=DivErrorList)
         if form.is_valid():
-            form.save()
+            venta = form.save(commit=False)
+            venta.vendedor = request.user
+            print venta.tiene_conductor
+            venta.save()
             messages.success(request, 'Venta agregada correctamente.')
-            return redirect('/ventas/list/', 
+            return redirect('/ventas/entregas/', 
                             context_instance = RequestContext(request))
     else:
         form = VentasForm()
 
 @login_required
 def lista_entregas(request):
-    entregas = Ventas.objects.filter(finalizada = False).order_by(
-                                                            'num_contrato')
+    entregas = Ventas.objects.filter(finalizada = False)
+    entregas.order_by('num_contrato')
+    
     vars = {'ventas': entregas}
     return render_to_response('ventas/lista_entregas.html', vars,
                                 context_instance=RequestContext(request))
             f.total_horaextra = f.hora_extra * precios.hora_extra
             f.total_gas = (f.gas_octavos_salida - f.gas_octavos_entrada) * precios.octavo_gas 
             f.total = f.total_gas + f.total_dias + f.total_horaextra
+            f.km_recorridos = f.km_entrada - f.km_salida
             if f.seguro_accidentes:
                 f.total += precios.seguro_accidentes
                 f.total_seguros = precios.seguro_accidentes 
-            if f.seguro_accidentes:
+            if f.seguro_colision:
                 f.total += precios.seguro_colision
                 f.total_seguros += precios.seguro_colision 
             if f.iva:
-                 f.total_iva = f.total * 0.11
-                 f.total += f.total * 0.11
+                f.total_iva = f.total * 0.11
+                f.total += f.total * 0.11
+            if f.tiene_conductor:
+                f.total_conductor = precios.conductor
+                f.total += precios.conductor
             f.save()
             messages.success(request, 'Entrega Registrada.')
             return redirect('/ventas/checkout/%s' % venta.id, 
 
 
 def terminadas(request):
-    finalizadas = Ventas.objects.filter(finalizada = True).order_by('num_contrato')
-    paginator = Paginator(finalizadas, 30) 
+    finalizadas = Ventas.objects.filter(finalizada = True)
+    finalizadas.order_by('serie')
+    finalizadas.order_by('num_contrato')
+    
+    paginator = Paginator(finalizadas, 60) 
     
      # Make sure page request is an int. If not, deliver first page.
     try:
     vars = {'ventas' : ventas}
     return render_to_response('ventas/terminadas.html', vars,
                                 context_instance=RequestContext(request))
+
+
+def reportes(request):
+    if request.method == 'POST':
+        form = ReporteVentasForm(request.POST)
+        if form.is_valid():
+            if request.POST['fecha_inicial'] and request.POST['fecha_final']:
+            
+                fecha_inicio_min = datetime.combine(form.cleaned_data['fecha_inicial'], time.min)
+                fecha_final_max = datetime.combine(form.cleaned_data['fecha_final'], time.max)
+                ventas = Ventas.objects.filter(created_at__range = 
+                (fecha_inicio_min, fecha_final_max), finalizada = True)
+            else:
+                mes = datetime.today().month
+                ventas = Ventas.objects.filter(created_at__month=mes)
+            if form.cleaned_data['tipo_contrato']:
+                ventas = ventas.filter(serie=form.cleaned_data['tipo_contrato'])
+            if form.cleaned_data['auto']:
+                ventas = ventas.filter(auto=form.cleaned_data['auto'])
+            if form.cleaned_data['vendedor']:
+                ventas = ventas.filter(vendedor=form.cleaned_data['vendedor'])
+            total = ventas.aggregate(Sum('total'))
+            total_fiscal = ventas.filter(serie="E").aggregate(Sum('total'))
+            total_no_fiscal = ventas.filter(serie="D").aggregate(Sum('total'))
+    else:
+        form = ReporteVentasForm()
+        ventas = {}
+        total_fiscal = 0
+        total = 0
+        total_no_fiscal = 0
+    vars = {'form': form, 'ventas': ventas, 'total': total, 
+        'total_fiscal': total_fiscal, 'total_no_fiscal': total_no_fiscal}
+    return render_to_response('ventas/reporte_ventas.html', vars,
+                                context_instance=RequestContext(request))
+     

static/assets/js/admin.js

 $(function(){
     
-    function toggleFiscal(){
-        if ($("#id_tieneFiscal").is(":checked")){
-            $('#factura').show('slow');
-        }else{
-             $('#factura').hide("slow");
-        }
-    }
-    
-    function toggleConductor(){
-        if ($("#id_tiene_conductor").is(":checked")){
-            $('#conductor').show('slow');
-        }else{
-             $('#conductor').hide("slow");
-        }
-    }
-    
-    
-    function pago(){
-        if ($("#id_tipo_pago").val() == "TARJETA"){
-            $('#tarjeta').show('slow');
-        }
-        if ($("#id_tipo_pago").val() != "TARJETA"){
-            $('#tarjeta').hide('slow');
-        }
-    }
-    
-    
     $('a[href=#]').click(function(){
         return false
     });
     
-    
     // Delete Confirmation
     $('.btn-danger').click(function(){
       var answer = confirm('Realmente quiere realizar esta acción?');
     
     $('.dp').datepicker({ dateFormat: 'dd/mm/yy' });
     
-    $('#id_tieneFiscal').click(function(){
-        toggleFiscal();
-    });
-    
-    $('#id_tipo_pago').change(function(){
-        pago();
-    });
-    
-    $('#id_tiene_conductor').click(function(){
-        toggleConductor();
-    });
-    
-    toggleFiscal();
-    toggleConductor();
-    pago();
-    
-    /*JS Sales */
-    function parseDate(str) {
-        var mdy = str.split(' ')[0].split('/');
-        return new Date(mdy[2], mdy[1]-1, mdy[0]);
-    }
-
-    function daydiff(first, second) {
-        return (second-first)/(1000*60*60*24)
-    }
-    
-    // Calculate days between two dates
-    $("#id_fecha_entrada").change(function(){
-        num_days = daydiff(parseDate($('#id_fecha_salida').val()), parseDate($('#id_fecha_entrada').val()));
-        $("#id_dias").val(num_days);
-        $("#dias").text(num_days);
-    });
-    
-    // Get price of car
-    $("#id_auto").change(function(){
-        auto_id = $("#id_auto").val();
-        $.getJSON('/autos/api/get/' + auto_id.toString(), function(data){
-             json = JSON.parse(data);
-             $('#id_preciodia').val(json[0].fields.precio);
-        });
-    });
-    
-    
-    function showClientInfo(){
-        cliente = $("#id_cliente").val();
-        if (cliente > 0){
-            $.getJSON("/clientes/api/get/" + cliente.toString(), function(data){
-                json = JSON.parse(data);
-                $("#clienteinfo").fadeOut("slow");
-                $("#clienteinfo").empty();
-                $("#clienteinfo").append("Num. Licencia: " + json[0].fields.licencia + "<br />");
-                $("#clienteinfo").append("Fecha Vencimiento: " +  json[0].fields.lic_vencimiento + "<br />");
-                $("#clienteinfo").append("Fecha Expedicion: " + json[0].fields.lic_expedicion + "<br /> <hr />");
-                $("#clienteinfo").fadeIn("slow");
-            });
-        }
-    }
-    
-    
-    $('#id_cliente').change(function(){
-        showClientInfo();
-    });
-    
-    
-    function calculatePrice(){
-        total = 0;
-        // Convert Response into JSON
-        $.getJSON("/panel/api/prices/", function (data){
-            json = JSON.parse(data);
-            precios = json[0].fields;
-                
-            pricepday = $("#id_preciodia").val();
-            days = $("#id_dias").val();
-            
-            if(pricepday > 0 && days > 0){
-                total = pricepday * days;
-            }
-
-            if ($("#id_tiene_conductor").is(":checked")){
-                total +=  precios.conductor;
-            }
-
-            if ($("#id_seguro_accidentes").is(":checked")){
-                total += precios.seguro_accidentes;
-            }
-
-            if ($("#id_seguro_colision").is(":checked")){
-                total += precios.seguro_colision;
-            }
-
-            if($(":radio").is(":checked")){
-                total += $('form input[type=radio]:checked').val() * precios.octavo_gas;
-            }
-
-            if ($("#id_iva").is(":checked")){
-                total *= 1.11;
-            }
-                
-            $("#total").text(total.toFixed(2));
-            $("#id_total").val(total.toFixed(2));
-        });
-    }
-    
-    calculatePrice();
-    
-    $("#id_auto, #id_dias, #id_fecha_entrada, #id_fecha_salida, #id_adelanto, #id_preciodia").change(function(){
-        calculatePrice();
-    });
-    
-    
-    $('#id_tiene_conductor, :radio, #id_seguro_accidentes, #id_seguro_colision, #id_iva').click(function(){
-        calculatePrice();
-    });
-    
-    /*END OF SALES JS */
 });

static/assets/js/sales.js

+$(function(){
+    function toggleFiscal(){
+        if ($("#id_tieneFiscal").is(":checked")){
+            $('#factura').show('slow');
+        }else{
+             $('#factura').hide("slow");
+        }
+    }
+    
+    function toggleConductor(){
+        if ($("#id_tiene_conductor").is(":checked")){
+            $('#conductor').show('slow');
+        }else{
+             $('#conductor').hide("slow");
+        }
+    }
+    
+    
+    function pago(){
+        if ($("#id_tipo_pago").val() == "TARJETA"){
+            $('#tarjeta').show('slow');
+        }
+        if ($("#id_tipo_pago").val() != "TARJETA"){
+            $('#tarjeta').hide('slow');
+        }
+    }
+    
+    $('#id_tieneFiscal').click(function(){
+        toggleFiscal();
+    });
+    
+    $('#id_tipo_pago').change(function(){
+        pago();
+    });
+    
+    $('#id_tiene_conductor').click(function(){
+        toggleConductor();
+    });
+    
+    toggleFiscal();
+    toggleConductor();
+    pago();
+    
+    /*JS Sales */
+    function parseDate(str) {
+        var mdy = str.split(' ')[0].split('/');
+        return new Date(mdy[2], mdy[1]-1, mdy[0]);
+    }
+
+    function daydiff(first, second) {
+        return (second-first)/(1000*60*60*24)
+    }
+    
+    // Calculate days between two dates
+    $("#id_fecha_entrada").change(function(){
+        num_days = daydiff(parseDate($('#id_fecha_salida').val()), parseDate($('#id_fecha_entrada').val()));
+        $("#id_dias").val(num_days);
+        $("#dias").text(num_days);
+    });
+    
+    // Get price of car
+    $("#id_auto").change(function(){
+        auto_id = $("#id_auto").val();
+        $.getJSON('/autos/api/get/' + auto_id.toString(), function(data){
+             json = JSON.parse(data);
+             $('#id_preciodia').val(json[0].fields.precio);
+        });
+    });
+    
+    
+    function showClientInfo(){
+        cliente = $("#id_cliente").val();
+        if (cliente > 0){
+            $.getJSON("/clientes/api/get/" + cliente.toString(), function(data){
+                json = JSON.parse(data);
+                $("#clienteinfo").fadeOut("slow");
+                $("#clienteinfo").empty();
+                $("#clienteinfo").append("Num. Licencia: " + json[0].fields.licencia + "<br />");
+                $("#clienteinfo").append("Fecha Vencimiento: " +  json[0].fields.lic_vencimiento + "<br />");
+                $("#clienteinfo").append("Fecha Expedicion: " + json[0].fields.lic_expedicion + "<br /> <hr />");
+                $("#clienteinfo").fadeIn("slow");
+            });
+        }
+    }
+    
+    
+    $('#id_cliente').change(function(){
+        showClientInfo();
+    });
+    
+    
+    function calculatePrice(){
+        total = 0;
+        // Convert Response into JSON
+        $.getJSON("/panel/api/prices/", function (data){
+            json = JSON.parse(data);
+            precios = json[0].fields;
+                
+            pricepday = $("#id_preciodia").val();
+            days = $("#id_dias").val();
+            
+            if(pricepday > 0 && days > 0){
+                total = pricepday * days;
+            }
+
+            if ($("#id_tiene_conductor").is(":checked")){
+                total +=  precios.conductor;
+            }
+
+            if ($("#id_seguro_accidentes").is(":checked")){
+                total += precios.seguro_accidentes;
+            }
+
+            if ($("#id_seguro_colision").is(":checked")){
+                total += precios.seguro_colision;
+            }
+
+            if($(":radio").is(":checked")){
+                total += $('form input[type=radio]:checked').val() * precios.octavo_gas;
+            }
+
+            if ($("#id_iva").is(":checked")){
+                total *= 1.11;
+            }
+                
+            $("#total").text(total.toFixed(2));
+            $("#id_total").val(total.toFixed(2));
+        });
+    }
+    
+    calculatePrice();
+    
+    $("#id_auto, #id_dias, #id_fecha_entrada, #id_fecha_salida, #id_adelanto, #id_preciodia").change(function(){
+        calculatePrice();
+    });
+    
+    
+    $('#id_tiene_conductor, :radio, #id_seguro_accidentes, #id_seguro_colision, #id_iva').click(function(){
+        calculatePrice();
+    });
+});

templates/autos/add_reparacion.html

+{% extends 'default.html' %}
+
+{%  block content%}
+<h3>Agregar Reparacion - Auto: {{ auto.codigo }}</h3>
+
+    <form action="." class="well" method="POST"> {% csrf_token %}
+        {{ form.as_p }}
+        <input type="submit" class="btn btn-success" value="Guardar" />
+    </form>
+{% endblock content %}

templates/autos/autos_list.html

+{% extends 'default.html' %}
+
+{% block content %}
+
+    <div class="box">
+        <div>
+            <h2>Autos</h2>
+        </div>
+        <div class="table table-striped  table-condensed table-bordered">
+            <table width="100%" border="0" cellspacing="0" cellpadding="0">
+                <tr>
+                    <th>Codigo</th>
+                    <th>Marca</th>
+                    <th>Modelo</th>
+                    <th>Año</th>
+                    <th>Placas</th>
+                    <th></th>
+                    <th></th>
+                </tr>
+                {% for auto in object_list %}
+                    <tr>
+                        <td>{{ auto.codigo }}</td>
+                        <td>{{ auto.marca }}</td>
+                        <td>{{ auto.modelo }}</td>
+                        <td>{{ auto.anio }}</td>
+                        <td>{{ auto.placas }}</td>
+                        {% if perms.autos.add_reparaciones %}
+                            <td><a class="btn btn-primary btn-mini" href="{% url apps.autos.views.add_reparacion auto.id %}"><i class="icon-plus icon-white"></i> Agregar</a></td>
+                        {% endif %}
+                        {% if perms.autos.add_reparaciones %}
+                            <td><a class="btn btn-info btn-mini" href="{% url apps.autos.views.detalle_reparacion auto.id %}"><i class="icon-zoom-in icon-white"></i> Ver</a></td>
+                        {% endif %}
+                    </tr>
+                {% endfor %}
+            </table>
+        </div>
+    </div>
+{% endblock %}

templates/autos/detalle_reparacion.html

+{% extends 'default.html' %}
+
+{% block content %}
+
+    <div class="box">
+        <div>
+            <h2>Auto: {{ auto.codigo }}</h2>
+        </div>
+        {% if perms.autos.add_reparaciones %}
+            <span><a class="btn btn-primary btn-mini" href="{% url apps.autos.views.add_reparacion auto.id %}"><i class="icon-plus icon-white"></i> Agregar</a></span>
+        {% endif %}
+        <div class="table table-striped  table-condensed table-bordered">
+            <table width="100%" border="0" cellspacing="0" cellpadding="0">
+                <tr>
+                    <th>Descripcion</th>
+                    <th>Monto</th>
+                    <th>Proveedor</th>
+                    <th>Kilometraje</th>
+                    <th>Fecha</th>
+                    <th></th>
+                </tr>
+                {% for reparacion in reparaciones %}
+                    <tr>
+                        <td>{{ reparacion.descripcion }}</td>
+                        <td>{{ reparacion.monto }}</td>
+                        <td> {{ reparacion.proveedor }}</td>
+                        <td>{{ reparacion.kilometraje }}</td>
+                        <td>{{ reparacion.fecha }}</td>
+                        {% if perms.autos.delete_reparaciones %}
+                            <td><a class="btn btn-danger btn-mini" href="{% url apps.autos.views.del_reparacion reparacion.id %}"><i class="icon-trash icon-white"></i> Eliminar</a></td>
+                        {% endif %}
+                    </tr>
+                {% endfor %}
+                <tr>
+                    <td>Total</td>
+                    <td>{{ total.monto__sum }}</td>
+                </tr>
+            </table>
+        </div>
+    </div>
+{% endblock %}

templates/default.html

                           <li><a href="{% url apps.ventas.views.add_ventas %}"><i class="icon-plus"></i> Agregar</a></li>
                           <li><a href="{% url apps.ventas.views.lista_entregas %}"><i class="icon-share"></i> Activos</a></li>
                           <li><a href="{% url apps.ventas.views.terminadas %}"><i class="icon-check"></i> Cerradas</a></li>
+                          <li><a href="{% url apps.ventas.views.reportes %}"><i class="icon-list-alt"></i> Reportes</a></li>
                       </ul>
                       {% endif %}
                       {% if perms.ventas.add_reservaciones %}
                           <li><a href="{% url apps.ventas.views.add_reservaciones %}"><i class="icon-plus"></i> Agregar</a></li>
                       </ul>
                       {% endif %}
+                      {% if perms.autos.add_reparaciones %}
+                        <li class="nav-header"><a href="{% url apps.autos.views.lista_autos %}"><i class="icon-wrench"></i> Reparaciones</a></li>
+                      {% endif %}
+                      {% if user.is_staff %}
+                        <li class="nav-header"><a href="#"><i class="icon-list-alt"></i> Reportes</a></li>
+                        <ul class="nav nav-list">
+                            <li></li>
+                        </ul>
+                      {% endif %}
                     </ul>
                   </div> <!-- /well -->
                 </div>

templates/ventas/add_ventas.html

 {% extends 'default.html' %}
 
+{% block head %}
+    <script src="/static/assets/js/sales.js" type="text/javascript"></script>
+{% endblock %}
+
 {%  block content%}
 <h3>Agregar Venta</h3>
 
             <label for="id_tipo_pago">Tipo de Pago:</label>
             {{ form.tipo_pago }}
         </div>
+        <div class="">
+            {{ form.km_salida.errors|safe }}
+            <label for="id_km_salida">Kilometraje:</label>
+            {{ form.km_salida }}
+        </div>
         <div id="tarjeta">
             <div class="">
                 {{ form.tarjeta.errors|safe }}

templates/ventas/checkout.html

         <div>
             <h2>Venta: {{ venta.id }}</h2>
         </div>
-                <ul>
-                    <li>Cliente: {{ venta.cliente.nombre }} {{ venta.cliente.apellidos }} </li>
-                    <li>Automovil {{ venta.auto.codigo }} {{ venta.auto.modelo }} {{ venta.auto.placas }}</li>
-                    <li>Salida: {{ venta.fecha_salida }}</li>
-                    <li>Entrada: {{ venta.fecha_entrada }}</li>
-                    <li>Horas Extra: {{ venta.hora_extra }}</li>
-                    <li>Adelanto: {{ venta.adelanto }}</li>
-                    <li>Octavos Entrada: {{ venta.gas_octavos_entrada }}</li>
-                    <li>Octavos Salida: {{ venta.gas_octavos_salida }}</li>
-                    
-                    <li>Seguro Accidentes: 
-                    {% if venta.seguro_accidentes %}
+        <table class="table">
+            <tr>
+                <td>Cliente</td>
+                <td>{{ venta.cliente.nombre }} {{ venta.cliente.apellidos }}</td>
+            </tr>
+            <tr>
+                <td>Auto</td>
+                <td>{{ venta.auto.codigo }} {{ venta.auto.modelo }} {{ venta.auto.placas }}</td>
+            </tr>
+            <tr>
+                <td>Fecha Salida</td>
+                <td>{{ venta.fecha_salida }}</td>
+            </tr>
+            <tr>
+                <td>Fecha Entrada</td>
+                <td>{{ venta.fecha_entrada }}</td>
+            </tr>
+            <tr>
+                <td>Dias</td>
+                <td>{{ venta.dias }}</td>
+            </tr>
+            <tr>
+                <td>Horas Extra</td>
+                <td>{{ venta.hora_extra }}</td>
+            </tr>
+            <tr>
+                <td>Adelanto</td>
+                <td>{{ venta.adelanto }}</td>
+            </tr>
+            <tr>
+                <td>Deposito Garantia</td>
+                <td>{{ venta.deposito }}</td>
+            </tr>
+            <tr>
+                <td>Octavos Gas Salida</td>
+                <td>{{ venta.gas_octavos_salida }}</td>
+            </tr>
+            <tr>
+                <td>Octavos Gas Entrada</td>
+                <td>{{ venta.gas_octavos_entrada }}</td>
+            </tr>
+            <tr>
+                <td>Seguro de Accidentes</td>
+                <td>
+                {% if venta.seguro_accidentes %}
                         Contratado
-                    {% else %}
+                {% else %}
                         No Contratado
-                    {% endif %}</li>
-                    <li>Seguro Colision: 
+                {% endif %}
+                </td>
+            </tr>
+            <tr>
+                <td>Seguro de Colision</td>
+                <td>
                     {% if venta.seguro_colision %}
                         Contratado
                     {% else %}
                         No Contratado
-                    {% endif %}</li>
-                    
-                    <li>Total: {{ venta.total }}</li>
-                    <li>Estado: 
-                    {% if venta.finalizada %}
-                        Cerrada
-                    {% else %}
-                        Abierta
-                    {% endif %}</li>
-                    <li>Comentarios: {{ venta.comentarios }} </li>
-                </ul>
-                Cobro Renta: {{ venta.total_dias}} <br />
-                Gas:    {{ venta.total_gas }} <br />
-                Horas Extra: {{ venta.total_horaextra }} <br />
-                Seguros: {{ venta.total_seguros }} <br />
-                Iva: {{ venta.total_iva }} <br />
-                Total Renta: {{ venta.total }} <br />
+                    {% endif %}
+                </td>
+            </tr>
+            <tr>
+                <td>Total Renta Auto</td>
+                <td>${{ venta.total_dias}}</td>
+            </tr>
+            <tr>
+                <td>Cobro de gasolina</td>
+                <td>{{ venta.total_gas }}</td>
+            </tr>
+            <tr>
+                <td>Total Horas Extra</td>
+                <td>{{ venta.total_horaextra }}</td>
+            </tr>
+            <tr>
+                <td>Pago Seguros</td>
+                <td>{{ venta.total_seguros }}</td>
+            </tr>
+            <tr>
+                <td>Conductor Extra</td>
+                <td>{{ venta.total_conductor }}</td>
+            </tr>
+            <tr>
+                <td>IVA</td>
+                <td>{{ venta.total_iva }}</td>
+            </tr>
+            <tr>
+                <td>TOTAL</td>
+                <td>{{ venta.total }}</td>
+            </tr>
+            <tr>
+                <td>Tipo de pago</td>
+                <td>{{ venta.tipo_pago }}</td>
+            </tr>
+            <tr>
+                <td>Km Recorridos</td>
+                <td>{{ venta.km_recorridos }}</td>
+            </tr>
+            <tr>
+                <td>Comentarios</td>
+                <td>{{ venta.comentarios }}</td>
+            </tr>
+        </table>
            
         </div>
     </div>

templates/ventas/detail_ventas.html

     {% if perms.ventas.add_ventas %}
         <span><a class="btn btn-success" href="{% url apps.ventas.views.add_ventas %}"><i class="icon-plus icon-white"></i> Agregar</a></span>
     {% endif %}
-    <div class="box">
-        <div>
-            <h2>Venta: {{ venta.id }}</h2>
-        </div>
-            <table class="table table-bordered table-striped table-condensed">
-                <tr>
-                    <th></th>
-                </tr>
-                <tr>
-                    <td>Num Contrato</td>
-                    <td>{{ venta.num_contrato }}</td>
-                </tr>
-                <tr>
-                    <td>Cliente</td>
-                    <td>{{ venta.cliente.nombre }} {{ venta.cliente.apellidos }}</td>
-                </tr>
-                <tr>
-                    <td>Auto</td>
-                    <td> {{ venta.auto.codigo }} {{ venta.auto.modelo }} {{ venta.auto.placas }}</td>
-                </tr>
-                <tr>
-                    <td>Fecha Salida</td>
-                    <td>{{ venta.fecha_salida|date:"d/m/Y P" }}</td>
-                </tr>
-                <tr>
-                    <td>Fecha Entrada</td>
-                    <td>{{ venta.fecha_entrada|date:"d/m/Y P" }}</td>
-                </tr>
-                <tr>
-                    <td>Dias</td>
-                    <td> {{ venta.dias }}</td>
-                </tr>
-                <tr>
-                    <td>Seguros</td>
-                    {% if venta.seguro_colision %}
-                        <td>Colision</td>
-                    {% endif %}
-                    {% if venta.seguro_accidentes %}
-                        <td>Accidentes</td>
-                    {% endif %}
-                </tr>
-                <tr>
-                    <td>Comentarios</td>
-                    <td>{{ venta.comentarios }}</td>
-                </tr>
-                <tr>
-                    <td>Total</td>
-                    <td>{{ venta.total }}</td>
-                </tr>
-            </table>
-                
-                    
+            <div class="box">
+                <div>
+                    <h2>Venta: {{ venta.id }}</h2>
+                </div>
+                <table class="table">
+                    <tr>
+                        <td>Cliente</td>
+                        <td>{{ venta.cliente.nombre }} {{ venta.cliente.apellidos }}</td>
+                    </tr>
+                    <tr>
+                        <td>Auto</td>
+                        <td>{{ venta.auto.codigo }} {{ venta.auto.modelo }} {{ venta.auto.placas }}</td>
+                    </tr>
+                    <tr>
+                        <td>Fecha Salida</td>
+                        <td>{{ venta.fecha_salida }}</td>
+                    </tr>
+                    <tr>
+                        <td>Fecha Entrada</td>
+                        <td>{{ venta.fecha_entrada }}</td>
+                    </tr>
+                    <tr>
+                        <td>Dias</td>
+                        <td>{{ venta.dias }}</td>
+                    </tr>
+                    <tr>
+                        <td>Horas Extra</td>
+                        <td>{{ venta.hora_extra }}</td>
+                    </tr>
+                    <tr>
+                        <td>Adelanto</td>
+                        <td>{{ venta.adelanto }}</td>
+                    </tr>
+                    <tr>
+                        <td>Octavos Gas Salida</td>
+                        <td>{{ venta.gas_octavos_salida }}</td>
+                    </tr>
+                    <tr>
+                        <td>Octavos Gas Entrada</td>
+                        <td>{{ venta.gas_octavos_entrada }}</td>
+                    </tr>
+                    <tr>
+                        <td>Seguro de Accidentes</td>
+                        <td>
+                        {% if venta.seguro_accidentes %}
+                                Contratado
+                        {% else %}
+                                No Contratado
+                        {% endif %}
+                        </td>
+                    </tr>
+                    <tr>
+                        <td>Seguro de Colision</td>
+                        <td>
+                            {% if venta.seguro_colision %}
+                                Contratado
+                            {% else %}
+                                No Contratado
+                            {% endif %}
+                        </td>
+                    </tr>
+                    <tr>
+                        <td>Total Renta Auto</td>
+                        <td>${{ venta.total_dias}}</td>
+                    </tr>
+                    <tr>
+                        <td>Cobro de gasolina</td>
+                        <td>{{ venta.total_gas }}</td>
+                    </tr>
+                    <tr>
+                        <td>Total Horas Extra</td>
+                        <td>{{ venta.total_horaextra }}</td>
+                    </tr>
+                    <tr>
+                        <td>Pago Seguros</td>
+                        <td>{{ venta.total_seguros }}</td>
+                    </tr>
+                    <tr>
+                        <td>Conductor Extra</td>
+                        <td>{{ venta.total_conductor }}</td>
+                    </tr>
+                    <tr>
+                        <td>IVA</td>
+                        <td>{{ venta.total_iva }}</td>
+                    </tr>
+                    <tr>
+                        <td>TOTAL</td>
+                        <td>{{ venta.total }}</td>
+                    </tr>
+                    <tr>
+                        <td>Comentarios</td>
+                        <td>{{ venta.comentarios }}</td>
+                    </tr>
+                </table>
+                   
+                </div>
+            </div>
                 
                 {% if perms.ventas.change_ventas %}
                     <a class="btn btn-info" href="{% url apps.ventas.views.edit_ventas venta.id %}"><i class="icon-pencil icon-white"></i> Editar</a>

templates/ventas/devolver.html

             <span class="add-on">$</span> {{ form.instance.adelanto }}
         </div>
         <div class="">
+            {{ form.km_entrada.errors }}
+            <label for="id_km_entrada">Kilometraje:</label>
+            {{ form.km_entrada }}
+        </div>
+        <div class="">
             {{ form.comentarios.errors }}
             <label for="id_comentarios">Comentarios:</label>
             {{ form.comentarios }}

templates/ventas/reporte_ventas.html

+{% extends 'default.html' %}
+
+{%  block content%}
+<h3>Reportes</h3>
+	
+	<form action="." class="well form-horizontal" method="POST"> {% csrf_token %}
+		{{ form.as_p }}
+		<input type="submit" class="btn btn-success" value="Ver" />
+	</form>
+
+<div class="table table-striped  table-condensed table-bordered">
+            <table width="100%" border="0" cellspacing="0" cellpadding="0">
+               <tr>
+                    <th>Contrato</th>
+                    <th>Auto</th>
+                    <th>Placas</th>
+                    <th>Cliente</th>
+                    <th>Fecha Salida</th>
+                    <th>Fecha Entrada</th>
+                    <th>Total</th>
+                    <th></th>
+                    <th></th>
+                    <th></th>
+                </tr>
+                <tr><h5>Fiscales</h5></tr>
+                {% for venta in ventas %}
+                    {% if venta.serie == "E" %}
+                        <tr>
+                            <td> {{ venta.num_contrato }}</td>
+                            <td>{{ venta.auto.codigo }}</td>
+                            <td>{{ venta.auto.placas }}</td>
+                            <td>{{ venta.cliente.nombre }} {{ venta.cliente.apellidos }}</td>
+                            <td>{{ venta.fecha_salida }}</td>
+                            <td>{{ venta.fecha_entrada }}</td>
+                            <td>{{ venta.total }}</td>
+                            <td><a class="btn btn-info" href="{% url apps.ventas.views.detail_ventas venta.id %}"><i class="icon-zoom-in icon-white"></i> Ver</a></td>
+                            {% if perms.ventas.change_ventas %}
+                                <td><a class="btn btn-info" href="{% url apps.ventas.views.edit_ventas venta.id %}"><i class="icon-pencil icon-white"></i> Editar</a></td>
+                            {% endif %}
+                            {% if perms.ventas.delete_ventas %}
+                                <td><a class="btn btn-danger" href="{% url apps.ventas.views.del_ventas venta.id %}"> <i class="icon-remove icon-white"></i> Eliminar</a</td>
+                            {% endif %}
+                        </tr>
+                    {% endif %}
+                    {% if forloop.first %}
+                        <tr>
+                            <td>Total Fiscal</td>
+                            <td>{{ total_fiscal.total__sum }}</td>
+                        </tr>
+                        <tr>
+                            <td><h5>No Fiscales</h5></td>
+                        </tr>
+                    {% endif %}
+                    {% if venta.serie == "D" %}
+                        <tr>
+                            <td> {{ venta.num_contrato }}</td>
+                            <td>{{ venta.auto.codigo }}</td>
+                            <td>{{ venta.auto.placas }}</td>
+                            <td>{{ venta.cliente.nombre }} {{ venta.cliente.apellidos }}</td>
+                            <td>{{ venta.fecha_salida }}</td>
+                            <td>{{ venta.fecha_entrada }}</td>
+                            <td>{{ venta.total }}</td>
+                            <td><a class="btn btn-info" href="{% url apps.ventas.views.detail_ventas venta.id %}"><i class="icon-zoom-in icon-white"></i> Ver</a></td>
+                            {% if perms.ventas.change_ventas %}
+                                <td><a class="btn btn-info" href="{% url apps.ventas.views.edit_ventas venta.id %}"><i class="icon-pencil icon-white"></i> Editar</a></td>
+                            {% endif %}
+                            {% if perms.ventas.delete_ventas %}
+                                <td><a class="btn btn-danger" href="{% url apps.ventas.views.del_ventas venta.id %}"> <i class="icon-remove icon-white"></i> Eliminar</a</td>
+                            {% endif %}
+                        </tr>
+                    {% endif %}
+                {% endfor %}
+                <tr>
+                    <td>Total No Fiscal</td>
+                    <td>{{ total_no_fiscal.total__sum }}</td>
+                </tr>
+                <tr>
+                    <td>Total</td>
+                    <td>{{ total.total__sum }}</td>
+                </tr>
+            </table>
+{% endblock content %}

templates/ventas/terminadas.html

         <div>
             <h2>Ventas Finalizadas</h2>
         </div>
+        
         <div class="table table-striped  table-condensed table-bordered">
             <table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                     <th></th>
                     <th></th>
                 </tr>
+                <tr><h5>Fiscales</h5></tr>
                 {% for venta in ventas.object_list %}
-                    <tr>
-                        <td> {{ venta.num_contrato }}</td>
-                        <td>{{ venta.auto.codigo }}</td>
-                        <td>{{ venta.auto.placas }}</td>
-                        <td>{{ venta.cliente.nombre }} {{ venta.cliente.apellidos }}</td>
-                        <td>{{ venta.fecha_salida }}</td>
-                        <td>{{ venta.fecha_entrada }}</td>
-                        <td>{{ venta.total }}</td>
-                        <td><a class="btn btn-info" href="{% url apps.ventas.views.detail_ventas venta.id %}"><i class="icon-zoom-in icon-white"></i> Ver</a></td>
-                        {% if perms.ventas.change_ventas %}
-                            <td><a class="btn btn-info" href="{% url apps.ventas.views.edit_ventas venta.id %}"><i class="icon-pencil icon-white"></i> Editar</a></td>
-                        {% endif %}
-                        {% if perms.ventas.delete_ventas %}
-                            <td><a class="btn btn-danger" href="{% url apps.ventas.views.del_ventas venta.id %}"> <i class="icon-remove icon-white"></i> Eliminar</a</td>
-                        {% endif %}
-                    </tr>
+                    {% if venta.serie == "E" %}
+                        <tr>
+                            <td> {{ venta.num_contrato }}</td>
+                            <td>{{ venta.auto.codigo }}</td>
+                            <td>{{ venta.auto.placas }}</td>
+                            <td>{{ venta.cliente.nombre }} {{ venta.cliente.apellidos }}</td>
+                            <td>{{ venta.fecha_salida }}</td>
+                            <td>{{ venta.fecha_entrada }}</td>
+                            <td>{{ venta.total }}</td>
+                            <td><a class="btn btn-info" href="{% url apps.ventas.views.detail_ventas venta.id %}"><i class="icon-zoom-in icon-white"></i> Ver</a></td>
+                            {% if perms.ventas.change_ventas %}
+                                <td><a class="btn btn-info" href="{% url apps.ventas.views.edit_ventas venta.id %}"><i class="icon-pencil icon-white"></i> Editar</a></td>
+                            {% endif %}
+                            {% if perms.ventas.delete_ventas %}
+                                <td><a class="btn btn-danger" href="{% url apps.ventas.views.del_ventas venta.id %}"> <i class="icon-remove icon-white"></i> Eliminar</a</td>
+                            {% endif %}
+                        </tr>
+                    {% endif %}
+                    {% if forloop.first %}
+                        <tr>
+                            <td><h5>No Fiscales</h5></td>
+                        </tr>
+                    {% endif %}
+                    {% if venta.serie == "D" %}
+                        <tr>
+                            <td> {{ venta.num_contrato }}</td>
+                            <td>{{ venta.auto.codigo }}</td>
+                            <td>{{ venta.auto.placas }}</td>
+                            <td>{{ venta.cliente.nombre }} {{ venta.cliente.apellidos }}</td>
+                            <td>{{ venta.fecha_salida }}</td>
+                            <td>{{ venta.fecha_entrada }}</td>
+                            <td>{{ venta.total }}</td>
+                            <td><a class="btn btn-info" href="{% url apps.ventas.views.detail_ventas venta.id %}"><i class="icon-zoom-in icon-white"></i> Ver</a></td>
+                            {% if perms.ventas.change_ventas %}
+                                <td><a class="btn btn-info" href="{% url apps.ventas.views.edit_ventas venta.id %}"><i class="icon-pencil icon-white"></i> Editar</a></td>
+                            {% endif %}
+                            {% if perms.ventas.delete_ventas %}
+                                <td><a class="btn btn-danger" href="{% url apps.ventas.views.del_ventas venta.id %}"> <i class="icon-remove icon-white"></i> Eliminar</a</td>
+                            {% endif %}
+                        </tr>
+                    {% endif %}
                 {% endfor %}
             </table>
         </div>

templates/ventas/ventas.html

                     <th></th>
                     <th></th>
                 </tr>
+                <tr>
+                    <td><h5>Fiscales</h5></td>
+                </tr>
                 {% for venta in ventas.object_list %}
-                    <tr>
-                        <td>{{ venta.num_contrato }}</td>
-                        <td>{{ venta.auto.codigo }}</td>
-                        <td>{{ venta.auto.placas }}</td>
-                        <td>{{ venta.cliente.nombre }} {{ venta.cliente.apellidos }}</td>
-                        <td>{{ venta.fecha_salida }}</td>
-                        <td>{{ venta.fecha_entrada }}</td>
-                        <td>{{ venta.total }}</td>
-                        <td><a class="btn btn-info btn-mini" href="{% url apps.ventas.views.detail_ventas venta.id %}"><i class="icon-zoom-in icon-white"></i> Ver</a></td>
-                        {% if perms.ventas.change_ventas %}
-                            <td><a class="btn btn-info btn-mini" href="{% url apps.ventas.views.edit_ventas venta.id %}"><i class="icon-pencil icon-white"></i> Editar</a></td>
-                        {% endif %}
-                        {% if perms.ventas.delete_ventas %}
-                            <td><a class="btn btn-danger btn-mini" href="{% url apps.ventas.views.del_ventas venta.id %}"> <i class="icon-remove icon-white"></i> Eliminar</a</td>
-                        {% endif %}
-                    </tr>
+                    {% if venta.serie == "E" %}
+                        <tr>
+                            <td>{{ venta.num_contrato }}</td>
+                            <td>{{ venta.auto.codigo }}</td>
+                            <td>{{ venta.auto.placas }}</td>
+                            <td>{{ venta.cliente.nombre }} {{ venta.cliente.apellidos }}</td>
+                            <td>{{ venta.fecha_salida }}</td>
+                            <td>{{ venta.fecha_entrada }}</td>
+                            <td>{{ venta.total }}</td>
+                            <td><a class="btn btn-info btn-mini" href="{% url apps.ventas.views.detail_ventas venta.id %}"><i class="icon-zoom-in icon-white"></i> Ver</a></td>
+                            {% if perms.ventas.change_ventas %}
+                                <td><a class="btn btn-info btn-mini" href="{% url apps.ventas.views.edit_ventas venta.id %}"><i class="icon-pencil icon-white"></i> Editar</a></td>
+                            {% endif %}
+                            {% if perms.ventas.delete_ventas %}
+                                <td><a class="btn btn-danger btn-mini" href="{% url apps.ventas.views.del_ventas venta.id %}"> <i class="icon-remove icon-white"></i> Eliminar</a</td>
+                            {% endif %}
+                        </tr>
+                    {% endif %}
+                    {% if forloop.first %}
+                        <tr>
+                            <td><h5>No Fiscales</h5></td>
+                        </tr>
+                    {% endif %}
+                    {% if venta.serie == "D" %}
+                        <tr>
+                            <td> {{ venta.num_contrato }}</td>
+                            <td>{{ venta.auto.codigo }}</td>
+                            <td>{{ venta.auto.placas }}</td>
+                            <td>{{ venta.cliente.nombre }} {{ venta.cliente.apellidos }}</td>
+                            <td>{{ venta.fecha_salida }}</td>
+                            <td>{{ venta.fecha_entrada }}</td>
+                            <td>{{ venta.total }}</td>
+                            <td><a class="btn btn-info" href="{% url apps.ventas.views.detail_ventas venta.id %}"><i class="icon-zoom-in icon-white"></i> Ver</a></td>
+                            {% if perms.ventas.change_ventas %}
+                                <td><a class="btn btn-info" href="{% url apps.ventas.views.edit_ventas venta.id %}"><i class="icon-pencil icon-white"></i> Editar</a></td>
+                            {% endif %}
+                            {% if perms.ventas.delete_ventas %}
+                                <td><a class="btn btn-danger" href="{% url apps.ventas.views.del_ventas venta.id %}"> <i class="icon-remove icon-white"></i> Eliminar</a</td>
+                            {% endif %}
+                        </tr>
+                    {% endif %}
                 {% endfor %}
             </table>
         </div>