Merge lp:~vauxoo/addons-vauxoo/report_production_dev_rodo into lp:addons-vauxoo

Proposed by Rodolfo Lopez
Status: Superseded
Proposed branch: lp:~vauxoo/addons-vauxoo/report_production_dev_rodo
Merge into: lp:addons-vauxoo
Diff against target: 720 lines (+271/-299)
8 files modified
report_process_production/process_report.xml (+2/-2)
report_process_production/report/__init__.py (+1/-1)
report_process_production/report/process_production_report.py (+73/-2)
report_process_production/report/process_production_report.rml (+184/-64)
report_process_production/report/process_production_report_group.py (+0/-73)
report_process_production/report/process_production_report_group.rml (+0/-132)
report_process_production/wizard/wizard_report_process.py (+8/-11)
report_process_production/wizard/wizard_report_process.xml (+3/-14)
To merge this branch: bzr merge lp:~vauxoo/addons-vauxoo/report_production_dev_rodo
Reviewer Review Type Date Requested Status
Moisés López - http://www.vauxoo.com Pending
Isaac López Zúñiga Pending
Rodolfo Lopez Pending
Review via email: mp+126581@code.launchpad.net

This proposal supersedes a proposal from 2012-09-25.

This proposal has been superseded by a proposal from 2012-09-27.

Description of the change

[REF] [report_process_production] only one parser and rml, also add product code

To post a comment you must log in.
Revision history for this message
Moisés López - http://www.vauxoo.com (moylop260) wrote : Posted in a previous version of this proposal

Cuando le doy click desde el reporte, me da el siguiente error:
   flow = self._flowable(node)
  File "/home/moylop260/openerp/instancias/6.1/server/openerp/report/render/rml2pdf/trml2pdf.py", line 793, in _flowable
    return self._table(node)
  File "/home/moylop260/openerp/instancias/6.1/server/openerp/report/render/rml2pdf/trml2pdf.py", line 644, in _table
    for tr in children:
  File "/home/moylop260/openerp/instancias/6.1/server/openerp/report/render/rml2pdf/utils.py", line 64, in _child_get
    for ctx in eval(n.get('rml_loop'),{}, self.localcontext):
  File "/home/moylop260/openerp/instancias/6.1/server/openerp/tools/safe_eval.py", line 241, in safe_eval
    return eval(test_expr(expr,_SAFE_OPCODES, mode=mode), globals_dict, locals_dict)
  File "", line 1, in <module>
KeyError: 'form'
2012-09-25 04:31:22,275 5880 ERROR ? openerp.netsvc: form
(<type 'exceptions.KeyError'>, KeyError('form',), <traceback object at 0x7f9ba970a7e8>)

Cuando lo mando imprimir desde el wizard todo está bien.

Solo es poner el key2 a client_print_multi al wizard y listo, o algo así

review: Needs Fixing
Revision history for this message
Moisés López - http://www.vauxoo.com (moylop260) wrote : Posted in a previous version of this proposal

Excelente trabajo!

En donde dice "Reallll", cambiarle a "Real"

review: Needs Fixing
Revision history for this message
Moisés López - http://www.vauxoo.com (moylop260) wrote : Posted in a previous version of this proposal

Cuando consideres sumar
una variable
product_qty

Siempre considerar la variante de
product_uom

Es decir,
1 kg + 100 gr = 1.100 kg

Ya existen funciones al respecto,

Por ejemplo, básate en mrp_variation/mrp_variation.py:: def create_res_real_planned
qty_uom_convert=self.pool.get('product.uom')._compute_qty(cr, uid, UOM_DEL_MOVIMIENTO, CANTIDAD_DEL_MOVIMIENTO, to_uom_id=product.uom_id.id)

review: Needs Fixing
Revision history for this message
Rodolfo Lopez (el-rodo-1) wrote : Posted in a previous version of this proposal

[REF][report_process_production]

review: Needs Resubmitting
Revision history for this message
Rodolfo Lopez (el-rodo-1) wrote : Posted in a previous version of this proposal

[REF][report_process_production] agregar combo para imprimir: agrupado, sin agrupar o ambos

review: Needs Resubmitting
Revision history for this message
Isaac López Zúñiga (isaako34) wrote : Posted in a previous version of this proposal

Muchas Gracias Rodo.

Algunas observaciones estéticas para los reportes:
1.- Prodrías cambiar: "Reporte De Proceso De Producción" por "Reporte de proceso de producción"
2.- Para agilizar la lectura de lo que se produjo, quitar las etiquetas: "Producto", "Cantidad" y "Unidad de medida" quedando por ejemplo: Producción: MO/00015 - PC Básico+ (ensamblado bajo pedido) 1.000 Dozen
3.- Reemplazar los ******* por ___________ para que la línea se vea mas limpia.

Respecto al wizard:
1.- El selection debe tener la opción "ambos" como predeterminado.

Respecto a las pruebas que se han realizado todo trabaja correctamente. :-)

