2 |
<!DOCTYPE form SYSTEM "gnue-forms.dtd"> |
<!DOCTYPE form SYSTEM "gnue-forms.dtd"> |
3 |
|
|
4 |
<form width="84" height="17" title="Facturación a Clientes"> |
<form width="84" height="17" title="Facturación a Clientes"> |
5 |
<datasource name="nil" cache="1"/> |
<datasource name="total" cache="1"/> |
6 |
|
<datasource name="debt" cache="1"/> |
7 |
|
|
8 |
|
<!-- Origen de datos que sirve para seleccionar el cleinte al que se le --> |
9 |
|
<!-- va a facturar --> |
10 |
|
|
11 |
<datasource name="clientDataSource" database="papo" |
<datasource name="clientDataSource" database="papo" |
12 |
table="entity, alienentity, persona, client"> |
table="entity, _entity_data, alien_entity, _alien_entity_data, persona, _persona_data, client, _client_data, |
13 |
|
_price_type_data"> |
14 |
<condition> |
<condition> |
15 |
<and> |
<and> |
16 |
<eq> |
<eq> |
17 |
<cfield name="entity.id"/> |
<cfield name="entity.id"/> |
18 |
<cfield name="alienentity.entity"/> |
<cfield name="_entity_data._table"/> |
19 |
|
</eq> |
20 |
|
<eq> |
21 |
|
<cfield name="alien_entity.id"/> |
22 |
|
<cfield name="_alien_entity_data._table"/> |
23 |
|
</eq> |
24 |
|
<eq> |
25 |
|
<cfield name="persona.id"/> |
26 |
|
<cfield name="_persona_data._table"/> |
27 |
|
</eq> |
28 |
|
<eq> |
29 |
|
<cfield name="client.id"/> |
30 |
|
<cfield name="_client_data._table"/> |
31 |
|
</eq> |
32 |
|
<eq> |
33 |
|
<cfield name="entity.id"/> |
34 |
|
<cfield name="_alien_entity_data.entity"/> |
35 |
</eq> |
</eq> |
36 |
<eq> |
<eq> |
37 |
<cfield name="alienentity.id"/> |
<cfield name="alien_entity.id"/> |
38 |
<cfield name="persona.alien_entity"/> |
<cfield name="_persona_data.alien_entity"/> |
39 |
</eq> |
</eq> |
40 |
<eq> |
<eq> |
41 |
<cfield name="persona.id"/> |
<cfield name="persona.id"/> |
42 |
<cfield name="client.persona"/> |
<cfield name="_client_data.persona"/> |
43 |
</eq> |
</eq> |
44 |
|
<eq> |
45 |
|
<cfield name="_price_type_data._table"/> |
46 |
|
<cfield name="_client_data.price_type"/> |
47 |
|
</eq> |
48 |
|
<null> |
49 |
|
<cfield name="_entity_data._end_t"/> |
50 |
|
</null> |
51 |
<null> |
<null> |
52 |
<cfield name="entity.end_t"/> |
<cfield name="_alien_entity_data._end_t"/> |
53 |
|
</null> |
54 |
|
<null> |
55 |
|
<cfield name="_persona_data._end_t"/> |
56 |
|
</null> |
57 |
|
<null> |
58 |
|
<cfield name="_client_data._end_t"/> |
59 |
|
</null> |
60 |
|
<null> |
61 |
|
<cfield name="_price_type_data._end_t"/> |
62 |
</null> |
</null> |
63 |
</and> |
</and> |
64 |
</condition> |
</condition> |
65 |
</datasource> |
</datasource> |
66 |
|
|
67 |
<datasource name="priceDataSource" database="papo" table="product, price" |
<!-- Origen de datos que srive para calcular el total facturado --> |
68 |
order_by="product.name"> |
|
69 |
<condition> |
<datasource name="invTotDataSource" database="papo" |
70 |
|
table="_entity_data, own_document, own_item, own_proditem, _price_data, own_item_tax" |
71 |
|
order_by="own_proditem.id"> |
72 |
|
<condition> |
73 |
<and> |
<and> |
74 |
<eq> |
<eq> |
75 |
<cfield name="price.product"/> |
<!-- Aqui se refiere al cliente --> |
76 |
<cfield name="product.id"/> |
<cfield name="_entity_data._table"/> |
77 |
|
<cfield name="own_document.recipient"/> |
78 |
</eq> |
</eq> |
79 |
</and> |
<eq> |
80 |
</condition> |
<cfield name="own_document.id"/> |
81 |
|
<cfield name="own_item.own_document"/> |
82 |
|
</eq> |
83 |
|
<eq> |
84 |
|
<cfield name="own_item.id"/> |
85 |
|
<cfield name="own_proditem.own_item"/> |
86 |
|
</eq> |
87 |
|
<eq> |
88 |
|
<cfield name="own_proditem.price"/> |
89 |
|
<cfield name="_price_data._table"/> |
90 |
|
</eq> |
91 |
|
<eq> |
92 |
|
<cfield name="own_item.id"/> |
93 |
|
<cfield name="own_item_tax.own_item"/> |
94 |
|
</eq> |
95 |
|
</and> |
96 |
|
</condition> |
97 |
</datasource> |
</datasource> |
|
|
|
|
<datasource database="papo" name="ownDocumentDataSource" table="owndocument" |
|
|
order_by="date" /> |
|
98 |
|
|
99 |
<datasource database="papo" name="creditLimit1DataSource" table="creditlimit"> |
<!-- Origen de datos que srive para calcular los impuestos del la factura --> |
100 |
<condition> |
|
101 |
<and> |
<datasource name="invTaxTotDataSource" database="papo" |
102 |
|
table="own_document, own_document_tax"> |
103 |
|
<condition> |
104 |
<eq> |
<eq> |
105 |
<cfield name="movement_type"/> |
<cfield name="own_document.id"/> |
106 |
<cconst value="1"/> |
<cfield name="own_document_tax.own_document"/> |
107 |
</eq> |
</eq> |
108 |
<null> |
</condition> |
109 |
<cfield name="end_t"/> |
</datasource> |
110 |
</null> |
|
111 |
|
<!-- Origen de datos que srive para calcular el total adeudado --> |
112 |
|
|
113 |
|
<datasource name="payTotDataSource" database="papo" table="_entity_data, own_document, own_document_proceeding"> |
114 |
|
<condition> |
115 |
|
<and> |
116 |
|
<eq> |
117 |
|
<!-- Aqui se refiere al cliente --> |
118 |
|
<cfield name="_entity_data._table"/> |
119 |
|
<cfield name="own_document.recipient"/> |
120 |
|
</eq> |
121 |
|
<eq> |
122 |
|
<cfield name="own_document.id"/> |
123 |
|
<cfield name="own_document_proceeding.own_document"/> |
124 |
|
</eq> |
125 |
</and> |
</and> |
126 |
</condition> |
</condition> |
127 |
</datasource> |
</datasource> |
128 |
|
|
129 |
<datasource database="papo" name="creditLimit2DataSource" table="creditlimit"> |
<datasource name="priceDataSource" database="papo" table="_product_data, price" |
130 |
|
order_by="_product_data.canonical_name"> |
131 |
|
<!-- <condition> --> |
132 |
|
<!-- <and> --> |
133 |
|
<!-- <eq> --> |
134 |
|
<!-- <cfield name="price.product"/> --> |
135 |
|
<!-- <cfield name="product.id"/> --> |
136 |
|
<!-- </eq> --> |
137 |
|
<!-- </and> --> |
138 |
|
<!-- </condition> --> |
139 |
|
</datasource> |
140 |
|
|
141 |
|
<!-- Origen de datos que contiene el encabezado de la factura --> |
142 |
|
|
143 |
|
<datasource database="papo" name="ownDocumentDataSource" table="own_document" |
144 |
|
order_by="date" /> |
145 |
|
|
146 |
|
<!-- Origen de datos que sirve para consultar el limite de crédito --> |
147 |
|
<!-- asignado al cliente que se le factura --> |
148 |
|
|
149 |
|
<datasource name="tlCreditLimit1DataSource" database="papo" |
150 |
|
table="_credit_limit_data"> |
151 |
<condition> |
<condition> |
152 |
<and> |
<and> |
153 |
<eq> |
<eq> |
154 |
<cfield name="movement_type"/> |
<cfield name="_credit_limit_data.movement_type"/> |
155 |
<cconst value="2"/> |
<cconst value="1"/> |
156 |
</eq> |
</eq> |
157 |
<null> |
<null> |
158 |
<cfield name="end_t"/> |
<cfield name="_credit_limit_data._end_t"/> |
159 |
</null> |
</null> |
160 |
</and> |
</and> |
161 |
</condition> |
</condition> |
162 |
</datasource> |
</datasource> |
163 |
|
|
164 |
<datasource database="papo" name="creditLimit3DataSource" table="creditlimit"> |
<datasource name="creditLimit1DataSource" database="papo" |
165 |
|
table="_credit_limit_data"> |
166 |
<condition> |
<condition> |
167 |
<and> |
<and> |
168 |
<eq> |
<eq> |
169 |
<cfield name="movement_type"/> |
<cfield name="_credit_limit_data.movement_type"/> |
170 |
<cconst value="3"/> |
<cconst value="1"/> |
171 |
</eq> |
</eq> |
172 |
<null> |
<null> |
173 |
<cfield name="end_t"/> |
<cfield name="_credit_limit_data._end_t"/> |
174 |
</null> |
</null> |
175 |
</and> |
</and> |
176 |
</condition> |
</condition> |
177 |
</datasource> |
</datasource> |
178 |
|
|
179 |
<datasource database="papo" detaillink="ownitem.own_document" |
<!-- Origen de datos que contiene los items de la factura --> |
180 |
|
|
181 |
|
<datasource database="papo" detaillink="own_item.own_document" |
182 |
master="ownDocumentDataSource" masterlink="id" name="ownItemDataSource" |
master="ownDocumentDataSource" masterlink="id" name="ownItemDataSource" |
183 |
table="ownitem, ownproditem"> |
table="own_item, own_proditem"> |
184 |
<condition> |
<condition> |
185 |
<and> |
<and> |
186 |
<eq> |
<eq> |
187 |
<cfield name="ownitem.id"/> |
<cfield name="own_item.id"/> |
188 |
<cfield name="ownproditem.own_item"/> |
<cfield name="own_proditem.own_item"/> |
189 |
</eq> |
</eq> |
190 |
</and> |
</and> |
191 |
</condition> |
</condition> |
192 |
</datasource> |
</datasource> |
193 |
|
|
194 |
<datasource database="papo" name="ownItemDataSourceToUpd" |
<!-- Origen de datos que sirve para consultar y asi actualizar el stock --> |
195 |
table="ownitem, ownproditem, price, productstore"> |
|
196 |
|
<datasource database="papo" name="ownItemToUpdDataSource" |
197 |
|
table="own_item, own_proditem, price, _price_data, product_store, _product_store_data"> |
198 |
<condition> |
<condition> |
199 |
<and> |
<and> |
200 |
<eq> |
<eq> |
201 |
<cfield name="ownitem.id"/> |
<cfield name="price.id"/> |
202 |
<cfield name="ownproditem.own_item"/> |
<cfield name="_price_data._table"/> |
203 |
|
</eq> |
204 |
|
<eq> |
205 |
|
<cfield name="product_store.id"/> |
206 |
|
<cfield name="_product_store_data._table"/> |
207 |
|
</eq> |
208 |
|
<eq> |
209 |
|
<cfield name="own_item.id"/> |
210 |
|
<cfield name="own_proditem.own_item"/> |
211 |
</eq> |
</eq> |
212 |
<eq> |
<eq> |
|
<cfield name="ownproditem.price"/> |
|
213 |
<cfield name="price.id"/> |
<cfield name="price.id"/> |
214 |
|
<cfield name="own_proditem.price"/> |
215 |
</eq> |
</eq> |
216 |
<eq> |
<eq> |
217 |
<cfield name="price.product"/> |
<cfield name="_price_data.product"/> |
218 |
<cfield name="productstore.product"/> |
<cfield name="_product_store_data.product"/> |
219 |
</eq> |
</eq> |
220 |
|
<null> |
221 |
|
<cfield name="_price_data._end_t"/> |
222 |
|
</null> |
223 |
|
<null> |
224 |
|
<cfield name="_product_store_data._end_t"/> |
225 |
|
</null> |
226 |
</and> |
</and> |
227 |
</condition> |
</condition> |
228 |
</datasource> |
</datasource> |
229 |
|
|
230 |
|
<!-- Este trigger sirve para calcular la deuda acumulada para poder saber --> |
231 |
|
<!-- cuanto credito le queda con respecto al limite de credito asignado --> |
232 |
|
|
233 |
|
<trigger name="debtCalcTrigger" type="NAMED"> |
234 |
|
|
235 |
|
</trigger> |
236 |
|
|
237 |
<trigger name="commitTrigger" type="NAMED"> |
<trigger name="commitTrigger" type="NAMED"> |
|
import mx.DateTime |
|
238 |
if ownItemBlock.getRecordCount() > 0 and len(ownItemBlock.qtyEntry) > 0: |
if ownItemBlock.getRecordCount() > 0 and len(ownItemBlock.qtyEntry) > 0: |
239 |
if len(ownDocumentBlock.dateEntry) == 0: |
if len(ownDocumentBlock.dateEntry) == 0: |
240 |
ownDocumentBlock.dateEntry = mx.DateTime.localtime() |
ownDocumentBlock.dateEntry = ownDocumentDataSource.getTimeStamp() |
241 |
ownDocumentBlock.commit() |
ownDocumentBlock.commit() |
242 |
lOwnDocId = str(ownDocumentBlock.idEntry) |
lOwnDocId = str(ownDocumentBlock.idEntry) |
243 |
setFocus(ownDocumentBlock.dateEntry) |
setFocus(ownDocumentBlock.dateEntry) |
255 |
ownDocumentBlock.processRollback() |
ownDocumentBlock.processRollback() |
256 |
ownItemBlock.processRollback() |
ownItemBlock.processRollback() |
257 |
ownDocumentBlock.newRecord() |
ownDocumentBlock.newRecord() |
258 |
ownDocumentBlock.dateEntry = mx.DateTime.localtime() |
ownDocumentBlock.dateEntry = ownDocumentDataSource.getTimeStamp() |
259 |
totalBlock.total = "" |
totalBlock.total = "" |
260 |
</trigger> |
</trigger> |
261 |
|
|
262 |
<trigger name="rollbackTrigger" type="NAMED"> |
<trigger name="rollbackTrigger" type="NAMED"> |
|
import mx.DateTime |
|
263 |
ownDocumentBlock.processRollback() |
ownDocumentBlock.processRollback() |
264 |
ownDocumentBlock.dateEntry = mx.DateTime.localtime() |
ownDocumentBlock.dateEntry = ownDocumentDataSource.getTimeStamp() |
265 |
totalBlock.total = "" |
totalBlock.total = "" |
266 |
</trigger> |
</trigger> |
267 |
<trigger type="On-Startup"> |
<trigger type="On-Startup"> |
268 |
import mx.DateTime |
ownDocumentBlock.dateEntry = ownDocumentDataSource.getTimeStamp() |
|
ownDocumentBlock.dateEntry = mx.DateTime.localtime() |
|
269 |
</trigger> |
</trigger> |
270 |
|
|
271 |
<trigger name="quitTrigger" type="NAMED"> |
<trigger name="quitTrigger" type="NAMED"> |
306 |
totalBlock.total = str(sum) |
totalBlock.total = str(sum) |
307 |
</trigger> |
</trigger> |
308 |
|
|
309 |
|
|
310 |
<page name="Factura a Clientes"> |
<page name="Factura a Clientes"> |
311 |
|
|
312 |
|
|
313 |
<box height="10" label="Factura de Productos a Clientes" |
<box height="10" label="Factura de Productos a Clientes" |
314 |
name="invoiceHeaderBox" width="82" x="0" y="0"> |
name="invoiceHeaderBox" width="82" x="0" y="0"> |
315 |
|
<block name="debtBlock" datasource="debt"> |
316 |
|
<label text=" Deuda actual" x="65" y="2" /> |
317 |
|
|
318 |
|
<entry x="65" y="3" name="debtEntry" readonly="" width="8"> |
319 |
|
<!-- <trigger type="Pre-Focusout"> --> |
320 |
|
<!-- print str(debtBlock.dedtEntry) --> |
321 |
|
<!-- </trigger> --> |
322 |
|
</entry> |
323 |
|
</block> |
324 |
|
|
325 |
<block datasource="ownDocumentDataSource" name="ownDocumentBlock"> |
<block datasource="ownDocumentDataSource" name="ownDocumentBlock"> |
326 |
<trigger name="t" type="Pre-Insert"> |
<trigger name="t" type="Pre-Insert"> |
329 |
</trigger> |
</trigger> |
330 |
|
|
331 |
<entry field="id" hidden="" name="idEntry" x="1" y="1"/> |
<entry field="id" hidden="" name="idEntry" x="1" y="1"/> |
332 |
<entry field="type" hidden="" name="typeEntry" x="1" y="1"/> |
<entry field="own_document_type" hidden="" name="typeEntry" x="1" y="1"/> |
333 |
<box height="5" label="Datos del Cliente" |
<box height="6" label="Datos del Cliente" |
334 |
name="clientRecipientBox" width="65" x="0" y="1"> |
name="clientRecipientBox" width="65" x="0" y="1"> |
335 |
|
|
336 |
<label name="clientLbl" text="Cliente" x="1" y="1" /> |
<label name="clientLbl" text="Cliente" x="1" y="1" /> |
337 |
<entry x="1" y="2" field="owndocument.recipient" name="clientEntry" |
|
338 |
width="30" style="dropdown" foreign_key="clientDataSource.entity.id" |
<entry x="1" y="2" field="recipient" name="clientEntry" |
339 |
foreign_key_description="entity.name" > |
width="30" style="dropdown" foreign_key="clientDataSource._entity_data._table" |
340 |
|
foreign_key_description="_entity_data.name" > |
341 |
|
|
342 |
<trigger type="PRE-FOCUSOUT" name="showScoreTrigger"> |
<trigger type="PRE-FOCUSOUT" name="showScoreTrigger"> |
343 |
ownDocumentBlock.clientRecipientBox.scoreEntry = str(ownDocumentBlock.clientRecipientBox.clientEntry) |
if str(ownDocumentBlock.clientRecipientBox.clientEntry): |
344 |
ownDocumentBlock.clientRecipientBox.creditLimit1Entry = str(ownDocumentBlock.clientRecipientBox.clientEntry) |
ownDocumentBlock.clientRecipientBox.scoreEntry = str(ownDocumentBlock.clientRecipientBox.clientEntry) |
345 |
ownDocumentBlock.clientRecipientBox.creditLimit2Entry = str(ownDocumentBlock.clientRecipientBox.clientEntry) |
ownDocumentBlock.clientRecipientBox.creditLimit1Entry = str(ownDocumentBlock.clientRecipientBox.clientEntry) |
346 |
|
ownDocumentBlock.clientRecipientBox.priceTypeEntry = str(ownDocumentBlock.clientRecipientBox.clientEntry) |
347 |
|
# Aca si existe un balance, calcula la deuda desde ese balance en adelante sino |
348 |
|
# calcula la deuda desde el primer documento vinculado al cliente actual |
349 |
|
creditLimit1Block.processRollback() |
350 |
|
creditLimit1Block.initQuery() |
351 |
|
creditLimit1Block.entityEntry = str(ownDocumentBlock.clientRecipientBox.clientEntry) |
352 |
|
creditLimit1Block.processQuery() |
353 |
|
|
354 |
|
import gnue.common.GConditions as GConditions |
355 |
|
import hack |
356 |
|
|
357 |
|
cond = GConditions.GCondition() |
358 |
|
|
359 |
|
balance = 0 |
360 |
|
if str(creditLimit1Block.balanceEntry): |
361 |
|
tmpAnd = GConditions.GCand(cond) |
362 |
|
gt = GConditions.GCgt(tmpAnd) |
363 |
|
GConditions.GCField(gt,"own_document.date") |
364 |
|
GConditions.GCConst(gt,str(creditLimit1Block.timeStampEntry)) |
365 |
|
eq = GConditions.GCeq(tmpAnd) |
366 |
|
GConditions.GCField(eq,"own_document.recipient") |
367 |
|
GConditions.GCConst(eq,str(ownDocumentBlock.clientRecipientBox.clientEntry)) |
368 |
|
balance = hack.a2f(creditLimit1Block.balance) |
369 |
|
else: |
370 |
|
eq = GConditions.GCeq(cond) |
371 |
|
GConditions.GCField(eq,"own_document.recipient") |
372 |
|
GConditions.GCConst(eq,str(ownDocumentBlock.clientRecipientBox.clientEntry)) |
373 |
|
|
374 |
|
# Calculo del total facturado |
375 |
|
rs = invTotDataSource.createResultSet(cond) |
376 |
|
more = rs.firstRecord() |
377 |
|
invTotal = 0 |
378 |
|
|
379 |
|
while more: |
380 |
|
itemTot = 0 |
381 |
|
currOwnDoc = rs.current.getField("own_document.id") |
382 |
|
while rs.current.getField("own_document.id") == currOwnDoc: |
383 |
|
itemTot += hack.a2f(rs.current.getField("own_item.qty"))*hack.a2f(rs.current.getField("_price_data.unit_price")) -\ |
384 |
|
hack.a2f(rs.current.getField("own_item.bonus")) - hack.a2f(rs.current.getField("own_item.discount")) |
385 |
|
taxTot = 0 |
386 |
|
currItem = rs.current.getField("own_item.id") |
387 |
|
while rs.current.getField("own_item.id") == currItem: |
388 |
|
taxTot += hack.a2f(rs.current.getField("own_item_tax.amount")) |
389 |
|
more = rs.nextRecord() |
390 |
|
invTotal += taxTot |
391 |
|
invTotal += itemTot - hack.a2f(rs.current.getField("own_document.bonus")) |
392 |
|
# Calcula los impuestos del documento en si |
393 |
|
odt_rs = invTaxTotDataSource.createResultSet({"own_document.id":currOwnDoc}) |
394 |
|
odt_more = odt_more.firstRecord() |
395 |
|
while odt_more: |
396 |
|
invTotal += hack.a2f(odt_rs.current.getField("own_document_tax.amount")) |
397 |
|
odt_more = odt_rs.nextRecord() |
398 |
|
|
399 |
|
# Calculo del total cobrado |
400 |
|
rs = payTotDataSource.createResultSet(cond) |
401 |
|
|
402 |
|
more = rs.firstRecord() |
403 |
|
import hack |
404 |
|
payTotal = 0 |
405 |
|
|
406 |
|
while more: |
407 |
|
payTotal += hack.a2f(rs.current.getField("own_document_proceeding.amount")) |
408 |
|
|
409 |
|
# Calculo del total adeudado |
410 |
|
debtTotal = invTotal + balance - payTotal |
411 |
|
|
412 |
|
debtBlock.dedtEntry = "0.0" |
413 |
</trigger> |
</trigger> |
414 |
<trigger type="PRE-FOCUSIN" name="showScoreTrigger"> |
<trigger type="PRE-FOCUSIN" name="showScoreTrigger"> |
415 |
ownDocumentBlock.clientRecipientBox.scoreEntry = "" |
ownDocumentBlock.clientRecipientBox.scoreEntry = "" |
416 |
ownDocumentBlock.clientRecipientBox.creditLimit1Entry = "" |
ownDocumentBlock.clientRecipientBox.creditLimit1Entry = "" |
417 |
ownDocumentBlock.clientRecipientBox.creditLimit2Entry = "" |
ownDocumentBlock.clientRecipientBox.priceTypeEntry = "" |
418 |
</trigger> |
</trigger> |
419 |
</entry> |
</entry> |
|
<label name="scoreLbl" text="Puntaje" x="32" y="1" /> |
|
|
<entry x="32" y="2" readonly="" field="owndocument.recipient" name="scoreEntry" |
|
|
width="10" style="textlookup" foreign_key="clientDataSource.entity.id" |
|
|
foreign_key_description="client.score"/> |
|
420 |
|
|
421 |
<label name="nameMVType1Label" text="Cta. Cte." x="43" y="1"/> |
<label name="clientLbl" text="Lista de precios:" x="1" y="3" /> |
422 |
|
|
423 |
<entry x="43" y="2" readonly="" field="owndocument.recipient" name="creditLimit1Entry" |
<entry x="19" y="3" field="own_document.recipient" name="priceTypeEntry" readonly="" |
424 |
width="8" style="textlookup" foreign_key="creditLimit1DataSource.entity" |
width="20" style="textlookup" foreign_key="clientDataSource._entity_data._table" |
425 |
foreign_key_description="credit_limit"/> |
foreign_key_description="_price_type_data.name" /> |
426 |
|
|
427 |
<label name="nameMVType2Label" text="Cheques" x="53" y="1"/> |
<label name="scoreLbl" text="Puntaje" x="32" y="1" /> |
428 |
|
<entry x="32" y="2" readonly="" field="own_document.recipient" name="scoreEntry" |
429 |
|
width="10" style="textlookup" foreign_key="clientDataSource._entity_data._table" |
430 |
|
foreign_key_description="_client_data.score"/> |
431 |
|
|
432 |
<entry x="53" y="2" readonly="" field="owndocument.recipient" name="creditLimit2Entry" |
<label name="nameMVType1Label" text="Cta. Cte." x="43" y="1"/> |
433 |
width="8" style="textlookup" foreign_key="creditLimit2DataSource.entity" |
|
434 |
|
<entry x="43" y="2" readonly="" field="own_document.recipient" name="creditLimit1Entry" |
435 |
|
width="8" style="textlookup" foreign_key="tlCreditLimit1DataSource.entity" |
436 |
foreign_key_description="credit_limit"/> |
foreign_key_description="credit_limit"/> |
437 |
|
|
438 |
</box> |
</box> |
439 |
<label name="dateLbl" rows="1" text="Fecha" x="1" y="6" /> |
<label name="dateLbl" rows="1" text="Fecha" x="1" y="7" /> |
440 |
<entry field="date" name="dateEntry" readonly="" typecast="date" |
<entry field="date" name="dateEntry" readonly="" typecast="date" |
441 |
rows="1" width="24" x="1" y="7"/> |
rows="1" width="24" x="7" y="7"/> |
442 |
|
|
443 |
<label name="bonusLbl" rows="1" text="Bonificación" x="33" y="6"/> |
<label name="bonusLbl" rows="1" text="Bonificación" x="33" y="7"/> |
444 |
<entry field="bonus" name="hBonusEntry" value="0" rows="1" width="10" |
<entry field="bonus" name="hBonusEntry" value="0" rows="1" width="10" |
445 |
x="33" y="7"> |
x="46" y="7"> |
446 |
<trigger type="PRE-FOCUSOUT" name="reCalcTrigger" |
<trigger type="PRE-FOCUSOUT" name="reCalcTrigger" |
447 |
src="totalCalcTrigger" /> |
src="totalCalcTrigger" /> |
448 |
</entry> |
</entry> |
449 |
|
|
450 |
<button x="65" y="2" trigger="commitTrigger" width="14" label="Aceptar" |
<button x="65" y="5" trigger="commitTrigger" width="14" label="Aceptar" |
451 |
name="commitBtn" height="1"/> |
name="commitBtn" height="1"/> |
452 |
<button x="65" y="3" trigger="rollbackTrigger" width="14" label="Deshacer" |
<button x="65" y="6" trigger="rollbackTrigger" width="14" label="Deshacer" |
453 |
name="rollbackBtn" height="1"/> |
name="rollbackBtn" height="1"/> |
454 |
<button x="65" y="4" trigger="quitTrigger" width="14" label="Salir" |
<button x="65" y="7" trigger="quitTrigger" width="14" label="Salir" |
455 |
name="quitBtn" height="1"/> |
name="quitBtn" height="1"/> |
456 |
</block> |
</block> |
457 |
</box> |
</box> |
460 |
width="82" x="0" y="9"> |
width="82" x="0" y="9"> |
461 |
<block datasource="ownItemDataSource" name="ownItemBlock"> |
<block datasource="ownItemDataSource" name="ownItemBlock"> |
462 |
|
|
463 |
<entry field="ownitem.own_document" name="ownDocumentEntry" hidden="" x="1" y="1"/> |
<entry field="own_item.own_document" name="ownDocumentEntry" hidden="" x="1" y="1"/> |
464 |
|
|
465 |
<label name="qtyLbl" text="Cantidad" x="2" y="1"/> |
<label name="qtyLbl" text="Cantidad" x="2" y="1"/> |
466 |
<entry field="ownproditem.qty" value="0" name="qtyEntry" rows="5" typecast="number" width="12" x="2" y="2"> |
<entry field="own_proditem.qty" value="0" name="qtyEntry" rows="5" typecast="number" width="12" x="2" y="2"> |
467 |
<trigger type="PRE-FOCUSOUT" src="totalCalcTrigger" /> |
<trigger type="PRE-FOCUSOUT" src="totalCalcTrigger" /> |
468 |
</entry> |
</entry> |
469 |
<label name="productLbl" text="Producto" x="15" y="1"/> |
<label name="productLbl" text="Producto" x="15" y="1"/> |
470 |
<entry x="15" y="2" field="ownproditem.price" name="productPriceEntry" |
<entry x="15" y="2" field="own_proditem.price" name="productPriceEntry" |
471 |
width="20" rows="5" style="dropdown" foreign_key="priceDataSource.price.id" |
width="20" rows="5" style="dropdown" foreign_key="priceDataSource._price_data._table" |
472 |
foreign_key_description="product.name"> |
foreign_key_description="_product_data.canonical_name"> |
473 |
<trigger type="PRE-FOCUSOUT" name="showPriceTrigger"> |
<trigger type="PRE-FOCUSOUT" name="showPriceTrigger"> |
474 |
ownItemBlock.priceEntry = str(ownItemBlock.productPriceEntry) |
ownItemBlock.priceEntry = str(ownItemBlock.productPriceEntry) |
475 |
</trigger> |
</trigger> |
476 |
<trigger type="PRE-FOCUSOUT" src="totalCalcTrigger" /> |
<trigger type="PRE-FOCUSOUT" src="totalCalcTrigger" /> |
477 |
</entry> |
</entry> |
478 |
<label name="priceLbl" text="Precio" x="36" y="1"/> |
<label name="priceLbl" text="Precio" x="36" y="1"/> |
479 |
<entry x="36" y="2" readonly="" field="ownproditem.price" name="priceEntry" |
<entry x="36" y="2" readonly="" field="own_proditem.price" name="priceEntry" |
480 |
width="10" rows="5" style="textlookup" foreign_key="priceDataSource.price.id" |
width="10" rows="5" style="textlookup" foreign_key="priceDataSource.price.id" |
481 |
foreign_key_description="price.unit_price"/> |
foreign_key_description="price.unit_price"/> |
482 |
<label name="discountLbl" text="Descuento" x="47" y="1"/> |
<label name="discountLbl" text="Descuento" x="47" y="1"/> |
483 |
<entry field="ownitem.discount" name="discountEntry" value="0" typecast="number" |
<entry field="own_item.discount" name="discountEntry" value="0" typecast="number" |
484 |
rows="5" width="12" x="47" y="2"> |
rows="5" width="12" x="47" y="2"> |
485 |
<trigger type="PRE-FOCUSOUT" src="totalCalcTrigger" /> |
<trigger type="PRE-FOCUSOUT" src="totalCalcTrigger" /> |
486 |
</entry> |
</entry> |
487 |
<label name="bonusLbl" text="Bonificación" x="60" y="1"/> |
<label name="bonusLbl" text="Bonificación" x="60" y="1"/> |
488 |
<entry field="ownitem.bonus" name="bonusEntry" value="0" typecast="number" |
<entry field="own_item.bonus" name="bonusEntry" value="0" typecast="number" |
489 |
rows="5" width="12" x="60" y="2"> |
rows="5" width="12" x="60" y="2"> |
490 |
<trigger type="PRE-FOCUSOUT" src="totalCalcTrigger" /> |
<trigger type="PRE-FOCUSOUT" src="totalCalcTrigger" /> |
491 |
</entry> |
</entry> |
492 |
<scrollbar page="5" |
<scrollbar page="5" |
493 |
x="73" y="2" width="1" height="5"/> |
x="73" y="2" width="1" height="5"/> |
494 |
</block> |
</block> |
495 |
<block datasource="nil" name="totalBlock"> |
<block datasource="total" name="totalBlock"> |
496 |
<label name="totalLbl" text="Total" x="29" y="8"/> |
<label name="totalLbl" text="Total" x="29" y="8"/> |
497 |
<entry name="total" readonly="" x="36" y="8" width="12"/> |
<entry name="total" readonly="" x="36" y="8" width="12"/> |
498 |
</block> |
</block> |
499 |
<block datasource="ownItemDataSourceToUpd" name="ownItemToUpdBlock"> |
<block datasource="ownItemToUpdDataSource" name="ownItemToUpdBlock"> |
500 |
<entry name="ownDocumentEntry" field="ownitem.own_document" hidden="" x="1" y="109" width="10"/> |
<entry name="ownDocumentEntry" field="own_item.own_document" hidden="" x="1" y="109" width="10"/> |
501 |
<entry name="prodIdEntry" field="price.product" hidden="" x="11" y="109" width="10"/> |
<entry name="prodIdEntry" field="_price_data.product" hidden="" x="11" y="109" width="10"/> |
502 |
<entry name="qtyEntry" field="ownproditem.qty" hidden="" x="22" y="109" width="10"/> |
<entry name="qtyEntry" field="own_proditem.qty" hidden="" x="22" y="109" width="10"/> |
503 |
<entry name="levelEntry" field="productstore.level" hidden="" x="33" y="109" width="10"/> |
<entry name="levelEntry" field="_product_store_data.level" hidden="" x="33" y="109" width="10"/> |
504 |
|
</block> |
505 |
|
<block datasource="creditLimit1DataSource" name="creditLimit1Block"> |
506 |
|
<entry name="entityEntry" field="_credit_limit_data.entity" hidden="" x="11" y="109" width="10"/> |
507 |
|
<entry name="movementTypeEntry" field="_credit_limit_data.movement_type" hidden="" x="1" y="109" width="10"/> |
508 |
|
<entry name="balanceEntry" field="_credit_limit_data.balance" hidden="" x="22" y="109" width="10"/> |
509 |
|
<entry name="timeStampEntry" field="_credit_limit_data.time_stamp" hidden="" x="33" y="109" width="10"/> |
510 |
</block> |
</block> |
511 |
</box> |
</box> |
512 |
</page> |
</page> |