/[papo]/papo/forms/priceType.gfd
ViewVC logotype

Diff of /papo/forms/priceType.gfd

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by apronotti, Wed Nov 6 20:36:41 2002 UTC revision 1.4 by apronotti, Wed Nov 6 20:39:22 2002 UTC
# Line 1  Line 1 
1  <?xml version="1.0" encoding="ISO-8859-1"?>  <?xml version="1.0" encoding="ISO-8859-1"?>
2  <!DOCTYPE form SYSTEM "gnue-forms.dtd">  <!DOCTYPE form SYSTEM "gnue-forms.dtd">
   
   <form width="44" height="24" title="Ingreso de Precios">  
3    
4    <maintoolbar enabled=""/>  <form tabbed="top" title="Listas de Precios"
5    <!--datasources-->      height="23" width="74">
6    <datasource name="searchProductDataSource" cache="1"/>  
7    <datasource name="insertProductDataSource" cache="1"/>    <parameter name="initId" default=""/>
8    <datasource database="papo" name="priceTypeDataSource" table="price_type, _price_type_data" historytable="_price_type_data">  
9      <datasource name="searchDataSource" cache="1"/>
10      <datasource database="papo" name="priceTypeResultDataSource" table="price_type, _price_type_data" historytable="_price_type_data"
11                  order_by="_price_type_data.name">
12      <condition>      <condition>
13      <and>      <and>
14        <eq>        <eq>
# Line 21  Line 22 
22      </condition>      </condition>
23    </datasource>    </datasource>
24    
25    <datasource database="papo" detaillink="_price_data.price_type" cache="1000"    <datasource database="papo" name="priceTypeDataSource" table="price_type, _price_type_data" historytable="_price_type_data">
     master="priceTypeDataSource" masterlink="price_type.id" name="priceEditDataSource"    
     table="price, _price_data" historytable="_price_data">  
26      <condition>      <condition>
27      <and>      <and>
28        <eq>        <eq>
# Line 37  Line 36 
36      </condition>      </condition>
37    </datasource>    </datasource>
38    
39      <datasource database="papo" name="parentPriceTypeDataSource" table="_price_type_data">
40        <condition>
41        <and>
42          <eq>
43            <cfield name="_price_type_data.is_active"/>
44            <cconst value="S"/>
45          </eq>
46          <null>
47             <cfield name="_price_type_data._end_t"/>
48          </null>
49        </and>
50        </condition>
51      </datasource>
52    
53    <datasource name="productDataSource" database="papo"    <datasource name="productDataSource" database="papo"
54      table="product, _product_data" historytable="_product_data">      table="product, _product_data" historytable="_product_data">
55      <condition>      <condition>
# Line 52  Line 65 
65      </condition>      </condition>
66    </datasource>    </datasource>
67    
68   <trigger name="clearErrorMessages" type="NAMED">    <trigger type="On-Startup">
69      priceInsertBlock.mensajeError=""      #print "parameter = '%s'" % getParameter('initId')
70      searchProductBlock.mensajeErrorBuscando = ""    </trigger>
71      
72      <trigger name="askForChangesTrigger" type="NAMED">
73        import hack
74        hack.confirmPageChanges(self, 'commitTrigger', priceTypeBlock)
75    </trigger>    </trigger>
76    
   <page name="IngresoDePrecios">  
     <box label="Lista de precios" x="0" y="0" height="5" width="44">  
       <block name="priceTipeBlock" datasource="priceTypeDataSource">  
         <label name="priceTipeLbl" text="tipo de lista" x="1" y="1"/>  
         <entry name="name" field="_price_type_data.name" x="1" y="2" width="40"/>  
       </block>  
     </box>  
     
     <box label="Editar lista de precios" x="0" y="5" height="14" width="44">  
       <block name="priceEditBlock" datasource="priceEditDataSource">  
         <label text="Producto" x="1" y="1"/>  
         <entry x="1" y="2" field="price.product"  
           name="priceProductEntry" rows="4"  
           width="15" style="textlookup" foreign_key="productDataSource.id"  
           foreign_key_description="name" >  
           <trigger type="PRE-FOCUSIN" src="clearErrorMessages" />  
          </entry>  
         <label text="Precio"  
           x="21" y="1"/>  
         <entry name="priceEntry" field="price.unit_price" rows="4"  
           x="21" y="2" width="20">  
        <trigger type="PRE-FOCUSIN" src="clearErrorMessages" />  
       </entry>  
       </block>  
       <block name="searchProductBlock" datasource = "searchProductDataSource">  
         <label text="Producto" x="1" y="1"/>  
         <entry x="1" y="10" field="searchProduct"  
           name="productSearchEntry" rows="1"  width="15"  
           style="dropdown" foreign_key="productDataSource.id"  foreign_key_description="name">  
           <trigger type="PRE-FOCUSIN" src="clearErrorMessages" />  
         </entry>  
       <button x="20" y="10" trigger="searchTrigger" width="14" label="buscar"  
         name="searchBtn" height="1"/>  
       <entry name="mensajeErrorBuscando" x="20" y="11" style="label"  width="40"/>  
      </block>    
     </box>        
   
   <trigger name="searchTrigger" type="NAMED">  
     from gnue.forms.GFEvent import *  
     lCachedRecords = priceEditDataSource._object._currentResultSet._cachedRecords  
     noExisteProducto=1  
     for index in range(len(lCachedRecords)):  
         if ( eval("%s" % lCachedRecords[index].getField("price.product")) == searchProductBlock.productSearchEntry ):  
             setFocus(priceEditBlock.priceEntry)  
             self._object.dispatchEvent(GFEvent('requestRECORDNUMBER',(index+1)))  
             noExisteProducto=0      
     if  (noExisteProducto==1):    
         searchProductBlock.mensajeErrorBuscando = "producto inexistente"  
  </trigger>  