review: Needs Fixing
Revision history for this message
Moisés López - http://www.vauxoo.com (moylop260) wrote : Posted in a previous version of this proposal

...Y en cuanto a lo tecnico, hay que hacer que haya un solo parse .py y
solo un .rml que imprima agrupado, sin agrupar o ambos... segun sea el caso.

Revision history for this message
Moisés López - http://www.vauxoo.com (moylop260) wrote : Posted in a previous version of this proposal

Cuando la lista de materiales que vas a mostrar tiene 0 registros a mostrar como materia prima, que no muestre esa orden de producción.

Es decir...
Si tengo 3 órdenes de producción:
Producción 1: PC1
   -Mouse
Producción 2: PC2
   -Mouse
   -Teclado
Producción 3: PC3
   -Teclado

Y selecciono todas las producciones anteriores, y en el wizard le dejo solo el producto "Mouse"
Debería de mostrar solo la producción 1 y la producción 2

La producción 3 la debería de omitir
Ya que la producción 3, no mostraría nada, ya que solo tiene Teclado

review: Needs Fixing
Revision history for this message
Isaac López Zúñiga (isaako34) wrote : Posted in a previous version of this proposal

Agregar el código del producto como prefijo en la columna de producto
Es decir,
[production.product_id.default_code] production.product_id.name

También lo mismo, en la sección de producto terminado

review: Needs Fixing
Revision history for this message
Isaac López Zúñiga (isaako34) wrote : Posted in a previous version of this proposal

Hola Rodo,

Apareció otro error al mandar imprimir un solo producto que pertenece solo a una de varias ordenes de producción.

Para ser mas específico, anexo la siguiente liga con el video.

http://youtu.be/7knRQ9PonCU

Saludos.

review: Needs Fixing
Revision history for this message
Moisés López - http://www.vauxoo.com (moylop260) wrote : Posted in a previous version of this proposal

Mandale la base de datos,
para que replique lo mismo del video please

Correo escrito desde un dispositivo móvil. Disculpa las faltas de
ortografía y la brevedad del email.
"No imprimas este email al menos que sea muy necesario, la ecología es cosa
de todos"

Moisés López - Vauxoo - moylop260
El 26/09/2012 22:25, "Isaac López Zúñiga - http://www.vauxoo.com" <
<email address hidden>> escribió:

> Review: Needs Fixing
>
> Hola Rodo,
>
> Apareció otro error al mandar imprimir un solo producto que pertenece solo
> a una de varias ordenes de producción.
>
> Para ser mas específico, anexo la siguiente liga con el video.
>
> http://youtu.be/7knRQ9PonCU
>
> Saludos.
> --
>
> https://code.launchpad.net/~vauxoo/addons-vauxoo/report_production_dev_rodo/+merge/126321
> You are reviewing the proposed merge of
> lp:~vauxoo/addons-vauxoo/report_production_dev_rodo into lp:addons-vauxoo.
>

Revision history for this message
Moisés López - http://www.vauxoo.com (moylop260) wrote : Posted in a previous version of this proposal

Mandale la base de datos,
para que replique lo mismo del video please

Correo escrito desde un dispositivo móvil. Disculpa las faltas de
ortografía y la brevedad del email.
"No imprimas este email al menos que sea muy necesario, la ecología es cosa
de todos"

Moisés López - Vauxoo - moylop260
El 26/09/2012 22:25, "Isaac López Zúñiga - http://www.vauxoo.com" <
<email address hidden>> escribió:

473. By Rodolfo Lopez

