1 |
<?xml version="1.0" encoding="ISO-8859-1"?> |
<?xml version="1.0" encoding="ISO-8859-1"?> |
2 |
|
|
3 |
<form tabbed="top" title="Productos" height="19" width="70"> |
<form tabbed="top" title="Productos" width="80"> |
4 |
<neb:Block> |
<neb:Block> |
5 |
use PAPO; |
use PAPO; |
6 |
my $uniqed=0; |
my $uniqed=0; |
219 |
</datasource> |
</datasource> |
220 |
|
|
221 |
<trigger name="startUp" type="On-Startup"> |
<trigger name="startUp" type="On-Startup"> |
222 |
#cargo el own-pos entity id |
#cargo el own-pos entity id |
223 |
callTrigger('searchOwnPosData') |
callTrigger('searchOwnPosData') |
224 |
</trigger> |
</trigger> |
225 |
|
|
226 |
<trigger name="startWaitingModeTrigger" type="NAMED"><![CDATA[ |
<neb:Sub neb:src="wait.nebc"/> |
|
setStatusText("Procesando ...") |
|
|
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')) |
|
|
]]></trigger> |
|
|
|
|
|
<trigger name="endWaitingModeTrigger" type="NAMED"><![CDATA[ |
|
|
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 |
|
|
|
|
|
self._object.dispatchEvent(GFEvent('endWAIT')) |
|
|
setStatusText("Listo") |
|
|
]]></trigger> |
|
227 |
|
|
228 |
<trigger name="printTrigger" type="NAMED"> |
<trigger name="printTrigger" type="NAMED"> |
229 |
callTrigger('startWaitingModeTrigger') |
callTrigger('startWaitingModeTrigger') |
230 |
import gnue.common.GConditions as GConditions |
import gnue.common.GConditions as GConditions |
231 |
import string |
import string |
232 |
import hack |
import hack |
233 |
import printing |
import printing |
|
|
|
|
table = [] |
|
|
table.append (printing.printDate ()) |
|
|
line = "\n\nListado de Productos\n\n\n" |
|
|
table.append(line) |
|
|
|
|
|
line = " | "+printing.printTitle("Código",13)+" | " |
|
|
line += printing.printTitle("Nombre",48)+" | " |
|
|
line += printing.printTitle("Stock",8)+" | " |
|
|
lineLen = len(line) |
|
|
table.append(line) |
|
|
line = "" |
|
|
for idx in range(lineLen): |
|
|
line += "-" |
|
|
table.append(line) |
|
|
|
|
|
productCondition = GConditions.GConditions() |
|
|
tmpAnd = GConditions.GCand(productCondition) |
|
|
if str(productSearchBlock.searchCodeEntry) or str(productSearchBlock.searchNameEntry): |
|
|
if str(productSearchBlock.searchCodeEntry): |
|
|
eq1 = GConditions.GClike(tmpAnd) |
|
|
GConditions.GCField(eq1,"_entity_uid_data.uid") |
|
|
GConditions.GCConst(eq1,str(productSearchBlock.searchCodeEntry)+'%') |
|
|
if str(productSearchBlock.searchNameEntry): |
|
|
eq2 = GConditions.GClike(tmpAnd) |
|
|
GConditions.GCField(eq2,"_entity_data.name") |
|
|
GConditions.GCConst(eq2,str(productSearchBlock.searchNameEntry)+'%') |
|
|
|
|
|
eq3 = GConditions.GClike(tmpAnd) |
|
|
GConditions.GCField(eq3,"_product_store_data.storehouse") |
|
|
GConditions.GCConst(eq3,str(ownStorehouseBlock.ownStorehouseIdEntry)) |
|
234 |
|
|
235 |
productResulSet = printProductDataSource.createResultSet(productCondition) |
table = [] |
236 |
more = productResulSet.firstRecord(); |
table.append (printing.printDate ()) |
237 |
|
line = "\n\nListado de Productos\n\n\n" |
238 |
while more: |
table.append(line) |
239 |
line = " | "+printing.printField(productResulSet.current.getField("_product_code_data.code"),13,'l')+" | " |
|
240 |
line += printing.printField(productResulSet.current.getField("_product_data.canonical_name"),48,'l')+" | " |
line = " | "+printing.printTitle("Código",13)+" | " |
241 |
if productResulSet.current.getField("_product_store_data.level"): |
line += printing.printTitle("Nombre",48)+" | " |
242 |
line += printing.printField("%0.2f" % productResulSet.current.getField("_product_store_data.level"),8,'r')+" | " |
line += printing.printTitle("Stock",8)+" | " |
243 |
else: |
lineLen = len(line) |
244 |
line += "0.00"+" | " |
table.append(line) |
245 |
table.append(line) |
line = "" |
246 |
more = productResulSet.nextRecord() |
for idx in range(lineLen): |
247 |
|
line += "-" |
248 |
callTrigger('endWaitingModeTrigger') |
table.append(line) |
249 |
printing.previewPrint(table) |
|
250 |
|
productCondition = GConditions.GConditions() |
251 |
|
tmpAnd = GConditions.GCand(productCondition) |
252 |
|
if str(productSearchBlock.searchCodeEntry) or str(productSearchBlock.searchNameEntry): |
253 |
|
if str(productSearchBlock.searchCodeEntry): |
254 |
|
eq1 = GConditions.GClike(tmpAnd) |
255 |
|
GConditions.GCField(eq1,"_entity_uid_data.uid") |
256 |
|
GConditions.GCConst(eq1,str(productSearchBlock.searchCodeEntry)+'%') |
257 |
|
if str(productSearchBlock.searchNameEntry): |
258 |
|
eq2 = GConditions.GClike(tmpAnd) |
259 |
|
GConditions.GCField(eq2,"_entity_data.name") |
260 |
|
GConditions.GCConst(eq2,str(productSearchBlock.searchNameEntry)+'%') |
261 |
|
|
262 |
|
eq3 = GConditions.GClike(tmpAnd) |
263 |
|
GConditions.GCField(eq3,"_product_store_data.storehouse") |
264 |
|
GConditions.GCConst(eq3,str(ownStorehouseBlock.ownStorehouseIdEntry)) |
265 |
|
|
266 |
|
productResulSet = printProductDataSource.createResultSet(productCondition) |
267 |
|
more = productResulSet.firstRecord(); |
268 |
|
|
269 |
|
while more: |
270 |
|
line = " | "+printing.printField(productResulSet.current.getField("_product_code_data.code"),13,'l')+" | " |
271 |
|
line += printing.printField(productResulSet.current.getField("_product_data.canonical_name"),48,'l')+" | " |
272 |
|
if productResulSet.current.getField("_product_store_data.level"): |
273 |
|
line += printing.printField("%0.2f" % productResulSet.current.getField("_product_store_data.level"),8,'r')+" | " |
274 |
|
else: |
275 |
|
line += "0.00"+" | " |
276 |
|
table.append(line) |
277 |
|
more = productResulSet.nextRecord() |
278 |
|
|
279 |
|
callTrigger('endWaitingModeTrigger') |
280 |
|
printing.previewPrint(table) |
281 |
</trigger> |
</trigger> |
282 |
|
|
283 |
<trigger name="productCommitTrigger" type="NAMED"><![CDATA[ |
<trigger name="productCommitTrigger" type="NAMED"><![CDATA[ |
365 |
productBlock.processQuery() |
productBlock.processQuery() |
366 |
productResultBlock.reset() |
productResultBlock.reset() |
367 |
]]></trigger> |
]]></trigger> |
368 |
<block name="productSearchBlock" datasource="searchDataSource" transparentBlock="y"> |
<lam:box height="1"/> |
369 |
<label text="Ingrese los datos del producto a buscar:" x="1" y="1"/> |
<lam:box> |
370 |
<label text="el Nombre (canónico):" x="1" y="2"/> |
<block name="productSearchBlock" datasource="searchDataSource"> |
371 |
<entry name="searchNameEntry" x="23" y="2" width="35"/> |
<lam:box lam:boxtype="h"> |
372 |
<label text=" ó el Código Interno:" x="1" y="3"/> |
<lam:box width="1"/> |
373 |
<entry name="searchCodeEntry" x="23" y="3" width="19"/> |
<label text="Ingrese los datos del producto a buscar:"/> |
374 |
<button x="60" y="2" trigger="productSearchTrigger" width="9" label="Buscar" |
</lam:box> |
375 |
name="searchBtn" height="1"/> |
<lam:box lam:boxtype="h"> |
376 |
<button x="60" y="3" trigger="printTrigger" width="9" label="Imprimir" |
<lam:box width="1"/> |
377 |
name="searchBtn" height="1"/> |
<lam:box> |
378 |
<entry name="funnyLabel" width="40" x="40" y="4" style="label"/> |
<label text="el Nombre (canónico):"/> |
379 |
</block> |
<label text="el Código Interno:"/> |
380 |
<block name="productResultBlock" datasource="productResultDataSource" transparentBlock="y"> |
</lam:box> |
381 |
<entry name="productIdREntry" field="_product_data._table" hidden="y" x="1" y="1" width="20" /> |
<lam:box> |
382 |
<label text="Resultado" x="1" y="4"/> |
<entry name="searchNameEntry"/> |
383 |
<entry name="codeListEntry" field="_product_code_data.code" |
<entry name="searchCodeEntry"/> |
384 |
x="1" y="5" width="16" rows="15"/> |
</lam:box> |
385 |
<entry name="nameListEntry" field="_product_data.canonical_name" |
<lam:box width="1"/> |
386 |
x="17" y="5" width="50" rows="15"/> |
<lam:box> |
387 |
<scrollbar page="12" x="68" y="5" width="1" height="15"/> |
<button label="Buscar" trigger="productSearchTrigger"/> |
388 |
</block> |
<button label="Imprimir" trigger="printTrigger"/> |
389 |
|
</lam:box> |
390 |
|
<lam:box width="1"/> |
391 |
|
</lam:box> |
392 |
|
</block> |
393 |
|
</lam:box> |
394 |
|
<lam:box height="1"/> |
395 |
|
|
396 |
|
<lam:box> |
397 |
|
<block name="productResultBlock" datasource="productResultDataSource"> |
398 |
|
<lam:box lam:boxtype="h"> |
399 |
|
<lam:box width="1"/> |
400 |
|
<entry name="productIdREntry" field="_product_data._table" hidden="y"/> |
401 |
|
<label text="Resultado"/> |
402 |
|
<lam:box width="1"/> |
403 |
|
<entry name="funnyLabel" style="label"/> |
404 |
|
</lam:box> |
405 |
|
<lam:box lam:boxtype="h"> |
406 |
|
<lam:box width="1"/> |
407 |
|
<entry name="codeListEntry" field="_product_code_data.code" |
408 |
|
rows="15"/> |
409 |
|
<entry name="nameListEntry" field="_product_data.canonical_name" |
410 |
|
rows="15"/> |
411 |
|
<scrollbar page="12" height="15"/> |
412 |
|
</lam:box> |
413 |
|
</block> |
414 |
|
</lam:box> |
415 |
|
<lam:box height="1"/> |
416 |
</page> |
</page> |
417 |
|
|
418 |
<page name="Gestión"> |
<page name="Gestión"> |
419 |
<neb:Sub neb:src="posDocument.nebc" ownPosBlock="ownPosBlock" |
<neb:Sub neb:src="posDocument.nebc" ownPosBlock="ownPosBlock" |
420 |
ownPosEntityIdEntry="ownPosEntityIdEntry" |
ownPosEntityIdEntry="ownPosEntityIdEntry" |
422 |
ownStorehouseBlock ="ownStorehouseBlock" ownStorehouseIdEntry="ownStorehouseIdEntry" /> |
ownStorehouseBlock ="ownStorehouseBlock" ownStorehouseIdEntry="ownStorehouseIdEntry" /> |
423 |
|
|
424 |
<!-- new_schema_begin --> |
<!-- new_schema_begin --> |
425 |
<block name="searchingProductClassificationBlock" datasource="productClassificationDataSource"> |
<!-- block name="searchingPhysicalStructureBlock" datasource="physicalStructureDataSource"> |
|
<entry name="idEntry" field="_table" |
|
|
x="1" y="1" hidden="y"/> |
|
|
<entry name="nameEntry" field="name" |
|
|
x="1" y="1" hidden="y"/> |
|
|
</block> |
|
|
<block name="searchingPhysicalStructureBlock" datasource="physicalStructureDataSource"> |
|
426 |
<entry name="idEntry" field="_table" |
<entry name="idEntry" field="_table" |
427 |
x="1" y="1" hidden="y"/> |
x="1" y="1" hidden="y"/> |
428 |
<entry name="nameEntry" field="name" |
<entry name="nameEntry" field="name" |
429 |
x="1" y="1" hidden="y"/> |
x="1" y="1" hidden="y"/> |
430 |
</block> |
</block --> |
431 |
<block name="searchingCountryBlock" datasource="countryDataSource"> |
|
|
<entry name="idEntry" field="_table" |
|
|
x="1" y="1" hidden="y"/> |
|
|
<entry name="iso3Entry" field="iso3" |
|
|
x="1" y="1" hidden="y"/> |
|
|
<entry name="nameEntry" field="name" |
|
|
x="1" y="1" hidden="y"/> |
|
|
</block> |
|
432 |
<trigger type="Pre-Focusin"><![CDATA[ |
<trigger type="Pre-Focusin"><![CDATA[ |
433 |
if str(productResultBlock.productIdREntry)!='': |
if str(productResultBlock.productIdREntry)!='': |
434 |
if str(productBlock.product_classificationIdEntry)!='': |
callTrigger ('product_classificationForId') |
435 |
searchingProductClassificationBlock.clear() |
|
436 |
searchingProductClassificationBlock.initQuery () |
# if str(productBlock.physical_structureIdEntry)!='': |
437 |
searchingProductClassificationBlock.idEntry= str(productBlock.product_classificationIdEntry) |
# searchingPhysicalStructureBlock.clear() |
438 |
searchingProductClassificationBlock.processQuery () |
# searchingPhysicalStructureBlock.initQuery () |
439 |
productBlock.product_classificationNameEntry= str(searchingProductClassificationBlock.nameEntry) |
# searchingPhysicalStructureBlock.idEntry= str(productBlock.physical_structureIdEntry) |
440 |
else: |
# searchingPhysicalStructureBlock.processQuery () |
441 |
productBlock.product_classificationEntry= '' |
# productBlock.physical_structureNameEntry= str(searchingPhtsicalStructureBlock.nameEntry) |
442 |
|
# else: |
443 |
if str(productBlock.physical_structureIdEntry)!='': |
# productBlock.physical_structureEntry= '' |
444 |
searchingPhysicalStructureBlock.clear() |
|
445 |
searchingPhysicalStructureBlock.initQuery () |
# use of the component's trigger |
446 |
searchingPhysicalStructureBlock.idEntry= str(productBlock.physical_structureIdEntry) |
callTrigger ('countryForId') |
|
searchingPhysicalStructureBlock.processQuery () |
|
|
productBlock.physical_structureNameEntry= str(searchingPhtsicalStructureBlock.nameEntry) |
|
|
else: |
|
|
productBlock.physical_structureEntry= '' |
|
|
|
|
|
if str(productBlock.countryIdEntry)!='': |
|
|
searchingCountryBlock.clear() |
|
|
searchingCountryBlock.initQuery () |
|
|
searchingCountryBlock.idEntry= str(productBlock.countryIdEntry) |
|
|
searchingCountryBlock.processQuery () |
|
|
productBlock.countryIso3Entry= str(searchingCountryBlock.iso3Entry) |
|
|
productBlock.countryNameEntry= str(searchingCountryBlock.nameEntry) |
|
|
else: |
|
|
productBlock.countryIso3Entry= '' |
|
|
productBlock.countryNameEntry= '' |
|
447 |
]]></trigger> |
]]></trigger> |
448 |
<!-- new_schema_end --> |
<!-- new_schema_end --> |
449 |
|
|
450 |
<trigger type="pre-Focusout" src="askForChangesTrigger"/> |
<trigger type="pre-Focusout" src="askForChangesTrigger"/> |
451 |
<box label="Datos" x="0" y="0" height="20" width="70"> |
<box label="Datos"> |
452 |
<block name="productBlock" datasource="productDataSource" restrictInsert="y" transparentBlock="y"> |
<lam:box> |
453 |
<entry x="0" y="0" name="priceTypeEntry" |
<block name="productBlock" datasource="productDataSource" restrictInsert="y"> |
454 |
field="_price_data.price_type" hidden="y"/> |
<entry name="priceTypeEntry" field="_price_data.price_type" hidden="y"/> |
455 |
<entry x="0" y="0" name="productCodeTypeEntry" |
<entry name="productCodeTypeEntry" field="_product_code_data.product_code_type" hidden="y"/> |
456 |
field="_product_code_data.product_code_type" hidden="y"/> |
<entry name="productIdEntry" field="product.id" hidden="y"/> |
457 |
<entry name="productIdEntry" field="product.id" hidden="y" |
|
458 |
x="1" y="1" width="20"/> |
<lam:box lam:boxtype="h"> |
459 |
<label text="Nombre Canónico:" x="1" y="1"/> |
<label text="Nombre Canónico:"/> |
460 |
<entry name="canonical_nameEntry" field="_product_data.canonical_name" |
</lam:box> |
461 |
x="2" y="2" width="48"/> |
|
462 |
<button x="57" y="2" width="10" height="1" label="Nuevo" trigger="newProductTrigger"> |
<lam:box lam:boxtype="h"> |
463 |
<trigger type="NAMED" name="newProductTrigger"><![CDATA[ |
<entry name="canonical_nameEntry" field="_product_data.canonical_name"/> |
464 |
from hack import confirmRollback |
<lam:box width="1"/> |
465 |
|
<button label="Nuevo" trigger="newProductTrigger"> |
466 |
confirmRollback (self, productBlock, 'productCommitTrigger', productBlock.canonical_nameEntry) |
<trigger type="NAMED" name="newProductTrigger"><![CDATA[ |
467 |
]]></trigger> |
from hack import confirmRollback |
468 |
</button> |
|
469 |
<label text="Clasificación:" x="1" y="3"/> |
confirmRollback (self, productBlock, 'productCommitTrigger', productBlock.canonical_nameEntry) |
470 |
<entry name="product_classificationIdEntry" field="_product_data.product_classification" |
]]></trigger> |
471 |
x="1" y="1" hidden="y"/> |
</button> |
472 |
<!-- new_schema_begin --> |
<lam:box width="1"/> |
473 |
<entry name="product_classificationNameEntry" |
</lam:box> |
474 |
x="2" y="4" width="40"/> |
|
475 |
<button name="searchClassificationButton" label="Buscar" trigger="searchClassificationTrigger" |
<lam:box lam:boxtype="h"> |
476 |
x="42" y="4" width="10" height="1"> |
<neb:Sub neb:src="inlineSearch.nebc" label="Clasificación" |
477 |
<trigger name="searchClassificationTrigger" type="NAMED"><![CDATA[ |
table="product_classification" target_field="product.product_classification" target_block="productBlock" |
478 |
try: |
use_code="0" object_select_form="productClassificationSelect.gfd"/> |
479 |
from gnue.forms.GFEvent import GFEvent |
<lam:box width="1"/> |
480 |
except ImportError: |
</lam:box> |
481 |
from gnue.common.events.Event import Event as GFEvent |
<!--lam:box lam:boxtype="h"/> |
482 |
|
<lam:box width="1"/> |
483 |
setStatusText('buscando...') |
<label text="Ubicación:"/> |
484 |
self._object.dispatchEvent(GFEvent('beginWAIT')) |
<lam:box width="1"/> |
485 |
|
</lam:box> |
486 |
def setClassification (recNo): |
<lam:box lam:boxtype="h"/> |
487 |
if recNo>=0: |
<lam:box width="1"/> |
488 |
searchingProductClassificationBlock.jumpRecord (recNo) |
<entry name="physical_structureIdEntry" field="_product_data.location" hidden="y"/> |
489 |
productBlock.product_classificationIdEntry= str(searchingProductClassificationBlock.idEntry) |
<lam:box width="1"/> |
490 |
productBlock.product_classificationNameEntry= str(searchingProductClassificationBlock.nameEntry) |
<entry name="physical_structureNameEntry" |
491 |
|
x="2" y="6" width="40"/> |
492 |
# look for the name... |
<button name="searchLocationButton" label="Buscar" trigger="searchLocationTrigger" |
493 |
searchingProductClassificationBlock.clear() |
x="42" y="6" width="10" height="1"> |
494 |
searchingProductClassificationBlock.initQuery () |
<trigger name="searchLocationTrigger" type="NAMED"> |
495 |
searchingProductClassificationBlock.nameEntry= str(productBlock.product_classificationNameEntry)+'%' |
# aca deberia haber algo parecido a lo que hay en los otros trigger similares. |
496 |
searchingProductClassificationBlock.processQuery () |
self.genericBox('No implementado', ['Aceptar']); |
497 |
|
</trigger> |
498 |
# are there too much results? |
</button> |
499 |
resultCount= searchingProductClassificationBlock.getRecordCount () |
<button x="53" y="6" name="physical_structureButton" |
500 |
if resultCount>1: |
label="..." width="5" height="1" trigger="physical_structureTrigger"> |
501 |
# do the select-man |
<trigger type="NAMED" name="physical_structureTrigger"> |
502 |
runForm ('productClassificationSelect.gfd', { |
self.genericBox('No implementado', ['Aceptar']); |
503 |
'data': searchingProductClassificationBlock, |
</trigger> |
504 |
'callback': setClassification |
</button--> |
505 |
}) |
|
506 |
setStatusText('Aceptar') |
<lam:box lam:boxtype="h"> |
507 |
elif resultCount==1: |
<neb:Sub neb:src="inlineSearch.nebc" label="País de Origen" |
508 |
setClassification (0) |
table="country" target_field="product.country" target_block="productBlock" |
509 |
setStatusText('Aceptar') |
code_field="iso3" code_width="4"/> |
510 |
else: |
<lam:box width="1"/> |
511 |
setStatusText(' no se encontraron registros') |
</lam:box> |
512 |
|
|
513 |
self._object.dispatchEvent(GFEvent('endWAIT')) |
<lam:box lam:boxtype="h"> |
514 |
]]></trigger> |
<lam:box> |
515 |
</button> |
<lam:box lam:boxtype="h"> |
516 |
<!-- new_schema_end --> |
<label text="Precio unitario base"/> |
517 |
<button x="53" y="4" name="product_classificationButton" |
</lam:box> |
518 |
label="..." width="5" height="1" trigger="product_classificationTrigger"> |
<lam:box lam:boxtype="h"> |
519 |
<trigger type="NAMED" name="product_classificationTrigger"><![CDATA[ |
<entry name="priceEntry" field="_price_data.unit_price"/> |
520 |
runForm('product_classification.gfd'); |
<!--multicurrency--> |
521 |
]]></trigger> |
<lam:box width="1"/> |
522 |
</button> |
<label text="Moneda"/> |
523 |
<label text="Ubicación:" x="1" y="5"/> |
<entry name="currencyTypeIdEntry" field="_price_data.currency_type" style="dropdown" |
524 |
<entry name="physical_structureIdEntry" field="_product_data.location" |
foreign_key="currencyDataSource._table" foreign_key_description="name" |
525 |
x="1" y="1" hidden="y"/> |
default="1"/> |
526 |
<!-- new_schema_begin --> |
</lam:box> |
527 |
<entry name="physical_structureNameEntry" |
<lam:box lam:boxtype="h"> |
528 |
x="2" y="6" width="40"/> |
<label text="Código interno"/> |
529 |
<button name="searchLocationButton" label="Buscar" trigger="searchLocationTrigger" |
</lam:box> |
530 |
x="42" y="6" width="10" height="1"> |
<lam:box lam:boxtype="h"> |
531 |
<trigger name="searchLocationTrigger" type="NAMED"> |
<entry name="codeEntry" field="_product_code_data.code"/> |
532 |
# aca deberia haber algo parecido a lo que hay en los otros trigger similares. |
</lam:box> |
533 |
self.genericBox('No implementado', ['Aceptar']); |
</lam:box> |
534 |
</trigger> |
<lam:box width="1"/> |
535 |
</button> |
<lam:box> |
536 |
<!-- new_schema_end --> |
<lam:box lam:boxtype="h"> |
537 |
<button x="53" y="6" name="physical_structureButton" |
<label text="% IVA"/> |
538 |
label="..." width="5" height="1" trigger="physical_structureTrigger"> |
</lam:box> |
539 |
<trigger type="NAMED" name="physical_structureTrigger"> |
<lam:box lam:boxtype="h"> |
540 |
self.genericBox('No implementado', ['Aceptar']); |
<entry name="productVATEntry" field="_product_tax_data.amount" default="21" |
541 |
</trigger> |
width="10"/> |
542 |
</button> |
</lam:box> |
543 |
<label text="País de Origen:" x="1" y="7"/> |
<lam:box lam:boxtype="h"> |
544 |
<entry name="countryIdEntry" field="_product_data.country" |
<!--/multicurrency--> |
545 |
x="1" y="1" hidden="y"/> |
<entry name="productTaxEntry" field="_product_tax_data.tax" hidden="y"/> |
546 |
<!-- new_schema_begin --> |
</lam:box> |
547 |
<entry name="countryIso3Entry" |
<lam:box lam:boxtype="h"> |
548 |
x="2" y="8" width="4"/> |
<label text="vendible"/> |
549 |
<entry name="countryNameEntry" |
</lam:box> |
550 |
x="6" y="8" width="36"/> |
<lam:box lam:boxtype="h"> |
551 |
<button name="searchCountryButton" label="Buscar" trigger="searchCountryTrigger" |
<entry name="exludedEntry" field="_price_data.excluded" hidden="y" default="0"/> |
552 |
x="42" y="8" width="10" height="1"> |
<entry name="salableValueEntry" field="_product_data.salable" default="1"/> |
553 |
<trigger name="searchCountryTrigger" type="NAMED"><![CDATA[ |
</lam:box> |
554 |
try: |
</lam:box> |
555 |
from gnue.forms.GFEvent import GFEvent |
</lam:box> |
556 |
except ImportError: |
|
|
from gnue.common.events.Event import Event as GFEvent |
|
|
|
|
|
self._object.dispatchEvent(GFEvent('beginWAIT')) |
|
|
setStatusText('buscando...') |
|
|
|
|
|
def setCountry (recNo): |
|
|
if recNo>=0: |
|
|
searchingCountryBlock.jumpRecord (recNo) |
|
|
productBlock.countryIdEntry= str(searchingCountryBlock.idEntry) |
|
|
productBlock.countryIso3Entry= str(searchingCountryBlock.iso3Entry) |
|
|
productBlock.countryNameEntry= str(searchingCountryBlock.nameEntry) |
|
|
|
|
|
# look for the name... |
|
|
searchingCountryBlock.clear() |
|
|
searchingCountryBlock.initQuery () |
|
|
searchingCountryBlock.iso3Entry= str(productBlock.countryIso3Entry)+'%' |
|
|
searchingCountryBlock.nameEntry= str(productBlock.countryNameEntry)+'%' |
|
|
searchingCountryBlock.processQuery () |
|
|
|
|
|
# are there too much results? |
|
|
resultCount= searchingCountryBlock.getRecordCount () |
|
|
if resultCount>1: |
|
|
# do the select-man |
|
|
runForm ('countrySelect.gfd', { |
|
|
'data': searchingCountryBlock, |
|
|
'callback': setCountry |
|
|
}) |
|
|
setStatusText('Aceptar') |
|
|
elif resultCount==1: |
|
|
setCountry (0) |
|
|
setStatusText('Aceptar') |
|
|
else: |
|
|
setStatusText(' no se encontraron registros') |
|
|
|
|
|
self._object.dispatchEvent(GFEvent('endWAIT')) |
|
|
]]></trigger> |
|
|
</button> |
|
|
<!-- new_schema_end --> |
|
|
<button x="53" y="8" name="countryButton" |
|
|
label="..." width="5" height="1" trigger="countryTrigger"> |
|
|
<trigger type="NAMED" name="countryTrigger"><![CDATA[ |
|
|
runForm('country.gfd'); |
|
|
]]></trigger> |
|
|
</button> |
|
|
<label x="1" y="9" text="Precio unitario base"/> |
|
|
<entry x="1" y="10" name="priceEntry" field="_price_data.unit_price" width="10"/> |
|
|
<!--multicurrency--> |
|
|
<label x="12" y="10" text="moneda"/> |
|
|
<entry x="18" y="10" field="_price_data.currency_type" name="currencyTypeIdEntry" |
|
|
width="10" style="dropdown" foreign_key="currencyDataSource._table" default="1" |
|
|
foreign_key_description="name" /> |
|
|
<entry x="1" y="10" name="exludedEntry" field="_price_data.excluded" hidden="" default="0"/> |
|
|
<!--/multicurrency--> |
|
|
<label x="30" y="9" text="% IVA"/> |
|
|
<entry x="30" y="10" hidden="y" name="productTaxEntry" field="_product_tax_data.tax"/> |
|
|
<entry x="30" y="10" name="productVATEntry" |
|
|
field="_product_tax_data.amount" default="21" width="12" /> |
|
|
<label x="1" y="11" text="Código interno"/> |
|
|
<entry x="1" y="12" name="codeEntry" |
|
|
field="_product_code_data.code" width="12"/> |
|
|
<label x="30" y="11" text="vendible"/> |
|
|
<entry x="30" y="12" name="salableValueEntry" field="_product_data.salable" width="2" default="1"/> |
|
557 |
<!-- <label x="1" y="13" text="Nivel mínimo"/> --> |
<!-- <label x="1" y="13" text="Nivel mínimo"/> --> |
558 |
<!-- <entry x="1" y="14" hidden="y" name="levelEntry" field="_product_store_data.level"/> --> |
<!-- <entry x="1" y="14" hidden="y" name="levelEntry" field="_product_store_data.level"/> --> |
559 |
<!-- <entry x="1" y="14" name="lowaterEntry" --> |
<!-- <entry x="1" y="14" name="lowaterEntry" --> |
561 |
<!-- <label x="30" y="13" text="Nivel máximo"/> --> |
<!-- <label x="30" y="13" text="Nivel máximo"/> --> |
562 |
<!-- <entry x="30" y="14" name="hiwaterEntry" --> |
<!-- <entry x="30" y="14" name="hiwaterEntry" --> |
563 |
<!-- field="_product_store_data.hiwater" width="12" /> --> |
<!-- field="_product_store_data.hiwater" width="12" /> --> |
564 |
<button x="1" y="17" trigger="productCommitTrigger" width="9" label="Aceptar" |
<lam:box height="3"/> |
565 |
name="productCommitBtn" height="1"/> |
<lam:box lam:boxtype="h"> |
566 |
<button x="11" y="17" trigger="productDeleteTrigger" width="9" label="Borrar" |
<button label="Aceptar" trigger="productCommitTrigger"/> |
567 |
name="productDeleteBtn" height="1"/> |
<lam:box width="1"/> |
568 |
<button x="21" y="17" trigger="productRollbackTrigger" width="9" label="Cancelar" |
<button label="Borrar" trigger="productDeleteTrigger"/> |
569 |
name="productRollbackBtn" height="1"/> |
<lam:box width="1"/> |
570 |
</block> |
<button label="Cancelar" trigger="productRollbackTrigger"/> |
571 |
|
</lam:box> |
572 |
|
<lam:box height="1"/> |
573 |
|
</block> |
574 |
|
</lam:box> |
575 |
</box> |
</box> |
576 |
</page> |
</page> |
577 |
|
|