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

Diff of /papo/forms/client.gfd

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

revision 1.40 by apronotti, Wed Mar 12 20:01:16 2003 UTC revision 1.40.2.1 by anthonyl, Fri Mar 14 22:45:25 2003 UTC
# Line 1  Line 1 
1  <?xml version="1.0" encoding="ISO-8859-1"?>  <?xml version="1.0" encoding="ISO-8859-1"?>
2    
3  <form tabbed="top" title="Clientes" height="18" width="84">  <!--  GNUe Forms 0.5.0 Migration Tool
4  <!--   <maintoolbar enabled=""/> -->        Saved on: 2003-02-11 17:42:11  -->
5    <datasource name="focusDataSource" cache="1"/>  
6    <datasource name="searchDataSource" cache="1"/>  <form title="Clientes">
7    <datasource name="clientResultDataSource" database="papo"    <datasource name="telephoneDataSource" connection="papo"
8                table="_entity_data, _alien_entity_data, _persona_data, _client_data, entity_type_uid_conf, _entity_uid_data"                detaillink="_telephone_data.entity" historytable="_telephone_data" master="clientDataSource"
9                order_by="_entity_data.name">                masterlink="entity.id" table="telephone, _telephone_data">
10        <condition>
11          <and>
12            <eq>
13              <cfield name="telephone.id"/>
14              <cfield name="_telephone_data._table"/>
15            </eq>
16            <null>
17              <cfield name="_telephone_data._end_t"/>
18            </null>
19          </and>
20        </condition>
21      </datasource>
22      <datasource name="addressDataSource" connection="papo"
23                  detaillink="_address_data.entity" historytable="_address_data" master="clientDataSource"
24                  masterlink="entity.id" table="address, _address_data">
25        <condition>
26          <and>
27            <eq>
28              <cfield name="address.id"/>
29              <cfield name="_address_data._table"/>
30            </eq>
31            <null>
32              <cfield name="_address_data._end_t"/>
33            </null>
34          </and>
35        </condition>
36      </datasource>
37      <datasource name="priceTypeDataSource" connection="papo"
38                  table="_price_type_data">
39        <condition>
40          <and>
41            <eq>
42              <cfield name="_price_type_data.is_active"/>
43              <cconst value="S"/>
44            </eq>
45            <null>
46              <cfield name="_price_type_data._end_t"/>
47            </null>
48          </and>
49        </condition>
50      </datasource>
51      <datasource name="taxProfileDataSource" connection="papo"
52                  table="_tax_profile_data">
53        <condition>
54          <and>
55            <eq>
56              <cfield name="_tax_profile_data.tax"/>
57              <cconst value="1"/>
58            </eq>
59            <null>
60              <cfield name="_tax_profile_data._end_t"/>
61            </null>
62          </and>
63        </condition>
64      </datasource>
65      <datasource name="clientTaxProfileDataSource" connection="papo"
66                  detaillink="_persona_tax_profile_data.persona" historytable="_persona_tax_profile_data"
67                  master="clientDataSource" masterlink="entity.id"
68                  table="persona_tax_profile, _persona_tax_profile_data">
69        <condition>
70          <and>
71            <eq>
72              <cfield name="persona_tax_profile.id"/>
73              <cfield name="_persona_tax_profile_data._table"/>
74            </eq>
75            <null>
76              <cfield name="_persona_tax_profile_data._end_t"/>
77            </null>
78          </and>
79        </condition>
80      </datasource>
81      <datasource name="entityUIDTypeDataSource" connection="papo"
82                  table="_entity_uid_type_data">
83        <condition>
84          <null>
85            <cfield name="_entity_uid_type_data._end_t"/>
86          </null>
87        </condition>
88      </datasource>
89      <datasource name="entityUID_IB_DataSource" connection="papo"
90                  detaillink="_entity_uid_data.entity" historytable="_entity_uid_data" master="clientDataSource"
91                  masterlink="entity.id" table="entity_uid, _entity_uid_data">
92        <condition>
93          <and>
94            <eq>
95              <cfield name="entity_uid.id"/>
96              <cfield name="_entity_uid_data._table"/>
97            </eq>
98            <eq>
99              <cfield name="_entity_uid_data.entity_uid_type"/>
100              <cconst value="2"/>
101            </eq>
102            <null>
103              <cfield name="_entity_uid_data._end_t"/>
104            </null>
105          </and>
106        </condition>
107      </datasource>
108      <datasource name="entityUID_CUIT_DataSource" connection="papo"
109                  detaillink="_entity_uid_data.entity" historytable="_entity_uid_data" master="clientDataSource"
110                  masterlink="entity.id" table="entity_uid, _entity_uid_data">
111        <condition>
112          <and>
113            <eq>
114              <cfield name="entity_uid.id"/>
115              <cfield name="_entity_uid_data._table"/>
116            </eq>
117            <eq>
118              <cfield name="_entity_uid_data.entity_uid_type"/>
119              <cconst value="1"/>
120            </eq>
121            <null>
122              <cfield name="_entity_uid_data._end_t"/>
123            </null>
124          </and>
125        </condition>
126      </datasource>
127      <datasource name="movementTypeDataSource" connection="papo"
128                  table="_movement_type_data">
129        <condition>
130          <null>
131            <cfield name="_movement_type_data._end_t"/>
132          </null>
133        </condition>
134      </datasource>
135      <datasource name="creditLimit1DataSource" connection="papo"
136                  detaillink="_credit_limit_data.entity" historytable="_credit_limit_data" master="clientDataSource"
137                  masterlink="entity.id" table="credit_limit, _credit_limit_data">
138        <condition>
139          <and>
140            <eq>
141              <cfield name="credit_limit.id"/>
142              <cfield name="_credit_limit_data._table"/>
143            </eq>
144            <eq>
145              <cfield name="_credit_limit_data.movement_type"/>
146              <cconst value="1"/>
147            </eq>
148            <null>
149              <cfield name="_credit_limit_data._end_t"/>
150            </null>
151          </and>
152        </condition>
153      </datasource>
154      <datasource name="clientDataSource" connection="papo"
155                  historytable="_entity_data, _alien_entity_data, _persona_data, _client_data"
156                  table="entity, _entity_data, alien_entity, _alien_entity_data, persona, _persona_data, client, _client_data">
157      <condition>      <condition>
158        <and>        <and>
159          <eq>          <eq>
160              <cfield name="entity.id"/>
161            <cfield name="_entity_data._table"/>            <cfield name="_entity_data._table"/>
           <cfield name="_alien_entity_data.entity"/>  
