Commits

Dairon Medina  committed 6614c59

Feature #51732 implementada

  • Participants
  • Parent commits 59e7e06

Comments (0)

Files changed (1)

File obras/report_forms.py

         """ 
         desde = self.cleaned_data['desde']
         hasta = self.cleaned_data['hasta']
-        
         proveedor = self.cleaned_data['proveedor']
         
         gastos = models.DetalleGasto.objects.filter(obra=obra,
     #FIXME no es muy piola el algoritmo. quizas mejor hacerlo desde 
     #metodos de los modelos
     def _make_context_dict(self):
-                
+        desde = self.cleaned_data['desde']
+        hasta = self.cleaned_data['hasta']
+
         categoria = self.cleaned_data['categoria']
         concepto = self.cleaned_data['concepto']
 
             if pais:
                 obras = obras.filter(pais=pais)
 
+        obras_1 =[]
         items = []
+        obra_data = []
 
         for obra in obras:
-            obras
-
-            print obra
-            
-            if categoria:
-                categorias = [categoria]
-            else:
-                categorias = models.Categoria.objects.order_by('codigo')
-        
-            for categoria in categorias:
-
-                print categoria
+            if obra.tiene_gastos_en_rango(desde, hasta) and obra not in obras_1:
+                tot_obra = obra.total_gastos_in_range(desde, hasta)
+                obras_1.append(obra)
+                obrax = [obra]
+                obra_data.append((obrax, tot_obra))
+                print obrax[0].get_categorias(desde, hasta)
+                print obra_data
                 
-                super_parcial = []
-                superconceptos = categoria.get_superconceptos()
-                
-                if concepto in superconceptos:
-                    superconceptos = [concepto]
-                    
-                for superconcepto in superconceptos:
-
-                    print superconcepto
+                if categoria:
+                    categorias = [categoria]
+                else:
+                    categorias = obra.get_categorias(desde, hasta)
                     
-                    sub_parcial = []
-                    subconceptos = superconcepto.get_subconceptos()
+                for categoria in categorias:
+                    super_parcial = []
+                    superconceptos = categoria.get_superconceptos()
                     
-                    if concepto and not concepto.is_superconcepto():
-                        if concepto in subconceptos:
-                            subconceptos = [concepto]
-                        else:
-                            subconceptos = []
-                            
-                    for subconcepto in subconceptos:
-                        #print subconceptos
-                        gastos = self._get_gastos(obra, subconcepto)
-                        for gasto in gastos:
-                            print gasto
-
+                    if concepto in superconceptos:
+                        superconceptos = [concepto]
                         
-                        total = sum([gasto.imp_neto for gasto in gastos])
+                    for superconcepto in superconceptos:
+                        sub_parcial = []
+                        subconceptos = superconcepto.get_subconceptos()
+                            
+                        if concepto and not concepto.is_superconcepto():
+                            if concepto in subconceptos:
+                                subconceptos = [concepto]
+                            else:
+                                subconceptos = []
+                                    
+                        for subconcepto in subconceptos:
+                            gastos = self._get_gastos(obra, subconcepto)
+                            total = sum([gasto.imp_neto for gasto in gastos])
+                            if total:
+                                sub_parcial.append((subconcepto, gastos, total))
+                        total = sum([parcial[2] for parcial in sub_parcial])
                         if total:
-                            sub_parcial.append((subconcepto, gastos, total))
-
-                    total = sum([parcial[2] for parcial in sub_parcial])
+                            super_parcial.append((superconcepto, sub_parcial, total))
+                    total = sum([parcial[2] for parcial in super_parcial])
                     if total:
-                        super_parcial.append((superconcepto, sub_parcial, total))
-                
-                total = sum([parcial[2] for parcial in super_parcial])
-                if total:
-                    items.append((categoria, super_parcial, total,))
-                    print items
+                        items.append((obra_data, categoria, super_parcial, total,))
+                        #print items
         
-        total = sum([i[2] for i in items])
+        total = sum([i[3] for i in items])
         
-        context = {'obras' : obras, 'items' : items, 'total' : total, }
+        context = {'items' : items, 'total' : total, }
         
         context.update(self.cleaned_data)        
         return context