Litt om NUUGs rutiner for fakturering av kontingent etc

NUUG bruker [http://www.sendregning.no sendregning.no] til å sende ut fakturaer. De har et webgrensesnitt og et grensesnitt basert på web services der XML brukes som utvekslingsformat.

Formatet er dokumentert [http://www.nuug.no/styre/sendregning-implementasjonsguide.html her].

For å snakke med web services-grensesnittet til sendregning.no er [http://www.nuug.no/tools/sws-test sws-test] utviklet. Det er et script som tar seg av innlogging og kommunikasjon, og tar parameter for hva som skal gjøres.

Utsending av fakturaer

Utsending av faktura via sendregning.no kan gjøres automatisk basert på innholdet i medlemsregisteret. Tilgangsparameter (brukernavn og passord) må legges i ~/.swsconfig, og fås oppgitt fra kassereren Jon Petter Bjerke.

Prosedyren for å sende ut faktura er dermed nå følgende to steg (obs, bør testes godt første gang den brukes):

Oppdatere medlemsregisteret

Først redigeres infomrasjonen i medlemsregisteret, og ZUsrFakturertPeriode forblir blankt eller oppdateres ikke:

  cd nuug/styre/
  cvs up medlemsliste.csv
  vi medlemsliste.csv # Legg inn medlemsoppføringen
  ../tools/medlemsliste-check -w # Sjekk konsistensen i fila
  cvs commit -m "CVS_SILENT Meldt inn ny medlem (RT #123)." medlemsliste.csv

Deretter sendes fakturainformasjon til sendregning.no via webservices-grensesnittet, og ZUsrFakturertPeriode oppdateres:

  cd nuug/styre/
  cvs up medlemsliste.csv
  ../tools/medlemsliste-check -w # Sjekk konsistensen i fila
  ../tools/medlemsliste-makeinvoices -i > innmelding.xml
  # Test on sendregning.no aksepterer XML-filen
  ../tools/sws-test -n -d -a send -t invoice -X innmelding.xml
  ../tools/sws-test -d -a send -t invoice -X innmelding.xml # Send fakturaene
  # Oppdater ZUsrFakturertPeriode
  ../tools/medlemsliste-makeinvoices -u innmelding.xml > foo && mv foo medlemsliste.csv
  ../tools/medlemsliste-check -w # Sjekk konsistensen i fila
  cvs commit -m "CVS_SILENT Fakturert nye medlemer medlem." medlemsliste.csv

Det er viktig å sjekke at XML-filen ser bra ut. Det må gjøres manuelt ved å sammenligne med spesifikasjonen. Det er sjekket for alle medlemstyper, og fungerer ganske bra.

Folk i utlandet fungerer ikke. Peter aner ikke hvorfor. Firma med mer enn ca. 15 medlemmer fungerer heller ikke. Årsaken er at det blir for mange linjer på fakturaen. Disse utfordringene bør vi finne en løsning på før faktureringen automatisere ennå mer, og f.eks. å opprette en cronjobb som sender ut fakturaer.

Alternativ faktureringsrutine:

cd nuug/styre/
../tools/medlemsliste-sendinvoices

Hente ut PDF-utgaver av fakturaen til arkivet

for n in 1001 1002 ;
do
  ~/src/nuugcvs/nuug/tools/sws-test -d -x \
    "<select><invoiceNumbers><invoiceNumber>$n</invoiceNumber></invoiceNumbers><format>PDF</format></select>"
  mv output.pdf 2007-ut-faktura$n.pdf
done

Hente informasjon om betalte fakturaer

~/src/nuugcvs/nuug/tools/sws-test -d -x \
    "<select>ALL<where><states><state>paid</state></states></where></select>"