162          </eq>          </eq>
163          <eq>          <eq>
164              <cfield name="alien_entity.id"/>
165            <cfield name="_alien_entity_data._table"/>            <cfield name="_alien_entity_data._table"/>
           <cfield name="_persona_data.alien_entity"/>  
166          </eq>          </eq>
167          <eq>          <eq>
168              <cfield name="persona.id"/>
169            <cfield name="_persona_data._table"/>            <cfield name="_persona_data._table"/>
           <cfield name="_client_data.persona"/>  
170          </eq>          </eq>
171          <eq>          <eq>
172           <cfield name="_entity_data._table"/>            <cfield name="client.id"/>
173            <cfield name="_entity_uid_data.entity"/>            <cfield name="_client_data._table"/>
174          </eq>          </eq>
175          <eq>          <eq>
176           <cfield name="_entity_data.entity_type"/>            <cfield name="entity.id"/>
177           <cfield name="entity_type_uid_conf.entity_type"/>            <cfield name="_alien_entity_data.entity"/>
178            </eq>
179            <eq>
180              <cfield name="alien_entity.id"/>
181              <cfield name="_persona_data.alien_entity"/>
182          </eq>          </eq>
183          <eq>          <eq>
184           <cfield name="_entity_uid_data.entity_uid_type"/>            <cfield name="persona.id"/>
185           <cfield name="entity_type_uid_conf.entity_uid_type"/>            <cfield name="_client_data.persona"/>
186          </eq>          </eq>
187          <null>          <null>
188            <cfield name="_entity_data._end_t"/>            <cfield name="_entity_data._end_t"/>
# Line 45  Line 196 
196          <null>          <null>
197            <cfield name="_client_data._end_t"/>            <cfield name="_client_data._end_t"/>
198          </null>          </null>
         <null>  
           <cfield name="_entity_uid_data._end_t"/>  
         </null>  
199        </and>        </and>
200      </condition>      </condition>
201    </datasource>    </datasource>
202      <datasource name="clientResultDataSource" connection="papo"
203    <datasource name="clientDataSource" database="papo"                historytable="_entity_data, _alien_entity_data, _persona_data, _client_data" order_by="_entity_data.name"
204                table="entity, _entity_data, alien_entity, _alien_entity_data, persona, _persona_data, client, _client_data"                table="entity, _entity_data, alien_entity, _alien_entity_data, persona, _persona_data, client, _client_data">
               historytable="_entity_data, _alien_entity_data, _persona_data, _client_data">  
205      <condition>      <condition>
206        <and>        <and>
207          <eq>          <eq>
# Line 100  Line 247 
247        </and>        </and>
248      </condition>      </condition>
249    </datasource>    </datasource>
250      <datasource name="searchDataSource" cache="1"/>
251    <datasource name="creditLimit1DataSource" database="papo"    <datasource name="focusDataSource" cache="1"/>
     detaillink="_credit_limit_data.entity" master="clientDataSource"  
     masterlink="entity.id" table="credit_limit, _credit_limit_data" historytable="_credit_limit_data">  
     <condition>  
     <and>  
       <eq>  
         <cfield name="credit_limit.id"/>  
         <cfield name="_credit_limit_data._table"/>  
       </eq>  
       <eq>  
         <cfield name="_credit_limit_data.movement_type"/>  
         <cconst value="1"/>  
       </eq>  
       <null>  
          <cfield name="_credit_limit_data._end_t"/>  
       </null>  
     </and>  
     </condition>  
   </datasource>  
   
   <datasource name="movementTypeDataSource" database="papo" table="_movement_type_data">  
     <condition>  
       <null>  
         <cfield name="_movement_type_data._end_t"/>  
       </null>  
     </condition>  
   </datasource>  
   
   <datasource name="entityUID_CUIT_DataSource" database="papo"  
     detaillink="_entity_uid_data.entity" master="clientDataSource"  
     masterlink="entity.id" table="entity_uid, _entity_uid_data" historytable="_entity_uid_data">  
     <condition>  
     <and>  
       <eq>  
         <cfield name="entity_uid.id"/>  
         <cfield name="_entity_uid_data._table"/>  
       </eq>  
       <eq>  
         <cfield name="_entity_uid_data.entity_uid_type"/>  
         <cconst value="1"/>  
       </eq>  
       <null>  
          <cfield name="_entity_uid_data._end_t"/>  
       </null>  
     </and>  
     </condition>  
   </datasource>  
   
   <datasource name="entityUID_IB_DataSource" database="papo"  
     detaillink="_entity_uid_data.entity" master="clientDataSource"  
     masterlink="entity.id" table="entity_uid, _entity_uid_data" historytable="_entity_uid_data">  
     <condition>  
     <and>  
       <eq>  
         <cfield name="entity_uid.id"/>  
         <cfield name="_entity_uid_data._table"/>  
       </eq>  
       <eq>  
         <cfield name="_entity_uid_data.entity_uid_type"/>  
         <cconst value="2"/>  
       </eq>  
       <null>  
          <cfield name="_entity_uid_data._end_t"/>  
       </null>  
     </and>  
     </condition>  
   </datasource>  
   
   <datasource name="entityUIDTypeDataSource" database="papo" table="_entity_uid_type_data">  
     <condition>  
       <null>  
         <cfield name="_entity_uid_type_data._end_t"/>  
       </null>  
     </condition>  
   </datasource>  
   
   <datasource name="clientTaxProfileDataSource" database="papo"  
     detaillink="_persona_tax_profile_data.persona" master="clientDataSource"  
     masterlink="entity.id" table="persona_tax_profile, _persona_tax_profile_data" historytable="_persona_tax_profile_data">  
     <condition>  
     <and>  
       <eq>  
         <cfield name="persona_tax_profile.id"/>  
         <cfield name="_persona_tax_profile_data._table"/>  
       </eq>  
       <null>  
          <cfield name="_persona_tax_profile_data._end_t"/>  
       </null>  
     </and>  
     </condition>  
   </datasource>  
   
   <datasource name="taxProfileDataSource" database="papo" table="_tax_profile_data">  
     <condition>  
     <and>  
       <eq>  
         <cfield name="_tax_profile_data.tax"/>  
         <cconst value="1"/>  
       </eq>  
       <null>  
         <cfield name="_tax_profile_data._end_t"/>  
       </null>  
     </and>  
     </condition>  
   </datasource>  
   
   <datasource name="priceTypeDataSource" database="papo" table="_price_type_data">  
     <condition>  
     <and>  
       <eq>  
         <cfield name="_price_type_data.is_active"/>  
         <cconst value="S"/>  
       </eq>  
       <null>  
         <cfield name="_price_type_data._end_t"/>  
       </null>  
     </and>  
     </condition>  
   </datasource>  
   
   <datasource name="addressDataSource"  
     database="papo" table="address, _address_data" historytable="_address_data"  
     master="clientDataSource" masterlink="entity.id" detaillink="_address_data.entity">  
     <condition>  
     <and>  
       <eq>  
         <cfield name="address.id"/>  
         <cfield name="_address_data._table"/>  
       </eq>  
       <null>  
         <cfield name="_address_data._end_t"/>  
       </null>  
     </and>  
     </condition>  
   </datasource>  
   
   <datasource name="telephoneDataSource"  
     database="papo" table="telephone, _telephone_data" historytable="_telephone_data"  
     master="clientDataSource" masterlink="entity.id" detaillink="_telephone_data.entity">  
     <condition>  
     <and>  
       <eq>  
         <cfield name="telephone.id"/>  
         <cfield name="_telephone_data._table"/>  
       </eq>  
       <null>  
         <cfield name="_telephone_data._end_t"/>  
       </null>  
     </and>  
     </condition>  
   </datasource>  
   