77    <trigger name="commitTrigger" type="NAMED">    <trigger name="commitTrigger" type="NAMED">
78      from gnue.forms.GFEvent import *      if str(priceTypeBlock.priceTypeIdEntry) == "1":
79      lCachedRecords = priceEditDataSource._object._currentResultSet._cachedRecords        genericBox('La lista base no se puede modificar',['OK'])
80      itemCargado=0        priceTypeBlock.processRollback(1)
     for index in range(len(lCachedRecords)):  
         if ( eval("%s" % lCachedRecords[index].getField("price.product")) == priceInsertBlock.priceProductInsertEntry ):  
             itemCargado=1  
     if (itemCargado==1):  
         print "hacer update"  
         priceInsertBlock.mensajeError= "producto existente"  
         setFocus(priceEditBlock.priceProductEntry)  
81      else:      else:
82          print "Insertar"        if not str(priceTypeBlock.parentPriceTypeEntry):
83          setFocus(priceEditBlock.priceProductEntry)          genericBox('Debe seleccionar la lista en que se basa esta.',['OK'])
84          self._object.dispatchEvent(GFEvent('requestNEWRECORD'))        elif str(priceTypeBlock.parentPriceTypeEntry) == str(priceTypeBlock.priceTypeIdEntry):
85          priceEditBlock.priceProductEntry = "%s" %priceInsertBlock.priceProductInsertEntry          genericBox('La lista no puede basarse en si misma.',['OK'])
86          priceEditBlock.priceEntry = "%s" %priceInsertBlock.priceInsertEntry        else:  
87            if priceTypeBlock.getCurrentRecord().isInserted():
88              priceTypeBlock.commit()
89              priceTypeBlock.jumpRecord(2)
90              tmpId = str(priceTypeBlock.priceTypeIdEntry)
91              priceTypeBlock.processRollback()
92              priceTypeBlock.initQuery()
93              priceTypeBlock.priceTypeIdEntry = tmpId
94              priceTypeBlock.processQuery()
95            else:
96              if priceTypeBlock.getCurrentRecord().isFieldModified('_price_type_data.parent'):
97                genericBox("No se puede modificar la lista en la que esta basada",['Ok'])
98              else:
99                priceTypeBlock.commit()
100    </trigger>    </trigger>
101      
102    <box label="Insertar nuevo producto" x="0" y="18" height="7" width="44">    <trigger name="priceTypeDeleteTrigger" type="NAMED">
103      <block name="priceInsertBlock" datasource="insertProductDataSource">      if str(priceTypeBlock.priceTypeIdEntry) == "1":
104          genericBox('La lista base no se puede borrar',['OK'])
105        else:
106          priceTypeBlock.deleteRecord()
107          priceTypeBlock.commit()
108      </trigger>
109    
110      <trigger name="priceTypeRollbackTrigger" type="NAMED">
111        import hack
112        hack.rollback(priceTypeBlock)
113      </trigger>
114    
115      <trigger type="NAMED" name="searchTrigger">
116        priceTypeResultBlock.processRollback()
117        priceTypeResultBlock.initQuery()
118        priceTypeResultBlock.nameListEntry = ("%s" % searchPriceListBlock.searchNameEntry)+"%"
119        priceTypeResultBlock.processQuery()
120      </trigger>
121    
122    <page name="Listas de Precios">
123     <trigger type="Pre-Focusout">
124       priceTypeBlock.processRollback()
125       priceModifyBlock.processRollback()
126       if priceTypeResultBlock.getRecordCount() > 0 and not priceTypeResultBlock.getCurrentRecord().isEmpty():
127         priceTypeBlock.initQuery()
128         priceTypeBlock.priceTypeIdEntry = ("%s" % priceTypeResultBlock.priceTypeIdREntry)
129         priceTypeBlock.processQuery()
130     </trigger>
131     <block name="searchPriceListBlock" datasource="searchDataSource" transparentBlock="">
132            <label text="Lista de precios a buscar"
133              x="1" y="1"/>
134            <entry name="searchNameEntry"
135              x="1" y="2" width="35">
136            </entry>
137            <button x="36" y="2" trigger="searchTrigger" width="9" label="Buscar"
138                    name="searchBtn" height="1"/>
139    
140         </block>
141         <block name="priceTypeResultBlock" datasource="priceTypeResultDataSource">
142            <entry name="priceTypeIdREntry" field="price_type.id" hidden="" x="1" y="1" width="20" />
143            <label text="Resultado" x="1" y="3"/>
144            <entry name="nameListEntry" field="_price_type_data.name"
145              x="1" y="4" width="40" rows="12"/>
146            <scrollbar page="12"
147              x="42" y="4" width="1" height="12"/>
148         </block>
149      </page>
150    
151    
152      <page name="Lista de Precios">
153      <trigger type="Pre-Focusout" src="askForChangesTrigger"/>
154      <box label="Lista de Precios"
155      x="0" y="0" height="20" width="64">
156         <block name="priceTypeBlock" datasource="priceTypeDataSource">
157            <entry name="priceTypeIdEntry" field="price_type.id" hidden="" x="1" y="1" width="20" />
158            <label text="Nombre de la Lista de Precios"
159              x="1" y="1"/>
160            <entry name="nameEntry" field="_price_type_data.name"
161              x="1" y="2" width="40"/>
162    
163            <label text="lista activa"
164              x="1" y="3"/>
165            <entry name="isActiveEntry" field="_price_type_data.is_active"  x="1" y="4" width="1"/>
166            <label text="Esta lista esta basada en la lista ..."
167              x="1" y="5"/>
168            <entry x="1" y="6" field="_price_type_data.parent"
169              name="parentPriceTypeEntry"
170              width="35" style="dropdown" foreign_key="parentPriceTypeDataSource._table"
171              foreign_key_description="name">
172              <trigger type="PRE-FOCUSOUT" name="fo">
173                if str(priceTypeBlock.priceTypeIdEntry) == "1":
174                  priceTypeBlock.processRollback(1)
175              </trigger>
176            </entry>
177            <button x="1" y="17" trigger="commitTrigger" width="9" label="Aceptar"
178                    name="priceTypeCommitBtn" height="1"/>
179            <button x="11" y="17" trigger="priceTypeDeleteTrigger" width="9" label="Borrar"
180                    name="priceTypeDeleteBtn" height="1"/>
181            <button x="21" y="17" trigger="priceTypeRollbackTrigger" width="9" label="Cancelar"
182                    name="priceTypeRollbackBtn" height="1"/>
183    
184         </block>
185       </box>
186    
187      </page>
188    
189     <page name="carga modificacion de precios">
190      <trigger type="Pre-Focusout" src="askForChangesTrigger"/>
191       <box label="Lista de precios" x="0" y="0" height="5" width="84">
192          <block name="pricePriceTypeBlock" datasource="priceTypeDataSource">
193            <label name="priceTypeLbl" text="tipo de lista" x="1" y="1"/>
194            <entry name="priceTypename"  field="_price_type_data.name" readonly="" x="1" y="2" width="40"/>
195            <entry name="priceTypeId" field="price_type.id"  x="40" y="2" width="10" hidden=""/>
196          </block>
197        </box>
198    <!-- búsqueda -->
199    
200     <datasource name="searchProductByNameDataSource" cache="1"/>
201     <datasource name="searchProductByCodeDataSource" cache="1"/>
202        <trigger name="searchProductTrigger" type="NAMED">
203          #armado de la lista de recorrido del arbol
204          search_id = str(pricePriceTypeBlock.priceTypeId)
205          priceListsChain=[]
206          while search_id != "" :
207              treePriceTypeBlock.initQuery()
208              treePriceTypeBlock.treePriceTypeId = search_id                        
209              treePriceTypeBlock.processQuery()
210              search_id = str(treePriceTypeBlock.treePriceTypeParentId)
211              priceListsChain.append("%s" % treePriceTypeBlock.treePriceTypeId)
212          resultProductBlock.processRollback()
213          resultProductBlock.initQuery()
214          resultProductBlock.productNameListEntry = ("%s" % searchProductByNameBlock.searchProductByNameEntry)+"%"
215          resultProductBlock.productCodeListEntry = ("%s" % searchProductByCodeBlock.searchProductByCodeEntry)+"%"
216          resultProductBlock.productCodeTypeListEntry = "1"
217          resultProductBlock.processQuery()
218          # cargar la parte visible de modificacion de precios
219          resultProductBlock.firstRecord()
220          product_id_anterior = None
221          priceModifyBlock.processRollback()
222          for index in range(resultProductBlock.getRecordCount()):
223              product_id=("%s" %resultProductBlock.productIdListEntry)
224              if product_id != product_id_anterior:
225                  for pricetype in priceListsChain:
226                      if pricetype == ("%s" %resultProductBlock.productPriceTypeIdListEntry):          
227                          priceModifyBlock.priceModifyNameListEntry= ("%s" %resultProductBlock.productNameListEntry)
228                          priceModifyBlock.priceModifyCodeListEntry= ("%s" %resultProductBlock.productCodeListEntry)
229                          priceModifyBlock.priceModifyPriceTypeListEntry=  ("%s" %resultProductBlock.productPriceTypeListEntry)
230                          priceModifyBlock.priceModifyPriceListEntry= ("%s" %resultProductBlock.productPriceListEntry)
231                          priceModifyBlock.priceModifyPricePreviousListEntry= ("%s" %resultProductBlock.productPriceListEntry)
232                          priceModifyBlock.priceModifyProductIdListEntry= ("%s" %resultProductBlock.productIdListEntry)
233                          priceModifyBlock.priceModifyPriceListIdListEntry= ("%s" %resultProductBlock.productPriceTypeIdListEntry)  
234                          priceModifyBlock.newRecord()
235                          product_id_anterior=product_id
236                          break
237              resultProductBlock.nextRecord()
238        </trigger>
239        <trigger name="priceModifyCommitTrigger" type="NAMED">
240          priceModifyBlock.firstRecord()
241          for index in range(priceModifyBlock.getRecordCount()):
242             if ("%s" % priceModifyBlock.priceModifyPriceListEntry) != ("%s" % priceModifyBlock.priceModifyPricePreviousListEntry):
243                if ("%s" % pricePriceTypeBlock.priceTypeId ) == ("%s" % priceModifyBlock.priceModifyPriceListIdListEntry ):
244                    priceCommitDataBlock.processRollback()
245                    priceCommitDataBlock.initQuery()
246                    priceCommitDataBlock.priceCommitProductIdEntry = ("%s" % priceModifyBlock.priceModifyProductIdListEntry)
247                    priceCommitDataBlock.priceCommitPriceTypeEntry = ("%s" % pricePriceTypeBlock.priceTypeId  )
248                    priceCommitDataBlock.processQuery()
249                    priceCommitDataBlock.priceCommitPriceEntry     = ("%s" % priceModifyBlock.priceModifyPriceListEntry)
250                    priceCommitDataBlock.commit()
251                    print "modifica"
252                else:
253                    priceCommitDataBlock.processRollback()
254                    priceCommitDataBlock.newRecord()
255                    priceCommitDataBlock.priceCommitProductIdEntry = ("%s" % priceModifyBlock.priceModifyProductIdListEntry)
256                    priceCommitDataBlock.priceCommitPriceTypeEntry = ("%s" % pricePriceTypeBlock.priceTypeId  )
257                    priceCommitDataBlock.priceCommitPriceEntry     = ("%s" % priceModifyBlock.priceModifyPriceListEntry)  
258                    priceCommitDataBlock.commit()
259                    print "inserta"
260             priceModifyBlock.nextRecord()
261          #armado de la lista de recorrido del arbol
262          #armado de la lista de recorrido del arbol
263          callTrigger('searchProductTrigger')
264       </trigger>
265        <trigger name="priceModifyRollbackTrigger" type="NAMED">
266            priceCommitDataBlock.processRollback()
267            priceModifyBlock.processRollback()
268        </trigger>
269    
270            
271        <label text="Producto" x="1" y="1"/>      <box label="Búsqueda de producto" x="0" y="4" height="5" width="84">
272        <entry x="1" y="2" field="price.product"  
273          name="priceProductInsertEntry" rows="1"  width="15"      <block name="searchProductByNameBlock" datasource="searchProductByNameDataSource" transparentBlock="">
274          style="dropdown" foreign_key="productDataSource.id"  foreign_key_description="name">          <label text="nombre"
275        </entry>            x="1" y="1"/>
276                  <entry name="searchProductByNameEntry"
277        <label text="Precio"            x="1" y="2" width="15">
278          x="21" y="1"/>  <!--           <trigger type="Pre-Focusout" src="searchProductTrigger" /> -->
279        <entry name="mensajeError" x="21" y="4" style="label"  width="40"/>          </entry>
       <entry name="priceInsertEntry" field="price.unit_price" rows="1"  
         x="21" y="2" width="20">  
       <trigger type="PRE-FOCUSIN" src="clearErrorMessages" />  
       </entry>  
       <button x="2" y="4" trigger="commitTrigger" width="14" label="aceptar"  
         name="commitBtn" height="1"/>  
