$document_name => ''
$document_type_A => ''
$document_type_B => ''
$document_type_C => ''
$stock_alta => ''
$stock_borrado => ''
$document_type_A
$document_type_B
$document_type_C
tmpValuesDataSource.discountPercent = 0
ownOrganizationBlock.clear()
ownOrganizationBlock.initQuery()
ownOrganizationBlock.processQuery()
tmpValuesDataSource.ownIVACond = str(ownOrganizationBlock.condIVAEntry)
print "ownIVACond",tmpValuesDataSource.ownIVACond
#cargo el own-pos entity id
callTrigger('searchOwnPosData')
#/cargo el own-pos entity id
invoiceType = str(alienDocumentBlock.invoiceTypeEntry).strip().lower()
if invoiceType == 'a':
alienDocumentBlock.typeEntry = '"'.$document_type_A.'"'
elif invoiceType == 'b':
alienDocumentBlock.typeEntry = '"'.$document_type_B.'"'
elif invoiceType == 'c':
alienDocumentBlock.typeEntry = '"'.$document_type_C.'"'
else:
alienDocumentBlock.typeEntry = ''
= 0.5
from gnue.common.events.Event import Event as GFEvent
# busy clock
self._object.dispatchEvent(GFEvent('beginWAIT'))
]]>
= 0.5
from gnue.common.events.Event import Event as GFEvent
self._object.dispatchEvent(GFEvent('endWAIT'))
setStatusText("Listo")
]]>
alienDocumentBlock.dateEntry = alienDocumentDataSource.getTimeStamp()
if not alienDocumentBlock.getCurrentRecord().isInserted():
genericBox("No se puede grabar modificaciones",["Aceptar"])
elif not str(alienDocumentBlock.numberEntry):
genericBox("Falta el número del comprobante",["Aceptar"])
elif not str(alienDocumentBlock.dateEntry):
genericBox("Falta la fecha del comprobante",["Aceptar"])
elif not str(alienDocumentBlock.invoiceTypeEntry):
genericBox("Falta el tipo del comprobante",["Aceptar"])
else:
from gnue.common.GDataObjects import ConnectionError as DBError
try:
import hack
alienIvaTaxBlock.alienIvaTaxAmountEntry = hack.a2f(alienDocumentBlock.ivaTotalEntry,2)
alienIvaTaxBlock.alienIvaTaxedAmountEntry = hack.a2f(alienDocumentBlock.netTotalEntry,2)
postChangeAdvance = 0
alienDocumentBlock.ownEntityIdEntry = str(ownPosBlock.ownPosEntityIdEntry)
alienDocumentBlock.postChanges()
postChangeAdvance = 1
proceedingBlock.clear()
proceedingBlock.dateEntry = proceedingDataSource.getTimeStamp()
proceedingBlock.postChanges()
postChangeAdvance = 2
#cargo el own-pos entity id
alienDocumentProceedingBlock.clear()
alienDocumentProceedingBlock.proceedingEntry = str(proceedingBlock.idEntry)
alienDocumentProceedingBlock.alienDocumentEntry = str(alienDocumentBlock.idEntry)
alienDocumentProceedingBlock.amountEntry = str(payBlock.cashEntry)
alienDocumentProceedingBlock.postChanges()
postChangeAdvance = 3
rc = currencyMovementBlock.getRecordCount()
for recNum in range(rc):
currencyMovementBlock.jumpRecord(recNum)
currencyMovementBlock.proceedingEntry = str(proceedingBlock.idEntry)
currencyMovementBlock.movementTypeEntry = "" # Revisar com queda esto
currencyMovementBlock.postChanges()
postChangeAdvance = 4
tmpValuesDataSource.idEntry = str(alienDocumentBlock.idEntry)
callTrigger('$stock_alta')
commitConnection()
callTrigger('rollbackTrigger')
except DBError, err:
rollbackConnection()
message = "Hay problemas para grabar "
if postChangeAdvance == 0:
message += "el Comprobante"
elif postChangeAdvance == 1:
message += "el procedimiento General"
elif postChangeAdvance == 2:
message += "el procedimiento del Comprobante"
elif postChangeAdvance == 3:
message += "las monedas de pago del Comprobante"
elif postChangeAdvance == 4:
message += "el stock"
genericBox(message+"\n"+str(err),['Aceptar'])
#else:
# alienDocumentBlock.clear()
tmpValuesDataSource.discountPercent = 0
clear()
callTrigger('searchOwnPosData')
#alienDocumentBlock.newRecord()
tmpValuesDataSource.discountPercent = 0
if genericBox("¿ Está seguro que desea borrar ?",['Sí','No']) == 1:
from gnue.common.GDataObjects import ConnectionError as DBError
try:
lAlienDocId = str(alienDocumentShowBlock.idEntry)
alienDocumentProceedingShowBlock.initQuery()
alienDocumentProceedingShowBlock.alienDocumentEntry = lAlienDocId
alienDocumentProceedingShowBlock.processQuery()
proceedingId = str(alienDocumentProceedingShowBlock.proceedingEntry)
alienDocumentProceedingShowBlock.deleteRecord()
postChangeAdvance = 0
alienDocumentProceedingShowBlock.postChanges()
currencyMovementBlock.proceedingEntry = proceedingId
currencyMovementBlock.processQuery()
postChangeAdvance = 1
rc = currencyMovementBlock.getRecordCount()
for recNum in range(rc):
currencyMovementBlock.jumpRecord(recNum)
currencyMovementBlock.deleteRecord()
currencyMovementBlock.postChanges()
tmpValuesDataSource.idEntry = str(alienDocumentShowBlock.idEntry)
callTrigger('$stock_alta')
lRecordCount = alienItemShowBlock.getRecordCount()
for recNum in range(lRecordCount):
alienItemShowBlock.jumpRecord(recNum)
alienItemTaxShowBlock.initQuery()
alienItemTaxShowBlock.alienItemEntry = str(alienItemShowBlock.idEntry)
alienItemTaxShowBlock.processQuery()
lTaxRecordCount = alienItemTaxShowBlock.getRecordCount()
for taxRecNum in range(lTaxRecordCount):
alienItemTaxShowBlock.jumpRecord(taxRecNum)
alienItemTaxShowBlock.deleteRecord()
alienItemTaxShowBlock.postChanges()
alienItemDeleteBlock.initQuery()
alienItemDeleteBlock.idEntry = str(alienItemShowBlock.idEntry)
alienItemDeleteBlock.processQuery()
alienItemDeleteBlock.deleteRecord()
alienItemDeleteBlock.postChanges()
alienItemShowBlock.clear()
postChangeAdvance = 4
alienDocumentTaxShowBlock.initQuery()
# ese "%" es mono con escopeta !!!!!!!!!
#alienDocumentTaxShowBlock.alienDocumentEntry = tmpValuesDataSource.idEntry+"%"
alienDocumentTaxShowBlock.alienDocumentEntry = tmpValuesDataSource.idEntry
alienDocumentTaxShowBlock.processQuery()
lRecordCount = alienDocumentTaxShowBlock.getRecordCount()
for recNum in range(lRecordCount):
alienDocumentTaxShowBlock.jumpRecord(recNum)
alienDocumentTaxShowBlock.deleteRecord()
alienDocumentTaxShowBlock.postChanges()
postChangeAdvance = 5
alienDocumentShowBlock.deleteRecord()
alienDocumentShowBlock.postChanges()
commitConnection()
except DBError, err:
rollbackConnection()
callTrigger('rollbackTrigger')
message = ["el procedimiento del comprobante", "Los Montos del comprobante",
"el stock","los Items del comprobante","los impuestos del comprobante","el Comprobante"]
genericBox("Hay problemas para borrar "+message[postChangeAdvance]+"\n"+str(err),['Aceptar'])
totalShowBlock.clear()
alienDocumentBlock.clear()
self.exit()
if resultBlock.getRecordCount() > 0 and not resultBlock.getCurrentRecord().isEmpty():
typeInvoice = int(str(alienDocumentShowBlock.typeEntry))
result = ""
if typeInvoice == $document_type_A :
result = "A"
elif typeInvoice == $document_type_B :
result = "B"
elif typeInvoice == $document_type_C :
result = "C"
alienDocumentShowBlock.invoiceTypeEntry = result
if resultBlock.getRecordCount() > 0 and not resultBlock.getCurrentRecord().isEmpty():
import hack
recordCount = alienItemShowBlock.getRecordCount()
alienItemShowBlock.firstRecord()
for index in range(recordCount):
alienItemShowBlock.jumpRecord(index)
try:
alienItemShowBlock.taxPercentEntry = hack.a2f(alienItemShowBlock.taxAmountEntry,2) / \
hack.a2f(alienItemShowBlock.unitPriceEntry,2) / \
hack.a2f(alienItemShowBlock.qtyEntry,2) * 100
except:
pass
alienItemShowBlock.firstRecord()
#sumo otros impuestos
dTTax = 0.0
lRecords = alienOtherTaxShowDataSource.getRecords()
for index in range(len(lRecords)):
lRecord = lRecords[index]
dTTax += hack.a2f(lRecord.getField("alien_document_tax.amount"),4)
otherTaxShowTotalBlock.otherTaxTotalEntry = dTTax
totalShowBlock.totalEntry = hack.a2f(totalShowBlock.netoEntry,2) + \
hack.a2f(ivaTotalShowBlock.ivaEntry,2)+hack.a2f(otherTaxShowTotalBlock.otherTaxTotalEntry,2)
else:
totalShowBlock.clear()
import hack
lQty = hack.a2f(alienItemBlock.qtyEntry,4)
lBonus = hack.a2f(alienItemBlock.bonusEntry,4)
lDiscount = hack.a2f(alienItemBlock.discountEntry,4)
lUnitPrice = hack.a2f(alienItemBlock.unitPriceEntry,4)
lItemPrice = round(((lQty * lUnitPrice) - lBonus - lDiscount) * (1 - hack.a2f(alienDocumentBlock.discountPercentEntry,4)/100),2)
alienItemBlock.itemNetoEntry = lItemPrice
alienItemBlock.taxAmountEntry = round((lItemPrice * hack.a2f(alienItemBlock.taxPercentEntry,2)/100),2)
alienItemBlock.itemTotalEntry = round(lItemPrice + hack.a2f(alienItemBlock.taxAmountEntry,2),2)
lTNeto = 0
lTExemptNeto = 0
lTTax = 0
sum = 0
lRecords = alienItemDataSource.getRecords()
for index in range(len(lRecords)):
lRecord = lRecords[index]
lQty = hack.a2f(lRecord.getField("alien_product_item.qty"),4)
lBonus = hack.a2f(lRecord.getField("alien_item.bonus"),4)
lDiscount = hack.a2f(lRecord.getField("alien_item.discount"),4)
lUnitPrice = hack.a2f(lRecord.getField("alien_product_item.unit_price"),4)
#lTax = hack.a2f(lRecord.getField("alien_item_tax.amount"))
lItemPrice = round(((lQty * lUnitPrice) - lBonus - lDiscount) * \
(1 - hack.a2f(alienDocumentBlock.discountPercentEntry,4)/100),2)
alienItemBlock.jumpRecord(index)
alienItemBlock.itemNetoEntry = lItemPrice
alienItemBlock.taxAmountEntry = round((lItemPrice * hack.a2f(alienItemBlock.taxPercentEntry,4)/100),2)
alienItemBlock.itemTotalEntry = round(lItemPrice + hack.a2f(alienItemBlock.taxAmountEntry,2),2)
lTTax += hack.a2f(lRecord.getField("alien_item_tax.amount"),2)
if hack.a2f(lRecord.getField("alien_item_tax.amount"),2) == 0.00:
lTExemptNeto += round(lItemPrice,2)
else:
lTNeto += round(lItemPrice,2)
#sum += lQty * lUnitPrice + lTax - lBonus - lDiscount
# SUMATORIA DE OTROS IMPUESTOS
dTTax = 0.0
lRecords = documentTaxesDataSource.getRecords()
for index in range(len(lRecords)):
lRecord = lRecords[index]
dTTax += hack.a2f(lRecord.getField("alien_document_tax.amount"),4)
# /SUMATORIA DE OTROS IMPUESTOS
alienDocumentBlock.exemptNetTotalEntry = round(lTExemptNeto,2)
alienDocumentBlock.netTotalEntry = round(lTNeto,2)
alienDocumentBlock.ivaTotalEntry = lTTax
# OTROS IMPUESTOS
#alienDocumentBlock.taxTotalEntry = lTTax+hack.a2f(otherTaxBlock.otherTaxAmountEntry,2)
#alienDocumentBlock.totalEntry = round(lTNeto+lTTax+hack.a2f(otherTaxBlock.otherTaxAmountEntry,2),2)
#las reemplazo por
alienDocumentBlock.taxTotalEntry = lTTax+dTTax
alienDocumentBlock.totalEntry = round(lTNeto+lTTax+dTTax,2)
payBlock.cashEntry = hack.a2f(alienDocumentBlock.totalEntry,2)
#totalBlock.totalEntry = str(sum)
#payBlock.cashEntry = str(sum)
payBlock.ctaCteEntry = "0.00"
alienDocumentSearchBlock.clear()
resultBlock.clear()
resultBlock.initQuery()
#resultBlock.typeREntry = "2"
resultBlock.providerREntry = str(alienDocumentSearchBlock.providerSEntry)
resultBlock.transportREntry = str(alienDocumentSearchBlock.transportSEntry)
#resultBlock.salesPersonREntry = str(alienDocumentSearchBlock.salesPersonSEntry)
#resultBlock.receivedREntry = str(alienDocumentSearchBlock.receivedSEntry)
resultBlock.numberREntry = str(alienDocumentSearchBlock.numberSEntry)+"%"
resultBlock.dateREntry = str(alienDocumentSearchBlock.dateSEntry)
resultBlock.guideNumerREntry = str(alienDocumentSearchBlock.guideNumerSEntry)
resultBlock.bundlesREntry = str(alienDocumentSearchBlock.bundlesSEntry)
resultBlock.processQuery()
genericBox("No implementado",["Aceptar"])
currentSearchIdBlock.searchId = "1"
callTrigger('providerSearchTrigger')
currentSearchIdBlock.searchId = "2"
callTrigger('providerSearchTrigger')
if str(currentSearchIdBlock.searchId) == "1":
codeToSearch = str(alienDocumentSearchBlock.providerCodeSEntry)
nameToSearch = str(alienDocumentSearchBlock.providerNameSEntry)
else:
codeToSearch = str(alienDocumentBlock.providerCodeSEntry)
nameToSearch = str(alienDocumentBlock.providerNameSEntry)
callTrigger('startWaitingModeTrigger')
providerResultBlock.reset()
providerResultBlock.initQuery()
if codeToSearch:
providerResultBlock.providerCodeEntry = codeToSearch+"%"
if nameToSearch:
providerResultBlock.providerNameEntry = nameToSearch+"%"
providerResultBlock.processQuery()
callTrigger('endWaitingModeTrigger')
recordCount = providerResultBlock.getRecordCount()
if recordCount > 1:
def callback (returnValue):
global block
if returnValue >= 0:
providerResultBlock.jumpRecord(returnValue)
callTrigger('afterProviderSearchTrigger')
runForm ('providerSelect.gfd', {'data': providerResultBlock, 'callback': callback})
elif recordCount == 1:
providerResultBlock.jumpRecord(0)
callTrigger('afterProviderSearchTrigger')
if str(currentSearchIdBlock.searchId) == "1":
alienDocumentSearchBlock.providerCodeSEntry = str(providerResultBlock.providerCodeEntry)
alienDocumentSearchBlock.providerNameSEntry = str(providerResultBlock.providerNameEntry)
alienDocumentSearchBlock.providerSEntry = str(providerResultBlock.idEntry)
else:
import hack
alienDocumentBlock.providerCodeSEntry = str(providerResultBlock.providerCodeEntry)
alienDocumentBlock.providerNameSEntry = str(providerResultBlock.providerNameEntry)
alienDocumentBlock.providerEntry = str(providerResultBlock.idEntry)
clientIvaTaxProfile = int(str(tmpValuesDataSource.ownIVACond))
print "client IVA ",clientIvaTaxProfile
providerIvaTaxProfile = int(str(providerResultBlock.providerIvaTaxProfileEntry))
print "providerIvaTaxProfile", providerIvaTaxProfile
alienDocumentBlock.invoiceTypeEntry = hack.calcInvoiceType(clientIvaTaxProfile, providerIvaTaxProfile)
callTrigger('invoiceTypeValidation')
currentSearchIdBlock.searchId = "1"
callTrigger('transportSearchTrigger')
currentSearchIdBlock.searchId = "2"
callTrigger('transportSearchTrigger')
if str(currentSearchIdBlock.searchId) == "1":
codeToSearch = str(alienDocumentSearchBlock.transportCodeSEntry)
nameToSearch = str(alienDocumentSearchBlock.transportNameSEntry)
else:
codeToSearch = str(alienDocumentBlock.transportCodeSEntry)
nameToSearch = str(alienDocumentBlock.transportNameSEntry)
callTrigger('startWaitingModeTrigger')
transportResultBlock.initQuery()
transportResultBlock.transportCodeEntry = codeToSearch+"%"
transportResultBlock.transportNameEntry = nameToSearch+"%"
transportResultBlock.processQuery()
callTrigger('endWaitingModeTrigger')
recordCount = transportResultBlock.getRecordCount()
if recordCount > 1:
def callback (returnValue):
global block
if returnValue >= 0:
transportResultBlock.jumpRecord(returnValue)
callTrigger('afterTransportSearchTrigger')
runForm ('transportSelect.gfd', {'data': transportResultBlock, 'callback': callback})
elif recordCount == 1:
transportResultBlock.jumpRecord(0)
callTrigger('afterTransportSearchTrigger')
if str(currentSearchIdBlock.searchId) == "1":
alienDocumentSearchBlock.transportCodeSEntry = str(transportResultBlock.transportCodeEntry)
alienDocumentSearchBlock.transportNameSEntry = str(transportResultBlock.transportNameEntry)
alienDocumentSearchBlock.transportEntry = str(transportResultBlock.idEntry)
else:
alienDocumentBlock.transportCodeSEntry = str(transportResultBlock.transportCodeEntry)
alienDocumentBlock.transportNameSEntry = str(transportResultBlock.transportNameEntry)
alienDocumentBlock.transportEntry = str(transportResultBlock.idEntry)
codeToSearch = str(alienItemBlock.productCodeEntry)
nameToSearch = str(alienItemBlock.productNameEntry)
callTrigger('startWaitingModeTrigger')
productResultBlock.initQuery()
productResultBlock.prodCodeEntry = codeToSearch+"%"
productResultBlock.prodNameEntry = nameToSearch+"%"
productResultBlock.processQuery()
callTrigger('endWaitingModeTrigger')
recordCount = productResultBlock.getRecordCount()
if recordCount > 1:
def callback (returnValue):
global block
if returnValue >= 0:
productResultBlock.jumpRecord(returnValue)
callTrigger('afterProductSearchTrigger')
runForm ('productSelect.gfd', {'data': productResultBlock, 'callback': callback})
elif recordCount == 1:
productResultBlock.jumpRecord(0)
callTrigger('afterProductSearchTrigger')
alienItemBlock.productCodeEntry = str(productResultBlock.prodCodeEntry)
alienItemBlock.productNameEntry = str(productResultBlock.prodNameEntry)
alienItemBlock.productEntry = str(productResultBlock.prodIdEntry)
alienItemBlock.taxPercentEntry = str(productResultBlock.prodIVATaxEntry)
alienItemBlock.productCodeEntry = ""
alienItemBlock.productNameEntry = ""
alienItemBlock.qtyEntry = 0.00
alienItemBlock.unitPriceEntry = 0.00
alienItemBlock.productEntry = "0"
alienItemBlock.taxAmountEntry = 0
alienItemBlock.taxPercentEntry = 0
alienItemBlock.discountEntry = 0.00
alienItemBlock.itemTotalEntry = 0.00
callTrigger('totalCalcTrigger')
import hack
alienDocumentShowBlock.clear()
if resultBlock.getRecordCount() > 0 and not resultBlock.getCurrentRecord().isEmpty():
alienDocumentShowBlock.initQuery()
alienDocumentShowBlock.idEntry = ("%s" % resultBlock.idREntry)
alienDocumentShowBlock.processQuery()
alienItemShowBlock.initQuery()
alienItemShowBlock.alienDocumentEntry = ("%s" % alienDocumentShowBlock.idEntry)
alienItemShowBlock.processQuery()
recordCount = alienItemShowBlock.getRecordCount()
alienItemShowBlock.firstRecord()
setParameter('invoiceDate',str(alienDocumentShowBlock.dateEntry))
runForm('provider.gfd')
runForm('product.gfd')
import hack
# SUMATORIA DE OTROS IMPUESTOS
dTTax = 0.0
lRecords = documentTaxesDataSource.getRecords()
for index in range(len(lRecords)):
lRecord = lRecords[index]
dTTax += hack.a2f(lRecord.getField("alien_document_tax.amount"),4)
# /SUMATORIA DE OTROS IMPUESTOS
#alienDocumentBlock.taxTotalEntry = hack.a2f(otherTaxBlock.otherTaxAmountEntry,2)+hack.a2f(alienDocumentBlock.ivaTotalEntry,2)
alienDocumentBlock.taxTotalEntry = dTTax+hack.a2f(alienDocumentBlock.ivaTotalEntry,2)
alienDocumentBlock.totalEntry = hack.a2f(alienDocumentBlock.netTotalEntry,2) + \
hack.a2f(alienDocumentBlock.taxTotalEntry,2)
payBlock.cashEntry = str(hack.a2f(alienDocumentBlock.totalEntry,2))
payBlock.ctaCteEntry = 0.00
import hack
if hack.a2f(payBlock.cashEntry,2) != 0.0:
tmpAmountBlock.cashAmountEntry = hack.a2f(payBlock.cashEntry,2)
tmpAmountBlock.ctaCteAmountEntry = hack.a2f(payBlock.ctaCteEntry,2)
currencyMovementBlock.clear()
def callback (returnValue):
if str(returnValue) == '1':
callTrigger('commitTrigger')
runForm ('providerMultiCurrency.gfd', {'currency': currencyMovementBlock, 'amount': tmpAmountBlock, 'callback': callback})
else:
callTrigger('commitTrigger')
documentTaxesBlock.taxAmount = 0.0
import hack
payBlock.ctaCteEntry = str(round(hack.a2f(alienDocumentBlock.totalEntry,2) - hack.a2f(payBlock.cashEntry,2),2))
import hack
payBlock.cashEntry = str(round(hack.a2f(alienDocumentBlock.totalEntry,2) - hack.a2f(payBlock.ctaCteEntry,2),2))