Add import scripts brmbar1 -> brmbar3

This commit is contained in:
Petr Baudis 2012-10-17 21:12:43 +02:00
parent 8a8d53f8e6
commit 8ae6dfb604
2 changed files with 31 additions and 0 deletions

View file

@ -0,0 +1,15 @@
# stdin in format: 8594002931643;Brmburky - hov.na cibul;-15
use v5.12;
while (<>) {
chomp;
say STDERR "--- $_";
my ($barcode, $name, $price) = split(/;/);
$price = -$price;
print <<EOT
INSERT INTO currencies (name) VALUES ('$name');
INSERT INTO accounts (name, currency, acctype) VALUES ('$name', (SELECT id FROM currencies WHERE name = '$name'), 'inventory');
INSERT INTO exchange_rates (target, source, rate, rate_dir) VALUES ((SELECT id FROM currencies WHERE name = '$name'), (SELECT id FROM currencies WHERE name = 'Kč'), $price, 'target_to_source');
INSERT INTO exchange_rates (target, source, rate, rate_dir) VALUES ((SELECT id FROM currencies WHERE name = 'Kč'), (SELECT id FROM currencies WHERE name = '$name'), $price, 'source_to_target');
INSERT INTO barcodes (barcode, account) VALUES ('$barcode', (SELECT id FROM accounts WHERE name = '$name'));
EOT
}

View file

@ -0,0 +1,16 @@
# text files containing credit amount
my @users = qw(abyssal alexka axtheb aym b00lean biiter chido czestmyr da3m0n22 denisakera jam jenda jerry joe johny kappi kiki kxt lenka lui lukash nephirus niekt0 pasky pborky prusajr rainbof ramus ruza sachy sargon shady specz stevko stick sysop timthelion tlapka tma tomsuch trip tutchek uiop urcher vtec wenza zombie zufik zviratko);
print "INSERT INTO transactions (description) VALUES ('Initial balance import');\n"; # assumed to be id 1
for my $name (@users) {
my $balance = `cat BRMBAR/DATA/$name.txt 2>/dev/null || echo -n 0`;
my $side = 'credit';
if ($balance < 0) {
$balance = -$balance;
$side = 'debit';
}
print <<EOT
INSERT INTO accounts (name, currency, acctype) VALUES ('$name', 1, 'debt');
INSERT INTO barcodes (barcode, account) VALUES ('$name', (SELECT id FROM accounts WHERE name = '$name'));
INSERT INTO transaction_splits (transaction, side, account, amount, memo) VALUES (1, '$side', (SELECT id FROM accounts WHERE name = '$name'), $balance, 'brmbar v1 balance');
EOT
}