252    <trigger name="commitTrigger" type="NAMED"><![CDATA[    <trigger name="commitTrigger" type="NAMED"><![CDATA[
     print 'commitTrigger'  
253      if not str(clientBlock.priceTypeEntry):      if not str(clientBlock.priceTypeEntry):
254          clientBlock.priceTypeEntry = "1"        clientBlock.priceTypeEntry = "1"  
255      if clientBlock.getCurrentRecord().isInserted():      if clientBlock.getCurrentRecord().isInserted():
256          # entity_type 7 es cliente        creditLimit1Block.newRecord()
257          clientBlock.clientEntityTypeEntry = 7        creditLimit1Block.movementTypeEntry = 1
258          creditLimit1Block.newRecord()        creditLimit1Block.creditLimitEntry = "0.0"
259          creditLimit1Block.movementTypeEntry = 1        clientUID_CUIT_Block.newRecord()
260          creditLimit1Block.creditLimitEntry = "0.0"        clientUID_CUIT_Block.uid_CUIT_TypeEntry = 1
261          clientUID_CUIT_Block.newRecord()        clientUID_IB_Block.newRecord()
262          clientUID_CUIT_Block.uid_CUIT_TypeEntry = 1        clientUID_IB_Block.uid_IB_TypeEntry = 2
263          clientUID_IB_Block.newRecord()        clientTaxProfileBlock.newRecord()
264          clientUID_IB_Block.uid_IB_TypeEntry = 2        clientBlock.commit()
265          clientTaxProfileBlock.newRecord()        clientBlock.gotoRecord(2)
266          clientBlock.commit()        tmpId = str(clientBlock.clientIdEntry)
267          tmpId = str(clientBlock.clientIdEntry)        clientBlock.rollback()
268          clientBlock.processRollback()        clientBlock.initQuery()
269          clientBlock.initQuery()        clientBlock.clientIdEntry = tmpId
270          clientBlock.clientIdEntry = tmpId        clientBlock.executeQuery()
         clientBlock.processQuery()  
271      else:      else:
272          clientBlock.commit()        clientBlock.commit()
     callTrigger("showClientPriceTypeTrigger")  
273    ]]></trigger>    ]]></trigger>
   
274    <trigger name="clientDeleteTrigger" type="NAMED"><![CDATA[    <trigger name="clientDeleteTrigger" type="NAMED"><![CDATA[
275      clientBlock.deleteRecord()      clientBlock.deleteRecord()
276      clientBlock.commit()      clientBlock.commit()
277    ]]></trigger>    ]]></trigger>
   
278    <trigger name="clientRollbackTrigger" type="NAMED"><![CDATA[    <trigger name="clientRollbackTrigger" type="NAMED"><![CDATA[
279      import hack      import hack
280      hack.rollback(clientBlock)      hack.rollback(clientBlock)
281    ]]></trigger>    ]]></trigger>
   
282    <trigger name="askForChangesTrigger" type="NAMED"><![CDATA[    <trigger name="askForChangesTrigger" type="NAMED"><![CDATA[
283      import hack      import hack
284      hack.confirmPageChanges(self, 'commitTrigger', clientBlock)      hack.confirmPageChanges(self, 'commitTrigger', clientBlock)
285    ]]></trigger>    ]]></trigger>
   
286    <trigger name="telephoneDeleteTrigger" type="NAMED"><![CDATA[    <trigger name="telephoneDeleteTrigger" type="NAMED"><![CDATA[
287      telephoneBlock.deleteRecord()      telephoneBlock.deleteRecord()
288      telephoneBlock.commit()      telephoneBlock.commit()
289    ]]></trigger>    ]]></trigger>
   
290    <trigger name="telephoneRollbackTrigger" type="NAMED"><![CDATA[    <trigger name="telephoneRollbackTrigger" type="NAMED"><![CDATA[
291      import hack      import hack
292      hack.rollback(telephoneBlock)      hack.rollback(telephoneBlock)
293    ]]></trigger>    ]]></trigger>
   
294    <trigger name="addressDeleteTrigger" type="NAMED"><![CDATA[    <trigger name="addressDeleteTrigger" type="NAMED"><![CDATA[
295      addressBlock.deleteRecord()      addressBlock.deleteRecord()
296      addressBlock.commit()      addressBlock.commit()
297    ]]></trigger>    ]]></trigger>
   
298    <trigger name="addressRollbackTrigger" type="NAMED"><![CDATA[    <trigger name="addressRollbackTrigger" type="NAMED"><![CDATA[
299      import hack      import hack
300      hack.rollback(addressBlock)      hack.rollback(addressBlock)
301    ]]></trigger>    ]]></trigger>
   
