11 |
<!-- Origen de datos que sirve para seleccionar el cleinte al que se le --> |
<!-- Origen de datos que sirve para seleccionar el cleinte al que se le --> |
12 |
<!-- va a facturar --> |
<!-- va a facturar --> |
13 |
<datasource name="clientDataSource" database="papo" |
<datasource name="clientDataSource" database="papo" |
14 |
table="entity, _entity_data, alien_entity, _alien_entity_data, persona, _persona_data, client, _client_data, |
table="_entity_data, _alien_entity_data, _persona_data, _client_data, |
15 |
_price_type_data"> |
_price_type_data, _persona_tax_profile_data, _tax_profile_data, _tax_data"> |
16 |
<condition> |
<condition> |
17 |
<and> |
<and> |
18 |
<eq> |
<eq> |
|
<cfield name="entity.id"/> |
|
19 |
<cfield name="_entity_data._table"/> |
<cfield name="_entity_data._table"/> |
20 |
|
<cfield name="_alien_entity_data.entity"/> |
21 |
</eq> |
</eq> |
22 |
<eq> |
<eq> |
|
<cfield name="alien_entity.id"/> |
|
23 |
<cfield name="_alien_entity_data._table"/> |
<cfield name="_alien_entity_data._table"/> |
24 |
|
<cfield name="_persona_data.alien_entity"/> |
25 |
</eq> |
</eq> |
26 |
<eq> |
<eq> |
|
<cfield name="persona.id"/> |
|
27 |
<cfield name="_persona_data._table"/> |
<cfield name="_persona_data._table"/> |
28 |
|
<cfield name="_client_data.persona"/> |
29 |
</eq> |
</eq> |
30 |
<eq> |
<eq> |
31 |
<cfield name="client.id"/> |
<cfield name="_price_type_data._table"/> |
32 |
<cfield name="_client_data._table"/> |
<cfield name="_client_data.price_type"/> |
33 |
</eq> |
</eq> |
34 |
<eq> |
<eq> |
35 |
<cfield name="entity.id"/> |
<cfield name="_entity_data._table"/> |
36 |
<cfield name="_alien_entity_data.entity"/> |
<cfield name="_persona_tax_profile_data.persona"/> |
37 |
</eq> |
</eq> |
38 |
<eq> |
<eq> |
39 |
<cfield name="alien_entity.id"/> |
<cfield name="_tax_profile_data._table"/> |
40 |
<cfield name="_persona_data.alien_entity"/> |
<cfield name="_persona_tax_profile_data.tax_profile"/> |
41 |
</eq> |
</eq> |
42 |
<eq> |
<eq> |
43 |
<cfield name="persona.id"/> |
<cfield name="_tax_data._table"/> |
44 |
<cfield name="_client_data.persona"/> |
<cfield name="_tax_profile_data.tax"/> |
45 |
</eq> |
</eq> |
46 |
<eq> |
<eq> |
47 |
<cfield name="_price_type_data._table"/> |
<cfield name="_tax_data._table"/> |
48 |
<cfield name="_client_data.price_type"/> |
<cconst value="1"/> |
49 |
</eq> |
</eq> |
50 |
<null> |
<null> |
51 |
<cfield name="_entity_data._end_t"/> |
<cfield name="_entity_data._end_t"/> |
62 |
<null> |
<null> |
63 |
<cfield name="_price_type_data._end_t"/> |
<cfield name="_price_type_data._end_t"/> |
64 |
</null> |
</null> |
65 |
|
<null> |
66 |
|
<cfield name="_persona_tax_profile_data._end_t"/> |
67 |
|
</null> |
68 |
|
<null> |
69 |
|
<cfield name="_tax_profile_data._end_t"/> |
70 |
|
</null> |
71 |
|
<null> |
72 |
|
<cfield name="_tax_data._end_t"/> |
73 |
|
</null> |
74 |
</and> |
</and> |
75 |
</condition> |
</condition> |
76 |
</datasource> |
</datasource> |
256 |
|
|
257 |
<datasource name="priceDataSource" database="papo" table="_price_data" /> |
<datasource name="priceDataSource" database="papo" table="_price_data" /> |
258 |
|
|
259 |
<!-- Origen de datos que contiene el encabezado de la factura --> |
<!-- Origen de datos que contiene el encabezado de la factura --> |
260 |
|
|
261 |
<datasource database="papo" name="ownDocumentDataSource" table="own_document" |
<datasource database="papo" name="ownDocumentDataSource" table="own_document" |
262 |
order_by="date" /> |
order_by="date" /> |
263 |
|
|
264 |
|
<!-- Este lo uso para tomar los datos de al sucursal actual en futuro debera ser compañando por un archide configuración --> |
265 |
|
<datasource database="papo" name="ownBranchDataSource" |
266 |
|
table="_entity_data, _own_entity_data, _own_branch_data, _persona_tax_profile_data, _tax_profile_data" prequery=""> |
267 |
|
<condition> |
268 |
|
<and> |
269 |
|
<eq> |
270 |
|
<cfield name="_entity_data._table"/> |
271 |
|
<cfield name="_own_entity_data.entity"/> |
272 |
|
</eq> |
273 |
|
<eq> |
274 |
|
<cfield name="_own_entity_data._table"/> |
275 |
|
<cfield name="_own_branch_data.own_entity"/> |
276 |
|
</eq> |
277 |
|
<eq> |
278 |
|
<cfield name="_entity_data._table"/> |
279 |
|
<cfield name="_persona_tax_profile_data.persona"/> |
280 |
|
</eq> |
281 |
|
<eq> |
282 |
|
<cfield name="_tax_profile_data._table"/> |
283 |
|
<cfield name="_persona_tax_profile_data.tax_profile"/> |
284 |
|
</eq> |
285 |
|
<eq> |
286 |
|
<cfield name="_tax_profile_data.tax"/> |
287 |
|
<cconst value="1"/> <!-- Esto va para indicar que es IVA y no otro impuesto--> |
288 |
|
</eq> |
289 |
|
<null> |
290 |
|
<cfield name="_entity_data._end_t"/> |
291 |
|
</null> |
292 |
|
<null> |
293 |
|
<cfield name="_own_entity_data._end_t"/> |
294 |
|
</null> |
295 |
|
<null> |
296 |
|
<cfield name="_own_branch_data._end_t"/> |
297 |
|
</null> |
298 |
|
<null> |
299 |
|
<cfield name="_persona_tax_profile_data._end_t"/> |
300 |
|
</null> |
301 |
|
<null> |
302 |
|
<cfield name="_tax_profile_data._end_t"/> |
303 |
|
</null> |
304 |
|
</and> |
305 |
|
</condition> |
306 |
|
</datasource> |
307 |
|
|
308 |
<!-- Origen de datos que contiene el numero de la proxima factura --> |
<!-- Origen de datos que contiene el numero de la proxima factura --> |
309 |
<datasource name="branchDocumentDataSource" database="papo" |
<datasource name="branchDocumentDataSource" database="papo" |
310 |
table="branch_document, _branch_document_data" historytable="_branch_document_data" prequery=""> |
table="branch_document, _branch_document_data" historytable="_branch_document_data" prequery=""> |
538 |
<trigger name="startUp" type="On-Startup"> |
<trigger name="startUp" type="On-Startup"> |
539 |
tmpValuesDataSource.priceTypeId = None |
tmpValuesDataSource.priceTypeId = None |
540 |
tmpValuesDataSource.onSwitch = "0" |
tmpValuesDataSource.onSwitch = "0" |
541 |
|
ownBranchBlock.processRollback() |
542 |
|
ownBranchBlock.initQuery() |
543 |
|
ownBranchBlock.processQuery() |
544 |
|
tmpValuesDataSource.ourIVACond = str(ownBranchBlock.condIVAEntry) |
545 |
tmpBlock.tmpDateEntry = ownDocumentDataSource.getTimeStamp() |
tmpBlock.tmpDateEntry = ownDocumentDataSource.getTimeStamp() |
546 |
</trigger> |
</trigger> |
547 |
|
|
553 |
|
|
554 |
<!-- Este trigger clacula el total facturado --> |
<!-- Este trigger clacula el total facturado --> |
555 |
<trigger name="totalCalcTrigger" type="NAMED"> |
<trigger name="totalCalcTrigger" type="NAMED"> |
556 |
import hack |
import hack |
557 |
|
|
558 |
lQty = hack.a2f(ownItemBlock.qtyEntry) |
lQty = hack.a2f(ownItemBlock.qtyEntry) |
559 |
lBonus = hack.a2f(ownItemBlock.bonusEntry) |
lBonus = hack.a2f(ownItemBlock.bonusEntry) |
560 |
lDiscount = hack.a2f(ownItemBlock.discountEntry) |
lDiscount = hack.a2f(ownItemBlock.discountEntry) |
561 |
lUnitPrice = hack.a2f(ownItemBlock.unitPriceEntry) |
lUnitPrice = hack.a2f(ownItemBlock.unitPriceEntry) |
562 |
|
|
563 |
lItemPrice = (lQty * lUnitPrice) - lBonus - lDiscount |
lItemPrice = (lQty * lUnitPrice) - lBonus - lDiscount |
564 |
|
|
565 |
ownItemBlock.taxAmountEntry = lItemPrice * hack.a2f(ownItemBlock.ivaEntry)/100 |
sourceCode = str(tmpValuesDataSource.taxSourceCode) |
566 |
ownItemBlock.itemTotalEntry = lItemPrice + hack.a2f(ownItemBlock.taxAmountEntry) |
ourIVACond = hack.a2f(tmpValuesDataSource.ourIVACond) |
567 |
|
alienIVACond = hack.a2f(tmpValuesDataSource.alienIVACond) |
568 |
lTNeto = 0 |
amount = lItemPrice |
569 |
lTTax = 0 |
taxPercent = hack.a2f(ownItemBlock.ivaEntry) |
570 |
|
|
571 |
lRecords = ownItemDataSource.getRecords() |
exec(sourceCode) |
572 |
for index in range(len(lRecords)): |
ownItemBlock.taxAmountEntry = hack.a2f(graft(ourIVACond,alienIVACond,amount,taxPercent)) |
573 |
lRecord = lRecords[index] |
ownItemBlock.itemTotalEntry = lItemPrice + hack.a2f(ownItemBlock.taxAmountEntry) |
574 |
lQty = hack.a2f(lRecord.getField("own_product_item.qty")) |
|
575 |
#print "cantidad: ",lQty |
lTNeto = 0 |
576 |
lBonus = hack.a2f(lRecord.getField("own_item.bonus")) |
lTTax = 0 |
577 |
lDiscount = hack.a2f(lRecord.getField("own_item.discount")) |
|
578 |
lResultSet = priceDataSource.createResultSet({"id":lRecord.getField("own_product_item.price")}) |
lRecords = ownItemDataSource.getRecords() |
579 |
if (lResultSet.firstRecord()): |
for index in range(len(lRecords)): |
580 |
lUnitPrice = hack.a2f(lResultSet.current.getField("unit_price")) |
lRecord = lRecords[index] |
581 |
else: |
lQty = hack.a2f(lRecord.getField("own_product_item.qty")) |
582 |
lUnitPrice = 0 |
#print "cantidad: ",lQty |
583 |
#print "lUnitPrice = ",lUnitPrice |
lBonus = hack.a2f(lRecord.getField("own_item.bonus")) |
584 |
|
lDiscount = hack.a2f(lRecord.getField("own_item.discount")) |
585 |
lItemPrice = (lQty * lUnitPrice) - lBonus - lDiscount |
lResultSet = priceDataSource.createResultSet({"id":lRecord.getField("own_product_item.price")}) |
586 |
lTNeto += lItemPrice |
if (lResultSet.firstRecord()): |
587 |
lTTax += hack.a2f(lRecord.getField("own_item_tax.amount")) |
lUnitPrice = hack.a2f(lResultSet.current.getField("unit_price")) |
588 |
|
else: |
589 |
totalBlock.netoEntry = str(lTNeto) |
lUnitPrice = 0 |
590 |
totalBlock.ivaEntry = str(lTTax) |
#print "lUnitPrice = ",lUnitPrice |
591 |
totalBlock.totalEntry = str(lTNeto+lTTax) |
|
592 |
payBlock.cashEntry = str(lTNeto+lTTax) |
lItemPrice = (lQty * lUnitPrice) - lBonus - lDiscount |
593 |
payBlock.ctaCteEntry = "0.0" |
lTNeto += lItemPrice |
594 |
|
lTTax += hack.a2f(lRecord.getField("own_item_tax.amount")) |
595 |
|
|
596 |
|
totalBlock.netoEntry = str(lTNeto) |
597 |
|
totalBlock.ivaEntry = str(lTTax) |
598 |
|
totalBlock.totalEntry = str(lTNeto+lTTax) |
599 |
|
payBlock.cashEntry = str(lTNeto+lTTax) |
600 |
|
payBlock.ctaCteEntry = "0.0" |
601 |
</trigger> |
</trigger> |
602 |
|
|
603 |
|
|
617 |
rs = clientDataSource.createResultSet({'_entity_data.id':str(ownDocumentBlock.clientRecipientBox.clientEntry)}) |
rs = clientDataSource.createResultSet({'_entity_data.id':str(ownDocumentBlock.clientRecipientBox.clientEntry)}) |
618 |
if rs.firstRecord(): |
if rs.firstRecord(): |
619 |
ownDocumentBlock.clientRecipientBox.currentClientEntry = rs.current.getField('_entity_data._table') |
ownDocumentBlock.clientRecipientBox.currentClientEntry = rs.current.getField('_entity_data._table') |
620 |
|
tmpValuesDataSource.taxSourceCode = rs.current.getField('_tax_data.graft') |
621 |
|
tmpValuesDataSource.alienIVACond = rs.current.getField('_tax_profile_data._table') |
622 |
|
|
623 |
if str(ownDocumentBlock.clientRecipientBox.currentClientEntry): |
if str(ownDocumentBlock.clientRecipientBox.currentClientEntry): |
624 |
# Actualiza el puntaje |
# Actualiza el puntaje |
625 |
ownDocumentBlock.clientRecipientBox.scoreEntry = str(ownDocumentBlock.clientRecipientBox.clientEntry) |
ownDocumentBlock.clientRecipientBox.scoreEntry = str(ownDocumentBlock.clientRecipientBox.clientEntry) |
634 |
creditLimit1Block.entityEntry = str(ownDocumentBlock.clientRecipientBox.currentClientEntry) |
creditLimit1Block.entityEntry = str(ownDocumentBlock.clientRecipientBox.currentClientEntry) |
635 |
creditLimit1Block.processQuery() |
creditLimit1Block.processQuery() |
636 |
tmpValuesDataSource.creditLimitAmount = str(creditLimit1Block.creditLimitAmountEntry) |
tmpValuesDataSource.creditLimitAmount = str(creditLimit1Block.creditLimitAmountEntry) |
637 |
|
|
638 |
import gnue.common.GConditions as GConditions |
import gnue.common.GConditions as GConditions |
639 |
import hack |
import hack |
640 |
|
|
775 |
</block> |
</block> |
776 |
<trigger name="clientSearchTrigger" type="NAMED"><![CDATA[ |
<trigger name="clientSearchTrigger" type="NAMED"><![CDATA[ |
777 |
tmpValuesDataSource.priceTypeId = None |
tmpValuesDataSource.priceTypeId = None |
778 |
|
|
779 |
codeToSearch = str(ownDocumentBlock.clientRecipientBox.clientCodeEntry) |
codeToSearch = str(ownDocumentBlock.clientRecipientBox.clientCodeEntry) |
780 |
nameToSearch = str(ownDocumentBlock.clientRecipientBox.clientNameEntry) |
nameToSearch = str(ownDocumentBlock.clientRecipientBox.clientNameEntry) |
781 |
|
|
979 |
ownItemBlock.discountEntry = 0.00 |
ownItemBlock.discountEntry = 0.00 |
980 |
ownItemBlock.bonusEntry = 0.00 |
ownItemBlock.bonusEntry = 0.00 |
981 |
ownItemBlock.itemTotalEntry = 0.00 |
ownItemBlock.itemTotalEntry = 0.00 |
982 |
|
|
983 |
|
callTrigger('totalCalcTrigger') |
984 |
</trigger> |
</trigger> |
985 |
|
|
986 |
<trigger name="prodSearchTrigger" type="NAMED"> |
<trigger name="prodSearchTrigger" type="NAMED"> |
1192 |
|
|
1193 |
</block> |
</block> |
1194 |
</box> |
</box> |
1195 |
|
<block name="ownBranchBlock" datasource="ownBranchDataSource"> |
1196 |
|
<entry name="condIVAEntry" field="_tax_profile_data.tax" hidden="" x="1" y="1" width="10"/> |
1197 |
|
</block> |
1198 |
</page> |
</page> |
1199 |
</form> |
</form> |