Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '#Reference {2A75196C-D9EB-4129-B803-931327F72D5C}#2.8#0#C:\Program Files\Common Files\System\ado\msado28.tlb#Microsoft ActiveX Data Objects 2.8 Library#ADODB
- '#Reference {420B2830-E718-11CF-893D-00A0C9054228}#1.0#0#C:\Windows\system32\scrrun.dll#Microsoft Scripting Runtime#Scripting
- '#Reference {F5078F18-C551-11D3-89B9-0000F81FE221}#6.0#0#C:\Windows\System32\msxml6.dll#Microsoft XML, v6.0#MSXML2
- ' [ Component | Aggregatorn Create XML
- ' no description
- ' ]
- '
- '
- ' [ Parameter | DBPharmaDSN | no description ]
- ' [ Parameter | DBPharmaUserID | no description ]
- ' [ Parameter | DBPharmaPassword | no description ]
- ' [ Parameter | XMLSchemaFile | no description ]
- '
- '
- '#uses "XmlHelpers.bas"
- Option Explicit
- ' Version history
- ' ==========.============================================================
- ' 2014-06-18 Fraktavgift
- ' 2014-06-04 Fakturaavgift
- ' 2014-06-02 PayExDelbetalning
- ' 2014-05-22 NBDirektBet SHBDirektBet SEBDirektBet FSPDirektBet PayExFaktura
- ' Txtype 101 with subtypes
- ' 2013-02-05 New handlig of 'Rabatt' on recordtype 96_96.
- ' 2012-08-20 Changed decimal from ',' to '.' on Amount for "fakturaunderlag" file.
- ' 2012-04-18 CashierID inserted in Cognos import table.
- ' 2012-04-17 Cleaned up obsolete functions for Cognos
- ' 2012-02-22 CashierId read but not written to BITransfile
- ' 2012-02-22 PresentokortSalda changed sign from -/+.
- ' 2012-02-22 InsertBIFromTblReceiptRows
- ' 2011-12-07 Subventionsbug
- ' 2011-08-26 Återköp förskrivet
- ' 2001-08-19 VATPercent incorrect in PrintRows95_95()
- ' 2011-05-19 Version 2.0
- ' 2011-05-12 Fixed bug with missing storeID at the and of processing.
- ' PayExTransactionID into bokf.txt
- ' ReceptArendeID and EAN_ID implemented for Future use.
- ' 2011-03-07 No stop when incorrect VAT.
- ' 2011-03-01 Posttyp 87, AterbetalningKredit.
- ' 2011-02-28 New calculations for GenerateInvoice.
- ' 2011-02-17 Altered DB layer. Loop through multiple quieries on all exports except to BI (save to file).
- ' 2011-01-25 Changed subtractIt/addItr and no change of sign for Kontant, kontantutlands, subtotal och momsbelopp
- ' 2011-01-14 Added functionality for multiple organizations for Invoicefile.
- ' 2010-12-10 GetVGrupp implemented. Incorrect values vas calculated due to wrong 'varugrupp'.
- ' 2010-11-17 Vetrinärsarvode now implemented.
- ' 2010-09-22 V2 compatible.
- ' 2010-03-11 First version for CIS Pharma.
- ' 2010-05-19 New fields
- ' receiptId
- ' Varunummer
- ' Forsaljningspris
- ' FormanExmoms
- ' SubvensionExmoms
- ' SubventionsKomm
- ' TransID (ASAB)
- ' Beskrivning
- ' amountNumber
- Dim strDBTriggerName As String
- Enum _VAT ' VAT Percentage
- P0 = 1
- P6 = 2
- P12 = 3
- P25 = 4
- End Enum
- Enum _FIXDOT
- MAKEDOT = 0
- NULLIFZERO = 1
- End Enum
- Const ASAB_VAT_PERCENTAGE = "25.00"
- Const MAX_RECEIPTS = 400
- Const MAX_DELBET = 500
- Const MAX_INVOICE_FILES = 500
- Dim _NBR_TO_BLOCK As Long
- Dim nRecIdx As Integer
- Dim oXml As New MSXML2.DOMDocument60
- Dim oBInfo As Object
- Dim oInfo As MSXML2.IXMLDOMElement
- Dim oSubInfo As MSXML2.IXMLDOMElement
- Dim oTmp As MSXML2.IXMLDOMElement
- Dim bInvoiceWritten As Boolean
- Dim bAccountWritten As Boolean
- Dim bBITWritten As Boolean
- Dim bBITDBWritten As Boolean
- Dim strSavedSwi As String
- Dim nRowCounter As Integer
- Dim strTable As String
- Dim strBITempSQLOutFile As String
- Type Receipt
- DBID As String
- organizationID As String ' Retrieved from PS
- storeId As String ' /RetailCenter/Store/@storeId ' ApoteksID
- storeRunNumber As String ' /RetailCenter/Store/ReceiptHead/storeRunningNumber ' unique id within the store
- transactionDate As String ' /RetailCenter/Store/ReceiptHead/receiptDate
- transactionTime As String ' /RetailCenter/Store/ReceiptHead/receiptTime
- receiptId As String ' /RetailCenter/Store/ReceiptHead/receiptId
- cashierId As String ' /RetailCenter/Store/ReceiptHead/cashierId
- cardNumber As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/CardInformation/cardNumber
- itemNumber As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/itemNumber
- transactionType As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/transactionType
- category As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/RcStatisticsInformation/category ' Varugrupp
- EAN_Id As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/RcStatisticsInformation/Id ' EAN
- amount As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/amount
- amountNumber As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/amountNumber
- customerNo As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/Customer/customerNumber
- customerName As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/Customer/customerName
- customerContact As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/Customer/customerContact
- customerRef As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/Customer/customerRef
- customerIdentification As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/Customer/customerIdentification
- VATPercent As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/RcStatisticsInformation/VATPercent
- costPrice As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/RcStatisticsInformation/costPrice
- Id As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/id
- subType As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/subType
- originalCashRegister As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/ReceiptOriginalInformation/originalCashRegister
- RowNumber As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/@RowNumber
- receiptRowRefNumber As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/receiptRowRefNumber
- receiptRowText As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/receiptRowText
- AterbetalningKredit As String ' /???
- orderID As String ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/OrderInformation/orderId - transactiontype 1 and 6
- ' /RetailCenter/Store/ReceiptHead/ReceiptRow[n]/extraRowInfo - transactiontype 95 and 96
- ArtikelID As String ' */BLOB/Betalning/Vara/ArtikelID
- ArtikelNamn As String ' */BLOB/Betalning/Vara/ArtikelNamn
- Antal As String ' */BLOB/Betalning/Vara/Antal
- Varunummer As String ' */BLOB/Betalning/Vara/Varunummer
- Forsaljningspris As String ' */BLOB/Betalning/Vara/Forsaljningspris
- FormanExmoms As String ' */BLOB/Betalning/Vara/FormanExmoms
- SubvensionExmoms As String ' */BLOB/Betalning/Vara/SubvensionExmoms
- AupExmoms As String ' */BLOB/Betalning/Vara/AupExmoms
- ByteTillatet As String
- Formanstyp As String
- Arendetyp As String
- BetalningsDatum As String
- MerkostnadExmoms As String
- Forsaljningstyp As String
- SubventionsKomm As String ' */BLOB/Betalning/Betalare/Subventionskommentar
- Beskrivning As String ' */BLOB/Betalning/Betalare/Beskrivning
- KundFodelseDatum As String ' */BLOB/Betalning/Receptkund/Fodelsedatum
- KundKon As String ' */BLOB/Betalning/Receptkund/Kon ' Kön
- ArbetsplatsKod As String ' */BLOB/Betalning/Forskrivare/Arbetsplatskod
- ForskrivarKod As String ' */BLOB/Betalning/Forskrivare/Forskrivarkod
- Momssatskod As String ' */BLOB/Betalning/Summa/Momssatskod
- Summa As String ' */BLOB/Betalning/Summa/Summa
- Valutakod As String ' */BLOB/Betalning/Summa/Valutakod
- Momssumma As String ' */BLOB/Betalning/Summa/Momssumma
- TransID As String ' */BLOB/Betalning/Referenser/TransID (ASAB)
- ReceptArendeID As String ' */BLOB/Betalning/Referenser/ReceptArendeID
- End Type
- Dim aRech(MAX_RECEIPTS) As Receipt
- Type SEK
- SEx As String ' Exmoms
- SInk As String ' Inkmoms
- SMoms As String ' momssumma
- CostP As String ' Momssats
- ExtraInfo As String ' Extra information
- End Type
- Type TheAggregator
- ' Summeringsgruppering
- ' ====================
- Organisationsnr As String
- Apoteksid As String
- Datum As String
- StoreRunNumber As String
- ' Diverse
- ' =======
- Kontant As SEK
- KontantUtlandsk As SEK
- KortbetalningAMEX As SEK
- KortbetalningBABS As SEK
- KortbetalningDiners As SEK
- KortbetalningOvrig As SEK
- Kupong As SEK
- Presentkort As SEK
- PresentkortSalda As SEK
- ASABavgift As SEK
- SummaASAB As SEK
- Rekvisition As SEK
- SubTotal As SEK
- OresAvrundning As SEK
- MomsBelopp As SEK
- MomsGrundBelopp As SEK
- FakturaAvgift As SEK
- FraktAvgift As SEK
- Goyada as SEK
- DelBetalning(MAX_DELBET) As SEK
- nDelbetalningIdx As Integer
- NBDirektBet(MAX_DELBET) As SEK
- nNBDirektBetIdx As Integer
- SHBDirektBet(MAX_DELBET) As SEK
- nSHBDirektBetIdx As Integer
- SEBDirektBet(MAX_DELBET) As SEK
- nSEBDirektBetIdx As Integer
- FSPDirektBet(MAX_DELBET) As SEK
- nFSPDirektBetIdx As Integer
- PayExFaktura(MAX_DELBET) As SEK
- nPayExFakturaIdx As Integer
- PayExDelbet(MAX_DELBET) As SEK
- nPayExDelbetIdx As Integer
- Rattelse As SEK
- KupongRabatt As SEK ' Amount från "7"
- RabattSubTot As SEK ' Amount från "3"
- InbetFaktura As SEK ' Amount från "63"
- BetTillgodoKvitto As SEK ' Amount från "45"
- FsgTillgodoKvitto As SEK ' Amount från "46"
- InlostBonuscheck As SEK ' Amount från "55"
- FormanskortBonusgr As SEK ' Amount från "49"
- InlostBonusbelopp As SEK ' Amount från "52"
- Formanskort As SEK ' Amount från "61"
- BetPresentkortAnnanButik As SEK ' Amount från "67"
- BetTillgodoAnnanButik As SEK ' Amount från "70"
- EfterregRabatt As SEK ' Amount från "90"
- AterbetalningKredit As SEK ' Amount från "87"
- Formansbelopp(4) As SEK
- Subvention(4) As SEK
- AterkopSystem(4) As SEK
- SystemForsalj(4) As SEK
- OspecOvrigUttag As SEK
- KontorsMateriel As SEK
- PersonalVard As SEK
- OvrigaUtlagg As SEK
- ' Förskrivet
- ' ==========
- F_RX(4) As SEK
- F_OTC(4) As SEK
- F_Livsmedel(4) As SEK
- F_Hjalpmedel(4) As SEK
- F_Bocker(4) As SEK
- F_Tjanster(4) As SEK
- F_Ovrigt(4) As SEK
- ' Återköp förskrivet
- ' ==================
- AF_RX(4) As SEK
- AF_OTC(4) As SEK
- AF_Livsmedel(4) As SEK
- AF_Hjalpmedel(4) As SEK
- AF_Bocker(4) As SEK
- AF_Tjanster(4) As SEK
- AF_Ovrigt(4) As SEK
- ' Egenvård
- ' ========
- EV_RP0 As SEK ' Receptpåsar 0%
- EV_RP6 As SEK ' Receptpåsar 6%
- EV_RP12 As SEK ' Receptpåsar 12%
- EV_RP25 As SEK ' Receptpåsar 25%
- EV_RX(4) As SEK ' kommer nog inget här enligt spec
- EV_OTC(4) As SEK
- EV_Livsmedel(4) As SEK
- EV_Hjalpmedel(4) As SEK
- EV_Bocker(4) As SEK
- EV_Tjanster(4) As SEK
- EV_VetArvode(4) As SEK
- EV_Ovrigt(4) As SEK
- ' Egenvård Rabatt
- ' ===============
- EVR_RP0 As SEK ' Receptpåsar 0%
- EVR_RP6 As SEK ' Receptpåsar 6%
- EVR_RP12 As SEK ' Receptpåsar 12%
- EVR_RP25 As SEK ' Receptpåsar 25%
- EVR_RX(4) As SEK ' kommer nog inget här enligt spec
- EVR_OTC(4) As SEK
- EVR_Livsmedel(4) As SEK
- EVR_Hjalpmedel(4) As SEK
- EVR_Bocker(4) As SEK
- EVR_Tjanster(4) As SEK
- EVR_Ovrigt(4) As SEK
- ' Återköp egenvård
- ' ================
- AEV_RP0 As SEK ' Receptpåsar 0%
- AEV_RP6 As SEK ' Receptpåsar 6%
- AEV_RP12 As SEK ' Receptpåsar 12%
- AEV_RP25 As SEK ' Receptpåsar 25%
- AEV_RX(4) As SEK ' kommer nog inget här enligt spec
- AEV_OTC(4) As SEK
- AEV_Livsmedel(4) As SEK
- AEV_Hjalpmedel(4) As SEK
- AEV_Bocker(4) As SEK
- AEV_Tjanster(4) As SEK
- AEV_VetArvode(4) As SEK
- AEV_Ovrigt(4) As SEK
- End Type
- Dim oDBcn As ADODB.Connection
- Dim oDBrs As ADODB.Recordset
- Dim oDBrsTmp As ADODB.Recordset
- Dim oDBrsTmpII As ADODB.Recordset
- Dim oDBcnCognos As ADODB.Connection
- Dim oDBrsCognos As ADODB.Recordset
- Dim strTargetFolder As String
- Dim strOutfile As String
- Dim strOutfileTxt As String
- Dim strOutfileInvoiceTxt(MAX_INVOICE_FILES) As String
- Dim strOrganizationNumber(MAX_INVOICE_FILES) As String
- Dim idxIVFile As Integer
- Dim strBITextFile As String
- Dim dict As New Dictionary
- ' ==================================================================================
- ' The main procedure
- ' ==================================================================================
- Sub Main
- Dim i As Integer
- Dim nFiles As Long
- Dim strDBDSN As String
- Dim strDBUserID As String
- Dim strDBPassword As String
- Dim strDBCogDSN As String
- Dim strDBCogUserID As String
- Dim strDBCogPassword As String
- Dim strSchemaFile As String
- Dim strPONR As String
- Dim strTemp As String
- Dim bCreateTbl As Boolean
- On Error GoTo AllError
- strDBDSN = GetParameter( "+DBPharmaDSN" )
- strDBUserID = GetParameter( "DBPharmaUserID" )
- strDBPassword = GetParameter( "DBPharmaPassword" )
- strDBTriggerName = GetParameter( "-CogTriggerName", "PS_FSG_Trans" )
- strDBCogDSN = GetParameter( "+DBCogDSN" )
- strDBCogUserID = GetParameter( "DBCogUserID" )
- strDBCogPassword = GetParameter( "DBCogPassword" )
- strSchemaFile = GetParameter( "AGGXMLSchemaFile" )
- strTargetFolder = GetParameter( "+AGGTargetFolder" )
- bCreateTbl = CBool(GetParameter( "?-DBCreateTable", "0" ))
- strPONR = GetParameter( "-PONR", "0" )
- strBITempSQLOutFile = CreateTempFile( "sql" )
- _NBR_TO_BLOCK = CLng(GetParameter( "-#_NBR_TO_BLOCK_BI_TRANS", "1000" ))
- If( strPONR = "1" ) Then
- ReportLog( RL_ERROR, "THIS INTEGRATION CANNOT BE RESTARTED AT THIS STATE. CONTACT ADMINISTRATORS. FILES MUST BE COPIED" )
- Quit
- End If
- If( Not OpenDB( strDBDSN, strDBUserID, strDBPassword ) ) Then
- ReportEvent( RE_ERROR, "Cannot open Aggregatorn database:" + strDBDSN )
- Quit
- End If
- If( Not OpenCognosDB( strDBCogDSN, strDBCogUserID, strDBCogPassword ) ) Then
- ReportEvent( RE_ERROR, "Cannot open Cognos database:" + strDBDSN )
- Quit
- End If
- If( bCreateTbl ) Then
- CreateTable()
- Quit
- End If
- InitXML()
- PrepareDBData()
- SetParameter( "-AGGExecStart=" + Format(Now, "YYMMDD-hhmmss" ) )
- ReportEvent(RE_NORMAL, "GenerateInvoice START" )
- bInvoiceWritten = False
- GenerateInvoiceFiles()
- ReportEvent(RE_INFO, "GenerateInvoice END" )
- ReportEvent(RE_NORMAL, "GenerateAccounting START" )
- bAccountWritten = False
- GenerateAccountingFiles()
- ReportEvent(RE_INFO, "GenerateAccounting END" )
- ' ReportEvent(RE_NORMAL, "GenerateBI START" )
- ' bBITWritten = False
- ' GenerateBITransactionFile()
- ' ReportEvent(RE_INFO, "GenerateBI END" )
- ReportEvent(RE_NORMAL, "InsertBI START" )
- bBITDBWritten = False
- InsertBIFromTblReceiptRows()
- ReportEvent(RE_INFO, "InsertBI END" )
- ReportEvent(RE_NORMAL, "MarkAsProcessed START" )
- oDBcn.BeginTrans()
- MarkDBDataAsProcessed()
- oDBcn.CommitTrans()
- ReportEvent(RE_INFO, "MarkAsProcessed END" )
- SetParameter( "-PONR=1" )
- ReportLog( RL_NORMAL, "File Created Step I||XMLFile Created/Deliverable=" + strOutfile + "|TxtFile Created/Deliverable=" + strOutfileTxt )
- CloseDB()
- MoveFiles()
- Exit Sub
- AllError:
- ReportEvent(RE_ERROR, "Main:" + Err.Description )
- Quit
- End Sub
- Sub PrepareDBData()
- Dim strSQL As String
- strTable = GetParameter( "-AGGTable", "tblreceiptrows" )
- ReportLog( RL_NORMAL, "||Table=" + strTable )
- On Error GoTo AllError
- strSQL = "DROP TABLE IF EXISTS tblReceiptRows_tmp;"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- strSQL = "CREATE TABLE tblReceiptRows_tmp LIKE " + strTable + ";"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- strSQL = "INSERT INTO tblReceiptRows_tmp SELECT * from " + strTable + " WHERE " + strTable + ".State='I';"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- Exit Sub
- AllError:
- ReportEvent(RE_ERROR, "PrepareDBData:" + Err.Description )
- Quit
- End Sub
- Sub MarkDBDataAsProcessed()
- Dim strCISID As String
- Dim strSQL As String
- On Error GoTo AllError
- strCISID = Replace( GetID(), "#", "" )
- strSQL = "UPDATE " + strTable + ",tblReceiptRows_tmp SET " + strTable + ".State = '" + strCISID + "' WHERE " + strTable + ".ID = tblReceiptRows_tmp.ID;"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- Exit Sub
- AllError:
- ReportEvent(RE_ERROR, "MarkDBDataAsProcessed:" + Err.Description )
- Quit
- End Sub
- Sub GenerateAccountingFiles()
- Dim strSQL As String
- Dim rec As Receipt
- Dim strSavedID As String
- Dim strOldID As String
- Dim agg As TheAggregator
- Dim strTempFile As String
- Dim bSumPrinted As Boolean
- Dim bFirstTime As Boolean
- Dim strRestartUpdated As String
- Dim numRecepits As Long
- Dim numRecepitsTmp As Long
- Dim bOpen As Boolean
- Dim bContinue As Boolean
- On Error GoTo AllError
- numRecepits = 30000
- numRecepitsTmp = numRecepits
- bContinue = True
- ' Prepare processed table
- strSQL = "TRUNCATE TABLE tblReceiptRows_processed"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- strSQL = "ALTER TABLE tblReceiptRows_processed AUTO_INCREMENT=1"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- ' Populate processed table
- strSQL = "INSERT INTO tblReceiptRows_processed(StoreRunNumber) SELECT DISTINCT(StoreRunNumber) FROM tblReceiptRows_tmp WHERE State='I';"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- ' Get an initial result
- strSQL = "SELECT * FROM tblReceiptRows_processed WHERE processed <> 1 LIMIT 1"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- If oDBrs.RecordCount = 0 Then
- ReportLog( RL_NORMAL, "NO RECORDS TO PROCESS..." )
- Quit
- End If
- strOutfile = GetParameter( "-XMLTmpfile" )
- strOutfileTxt = GetParameter( "-TXTTmpfile" )
- If( strOutfile = "" ) Then
- strOutfile = CreateTempFile( "xml", False )
- SetParameter( "-XMLTmpfile=" + strOutfile )
- strOutfileTxt = CreateTempFile( "txt", False )
- SetParameter( "-TXTTmpfile=" + strOutfileTxt )
- End If
- Open strOutfileTxt For Output As #1
- While bContinue And ContinueRun()
- ReportEvent(RE_INFO, "Processing " & CStr(numRecepits) & " receipts, tot receipts: " & CStr(numRecepitsTmp))
- strSQL = "SELECT * FROM tblReceiptRows_tmp tt " + _
- "INNER JOIN tblReceiptRows_processed tp ON tt.StoreRunNumber = tp.StoreRunNumber and tp.id < " & CStr(numRecepitsTmp) & " and tp.processed <> 1 " + _
- "ORDER BY tt.organizationID, tt.storeId, tt.transactionDate, tt.storeRunNumber, tt.receiptRowRefNumber, tt.RowNumber, tt.transactionType"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- bContinue = False
- ResetAgg( agg )
- If(oDBrs.RecordCount > 0 ) Then
- bContinue = True
- bAccountWritten = True
- strOldID = ""
- bFirstTime = True
- bSumPrinted = False
- While Not oDBrs.EOF And ContinueRun()
- GetDataFromDB( rec, oDBrs )
- strSavedID = rec.organizationID + rec.storeId + rec.transactionDate
- If( strSavedID <> strOldID ) Then
- If( bFirstTime ) Then
- bFirstTime = False
- Else
- bSumPrinted = True
- AddXMLInfo( agg )
- End If
- agg.Organisationsnr = rec.organizationID
- agg.Apoteksid = rec.storeId
- agg.Datum = rec.transactionDate
- ResetAgg( agg )
- Aggregate( agg, rec )
- strOldID = strSavedID
- Else
- Aggregate( agg, rec )
- bSumPrinted = False
- End If
- oDBrs.MoveNext
- Wend
- ' update processed rows in processed table
- strSQL = "UPDATE tblReceiptRows_processed set processed = 1 where processed = 0 and id < " & CStr(numRecepitsTmp)
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- numRecepitsTmp = numRecepitsTmp + numRecepits
- If Not ContinueRun() Then
- ReportEvent(RE_ERROR, "Quitting on users request..." )
- Quit
- End If
- If( Not bSumPrinted ) Then
- AddXMLInfo( agg )
- End If
- End If
- Wend
- oXml.save( strOutfile )
- Close #1
- Exit Sub
- AllError:
- ReportEvent(RE_ERROR, "GenerateAccountingFiles:" + Err.Description + " : " + CStr(Err.Number) + " : 0x" + Hex( Err.Number ) )
- Quit
- End Sub
- Sub CloseRecordSet( o As Object )
- If o.State = adStateOpen Then
- o.Close
- End If
- End Sub
- Function OpenDB(strDSN As String, strUser As String, strPwd As String, Optional strDefaultDB As String = "" ) As Boolean
- Dim strCnn As String
- On Error GoTo AllError
- OpenDB = False
- If( strUser <> "" ) Then
- strCnn = "DSN=" & strDSN & ";UID=" & strUser & ";PWD=" & strPwd
- Else
- strCnn = "DSN=" & strDSN & ";Trusted_Connection=yes"
- End If
- ' to get correct dateformat when storing timestamp in database.
- SetLocale &H41D
- ' Create and open database connection
- Set oDBcn = CreateObject("ADODB.Connection")
- oDBcn.open strCnn
- If( strDefaultDB <> "" ) Then
- oDBcn.DefaultDatabase = strDefaultDB
- End If
- Set oDBrs = CreateObject("ADODB.Recordset")
- Set oDBrsTmp = CreateObject("ADODB.Recordset")
- Set oDBrsTmpII = CreateObject("ADODB.Recordset")
- ' Open DB and return record rows, if any
- With oDBrs
- .ActiveConnection = oDBcn
- .CursorLocation = adUseClient
- .CursorType = adOpenKeyset 'adOpenDynamic
- .LockType = adLockOptimistic 'adLockPessimIStic
- End With
- With oDBrsTmp
- .ActiveConnection = oDBcn
- .CursorLocation = adUseClient
- .CursorType = adOpenKeyset 'adOpenDynamic
- .LockType = adLockOptimistic 'adLockPessimIStic
- End With
- With oDBrsTmpII
- .ActiveConnection = oDBcn
- .CursorLocation = adUseClient
- .CursorType = adOpenKeyset 'adOpenDynamic
- .LockType = adLockOptimistic 'adLockPessimIStic
- End With
- OpenDB = True
- Exit Function
- AllError:
- ReportEvent( RE_ERROR, "OpenDB:" + Err.Description )
- Quit
- End Function
- Function OpenCognosDB(strDSN As String, strUser As String, strPwd As String, Optional strDefaultDB As String = "" ) As Boolean
- Dim strCnn As String
- On Error GoTo AllError
- OpenCognosDB = False
- If( strUser <> "" ) Then
- strCnn = "DSN=" & strDSN & ";UID=" & strUser & ";PWD=" & strPwd
- Else
- strCnn = "DSN=" & strDSN & ";Trusted_Connection=yes"
- End If
- ' to get correct dateformat when storing timestamp in database.
- SetLocale &H41D
- ' Create and open database connection
- Set oDBcnCognos = CreateObject("ADODB.Connection")
- With oDBcnCognos
- .ConnectionTimeout = 1400 ' = 4 hours
- .CommandTimeout = 1400
- End With
- oDBcnCognos.open strCnn
- If( strDefaultDB <> "" ) Then
- oDBcnCognos.DefaultDatabase = strDefaultDB
- End If
- Set oDBrsCognos = CreateObject("ADODB.Recordset")
- With oDBrsCognos
- .ActiveConnection = oDBcnCognos
- .CursorLocation = adUseClient
- .CursorType = adOpenKeyset
- .LockType = adLockOptimistic
- End With
- OpenCognosDB = True
- Exit Function
- AllError:
- ReportEvent( RE_ERROR, "OpenCognosDB:" + Err.Description )
- Quit
- End Function
- Sub CloseDB
- Set oDBcn = Nothing
- Set oDBrs = Nothing
- End Sub
- Sub MoveFiles()
- Dim strTargetFile As String
- Dim strAggExecStart As String
- Dim strNamePart As String
- Dim i As Integer
- On Error GoTo AllError
- strAggExecStart = GetParameter( "-AGGExecStart" )
- If( bAccountWritten ) Then
- ' XML
- strNamePart = Replace(GetID(), "#", "" ) + strAggExecStart + "_bokf.xml"
- strTargetFile = strTargetFolder + "\" + strNamePart
- FileCopy strOutfile, strTargetFile
- ' for use in subsequent script/components
- SetParameter( "XMLFile=" + strTargetFile )
- SetParameter( "XMLFileName=" + strNamePart )
- ReportLog( RL_NORMAL, "File Delivered Step I||Accounting file delivered XML=" + strTargetFile )
- ' Textfile
- strNamePart = Replace(GetID(), "#", "" ) + strAggExecStart + "_bokf.txt"
- strTargetFile = strTargetFolder + "\" + strNamePart
- FileCopy strOutfileTxt, strTargetFile
- ' for use in subsequent script/components
- SetParameter( "TXTFile=" + strTargetFile )
- SetParameter( "TXTFileName=" + strNamePart )
- ReportLog( RL_NORMAL, "File Delivered Step I||Accounting file delivered TXT=" + strTargetFile )
- Else
- ReportLog( RL_NORMAL, "File Delivered Step I||Accounting file NOT delivered TXT=No records written" )
- End If
- ' Invoice textfile
- If( bInvoiceWritten ) Then
- For i = 0 To idxIVFile-1
- strNamePart = Replace(GetID(), "#", "" ) + strAggExecStart + "_" + strOrganizationNumber(i) + "_" + CStr(i) + "_invoice.edi"
- strTargetFile = strTargetFolder + "\" + strNamePart
- FileCopy strOutfileInvoiceTxt(i), strTargetFile
- ReportLog( RL_NORMAL, "File Delivered Step I||Invoice file delivered TXT=" + strTargetFile )
- Next i
- Else
- ReportLog( RL_NORMAL, "File Delivered Step I||Invoice file NOT delivered TXT=No records written" )
- End If
- If( bBITWritten ) Then
- strNamePart = Replace(GetID(), "#", "" ) + strAggExecStart + "_bitrans.edi"
- strTargetFile = strTargetFolder + "\" + strNamePart
- FileCopy strBITextFile, strTargetFile
- ' for use in subsequent script/components
- SetParameter( "TXTBIFile=" + strTargetFile )
- SetParameter( "TXTBIName=" + strNamePart )
- ReportLog( RL_NORMAL, "File Delivered Step I||BI-Transactionfile file delivered TXT=" + strTargetFile )
- End If
- Exit Sub
- AllError:
- ReportEvent( RE_ERROR, "MoveFiles:" + Err.Description )
- ReportEvent( RE_WARNING, "Trying to copy/move file:" )
- ReportEvent( RE_WARNING, strOutfileInvoiceTxt(i) + " to:" )
- ReportEvent( RE_WARNING, strTargetFile )
- Quit
- End Sub
- Sub Aggregate( a As TheAggregator, r As Receipt )
- Dim sVGrupp As String
- Dim strTmp As String
- Dim vp As Integer
- On Error GoTo AllError
- Select Case r.transactionType
- Case "1"
- ' EGENVÅRD
- ' ========
- sVGrupp = GetVGrupp( r.category )
- Select Case sVGrupp
- Case "100"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.EV_RX(vp) = ComputeAllValues( a.EV_RX(vp), "ADD", r)
- Case "200"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_NORMAL, "Storerunnumber:" + r.storeRunNumber )
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.EV_OTC(vp) = ComputeAllValues( a.EV_OTC(vp), "ADD", r)
- Case "300"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.EV_Livsmedel(vp) = ComputeAllValues( a.EV_Livsmedel(vp), "ADD", r)
- Case "400"
- ' Hjälpmedel
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- If( Left(r.VATPercent, 2) = "25" ) Then
- vp = GetIdxFromVAT( r.VATPercent )
- a.EV_Hjalpmedel(vp) = ComputeAllValues( a.EV_Hjalpmedel(vp), "ADD", r)
- ElseIf( Left(r.VATPercent, 1) = "6" ) Then
- vp = GetIdxFromVAT( r.VATPercent )
- a.EV_Bocker(vp) = ComputeAllValues( a.EV_Bocker(vp), "ADD", r)
- Else
- ReportEvent( RE_ERROR, "******INCORRECT VAT: for " + r.transactionType + ":" + sVGrupp + ", VAT:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- ReportEvent( RE_WARNING, "This process is not stopped..." )
- End If
- Case "500"
- ' TJANSTER
- ' ========
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.EV_Tjanster(vp) = ComputeAllValues( a.EV_Tjanster(vp), "ADD", r)
- ' ---------------
- Case "610"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_NORMAL, "Storerunnumber:" + r.storeRunNumber )
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- ' receptpåse 0%
- a.EV_RP0 = ComputeAllValues( a.EV_RP0, "ADD", r)
- Case "620"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "6.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":600_" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- ' receptpåse 6%
- a.EV_RP6 = ComputeAllValues( a.EV_RP6, "ADD", r )
- Case "630"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "12.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":600_" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- ' receptpåse 12%
- a.EV_RP12 = ComputeAllValues( a.EV_RP12, "ADD", r )
- Case "640"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "25.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":600_" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- ' receptpåse 25%
- a.EV_RP25 = ComputeAllValues( a.EV_RP25, "ADD", r )
- Case Else
- If( r.VATPercent = "" ) Then
- r.VATPercent = "25.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":600_" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- If( r.itemNumber = "36650" ) Then
- vp = GetIdxFromVAT( r.VATPercent )
- a.EV_VetArvode(vp) = ComputeAllValues( a.EV_VetArvode(vp), "ADD", r)
- Else
- vp = GetIdxFromVAT( r.VATPercent )
- a.EV_Ovrigt(vp) = ComputeAllValues( a.EV_Ovrigt(vp), "ADD", r)
- End If
- End Select
- Case "2"
- ' EGENVÅRD RABATT
- ' ===============
- sVGrupp = GetVGrupp( r.category )
- Select Case sVGrupp
- Case "100"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.EVR_RX(vp) = ComputeAllValues( a.EVR_RX(vp), "ADD", r)
- Case "200"
- If( r.VATPercent = "" ) Then
- ReportEvent(RE_INFO, "RowID:" + CStr(r.Id) )
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.EVR_OTC(vp) = ComputeAllValues( a.EVR_OTC(vp), "ADD", r)
- Case "300"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.EVR_Livsmedel(vp) = ComputeAllValues( a.EVR_Livsmedel(vp), "ADD", r)
- Case "400"
- ' Hjälpmedel
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- If( Left(r.VATPercent, 2) = "25" ) Then
- vp = GetIdxFromVAT( r.VATPercent )
- a.EVR_Hjalpmedel(vp) = ComputeAllValues( a.EVR_Hjalpmedel(vp), "ADD", r)
- ElseIf( Left(r.VATPercent, 1) = "6" ) Then
- vp = GetIdxFromVAT( r.VATPercent )
- a.EVR_Bocker(vp) = ComputeAllValues( a.EVR_Bocker(vp), "ADD", r)
- Else
- ReportEvent( RE_ERROR, "******INCORRECT VAT: for " + r.transactionType + ":" + sVGrupp + ", VAT:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- ReportEvent( RE_WARNING, "This process is not stopped..." )
- End If
- Case "500"
- ' TJANSTER
- ' ========
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.EVR_Tjanster(vp) = ComputeAllValues( a.EVR_Tjanster(vp), "ADD", r)
- ' ---------------
- Case "610"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "0.00"
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":600_" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- ' receptpåse 0%
- a.EVR_RP0 = ComputeAllValues( a.EVR_RP0, "ADD", r)
- Case "620"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "6.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":600_" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- ' receptpåse 6%
- a.EVR_RP6 = ComputeAllValues( a.EVR_RP6, "ADD", r )
- Case "630"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "12.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":600_" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- ' receptpåse 12%
- a.EVR_RP12 = ComputeAllValues( a.EVR_RP12, "ADD", r )
- Case "640"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "25.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":600_" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- ' receptpåse 25%
- a.EVR_RP25 = ComputeAllValues( a.EVR_RP25, "ADD", r )
- Case Else
- If( r.VATPercent = "" ) Then
- r.VATPercent = "25.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":600_" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.EVR_Ovrigt(vp) = ComputeAllValues( a.EVR_Ovrigt(vp), "ADD", r)
- End Select
- Case "3"
- a.RabattSubTot.SInk = addIt( a.RabattSubTot.SInk, r.amount )
- Case "5"
- a.Rattelse.SInk = addIt( a.Rattelse.SInk, r.amount )
- Case "6"
- ' EGENVÅRD ÅTERKÖP
- ' =================
- sVGrupp = GetVGrupp( r.category )
- Select Case sVGrupp
- Case "100"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.AEV_RX(vp) = ComputeAllValues( a.AEV_RX(vp), "ADD", r)
- Case "200"
- If( r.VATPercent = "" ) Then
- ReportEvent(RE_INFO, "RowID:" + CStr(r.Id) )
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.AEV_OTC(vp) = ComputeAllValues( a.AEV_OTC(vp), "ADD", r)
- Case "300"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.AEV_Livsmedel(vp) = ComputeAllValues( a.AEV_Livsmedel(vp), "ADD", r)
- Case "400"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- ' Category = "400" med VATpercent = 25
- ' Hjälpmedel
- If( r.VATPercent = "25.00" ) Then
- vp = GetIdxFromVAT( r.VATPercent )
- a.AEV_Hjalpmedel(vp) = ComputeAllValues( a.AEV_Hjalpmedel(vp), "ADD", r)
- ElseIf( r.VATPercent = "6.00" ) Then
- vp = GetIdxFromVAT( r.VATPercent )
- a.AEV_Bocker(vp) = ComputeAllValues( a.AEV_Bocker(vp), "ADD", r)
- Else
- ReportEvent( RE_ERROR, "******INCORRECT VAT: for " + r.transactionType + ":" + sVGrupp + ", VAT:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- ReportEvent( RE_WARNING, "This process is not stopped..." )
- End If
- Case "500"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.AEV_Tjanster(vp) = ComputeAllValues( a.AEV_Tjanster(vp), "ADD", r)
- ' --------------------
- Case "610"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "0.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- ' receptpåse 0%
- a.AEV_RP0 = ComputeAllValues( a.AEV_RP0, "ADD", r)
- Case "620"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "6.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- ' receptpåse 6%
- a.AEV_RP6 = ComputeAllValues( a.AEV_RP6, "ADD", r)
- Case "630"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "12.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- ' receptpåse 12%
- a.AEV_RP12 = ComputeAllValues( a.AEV_RP12, "ADD", r)
- Case "640"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "25.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- ' receptpåse 25%
- a.AEV_RP25 = ComputeAllValues( a.AEV_RP25, "ADD", r)
- Case Else
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- If( r.itemNumber = "36650" ) Then
- vp = GetIdxFromVAT( r.VATPercent )
- a.AEV_VetArvode(vp) = ComputeAllValues( a.AEV_VetArvode(vp), "ADD", r)
- Else
- vp = GetIdxFromVAT( r.VATPercent )
- a.AEV_Ovrigt(vp) = ComputeAllValues( a.AEV_Ovrigt(vp), "ADD", r)
- End If
- End Select
- Case "7"
- a.KupongRabatt.SInk = addIt( a.KupongRabatt.SInk, r.amount ) ' Amount från "7"
- Case "10"
- ' "Amount från "10" adderas. Dra bort från "18"
- a.Kontant.SInk = addIt( a.Kontant.SInk, r.amount )
- Case "11"
- 'Lägg till Amount från "11","17", "19", "71", "73" och "74"
- a.KontantUtlandsk.SInk = addIt( a.KontantUtlandsk.SInk, r.amount )
- Case "12"
- Select Case Left(r.cardNumber, 2 )
- Case "34", "37"
- a.KortbetalningAMEX.SInk = addIt( a.KortbetalningAMEX.SInk, r.amount )
- Case "30", "36", "38"
- a.KortbetalningDiners.SInk = addIt( a.KortbetalningDiners.SInk, r.amount )
- Case Else
- a.KortbetalningBABS.SInk = addIt( a.KortbetalningBABS.SInk, r.amount )
- End Select
- Case "13"
- a.Rekvisition.SInk = addIt( a.Rekvisition.SInk, r.amount )
- Case "14"
- a.Presentkort.SInk = addIt( a.Presentkort.SInk, r.amount )
- Case "15"
- a.PresentkortSalda.SInk = addIt( a.PresentkortSalda.SInk, r.amount )
- Case "16"
- a.Kupong.SInk = addIt( a.Kupong.SInk, r.amount )
- Case "17"
- 'Lägg till Amount från "11", "17", "19", "71", "73" och "74"
- a.KontantUtlandsk.SInk = addIt( a.KontantUtlandsk.SInk, r.amount )
- Case "18"
- ' "Amount från "10" adderas. Dra bort från "18".
- a.Kontant.SInk = subtractIt( a.Kontant.SInk, r.amount )
- Case "19"
- 'Lägg till Amount från "11", "17", "19", "71", "73" och "74"
- a.KontantUtlandsk.SInk = addIt( a.KontantUtlandsk.SInk, r.amount )
- Case "31"
- ' ändrat 2011-01-25 subtractit till addit
- a.SubTotal.SInk = addIt( a.SubTotal.SInk, r.amount )
- Case "21"
- a.OresAvrundning.SEx = subtractIt( a.OresAvrundning.SEx, r.amount )
- Case "45"
- a.BetTillgodoKvitto.SInk = addIt( a.BetTillgodoKvitto.SInk, r.amount ) ' Amount från "45"
- Case "46"
- a.FsgTillgodoKvitto.SInk = addIt( a.FsgTillgodoKvitto.SInk, r.amount ) ' Amount från "46"
- Case "49"
- a.FormanskortBonusgr.SInk = addIt( a.FormanskortBonusgr.SInk, r.amount ) ' Amount från "49"
- Case "50"
- a.MomsBelopp.SMoms = subtractIt( a.MomsBelopp.SMoms, r.amount )
- Case "51"
- a.MomsGrundBelopp.SEx = addIt( a.MomsGrundBelopp.SEx, r.amount )
- Case "52"
- a.InlostBonusbelopp.SInk = addIt( a.InlostBonusbelopp.SInk, r.amount ) ' Amount från "52"
- Case "55"
- a.InlostBonuscheck.SInk = addIt( a.InlostBonuscheck.SInk, r.amount ) ' Amount från "55"
- Case "61"
- a.Formanskort.SInk = addIt( a.Formanskort.SInk, r.amount ) ' Amount från "61"
- Case "63"
- a.InbetFaktura.SInk = addIt( a.InbetFaktura.SInk, r.amount ) ' Amount från "63"
- Case "65"
- ' not used, (LOGIN=
- Case "67"
- a.BetPresentkortAnnanButik.SInk = addIt( a.BetPresentkortAnnanButik.SInk, r.amount ) ' Amount från "67"
- Case "70"
- a.BetTillgodoAnnanButik.SInk = addIt( a.BetTillgodoAnnanButik.SInk, r.amount ) ' Amount från "70"
- Case "68"
- If( r.Id = "101" ) Then
- If( r.VATPercent = "" ) Then
- r.VATPercent = ASAB_VAT_PERCENTAGE
- ' ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- a.ASABavgift.SInk = addIt( a.ASABavgift.SInk, r.amount )
- a.ASABavgift.SEx = ExVATFromInkVAT( a.ASABavgift.SEx, r.amount, r.VATPercent )
- ElseIf( r.Id = "69" ) Then
- a.KontorsMateriel.SInk = addIt( a.KontorsMateriel.SInk, r.amount )
- ElseIf( r.Id = "71" ) Then
- a.PersonalVard.SInk = addIt( a.PersonalVard.SInk, r.amount )
- ElseIf( r.Id = "72" ) Then
- a.OvrigaUtlagg.SInk = addIt( a.OvrigaUtlagg.SInk, r.amount )
- Else
- a.OspecOvrigUttag.SInk = addIt( a.OspecOvrigUttag.SInk, r.amount )
- End If
- Case "69"
- If( r.Id = "101" ) Then
- a.ASABavgift.SMoms = addIt( a.ASABavgift.SMoms, r.amount )
- ElseIf( r.Id = "69" ) Then
- a.KontorsMateriel.SMoms = addIt( a.KontorsMateriel.SMoms, r.amount )
- ElseIf( r.Id = "71" ) Then
- a.PersonalVard.SMoms = addIt( a.PersonalVard.SMoms, r.amount )
- ElseIf( r.Id = "72" ) Then
- a.OvrigaUtlagg.SMoms = addIt( a.OvrigaUtlagg.SMoms, r.amount )
- Else
- a.OspecOvrigUttag.SMoms = addIt( a.OspecOvrigUttag.SMoms, r.amount )
- End If
- Case "71"
- 'Lägg till Amount från "11", "17", "19", "71", "73" och "74"
- a.KontantUtlandsk.SInk = addIt( a.KontantUtlandsk.SInk, r.amount )
- Case "72"
- 'Drag bort Amount "72" och "106"
- a.KontantUtlandsk.SInk = subtractIt( a.KontantUtlandsk.SInk, r.amount )
- Case "73"
- 'Lägg till Amount från "11", "17", "19", "71", "73" och "74"
- a.KontantUtlandsk.SInk = addIt( a.KontantUtlandsk.SInk, r.amount )
- Case "74"
- 'Lägg till Amount från "11", "17", "19", "71", "73" och "74"
- a.KontantUtlandsk.SInk = addIt( a.KontantUtlandsk.SInk, r.amount )
- Case "75"
- ' "Amount från "10" adderas. Dra bort från "18" och "75"
- ' Not handled. This transaction is just info.
- Case "76"
- ' Not used
- Case "77"
- ' Not used
- Case "80"
- a.FraktAvgift.SInk = addIt( a.FraktAvgift.SInk, r.amount )
- Case "81"
- a.Goyada.SInk = addIt( a.Goyada.SInk, r.amount )
- Case "87"
- a.AterbetalningKredit.SInk = subtractIt( a.AterbetalningKredit.SInk, r.amount )
- Case "88"
- ' Not used
- Case "89"
- a.FakturaAvgift.SInk = addIt( a.FakturaAvgift.SInk, r.amount )
- Case "90"
- a.EfterregRabatt.SInk = addIt( a.EfterregRabatt.SInk, r.amount )
- Case "95"
- ' FÖRSKRIVET
- ' ==========
- sVGrupp = GetVGrupp( r.category )
- Select Case sVGrupp
- Case "100"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.F_RX(vp) = ComputeAllValues( a.F_RX(vp), "ADD", r)
- Case "200"
- If( r.VATPercent = "" ) Then
- ReportEvent(RE_INFO, "RowID:" + CStr(r.Id) )
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.F_OTC(vp) = ComputeAllValues( a.F_OTC(vp), "ADD", r)
- Case "300"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.F_Livsmedel(vp) = ComputeAllValues( a.F_Livsmedel(vp), "ADD", r)
- Case "400"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- If( Left(r.VATPercent, 2) = "25" ) Then
- a.F_Hjalpmedel(vp) = ComputeAllValues( a.F_Hjalpmedel(vp), "ADD", r)
- ElseIf( Left(r.VATPercent, 1) = "6" ) Then
- a.F_Bocker(vp) = ComputeAllValues( a.F_Bocker(vp), "ADD", r)
- Else
- ReportEvent( RE_ERROR, "INCORRECT VAT: for " + r.transactionType + ":" + sVGrupp + ", VAT:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- ReportEvent( RE_WARNING, "This process is not stopped..." )
- End If
- Case "500"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.F_Tjanster(vp) = ComputeAllValues( a.F_Tjanster(vp), "ADD", r)
- Case Else
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.F_Ovrigt(vp) = ComputeAllValues( a.F_Ovrigt(vp), "ADD", r)
- End Select
- Case "96"
- ' Återköp förskrivet
- ' ==================
- sVGrupp = GetVGrupp( r.category )
- Select Case sVGrupp
- Case "100"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "0.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.AF_RX(vp) = ComputeAllValues( a.AF_RX(vp), "ADD", r)
- Case "200"
- If( r.VATPercent = "" ) Then
- ReportEvent(RE_INFO, "RowID:" + CStr(r.Id) )
- r.VATPercent = "0.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.AF_OTC(vp) = ComputeAllValues( a.AF_OTC(vp), "ADD", r)
- Case "300"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "0.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.AF_Livsmedel(vp) = ComputeAllValues( a.AF_Livsmedel(vp), "ADD", r)
- Case "400"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "0.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- If( Left(r.VATPercent, 2) = "25" ) Then
- a.AF_Hjalpmedel(vp) = ComputeAllValues( a.AF_Hjalpmedel(vp), "ADD", r)
- ElseIf( Left(r.VATPercent, 1) = "6" ) Then
- a.AF_Bocker(vp) = ComputeAllValues( a.AF_Bocker(vp), "ADD", r)
- Else
- ReportEvent( RE_ERROR, "******INCORRECT VAT: for " + r.transactionType + ":" + sVGrupp + ", VAT:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- ReportEvent( RE_WARNING, "This process is not stopped..." )
- End If
- Case "500"
- If( r.VATPercent = "" ) Then
- r.VATPercent = "25.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.AF_Tjanster(vp) = ComputeAllValues( a.AF_Tjanster(vp), "ADD", r)
- Case Else
- If( r.VATPercent = "" ) Then
- r.VATPercent = "25.00"
- ReportEvent( RE_WARNING, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.AF_Ovrigt(vp) = ComputeAllValues( a.AF_Ovrigt(vp), "ADD", r)
- End Select
- Case "99"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- ReportEvent( RE_WARNING, "MUST HAVE VATPERCENT!" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- If( r.subType = "1" ) Then
- a.Subvention(vp).SInk = addIt( a.Subvention(vp).SInk, r.amount )
- a.Subvention(vp).SEx = ExVATFromInkVAT( a.Subvention(vp).SEx, r.amount, r.VATPercent )
- a.Subvention(vp).SMoms = addIt( a.Subvention(vp).SMoms, r.Momssumma )
- End If
- If( r.subType = "2" ) Then
- a.Formansbelopp(vp).SInk = addIt( a.Formansbelopp(vp).SInk, r.amount )
- a.Formansbelopp(vp).SEx = ExVATFromInkVAT( a.Formansbelopp(vp).SEx, r.amount, r.VATPercent )
- a.Formansbelopp(vp).SMoms = addIt( a.Formansbelopp(vp).SMoms, r.Momssumma )
- End If
- If( r.subType = "3" ) Then
- a.SummaASAB.SInk = subtractIt( a.SummaASAB.SInk, r.amount )
- End If
- Case "100"
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.AterkopSystem(vp) = ComputeAllValues( a.AterkopSystem(vp), "ADD", r)
- Case "101"
- ' Delbetalning
- If( r.subType = "1" ) Then
- If( a.nDelbetalningIdx = MAX_DELBET ) Then
- ReportEvent(RE_ERROR, "The index MAX_DELBET must be increased. It has reached max. Increase is bigger then the value below and restart" )
- ReportEvent(RE_ERROR, "Index value=" + CStr(a.nDelbetalningIdx) )
- Quit
- End If
- ' just add, no aggregate. I use addIt anyway just for it is easy.
- a.DelBetalning(a.nDelbetalningIdx).SInk = addIt( a.DelBetalning(a.nDelbetalningIdx).SInk, r.amount )
- a.DelBetalning(a.nDelbetalningIdx).ExtraInfo = r.Id ' PayexTransactionID
- a.nDelbetalningIdx = a.nDelbetalningIdx + 1
- End If
- ' NBDirektBet
- If( r.subType = "3" ) Then
- If( a.nNBDirektBetIdx = MAX_DELBET ) Then
- ReportEvent(RE_ERROR, "The index MAX_DELBET must be increased. It has reached max. Increase is bigger then the value below and restart" )
- ReportEvent(RE_ERROR, "Index value=" + CStr(a.nNBDirektBetIdx) )
- Quit
- End If
- ' just add, no aggregate. I use addIt anyway just for it is easy.
- a.NBDirektBet(a.nNBDirektBetIdx).SInk = addIt( a.NBDirektBet(a.nNBDirektBetIdx).SInk, r.amount )
- a.NBDirektBet(a.nNBDirektBetIdx).ExtraInfo = r.Id ' NordbankenTxID
- a.nNBDirektBetIdx = a.nNBDirektBetIdx + 1
- End If
- ' SHBDirektBet
- If( r.subType = "4" ) Then
- If( a.nSHBDirektBetIdx = MAX_DELBET ) Then
- ReportEvent(RE_ERROR, "The index MAX_DELBET must be increased. It has reached max. Increase is bigger then the value below and restart" )
- ReportEvent(RE_ERROR, "Index value=" + CStr(a.nSHBDirektBetIdx) )
- Quit
- End If
- ' just add, no aggregate. I use addIt anyway just for it is easy.
- a.SHBDirektBet(a.nSHBDirektBetIdx).SInk = addIt( a.SHBDirektBet(a.nSHBDirektBetIdx).SInk, r.amount )
- a.SHBDirektBet(a.nSHBDirektBetIdx).ExtraInfo = r.Id '
- a.nSHBDirektBetIdx = a.nSHBDirektBetIdx + 1
- End If
- ' SEBDirektBet
- If( r.subType = "5" ) Then
- If( a.nSEBDirektBetIdx = MAX_DELBET ) Then
- ReportEvent(RE_ERROR, "The index MAX_DELBET must be increased. It has reached max. Increase is bigger then the value below and restart" )
- ReportEvent(RE_ERROR, "Index value=" + CStr(a.nSEBDirektBetIdx) )
- Quit
- End If
- ' just add, no aggregate. I use addIt anyway just for it is easy.
- a.SEBDirektBet(a.nSEBDirektBetIdx).SInk = addIt( a.SEBDirektBet(a.nSEBDirektBetIdx).SInk, r.amount )
- a.SEBDirektBet(a.nSEBDirektBetIdx).ExtraInfo = r.Id '
- a.nSEBDirektBetIdx = a.nSEBDirektBetIdx + 1
- End If
- ' FSPDirektBet
- If( r.subType = "6" ) Then
- If( a.nFSPDirektBetIdx = MAX_DELBET ) Then
- ReportEvent(RE_ERROR, "The index MAX_DELBET must be increased. It has reached max. Increase is bigger then the value below and restart" )
- ReportEvent(RE_ERROR, "Index value=" + CStr(a.nFSPDirektBetIdx) )
- Quit
- End If
- ' just add, no aggregate. I use addIt anyway just for it is easy.
- a.FSPDirektBet(a.nFSPDirektBetIdx).SInk = addIt( a.FSPDirektBet(a.nFSPDirektBetIdx).SInk, r.amount )
- a.FSPDirektBet(a.nFSPDirektBetIdx).ExtraInfo = r.Id '
- a.nFSPDirektBetIdx = a.nFSPDirektBetIdx + 1
- End If
- ' PayExFaktura
- If( r.subType = "7" ) Then
- If( a.nPayExFakturaIdx = MAX_DELBET ) Then
- ReportEvent(RE_ERROR, "The index MAX_DELBET must be increased. It has reached max. Increase is bigger then the value below and restart" )
- ReportEvent(RE_ERROR, "Index value=" + CStr(a.nPayExFakturaIdx) )
- Quit
- End If
- ' just add, no aggregate. I use addIt anyway just for it is easy.
- a.PayExFaktura(a.nPayExFakturaIdx).SInk = addIt( a.PayExFaktura(a.nPayExFakturaIdx).SInk, r.amount )
- a.PayExFaktura(a.nPayExFakturaIdx).ExtraInfo = r.Id '
- a.nPayExFakturaIdx = a.nPayExFakturaIdx + 1
- End If
- ' PayExDelbet
- If( r.subType = "8" ) Then
- If( a.nPayExDelbetIdx = MAX_DELBET ) Then
- ReportEvent(RE_ERROR, "The index MAX_DELBET must be increased. It has reached max. Increase is bigger then the value below and restart" )
- ReportEvent(RE_ERROR, "Index value=" + CStr(a.nPayExDelbetIdx) )
- Quit
- End If
- ' just add, no aggregate. I use addIt anyway just for it is easy.
- a.PayExDelbet(a.nPayExDelbetIdx).SInk = addIt( a.PayExDelbet(a.nPayExDelbetIdx).SInk, r.amount )
- a.PayExDelbet(a.nPayExDelbetIdx).ExtraInfo = r.Id '
- a.nPayExDelbetIdx = a.nPayExDelbetIdx + 1
- End If
- Case "102"
- ' Systemförsäljning
- If( r.VATPercent = "" ) Then
- ReportEvent( RE_ERROR, "No VAT for " + r.transactionType + ":" + sVGrupp + " VAT set to:" + r.VATPercent + " : Momssumma(" + r.Momssumma + ")" )
- Quit
- End If
- vp = GetIdxFromVAT( r.VATPercent )
- a.SystemForsalj(vp) = ComputeAllValues( a.SystemForsalj(vp), "ADD", r)
- Case "103"
- a.KortbetalningOvrig.SInk = addIt( a.KortbetalningOvrig.SInk, r.amount )
- Case "104"
- a.KortbetalningOvrig.SInk = subtractIt( a.KortbetalningOvrig.SInk, r.amount )
- Case "106"
- 'Drag bort Amount "72" och "106"
- a.KontantUtlandsk.SInk = subtractIt( a.KontantUtlandsk.SInk, r.amount )
- ' Case "200"
- ' ' ÅterköpSystem
- ' a.AterkopSystem.SInk = addIt( a.AterkopSystem.SInk, r.amount )
- Case Else
- ReportEvent( RE_WARNING, "Transactiontype:" + r.transactionType + " is not handled" )
- End Select
- Exit Sub
- AllError:
- ReportEvent( RE_ERROR, "Aggregate:" + Err.Description )
- ReportEvent(RE_WARNING, "RowID:" + CStr(r.DBID) )
- ReportEvent(RE_WARNING, "Transactiontype:" + r.transactionType )
- ReportEvent(RE_WARNING, "Category:" + sVGrupp )
- Quit
- End Sub
- Sub ResetSEK( s As SEK )
- s.SEx = "0,00"
- s.SInk = "0,00"
- s.SMoms = "0,00"
- ' s.VATPerc = "0,00"
- s.CostP = "0,00"
- s.ExtraInfo = ""
- End Sub
- Sub ResetAgg( a As TheAggregator )
- Dim i As Integer
- ResetSEK(a.Kontant)
- ResetSEK(a.KontantUtlandsk)
- ResetSEK(a.KortbetalningAMEX)
- ResetSEK(a.KortbetalningBABS)
- ResetSEK(a.KortbetalningDiners)
- ResetSEK(a.KortbetalningOvrig)
- ResetSEK(a.Kupong)
- ResetSEK(a.Presentkort)
- ResetSEK(a.PresentkortSalda)
- ResetSEK(a.ASABavgift)
- ResetSEK(a.SummaASAB)
- ResetSEK(a.SubTotal)
- ResetSEK(a.OresAvrundning)
- ResetSEK(a.MomsBelopp)
- ResetSEK(a.MomsGrundBelopp)
- ResetSEK(a.Rekvisition)
- ResetSEK(a.FakturaAvgift)
- ResetSEK(a.FraktAvgift)
- ResetSEK(a.Goyada)
- For i = 0 To MAX_DELBET-1
- ResetSEK(a.DelBetalning(i))
- Next
- a.nDelbetalningIdx = 0
- For i = 0 To MAX_DELBET-1
- ResetSEK(a.NBDirektBet(i))
- Next
- a.nNBDirektBetIdx = 0
- For i = 0 To MAX_DELBET-1
- ResetSEK(a.SHBDirektBet(i))
- Next
- a.nSHBDirektBetIdx = 0
- For i = 0 To MAX_DELBET-1
- ResetSEK(a.SEBDirektBet(i))
- Next
- a.nSEBDirektBetIdx = 0
- For i = 0 To MAX_DELBET-1
- ResetSEK(a.FSPDirektBet(i))
- Next
- a.nFSPDirektBetIdx = 0
- For i = 0 To MAX_DELBET-1
- ResetSEK(a.PayExFaktura(i))
- Next
- a.nPayExFakturaIdx = 0
- For i = 0 To MAX_DELBET-1
- ResetSEK(a.PayExDelbet(i))
- Next
- a.nPayExDelbetIdx = 0
- ResetSEK(a.Rattelse)
- ResetSEK(a.KupongRabatt)
- ResetSEK(a.RabattSubTot)
- ResetSEK(a.InbetFaktura)
- ResetSEK(a.BetTillgodoKvitto)
- ResetSEK(a.EfterregRabatt)
- ResetSEK(a.AterbetalningKredit)
- ResetSEK(a.FsgTillgodoKvitto)
- ResetSEK(a.InlostBonuscheck)
- ResetSEK(a.FormanskortBonusgr)
- ResetSEK(a.InlostBonusbelopp)
- ResetSEK(a.Formanskort)
- ResetSEK(a.BetPresentkortAnnanButik)
- ResetSEK(a.BetTillgodoAnnanButik)
- ResetSEK(a.OspecOvrigUttag)
- ResetSEK(a.KontorsMateriel)
- ResetSEK(a.PersonalVard)
- ResetSEK(a.OvrigaUtlagg)
- For i = 1 To 4
- ' Förskrivet
- ResetSEK(a.F_RX(i))
- ResetSEK(a.F_OTC(i))
- ResetSEK(a.F_Livsmedel(i))
- ResetSEK(a.F_Hjalpmedel(i))
- ResetSEK(a.F_Bocker(i))
- ResetSEK(a.F_Tjanster(i))
- ResetSEK(a.F_Ovrigt(i))
- ' Återköp förskrivet
- ResetSEK(a.AF_RX(i))
- ResetSEK(a.AF_OTC(i))
- ResetSEK(a.AF_Livsmedel(i))
- ResetSEK(a.AF_Hjalpmedel(i))
- ResetSEK(a.AF_Bocker(i))
- ResetSEK(a.AF_Tjanster(i))
- ResetSEK(a.AF_Ovrigt(i))
- ' Egenvård
- ResetSEK(a.EV_RX(i))
- ResetSEK(a.EV_OTC(i))
- ResetSEK(a.EV_Livsmedel(i))
- ResetSEK(a.EV_Hjalpmedel(i))
- ResetSEK(a.EV_Bocker(i))
- ResetSEK(a.EV_Tjanster(i))
- ResetSEK(a.EV_VetArvode(i))
- ResetSEK(a.EV_Ovrigt(i))
- ' Återköp egenvård
- ResetSEK(a.AEV_RX(i))
- ResetSEK(a.AEV_OTC(i))
- ResetSEK(a.AEV_Livsmedel(i))
- ResetSEK(a.AEV_Hjalpmedel(i))
- ResetSEK(a.AEV_Bocker(i))
- ResetSEK(a.AEV_Tjanster(i))
- ResetSEK(a.AEV_VetArvode(i))
- ResetSEK(a.AEV_Ovrigt(i))
- ' Återköp egenvård
- ResetSEK(a.EVR_RX(i))
- ResetSEK(a.EVR_OTC(i))
- ResetSEK(a.EVR_Livsmedel(i))
- ResetSEK(a.EVR_Hjalpmedel(i))
- ResetSEK(a.EVR_Bocker(i))
- ResetSEK(a.EVR_Tjanster(i))
- ResetSEK(a.EVR_Ovrigt(i))
- ' Diverse
- ResetSEK(a.Formansbelopp(i))
- ResetSEK(a.Subvention(i))
- ResetSEK(a.AterkopSystem(i))
- ResetSEK(a.SystemForsalj(i))
- Next i
- ' Egenvård receptpåsar
- ResetSEK(a.EV_RP0)
- ResetSEK(a.EV_RP6)
- ResetSEK(a.EV_RP12)
- ResetSEK(a.EV_RP25)
- ' Egenvård rabatt receptpåsar
- ResetSEK(a.EVR_RP0)
- ResetSEK(a.EVR_RP6)
- ResetSEK(a.EVR_RP12)
- ResetSEK(a.EVR_RP25)
- ' Återköp egenvård
- ResetSEK(a.AEV_RP0)
- ResetSEK(a.AEV_RP6)
- ResetSEK(a.AEV_RP12)
- ResetSEK(a.AEV_RP25)
- End Sub
- Function InitXML() As String
- On Error GoTo ErrorHandling
- Set oBInfo = CreateSubElement(oXml, "BokforingsInfo" )
- Exit Function
- ErrorHandling:
- ReportLog(RL_NORMAL, "||ErrorInformation|Error=" & GetSubParameter(GetParameter("-Component%CurrentComponent%"), "File") & ": " & Err.Source & " " & Err.Number & " (&H" & Hex(Err.Number) & ") " & Err.Description)
- ReportEvent(RE_ERROR, GetSubParameter(GetParameter("-Component%CurrentComponent%"), "File") & ": " & Err.Source & " " & Err.Number & " (&H" & Hex(Err.Number) & ") " & Err.Description)
- Quit
- End Function
- Sub AddXMLInfo( a As TheAggregator )
- Dim i As Integer
- On Error GoTo ErrorHandling:
- Set oInfo = CreateSubElement(oBInfo, "Info" )
- CreateSubElement(oInfo, "OrganisationsNummer", a.Organisationsnr )
- CreateSubElement(oInfo, "ApoteksID", a.Apoteksid )
- CreateSubElement(oInfo, "Datum", a.Datum )
- Set oSubInfo = CreateSubElement( oInfo, "SubInfo" )
- ' ändrat 2011-01-25
- ' addNegativeSign( a.Kontant, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "Kontant/SInk", FixDot( a.Kontant.SInk ))
- FormatPrint_II( "Kontant/SInk", a.Kontant.SInk, a )
- CreateSubNodeFromEPath( oSubInfo, "Fakturaavgift/SInk", FixDot( a.FakturaAvgift.SInk ))
- FormatPrint_II( "Fakturaavgift/SInk", a.FakturaAvgift.SInk, a )
- CreateSubNodeFromEPath( oSubInfo, "Fraktavgift/SInk", FixDot( a.FraktAvgift.SInk ))
- FormatPrint_II( "Fraktavgift/SInk", a.FraktAvgift.SInk, a )
- CreateSubNodeFromEPath( oSubInfo, "Goyada/SInk", FixDot( a.Goyada.SInk ))
- FormatPrint_II( "Goyada/SInk", a.Goyada.SInk, a )
- ' ändrat 2011-01-25
- ' addNegativeSign( a.KontantUtlandsk, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "KontantUtlandsk/SInk", FixDot( a.KontantUtlandsk.SInk ))
- FormatPrint_II( "KontantUtlandsk/SInk", a.KontantUtlandsk.SInk, a )
- addNegativeSign( a.KortbetalningAMEX, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "KortbetalningAmex/SInk", FixDot( a.KortbetalningAMEX.SInk ))
- FormatPrint_II( "KortbetalningAmex/SInk", a.KortbetalningAMEX.SInk, a )
- addNegativeSign( a.KortbetalningBABS, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "KortbetalningBABS/SInk", FixDot( a.KortbetalningBABS.SInk ))
- FormatPrint_II( "KortbetalningBABS/SInk", a.KortbetalningBABS.SInk, a )
- addNegativeSign( a.KortbetalningDiners, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "KortbetalningDiners/SInk", FixDot( a.KortbetalningDiners.SInk ))
- FormatPrint_II( "KortbetalningDiners/SInk", a.KortbetalningDiners.SInk, a )
- addNegativeSign( a.KortbetalningOvrig, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "KortbetalningOvrigt/SInk", FixDot( a.KortbetalningOvrig.SInk ))
- FormatPrint_II( "KortbetalningOvrigt/SInk", a.KortbetalningOvrig.SInk, a )
- addNegativeSign( a.Rekvisition, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "Rekvisition/SInk", FixDot( a.Rekvisition.SInk ))
- FormatPrint_II( "Rekvisition/SInk", a.Rekvisition.SInk, a )
- addNegativeSign( a.Presentkort, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "Presentkort/SInk", FixDot( a.Presentkort.SInk ))
- FormatPrint_II( "Presentkort/SInk", a.Presentkort.SInk, a )
- addNegativeSign( a.SummaASAB, "1,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "SummaASAB/SInk", FixDot( a.SummaASAB.SInk ))
- FormatPrint_II( "SummaASAB/SInk", a.SummaASAB.SInk, a )
- ' ----------------------------------------------------------------
- For i = 0 To a.nDelbetalningIdx-1
- ' one for each transaction/row in file. no aggregation.
- Set oTmp = CreateSubElement(oSubInfo, "Delbetalning" )
- CreateSubNodeFromEPath( oTmp, "SInk", FixDot( a.DelBetalning(i).SInk ))
- CreateSubNodeFromEPath( oTmp, "ExtraInfo", a.DelBetalning(i).ExtraInfo )
- FormatPrint_II( "DelBetalning/SInk", a.DelBetalning(i).SInk, a, a.DelBetalning(i).ExtraInfo )
- Next
- For i = 0 To a.nNBDirektBetIdx-1
- ' one for each transaction/row in file. no aggregation.
- Set oTmp = CreateSubElement(oSubInfo, "DirektbetNB" )
- CreateSubNodeFromEPath( oTmp, "SInk", FixDot( a.NBDirektBet(i).SInk ))
- CreateSubNodeFromEPath( oTmp, "ExtraInfo", a.NBDirektBet(i).ExtraInfo )
- FormatPrint_II( "Direktbet NB/SInk", a.NBDirektBet(i).SInk, a, a.NBDirektBet(i).ExtraInfo )
- Next
- For i = 0 To a.nSHBDirektBetIdx-1
- ' one for each transaction/row in file. no aggregation.
- Set oTmp = CreateSubElement(oSubInfo, "DirektbetSHB" )
- CreateSubNodeFromEPath( oTmp, "SInk", FixDot( a.SHBDirektBet(i).SInk ))
- CreateSubNodeFromEPath( oTmp, "ExtraInfo", a.SHBDirektBet(i).ExtraInfo )
- FormatPrint_II( "Direktbet SHB/SInk", a.SHBDirektBet(i).SInk, a, a.SHBDirektBet(i).ExtraInfo )
- Next
- For i = 0 To a.nSEBDirektBetIdx-1
- ' one for each transaction/row in file. no aggregation.
- Set oTmp = CreateSubElement(oSubInfo, "DirektbetSHB" )
- CreateSubNodeFromEPath( oTmp, "SInk", FixDot( a.SEBDirektBet(i).SInk ))
- CreateSubNodeFromEPath( oTmp, "ExtraInfo", a.SEBDirektBet(i).ExtraInfo )
- FormatPrint_II( "Direktbet SEB/SInk", a.SEBDirektBet(i).SInk, a, a.SEBDirektBet(i).ExtraInfo )
- Next
- For i = 0 To a.nFSPDirektBetIdx-1
- ' one for each transaction/row in file. no aggregation.
- Set oTmp = CreateSubElement(oSubInfo, "DirektbetFSP" )
- CreateSubNodeFromEPath( oTmp, "SInk", FixDot( a.FSPDirektBet(i).SInk ))
- CreateSubNodeFromEPath( oTmp, "ExtraInfo", a.FSPDirektBet(i).ExtraInfo )
- FormatPrint_II( "Direktbet FSP/SInk", a.FSPDirektBet(i).SInk, a, a.FSPDirektBet(i).ExtraInfo )
- Next
- For i = 0 To a.nPayExFakturaIdx-1
- ' one for each transaction/row in file. no aggregation.
- Set oTmp = CreateSubElement(oSubInfo, "PayExFaktura" )
- CreateSubNodeFromEPath( oTmp, "SInk", FixDot( a.PayExFaktura(i).SInk ))
- CreateSubNodeFromEPath( oTmp, "ExtraInfo", a.PayExFaktura(i).ExtraInfo )
- FormatPrint_II( "PayEx Faktura/SInk", a.PayExFaktura(i).SInk, a, a.PayExFaktura(i).ExtraInfo )
- Next
- For i = 0 To a.nPayExDelbetIdx-1
- ' one for each transaction/row in file. no aggregation.
- Set oTmp = CreateSubElement(oSubInfo, "PayExDelbet" )
- CreateSubNodeFromEPath( oTmp, "SInk", FixDot( a.PayExDelbet(i).SInk ))
- CreateSubNodeFromEPath( oTmp, "ExtraInfo", a.PayExDelbet(i).ExtraInfo )
- FormatPrint_II( "PayEx Delbet e-handel/SInk", a.PayExDelbet(i).SInk, a, a.PayExDelbet(i).ExtraInfo )
- Next
- ' ----------------------------------------------------------------
- addNegativeSign( a.Rattelse, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "Rattelse/SInk", FixDot( a.Rattelse.SInk ))
- FormatPrint_II( "Rattelse/SInk", a.Rattelse.SInk, a )
- CreateSubNodeFromEPath( oSubInfo, "AterbetalningKredit/SInk", FixDot( a.AterbetalningKredit.SInk ))
- FormatPrint_II( "AterbetalningKredit/SInk", a.AterbetalningKredit.SInk, a )
- CreateSubNodeFromEPath( oSubInfo, "EfterregRabatt/SInk", FixDot( a.EfterregRabatt.SInk ))
- FormatPrint_II( "EfterregRabatt/SInk", a.EfterregRabatt.SInk, a )
- ' ------------------
- addNegativeSign( a.PresentkortSalda, "1,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "PresentkortSalda/SInk", FixDot( a.PresentkortSalda.SInk ))
- FormatPrint_II( "PresentkortSalda/SInk", a.PresentkortSalda.SInk, a )
- ' no sign change addNegativeSign( a.Kupong, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "Kupong/SInk", FixDot( a.Kupong.SInk ))
- FormatPrint_II( "Kupong/SInk", a.Kupong.SInk, a )
- ' ändrat 2011-01-25
- ' addNegativeSign( a.SubTotal, "0,1,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "Subtotal/SInk", FixDot( a.SubTotal.SInk ))
- FormatPrint_II( "SubTotal/SInk", a.SubTotal.SInk, a )
- ' no sign change addNegativeSign( a.OresAvrundning, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "OresAvrundning/SEx", FixDot( a.OresAvrundning.SEx ))
- FormatPrint_II( "OresAvrundning/SEx", a.OresAvrundning.SEx, a )
- ' ändrat 2011-01-25
- ' addNegativeSign( a.MomsBelopp, "0,0,1,0" )
- CreateSubNodeFromEPath( oSubInfo, "MomsBelopp/SMoms", FixDot( a.MomsBelopp.SMoms ))
- FormatPrint_II( "MomsBelopp/SMoms", a.MomsBelopp.SMoms, a )
- ' no sign change addNegativeSign( a.MomsGrundBelopp, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "MomsGrundBelopp/SEx", FixDot( a.MomsGrundBelopp.SEx ))
- FormatPrint_II( "MomsGrundBelopp/SEx", a.MomsGrundBelopp.SEx, a )
- addNegativeSign( a.RabattSubTot, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "RabattSubTot/SInk", FixDot( a.RabattSubTot.SInk ))
- FormatPrint_II( "RabattSubTot/SInk", a.RabattSubTot.SInk, a )
- addNegativeSign( a.KupongRabatt, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "KupongRabatt/SInk", FixDot( a.KupongRabatt.SInk ))
- FormatPrint_II( "KupongRabatt/SInk", a.KupongRabatt.SInk, a )
- addNegativeSign( a.InbetFaktura, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "InbetFaktura/SInk", FixDot( a.InbetFaktura.SInk ))
- FormatPrint_II( "InbetFaktura/SInk", a.InbetFaktura.SInk, a )
- addNegativeSign( a.BetTillgodoKvitto, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "BetTillgodoKvitto/SInk", FixDot( a.BetTillgodoKvitto.SInk ))
- FormatPrint_II( "BetTillgodoKvitto/SInk", a.BetTillgodoKvitto.SInk, a )
- ' no sign change addNegativeSign( a.FsgTillgodoKvitto, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "FsgTillgodoKvitto/SInk", FixDot( a.FsgTillgodoKvitto.SInk ))
- FormatPrint_II( "FsgTillgodoKvitto/SInk", a.FsgTillgodoKvitto.SInk, a )
- addNegativeSign( a.InlostBonuscheck, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "InlostBonuscheck/SInk", FixDot( a.InlostBonuscheck.SInk ))
- FormatPrint_II( "InlostBonuscheck/SInk", a.InlostBonuscheck.SInk, a )
- ' no sign change addNegativeSign( a.FormanskortBonusgr, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "FormanskortBonusgr/SInk", FixDot( a.FormanskortBonusgr.SInk ))
- FormatPrint_II( "FormanskortBonusgr/SInk", a.FormanskortBonusgr.SInk, a )
- addNegativeSign( a.InlostBonusbelopp, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "InlostBonusbelopp/SInk", FixDot( a.InlostBonusbelopp.SInk ))
- FormatPrint_II( "InlostBonusbelopp/SInk", a.InlostBonusbelopp.SInk, a )
- ' no sign change addNegativeSign( a.Formanskort, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "Formanskort/SInk", FixDot( a.Formanskort.SInk ))
- FormatPrint_II( "Formanskort/SInk", a.Formanskort.SInk, a )
- addNegativeSign( a.BetPresentkortAnnanButik, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "BetPresentkortAnnanButik/SInk", FixDot( a.BetPresentkortAnnanButik.SInk ))
- FormatPrint_II( "BetPresentkortAnnanButik/SInk", a.BetPresentkortAnnanButik.SInk, a )
- addNegativeSign( a.BetTillgodoAnnanButik, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "BetTillgodoAnnanButik/SInk", FixDot( a.BetTillgodoAnnanButik.SInk ))
- FormatPrint_II( "BetTillgodoAnnanButik/SInk", a.BetTillgodoAnnanButik.SInk, a )
- addNegativeSign( a.ASABavgift, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "ASABAvgift/SInk", FixDot( a.ASABavgift.SInk ))
- CreateSubNodeFromEPath( oSubInfo, "ASABAvgift/SEx", FixDot( a.ASABavgift.SEx ))
- CreateSubNodeFromEPath( oSubInfo, "ASABAvgift/SMoms", FixDot( a.ASABavgift.SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "ASABAvgift/Momssats", ASAB_VAT_PERCENTAGE )
- FormatPrint_I( "ASABAvgift", a.ASABavgift, 4, a )
- addNegativeSign( a.OspecOvrigUttag, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "OspecOvrigUttag/SInk", FixDot( a.OspecOvrigUttag.SInk ))
- FormatPrint_II( "OspecOvrigUttag/SInk", a.OspecOvrigUttag.SInk, a )
- CreateSubNodeFromEPath( oSubInfo, "OspecOvrigUttag/SMoms", FixDot( a.OspecOvrigUttag.SMoms ))
- FormatPrint_II( "OspecOvrigUttag/SMoms", a.OspecOvrigUttag.SMoms, a )
- addNegativeSign( a.KontorsMateriel, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "Kontorsmateriel/SInk", FixDot( a.KontorsMateriel.SInk ))
- FormatPrint_II( "Kontorsmateriel/SInk", a.KontorsMateriel.SInk, a )
- CreateSubNodeFromEPath( oSubInfo, "Kontorsmateriel/SMoms", FixDot( a.KontorsMateriel.SMoms ))
- FormatPrint_II( "Kontorsmateriel/SMoms", a.KontorsMateriel.SMoms, a )
- addNegativeSign( a.PersonalVard, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "Personalvard/SInk", FixDot( a.PersonalVard.SInk ))
- FormatPrint_II( "Personalvard/SInk", a.PersonalVard.SInk, a )
- CreateSubNodeFromEPath( oSubInfo, "Personalvard/SMoms", FixDot( a.PersonalVard.SMoms ))
- FormatPrint_II( "Personalvard/SMoms", a.PersonalVard.SMoms, a )
- addNegativeSign( a.OvrigaUtlagg, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "OvrigaUtlagg/SInk", FixDot( a.OvrigaUtlagg.SInk ))
- FormatPrint_II( "OvrigaUtlagg/SInk", a.OvrigaUtlagg.SInk, a )
- CreateSubNodeFromEPath( oSubInfo, "OvrigaUtlagg/SMoms", FixDot( a.OvrigaUtlagg.SMoms ))
- FormatPrint_II( "OvrigaUtlagg/SMoms", a.OvrigaUtlagg.SMoms, a )
- ' klart hit, väntar på Lena.
- For i = 1 To 4
- addNegativeSign( a.AterkopSystem(i), "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopSystem/MT" + CStr(i) + "/SInk", FixDot( a.AterkopSystem(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopSystem/MT" + CStr(i) + "/SEx", FixDot( a.AterkopSystem(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopSystem/MT" + CStr(i) + "/SMoms", FixDot( a.AterkopSystem(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopSystem/MT" + CStr(i) + "/VInkPris", FixDot( a.AterkopSystem(i).CostP )) '
- CreateSubNodeFromEPath( oSubInfo, "AterkopSystem/MT" + CStr(i) + "/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopSystem", a.AterkopSystem(i), i, a )
- Next
- For i = 1 To 4
- addNegativeSign( a.SystemForsalj(i), "1,1,1,1" )
- CreateSubNodeFromEPath( oSubInfo, "SystemForsalj/MT" + CStr(i) + "/SInk", FixDot( a.SystemForsalj(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "SystemForsalj/MT" + CStr(i) + "/SEx", FixDot( a.SystemForsalj(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "SystemForsalj/MT" + CStr(i) + "/SMoms", FixDot( a.SystemForsalj(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "SystemForsalj/MT" + CStr(i) + "/VInkPris", FixDot( a.SystemForsalj(i).CostP )) '
- CreateSubNodeFromEPath( oSubInfo, "SystemForsalj/MT" + CStr(i) + "/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "SystemForsalj", a.SystemForsalj(i), i, a )
- Next
- For i = 1 To 4
- ' addNegativeSign( a.Formansbelopp(i), "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "Formansbelopp/MT" + CStr(i) + "/SInk", FixDot( a.Formansbelopp(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Formansbelopp/MT" + CStr(i) + "/SEx", FixDot( a.Formansbelopp(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Formansbelopp/MT" + CStr(i) + "/SMoms", FixDot( a.Formansbelopp(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Formansbelopp/MT" + CStr(i) + "/VInkPris", FixDot( a.Formansbelopp(i).CostP )) '
- CreateSubNodeFromEPath( oSubInfo, "Formansbelopp/MT" + CStr(i) + "/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Formansbelopp", a.Formansbelopp(i), i, a )
- Next
- For i = 1 To 4
- ' ändrat 2011-01-25
- ' addNegativeSign( a.Subvention(i), "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "Subvention/MT" + CStr(i) + "/SInk", FixDot( a.Subvention(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Subvention/MT" + CStr(i) + "/SEx", FixDot( a.Subvention(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Subvention/MT" + CStr(i) + "/SMoms", FixDot( a.Subvention(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Subvention/MT" + CStr(i) + "/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Subvention", a.Subvention(i), i, a )
- Next
- ' ------------------
- For i = 1 To 4
- addNegativeSign( a.F_RX(i), "1,1,1,0" )
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/RX/SInk", FixDot( a.F_RX(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/RX/SEx", FixDot( a.F_RX(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/RX/SMoms", FixDot( a.F_RX(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/RX/VInkPris", FixDot( a.F_RX(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/RX/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Forskrivet/RX", a.F_RX(i), i, a )
- Next
- For i = 1 To 4
- addNegativeSign( a.F_OTC(i), "1,1,1,0" )
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/OTC/SInk", FixDot( a.F_OTC(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/OTC/SEx", FixDot( a.F_OTC(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/OTC/SMoms", FixDot( a.F_OTC(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/OTC/VInkPris", FixDot( a.F_OTC(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/OTC/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Forskrivet/OTC", a.F_OTC(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.F_Livsmedel(i), "1,1,1,0" ) ' SInk, SEx, SMoms, Costp
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Livsmedel/SInk", FixDot( a.F_Livsmedel(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Livsmedel/SEx", FixDot( a.F_Livsmedel(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Livsmedel/SMoms", FixDot( a.F_Livsmedel(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Livsmedel/VInkPris", FixDot( a.F_Livsmedel(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Livsmedel/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Forskrivet/Livsmedel", a.F_Livsmedel(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.F_Hjalpmedel(i), "1,1,1,0" ) ' SInk, SEx, SMoms, Costp
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Hjalpmedel/SInk", FixDot( a.F_Hjalpmedel(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Hjalpmedel/SEx", FixDot( a.F_Hjalpmedel(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Hjalpmedel/SMoms", FixDot( a.F_Hjalpmedel(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Hjalpmedel/VInkPris", FixDot( a.F_Hjalpmedel(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Hjalpmedel/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Forskrivet/Hjalpmedel", a.F_Hjalpmedel(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.F_Bocker(i), "1,1,1,0" ) ' SInk, SEx, SMoms, Costp
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Bocker/SInk", FixDot( a.F_Bocker(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Bocker/SEx", FixDot( a.F_Bocker(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Bocker/SMoms", FixDot( a.F_Bocker(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Bocker/VInkPris", FixDot( a.F_Bocker(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Bocker/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Forskrivet/Bocker", a.F_Bocker(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.F_Tjanster(i), "1,1,1,0" ) ' SInk, SEx, SMoms, Costp
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Tjanster/SInk", FixDot( a.F_Tjanster(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Tjanster/SEx", FixDot( a.F_Tjanster(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Tjanster/SMoms", FixDot( a.F_Tjanster(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Tjanster/VInkPris", FixDot( a.F_Tjanster(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Tjanster/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Forskrivet/Tjanster", a.F_Tjanster(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.F_Ovrigt(i), "1,1,1,0" ) ' SInk, SEx, SMoms, Costp
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Ovrigt/SInk", FixDot( a.F_Ovrigt(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Ovrigt/SEx", FixDot( a.F_Ovrigt(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Ovrigt/SMoms", FixDot( a.F_Ovrigt(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Ovrigt/VInkPris", FixDot( a.F_Ovrigt(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Forskrivet/MT" + CStr(i) + "/Ovrigt/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Forskrivet/Ovrigt", a.F_Ovrigt(i), i, a )
- Next i
- ' ------------------
- For i = 1 To 4
- addNegativeSign( a.AF_RX(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/RX/SInk", FixDot( a.AF_RX(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/RX/SEx", FixDot( a.AF_RX(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/RX/SMoms", FixDot( a.AF_RX(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/RX/VInkPris", FixDot( a.AF_RX(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/RX/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopForskrivet/RX", a.AF_RX(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.AF_OTC(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/OTC/SInk", FixDot( a.AF_OTC(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/OTC/SEx", FixDot( a.AF_OTC(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/OTC/SMoms", FixDot( a.AF_OTC(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/OTC/VInkPris", FixDot( a.AF_OTC(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/OTC/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopForskrivet/OTC", a.AF_OTC(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.AF_Livsmedel(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Livsmedel/SInk", FixDot( a.AF_Livsmedel(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Livsmedel/SEx", FixDot( a.AF_Livsmedel(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Livsmedel/SMoms", FixDot( a.AF_Livsmedel(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Livsmedel/VInkPris", FixDot( a.AF_Livsmedel(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Livsmedel/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopForskrivet/Livsmedel", a.AF_Livsmedel(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.AF_Hjalpmedel(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Hjalpmedel/SInk", FixDot( a.AF_Hjalpmedel(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Hjalpmedel/SEx", FixDot( a.AF_Hjalpmedel(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Hjalpmedel/SMoms", FixDot( a.AF_Hjalpmedel(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Hjalpmedel/VInkPris", FixDot( a.AF_Hjalpmedel(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Hjalpmedel/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopForskrivet/Hjalpmedel", a.AF_Hjalpmedel(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.AF_Bocker(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Bocker/SInk", FixDot( a.AF_Bocker(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Bocker/SEx", FixDot( a.AF_Bocker(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Bocker/SMoms", FixDot( a.AF_Bocker(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Bocker/VInkPris", FixDot( a.AF_Bocker(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Bocker/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopForskrivet/Bocker", a.AF_Bocker(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.AF_Tjanster(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Tjanster/SInk", FixDot( a.AF_Tjanster(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Tjanster/SEx", FixDot( a.AF_Tjanster(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Tjanster/SMoms", FixDot( a.AF_Tjanster(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Tjanster/VInkPris", FixDot( a.AF_Tjanster(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Tjanster/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopForskrivet/Tjanster", a.AF_Tjanster(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.AF_Ovrigt(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Ovrigt/SInk", FixDot( a.AF_Ovrigt(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Ovrigt/SEx", FixDot( a.AF_Ovrigt(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Ovrigt/SMoms", FixDot( a.AF_Ovrigt(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Ovrigt/VInkPris", FixDot( a.AF_Ovrigt(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopForskrivet/MT" + CStr(i) + "/Ovrigt/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopForskrivet/Ovrigt", a.AF_Ovrigt(i), i, a )
- Next i
- ' ------------------
- addNegativeSign( a.EV_RP0, "1,1,1,0" ) ' SInk, SEx, SMoms, Costp
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar0Procent/SInk", FixDot( a.EV_RP0.SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar0Procent/SEx", FixDot( a.EV_RP0.SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar0Procent/SMoms", FixDot( a.EV_RP0.SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar0Procent/Momssats", "0.00" )
- FormatPrint_I( "Egenvard/Receptpasar0Procent", a.EV_RP0, 1, a )
- addNegativeSign( a.EV_RP6, "1,1,1,0" ) ' SInk, SEx, SMoms, Costp
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar6Procent/SInk", FixDot( a.EV_RP6.SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar6Procent/SEx", FixDot( a.EV_RP6.SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar6Procent/SMoms", FixDot( a.EV_RP6.SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar6Procent/Momssats", "6.00" )
- FormatPrint_I( "Egenvard/Receptpasar6Procent", a.EV_RP6, 2, a )
- addNegativeSign( a.EV_RP12, "1,1,1,0" ) ' SInk, SEx, SMoms, Costp
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar12Procent/SInk", FixDot( a.EV_RP12.SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar12Procent/SEx", FixDot( a.EV_RP12.SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar12Procent/SMoms", FixDot( a.EV_RP12.SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar12Procent/Momssats", "12.00" )
- FormatPrint_I( "Egenvard/Receptpasar12Procent", a.EV_RP12, 3, a )
- addNegativeSign( a.EV_RP25, "1,1,1,0" ) ' SInk, SEx, SMoms, Costp
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar25Procent/SInk", FixDot( a.EV_RP25.SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar25Procent/SEx", FixDot( a.EV_RP25.SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar25Procent/SMoms", FixDot( a.EV_RP25.SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/Receptpasar25Procent/Momssats", "25.00" )
- FormatPrint_I( "Egenvard/Receptpasar25Procent", a.EV_RP25, 4, a )
- ' -----------------------
- For i = 1 To 4
- addNegativeSign( a.EV_RX(i), "1,1,1,0" )
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/RX/SInk", FixDot( a.EV_RX(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/RX/SEx", FixDot( a.EV_RX(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/RX/SMoms", FixDot( a.EV_RX(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/RX/VInkPris", FixDot( a.EV_RX(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/RX/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Egenvard/RX", a.EV_RX(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.EV_OTC(i), "1,1,1,0" )
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/OTC/SInk", FixDot( a.EV_OTC(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/OTC/SEx", FixDot( a.EV_OTC(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/OTC/SMoms", FixDot( a.EV_OTC(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/OTC/VInkPris", FixDot( a.EV_OTC(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/OTC/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Egenvard/OTC", a.EV_OTC(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.EV_Livsmedel(i), "1,1,1,0" )
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Livsmedel/SInk", FixDot( a.EV_Livsmedel(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Livsmedel/SEx", FixDot( a.EV_Livsmedel(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Livsmedel/SMoms", FixDot( a.EV_Livsmedel(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Livsmedel/VInkPris", FixDot( a.EV_Livsmedel(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Livsmedel/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Egenvard/Livsmedel", a.EV_Livsmedel(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.EV_Hjalpmedel(i), "1,1,1,0" )
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Hjalpmedel/SInk", FixDot( a.EV_Hjalpmedel(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Hjalpmedel/SEx", FixDot( a.EV_Hjalpmedel(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Hjalpmedel/SMoms", FixDot( a.EV_Hjalpmedel(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Hjalpmedel/VInkPris", FixDot( a.EV_Hjalpmedel(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Hjalpmedel/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Egenvard/Hjalpmedel", a.EV_Hjalpmedel(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.EV_Bocker(i), "1,1,1,0" )
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Bocker/SInk", FixDot( a.EV_Bocker(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Bocker/SEx", FixDot( a.EV_Bocker(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Bocker/SMoms", FixDot( a.EV_Bocker(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Bocker/VInkPris", FixDot( a.EV_Bocker(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Bocker/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Egenvard/Bocker", a.EV_Bocker(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.EV_Tjanster(i), "1,1,1,0" )
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Tjanster/SInk", FixDot( a.EV_Tjanster(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Tjanster/SEx", FixDot( a.EV_Tjanster(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Tjanster/SMoms", FixDot( a.EV_Tjanster(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Tjanster/VInkPris", FixDot( a.EV_Tjanster(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Tjanster/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Egenvard/Tjanster", a.EV_Tjanster(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.EV_VetArvode(i), "1,1,1,0" )
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/VetArvode/SInk", FixDot( a.EV_VetArvode(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/VetArvode/SEx", FixDot( a.EV_VetArvode(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/VetArvode/SMoms", FixDot( a.EV_VetArvode(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/VetArvode/VInkPris", FixDot( a.EV_VetArvode(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/VetArvode/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Egenvard/VetArvode", a.EV_VetArvode(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.EV_Ovrigt(i), "1,1,1,0" )
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Ovrigt/SInk", FixDot( a.EV_Ovrigt(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Ovrigt/SEx", FixDot( a.EV_Ovrigt(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Ovrigt/SMoms", FixDot( a.EV_Ovrigt(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Ovrigt/VInkPris", FixDot( a.EV_Ovrigt(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "Egenvard/MT" + CStr(i) + "/Ovrigt/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "Egenvard/Ovrigt", a.EV_Ovrigt(i), i, a )
- Next i
- ' ------------------------------------------------
- For i = 1 To 4
- addNegativeSign( a.EVR_RX(i), "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/RX/SInk", FixDot( a.EVR_RX(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/RX/SEx", FixDot( a.EVR_RX(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/RX/SMoms", FixDot( a.EVR_RX(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/RX/VInkPris", FixDot( a.EVR_RX(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/RX/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "EgenvardRabatt/RX", a.EVR_RX(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.EVR_OTC(i), "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/OTC/SInk", FixDot( a.EVR_OTC(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/OTC/SEx", FixDot( a.EVR_OTC(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/OTC/SMoms", FixDot( a.EVR_OTC(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/OTC/VInkPris", FixDot( a.EVR_OTC(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/OTC/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "EgenvardRabatt/OTC", a.EVR_OTC(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.EVR_Livsmedel(i), "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Livsmedel/SInk", FixDot( a.EVR_Livsmedel(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Livsmedel/SEx", FixDot( a.EVR_Livsmedel(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Livsmedel/SMoms", FixDot( a.EVR_Livsmedel(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Livsmedel/VInkPris", FixDot( a.EVR_Livsmedel(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Livsmedel/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "EgenvardRabatt/Livsmedel", a.EVR_Livsmedel(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.EVR_Hjalpmedel(i), "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Hjalpmedel/SInk", FixDot( a.EVR_Hjalpmedel(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Hjalpmedel/SEx", FixDot( a.EVR_Hjalpmedel(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Hjalpmedel/SMoms", FixDot( a.EVR_Hjalpmedel(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Hjalpmedel/VInkPris", FixDot( a.EVR_Hjalpmedel(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Hjalpmedel/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "EgenvardRabatt/Hjalpmedel", a.EVR_Hjalpmedel(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.EVR_Bocker(i), "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Bocker/SInk", FixDot( a.EVR_Bocker(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Bocker/SEx", FixDot( a.EVR_Bocker(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Bocker/SMoms", FixDot( a.EVR_Bocker(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Bocker/VInkPris", FixDot( a.EVR_Bocker(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Bocker/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "EgenvardRabatt/Bocker", a.EVR_Bocker(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.EVR_Tjanster(i), "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Tjanster/SInk", FixDot( a.EVR_Tjanster(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Tjanster/SEx", FixDot( a.EVR_Tjanster(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Tjanster/SMoms", FixDot( a.EVR_Tjanster(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Tjanster/VInkPris", FixDot( a.EVR_Tjanster(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Tjanster/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "EgenvardRabatt/Tjanster", a.EVR_Tjanster(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.EVR_Ovrigt(i), "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Ovrigt/SInk", FixDot( a.EVR_Ovrigt(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Ovrigt/SEx", FixDot( a.EVR_Ovrigt(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Ovrigt/SMoms", FixDot( a.EVR_Ovrigt(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Ovrigt/VInkPris", FixDot( a.EVR_Ovrigt(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/MT" + CStr(i) + "/Ovrigt/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "EgenvardRabatt/Ovrigt", a.EVR_Ovrigt(i), i, a )
- Next i
- addNegativeSign( a.EVR_RP0, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar0Procent/SInk", FixDot( a.EVR_RP0.SInk ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar0Procent/SEx", FixDot( a.EVR_RP0.SEx ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar0Procent/SMoms", FixDot( a.EVR_RP0.SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar0Procent/Momssats", "0.00" )
- FormatPrint_I( "EgenvardRabatt/Receptpasar0Procent", a.EVR_RP0, 1, a )
- addNegativeSign( a.EVR_RP6, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar6Procent/SInk", FixDot( a.EVR_RP6.SInk ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar6Procent/SEx", FixDot( a.EVR_RP6.SEx ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar6Procent/SMoms", FixDot( a.EVR_RP6.SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar6Procent/Momssats", "6.00" )
- FormatPrint_I( "EgenvardRabatt/Receptpasar6Procent", a.EVR_RP6, 2, a )
- addNegativeSign( a.EVR_RP12, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar12Procent/SInk", FixDot( a.EVR_RP12.SInk ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar12Procent/SEx", FixDot( a.EVR_RP12.SEx ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar12Procent/SMoms", FixDot( a.EVR_RP12.SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar12Procent/Momssats", "12.00" )
- FormatPrint_I( "EgenvardRabatt/Receptpasar12Procent", a.EVR_RP12, 3, a )
- addNegativeSign( a.EVR_RP25, "0,0,0,0" )
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar25Procent/SInk", FixDot( a.EVR_RP25.SInk ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar25Procent/SEx", FixDot( a.EVR_RP25.SEx ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar25Procent/SMoms", FixDot( a.EVR_RP25.SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "EgenvardRabatt/Receptpasar25Procent/Momssats", "25.00" )
- FormatPrint_I( "EgenvardRabatt/Receptpasar25Procent", a.EVR_RP25, 4, a )
- ' ------------------------------------------------
- addNegativeSign( a.AEV_RP0, "0,0,0,1" ) ' SInk, SEx, SMoms, Costp
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar0Procent/SInk", FixDot( a.AEV_RP0.SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar0Procent/SEx", FixDot( a.AEV_RP0.SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar0Procent/SMoms", FixDot( a.AEV_RP0.SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar0Procent/Momssats", "0.00" )
- FormatPrint_I( "AterkopEgenvard/Receptpasar0Procent", a.AEV_RP0, 1, a )
- addNegativeSign( a.AEV_RP6, "0,0,0,1" ) ' SInk, SEx, SMoms, Costp
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar6Procent/SInk", FixDot( a.AEV_RP6.SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar6Procent/SEx", FixDot( a.AEV_RP6.SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar6Procent/SMoms", FixDot( a.AEV_RP6.SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar6Procent/Momssats", "6.00" )
- FormatPrint_I( "AterkopEgenvard/Receptpasar6Procent", a.AEV_RP6, 2, a )
- addNegativeSign( a.AEV_RP12, "0,0,0,1" ) ' SInk, SEx, SMoms, Costp
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar12Procent/SInk", FixDot( a.AEV_RP12.SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar12Procent/SEx", FixDot( a.AEV_RP12.SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar12Procent/SMoms", FixDot( a.AEV_RP12.SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar12Procent/Momssats", "12.00" )
- FormatPrint_I( "AterkopEgenvard/Receptpasar12Procent", a.AEV_RP12, 3, a )
- addNegativeSign( a.AEV_RP25, "0,0,0,1" ) ' SInk, SEx, SMoms, Costp
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar25Procent/SInk", FixDot( a.AEV_RP25.SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar25Procent/SEx", FixDot( a.AEV_RP25.SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar25Procent/SMoms", FixDot( a.AEV_RP25.SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/Receptpasar25Procent/Momssats", "25.00" )
- FormatPrint_I( "AterkopEgenvard/Receptpasar25Procent", a.AEV_RP25, 4, a )
- For i = 1 To 4
- addNegativeSign( a.AEV_RX(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/RX/SInk", FixDot( a.AEV_RX(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/RX/SEx", FixDot( a.AEV_RX(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/RX/SMoms", FixDot( a.AEV_RX(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/RX/VInkPris", FixDot( a.AEV_RX(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/RX/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopEgenvard/RX", a.AEV_RX(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.AEV_OTC(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/OTC/SInk", FixDot( a.AEV_OTC(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/OTC/SEx", FixDot( a.AEV_OTC(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/OTC/SMoms", FixDot( a.AEV_OTC(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/OTC/VInkPris", FixDot( a.AEV_OTC(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/OTC/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopEgenvard/OTC", a.AEV_OTC(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.AEV_Livsmedel(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Livsmedel/SInk", FixDot( a.AEV_Livsmedel(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Livsmedel/SEx", FixDot( a.AEV_Livsmedel(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Livsmedel/SMoms", FixDot( a.AEV_Livsmedel(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Livsmedel/VInkPris", FixDot( a.AEV_Livsmedel(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Livsmedel/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopEgenvard/Livsmedel", a.AEV_Livsmedel(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.AEV_Hjalpmedel(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Hjalpmedel/SInk", FixDot( a.AEV_Hjalpmedel(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Hjalpmedel/SEx", FixDot( a.AEV_Hjalpmedel(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Hjalpmedel/SMoms", FixDot( a.AEV_Hjalpmedel(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Hjalpmedel/VInkPris", FixDot( a.AEV_Hjalpmedel(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Hjalpmedel/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopEgenvard/Hjalpmedel", a.AEV_Hjalpmedel(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.AEV_Bocker(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Bocker/SInk", FixDot( a.AEV_Bocker(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Bocker/SEx", FixDot( a.AEV_Bocker(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Bocker/SMoms", FixDot( a.AEV_Bocker(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Bocker/VInkPris", FixDot( a.AEV_Bocker(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Bocker/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopEgenvard/Bocker", a.AEV_Bocker(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.AEV_Tjanster(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Tjanster/SInk", FixDot( a.AEV_Tjanster(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Tjanster/SEx", FixDot( a.AEV_Tjanster(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Tjanster/SMoms", FixDot( a.AEV_Tjanster(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Tjanster/VInkPris", FixDot( a.AEV_Tjanster(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Tjanster/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopEgenvard/Tjanster", a.AEV_Tjanster(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.AEV_VetArvode(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/VetArvode/SInk", FixDot( a.AEV_VetArvode(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/VetArvode/SEx", FixDot( a.AEV_VetArvode(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/VetArvode/SMoms", FixDot( a.AEV_VetArvode(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/VetArvode/VInkPris", FixDot( a.AEV_VetArvode(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/VetArvode/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopEgenvard/VetArvode", a.AEV_VetArvode(i), i, a )
- Next i
- For i = 1 To 4
- addNegativeSign( a.AEV_Ovrigt(i), "0,0,0,1" )
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Ovrigt/SInk", FixDot( a.AEV_Ovrigt(i).SInk ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Ovrigt/SEx", FixDot( a.AEV_Ovrigt(i).SEx ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Ovrigt/SMoms", FixDot( a.AEV_Ovrigt(i).SMoms ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Ovrigt/VInkPris", FixDot( a.AEV_Ovrigt(i).CostP ))
- CreateSubNodeFromEPath( oSubInfo, "AterkopEgenvard/MT" + CStr(i) + "/Ovrigt/Momssats", GetVatFromIdx(i))
- FormatPrint_I( "AterkopEgenvard/Ovrigt", a.AEV_Ovrigt(i), i, a )
- Next i
- Exit Sub
- ErrorHandling:
- ReportEvent( RE_ERROR, "AddXMLInfo:" + Err.Description )
- Quit
- End Sub
- Function multiplyIt( a As String, b As String ) As String
- If( a = "" ) Then a = "0,00"
- If( b = "" ) Then b = "0,00"
- a = Replace( a, ".", "," )
- b = Replace( b, ".", "," )
- multiplyIt = CStr(CDbl(CDbl(a) * CDbl(b)))
- End Function
- Sub addNegativeSign( a As SEK, sMask As String )
- Dim aMask() As String
- aMask() = Split(sMask, "," )
- If( aMask(0) = "1" ) Then
- If( InStr( a.SInk, "-" ) = 0 ) Then
- If( a.SInk <> "0" ) Then
- a.SInk = "-" + a.SInk
- End If
- End If
- Else
- a.SInk = Replace( a.SInk, "-", "" )
- End If
- If( aMask(1) = "1" ) Then
- If( InStr( a.SEx, "-" ) = 0 ) Then
- If( a.SEx <> "0" ) Then
- a.SEx = "-" + a.SEx
- End If
- End If
- Else
- a.SEx = Replace( a.SEx, "-", "" )
- End If
- If( aMask(2) = "1" ) Then
- If( InStr( a.SMoms, "-" ) = 0 ) Then
- If( a.SMoms <> "0" ) Then
- a.SMoms = "-" + a.SMoms
- End If
- End If
- Else
- a.SMoms = Replace( a.SMoms, "-", "" )
- End If
- If( aMask(3) = "1" ) Then
- If( InStr( a.CostP, "-" ) = 0 ) Then
- If( a.CostP <> "0" ) Then
- a.CostP = "-" + a.CostP
- End If
- End If
- Else
- a.CostP = Replace( a.CostP, "-", "" )
- End If
- End Sub
- Function addIt( a As String, b As String ) As String
- If( a = "" ) Then a = "0,00"
- If( b = "" ) Then b = "0,00"
- a = Replace( a, ".", "," )
- b = Replace( b, ".", "," )
- addIt = CStr(CDbl(CDbl(a) + CDbl(b)))
- End Function
- Function subtractIt( a As String, b As String ) As String
- If( a = "" ) Then a = "0,00"
- If( b = "" ) Then b = "0,00"
- a = Replace( a, ".", "," )
- b = Replace( b, ".", "," )
- subtractIt = CStr(CDbl(CDbl(a) - CDbl(b)))
- End Function
- 'A = pris exkl moms
- 'B = pris inkl moms
- 'C = momssats i %
- 'B = A * (1 + C), ex 100 = 80 * (1 + 0,25)
- 'A = B / (1 + C), ex 80 = 100 / (1 + 0,25)
- 'C = (B - A) / A, ex 20 = (100 - 80) / 80 = 0,25 = 25%
- Function VATSumFromInkVAT( sAck As String, sSum As String, sVAT As String ) As String
- Dim dAck As Double
- Dim dSum As Double
- Dim dVAT As Double
- Dim dExVAT As Double
- Dim dSumVAT As Double
- sAck = Replace( sAck, ".", "," )
- sSum = Replace( sSum, ".", "," )
- sVAT = Replace( sVAT, ".", "," )
- dSum = CDbl(sSum)
- dAck = CDbl(sAck)
- dVAT = CDbl(sVAT)
- dExVAT = dSum / (1 + (dVAT/100)) '
- dSumVAT = CDbl(CDbl(dSum) - CDbl(dExVAT))
- VATSumFromInkVAT = CStr(Round(CDbl(CDbl(dAck) + CDbl(dSumVAT)), 2))
- End Function
- 'A = pris exkl moms
- 'B = pris inkl moms
- 'C = momssats i %
- 'B = A * (1 + C), ex 100 = 80 * (1 + 0,25)
- 'A = B / (1 + C), ex 80 = 100 / (1 + 0,25)
- 'C = (B - A) / A, ex 20 = (100 - 80) / 80 = 0,25 = 25%
- Function ExVATFromInkVAT( sAck As String, sSum As String, sVAT As String ) As String
- Dim dAck As Double
- Dim dSum As Double
- Dim dVAT As Double
- Dim dExVAT As Double
- sAck = Replace( sAck, ".", "," )
- sSum = Replace( sSum, ".", "," )
- sVAT = Replace( sVAT, ".", "," )
- dSum = CDbl(sSum)
- dAck = CDbl(sAck)
- dVAT = CDbl(sVAT)
- dExVAT = dSum / (1 + (dVAT/100)) '
- ExVATFromInkVAT = CStr(Round(CDbl(CDbl(dAck) + CDbl(dExVAT)), 2))
- End Function
- Function FixDot( s As String, Optional nType As _FIXDOT = MAKEDOT) As String
- If( nType = MAKEDOT ) Then
- FixDot = Replace( s, ",","." )
- Else
- FixDot = Replace( s, ",","." )
- If( FixDot = "0.00" Or FixDot = "00.00" Or FixDot = "0" Or FixDot = "-0.00" ) Then
- FixDot = ""
- End If
- End If
- End Function
- Function ComputeAllValues( aa As SEK, sType As String, r As Receipt ) As SEK
- Dim strSum As String
- aa.SMoms = VATSumFromInkVAT( aa.SMoms, r.amount, r.VATPercent )
- If( sType = "SUB" ) Then
- aa.SInk = subtractIt(aa.SInk, r.amount )
- Else
- aa.SInk = addIt(aa.SInk, r.amount )
- End If
- aa.SEx = ExVATFromInkVAT( aa.SEx, r.amount, r.VATPercent )
- strSum = multiplyIt( r.costPrice, r.amountNumber )
- aa.CostP = addIt(aa.CostP, strSum )
- ComputeAllValues = aa
- End Function
- Function GetIdxFromVAT( ByVal sVAT As String ) As _VAT
- Dim nVAT As Integer
- Dim i As Integer
- ' qwe qwe qwe qwe FIX THIS
- i = InStr( sVAT, "." )
- If( i > 0 ) Then
- sVAT = Left( sVAT, i-1 )
- End If
- nVAT = CInt(sVAT)
- Select Case nVAT
- Case 0
- GetIdxFromVAT = P0
- Case 6
- GetIdxFromVAT = P6
- Case 12
- GetIdxFromVAT = P12
- Case 25
- GetIdxFromVAT = P25
- Case Else
- ' qwe qwe qew qew FIX THIS!
- ReportEvent( RE_ERROR, "VATPercentage is incorrect" )
- Quit
- End Select
- End Function
- Function GetVatFromIdx(i As Integer ) As String
- Select Case i
- Case 1
- GetVatFromIdx = "0.00"
- Case 2
- GetVatFromIdx = "6.00"
- Case 3
- GetVatFromIdx = "12.00"
- Case 4
- GetVatFromIdx = "25.00"
- Case Else
- ' qwe qwe qew qew FIX THIS!
- ReportEvent( RE_ERROR, "VATPercentage is incorrect" )
- Quit
- End Select
- End Function
- Sub FormatPrint_I( strText As String, s As SEK, iVATIdx As Integer, a As TheAggregator )
- Dim sInk As String
- Dim sEx As String
- Dim sMoms As String
- Dim sCost As String
- Dim sVAT As String
- Dim i As Integer
- sInk = FixDot(s.SInk, 1)
- sEx = FixDot(s.SEx, 1)
- sMoms = FixDot(s.SMoms, 1)
- sCost = FixDot(s.CostP, 1 )
- sVAT = GetVatFromIdx(iVATIdx)
- ' remove trailing decimals
- i = InStr( sVAT, "." )
- If( i > 0 ) Then
- sVAT = Left( sVAT, i-1 )
- End If
- Print #1, "0" + "|" + a.Organisationsnr + "|" + a.Apoteksid + "|" + a.Datum + "|" + strText + "|" + sInk + "|" + sEx + "|" + sMoms + "|" + sVAT + "|" + sCost
- End Sub
- Sub FormatPrint_II( strText As String, strValue As String, a As TheAggregator, Optional strExtraInfo As String = "" )
- Dim sOutput As String
- strValue = FixDot( strValue, NULLIFZERO )
- If( InStr( LCase(strText), "/sink" ) ) Then
- sOutput = strValue + "||||"
- ElseIf( InStr( LCase(strText), "/sex" ) ) Then
- sOutput = "|" + strValue + "|||"
- ElseIf( InStr( LCase(strText), "/smoms" ) ) Then
- sOutput = "||" + strValue + "||"
- ElseIf( InStr( LCase(strText), "/scostp" ) ) Then
- sOutput = "||||" + strValue
- Else
- ' qwe qwe qwe qwe FIX THIS!!!
- ReportEvent( RE_ERROR, "UNKNOWN SWITCH" )
- Quit
- End If
- ' prior to version 2.0
- ' Print #1, "1" + "|" + a.Organisationsnr + "|" + a.Apoteksid + "|" + a.Datum + "|" + strText + "|" + sOutput
- ' prior to version 2.0
- Print #1, "1" + "|" + a.Organisationsnr + "|" + a.Apoteksid + "|" + a.Datum + "|" + strText + "|" + sOutput + "|" + strExtraInfo
- End Sub
- Sub GetDataFromDB( rec As Receipt, oDBrs As ADODB.Recordset )
- On Error GoTo AllError
- rec.DBID = CStr(oDBrs.Fields( "ID" ))
- rec.organizationID = CStr(oDBrs.Fields( "organizationID" ))
- rec.storeId = CStr(oDBrs.Fields( "storeId" ))
- rec.transactionDate = CStr(oDBrs.Fields( "transactionDate" ))
- rec.transactionTime = CStr(oDBrs.Fields( "transactionTime" ))
- rec.storeRunNumber = CStr(oDBrs.Fields( "storeRunNumber" ))
- rec.transactionType = CStr(oDBrs.Fields( "transactionType" ))
- rec.cardNumber = CStr(oDBrs.Fields( "cardNumber" ))
- rec.itemNumber = CStr(oDBrs.Fields( "itemNumber" ))
- rec.TransID = CStr(oDBrs.Fields( "TransID" ))
- rec.ReceptArendeID = CStr(oDBrs.Fields( "ReceptArendeID" ))
- rec.category = CStr(oDBrs.Fields( "category" ))
- rec.EAN_Id = CStr(oDBrs.Fields( "EAN_Id" ))
- rec.amount = CStr(oDBrs.Fields( "amount" ))
- rec.amountNumber = CStr(oDBrs.Fields( "amountNumber" ))
- rec.customerNo = CStr(oDBrs.Fields( "customerNo" ))
- rec.customerName = CStr(oDBrs.Fields( "customerName" ))
- rec.customerContact = CStr(oDBrs.Fields( "customerContact" ))
- rec.customerRef = CStr(oDBrs.Fields( "customerRef" ))
- rec.customerIdentification = CStr(oDBrs.Fields( "customerIdentification" ))
- rec.originalCashRegister = CStr(oDBrs.Fields( "originalCashRegister" ))
- rec.VATPercent = Trim(CStr(oDBrs.Fields( "VATPercent" )))
- rec.costPrice = Trim(CStr(oDBrs.Fields( "costPrice" )))
- rec.Id = CStr(oDBrs.Fields( "rid" ))
- rec.subType = CStr(oDBrs.Fields( "subType" ))
- rec.RowNumber = CStr(oDBrs.Fields( "RowNumber" ))
- rec.receiptRowRefNumber = CStr(oDBrs.Fields( "receiptRowRefNumber" ))
- rec.receiptRowText = CStr(oDBrs.Fields( "receiptRowText" ))
- rec.orderID = CStr(oDBrs.Fields( "OrderID" ))
- rec.ArtikelNamn = CStr(oDBrs.Fields( "ArtikelNamn" ))
- rec.SubventionsKomm = CStr(oDBrs.Fields( "SubventionsKomm" ))
- rec.KundFodelseDatum = CStr(oDBrs.Fields( "KundFodelseDatum" ))
- rec.KundKon = CStr(oDBrs.Fields( "KundKon" ))
- rec.ArbetsplatsKod = CStr(oDBrs.Fields( "ArbetsplatsKod" ))
- rec.ForskrivarKod = CStr(oDBrs.Fields( "ForskrivarKod" ))
- rec.ByteTillatet = CStr(oDBrs.Fields( "ByteTillatet" ))
- rec.Formanstyp = CStr(oDBrs.Fields( "Formanstyp" ))
- rec.Arendetyp = CStr(oDBrs.Fields( "Arendetyp" ))
- rec.BetalningsDatum = CStr(oDBrs.Fields( "BetalningsDatum" ))
- rec.Forsaljningstyp = CStr(oDBrs.Fields( "Forsaljningstyp" ))
- rec.Momssatskod = CStr(oDBrs.Fields( "Momssatskod" ))
- rec.Summa = CStr(oDBrs.Fields( "Summa" ))
- rec.Valutakod = CStr(oDBrs.Fields( "Valutakod" ))
- rec.Momssumma = CStr(oDBrs.Fields( "Momssumma" ))
- rec.AupExmoms = CStr(oDBrs.Fields( "AupExMoms" ))
- rec.MerkostnadExmoms = CStr(oDBrs.Fields( "MerkostnadExmoms" ))
- rec.receiptId = CStr(oDBrs.Fields( "receiptId" ))
- rec.cashierId = CStr(oDBrs.Fields( "cashierId" ))
- rec.Varunummer = CStr(oDBrs.Fields( "Varunummer" ))
- rec.Forsaljningspris = CStr(oDBrs.Fields( "Forsaljningspris" ))
- rec.FormanExmoms = CStr(oDBrs.Fields( "FormanExmoms" ))
- rec.SubvensionExmoms = CStr(oDBrs.Fields( "SubvensionExmoms" ))
- rec.Beskrivning = CStr(oDBrs.Fields( "Beskrivning" ))
- rec.ArtikelID = CStr(oDBrs.Fields( "ArtikelID" ))
- Exit Sub
- AllError:
- ReportEvent(RE_ERROR, "GetDataFromDB:" + Err.Description )
- Quit
- End Sub
- Sub CreateTable()
- Dim strSQL As String
- On Error GoTo AllError
- ReportEvent( RE_ERROR, "CREATE TABLE MANUALLY! This function is obsolete." )
- Quit
- strSQL = "CREATE TABLE `tblreceiptrows` (" + _
- "`ID` bigint(20) NOT NULL AUTO_INCREMENT," + _
- "`State` varchar(45) DEFAULT NULL," + _
- "`StoreID` varchar(45) DEFAULT NULL," + _
- "`OrganizationID` varchar(45) DEFAULT NULL," + _
- "`StoreRunNumber` varchar(45) DEFAULT NULL," + _
- "`TransactionDate` varchar(45) DEFAULT NULL," + _
- "`TransactionTime` varchar(45) DEFAULT NULL," + _
- "`TransactionType` varchar(45) DEFAULT NULL," + _
- "`CardNumber` varchar(255) DEFAULT NULL," + _
- "`ItemNumber` varchar(45) DEFAULT NULL," + _
- "`Category` varchar(45) DEFAULT NULL," + _
- "`Amount` varchar(45) DEFAULT NULL," + _
- "`CustomerNo` varchar(45) DEFAULT NULL," + _
- "`VATPercent` varchar(45) DEFAULT NULL," + _
- "`rid` varchar(45) DEFAULT NULL," + _
- "`subType` varchar(45) DEFAULT NULL," + _
- "`originalCashRegister` varchar(45) DEFAULT NULL," + _
- "`RowNumber` varchar(45) DEFAULT NULL," + _
- "`receiptRowRefNumber` varchar(45) DEFAULT NULL," + _
- "`receiptRowText` varchar(255) DEFAULT NULL," + _
- "`CustomerName` varchar(80) DEFAULT NULL," + _
- "`ArtikelID` varchar(45) DEFAULT NULL," + _
- "`ArtikelNamn` varchar(45) DEFAULT NULL," + _
- "`ArtikelID` varchar(45) DEFAULT NULL," + _
- "`Forsaljningstyp` varchar(45) DEFAULT NULL," + _
- "`ByteTillatet` varchar(45) DEFAULT NULL," + _
- "`Formanstyp` varchar(45) DEFAULT NULL," + _
- "`Arendetyp` varchar(45) DEFAULT NULL," + _
- "`BetalningsDatum` varchar(45) DEFAULT NULL," + _
- "`AupExmoms` varchar(45) DEFAULT NULL," + _
- "`MerkostnadExmoms` varchar(45) DEFAULT NULL," + _
- "`SubventionsKomm` varchar(255) DEFAULT NULL," + _
- "`TransID` varchar(45) DEFAULT NULL," + _
- "`Beskrivning` varchar(255) DEFAULT NULL," + _
- "`KundFodelsedatum` varchar(45) DEFAULT NULL," + _
- "`KundKon` varchar(45) DEFAULT NULL," + _
- "`ArbetsplatsKod` varchar(45) DEFAULT NULL," + _
- "`ForskrivarKod` varchar(45) DEFAULT NULL," + _
- "`Momssatskod` varchar(45) DEFAULT NULL," + _
- "`Summa` varchar(45) DEFAULT NULL," + _
- "`Valutakod` varchar(45) DEFAULT NULL," + _
- "`Momssumma` varchar(45) DEFAULT NULL," + _
- "`CostPrice` varchar(45) DEFAULT NULL," + _
- "`AmountNumber` varchar(45) DEFAULT NULL," + _
- "`ReceiptID` varchar(45) DEFAULT NULL," + _
- "`CashierID` varchar(45) DEFAULT NULL," + _
- "`Varunummer` varchar(45) DEFAULT NULL," + _
- "`Forsaljningspris` varchar(45) DEFAULT NULL," + _
- "`FormanExmoms` varchar(45) DEFAULT NULL," + _
- "`SubvensionExmoms` varchar(45) DEFAULT NULL," + _
- "PRIMARY KEY (`ID`)" + _
- ") ENGINE=InnoDB AUTO_INCREMENT=1855 DEFAULT CHARSET=latin1;"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- ReportLog(RL_NORMAL, "Table created! NOTE! Alter parameter DBCreateTable, must be set to '0'" )
- ReportEvent(RE_WARNING, "Table created! NOTE! Alter parameter DBCreateTable, must be set to '0'" )
- Exit Sub
- AllError:
- ReportEvent(RE_ERROR, Err.Description )
- Quit
- End Sub
- Sub OBSOLETEGenerateBITransactionFile()
- Dim strFilename As String
- Dim strSQL As String
- On Error GoTo AllError
- strBITextFile = GetParameter( "-TXTBIOutFile" )
- If( strBITextFile = "" ) Then
- strBITextFile = CreateTempFile( "edi" )
- SetParameter( "-TXTBIOutFile=" + strBITextFile )
- End If
- strFilename = Replace(strBITextFile, "\", "\\" )
- ' with transactiontime
- strSQL ="SELECT ID, State, StoreID, OrganizationID, StoreRunNumber, TransactionDate, TransactionTime, TransactionType, " + _
- "CardNumber, ItemNumber, Category, Amount, CustomerNo, VATPercent, rid, subType, originalCashRegister, " + _
- "RowNumber, receiptRowRefNumber, CustomerName, ArtikelID, ArtikelNamn, SubventionsKomm, TransID, " + _
- "Beskrivning, KundFodelsedatum, KundKon, ArbetsplatsKod, ForskrivarKod, Momssatskod, Summa, Valutakod, " + _
- "Momssumma, CostPrice, AmountNumber, Varunummer, Forsaljningspris, FormanExmoms, SubvensionExmoms, " + _
- "ReceiptRowText, Forsaljningstyp, ByteTillatet, Formanstyp, Arendetyp, BetalningsDatum, AupExmoms, MerkostnadExmoms " + _
- "FROM tblReceiptRows_tmp " + _
- "WHERE State='I' " + _
- "ORDER BY organizationID, storeId, transactionDate, TransactionTime, storeRunNumber, receiptRowRefNumber, RowNumber, transactionType " + _
- "INTO OUTFILE '" + strFilename + "' FIELDS TERMINATED BY '|' LINES TERMINATED BY '\r\n' "
- bBITWritten = True
- On Error Resume Next
- Kill strBITextFile
- Err.Clear
- On Error GoTo AllError
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- Exit Sub
- AllError:
- ReportEvent(RE_ERROR, "GenerateBITransactionFile:" + Err.Description )
- Quit
- End Sub
- Sub InsertBIFromTblReceiptRows()
- Dim strSQL As String
- Dim strSQLII As String
- Dim sx As String
- Dim strSQLy As String
- Dim strSQLyII As String
- Dim sy As String
- Dim bHit As Boolean
- On Error GoTo AllError
- ' select all processed ID:s from the triggertable
- strSQL = "SELECT * FROM HJBI_import.dbo.imp_TriggerTab where ImportTriggerName = '" + strDBTriggerName + "' AND ImportRead is not Null AND (DataDeleted != 1 OR DataDeleted is null)"
- CloseRecordSet oDBrsCognos
- oDBrsCognos.open strSQL
- strSQL = "DELETE FROM imp_ps_salestrans WHERE (State = '"
- strSQLy = "UPDATE HJBI_import.dbo.imp_TriggerTab SET DataDeleted = '1' WHERE ImportTriggerName = '" + strDBTriggerName + "' AND (importID='"
- sx = "' OR State = '"
- sy = "' OR importID = '"
- bHit = False
- ' generate delete satement for imp_ps_salestrans
- ' generate update statement for imp_TriggerTab
- While( Not oDBrsCognos.EOF )
- bHit = True
- strSQLII = strSQLII + oDBrsCognos.Fields( "importID" ) + sx
- strSQLyII = strSQLyII + oDBrsCognos.Fields( "importID" ) + sy
- oDBrsCognos.MoveNext
- Wend
- If( bHit ) Then
- ReportEvent( RE_NORMAL, "Deleting data from 'imp_ps_salestrans' with ID:" + Left( strSQLyII, (Len(strSQLyII)-Len(sy))+1 ) )
- ' delete all rows in database where imp_ps_salestrans.State = triggertab.State.
- strSQL = strSQL + Left( strSQLII, (Len(strSQLII)-Len(sx))+1 ) + ");"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- ' update all rows in database where ID = ID.
- strSQLy = strSQLy + Left( strSQLyII, (Len(strSQLyII)-Len(sy))+1 ) + ");"
- CloseRecordSet oDBrsCognos
- oDBrsCognos.open strSQLy
- End If
- strSQL = "INSERT INTO imp_ps_salestrans (" + _
- "State, StoreID, OrganizationID, StoreRunNumber, TransactionDate, TransactionTime, TransactionType, CardNumber, " + _
- "ItemNumber, Category, Amount, CustomerNo, VATPercent, rid, SubType, OriginalCashRegister, RowNumber, " + _
- "receiptRowRefNumber, CustomerName, ArtikelID, ArtikelNamn, SubventionsKomm, TransID, Beskrivning, " + _
- "KundFodelsedatum, KundKon, ArbetsplatsKod, ForskrivarKod, Momssatskod, Summa, Valutakod, Momssumma, " + _
- "CostPrice, AmountNumber, Varunummer, Forsaljningspris, FormanExmoms, SubvensionExmoms, ReceiptRowText, " + _
- "Forsaljningstyp, ByteTillatet, Formanstyp, Arendetyp, BetalningsDatum, AupExmoms, MerkostnadExmoms, OrderID, " + _
- "CustomerContact, CustomerRef, CustomerIdentification, EAN_ID, ReceptArendeID, ID, CashierID) " + _
- "SELECT " + _
- "'" + Replace( GetID(), "#", "" ) + "', StoreID, OrganizationID, StoreRunNumber, TransactionDate, TransactionTime, TransactionType, CardNumber, " + _
- "ItemNumber, Category, Amount, CustomerNo, VATPercent, rid, SubType, OriginalCashRegister, RowNumber, " + _
- "receiptRowRefNumber, CustomerName, ArtikelID, ArtikelNamn, SubventionsKomm, TransID, Beskrivning, " + _
- "KundFodelsedatum, KundKon, ArbetsplatsKod, ForskrivarKod, Momssatskod, Summa, Valutakod, Momssumma, " + _
- "CostPrice, AmountNumber, Varunummer, Forsaljningspris, FormanExmoms, SubvensionExmoms, ReceiptRowText, " + _
- "Forsaljningstyp, ByteTillatet, Formanstyp, Arendetyp, BetalningsDatum, AupExmoms, MerkostnadExmoms, OrderID, " + _
- "CustomerContact, CustomerRef, CustomerIdentification, EAN_ID, ReceptArendeID, ID, CashierID " + _
- "FROM tblReceiptRows_tmp " + _
- "WHERE tblReceiptRows_tmp.State='I';"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- strSQL = "INSERT INTO HJBI_import.dbo.imp_TriggerTab (importTriggerName, importID) VALUES( '" + strDBTriggerName + "', '" + Replace( GetID(), "#", "" ) + "');"
- CloseRecordSet oDBrsCognos
- oDBrsCognos.open strSQL
- Exit Sub
- AllError:
- DumpSQL( strSQL )
- ReportEvent(RE_ERROR, "InsertBIFromTblReceiptRows:" + Err.Description + " : " + CStr(Err.Number) + " : 0x" + Hex( Err.Number ) )
- Quit
- End Sub
- Sub GenerateInvoiceFiles()
- Dim strSQL As String
- Dim rech As Receipt
- Dim strSavedID As String
- Dim strOldID As String
- ' Dim diRows As New Dictionary
- Dim agg As TheAggregator
- Dim strTempFile As String
- ' Dim bRowsPrinted As Boolean
- Dim bFirstTime As Boolean
- Dim strRestartUpdated As String
- Dim strSavedOrgID As String
- Dim strOldOrgID As String
- Dim numRecepits As Long
- Dim numRecepitsTmp As Long
- Dim bContinue As Boolean
- On Error GoTo AllError
- numRecepits = 30000
- numRecepitsTmp = numRecepits
- bContinue = True
- ' Prepare processed table
- strSQL = "TRUNCATE TABLE tblReceiptRows_processed"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- strSQL = "ALTER TABLE tblReceiptRows_processed AUTO_INCREMENT=1"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- ' Populate processed table
- strSQL = "INSERT INTO tblReceiptRows_processed(StoreRunNumber) SELECT DISTINCT(StoreRunNumber) FROM tblReceiptRows_tmp WHERE State='I' " + _
- "AND ((transactiontype='99' and SubType='1') " + _
- "OR (transactiontype='13' OR transactiontype='1' OR transactiontype='2' or transactiontype='6' or transactiontype='31' or transactiontype='87'))"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- ' Get an initial result
- strSQL = "SELECT * FROM tblReceiptRows_processed WHERE processed <> 1 LIMIT 1"
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- If oDBrs.RecordCount = 0 Then
- ReportEvent( RE_NORMAL, "No invoice data to process..." )
- Exit Sub
- End If
- idxIVFile = 0
- ' bRowsPrinted = False
- bFirstTime = True
- ResetRows()
- While bContinue And ContinueRun()
- ReportEvent(RE_INFO, "Processing invoice row " & CStr(numRecepits) & " receipts, invoice row: " & CStr(numRecepitsTmp))
- strSQL = "SELECT * FROM tblReceiptRows_tmp tt " + _
- "INNER JOIN tblReceiptRows_processed tp ON tt.StoreRunNumber = tp.StoreRunNumber and tp.id < " & CStr(numRecepitsTmp) & " and tp.processed <> 1 " + _
- "AND ((tt.transactiontype='99' and tt.SubType='1') " + _
- "OR (tt.transactiontype='13' OR tt.transactiontype='1' or tt.transactiontype='2' or tt.transactiontype='6' or tt.transactiontype='31' or tt.transactiontype='87')) " + _
- "ORDER BY tt.organizationID, tt.storeId, tt.transactionDate, tt.storeRunNumber, cast( tt.receiptRowRefNumber as decimal(2,0)), cast(tt.RowNumber as decimal(2,0)), cast(tt.transactionType as decimal(2,0))"
- If Not ContinueRun() Then
- ReportEvent( RE_ERROR, "Quitting on users request..." )
- Quit
- End If
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- bContinue = False
- If(oDBrs.RecordCount > 0 ) Then
- bContinue = True
- strOldID = ""
- strOldOrgID = ""
- While Not oDBrs.EOF And ContinueRun()
- GetDataFromDB( rech, oDBrs )
- strSavedID = rech.organizationID + rech.storeId + rech.transactionDate + rech.storeRunNumber
- strSavedOrgID = rech.organizationID
- If( strSavedID <> strOldID ) Then
- If( bFirstTime ) Then
- bFirstTime = False
- strOutfileInvoiceTxt(idxIVFile) = CreateTempFile( "txt", False )
- Open strOutfileInvoiceTxt(idxIVFile) For Output As #2
- strOrganizationNumber(idxIVFile) = strSavedOrgID
- idxIVFile = idxIVFile + 1
- strOldOrgID = strSavedOrgID
- Else
- ' bRowsPrinted = True
- PrintRows() ' prints all rech saved up til now
- ' one file for each organizationnumber.
- If( strSavedOrgID <> strOldOrgID ) Then
- Close #2
- strOutfileInvoiceTxt(idxIVFile) = CreateTempFile( "txt", False )
- Open strOutfileInvoiceTxt(idxIVFile) For Output As #2
- strOrganizationNumber(idxIVFile) = strSavedOrgID
- idxIVFile = idxIVFile + 1
- strOldOrgID = strSavedOrgID
- End If
- End If
- ResetRows() ' remove all already printed
- SaveRow( rech ) ' save the new
- strOldID = strSavedID
- Else
- SaveRow( rech )
- End If
- oDBrs.MoveNext
- Wend
- ' If( RowsLeftToprint() ) Then
- ' PrintRows()
- ' End If
- ' update processed rows in processed table
- strSQL = "UPDATE tblReceiptRows_processed set processed = 1 where processed = 0 and id < " & CStr(numRecepitsTmp)
- CloseRecordSet oDBrs
- oDBrs.open(strSQL)
- numRecepitsTmp = numRecepitsTmp + numRecepits
- If Not ContinueRun() Then
- ReportEvent(RE_ERROR, "Quitting on users request..." )
- Quit
- End If
- End If
- Wend
- If( RowsLeftToprint() ) Then
- PrintRows()
- End If
- Close #2
- Exit Sub
- AllError:
- ReportEvent(RE_ERROR, "GenerateInvoiceFiles:" + Err.Description)
- Quit
- End Sub
- Function RowsLeftToprint() As Boolean
- If( nRecIdx > 0 ) Then
- RowsLeftToprint = True
- Else
- RowsLeftToprint = False
- End If
- End Function
- Sub ResetRows()
- nRecIdx = 0
- Exit Sub
- AllError:
- ReportEvent(RE_ERROR, "ResetRows:" + Err.Description)
- Quit
- End Sub
- Sub SaveRow( rech As Receipt)
- On Error GoTo AllError
- aRech(nRecIdx) = rech
- nRecIdx = nRecIdx + 1
- If( nRecIdx >= MAX_RECEIPTS-1 ) Then
- ReportEvent( RE_ERROR, "The index of the receiptrow array must be extended. Alter the 'MAX_RECEIPTS' constant value in the script." )
- Quit
- End If
- Exit Sub
- AllError:
- ReportEvent(RE_ERROR, "SaveRow:" + Err.Description)
- Quit
- End Sub
- Sub PrintRows( )
- Dim aValues() As Variant
- Dim i As Integer
- Dim j As Integer
- Dim rech As Receipt
- Dim b13Hit As Boolean
- Dim b87Hit As Boolean
- Dim b_31_Hit As Boolean
- Dim b99Hit As Boolean
- Dim strCustNo As String
- Dim str13Amount As String
- Dim str87Amount As String
- Dim str31Amount As String
- Dim str01Amount As String
- Dim str06Amount As String
- Dim str02Amount As String
- Dim strDate As String
- Dim strStoreID As String
- Dim strReceiptID As String
- Dim strSubventionsKomm As String
- Dim nCounter As Integer
- Dim strArtikelnamn As String
- Dim strArtikelID As String
- Dim str01AmountNbr As String
- Dim str06AmountNbr As String
- Dim strVATPercent As String
- Dim vat As _VAT
- Dim strVATType As String
- Dim strForsaljPris As String
- Dim strFaktor As String
- Dim strRabatt As String
- Dim strFormanExmoms As String
- Dim strTransID As String
- Dim bHeadWritten As Boolean
- Dim nIdx As Integer
- Dim strAmount As String
- Dim strOrderID As String
- Dim strSubExMoms As String
- Dim strMomsSum As String
- Dim strCustomerContact As String
- Dim strCustomerRef As String
- Dim strCustomerIdentification As String
- On Error GoTo AllError
- ' check if list contains a transactiontype 13
- b13Hit = False
- b_31_Hit = False
- b99Hit = False
- b87Hit = False
- strCustNo = ""
- str13Amount = ""
- strDate = ""
- strStoreID = ""
- strReceiptID = ""
- str31Amount = ""
- str13Amount = ""
- str87Amount = ""
- strSubventionsKomm = ""
- strFormanExmoms = ""
- strTransID = ""
- ' FAKTURAFILEN: 13/87 är grunden sen så ska det alltid komma minst en 1/6 (en rad för varje, artikelid/itemnumber en ny rad),
- ' sen kan det komma 2:or som är rabatten och sen kommer det alltid en 31.
- ' Transt 1 = amount = Försäljningspris ink moms, räkna ut exmoms m.h.a. VATPercent
- ' Transt 2 = amount = Itemnumber = minusbelopp som talar om rabatten, använd VATPercent för att räkna ut exmoms.
- ' Detta ska multipliceras med en faktor, amount i transtyp 13 dividerat med amount i transtyp 31 den summan ska multipliceras mot artikeln.
- ' Endast en 13 och endast en 31 per storerunningnumber.
- '
- ' 13/87 alltid en
- ' 1/6:or kommer en eller flera artikelID
- ' 2 kan komma och den är rabatten.
- ' 1 31:a
- ' För varje kvitto som har transaktionstyp 13.
- ' En kvittorad för varje transaktionstyp 1. På denna rad räknas försäljningspris exkl moms/st ut genom att ta amount (från 1) minus momsbelopp
- ' (VATpercent finns på 1:an) multiplicerat med
- ' faktorn.
- ' Faktorn räknas ut genom att ta amount i transtyp 13 dividerat med amount i transtyp 31 (för samma storerunningnumber).
- ' Artikelnr för raden är ItemNumber i transtyp 1.
- ' Artikelnamn för raden är ReceiptRowText i transtyp 1.
- ' Antal för raden är AmountNumber i transtyp 1.
- ' Kundnr för raden är Customer/CustomerNumber som finns i transtyp 13.
- ' Momssatskod för raden sätts till 101, 102 etc utifrån VATPercent i transtyp 1.
- ' 87:orna (funkar på samma sätt som 13 typerna)
- ' Endast en 87 och endast en 31 per storerunningnumber.
- ' 6:or kommer en eller flera (samma som 1:orna för 13)
- ' 2 kan komma och den är rabatten.
- ' NYTT
- ' ====
- ' För transtyp 13, tag orderid i transtyp 1 sök efter samma orderid i transtyp 95 (alltid en 1:a som kan ha 0, 1 eller flera 95:or).
- ' För transtyp 87, tag orderid i transtyp 6 sök efter samma orderid i transtyp 96 (alltid en 6:a som kan ha 0, 1 eller flera 96:or)..
- ' Om man får träff, tag denna information från kvittoraderna:
- ' Itemnumber, AmountNumber, VATPercent och Amount.
- ' ' Transt 1->96 = amount = Försäljningspris ink moms, räkna ut exmoms m.h.a. VATPercent
- ' ' Transt 2->95 = amount = Itemnumber (recptpåse item 100000,100006,100012, 100025) = minusbelopp som talar om rabatten, använd VATPercent för att räkna ut exmoms.
- ' ' Detta ska multipliceras med en faktor, amount i transtyp 13 dividerat med amount i transtyp 31 den summan ska multipliceras mot artikeln.
- ' ' Endast en 13 och endast en 31 per storerunningnumber.
- ' -' Artikelnr är ItemNumber i transtyp 95 eller 96.
- ' -' Artikelnamn hämtas med Itemnumber från tabell.
- ' -' Antal för raden är AmountNumber i transtyp 95 eller 96.
- ' -' Kundnr för raden är Customer/CustomerNumber som finns i transtyp 13. (Ingen ändring)
- ' -' Momssatskod för raden sätts till 101, 102 etc utifrån VATPercent i transtyp 95 eller 96.
- ' get data from each transactiontype for subsequent processing
- ' -------------------------------------------------------------
- For i = 0 To nRecIdx-1
- rech = aRech(i)
- If( rech.transactionType = "13" ) Then
- strCustNo = rech.customerNo
- str13Amount = rech.amount
- strDate = Replace( rech.transactionDate, "-", "" )
- strStoreID = rech.storeId
- strReceiptID = rech.receiptId
- strTransID = rech.storeRunNumber
- strCustomerContact = rech.customerContact
- strCustomerRef = rech.customerRef
- strCustomerIdentification = rech.customerIdentification
- b13Hit = True
- End If
- If( rech.transactionType = "87" ) Then
- strCustNo = rech.customerNo
- str87Amount = rech.amount
- strDate = Replace( rech.transactionDate, "-", "" )
- strStoreID = rech.storeId
- strReceiptID = rech.receiptId
- strTransID = rech.storeRunNumber
- strCustomerContact = rech.customerContact
- strCustomerRef = rech.customerRef
- strCustomerIdentification = rech.customerIdentification
- b87Hit = True
- End If
- If( rech.transactionType = "31" ) Then
- str31Amount = rech.amount
- b_31_Hit = True
- End If
- If( rech.transactionType = "99" ) Then
- b99Hit = True
- End If
- Next i
- If( b99Hit And b13Hit ) Then
- ReportEvent(RE_ERROR, "A storerunningnumber/receipt contains rows with transactiontype 99 and 13. NOT VALID!" )
- rech = aRech(0)
- ReportReceipt( rech )
- Quit
- End If
- If( b99Hit And b87Hit ) Then
- ReportEvent(RE_ERROR, "A storerunningnumber/receipt contains rows with transactiontype 99 and 87. NOT VALID!" )
- rech = aRech(0)
- ReportReceipt( rech )
- Quit
- End If
- If( b13Hit And b87Hit ) Then
- ReportEvent(RE_ERROR, "A storerunningnumber/receipt contains rows with transactiontype 13 and 87. NOT VALID!" )
- rech = aRech(0)
- ReportReceipt( rech )
- Quit
- End If
- ' NOTE! THE IMPLEMENTATION FOR 13 and 87 are nearly exakt the same. It is splitted into two separate
- ' sections due to coming changes.
- ' only process storerunningnumber/receipts with transactintype 13 in it
- ' ---------------------------------------------------------------------
- If( b13Hit ) Then
- If( Not b_31_Hit ) Then
- rech = aRech(0)
- ReportEvent( RE_ERROR, "The storerunningnumber:" + rech.storeRunNumber + " does not contain a transactiontype 31 but it has a transactiontype 13" )
- ReportEvent( RE_WARNING, "Receipt error - must have 31 with a 13" )
- ReportReceipt( rech )
- Quit
- End If
- strFaktor = CStr(CDbl(CDbl(str13Amount) / CDbl(str31Amount)))
- nCounter = 0
- Print #2, "H;;2;" + strCustNo + ";;" + strDate + ";;" + strTransID + ";" + strReceiptID + ";;" ;
- Print #2, ";;1;;;;;;;;;" + strStoreID + ";;;;;;;;;;;;;;;" + strCustomerContact + ":" + strCustomerRef + ":" + strCustomerIdentification + ";;;"
- strArtikelnamn = ""
- strArtikelID = ""
- str01Amount = ""
- str02Amount = ""
- str01AmountNbr = ""
- strVATPercent = ""
- bInvoiceWritten = True
- For i = 0 To nRecIdx-1
- rech = aRech(i)
- ' if it is a transactiontype 2 the following transactiontype should be a 1
- ' and transtype 2 and 1 must be processed together
- ' Momskoder Visma: 101 = 25%, 102 = 12%, 103 = 6%, 104 = 0%
- ' P0 = 1
- ' P6 = 2
- ' P12 = 3
- ' P25 = 4
- ' transtyp 1 = en artikel eller en receptpåse (itemnumber: 100000, 100006, 100012, 100025).
- If( rech.transactionType = "1" ) Then
- strOrderID = rech.orderID
- ' Kolla om det är en receptpåde på rekvisition, då ska den inte skrivas ut igen.
- ' Alla 95:or skrivs ut en gång för en enda transtyp 1 (receptpåse på rekvisition).
- ' Endast receptpåsar har orderID.
- If( strOrderID <> "" ) Then
- If( AlreadyWritten( strOrderID ) ) Then
- GoTo NextRech13
- End If
- ' Ett kvitto kan innehålla flera receptpåsar, vanliga receptpåsar och på rekvisition (med 95:or).
- ' Då en receptpåse är på rekvisition kan det komma flera transtyp 1
- ' så därför ska 95:orna skrivas ut endast en gång och inte en gång per transtyp 1.
- ' Om det finns en eller flera 95:or för transtypen 1 så stoppas orderID:t för ytterlgare en utskrift.
- If( PrintRows95_96( "95", rech, nCounter, strStoreID, strTransID, strDate, strFaktor ) ) Then
- SetAlreadyWritten( strOrderID )
- GoTo NextRech13
- End If
- End If
- strArtikelnamn = rech.receiptRowText
- strArtikelID = rech.itemNumber
- str01Amount = rech.amount
- str01AmountNbr = rech.amountNumber
- strVATPercent = rech.VATPercent
- vat = GetIdxFromVAT(strVATPercent)
- strRabatt = ""
- strVATType = ""
- Select Case vat
- ' Visma Style
- Case P0
- strVATType = "104"
- Case P6
- strVATType = "103"
- Case P12
- strVATType = "102"
- Case P25
- strVATType = "101"
- End Select
- strForsaljPris = ExVATFromInkVAT("0.00", str01Amount, rech.VATPercent )
- strForsaljPris = CStr(Round(CDbl(CDbl(strForsaljPris) * CDbl(strFaktor)), 2))
- ' if not last row, check if next is a transtype 2
- strRabatt = "0.00"
- While( i < nRecIdx-1 )
- ' process transtype 1 in same loop
- i = i + 1
- rech = aRech(i)
- If( rech.transactionType = "2" ) Then
- str02Amount = rech.amount
- strRabatt = ExVATFromInkVAT(strRabatt, str02Amount, strVATPercent )
- strRabatt = CStr(Round(CDbl(CDbl(strRabatt) * CDbl(strFaktor)), 2))
- Else
- ' not a transtype 2, rewind
- i = i - 1
- rech = aRech(i)
- Exit While
- End If
- Wend
- If( strVATType = "" ) Then
- ReportEvent(RE_ERROR, "VATType is missing for this Receipt (Transtype=13,1,2,99)." )
- ReportReceipt( rech )
- Quit
- End If
- nCounter = nCounter + 1
- strRabatt = Replace( strRabatt, "-", "" ) ' always positive sign
- Print #2, "L;" + CStr(nCounter) + ";1;" + strArtikelnamn + ";1;" + FixDot(strForsaljPris) + ";;;;;;;;;;;;;;" + strStoreID + ";;;;;;;;" + str01AmountNbr + ";;;;" + strVATType + ";;" + Left(strDate, 6 ) ;
- Print #2, ";" + strTransID + ";;" + strArtikelID + ";" + rech.orderID + ";" + strDate + ";;;" + FixDot(strRabatt) + ";" + strArtikelID + ";;;"
- End If
- NextRech13:
- Next i
- End If
- ' -----------------
- ' only process storerunningnumber/receipts with transactintype 87 in it
- ' ---------------------------------------------------------------------
- If( b87Hit ) Then
- If( Not b_31_Hit ) Then
- rech = aRech(0)
- ReportEvent( RE_ERROR, "The storerunningnumber:" + rech.storeRunNumber + " does not contain a transactiontype 31 but it has a transactiontype 87" )
- ReportEvent( RE_WARNING, "Receipt error - must have 31 with a 87" )
- ReportReceipt( rech )
- Quit
- End If
- strFaktor = CStr(CDbl(CDbl(str87Amount) / CDbl(str31Amount)))
- nCounter = 0
- Print #2, "H;;2;" + strCustNo + ";;" + strDate + ";;" + strTransID + ";" + strReceiptID + ";;" ;
- Print #2, ";;1;;;;;;;;;" + strStoreID + ";;;;;;;;;;;;;;;" + strCustomerContact + ":" + strCustomerRef + ":" + strCustomerIdentification + ";;;"
- strArtikelnamn = ""
- strArtikelID = ""
- str06Amount = ""
- str02Amount = ""
- str06AmountNbr = ""
- strVATPercent = ""
- bInvoiceWritten = True
- For i = 0 To nRecIdx-1
- rech = aRech(i)
- ' if it is a transactiontype 2 the followinf transactiontype should be a 1
- ' and transtype 2 and 1 must be processed together
- ' Momskoder Visma: 101 = 25%, 102 = 12%, 103 = 6%, 104 = 0%
- ' P0 = 1
- ' P6 = 2
- ' P12 = 3
- ' P25 = 4
- ' transtyp 6 = en artikel eller en receptpåse (itemnumber: 100000, 100006, 100012, 100025).
- If( rech.transactionType = "6" ) Then
- strOrderID = rech.orderID
- ' Kolla om det är en kreditnota på rekvistition (återköp), då ska den inte skrivas ut igen.
- ' Alla 96:or skrivs ut en gång för en enda transtyp 6 (receptpåse på rekvisition).
- ' Endast receptpåsar har orderID.
- If( strOrderID <> "" ) Then
- If( AlreadyWritten( strOrderID ) ) Then
- GoTo NextRech87
- End If
- ' Ett kvitto kan innehålla flera receptpåsar, vanliga receptpåsar och på kreditnota (med 96:or).
- ' Då en receptpåse är på kredit kan det komma flera transtyp 6
- ' så därför ska 96:orna skrivas ut endast en gång och inte en gång per transtyp 6.
- ' Om det finns en eller flera 96:or för transtypen 6 så stoppas orderID:t för ytterlgare utskrift.
- If( PrintRows95_96( "96", rech, nCounter, strStoreID, strTransID, strDate, strFaktor ) ) Then
- SetAlreadyWritten( strOrderID )
- GoTo NextRech87
- End If
- ' ej en receptpåse på kreditnota, kör normala hanteringen härunder
- End If
- strArtikelnamn = rech.receiptRowText
- strArtikelID = rech.itemNumber
- str06Amount = rech.amount
- str06AmountNbr = rech.amountNumber
- strVATPercent = rech.VATPercent
- vat = GetIdxFromVAT(strVATPercent)
- strVATType = ""
- Select Case vat
- ' Visma Style
- Case P0
- strVATType = "104"
- Case P6
- strVATType = "103"
- Case P12
- strVATType = "102"
- Case P25
- strVATType = "101"
- End Select
- strForsaljPris = ExVATFromInkVAT("0.00", str06Amount, rech.VATPercent )
- strForsaljPris = CStr(Round(CDbl(CDbl(strForsaljPris) * CDbl(strFaktor)), 2))
- If( strVATType = "" ) Then
- ReportEvent(RE_ERROR, "VATType is missing for this Receipt (Transtype=87)." )
- ReportReceipt( rech )
- Quit
- End If
- nCounter = nCounter + 1
- Print #2, "L;" + CStr(nCounter) + ";1;" + strArtikelnamn + ";-1;" + FixDot(strForsaljPris) + ";;;;;;;;;;;;;;" + strStoreID + ";;;;;;;;" + str06AmountNbr + ";;;;" + strVATType + ";;" + Left(strDate, 6 ) ;
- Print #2, ";" + strTransID + ";;" + strArtikelID + ";" + rech.orderID + ";" + strDate + ";;;;" + strArtikelID + ";;;"
- End If
- NextRech87:
- Next i
- End If
- ' -----------------
- ' only process storerunningnumber/receipts with transactintype 99 in it
- ' ---------------------------------------------------------------------
- If( b99Hit ) Then
- bHeadWritten = False
- nCounter = 0
- For i = 0 To nRecIdx-1
- rech = aRech(i)
- strVATPercent = rech.VATPercent
- vat = GetIdxFromVAT(strVATPercent)
- strVATType = ""
- Select Case vat
- ' Visma Style
- Case P0
- strVATType = "104"
- Case P6
- strVATType = "103"
- Case P12
- strVATType = "102"
- Case P25
- strVATType = "101"
- End Select
- If( strVATType = "" ) Then
- ReportEvent(RE_ERROR, "VATType is missing for this Receipt (transtype=99)." )
- ReportReceipt( rech )
- Quit
- End If
- If( rech.transactionType = "99" ) Then
- bInvoiceWritten = True
- strSubventionsKomm = Replace( rech.SubventionsKomm, vbCrLf, ":" )
- strSubventionsKomm = Replace( strSubventionsKomm, vbCr, ":" )
- strSubventionsKomm = Replace( strSubventionsKomm, vbLf, ":" )
- strArtikelnamn = Trim(rech.ArtikelNamn)
- strDate = Replace( rech.transactionDate, "-", "" )
- If( strArtikelnamn = "" ) Then
- strArtikelnamn = "Artikelnamn saknas"
- End If
- Print #2, "H;;2;" + rech.customerNo + ";;" + strDate + ";;" + rech.TransID + ";" + rech.ReceptArendeID + ";" + rech.KundFodelseDatum + ";" ;
- Print #2, ";;1;;;;;;;;;" + rech.storeId + ";;;;;;;;;;;;;;;" + strSubventionsKomm + ";;;"
- If( InStr(rech.amount, "-" ) > 0 ) Then
- strAmount = "-1" ' använd för köp eller återköp
- rech.amountNumber = "-" + rech.amountNumber
- strMomsSum = Replace( rech.Momssumma, "-", "" )
- strSubExMoms = addIt(rech.amount,strMomsSum)
- Else
- strAmount = "1" ' använd för köp eller återköp
- strMomsSum = Replace( rech.Momssumma, "-", "" )
- strSubExMoms = subtractIt(rech.amount,strMomsSum)
- End If
- ' always a positive sign
- strSubExMoms = Replace(strSubExMoms, "-", "" )
- nCounter = 1
- Print #2, "L;" + CStr(nCounter) + ";1;" + strArtikelnamn + ";" + FixDot(strAmount) + ";" + FixDot(strSubExMoms) + ";;;;;;;;;;;;;;" + rech.storeId + ";;;;;;;" + rech.AupExmoms + ";" + rech.amountNumber + ";;;;" + strVATType + ";" + rech.FormanExmoms + ";" + Left(strDate, 6 ) ;
- Print #2, ";" + rech.TransID + ";" + rech.ArbetsplatsKod + ";" + rech.ArtikelID + ";;" + strDate + ";;;;" + rech.Varunummer + ";;;"
- End If
- Next i
- End If
- Exit Sub
- AllError:
- ReportEvent(RE_ERROR, "PrintRows:" + Err.Description)
- Quit
- End Sub
- Function GetArticleName( strItemNumber As String ) As String
- Dim strSQL As String
- On Error GoTo AllError
- ' Select Case stritemnumber
- ' Case "100000"
- ' 100000,100006,100012, 100025
- '
- ' End Select
- strSQL = "SELECT artikelBenamning FROM tblArticles WHERE XID='" + strItemNumber + "';"
- CloseRecordSet( oDBrsTmpII )
- oDBrsTmpII.open( strSQL )
- If( oDBrsTmpII.RecordCount = 1 ) Then
- GetArticleName = oDBrsTmpII.Fields("artikelBenamning")
- Else
- GetArticleName = "Artikelnamn saknas"
- End If
- Exit Function
- AllError:
- ReportEvent(RE_ERROR, "GetArticleName:" + Err.Description)
- Quit
- End Function
- Function PrintRows95_96( strTransType As String, rech As Receipt, ByRef nCounter As Integer, strStoreID As String, strTransID As String, strDate As String, strFaktor As String ) As Boolean
- Dim strSQL As String
- Dim strArtikelnamn As String
- Dim strArtikelID As String
- Dim strAmount As String
- Dim strAmountNbr As String
- Dim strVATPercent As String
- Dim vat As _VAT
- Dim strVATType As String
- Dim strForsaljPris As String
- Dim strSign As String
- Dim strRabattTtyp2 As String
- Dim strVATPercentTtyp2 As String
- On Error GoTo AllError
- strSQL = "SELECT Itemnumber, Amountnumber, VATPercent, Amount, StoreRunNumber, ReceiptRowRefNumber FROM tblreceiptrows_tmp WHERE transactiontype = '" + strTransType + "' AND OrderID='" + rech.orderID + "';"
- ' Alla transtyp 2 som har samma receiptrowrefnbr med samma storerunnumber
- CloseRecordSet( oDBrsTmp )
- oDBrsTmp.open( strSQL )
- If( oDBrsTmp.RecordCount > 0 ) Then
- While( Not oDBrsTmp.EOF )
- strArtikelnamn = GetArticleName( oDBrsTmp.Fields("Itemnumber" ) )
- strArtikelID = oDBrsTmp.Fields("Itemnumber")
- strAmount = oDBrsTmp.Fields("Amount")
- strAmountNbr = oDBrsTmp.Fields("Amountnumber")
- strVATPercent = oDBrsTmp.Fields("VATPercent")
- strVATType = ""
- strRabattTtyp2 = ""
- ' -------------------------------------------
- ' Hämta rabatt från transaktionstyp 2 för att kunna skriva ut
- strSQL = "SELECT Amount, VATPercent FROM tblreceiptrows_tmp WHERE TransactionType = '2' AND StoreRunNumber='" + oDBrsTmp.Fields("StoreRunNumber" ) + "' " + _
- "AND ReceiptRowRefNumber='" + oDBrsTmp.Fields("ReceiptRowRefNumber" ) + "';"
- CloseRecordSet( oDBrsTmpII )
- oDBrsTmpII.open( strSQL )
- If( oDBrsTmpII.RecordCount > 0 ) Then
- strRabattTtyp2 = oDBrsTmpII.Fields("Amount")
- strRabattTtyp2 = Replace( strRabattTtyp2, "-", "" )
- strVATPercentTtyp2 = oDBrsTmpII.Fields("VATPercent") ' ska vara samma som för 95
- strRabattTtyp2 = ExVATFromInkVAT("0.00", strRabattTtyp2, strVATPercentTtyp2 )
- strRabattTtyp2 = CStr(Round(CDbl(CDbl(strRabattTtyp2) * CDbl(strFaktor)), 2))
- strRabattTtyp2 = Replace(strRabattTtyp2, "-", "" )
- strRabattTtyp2 = FixDot(strRabattTtyp2,MAKEDOT)
- ' ReportEvent(RE_NORMAL, "strRabattTtyp2: " + strRabattTtyp2 )
- ' ReportEvent(RE_NORMAL, "VAT: " + strVATPercentTtyp2 )
- End If
- ' -------------------------------------------
- vat = GetIdxFromVAT(strVATPercent)
- Select Case vat
- ' Visma Style
- Case P0
- strVATType = "104"
- Case P6
- strVATType = "103"
- Case P12
- strVATType = "102"
- Case P25
- strVATType = "101"
- End Select
- If( strVATType = "" ) Then
- ReportEvent(RE_ERROR, "VATType is missing for this Receipt (Transtype=13,1,2,99)." )
- ReportReceipt( rech )
- Quit
- End If
- strForsaljPris = ExVATFromInkVAT("0.00", strAmount, strVATPercent )
- strForsaljPris = CStr(Round(CDbl(CDbl(strForsaljPris) * CDbl(strFaktor)), 2))
- If( strArtikelnamn = "" ) Then
- strArtikelnamn = "Artikelnamn saknas"
- End If
- nCounter = nCounter + 1
- If( strTransType = "95" ) Then
- strSign = "1"
- Else
- strSign = "-1"
- End If
- Print #2, "L;" + CStr(nCounter) + ";1;" + strArtikelnamn + ";" + strSign + ";" + FixDot(strForsaljPris) + ";;;;;;;;;;;;;;" + strStoreID + ";;;;;;;;" + strAmountNbr + ";;;;" + strVATType + ";;" + Left(strDate, 6 ) ;
- Print #2, ";" + strTransID + ";;" + strArtikelID + ";" + rech.orderID + ";" + strDate + ";;;" + FixDot(strRabattTtyp2) + ";" + strArtikelID + ";;;"
- oDBrsTmp.MoveNext
- Wend
- PrintRows95_96 = True
- Exit Function
- End If
- PrintRows95_96 = False
- Exit Function
- AllError:
- ReportEvent(RE_ERROR, "PrintRows95_96:" + Err.Description)
- ReportEvent(RE_WARNING, "Storerunnumber:" + rech.storeRunNumber)
- ReportEvent(RE_WARNING, "DatabaseID:" + rech.DBID )
- ReportEvent(RE_WARNING, "Transtype:" + strTransType )
- ReportEvent(RE_WARNING, "OrderID:" + rech.orderID )
- ReportEvent(RE_WARNING, "ArtikelID:" + strArtikelID )
- ReportEvent(RE_WARNING, "Amount:" + strAmount )
- ReportEvent(RE_WARNING, "Amountnbr:" + strAmountNbr )
- Quit
- End Function
- Sub ReportReceipt( rech As Receipt )
- ReportEvent( RE_WARNING, "DatabaseID:" + rech.DBID )
- ReportEvent( RE_WARNING, "StoreRunningnumber:" + rech.storeRunNumber )
- End Sub
- Function GetVGrupp( strCategory As String ) As String
- Dim sS As String
- Dim i As Integer
- GetVGrupp = ""
- i = InStr( strCategory, "_" )
- If( i > 0 ) Then
- sS = Left( strCategory, i-1 )
- If( sS = "600" ) Then
- GetVGrupp = Mid( strCategory, 5 )
- ElseIf( sS = "100" Or sS = "200" Or sS = "300" Or sS = "400" Or sS = "500" ) Then
- GetVGrupp = Left( strCategory, 3 )
- End If
- End If
- End Function
- Sub DumpSQL( sql As String )
- Dim strTempfile As String
- strTempfile = CreateTempFile( "txt" )
- Open strTempfile For Output As #22
- Print #22, sql
- Close #22
- ReportLog(RL_NORMAL, "||SQLDumped=" + strTempfile )
- End Sub
- Sub SetAlreadyWritten( strOrderID As String )
- dict.add( strOrderID, "" )
- End Sub
- Function AlreadyWritten( strOrderID As String ) As Boolean
- AlreadyWritten = dict.Exists( strOrderID )
- End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement