Kjapp og trygg hosting for Wordpress

Bankavstemming E-conomic og DNB

drlinux

Konsulent i PHP og Linux
Er det noen som har fått dette til å fungere?

Så vidt jeg kan se så krever e-conomic at beløpet ligger i en kolonne, men DNB eksportert det som to kolonner ( beløp inn og ut). Jeg kan skrive en liten snutt i Perl til å fikse det, men hadde vært greit å gjøre dette "etter boken"
 

drlinux

Konsulent i PHP og Linux
Jeg endte opp med å lage et skript som legger DNB's kolonner for inn og ut i samme kolonne, samt slår i sammen beskrivelsestekstene. Det fikset saken for meg.

Her er det for de som kan få nytte av det. Det er laget i Perl, men bør være greit å oversette til PHP

Kode:
#!/usr/bin/perl
# Konverterer filer fra DNB.no/bedrift til noe e-conomic.no kan bruke i bankavstemming
# Filene er generert ved kontoutskrift - lagre til fil
use strict;
our $filnavn;
our $filUt;
our $linjeNr = 1;
our $linjeNrUt = 0;
our @felt;
our $linjeUt;

defined $ARGV[0] or die "Riktig bruk: $0 filnavn\n";
$filnavn = $ARGV[0];
$filUt = $filnavn;
$filUt =~ s/\.\w+$/\.csv/;

open(our $FH_INN, '<', $filnavn);
open(our $FH_UT, '>', $filUt);
while (my $linje = <$FH_INN>) {
    chomp $linje;
    
    # Hopp over de fem første linjene, som er DNB's header.
    # Deretter splitter i opp i individuelle felt, og tar ut det vi skal ha
    if ($linjeNr >= 5) {
        @felt = split /;/,$linje;
        if (@felt == 11) {
            
            $linjeUt = '"' . $felt[0] . '","' . $felt[1] . ' ' . $felt[2] . '"';
            
            # Legg til rett kolonne med beløp, for inn eller ut fra kontoen
            if ($felt[5]) {
                $linjeUt .= ',"' . $felt[5] . '"';
            }
            else {
                $linjeUt .= ',"' . $felt[6] . '"';
            }
            print $FH_UT $linjeUt . "\n";
            $linjeNrUt++;
        }
    }
    $linjeNr++;
}
close($FH_INN);
close($FH_UT);
print "$linjeNr er lest ut til $linjeNrUt linjer i $filUt\n"

Lagre skriptet og kjør det med navnet til kontoutskriftsfilen som parameter. Den lager så en ny fil med .csv som endelse.

Det er lite feilsjekking her, så kjør på eget ansvar ;)
 
Topp