6 |
</neb:Block> |
</neb:Block> |
7 |
|
|
8 |
<datasource name="tmpValuesDataSource" cache="1"/> |
<datasource name="tmpValuesDataSource" cache="1"/> |
9 |
<datasource name="payDataSource" cache="1"/> |
|
10 |
<datasource name="prodSearchDataSource" cache="1"/> |
<datasource name="prodSearchDataSource" cache="1"/> |
11 |
<datasource name="prodResultDataSource" cache="1"/> |
<datasource name="prodResultDataSource" cache="1"/> |
12 |
<datasource name="dataCurrencyDataSource" cache="1"/> |
|
|
<datasource name="tmpCurrencyDataSource" cache="1"/> |
|
13 |
|
|
14 |
<datasource name="ownOrganizationDataSource" database="papo" |
<datasource name="ownOrganizationDataSource" database="papo" |
15 |
table="_entity_data, _own_entity_data, _organization_data, _persona_tax_profile_data, _tax_profile_data"> |
table="_entity_data, _own_entity_data, _organization_data, _persona_tax_profile_data, _tax_profile_data"> |
178 |
|
|
179 |
<!-- Origen de datos que srive para calcular el total facturado --> |
<!-- Origen de datos que srive para calcular el total facturado --> |
180 |
<datasource name="productInvoiceTotalDataSource" database="papo" |
<datasource name="productInvoiceTotalDataSource" database="papo" |
181 |
table="_entity_data, own_document, own_item, own_product_item, own_item_tax" |
table="_entity_data, own_document" > |
|
order_by="own_product_item.id"> |
|
182 |
<condition> |
<condition> |
183 |
<and> |
<and> |
184 |
<eq> |
<eq> |
186 |
<cfield name="_entity_data.id"/> |
<cfield name="_entity_data.id"/> |
187 |
<cfield name="own_document.recipient"/> |
<cfield name="own_document.recipient"/> |
188 |
</eq> |
</eq> |
|
<eq> |
|
|
<cfield name="own_document.id"/> |
|
|
<cfield name="own_item.own_document"/> |
|
|
</eq> |
|
|
<eq> |
|
|
<cfield name="own_item.id"/> |
|
|
<cfield name="own_product_item.own_item"/> |
|
|
</eq> |
|
|
<eq> |
|
|
<cfield name="own_item.id"/> |
|
|
<cfield name="own_item_tax.own_item"/> |
|
|
</eq> |
|
189 |
<or> |
<or> |
190 |
<eq> |
<eq> |
191 |
<cfield name="own_document.own_document_type"/> |
<cfield name="own_document.own_document_type"/> |
226 |
<cfield name="_entity_data.id"/> |
<cfield name="_entity_data.id"/> |
227 |
<cfield name="own_document.recipient"/> |
<cfield name="own_document.recipient"/> |
228 |
</eq> |
</eq> |
|
<eq> |
|
|
<cfield name="own_document.id"/> |
|
|
<cfield name="own_item.own_document"/> |
|
|
</eq> |
|
|
<eq> |
|
|
<cfield name="own_item.id"/> |
|
|
<cfield name="own_product_item.own_item"/> |
|
|
</eq> |
|
|
<eq> |
|
|
<cfield name="own_item.id"/> |
|
|
<cfield name="own_item_tax.own_item"/> |
|
|
</eq> |
|
229 |
<or> |
<or> |
230 |
<eq> |
<eq> |
231 |
<cfield name="own_document.own_document_type"/> |
<cfield name="own_document.own_document_type"/> |
342 |
</condition> |
</condition> |
343 |
</datasource> |
</datasource> |
344 |
|
|
|
<neb:Sub neb:src="datasource.nebc" zot="../zot/PAPO-ER.zot" |
|
|
search="currency_type" database="papo" name="currencyTypeDataSource" /> |
|
|
|
|
|
<!-- Origen de datos que sirve para dar de alta pagos con algun tipo de currency --> |
|
|
<datasource name="currencyMovementDataSource" database="papo" |
|
|
table="movement, currency_movement"> |
|
|
<condition> |
|
|
<eq> |
|
|
<cfield name="movement.id"/> |
|
|
<cfield name="currency_movement.movement"/> |
|
|
</eq> |
|
|
</condition> |
|
|
</datasource> |
|
|
|
|
|
<!-- Origen de datos que sirve para dar de alta pagos con cta. cte. --> |
|
|
<datasource name="movementDataSource" database="papo" table="movement"/> |
|
|
|
|
|
<!-- Origen de datos que sirve para dar de alta procedimientos de pago (en este caso de la factura) --> |
|
|
<datasource name="proceedingDataSource" database="papo" table="proceeding"/> |
|
|
|
|
|
<!-- Origen de datos que sirve para dar de alta pagos con algun tipo de currency --> |
|
|
<datasource name="ownDocumentProceedingDataSource" database="papo" table="own_document_proceeding"/> |
|
345 |
|
|
346 |
<!--=== TRIGGERS ===--> |
<!--=== TRIGGERS ===--> |
347 |
<trigger name="startUp" type="On-Startup"> |
<trigger name="startUp" type="On-Startup"> |
451 |
if len(ownDocumentBlock.dateEntry) == 0: |
if len(ownDocumentBlock.dateEntry) == 0: |
452 |
ownDocumentBlock.dateEntry = ownDocumentDataSource.getTimeStamp() |
ownDocumentBlock.dateEntry = ownDocumentDataSource.getTimeStamp() |
453 |
|
|
454 |
proceedingBlock.clear() |
|
|
proceedingBlock.dateEntry = proceedingDataSource.getTimeStamp() |
|
|
|
|
455 |
from gnue.common.GDataObjects import ConnectionError as DBError |
from gnue.common.GDataObjects import ConnectionError as DBError |
456 |
try: |
try: |
457 |
postChangeAdvance = 0 |
postChangeAdvance = 0 |
460 |
ownPosDocumentBlock.documentNumberEntry.postAtomicModify (lambda x: int(x)+1) |
ownPosDocumentBlock.documentNumberEntry.postAtomicModify (lambda x: int(x)+1) |
461 |
postChangeAdvance = 2 |
postChangeAdvance = 2 |
462 |
proceedingBlock.postChanges() |
proceedingBlock.postChanges() |
463 |
|
#cargo documento de retenciones |
464 |
|
callTrigger('retentionCommitTrigger') |
465 |
|
callTrigger('proceedingCommitTrigger') |
466 |
|
|
|
ownDocumentProceedingBlock.clear() |
|
|
ownDocumentProceedingBlock.proceedingEntry = str(proceedingBlock.idEntry) |
|
|
ownDocumentProceedingBlock.ownDocumentEntry = str(ownDocumentBlock.idEntry) |
|
|
ownDocumentProceedingBlock.amountEntry = str(payBlock.cashEntry) |
|
|
|
|
|
rc = currencyTypeBlock.getRecordCount() |
|
|
for recNum in range(rc): |
|
|
currencyTypeBlock.jumpRecord(recNum) |
|
|
if hack.a2f(currencyTypeBlock.currencyBox.payEntry,2) > 0: |
|
|
if not currencyMovementBlock.getCurrentRecord().isEmpty(): |
|
|
currencyMovementBlock.newRecord() |
|
|
currencyMovementBlock.proceedingEntry = str(proceedingBlock.idEntry) |
|
|
currencyMovementBlock.movementTypeEntry = "" # Revisar com queda esto |
|
|
currencyMovementBlock.currencyTypeEntry = str(currencyTypeBlock.currencyBox.idEntry) |
|
|
currencyMovementBlock.amountEntry = str(round(hack.a2f(currencyTypeBlock.currencyBox.payEntry,2) * hack.a2f(currencyTypeBlock.currencyBox.rateEntry,4),2)) |
|
|
|
|
|
postChangeAdvance = 3 |
|
|
ownDocumentProceedingBlock.postChanges() |
|
|
postChangeAdvance = 4 |
|
|
currencyMovementBlock.postChanges() |
|
467 |
postChangeAdvance = 5 |
postChangeAdvance = 5 |
468 |
lOwnDocId = str(ownDocumentBlock.idEntry) |
#lOwnDocId = str(ownDocumentBlock.idEntry) |
469 |
#if stock by invoice |
#if stock by invoice |
470 |
|
|
471 |
if str(ownPosBlock.stockByInvoice) == "1": |
if str(ownPosBlock.stockByInvoice) == "1": |
474 |
callTrigger('taxFillTrigger') |
callTrigger('taxFillTrigger') |
475 |
ownItemTaxBlock.postChanges() |
ownItemTaxBlock.postChanges() |
476 |
ownDocumentTaxTotalBlock.postChanges() |
ownDocumentTaxTotalBlock.postChanges() |
477 |
|
|
478 |
commitConnection() |
commitConnection() |
479 |
except DBError, err: |
except DBError, err: |
480 |
rollbackConnection() |
rollbackConnection() |
574 |
payBlock.ctaCteEntry = "0.0" |
payBlock.ctaCteEntry = "0.0" |
575 |
</trigger> |
</trigger> |
576 |
|
|
|
<trigger type="NAMED" name="currencyWorkTrigger"><![CDATA[ |
|
|
import hack |
|
|
|
|
|
if hack.a2f(payBlock.cashEntry,2) > 0: |
|
|
currencyTypeBlock.clear() |
|
|
currencyDataBlock.clear() |
|
|
|
|
|
rs = currencyTypeDataSource.createResultSet() |
|
|
client = 0 |
|
|
more = rs.firstRecord() |
|
|
while more: |
|
|
if not currencyTypeBlock.getCurrentRecord().isEmpty(): |
|
|
currencyTypeBlock.newRecord() |
|
|
currencyTypeBlock.currencyBox.idEntry = rs.current.getField("_table") |
|
|
currencyTypeBlock.currencyBox.nameEntry = rs.current.getField("name") |
|
|
currencyTypeBlock.currencyBox.rateEntry = hack.a2f(rs.current.getField("rate"),4) |
|
|
monto = round(hack.a2f(payBlock.cashEntry,4) / hack.a2f(rs.current.getField("rate"),4),4) |
|
|
currencyTypeBlock.currencyBox.formatEntry = rs.current.getField("format") |
|
|
currencyTypeBlock.currencyBox.amountEntry = str(currencyTypeBlock.currencyBox.formatEntry) % monto |
|
|
currencyTypeBlock.currencyBox.payEntry = 0.0 |
|
|
more = rs.nextRecord() |
|
|
|
|
|
currencyTypeBlock.firstRecord () |
|
|
currencyDataBlock.recipientBox.dateEntry = str(tmpBlock.tmpDateEntry) |
|
|
currencyDataBlock.recipientBox.numberEntry = str(ownPosDocumentBlock.documentNumberEntry) |
|
|
|
|
|
currencyDataBlock.clientRecipientBox.clientCodeEntry = str(ownDocumentBlock.clientRecipientBox.clientCodeEntry) |
|
|
currencyDataBlock.clientRecipientBox.clientNameEntry = str(ownDocumentBlock.clientRecipientBox.clientNameEntry) |
|
|
#payBlock.dateEntry = str(tmpBlock.tmpDateEntry) |
|
|
currencyDataBlock.clientRecipientBox.totalEntry = str(hack.a2f(payBlock.cashEntry,2)) |
|
|
|
|
|
]]></trigger> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<trigger type="NAMED" name="currencyTypeTrigger"><![CDATA[ |
|
|
import hack |
|
|
|
|
|
rn= currencyTypeBlock.getCurrentRecordNumber() |
|
|
|
|
|
total = hack.a2f(payBlock.cashEntry,2) |
|
|
rc = currencyTypeBlock.getRecordCount() |
|
|
for recNum in range(rc): |
|
|
currencyTypeBlock.jumpRecord(recNum) |
|
|
if hack.a2f(currencyTypeBlock.currencyBox.payEntry,2) > 0: |
|
|
total -= round(hack.a2f(currencyTypeBlock.currencyBox.payEntry,4) * hack.a2f(currencyTypeBlock.currencyBox.rateEntry,4),4) |
|
|
|
|
|
rc = currencyTypeBlock.getRecordCount() |
|
|
for recNum in range(rc): |
|
|
currencyTypeBlock.jumpRecord(recNum) |
|
|
if hack.a2f(currencyTypeBlock.currencyBox.rateEntry,4) > 0: |
|
|
monto = round(total / hack.a2f(currencyTypeBlock.currencyBox.rateEntry,4),4) |
|
|
currencyTypeBlock.currencyBox.amountEntry = str(currencyTypeBlock.currencyBox.formatEntry) % monto |
|
|
currencyTypeBlock.jumpRecord(rn) |
|
|
]]></trigger> |
|
|
|
|
577 |
|
|
578 |
<trigger name="alertOfDespatchNoteTrigger" type="NAMED"> |
<trigger name="alertOfDespatchNoteTrigger" type="NAMED"> |
579 |
if str(ownDocumentBlock.relatedToEntry)and (str(totalBlock.printDespatchNote) == "1") : |
if str(ownDocumentBlock.relatedToEntry)and (str(totalBlock.printDespatchNote) == "1") : |
630 |
|
|
631 |
|
|
632 |
|
|
|
<trigger type="NAMED" name="endTypeCurrencyTrigger"><![CDATA[ |
|
|
|
|
|
import hack |
|
|
|
|
|
callTrigger('currencyTypeTrigger') |
|
|
|
|
|
total = hack.a2f(payBlock.cashEntry,2) |
|
|
rc = currencyTypeBlock.getRecordCount() |
|
|
for recNum in range(rc): |
|
|
currencyTypeBlock.jumpRecord(recNum) |
|
|
if hack.a2f(currencyTypeBlock.currencyBox.rateEntry,4) > 0: |
|
|
total -= round(hack.a2f(currencyTypeBlock.currencyBox.payEntry,4) * hack.a2f(currencyTypeBlock.currencyBox.rateEntry,4),4) |
|
|
|
|
|
if round(total,2) != 0: |
|
|
genericBox("El los montos no completan el total del documento\n",['Aceptar']) |
|
|
else: |
|
|
from gnue.common.GDataObjects import ConnectionError as DBError |
|
|
callTrigger('startWaitingModeTrigger') |
|
|
try: |
|
|
callTrigger ('commitTrigger') |
|
|
if str(totalBlock.printDespatchNote) == "1": |
|
|
callTrigger('makeDespatchNote') |
|
|
else: |
|
|
reportNo= str(ownDocumentBlock.typeEntry) |
|
|
print 'here: %s, %s' % (str(tmpValuesDataSource.alienIVACond), str(tmpValuesDataSource.ownIVACond)) |
|
|
if str(tmpValuesDataSource.alienIVACond)=='2' and str(tmpValuesDataSource.ownIVACond)=='1': |
|
|
# hack to use alternative report and print config |
|
|
reportNo= '4_and_half' |
|
|
report='productInvoice-%s' % reportNo |
|
|
print 'here: %s' % reportNo |
|
|
hack.pleasePrint (self, reportNo, report, [ 'id='+str(ownDocumentBlock.idEntry) ],str(ownPosDocumentBlock.documentPrintCommand)) |
|
|
callTrigger('makeDespatchNote') |
|
|
callTrigger('rollbackTrigger') |
|
|
except DBError: |
|
|
# just ignore, as the commit trigger already reports the error to the user |
|
|
pass |
|
|
callTrigger('endWaitingModeTrigger') |
|
|
|
|
|
]]></trigger> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<trigger name="cashEntryPreFocusout" type="NAMED"> |
|
|
|
|
|
import hack |
|
|
|
|
|
lCurrentCredit = round(hack.a2f(tmpValuesDataSource.creditLimitAmount,2) - \ |
|
|
hack.a2f(ownDocumentBlock.clientRecipientBox.deudaEntry,2),2) |
|
|
|
|
|
newCtaCteValue = round(hack.a2f(totalBlock.totalEntry,2) - hack.a2f(payBlock.cashEntry,2),2) |
|
|
if newCtaCteValue > lCurrentCredit and hack.a2f(payBlock.cashEntry,2) != hack.a2f(totalBlock.totalEntry,2): |
|
|
genericBox("Esta excedido el Límite de Crédito",["Aceptar"]) |
|
|
payBlock.ctaCteEntry = "0.00" |
|
|
payBlock.cashEntry = hack.a2f(totalBlock.totalEntry,2) |
|
|
else: |
|
|
payBlock.ctaCteEntry = newCtaCteValue |
|
|
callTrigger('currencyTypeTrigger') |
|
|
|
|
|
</trigger> |
|
|
|
|
|
<trigger name="ctaCteEntryPreFocusout" type="NAMED"> |
|
|
|
|
|
import hack |
|
|
|
|
|
lCurrentCredit = round(hack.a2f(tmpValuesDataSource.creditLimitAmount,2) - \ |
|
|
hack.a2f(ownDocumentBlock.clientRecipientBox.deudaEntry,2),2) |
|
|
|
|
|
if not (0 > lCurrentCredit and hack.a2f(payBlock.ctaCteEntry,2) == 0.00): |
|
|
if hack.a2f(payBlock.ctaCteEntry,2) > lCurrentCredit: |
|
|
genericBox("Esta excedido el Límite de Crédito",["Aceptar"]) |
|
|
payBlock.ctaCteEntry = "0.00" |
|
|
payBlock.cashEntry = hack.a2f(totalBlock.totalEntry,2) |
|
|
else: |
|
|
payBlock.cashEntry = str(round(hack.a2f(totalBlock.totalEntry,2) - hack.a2f(payBlock.ctaCteEntry,2),2)) |
|
|
callTrigger('currencyTypeTrigger') |
|
|
|
|
|
</trigger> |
|
|
|
|
|
<trigger type="NAMED" name="cancelCurrencyTrigger"><![CDATA[ |
|
|
|
|
|
setFocus(ownItemBlock.prodCodeSEntry) |
|
|
|
|
|
]]></trigger> |
|
|
|
|
|
|
|
633 |
<!--=== ah, and here comes the dinner.... er, form! ===--> |
<!--=== ah, and here comes the dinner.... er, form! ===--> |
634 |
<page name="Factura a Clientes"> |
<page name="Factura a Clientes"> |
635 |
<box height="9" label="Factura de Productos a Clientes" |
<box height="9" label="Factura de Productos a Clientes" |
636 |
name="invoiceHeaderBox" width="105" x="0" y="0"> |
name="invoiceHeaderBox" width="105" x="0" y="0"> |
637 |
<!-- Estos bloques son para la gestion del pago de la factura --> |
<!-- Estos bloques son para la gestion del pago de la factura --> |
638 |
<block name="proceedingBlock" datasource="proceedingDataSource" transparentBlock=""> |
|
|
<entry name="idEntry" field="id" hidden="" x="1" y="1" width="12"/> |
|
|
<entry name="dateEntry" field="date" hidden="" x="1" y="1" width="12"/> |
|
|
</block> |
|
639 |
|
|
640 |
|
|
641 |
<!-- Actualiza los datos del cliente --> |
<!-- Actualiza los datos del cliente --> |
705 |
spentTotal = 0 |
spentTotal = 0 |
706 |
|
|
707 |
while more: |
while more: |
708 |
invoiceTotal = 0 |
currOwnDoc = productInvoiceResultSet.current.getField("own_document.id") |
709 |
currOwnDoc = productInvoiceResultSet.current.getField("own_document.id") |
invoiceTotal = hack.a2f(productInvoiceResultSet.current.getField("own_document.net_total"),4)+\ |
710 |
while productInvoiceResultSet.current.getField("own_document.id") == currOwnDoc and more: |
hack.a2f(productInvoiceResultSet.current.getField("own_document.tax_total"),4) |
|
lQty = hack.a2f(productInvoiceResultSet.current.getField("own_product_item.qty"),4) |
|
|
lUnitPrice = hack.a2f(productInvoiceResultSet.current.getField("own_product_item.unit_price"),4) |
|
|
lBonus = hack.a2f(productInvoiceResultSet.current.getField("own_item.bonus"),4) |
|
|
lDiscount = hack.a2f(productInvoiceResultSet.current.getField("own_item.discount"),4) |
|
|
item = round(lQty * lUnitPrice - lBonus - lDiscount,2) |
|
|
#print "qty %d * unit_price %d - bonus %d - discount %d = %d " % (lQty, lUnitPrice, lBonus, lDiscount, lQty * lUnitPrice - lBonus - lDiscount) |
|
|
itemTaxTotal = 0 |
|
|
currItem = productInvoiceResultSet.current.getField("own_item.id") |
|
|
while productInvoiceResultSet.current.getField("own_item.id") == currItem and more: |
|
|
itemTaxTotal += hack.a2f(productInvoiceResultSet.current.getField("own_item_tax.amount"),4) |
|
|
more = productInvoiceResultSet.nextRecord() |
|
|
invoiceTotal += round(item + itemTaxTotal,2) |
|
|
# Calcula los impuestos del documento en si |
|
|
odt_rs = ownDocumentTaxTotDataSource.createResultSet({"own_document.id":currOwnDoc}) |
|
|
odt_more = odt_rs.firstRecord() |
|
|
while odt_more: |
|
|
invoiceTotal += hack.a2f(odt_rs.current.getField("own_document_tax.amount"),4) |
|
|
odt_more = odt_rs.nextRecord() |
|
711 |
spentTotal += invoiceTotal |
spentTotal += invoiceTotal |
712 |
|
more = productInvoiceResultSet.nextRecord() |
713 |
|
|
714 |
|
|
715 |
# Calculo del total acreditado |
# Calculo del total acreditado |
716 |
productCreditNoteResultSet = productCreditNoteTotalDataSource.createResultSet(condCreditNote) |
productCreditNoteResultSet = productCreditNoteTotalDataSource.createResultSet(condCreditNote) |
717 |
more = productCreditNoteResultSet.firstRecord() |
more = productCreditNoteResultSet.firstRecord() |
718 |
creditTotal = 0 |
creditTotal = 0 |
719 |
|
|
720 |
while more: |
while more: |
|
creditNoteTotal = 0 |
|
721 |
currOwnDoc = productCreditNoteResultSet.current.getField("own_document.id") |
currOwnDoc = productCreditNoteResultSet.current.getField("own_document.id") |
722 |
while productCreditNoteResultSet.current.getField("own_document.id") == currOwnDoc and more: |
creditNoteTotal = hack.a2f(creditNoteTotalproductCreditNoteResultSet.current.getField("own_document.net_total"),4)+\ |
723 |
lQty = hack.a2f(productCreditNoteResultSet.current.getField("own_product_item.qty"),4) |
hack.a2f(creditNoteTotalproductCreditNoteResultSet.current.getField("own_document.tax_total"),4) |
724 |
lUnitPrice = hack.a2f(productCreditNoteResultSet.current.getField("own_product_item.unit_price"),4) |
|
|
lBonus = hack.a2f(productCreditNoteResultSet.current.getField("own_item.bonus"),4) |
|
|
lDiscount = hack.a2f(productCreditNoteResultSet.current.getField("own_item.discount"),4) |
|
|
item = round(lQty * lUnitPrice - lBonus - lDiscount,2) |
|
|
#print "qty %d * unit_price %d - bonus %d - discount %d = %d " % (lQty, lUnitPrice, lBonus, lDiscount, lQty * lUnitPrice - lBonus - lDiscount) |
|
|
itemTaxTotal = 0 |
|
|
currItem = productCreditNoteResultSet.current.getField("own_item.id") |
|
|
while productCreditNoteResultSet.current.getField("own_item.id") == currItem and more: |
|
|
itemTaxTotal += hack.a2f(productCreditNoteResultSet.current.getField("own_item_tax.amount"),4) |
|
|
more = productCreditNoteResultSet.nextRecord() |
|
|
creditNoteTotal += round(item + itemTaxTotal,2) |
|
|
# Calcula los impuestos del documento en si |
|
|
odt_rs = ownDocumentTaxTotDataSource.createResultSet({"own_document.id":currOwnDoc}) |
|
|
odt_more = odt_rs.firstRecord() |
|
|
while odt_more: |
|
|
creditNoteTotal += hack.a2f(odt_rs.current.getField("own_document_tax.amount"),4) |
|
|
odt_more = odt_rs.nextRecord() |
|
725 |
creditTotal += creditNoteTotal |
creditTotal += creditNoteTotal |
726 |
|
more = productCreditNoteResultSet.nextRecord() |
727 |
|
|
728 |
|
|
729 |
# Calculo del total cobrado |
# Calculo del total cobrado |
730 |
paidResultSet = paidTotalDataSource.createResultSet(condPay) |
paidResultSet = paidTotalDataSource.createResultSet(condPay) |
1168 |
|
|
1169 |
<neb:Sub neb:src="ownItemTax.nebc"/> |
<neb:Sub neb:src="ownItemTax.nebc"/> |
1170 |
|
|
1171 |
<block name="ownDocumentProceedingBlock" datasource="ownDocumentProceedingDataSource" transparentBlock=""> |
|
|
<entry name="proceedingEntry" field="proceeding" hidden="" x="1" y="1" width="12"/> |
|
|
<entry name="ownDocumentEntry" field="own_document" hidden="" x="1" y="1" width="12"/> |
|
|
<entry name="amountEntry" field="amount" hidden="" x="1" y="1" width="12"/> |
|
|
</block> |
|
|
<block name="currencyMovementBlock" datasource="currencyMovementDataSource" transparentBlock=""> |
|
|
<entry name="proceedingEntry" field="movement.proceeding" hidden="" x="1" y="1" width="12"/> |
|
|
<entry name="movementTypeEntry" field="movement.movement_type" hidden="" x="1" y="1" width="12"/> |
|
|
<entry name="amountEntry" field="movement.amount" hidden="" x="1" y="1" width="12"/> |
|
|
<entry name="currencyTypeEntry" field="currency_movement.currency_type" hidden="" x="1" y="1" width="12"/> |
|
|
</block> |
|
1172 |
<!-- Datasource que sirve para almacenar el resultado de la búsqueda --> |
<!-- Datasource que sirve para almacenar el resultado de la búsqueda --> |
1173 |
<block datasource="ownDocumentDataSource" name="totalBlock" restrictInsert=""> |
<block datasource="ownDocumentDataSource" name="totalBlock" restrictInsert=""> |
1174 |
<label text="Neto " x="55" y="21"/> |
<label text="Neto " x="55" y="21"/> |
1211 |
<entry name="condIVAEntry" field="_tax_profile_data._table" hidden="" x="1" y="1" width="10"/> |
<entry name="condIVAEntry" field="_tax_profile_data._table" hidden="" x="1" y="1" width="10"/> |
1212 |
</block> |
</block> |
1213 |
</page> |
</page> |
1214 |
|
<!-- Llamo al componente de pagos --> |
1215 |
|
<neb:Sub neb:src="ownDocumentPay.nebc" /> |
1216 |
|
|
|
<!--=== SECOND PAGE ===--> |
|
|
<page name="Determinación de Monedas"> |
|
|
<block name="currencyDataBlock" datasource="dataCurrencyDataSource"> |
|
|
<box height="4" label="Factura de Productos a Clientes" |
|
|
name="recipientBox" width="105" x="0" y="0"> |
|
|
<label text="Fecha:" x="1" y="1" /> |
|
|
<label text="Tipo:" x="25" y="1"/> |
|
|
<label text="Número:" x="35" y="1"/> |
|
|
<entry name="dateEntry" style="label" typecast="date" width="11" x="8" y="1"/> |
|
|
<entry name="typeEntry" style="label" width="1" x="32" y="1"/> |
|
|
<entry name="numberEntry" style="label" typecast="number" displaymask="%10d" width="11" x="43" y="1"/> |
|
|
</box> |
|
|
<box height="5" label="Datos del Cliente" name="clientRecipientBox" width="105" x="0" y="3"> |
|
|
<label name="codeLbl" text="Codigo" x="1" y="1"/> |
|
|
<label name="nameLbl" text="Nombre" x="21" y="1"/> |
|
|
<entry x="1" y="2" name="clientCodeEntry" style="label" width="20"/> |
|
|
<entry x="21" y="2" name="clientNameEntry" style="label" width="35"/> |
|
|
<label name="totalLbl" text="Total a Pagar:" x="26" y="3"/> |
|
|
<entry name="totalEntry" x="41" y="3" width="10" style="label" |
|
|
typecast="number" displaymask="%10.2f"/> |
|
|
</box> |
|
|
</block> |
|
|
<block name="currencyTypeBlock" datasource="tmpCurrencyDataSource"> |
|
|
<box label="Monedas de Pago" name="currencyBox" |
|
|
height="13" width="105" x="0" y="10"> |
|
|
|
|
|
<label name="nameLbl" text="Moneda" x="1" y="1"/> |
|
|
<label name="rateLbl" text="Cotización" x="10" y="1"/> |
|
|
<label name="montoLbl" text="Monto" x="21" y="1"/> |
|
|
<label name="pagoLbl" text="Pago" x="31" y="1"/> |
|
|
|
|
|
<entry name="idEntry" field="id" rows="6" x="1" y="1" hidden=""/> |
|
|
<entry name="formatEntry" field="format" rows="6" x="1" y="1" hidden=""/> |
|
|
<entry name="nameEntry" field="name" style="label" rows="6" |
|
|
x="1" y="2" width="6" readonly=""/> |
|
|
<entry name="rateEntry" field="rate" style="label" rows="6" typecast="number" |
|
|
displaymask="%0.4f" x="10" y="2" width="10" readonly=""/> |
|
|
<entry name="amountEntry" field="amount" style="label" rows="6" |
|
|
x="21" y="2" width="20" readonly=""/> |
|
|
<entry name="payEntry" field="pay" rows="6" x="38" y="2" width="20" |
|
|
typecast="number" displaymask="%0.4f"> |
|
|
<trigger type="PRE-FOCUSOUT" src="currencyTypeTrigger"/> |
|
|
</entry> |
|
|
<scrollbar page="6" x="68" y="2" width="1" height="6"/> |
|
|
<button name="acceptButton" trigger="endTypeCurrencyTrigger" label="Aceptar" |
|
|
width="10" height="1" x="10" y="10"/> |
|
|
<button name="cancelButton" trigger="cancelCurrencyTrigger" label="Cancelar" |
|
|
width="10" height="1" x="20" y="10"/> |
|
|
</box> |
|
|
<box height="4" label="Cobro de la factura" name="payBox" |
|
|
width="105" x="0" y="7"> |
|
|
<block datasource="payDataSource" name="payBlock" restrictInsert=""> |
|
|
<label text="Efectivo : " x="1" y="1"/> |
|
|
<entry name="cashEntry" typecast="number" displaymask="%0.2f" default="0.00" |
|
|
x="11" y="1" width="12"> |
|
|
<trigger src="cashEntryPreFocusout" type="Pre-Focusout"/> |
|
|
<options> |
|
|
<option name="tip" value="Importe al Contado"/> |
|
|
</options> |
|
|
</entry> |
|
|
<label text="Cta. Cte. : " x="24" y="1"/> |
|
|
<entry name="ctaCteEntry" typecast="number" displaymask="%0.2f" default="0.00" |
|
|
x="36" y="1" width="12"> |
|
|
<trigger src="ctaCteEntryPreFocusout" type="Pre-Focusout"/> |
|
|
<options> |
|
|
<option name="tip" value="Importe en Cuenta corriente"/> |
|
|
</options> |
|
|
</entry> |
|
|
<label text="Vencimiento : " x="50" y="1"/> |
|
|
<entry name="dateEntry" typecast="date" x="64" y="1" width="11"> |
|
|
<options> |
|
|
<option name="tip" value="Vencimiento estimado de la factura"/> |
|
|
</options> |
|
|
</entry> |
|
|
</block> |
|
|
</box> |
|
|
</block> |
|
|
</page> |
|
1217 |
</form> |
</form> |