302    <trigger name="creditLimitRollbackTrigger" type="NAMED"><![CDATA[    <trigger name="creditLimitRollbackTrigger" type="NAMED"><![CDATA[
303      # why this is different from the others?      creditLimit1Block.rollback(1)
     creditLimit1Block.processRollback(1)  
304    ]]></trigger>    ]]></trigger>
   
305    <trigger name="uidRollbackTrigger" type="NAMED"><![CDATA[    <trigger name="uidRollbackTrigger" type="NAMED"><![CDATA[
306      from hack import rollback      clientUID_CUIT_Block.rollback(1)
307            clientUID_IB_Block.rollback(1)
308      rollback(clientUID_IB_Block)      clientTaxProfileBlock.rollback(1)
     rollback(clientUID_CUIT_Block)  
     rollback(clientTaxProfileBlock)  
309    ]]></trigger>    ]]></trigger>
   
310    <trigger name="printTrigger" type="NAMED"><![CDATA[    <trigger name="printTrigger" type="NAMED"><![CDATA[
311    import tempfile      import os
312    import os      os.system("grcvs -D file -d ~/tmp/client.html --filter html ../report/client.grd")
313        os.system("galeon -w ~/tmp/client.html")
314    try:    ]]></trigger>
315        # gnue version <= 0.4    <trigger name="searchTrigger" type="NAMED"><![CDATA[
316        from gnue.forms.GFEvent import GFEvent      clientResultBlock.rollback()
317    except ImportError:      clientResultBlock.initQuery()
318        # gnue version >= 0.5      clientResultBlock.nameListEntry = ("%s" % clientSearchBlock.searchNameEntry)+"%"
319        from gnue.common.events.Event import Event as GFEvent      clientResultBlock.executeQuery()
320      ]]></trigger>
321    # busy clock    <logic>
322    self._object.dispatchEvent(GFEvent('beginWAIT'))      <block name="clientSearchBlock" datasource="searchDataSource"
323    file = tempfile.mktemp('.client.html')             restrictInsert="">
324    os.system("grcvs -D file -d %s --filter html ../report/client.grd" % file)        <field name="searchNameEntry"/>
   os.system(gConfig('PrintCommand') % (file))  
   os.unlink(file)  
   
   self._object.dispatchEvent(GFEvent('endWAIT'))  
   
   ]]></trigger>  
   
   <trigger type="NAMED" name="searchTrigger"><![CDATA[  
   try:  
       from gnue.forms.GFEvent import GFEvent  
   except ImportError:  
       from gnue.common.events.Event import Event as GFEvent  
   
   setStatusText('buscando...')  
   
   self._object.dispatchEvent(GFEvent('beginWAIT'))  
   
   clientResultBlock.processRollback()  
   clientResultBlock.initQuery()  
   if str(clientSearchBlock.searchCodeEntry):  
       clientResultBlock.codeListEntry = str(clientSearchBlock.searchCodeEntry)+'%'  
   if str(clientSearchBlock.searchNameEntry):  
       clientResultBlock.nameListEntry = '%s%%' % clientSearchBlock.searchNameEntry  
   clientResultBlock.processQuery()  
   
   setStatusText('Ok')  
   self._object.dispatchEvent(GFEvent('endWAIT'))  
   
   if clientResultBlock.isEmpty():  
       clientSearchBlock.notificationEntry = ' no se encontraron registros'  
   else:  
       clientSearchBlock.notificationEntry ='%6d registros encontrados' % clientResultBlock.getRecordCount()  
   
   ]]></trigger>  
     
     <trigger type="NAMED" name="clientPageFocusInTrigger"><![CDATA[  
     if str(clientResultBlock.clientIdREntry)!='':  
       # this is needed for updating some fields, like price_type there below  
       print clientBlock.priceTypeEntry  
       if str(clientBlock.priceTypeEntry)!='':  
         # look for the name...  
         searchingPriceTypeBlock.processRollback ()  
         searchingPriceTypeBlock.initQuery ()  
         searchingPriceTypeBlock.idEntry= str(clientBlock.priceTypeEntry)  
         searchingPriceTypeBlock.processQuery ()  
   
         # ... and show it  
         clientBlock.priceTypeNameEntry= str(searchingPriceTypeBlock.nameEntry)  
       else:  
         clientBlock.priceTypeNameEntry= ''  
     ]]></trigger>  
   
     <trigger type="NAMED" name="showClientPriceTypeTrigger"><![CDATA[  
       # this is needed for updating some fields, like price_type there below  
       if str(clientBlock.priceTypeEntry)!='':  
         # look for the name...  
         searchingPriceTypeBlock.processRollback ()  
         searchingPriceTypeBlock.initQuery ()  
         searchingPriceTypeBlock.idEntry= str(clientBlock.priceTypeEntry)  
         searchingPriceTypeBlock.processQuery ()  
   
         # ... and show it  
         clientBlock.priceTypeNameEntry= str(searchingPriceTypeBlock.nameEntry)  
     ]]></trigger>  
   
   <page name="Clientes">  
   <trigger type="Pre-Focusout"><![CDATA[  
    clientBlock.processRollback()  
    if clientResultBlock.getRecordCount() > 0 and not clientResultBlock.getCurrentRecord().isEmpty():  
      clientBlock.initQuery()  
      clientBlock.clientIdEntry = ("%s" % clientResultBlock.clientIdREntry)  
      clientBlock.processQuery()  
   ]]></trigger>  
   
     <block name="clientSearchBlock" datasource="searchDataSource" transparentBlock="" restrictInsert="">  
       <label text="Datos a buscar:" x="1" y="1"/>  
       <label text="nombre o razón social" x="1" y="2" />  
       <label text="               código" x="1" y="3"/>  
       <entry name="searchNameEntry" x="24" y="2" width="55"/>  
       <entry name="searchCodeEntry" x="24" y="3" width="35"/>  
       <entry style="label" name="notificationEntry" x="1" y="19" width="67"/>  
       <button x="70" y="3" trigger="searchTrigger" width="9" label="Buscar" name="searchBtn" height="1"/>  
       <button x="69" y="19" trigger="printTrigger" width="10" label="Imprimir" name="printBtn" height="1"/>  