[FIX][report_process_production] error al eliminar un objeto de la lista de objetos, solucionado

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'report_process_production/process_report.xml'
2--- report_process_production/process_report.xml 2012-09-25 00:46:31 +0000
3+++ report_process_production/process_report.xml 2012-09-27 17:35:23 +0000
4@@ -8,8 +8,8 @@
5 rml='report_process_production/report/process_production_report.rml'
6 auto="False"
7 header="False"
8- menu="True"
9- multi="True"
10+ menu="False"
11+ multi="False"
12 />
13 </data>
14 </openerp>
15
16=== modified file 'report_process_production/report/__init__.py'
17--- report_process_production/report/__init__.py 2012-09-25 00:46:31 +0000
18+++ report_process_production/report/__init__.py 2012-09-27 17:35:23 +0000
19@@ -1,2 +1,2 @@
20 import process_production_report
21-import process_production_report_group
22+
23
24=== modified file 'report_process_production/report/process_production_report.py'
25--- report_process_production/report/process_production_report.py 2012-09-25 00:46:31 +0000
26+++ report_process_production/report/process_production_report.py 2012-09-27 17:35:23 +0000
27@@ -32,9 +32,45 @@
28 self.localcontext.update({
29 'time': time,
30 'get_production':self._get_production,
31+ 'get_production_group':self._get_production_group,
32+ 'get_print':self._get_print,
33+ 'get_table':self._get_table,
34+ 'get_group':self._get_group,
35+ 'get_sin':self._get_sin,
36 })
37
38+ def _get_production_group(self, data):
39+ if data['print']=='sin':
40+ return {}
41+ res=[]
42+ new_ids=[]
43+ pool = pooler.get_pool(self.cr.dbname)
44+ obj_prod=pool.get('mrp.production')
45+ for prod in obj_prod.browse(self.cr, self.uid, self.ids):
46+ for line in prod.move_lines:
47+ if line.product_id.id in data['product_ids']:
48+ if line.product_id.id not in new_ids:
49+ res.append({'product_id':line.product_id.id,'name':line.product_id.name,'code':line.product_id.default_code,'product_uom':line.product_id.uom_id.name,'product_qty':pool.get('product.uom')._compute_qty(self.cr, self.uid, line.product_uom.id, line.product_qty, to_uom_id=line.product_id.uom_id.id),'product_categ':line.product_id.categ_id.name})
50+ new_ids.append(line.product_id.id)
51+ else:
52+ for r in res:
53+ if r['product_id']==line.product_id.id:
54+ qty=pool.get('product.uom')._compute_qty(self.cr, self.uid, line.product_uom.id, line.product_qty, to_uom_id=line.product_id.uom_id.id)
55+ r['product_qty']+=qty
56+ if not res:
57+ res.append({'product_id':line.product_id.id,'name':line.product_id.name,'code':line.product_id.default_code,'product_uom':line.product_id.uom_id.name,'product_qty':pool.get('product.uom')._compute_qty(self.cr, self.uid, line.product_uom.id, line.product_qty, to_uom_id=line.product_id.uom_id.id),'product_categ':line.product_id.categ_id.name})
58+ new_ids.append(line.product_id.id)
59+ """
60+ result={}
61+ for r in res:
62+ result.setdefault(r['product_id'],0)
63+ result[r['product_id']]+= r['product_qty']
64+ """
65+ return res
66+
67 def _get_production(self, data,prod_id):
68+ if data['print'] =='agrupado':
69+ return []
70 res=[]
71 pool = pooler.get_pool(self.cr.dbname)
72 obj_prod=pool.get('mrp.production')
73@@ -42,10 +78,45 @@
74 for line in prod.move_lines:
75 if line.product_id.id in data['product_ids']:
76 res.append(line)
77- print res,"aqui estaaaaa"
78 return res
79
80+ def _get_print(self, data):
81+ if data['print']=='agrupado':
82+ return False
83+ if data['print'] in ('ambos','sin'):
84+ return True
85+
86+ def _get_group(self, data):
87+ if data['print'] in ('agrupado','ambos'):
88+ return ['uno']
89+ else:
90+ return []
91+
92+ def _get_sin(self, data):
93+ if data['print'] in ('sin','ambos'):
94+ return [{'name':'Nombre','qty':'Cantidad','uom':'UOM','categ':'Categoria','real':'Real'}]
95+ else:
96+ return []
97+
98+ def _get_table(self,data,obj):
99+ if data['print']=='agrupado':
100+ return []
101+ borrar=[]
102+ for o in obj:
103+ pasa=0
104+ if o.move_lines:
105+ for l in o.move_lines:
106+ if l.product_id.id in data['product_ids']:
107+ pasa=1
108+ else:
109+ borrar.append(o)
110+ pasa=1
111+ if not pasa:
112+ borrar.append(o)
113+ for b in borrar:
114+ obj.remove(b)
115+ return obj
116+
117 report_sxw.report_sxw('report.process.report','mrp.production','addons/report_process_production/report/process_production_report.rml',parser=process_report,header=False)
118
119-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
120
121
122=== modified file 'report_process_production/report/process_production_report.rml'
123--- report_process_production/report/process_production_report.rml 2012-09-25 00:49:36 +0000
124+++ report_process_production/report/process_production_report.rml 2012-09-27 17:35:23 +0000
125@@ -2,7 +2,7 @@
126 <document filename="test.pdf">
127 <template pageSize="(612.0,792.0)" title="Test" author="Martin Simon" allowSplitting="20">
128 <pageTemplate id="first">
129- <frame id="first" x1="57.0" y1="57.0" width="498" height="678"/>
130+ <frame id="first" x1="28.0" y1="57.0" width="556" height="678"/>
131 </pageTemplate>
132 </template>
133 <stylesheet>
134@@ -10,7 +10,47 @@
135 <blockAlignment value="LEFT"/>
136 <blockValign value="TOP"/>
137 </blockTableStyle>
138- <blockTableStyle id="Table1">
139+ <blockTableStyle id="Table2">
140+ <blockAlignment value="LEFT"/>
141+ <blockValign value="TOP"/>
142+ <lineStyle kind="LINEBEFORE" colorName="#000000" start="0,0" stop="0,-1"/>
143+ <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
144+ <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
145+ <lineStyle kind="LINEBEFORE" colorName="#000000" start="1,0" stop="1,-1"/>
146+ <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
147+ <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
148+ <lineStyle kind="LINEBEFORE" colorName="#000000" start="2,0" stop="2,-1"/>
149+ <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
150+ <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
151+ <lineStyle kind="LINEBEFORE" colorName="#000000" start="3,0" stop="3,-1"/>
152+ <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
153+ <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
154+ <lineStyle kind="LINEBEFORE" colorName="#000000" start="4,0" stop="4,-1"/>
155+ <lineStyle kind="LINEAFTER" colorName="#000000" start="4,0" stop="4,-1"/>
156+ <lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
157+ <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
158+ </blockTableStyle>
159+<blockTableStyle id="Table1">
160+ <blockAlignment value="LEFT"/>
161+ <blockValign value="TOP"/>
162+ <lineStyle kind="LINEBEFORE" colorName="#000000" start="0,0" stop="0,-1"/>
163+ <lineStyle kind="LINEAFTER" colorName="#000000" start="0,0" stop="0,-1"/>
164+ <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,-1"/>
165+ <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
166+ <lineStyle kind="LINEAFTER" colorName="#000000" start="1,0" stop="1,-1"/>
167+ <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,-1"/>
168+ <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
169+ <lineStyle kind="LINEAFTER" colorName="#000000" start="2,0" stop="2,-1"/>
170+ <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,-1"/>
171+ <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
172+ <lineStyle kind="LINEAFTER" colorName="#000000" start="3,0" stop="3,-1"/>
173+ <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,-1"/>
174+ <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
175+ <lineStyle kind="LINEAFTER" colorName="#000000" start="4,0" stop="4,-1"/>
176+ <lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,-1"/>
177+ <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
178+ </blockTableStyle>
179+ <blockTableStyle id="Table3">
180 <blockAlignment value="LEFT"/>
181 <blockValign value="TOP"/>
182 <lineStyle kind="LINEBEFORE" colorName="#000000" start="0,0" stop="0,-1"/>
183@@ -35,35 +75,42 @@
184 <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
185 <lineStyle kind="LINEBEFORE" colorName="#000000" start="0,1" stop="0,-1"/>
186 <lineStyle kind="LINEAFTER" colorName="#000000" start="0,1" stop="0,-1"/>
187- <lineStyle kind="LINEABOVE" colorName="#000000" start="0,1" stop="0,1"/>
188+ <lineStyle kind="LINEABOVE" colorName="#000000" start="0,1" stop="0,-1"/>
189 <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
190 <lineStyle kind="LINEBEFORE" colorName="#000000" start="1,1" stop="1,-1"/>
191 <lineStyle kind="LINEAFTER" colorName="#000000" start="1,1" stop="1,-1"/>
192- <lineStyle kind="LINEABOVE" colorName="#000000" start="1,1" stop="1,1"/>
193+ <lineStyle kind="LINEABOVE" colorName="#000000" start="1,1" stop="1,-1"/>
194 <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
195 <lineStyle kind="LINEBEFORE" colorName="#000000" start="2,1" stop="2,-1"/>
196 <lineStyle kind="LINEAFTER" colorName="#000000" start="2,1" stop="2,-1"/>
197- <lineStyle kind="LINEABOVE" colorName="#000000" start="2,1" stop="2,1"/>
198+ <lineStyle kind="LINEABOVE" colorName="#000000" start="2,1" stop="2,-1"/>
199 <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
200 <lineStyle kind="LINEBEFORE" colorName="#000000" start="3,1" stop="3,-1"/>
201 <lineStyle kind="LINEAFTER" colorName="#000000" start="3,1" stop="3,-1"/>
202- <lineStyle kind="LINEABOVE" colorName="#000000" start="3,1" stop="3,1"/>
203+ <lineStyle kind="LINEABOVE" colorName="#000000" start="3,1" stop="3,-1"/>
204 <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
205 <lineStyle kind="LINEBEFORE" colorName="#000000" start="4,1" stop="4,-1"/>
206 <lineStyle kind="LINEAFTER" colorName="#000000" start="4,1" stop="4,-1"/>
207- <lineStyle kind="LINEABOVE" colorName="#000000" start="4,1" stop="4,1"/>
208+ <lineStyle kind="LINEABOVE" colorName="#000000" start="4,1" stop="4,-1"/>
209 <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
210 </blockTableStyle>
211 <initialize>
212 <paraStyle name="all" alignment="justify"/>
213 </initialize>
214- <paraStyle name="P1" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/>
215- <paraStyle name="P2" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
216- <paraStyle name="P3" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
217- <paraStyle name="P4" fontName="Helvetica-Bold" fontSize="10.0" leading="13" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
218- <paraStyle name="P5" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
219- <paraStyle name="P6" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
220- <paraStyle name="P7" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
221+ <paraStyle name="P1" fontName="Helvetica" fontSize="6.0" leading="8" alignment="CENTER"/>
222+ <paraStyle name="P2" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/>
223+ <paraStyle name="P3" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER"/>
224+ <paraStyle name="P4" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
225+ <paraStyle name="P5" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
226+ <paraStyle name="P6" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
227+ <paraStyle name="P7" fontName="Helvetica-Bold" fontSize="10.0" leading="13" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
228+ <paraStyle name="P8" fontName="Helvetica-Bold" fontSize="4.0" leading="5" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
229+ <paraStyle name="P9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
230+ <paraStyle name="P10" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
231+ <paraStyle name="P11" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
232+ <paraStyle name="P12" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
233+ <paraStyle name="P13" fontName="Helvetica-Bold" fontSize="10.0" leading="13" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
234+ <paraStyle name="P14" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
235 <paraStyle name="Standard" fontName="Helvetica"/>
236 <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
237 <paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
238@@ -78,56 +125,129 @@
239 </stylesheet>
240 <story>
241 <section>
242- <para style="P4">Reporte De Proceso De Producción</para>
243- <para style="P5">
244- <font color="white"> </font>
245- </para>
246- <para style="P5">[[repeatIn(objects,'o')]]</para>
247- <para style="P2">Producción: [[ o.name ]] , Producto: [[o.product_id.name ]]</para>
248- <blockTable colWidths="169.0,72.0,69.0,120.0,69.0" style="Table1">
249- <tr>
250- <td>
251- <para style="P1">Nombre</para>
252- </td>
253- <td>
254- <para style="P1">Cantidad</para>
255- </td>
256- <td>
257- <para style="P1">UOM</para>
258- </td>
259- <td>
260- <para style="P1">Categoria</para>
261- </td>
262- <td>
263- <para style="P1">Reallllll</para>
264- </td>
265- </tr>
266- <tr>
267- <td>
268- <para style="P6">[[ repeatIn(get_production(data['form'], o.id ), 'p' ) ]]</para>
269- <para style="P6">[[ p.product_id.name ]]</para>
270- </td>
271- <td>
272- <para style="P6">[[ p.product_qty ]]</para>
273- </td>
274- <td>
275- <para style="P6">[[ p.product_uom.name ]]</para>
276- </td>
277- <td>
278- <para style="P6">[[ p.product_id.categ_id.name ]]</para>
279- </td>
280- <td>
281- <para style="P1">
282- <font color="white"> </font>
283- </para>
284- </td>
285- </tr>
286- </blockTable>
287- <para style="P3">
288- <font color="white"> </font>
289- </para>
290- </section>
291- <para style="P3">
292+ <para style="P7">
293+ <font face="Helvetica" size="8.0">[[ repeatIn(get_sin(data['form']), 's') ]]</font>
294+ </para>
295+ <para style="P13">Reporte de proceso de producción</para>
296+ <blockTable colWidths="242.0,61.0,66.0,122.0,62.0" style="Table2">
297+ <tr>
298+ <td>
299+ <para style="P3">[[ s['name'] ]]</para>
300+ </td>
301+ <td>
302+ <para style="P3">[[ s['qty'] ]]</para>
303+ </td>
304+ <td>
305+ <para style="P3">[[ s['uom'] ]]</para>
306+ </td>
307+ <td>
308+ <para style="P3">[[ s['categ'] ]]</para>
309+ </td>
310+ <td>
311+ <para style="P3">[[ s['real'] ]]</para>
312+ </td>
313+ </tr>
314+ </blockTable>
315+ <para style="P1">
316+ <font color="white"> </font>
317+ </para>
318+ <para style="P8">
319+ <font color="white"> </font>
320+ </para>
321+ </section>
322+ <section>
323+ <para style="P9">[[ repeatIn(get_table(data['form'],objects),'o') ]]</para>
324+ <para style="P5">Producción: [[ o.name ]] , Producto: [[o.product_id.name ]], Codigo: [[o.product_id.default_code ]] , Cantidad: [[ o.product_qty ]], Unidad Medida: [[o.product_uom.name ]]</para>
325+ <blockTable colWidths="242.0,61.0,66.0,121.0,62.0" style="Table1">
326+ <tr>
327+ <td>
328+ <para style="P10">[[ repeatIn(get_production(data['form'], o.id ), 'p' ) ]]</para>
329+ <para style="P10">[[ p.product_id.default_code]]:: [[ p.product_id.name ]]</para>
330+ </td>
331+ <td>
332+ <para style="P11">[[ formatLang(p.product_qty) ]]</para>
333+ </td>
334+ <td>
335+ <para style="P10">[[ p.product_uom.name ]]</para>
336+ </td>
337+ <td>
338+ <para style="P10">[[ p.product_id.categ_id.name ]]</para>
339+ </td>
340+ <td>
341+ <para style="P2">
342+ <font color="white"> </font>
343+ </para>
344+ </td>
345+ </tr>
346+ </blockTable>
347+ <para style="P6">
348+ <font color="white"> </font>
349+ </para>
350+ </section>
351+ <para style="P6">
352+ <font color="white"> </font>
353+ </para>
354+ <para style="P12">______________________________________________________________________________________________________________________________________________________________________</para>
355+ <para style="P12">
356+ <font color="white"> </font>
357+ </para>
358+ <section>
359+ <para style="P14">
360+ <font face="Helvetica-Bold" size="8.0">[[ repeatIn(get_group(data['form']), 'g') ]]</font>
361+ </para>
362+ <para style="P14">
363+ <font face="Helvetica" size="10.0">Reporte de proceso de producción agrupado</font>
364+ </para>
365+ <para style="P4">
366+ <font color="white"> </font>
367+ </para>
368+ <blockTable colWidths="241.0,63.0,66.0,121.0,61.0" style="Table3">
369+ <tr>
370+ <td>
371+ <para style="P3">Nombre</para>
372+ </td>
373+ <td>
374+ <para style="P3">Cantidad</para>
375+ </td>
376+ <td>
377+ <para style="P3">UOM</para>
378+ </td>
379+ <td>
380+ <para style="P3">Categoria</para>
381+ </td>
382+ <td>
383+ <para style="P3">Real</para>
384+ </td>
385+ </tr>
386+ <tr>
387+ <td>
388+ <para style="P10">[[ repeatIn(get_production_group(data['form'] ), 'p' ) ]]</para>
389+ <para style="P10">[[ p['code'] ]]::[[ p['name'] ]]</para>
390+ </td>
391+ <td>
392+ <para style="P11">[[ formatLang(p['product_qty']) ]]</para>
393+ </td>
394+ <td>
395+ <para style="P10">[[ p['product_uom'] ]]</para>
396+ </td>
397+ <td>
398+ <para style="P10">[[ p['product_categ'] ]]</para>
399+ </td>
400+ <td>
401+ <para style="P2">
402+ <font color="white"> </font>
403+ </para>
404+ </td>
405+ </tr>
406+ </blockTable>
407+ <para style="P6">
408+ <font color="white"> </font>
409+ </para>
410+ <para style="P6">
411+ <font color="white"> </font>
412+ </para>
413+ </section>
414+ <para style="P12">
415 <font color="white"> </font>
416 </para>
417 </story>
418
419=== modified file 'report_process_production/report/process_production_report.sxw'
420Binary files report_process_production/report/process_production_report.sxw 2012-09-25 00:46:31 +0000 and report_process_production/report/process_production_report.sxw 2012-09-27 17:35:23 +0000 differ
421=== removed file 'report_process_production/report/process_production_report_group.py'
422--- report_process_production/report/process_production_report_group.py 2012-09-25 03:38:08 +0000
423+++ report_process_production/report/process_production_report_group.py 1970-01-01 00:00:00 +0000
424@@ -1,73 +0,0 @@
425-# -*- coding: utf-8 -*-
426-##############################################################################
427-#
428-# OpenERP, Open Source Management Solution
429-# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
430-#
431-# This program is free software: you can redistribute it and/or modify
432-# it under the terms of the GNU Affero General Public License as
433-# published by the Free Software Foundation, either version 3 of the
434-# License, or (at your option) any later version.
435-#
436-# This program is distributed in the hope that it will be useful,
437-# but WITHOUT ANY WARRANTY; without even the implied warranty of
438-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
439-# GNU Affero General Public License for more details.
440-#
441-# You should have received a copy of the GNU Affero General Public License
442-# along with this program. If not, see <http://www.gnu.org/licenses/>.
443-#
444-##############################################################################
445-
446-import time
447-from report import report_sxw
448-from osv import osv
449-import pooler
450-from tools.amount_to_text import amount_to_text
451-from tools.translate import _
452-
453-class process_report_group(report_sxw.rml_parse):
454- def __init__(self, cr, uid, name, context):
455- super(process_report_group, self).__init__(cr, uid, name, context=context)
456- self.localcontext.update({
457- 'time': time,
458- 'get_production_group':self._get_production_group,
459- })
460-
461- def _get_production_group(self, data):
462- res=[]
463- new_ids=[]
464- pool = pooler.get_pool(self.cr.dbname)
465- obj_prod=pool.get('mrp.production')
466- for prod in obj_prod.browse(self.cr, self.uid, self.ids):
467- for line in prod.move_lines:
468- if line.product_id.id in data['product_ids']:
469- if line.product_id.id not in new_ids:
470- res.append({'product_id':line.product_id.id,'name':line.product_id.name,'product_uom':line.product_uom.name,'product_qty':line.product_qty,'product_categ':line.product_id.categ_id.name})
471- new_ids.append(line.product_id.id)
472- else:
473- for r in res:
474- print r,"la errrrrrrr"
475- if line.product_id.id==521:
476- print r['product_id'],line.product_id.id
477- print r['product_qty'],"rer"
478- print line.product_qty,"line"
479- if r['product_id']==line.product_id.id:
480- r['product_qty']+=line.product_qty
481- if not res:
482- print line.product_id.id,"primer"
483- res.append({'product_id':line.product_id.id,'name':line.product_id.name,'product_uom':line.product_uom.name,'product_qty':line.product_qty,'product_categ':line.product_id.categ_id.name})
484- new_ids.append(line.product_id.id)
485- """
486- result={}
487- for r in res:
488- result.setdefault(r['product_id'],0)
489- result[r['product_id']]+= r['product_qty']
490- print result,"aquisss"
491- """
492- return res
493-
494-report_sxw.report_sxw('report.process.report.group','mrp.production','addons/report_process_production/report/process_production_report_group.rml',parser=process_report_group,header=False)
495-
496-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
497-
498
499=== removed file 'report_process_production/report/process_production_report_group.rml'
500--- report_process_production/report/process_production_report_group.rml 2012-09-25 03:38:08 +0000
501+++ report_process_production/report/process_production_report_group.rml 1970-01-01 00:00:00 +0000
502@@ -1,132 +0,0 @@
503-<?xml version="1.0"?>
504-<document filename="test.pdf">
505- <template pageSize="(612.0,792.0)" title="Test" author="Martin Simon" allowSplitting="20">
506- <pageTemplate id="first">
507- <frame id="first" x1="57.0" y1="57.0" width="498" height="678"/>
508- </pageTemplate>
509- </template>
510- <stylesheet>
511- <blockTableStyle id="Standard_Outline">
512- <blockAlignment value="LEFT"/>
513- <blockValign value="TOP"/>
514- </blockTableStyle>
515- <blockTableStyle id="Table1">
516- <blockAlignment value="LEFT"/>
517- <blockValign value="TOP"/>
518- <lineStyle kind="LINEBEFORE" colorName="#000000" start="0,0" stop="0,-1"/>
519- <lineStyle kind="LINEAFTER" colorName="#000000" start="0,0" stop="0,-1"/>
520- <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
521- <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
522- <lineStyle kind="LINEBEFORE" colorName="#000000" start="1,0" stop="1,-1"/>
523- <lineStyle kind="LINEAFTER" colorName="#000000" start="1,0" stop="1,-1"/>
524- <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
525- <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
526- <lineStyle kind="LINEBEFORE" colorName="#000000" start="2,0" stop="2,-1"/>
527- <lineStyle kind="LINEAFTER" colorName="#000000" start="2,0" stop="2,-1"/>
528- <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
529- <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
530- <lineStyle kind="LINEBEFORE" colorName="#000000" start="3,0" stop="3,-1"/>
531- <lineStyle kind="LINEAFTER" colorName="#000000" start="3,0" stop="3,-1"/>
532- <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
533- <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
534- <lineStyle kind="LINEBEFORE" colorName="#000000" start="4,0" stop="4,-1"/>
535- <lineStyle kind="LINEAFTER" colorName="#000000" start="4,0" stop="4,-1"/>
536- <lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
537- <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
538- <lineStyle kind="LINEBEFORE" colorName="#000000" start="0,1" stop="0,-1"/>
539- <lineStyle kind="LINEAFTER" colorName="#000000" start="0,1" stop="0,-1"/>
540- <lineStyle kind="LINEABOVE" colorName="#000000" start="0,1" stop="0,1"/>
541- <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
542- <lineStyle kind="LINEBEFORE" colorName="#000000" start="1,1" stop="1,-1"/>
543- <lineStyle kind="LINEAFTER" colorName="#000000" start="1,1" stop="1,-1"/>
544- <lineStyle kind="LINEABOVE" colorName="#000000" start="1,1" stop="1,1"/>
545- <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
546- <lineStyle kind="LINEBEFORE" colorName="#000000" start="2,1" stop="2,-1"/>
547- <lineStyle kind="LINEAFTER" colorName="#000000" start="2,1" stop="2,-1"/>
548- <lineStyle kind="LINEABOVE" colorName="#000000" start="2,1" stop="2,1"/>
549- <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
550- <lineStyle kind="LINEBEFORE" colorName="#000000" start="3,1" stop="3,-1"/>
551- <lineStyle kind="LINEAFTER" colorName="#000000" start="3,1" stop="3,-1"/>
552- <lineStyle kind="LINEABOVE" colorName="#000000" start="3,1" stop="3,1"/>
553- <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
554- <lineStyle kind="LINEBEFORE" colorName="#000000" start="4,1" stop="4,-1"/>
555- <lineStyle kind="LINEAFTER" colorName="#000000" start="4,1" stop="4,-1"/>
556- <lineStyle kind="LINEABOVE" colorName="#000000" start="4,1" stop="4,1"/>
557- <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
558- </blockTableStyle>
559- <initialize>
560- <paraStyle name="all" alignment="justify"/>
561- </initialize>
562- <paraStyle name="P1" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
563- <paraStyle name="P2" fontName="Helvetica-Bold" fontSize="10.0" leading="13" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
564- <paraStyle name="P3" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
565- <paraStyle name="P4" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
566- <paraStyle name="P5" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
567- <paraStyle name="P6" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/>
568- <paraStyle name="Standard" fontName="Helvetica"/>
569- <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
570- <paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
571- <paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
572- <paraStyle name="Caption" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
573- <paraStyle name="Index" fontName="Helvetica"/>
574- <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
575- <paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
576- <paraStyle name="Table Contents" fontName="Helvetica"/>
577- <images/>
578- </stylesheet>
579- <story>
580- <para style="P2">Reporte De Proceso De Producción Agrupado</para>
581- <para style="P4">
582- <font color="white"> </font>
583- </para>
584- <para style="P3">
585- <font color="white"> </font>
586- </para>
587- <blockTable colWidths="169.0,72.0,69.0,120.0,69.0" style="Table1">
588- <tr>
589- <td>
590- <para style="P6">Nombre</para>
591- </td>
592- <td>
593- <para style="P6">Cantidad</para>
594- </td>
595- <td>
596- <para style="P6">UOM</para>
597- </td>
598- <td>
599- <para style="P6">Categoria</para>
600- </td>
601- <td>
602- <para style="P6">Reallllll</para>
603- </td>
604- </tr>
605- <tr>
606- <td>
607- <para style="P5">[[ repeatIn(get_production_group(data['form'] ), 'p' ) ]]</para>
608- <para style="P5">[[ p['name'] ]]</para>
609- </td>
610- <td>
611- <para style="P5">[[ p['product_qty'] ]]</para>
612- </td>
613- <td>
614- <para style="P5">[[ p['product_uom'] ]]</para>
615- </td>
616- <td>
617- <para style="P5">[[ p['product_categ'] ]]</para>
618- </td>
619- <td>
620- <para style="P6">
621- <font color="white"> </font>
622- </para>
623- </td>
624- </tr>
625- </blockTable>
626- <para style="P1">
627- <font color="white"> </font>
628- </para>
629- <para style="P1">
630- <font color="white"> </font>
631- </para>
632- </story>
633-</document>
634-
635
636=== removed file 'report_process_production/report/process_production_report_group.sxw'
637Binary files report_process_production/report/process_production_report_group.sxw 2012-09-25 03:38:08 +0000 and report_process_production/report/process_production_report_group.sxw 1970-01-01 00:00:00 +0000 differ
638=== modified file 'report_process_production/wizard/wizard_report_process.py'
639--- report_process_production/wizard/wizard_report_process.py 2012-09-25 00:46:31 +0000
640+++ report_process_production/wizard/wizard_report_process.py 2012-09-27 17:35:23 +0000
641@@ -35,9 +35,12 @@
642
643 _columns = {
644 'product_ids': fields.many2many('product.product','temp_product_rel','temp_id','product_id','Productos'),
645- 'group':fields.boolean('Agrupar'),
646+ 'print':fields.selection([('sin','Sin Agrupar'),('agrupado','Agrupado'),('ambos','Ambos')],'Imprimir',required=True),
647 }
648
649+ _defaults={
650+ 'print':'ambos'
651+ }
652 def default_get(self, cr, uid, fields, context=None):
653 """ To get default values for the object.
654 @param self: The object pointer.
655@@ -53,7 +56,6 @@
656 production_obj = self.pool.get('mrp.production')
657 res = super(wizard_report_process, self).default_get(cr, uid, fields, context=context)
658 production_ids = context.get('active_ids', [])
659- print production_ids,"aqui mira"
660 if not production_ids:
661 return res
662 prod_list=[]
663@@ -76,17 +78,12 @@
664 'form': data,
665 'uid': uid,
666 }
667- if data['group']:
668- return {
669- 'type': 'ir.actions.report.xml',
670- 'report_name': 'process.report.group',
671- 'datas': datas,
672- }
673- else:
674- return {
675+
676+ return {
677 'type': 'ir.actions.report.xml',
678 'report_name': 'process.report',
679 'datas': datas,
680- }
681+ }
682+
683
684 wizard_report_process()
685
686=== modified file 'report_process_production/wizard/wizard_report_process.xml'
687--- report_process_production/wizard/wizard_report_process.xml 2012-09-25 00:46:31 +0000
688+++ report_process_production/wizard/wizard_report_process.xml 2012-09-27 17:35:23 +0000
689@@ -11,7 +11,7 @@
690 <form string="Report Process">
691 <field name="product_ids" colspan="4" nolabel="1"/>
692 <newline/>
693- <field name="group" />
694+ <field name="print" />
695 <newline/>
696 <button special="cancel" string="Cancel" colspan="2" icon="gtk-cancel"/>
697 <button name="check_report" string="Report" type="object" colspan="1" icon="gtk-execute"/>
698@@ -26,20 +26,9 @@
699 res_model="wizard.report.process"
700 view_mode="form"
701 target="new"
702- key2="client_action_multi"
703+ key2="client_print_multi"
704 />
705
706- <record id="action_wizard_report_process" model="ir.actions.act_window">
707- <field name="name">Reporte Proceso</field>
708- <field name="res_model">wizard.report.process</field>
709- <field name="type">ir.actions.act_window</field>
710- <field name="view_type">form</field>
711- <field name="view_mode">tree,form</field>
712- <field name="view_id" ref="view_wizard_report_process_form"/>
713- <!--<field name="context">{'record_id':active_id}</field>-->
714- <field name="context">{}</field>
715- <field name="target">new</field>
716- </record>
717
718- </data>
719+ </data>
720 </openerp>