Dat is interessant om te weten, hopelijk is het bij alle feestdagen zo.
Voor de mensen die weten wat autohotkey is (
http://www.autohotkey.com/) hieronder de geschreven code.
Misschien heeft er 1 persoon nut aan
.
Het scriptje maakt een txt bestandje aan met de lay-out van een primitieve factuur.
Eisen:
-De code hieronder (in de code tag) moet je opslaan in een txt bestandje en dan de extensie veranderen naar ".ahk" bv: "sipfactuurprog.txt ==> sipfactuurprog.ahk", en
autohotkey geïnstalleerd zijn!
-Txt bestand "D:\Sip call history.txt" moet bestaan met daarin de "sip call history" uit de sagem. (Advanced Settings ==> Telephone ==> Sip Call History)
-".ahk" uitvoeren: Er word een txt bestand "D:\Sip call factuur.txt" aangemaakt (zie vb hieronder)
-Ik weet natuurlijk niet dat die 100% correct werkt (geen rekening gehouden met feestdagen), maar het ziet er goed uit voor de tijd die ik erin gestoken hebt, tijd met plezier ingestoken. (Alles kan natuurlijk nog beter en efficiënter, maar het werkt!)
Een voorbeeld van de uitvoer:
Code: Selecteer alles
Nummer Dag Tijdstip Gespreksduur Gesprekskost
Vast: 012345678 Mon 14 Feb 09:27:02 0:00:27 € 0.036830
==> elk betalend gesprek wordt in dit lijstje gezet chronologisch
GSM: 0471234567 Tue 15 Feb 15:33:25 0:01:48 € 0.378000
Afrekening:
-----------
Gratis vaste lijn oproepen: 4:58:7 (#13) € 0.000000
Betaalde vaste lijn oproepen: 0:0:27 (#1) € 0.036830
Betaalde GSM oproepen: 0:1:48 (#1) € 0.378000
Totaal: 5:0:22 (#15) € 0.414830
De effectieve autohotkey code:
Code: Selecteer alles
;
; AutoHotkey Version: 1.x
; Language: English
; Platform: Win9x/NT
; Author: ReLoad <ReLoad>
;
; Script Function: alle betaalde gesprekken samentellen (met uitzondering speciale nummers => kan fouten opleveren)
;
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
;!!! Enkel hieronder de 2 dir's wijzigen!!
;!!! in "dirfactuur" wordt de 'factuur' opgeslagen
;!!! in "dirsipcallhistory" moet je vooraf de 'Sip call history" kopiëren vanuit de Sagem in een txt(Advanced Settings ==> Telephone ==> Sip Call History)
;!!! er word maar onderscheid gemaakt tussen 3 telefoon nummers: 1991 voicemail, vastelijn nummer en gsm nummer
dirfactuur = D:\Sip call factuur.txt
dirsipcallhistory = D:\Sip call history.txt
prijsvastmin:=2.54
prijsmobielmin:=16
prijsmobielcon:=9
vastuur=0
vastmin=0
vastsec=0
vastcon=0
gratisvastuur=0
gratisvastmin=0
gratisvastsec=0
gratisvastcon=0
mobieluur=0
mobielmin=0
mobielsec=0
mobielcon=0
message:=" Nummer Dag Tijdstip Gespreksduur Gesprekskost"
FileAppend, Detail:`n-------`n`n%message%`n, %dirfactuur%
Loop, read, %dirsipcallhistory%
{
Loop, parse, A_LoopReadLine, %A_Tab%
{
StringSplit, word_array, A_LoopField, %A_Space%, `, ; Omits commas ;MsgBox, Field number %A_Index% is %A_LoopField%.
IfInString, A_LoopField, (dial
{
if A_LoopField not contains cancelled,rejected ;gesprekken zonder opname worden niet meegeteld, bezettoon,fout nummer,..
{
{
StringTrimLeft, gespreksduur, word_array14, 9
StringTrimRight, sipoproepnummer, word_array9, 17
StringTrimLeft, oproepnummer, sipoproepnummer, 5
if oproepnummer != 1991
{
{ ;gespreksduur bepalen
StringTrimRight, uurmingespreksduur, gespreksduur, 3
StringTrimRight, uurgespreksduur, uurmingespreksduur, 3
StringTrimLeft, mingespreksduur, uurmingespreksduur, 2
StringTrimLeft, secgespreksduur, gespreksduur, 5
StringTrimRight, vraagisheteengsmnummer, oproepnummer, 9
}
gsm:="0"
if vraagisheteengsmnummer = %gsm%
{
{ ;gespreksduuropslaan
mobieluur += %uurgespreksduur%
mobielmin += %mingespreksduur%
mobielsec += %secgespreksduur%
mobielcon++
}
kost:=(prijsmobielcon+mobieluur*60*prijsmobielmin+mobielmin*prijsmobielmin+mobielsec*prijsmobielmin/60)/100
message=GSM: %oproepnummer% %word_array1% %word_array3% %word_array2% %word_array4% %gespreksduur% € %kost%
FileAppend, `n%message%`n, %dirfactuur%
}
else
{
StringTrimRight, uurvanhetgesprek, word_array4, 6 ;zorg er voor dat het uur:min:sec enkel nog uur over houd
if uurvanhetgesprek contains 09,10,11,12,13,14,15 ;enkel gesprekken in de piekuren betalen
{
if A_LoopField not contains sun,sat
{
{ ;gespreksduuroplslaan
vastuur += %uurgespreksduur%
vastmin += %mingespreksduur%
vastsec += %secgespreksduur%
vastcon++
}
kost:=(prijsvastmin+vastuur*60*prijsvastmin+vastmin*prijsvastmin+vastsec*prijsvastmin/60)/100
message=Vast: %oproepnummer% %word_array1% %word_array3% %word_array2% %word_array4% %gespreksduur% € %kost%
FileAppend, `n%message%`n, %dirfactuur%
}else
{
gratisvastuur += %uurgespreksduur%
gratisvastmin += %mingespreksduur%
gratisvastsec += %secgespreksduur%
gratisvastcon++
}
}else
{
gratisvastuur += %uurgespreksduur%
gratisvastmin += %mingespreksduur%
gratisvastsec += %secgespreksduur%
gratisvastcon++
}
}
}
}
}
}
}
}
While (gratisvastsec>59)
{
gratisvastmin++
gratisvastsec-=60
}
While (gratisvastmin>59)
{
gratisvastuur++
gratisvastmin-=60
}
message=Gratis vaste lijn oproepen: %gratisvastuur%:%gratisvastmin%:%gratisvastsec% (#%gratisvastcon%) € 0.000000
FileAppend, `n`n`nAfrekening:`n-----------`n`n%message%`n, %dirfactuur%
vastelijn:=(prijsvastmin*vastcon+vastuur*60*prijsvastmin+vastmin*prijsvastmin+vastsec*prijsvastmin/60)/100
While (vastsec>59)
{
vastmin++
vastsec-=60
}
While (vastmin>59)
{
vastuur++
vastmin-=60
}
message=Betaalde vaste lijn oproepen: %vastuur%:%vastmin%:%vastsec% (#%vastcon%) € %vastelijn%
FileAppend, `n%message%`n, %dirfactuur%
mobiellijn:=(prijsmobielcon*mobielcon+mobieluur*60*prijsmobielmin+mobielmin*prijsmobielmin+mobielsec*prijsmobielmin/60)/100
While (mobielsec>59)
{
mobielmin++
mobielsec-=60
}
While (mobielmin>59)
{
mobieluur++
mobielmin-=60
}
message=Betaalde GSM oproepen: %mobieluur%:%mobielmin%:%mobielsec% (#%vastcon%) € %mobiellijn%
FileAppend, `n%message%, %dirfactuur%
totaaluur:=gratisvastuur+vastuur+mobieluur
totaalmin:=gratisvastmin+vastmin+mobielmin
totaalsec:=gratisvastsec+vastsec+mobielsec
While (totaalsec>59)
{
totaalmin++
totaalsec-=60
}
While (totaalmin>59)
{
totaaluur++
totaalmin-=60
}
totaalcon:=vastcon+mobielcon+gratisvastcon
totaal:=mobiellijn+vastelijn
message=`n Totaal: %totaaluur%:%totaalmin%:%totaalsec% (#%totaalcon%) € %totaal%
FileAppend, `n%message%`n, %dirfactuur%
Update:
Ze bevestigen op hun FB pagina dat feestdagen ook gratis zijn
, en zullen het waarschijnlijk binnenkort op hun website zetten.