280      </block>      </block>
281    </box>      <block name="searchProductByCodeBlock" datasource="searchProductByCodeDataSource" transparentBlock="">
282            <label text="Código"
283              x="21" y="1"/>
284            <entry name="searchProductByCodeEntry"
285              x="21" y="2" width="15" >
286            </entry>
287            <button x="37" y="2" trigger="searchProductTrigger" width="9" label="Buscar"
288                    name="searchBtn" height="1"/>
289            <button x="47" y="2" width="5" trigger="callProductTrigger"
290              label=" ... " name="priceTypeBtn" height="1">
291             <trigger type="NAMED" name="callProductTrigger">
292               #runForm('priceType-new.gfd', {'initId': str(clientBlock.priceTypeEntry)})
293               runForm('product.gfd')
294             </trigger>
295            </button>
296    
297         </block>
298    </box>
299    <!-- Parte oculta  -->
300        <!--búsqueda del arbol de lista de precios  -->
301        <datasource database="papo" name="treePriceTypeDataSource" table="_price_type_data">
302        <condition>
303          <null>  
304            <cfield name="_price_type_data._end_t"/>
305          </null>
306        </condition>
307        </datasource>
308          <block name="treePriceTypeBlock" datasource="treePriceTypeDataSource">
309            <entry name="treePriceTypeParentId"  field="parent" x="1"
310            y="2" width="40"  hidden=""/>
311            <entry name="treePriceTypeId" field="_table"  x="40" y="2" width="10" hidden="" />
312          </block>
313        <!--/busqueda del arbol de lista de precios raiz -->
314        <datasource database="papo" name="productResultDataSource"
315          table="product_code_type, _product_code_type_data, product_code, _product_code_data, product, _product_data, price, _price_data, price_type, _price_type_data"
316          historytable="_product_code_type_data, _product_code_data, _product_data , _price_data, _price_type_data"
317          order_by = "_product_data.canonical_name,price_type.id desc" >
318        <condition>
319          <and>
320            <eq>
321              <cfield name="product_code_type.id"/>
322              <cfield name="_product_code_type_data._table"/>
323            </eq>
324            <null>  
325               <cfield name="_product_code_type_data._end_t"/>
326            </null>
327            <eq>
328              <cfield name="product_code.id"/>
329              <cfield name="_product_code_data._table"/>
330            </eq>
331            <null>  
332               <cfield name="_product_code_data._end_t"/>
333            </null>
334            <eq>
335              <cfield name="product.id"/>
336              <cfield name="_product_data._table"/>
337            </eq>
338            <null>  
339               <cfield name="_product_data._end_t"/>
340            </null>
341            <eq>
342              <cfield name="price.id"/>
343              <cfield name="_price_data._table"/>
344            </eq>
345            <null>  
346               <cfield name="_price_data._end_t"/>
347            </null>
348            <eq>
349              <cfield name="price_type.id"/>
350              <cfield name="_price_type_data._table"/>
351            </eq>
352            <null>  
353               <cfield name="_price_type_data._end_t"/>
354            </null>
355            <eq>
356              <cfield name="product_code_type.id"/>
357              <cfield name="_product_code_data.product_code_type"/>
358            </eq>
359            <eq>
360              <cfield name="product.id"/>
361              <cfield name="_product_code_data.product"/>
362            </eq>
363            <eq>
364              <cfield name="product.id"/>
365              <cfield name="_price_data.product"/>
366            </eq>
367            <eq>
368              <cfield name="price_type.id"/>
369              <cfield name="_price_data.price_type"/>
370            </eq>
371          </and>
372        </condition>
373      </datasource>
374         <block  name="resultProductBlock" datasource="productResultDataSource">
375            <entry name="productNameListEntry" field="_product_data.canonical_name" x="1" y="1" width="15" rows="2" hidden=""/>
376            <entry name="productIdListEntry" field="_product_data._table" x="15" y="1" width="5" rows="2" hidden=""/>
377            <entry name="productCodeListEntry" field="_product_code_data.code" x="20" y="1" width="10" rows="2" hidden=""/>
378            <entry name="productCodeTypeListEntry" field="_product_code_data.product_code_type" x="30" y="1" width="5" rows="2" hidden=""/>
379            <entry name="productPriceTypeListEntry" field="_price_type_data.name" x="35 " y="1" width="10" rows="2" hidden=""/>
380            <entry name="productPriceTypeIdListEntry" field="_price_type_data._table" x="45" y="1" width="5" rows="2" hidden=""/>
381            <entry name="productPriceListEntry" field="_price_data.unit_price" x="50" y="1" width="20" rows="2" hidden=""/>
382          </block>
383       <!-- /parte oculta-->
384    <!-- ingreso visible -->
385     <datasource name="priceModifyDataSource" cache="100"/>
386      <box label="Modificacion de precios" x="0" y="8" height="14" width="84">
387          <block  name="priceModifyBlock" datasource="priceModifyDataSource">
388            <label name="priceModifyNameListLabel" text="Nombre" x="1" y="1"/>
389            <label name="priceModifyCodeListLabel" text="Código" x="20" y="1"/>
390            <label name="priceModifyPriceTypeListLabel" text="proviene de" x="35" y="1"/>
391            <label name="priceModifyPriceListLabel" text="Precio" x="55" y="1"/>
392            <entry name="priceModifyNameListEntry" x="1" y="2" width="20" rows="8"/>
393            <entry name="priceModifyCodeListEntry"  x="20" y="2" width="15" rows="8"/>
394            <entry name="priceModifyPriceTypeListEntry"  x="35 " y="2" width="20" rows="8"/>
395            <entry name="priceModifyPriceListEntry"  x="55" y="2" width="10" rows="8"/>
396            <entry name="priceModifyPricePreviousListEntry"  x="65" y="2"
397            width="10" rows="8" hidden=""/>
398            <entry name="priceModifyProductIdListEntry"  x="75" y="2"
399            width="5" rows="8" hidden=""/>
400            <entry name="priceModifyPriceListIdListEntry"  x="80" y="2"
401            width="5" rows="8" hidden=""/>
402            <scrollbar page="3" x="65" y="2" width="1" height="8"/>
403            <button x="1" y="11" trigger="priceModifyCommitTrigger" width="9" label="Aceptar"
404                    name="priceModifyCommitBtn" height="1"/>
405            <button x="11" y="11" trigger="priceModifyRollbackTrigger" width="9" label="Cancelar"
406                    name="priceModifyRollbackBtn" height="1"/>
407         </block>
408        </box>
409    <!-- /ingreso visible -->
410    <!-- carga oculta-->
411        <datasource database="papo" name="priceCommitDataSource" table="price, _price_data" historytable="_price_data">
412          <condition>
413          <and>
414            <eq>
415              <cfield name="price.id"/>
416              <cfield name="_price_data._table"/>
417            </eq>
418            <null>  
419              <cfield name="_price_data._end_t"/>
420            </null>
421          </and>
422          </condition>
423        </datasource>
424           <block name="priceCommitDataBlock" datasource="priceCommitDataSource">
425            <entry name="priceCommitProductIdEntry"  field="_price_data.product" x="1" y="2" width="20" hidden=""/>
426            <entry name="priceCommitPriceTypeEntry"  field="_price_data.price_type" x="20" y="2" width="20" hidden=""/>
427            <entry name="priceCommitPriceEntry"  field="_price_data.unit_price" x="40" y="2" width="20" hidden=""/>
428          </block>
429    
430    <!-- /carga oculta-->
431    </page>    </page>
   </form>  
432    </form>
433    
434    

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26