Subversion Repositories OpenARM Single-board Computer

Rev

Rev 326 | Rev 328 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 326 Rev 327
Line 1... Line 1...
1
#!/usr/bin/perl -w
1
#!/usr/bin/perl -w
2
use strict;
2
use strict;
3
# $Id: inventory.pl 326 2008-12-29 17:18:46Z agaran $
3
# $Id: inventory.pl 327 2008-12-29 17:53:35Z agaran $
4
# Thu, 13 Nov 2008 21:06:23 +0100
4
# Thu, 13 Nov 2008 21:06:23 +0100
5
# Maciej 'agaran' Pijanka <agaran@pld-linux.org>
5
# Maciej 'agaran' Pijanka <agaran@pld-linux.org>
6
# for OpenARM SBC Project
6
# for OpenARM SBC Project
7
# license: gpl v3
7
# license: gpl v3
8
8
Line 427... Line 427...
427
file_lookup($Config{docdir}, 0, qr/\/information.txt$/, \&parse_ifile);
427
file_lookup($Config{docdir}, 0, qr/\/information.txt$/, \&parse_ifile);
428
428
429
# process BOM files
429
# process BOM files
430
file_lookup($Config{bomdir}, 0, qr/\.bom$/, \&parse_bom);
430
file_lookup($Config{bomdir}, 0, qr/\.bom$/, \&parse_bom);
431
431
432
my $n = 0;
432
my $n = 1;
433
my $cost = 0.0;
433
my $cost = 0.0;
434
434
435
435
436
my $out = new IO::File $Config{outdir}.'/output.txt', 'w';
436
my $out = new IO::File $Config{outdir}.'/output.txt', 'w';
437
437
438
open (PARTMAP, '>output.map') || die 'cant open output.map: $!';
438
open (PARTMAP, '>output.map') || die 'cant open output.map: $!';
439
439
440
printf PARTMAP "%-35s| refdes\n\n", 'part';
440
printf PARTMAP "%-35s| refdes\n\n", 'part';
441
441
442
my $bomtable = Text::Table->new(
442
my $bomtable = Text::Table->new(
443
        { title => '|', is_sep => 1 },
443
        { title => '| ', is_sep => 1 },
444
        { title => 'item', align => 'right', align_title => 'center' },
444
        { title => 'id', align => 'right', align_title => 'center' },
445
        { title => '|', is_sep => 1 },
445
        { title => ' | ', is_sep => 1 },
446
        { title => 'description', align => 'left', align_title => 'center' },
446
        { title => 'description', align => 'left', align_title => 'center' },
447
        { title => '|', is_sep => 1 },
447
        { title => ' | ', is_sep => 1 },
448
        { title => 'manufacturer partno', align => 'left', align_title => 'center' },
448
        { title => 'manufacturer partno', align => 'left', align_title => 'center' },
449
        { title => '|', is_sep => 1 },
449
        { title => ' | ', is_sep => 1 },
450
        { title => 'manufacturer', align => 'left', align_title => 'center' },
450
        { title => 'manufacturer', align => 'left', align_title => 'center' },
451
        { title => '|', is_sep => 1 },
451
        { title => ' | ', is_sep => 1 },
452
        { title => 'order code', align => 'left', align_title => 'center' },
452
        { title => 'order code', align => 'left', align_title => 'center' },
453
        { title => '|', is_sep => 1 },
453
        { title => ' | ', is_sep => 1 },
454
        { title => 'quantity', align => 'right', align_title => 'center' },
454
        { title => 'quantity', align => 'right', align_title => 'center' },
455
        { title => '|', is_sep => 1 },
455
        { title => ' | ', is_sep => 1 },
456
        { title => 'unit price', align => 'auto', align_title => 'center' },
456
        { title => "price\nper pcs", align => 'right', align_title => 'center' },
457
        { title => '|', is_sep => 1 },
457
        { title => ' | ', is_sep => 1 },
458
        { title => 'total price', align => 'auto', align_title => 'center' },
458
        { title => "cost", align => 'right', align_title => 'center' },
459
        { title => '|', is_sep => 1 },
459
        { title => ' |', is_sep => 1 },
460
);
460
);
461
               
461
               
462
foreach my $id ( sort {my $p = $Inv[$a]{Manufacturer} cmp $Inv[$b]{Manufacturer}; if ($p == 0) {
462
foreach my $id ( sort {my $p = $Inv[$a]{Manufacturer} cmp $Inv[$b]{Manufacturer}; if ($p == 0) {
463
#               return $Inv[$a]{Manufacturer_Partno} cmp $Inv[$b]{Manufacturer_Partno}}; return $p; }  keys %BomData) {
463
#               return $Inv[$a]{Manufacturer_Partno} cmp $Inv[$b]{Manufacturer_Partno}}; return $p; }  keys %BomData) {
464
                return $Inv[$a]{Description} cmp $Inv[$b]{Description}}; return $p; }  keys %BomData) {
464
                return $Inv[$a]{Description} cmp $Inv[$b]{Description}}; return $p; }  keys %BomData) {
Line 473... Line 473...
473
        my $icost = $quant * $Inv[$id]{Price};
473
        my $icost = $quant * $Inv[$id]{Price};
474
               
474
               
475
        printf PARTMAP "%-35s|%s\n", shortstring($Inv[$id]{Description},35), join (', ', sort @{$BomData{$id}{RefDes}});
475
        printf PARTMAP "%-35s|%s\n", shortstring($Inv[$id]{Description},35), join (', ', sort @{$BomData{$id}{RefDes}});
476
        $cost += $icost;
476
        $cost += $icost;
477
#       %BomData{ById}{$id}{RefDes}
477
#       %BomData{ById}{$id}{RefDes}
-
 
478
#       $bomtable->add(' '.$n.' ', $Inv[$id]{Description}.' ', $Inv[$id]{Manufacturer_Partno}.' ', $Inv[$id]{Manufacturer}.' ',
-
 
479
#               $Inv[$id]{Ordercode}.' ', ' '.$quant.' ', sprintf("%.3f ",$Inv[$id]{Price}), sprintf("%.3f ",$icost));
478
        $bomtable->add($n, $Inv[$id]{Description}, $Inv[$id]{Manufacturer_Partno}, $Inv[$id]{Manufacturer},$Inv[$id]{Ordercode},
480
        $bomtable->add($n, $Inv[$id]{Description}, $Inv[$id]{Manufacturer_Partno}, $Inv[$id]{Manufacturer},
479
                $quant, $Inv[$id]{Price}, $icost);
481
                $Inv[$id]{Ordercode},$quant, sprintf("%.3f",$Inv[$id]{Price}), sprintf("%.3f",$icost));
480
        $n ++;
482
        $n ++;
481
}
483
}
482
484
483
printf $out "file generated at %s\n\n", scalar localtime(time());
485
printf $out "file generated at %s\n\n", scalar localtime(time());
484
486