325      </block>      </block>
326      <block name="clientResultBlock" datasource="clientResultDataSource">      <block name="clientResultBlock" datasource="clientResultDataSource">
327        <entry name="clientIdREntry" field="_entity_data._table" hidden="" x="1" y="1" width="20" />        <field name="clientIdREntry" field="entity.id"/>
328        <label text="Resultado" x="1" y="4"/>        <field name="nameListEntry" field="_entity_data.name"/>
       <entry name="codeListEntry" field="_entity_uid_data.uid" x="1" y="5" width="20" rows="14"/>  
       <entry name="nameListEntry" field="_entity_data.name" x="21" y="5" width="58" rows="14"/>  
       <scrollbar page="12" x="80" y="5" width="1" height="14"/>  
329      </block>      </block>
330        <block name="clientBlock" datasource="clientDataSource">
331    </page>        <field name="clientIdEntry" field="entity.id"/>
332    <page name="Cliente">        <field name="nameEntry" field="_entity_data.name"/>
333      <!-- new_schema_begin -->        <field name="scoreEntry" default="0" field="_client_data.score"
334      <block name="searchingPriceTypeBlock" datasource="priceTypeDataSource">               typecast="number"/>
335        <entry name="idEntry" field="_table"        <field name="priceTypeEntry" field="_client_data.price_type"
336          x="1" y="1" hidden="y"/>               fk_description="name" fk_key="_table" fk_source="priceTypeDataSource"/>
337        <entry name="nameEntry" field="name"        <field name="obs" field="_entity_data.observations"/>
338          x="1" y="1" hidden="y"/>      </block>
339      </block>      <block name="addressClientBlock" datasource="clientDataSource">
340      <trigger type="Pre-Focusin" src="clientPageFocusInTrigger"/>        <field name="name" field="_entity_data.name" readonly=""/>
341      <!-- new_schema_end -->      </block>
342      <trigger type="Pre-Focusout" src="askForChangesTrigger"/>      <block name="addressBlock" datasource="addressDataSource">
343      <box label="Datos"        <field name="address" field="_address_data.address"/>
344          x="0" y="0" height="20" width="64">      </block>
345        <block name="clientBlock" datasource="clientDataSource" restrictInsert="y">      <block name="clientTelephoneBlock" datasource="clientDataSource">
346          <entry name="clientIdEntry" field="entity.id" hidden=""        <field name="name1" field="_entity_data.name" readonly=""/>
347            x="1" y="1" width="20"/>      </block>
348          <entry name="clientEntityTypeEntry" field="_entity_data.entity_type" hidden=""      <block name="telephoneBlock" datasource="telephoneDataSource">
349            x="1" y="1" width="20"/>        <field name="telephone" field="_telephone_data.telephone"/>
350          <label text="Nombre o Razón Social"      </block>
351            x="1" y="1"/>      <block name="clientCreditLimitBlock" datasource="clientDataSource">
352          <entry name="nameEntry" field="_entity_data.name"        <field name="name2" field="_entity_data.name" readonly=""/>
353            x="1" y="2" width="40"/>      </block>
354          <button name="newButton" label="Nuevo" trigger="newTrigger"      <block name="creditLimit1Block" datasource="creditLimit1DataSource"
355            x="42" y="2" width="9" height="1">             restrictInsert="">
356            <trigger name="newTrigger" type="NAMED"><![CDATA[        <field name="movementTypeEntry" field="_credit_limit_data.movement_type"/>
357              from hack import confirmRollback        <field name="movementTypeEntry1"
358                 field="_credit_limit_data.movement_type" fk_description="name" fk_key="id"
359              confirmRollback (self, clientBlock, 'commitTrigger', clientBlock.nameEntry)               fk_source="movementTypeDataSource" readonly=""/>
360            ]]></trigger>        <field name="creditLimitEntry" field="_credit_limit_data.credit_limit"/>
361          </button>      </block>
362          <label text="Puntaje"      <block name="clientCreditLimitBlock1" datasource="clientDataSource">
363            x="1" y="3"/>        <field name="name3" field="_entity_data.name" readonly=""/>
364          <entry name="scoreEntry" field="_client_data.score" typecast="number" default="0"      </block>
365            x="1" y="4" width="10"/>      <block name="clientUID_CUIT_Block" datasource="entityUID_CUIT_DataSource"
366          <label text="Lista de precios asociada "             restrictInsert="">
367            x="1" y="5"/>        <field name="uid_CUIT_TypeEntry"
368          <entry name="priceTypeEntry" field="_client_data.price_type"               field="_entity_uid_data.entity_uid_type" fk_description="name" fk_key="id"
369            x="1" y="1" hidden="y"/>               fk_source="entityUIDTypeDataSource" readonly=""/>
370          <entry name="priceTypeNameEntry"        <field name="uidEntry" field="_entity_uid_data.uid">
371            x="1" y="6" width="35"/>          <trigger type="PRE-FOCUSOUT"><![CDATA[
         <button x="37" y="6" width="10" trigger="searchPriceTypeTrigger"  
           label="Buscar" name="priceTypeBtn" height="1">  
           <!-- new_schema_begin -->  
           <trigger type="NAMED" name="searchPriceTypeTrigger"><![CDATA[  
             def setPriceType (recNo):  
               if recNo>=0:  
                 searchingPriceTypeBlock.jumpRecord (recNo)  
                 clientBlock.priceTypeEntry=     str(searchingPriceTypeBlock.idEntry)  
                 clientBlock.priceTypeNameEntry= str(searchingPriceTypeBlock.nameEntry)  
   
             try:  
                 # gnue version <= 0.4  
                 from gnue.forms.GFEvent import GFEvent  
             except ImportError:  
                 # gnue version >= 0.5  
                 from gnue.common.events.Event import Event as GFEvent  
   
             # busy clock  
             self._object.dispatchEvent(GFEvent('beginWAIT'))  
             setStatusText('buscando...')  
   
             # look for the name...  
             searchingPriceTypeBlock.processRollback ()  
             searchingPriceTypeBlock.initQuery ()  
             searchingPriceTypeBlock.nameEntry= str(clientBlock.priceTypeNameEntry)+'%'  
             searchingPriceTypeBlock.processQuery ()  
   
             # are there too much results?  
             resultCount= searchingPriceTypeBlock.getRecordCount ()  
             if resultCount>1:  
               # do the select-man  
               runForm ('priceTypeSelect.gfd', {  
                 'data': searchingPriceTypeBlock,  
                 'callback': setPriceType  
               })  
               setStatusText('Ok')  
             elif resultCount==1:  
               setPriceType (0)  
               setStatusText('Ok')  
             else:  
               setStatusText(' no se encontraron registros')  
   
             self._object.dispatchEvent(GFEvent('endWAIT'))  
           ]]></trigger>  
           <!-- new_schema_end -->  
         </button>  
         <button x="49" y="6" width="5" trigger="callPriceTypeTrigger"  
           label=" ... " name="priceTypeBtn" height="1">  
           <trigger type="NAMED" name="callPriceTypeTrigger">  
             runForm('priceType.gfd')  
           </trigger>  
         </button>  
         <label text="Observaciones"  
           x="1" y="7"/>  
         <entry name="obs" field="_entity_data.observations"  
           x="1" y="8" width="25" height="5"/>  
         <button x="1" y="17" trigger="commitTrigger" width="9" label="Aceptar"  
                 name="clientCommitBtn" height="1"/>  
         <button x="11" y="17" trigger="clientDeleteTrigger" width="9" label="Borrar"  
                 name="clientDeleteBtn" height="1"/>  
         <button x="21" y="17" trigger="clientRollbackTrigger" width="9" label="Cancelar"  
                 name="clientRollbackBtn" height="1"/>  
       </block>  
   
     </box>  
   </page>  
   
   <page name="Direcciones">  
   <trigger type="Pre-Focusout" src="askForChangesTrigger"/>  
     <box label="Direcciones"  
      x="0" y="0" height="5" width="64">  
      <block name="addressClientBlock" datasource="clientDataSource">  
         <label text="Nombre o Razón Social"  
           x="1" y="1"/>  
         <entry name="name" field="_entity_data.name" readonly=""  
           x="1" y="2" width="40">  
         </entry>  
      </block>  
     </box>  
     <box label="Direcciones"  
       x="0" y="5" height="15" width="64">  
       <block name="addressBlock" datasource="addressDataSource">  
         <label text="Direcciones"  
           x="1" y="1"/>  
         <entry name="address" field="_address_data.address" rows="4"  
           x="1" y="2" width="39"/>  
         <scrollbar page="4"  
           x="41" y="2" width="1" height="4"/>  
         <button x="1" y="12" trigger="commitTrigger" width="9" label="Aceptar"  
                 name="addressCommitBtn" height="1"/>  
         <button x="11" y="12" trigger="addressDeleteTrigger" width="9" label="Borrar"  
                 name="addressDeleteBtn" height="1"/>  
         <button x="21" y="12" trigger="addressRollbackTrigger" width="9" label="Cancelar"  
                 name="addressRollbackBtn" height="1"/>  
       </block>  
     </box>  
   </page>  
     
   <page name="Teléfonos">  
   <trigger type="Pre-Focusout" src="askForChangesTrigger"/>  
     <box label="Teléfonos"  
         x="0" y="0" height="5" width="64">  
      <block name="clientTelephoneBlock" datasource="clientDataSource">  
         <label text="Nombre o Razón Social"  
           x="1" y="1"/>  
         <entry name="name" field="_entity_data.name" readonly=""  
           x="1" y="2" width="40"/>  
      </block>  
     </box>  
     <box label="Teléfonos"  
       x="0" y="5" height="15" width="64">  
       <block name="telephoneBlock" datasource="telephoneDataSource">  
         <label text="Teléfonos"  
           x="1" y="1"/>  
         <entry name="telephone" field="_telephone_data.telephone" rows="4"  
           x="1" y="2" width="39"/>  
         <scrollbar page="4"  
           x="41" y="2" width="1" height="4"/>  
         <button x="1" y="12" trigger="commitTrigger" width="9" label="Aceptar"  
                 name="telephoneCommitBtn" height="1"/>  
         <button x="11" y="12" trigger="telephoneDeleteTrigger" width="9" label="Borrar"  
                 name="telephoneDeleteBtn" height="1"/>  
         <button x="21" y="12" trigger="telephoneRollbackTrigger" width="9" label="Cancelar"  
                 name="telephoneRollbackBtn" height="1"/>  
       </block>  
     </box>  
   </page>  
     
   <page name="Límites crédito">  
   <trigger type="Pre-Focusout" src="askForChangesTrigger"/>  
     <box label="Límites de Crédito"  
         x="0" y="0" height="5" width="64">  
      <block name="clientCreditLimitBlock" datasource="clientDataSource">  
         <label text="Nombre o Razón Social"  
           x="1" y="1"/>  
         <entry name="name" field="_entity_data.name" readonly=""  
           x="1" y="2" width="40"/>  
      </block>  
     </box>  
     <box label="Tipos de límite Crédito"  
         x="0" y="5" height="15" width="64">  
       <block name="creditLimit1Block"  
         datasource="creditLimit1DataSource" restrictInsert="">  
         <entry name="movementTypeEntry" field="_credit_limit_data.movement_type" hidden=""  
           x="1" y="1" width="14"/>  
         <entry x="1" y="3" field="_credit_limit_data.movement_type"  
           name="movementTypeEntry"  
           width="24" style="textlookup" readonly="" foreign_key="movementTypeDataSource.id"  
           foreign_key_description="name" />  
         <entry name="creditLimitEntry" field="_credit_limit_data.credit_limit"  
           x="26" y="3" width="14"/>  
         <button x="1" y="12" trigger="commitTrigger" width="9" label="Aceptar"  
                 name="creditLimitCommitBtn" height="1"/>  
         <button x="11" y="12" trigger="creditLimitRollbackTrigger" width="9" label="Cancelar"  
                 name="creditLimitRollbackBtn" height="1"/>  
       </block>  
     </box>  
   </page>  
   <page name="Datos Impositivos">  
   <trigger type="Pre-Focusout" src="askForChangesTrigger"/>  
     <box label="Datos Impositivos"  
         x="0" y="0" height="5" width="64">  
      <block name="clientCreditLimitBlock" datasource="clientDataSource">  
         <label text="Nombre o Razón Social"  
           x="1" y="1"/>  
         <entry name="name" field="_entity_data.name" readonly=""  
           x="1" y="2" width="40"/>  
      </block>  
     </box>  
     <box label=""  
         x="0" y="5" height="15" width="64">  
      <block name="clientUID_CUIT_Block" datasource="entityUID_CUIT_DataSource" restrictInsert="">  
         <entry x="1" y="1" field="_entity_uid_data.entity_uid_type"  
           name="uid_CUIT_TypeEntry"  
           width="19" style="textlookup" readonly="" foreign_key="entityUIDTypeDataSource.id"  
           foreign_key_description="name"/>  
         <entry name="uidEntry" field="_entity_uid_data.uid"  
           x="20" y="1" width="24">  
           <trigger type="PRE-FOCUSOUT"><![CDATA[  
372              from cuit import validate              from cuit import validate
373    
374              if not validate (str(clientUID_CUIT_Block.uidEntry)):              if not validate (str(clientUID_CUIT_Block.uidEntry)):
375                form.genericBox ('El CUIT es inválido', ['Aceptar'])                form.genericBox ('El CUIT es inválido', ['Aceptar'])
376            ]]></trigger>            ]]></trigger>
377          </entry>        </field>
378       </block>      </block>
379       <block name="clientUID_IB_Block" datasource="entityUID_IB_DataSource">      <block name="clientUID_IB_Block" datasource="entityUID_IB_DataSource">
380          <entry x="1" y="2" field="_entity_uid_data.entity_uid_type"        <field name="uid_IB_TypeEntry" field="_entity_uid_data.entity_uid_type"
381            name="uid_IB_TypeEntry"               fk_description="name" fk_key="id" fk_source="entityUIDTypeDataSource" readonly=""/>
382            width="19" style="textlookup" readonly="" foreign_key="entityUIDTypeDataSource.id"        <field name="uidEntry1" field="_entity_uid_data.uid"/>
383            foreign_key_description="name" />      </block>
384          <entry name="uidEntry" field="_entity_uid_data.uid"      <block name="clientTaxProfileBlock"
385            x="20" y="2" width="24"/>             datasource="clientTaxProfileDataSource">
386       </block>        <field name="taxProfileEntry"
387       <block name="clientTaxProfileBlock" datasource="clientTaxProfileDataSource">               field="_persona_tax_profile_data.tax_profile" fk_description="profile" fk_key="_table"
388          <label text="Categoría en IVA"               fk_source="taxProfileDataSource"/>
389            x="1" y="4"/>      </block>
390          <entry x="1" y="5" field="_persona_tax_profile_data.tax_profile"    </logic>
391            name="taxProfileEntry"    <layout xmlns:c="GNUe:Layout:Char" c:height="21" tabbed="top" c:width="84">
392            width="35" style="dropdown" foreign_key="taxProfileDataSource._table"      <page name="Clientes">
393            foreign_key_description="profile" />        <trigger type="Pre-Focusout"><![CDATA[
394       </block>     clientBlock.rollback()
395       <button x="1" y="12" trigger="commitTrigger" width="9" label="Aceptar"     if clientResultBlock.getRecordCount() > 0 and not clientResultBlock.getCurrentRecord().isEmpty():
396                  name="uidCommitBtn" height="1"/>       clientBlock.initQuery()
397       <button x="11" y="12" trigger="uidRollbackTrigger" width="9" label="Cancelar"       clientBlock.clientIdEntry = ("%s" % clientResultBlock.clientIdREntry)
398                  name="uidRollbackBtn" height="1"/>       clientBlock.executeQuery()
399      </box>    ]]></trigger>
400    </page>        <label text="Nombre o Razón Social a buscar" c:x="1" c:y="1"/>
401          <entry block="clientSearchBlock" field="searchNameEntry" c:width="35"
402                 c:x="1" c:y="2"/>
403          <button name="searchBtn" c:height="1" label="Buscar" c:width="9"
404                  c:x="36" c:y="2">
405            <trigger src="searchTrigger" type="On-Action"/>
406          </button>
407          <button name="printBtn" c:height="1" label="Imprimir" c:width="10"
408                  c:x="46" c:y="2">
409            <trigger src="printTrigger" type="On-Action"/>
410          </button>
411          <entry block="clientResultBlock" field="clientIdREntry" hidden=""
412                 c:width="20" c:x="1" c:y="1"/>
413          <label text="Resultado" c:x="1" c:y="3"/>
414          <entry block="clientResultBlock" field="nameListEntry" rows="12"
415                 c:width="40" c:x="1" c:y="4"/>
416          <scrollbar block="clientResultBlock" c:height="12" page="12" c:width="1"
417                     c:x="42" c:y="4"/>
418        </page>
419        <page name="Cliente">
420          <trigger src="askForChangesTrigger" type="Pre-Focusout"/>
421          <box c:height="20" label="Datos" c:width="64" c:x="0" c:y="0"/>
422          <entry block="clientBlock" field="clientIdEntry" hidden="" c:width="20"
423                 c:x="2" c:y="2"/>
424          <label text="Nombre o Razón Social" c:x="2" c:y="2"/>
425          <entry block="clientBlock" field="nameEntry" c:width="40" c:x="2"
426                 c:y="3"/>
427          <label text="Puntaje" c:x="2" c:y="4"/>
428          <entry block="clientBlock" field="scoreEntry" c:width="10" c:x="2"
429                 c:y="5"/>
430          <label text="Lista de precios asociada " c:x="2" c:y="6"/>
431          <entry block="clientBlock" field="priceTypeEntry" style="dropdown"
432                 c:width="35" c:x="2" c:y="7"/>
433          <button name="priceTypeBtn" c:height="1" label=" ... " c:width="5"
434                  c:x="38" c:y="7">
435            <trigger name="callPriceTypeTrigger" type="NAMED"><![CDATA[
436               #runForm('priceType-new.gfd', {'initId': str(clientBlock.priceTypeEntry)})
437               runForm('priceType.gfd')
438             ]]></trigger>
439            <trigger src="callPriceTypeTrigger" type="On-Action"/>
440          </button>
441          <label text="Observaciones" c:x="2" c:y="8"/>
442          <entry block="clientBlock" field="obs" c:height="5" c:width="25" c:x="2"
443                 c:y="9"/>
444          <button name="clientCommitBtn" c:height="1" label="Aceptar" c:width="9"
445                  c:x="2" c:y="18">
446            <trigger src="commitTrigger" type="On-Action"/>
447          </button>
448          <button name="clientDeleteBtn" c:height="1" label="Borrar" c:width="9"
449                  c:x="12" c:y="18">
450            <trigger src="clientDeleteTrigger" type="On-Action"/>
451          </button>
452          <button name="clientRollbackBtn" c:height="1" label="Cancelar"
453                  c:width="9" c:x="22" c:y="18">
454            <trigger src="clientRollbackTrigger" type="On-Action"/>
455          </button>
456        </page>
457        <page name="Direcciones">
458          <trigger src="askForChangesTrigger" type="Pre-Focusout"/>
459          <box c:height="5" label="Direcciones" c:width="64" c:x="0" c:y="0"/>
460          <label text="Nombre o Razón Social" c:x="2" c:y="2"/>
461          <entry block="addressClientBlock" field="name" c:width="40" c:x="2"
462                 c:y="3"/>
463          <box c:height="15" label="Direcciones" c:width="64" c:x="0" c:y="5"/>
464          <label text="Direcciones" c:x="2" c:y="7"/>
465          <entry block="addressBlock" field="address" rows="4" c:width="39"
466                 c:x="2" c:y="8"/>
467          <scrollbar block="addressBlock" c:height="4" page="4" c:width="1"
468                     c:x="42" c:y="8"/>
469          <button name="addressCommitBtn" c:height="1" label="Aceptar" c:width="9"
470                  c:x="2" c:y="18">
471            <trigger src="commitTrigger" type="On-Action"/>
472          </button>
473          <button name="addressDeleteBtn" c:height="1" label="Borrar" c:width="9"
474                  c:x="12" c:y="18">
475            <trigger src="addressDeleteTrigger" type="On-Action"/>
476          </button>
477          <button name="addressRollbackBtn" c:height="1" label="Cancelar"
478                  c:width="9" c:x="22" c:y="18">
479            <trigger src="addressRollbackTrigger" type="On-Action"/>
480          </button>
481        </page>
482        <page name="Teléfonos">
483          <trigger src="askForChangesTrigger" type="Pre-Focusout"/>
484          <box c:height="5" label="Teléfonos" c:width="64" c:x="0" c:y="0"/>
485          <label text="Nombre o Razón Social" c:x="2" c:y="2"/>
486          <entry block="clientTelephoneBlock" field="name1" c:width="40" c:x="2"
487                 c:y="3"/>
488          <box c:height="15" label="Teléfonos" c:width="64" c:x="0" c:y="5"/>
489          <label text="Teléfonos" c:x="2" c:y="7"/>
490          <entry block="telephoneBlock" field="telephone" rows="4" c:width="39"
491                 c:x="2" c:y="8"/>
492          <scrollbar block="telephoneBlock" c:height="4" page="4" c:width="1"
493                     c:x="42" c:y="8"/>
494          <button name="telephoneCommitBtn" c:height="1" label="Aceptar"
495                  c:width="9" c:x="2" c:y="18">
496            <trigger src="commitTrigger" type="On-Action"/>
497          </button>
498          <button name="telephoneDeleteBtn" c:height="1" label="Borrar"
499                  c:width="9" c:x="12" c:y="18">
500            <trigger src="telephoneDeleteTrigger" type="On-Action"/>
501          </button>
502          <button name="telephoneRollbackBtn" c:height="1" label="Cancelar"
503                  c:width="9" c:x="22" c:y="18">
504            <trigger src="telephoneRollbackTrigger" type="On-Action"/>
505          </button>
506        </page>
507        <page name="Límites de crédito">
508          <trigger src="askForChangesTrigger" type="Pre-Focusout"/>
509          <box c:height="5" label="Límites de Crédito" c:width="64" c:x="0"
510               c:y="0"/>
511          <label text="Nombre o Razón Social" c:x="2" c:y="2"/>
512          <entry block="clientCreditLimitBlock" field="name2" c:width="40" c:x="2"
513                 c:y="3"/>
514          <box c:height="15" label="Tipos de límite Crédito" c:width="64" c:x="0"
515               c:y="5"/>
516          <entry block="creditLimit1Block" field="movementTypeEntry" hidden=""
517                 c:width="14" c:x="2" c:y="7"/>
518          <entry block="creditLimit1Block" field="movementTypeEntry1"
519                 style="textlookup" c:width="24" c:x="2" c:y="9"/>
520          <entry block="creditLimit1Block" field="creditLimitEntry" c:width="14"
521                 c:x="27" c:y="9"/>
522          <button name="creditLimitCommitBtn" c:height="1" label="Aceptar"
523                  c:width="9" c:x="2" c:y="18">
524            <trigger src="commitTrigger" type="On-Action"/>
525          </button>
526          <button name="creditLimitRollbackBtn" c:height="1" label="Cancelar"
527                  c:width="9" c:x="12" c:y="18">
528            <trigger src="creditLimitRollbackTrigger" type="On-Action"/>
529          </button>
530        </page>
531        <page name="Datos Impositivos">
532          <trigger src="askForChangesTrigger" type="Pre-Focusout"/>
533          <box c:height="5" label="Datos Impositivos" c:width="64" c:x="0" c:y="0"/>
534          <label text="Nombre o Razón Social" c:x="2" c:y="2"/>
535          <entry block="clientCreditLimitBlock1" field="name3" c:width="40"
536                 c:x="2" c:y="3"/>
537          <box c:height="15" label="" c:width="64" c:x="0" c:y="5"/>
538          <entry block="clientUID_CUIT_Block" field="uid_CUIT_TypeEntry"
539                 style="textlookup" c:width="19" c:x="2" c:y="7"/>
540          <entry block="clientUID_CUIT_Block" field="uidEntry" c:width="24"
541                 c:x="21" c:y="7"/>
542          <entry block="clientUID_IB_Block" field="uid_IB_TypeEntry"
543                 style="textlookup" c:width="19" c:x="2" c:y="8"/>
544          <entry block="clientUID_IB_Block" field="uidEntry1" c:width="24"
545                 c:x="21" c:y="8"/>
546          <label text="Categoría en IVA" c:x="2" c:y="10"/>
547          <entry block="clientTaxProfileBlock" field="taxProfileEntry"
548                 style="dropdown" c:width="35" c:x="2" c:y="11"/>
549          <button name="uidCommitBtn" c:height="1" label="Aceptar" c:width="9"
550                  c:x="2" c:y="18">
551            <trigger src="commitTrigger" type="On-Action"/>
552          </button>
553          <button name="uidRollbackBtn" c:height="1" label="Cancelar" c:width="9"
554                  c:x="12" c:y="18">
555            <trigger src="uidRollbackTrigger" type="On-Action"/>
556          </button>
557        </page>
558      </layout>
559  </form>  </form>

Legend:
Removed from v.1.40  
changed lines
  Added in v.1.40.2.1

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