Merge branch 'master' of github.com:kivitendo/kivitendo-erp
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Tue, 7 Jan 2014 15:11:53 +0000 (16:11 +0100)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Tue, 7 Jan 2014 15:11:53 +0000 (16:11 +0100)
17 files changed:
SL/DB/CustomVariable.pm
SL/DB/Helper/TransNumberGenerator.pm
SL/DB/Project.pm
SL/DO.pm
SL/IS.pm
SL/Layout/MenuLeft.pm
SL/OE.pm
bin/mozilla/rp.pl
css/icons16.css
css/icons24.css
css/icons32.css
image/icons/16x16/AR--Reports--Invoices, Credit Notes & AR Transactions.png [new file with mode: 0644]
image/icons/16x16/AR--Reports--Invoices.png [deleted file]
image/maps/icons16.png
image/maps/icons24.png
image/maps/icons32.png
scripts/image_maps.pl

index 144acef..6073925 100644 (file)
@@ -43,6 +43,40 @@ sub value {
   goto &text_value; # text, textfield, date and select
 }
 
+sub value_as_text {
+  my $self = $_[0];
+  my $type = $self->config->type;
+
+  die 'not an accessor' if @_ > 1;
+
+  if ($type eq 'boolean') {
+    return $self->bool_value ? $::locale->text('Yes') : $::locale->text('No');
+  } elsif ($type eq 'timestamp') {
+    return $::locale->reformat_date( { dateformat => 'yy-mm-dd' }, $self->timestamp_value->ymd, $::myconfig{dateformat});
+  } elsif ($type eq 'number') {
+    return $::form->format_amount(\%::myconfig, $self->number_value, $self->config->processed_options->{PRECISION});
+  } elsif ( $type eq 'customer' ) {
+    require SL::DB::Customer;
+
+    my $id = int($self->number_value);
+    my $customer =  $id ? SL::DB::Customer->new(id => $id)->load() : 0;
+    return $customer ? $customer->name : '';
+  } elsif ( $type eq 'vendor' ) {
+    require SL::DB::Vendor;
+
+    my $id = int($self->number_value);
+    return $id ? SL::DB::Vendor->new(id => $id)->load() : 0;
+  } elsif ( $type eq 'part' ) {
+    require SL::DB::Part;
+
+    my $id = int($self->number_value);
+    my $vendor = $id ? SL::DB::Part->new(id => $id)->load() : 0;
+    return $vendor ? $vendor->name : '';
+  }
+
+  goto &text_value; # text, textfield, date and select
+}
+
 sub is_valid {
   my ($self) = @_;
 
index 6cdc281..cc5fc32 100644 (file)
@@ -53,7 +53,8 @@ sub get_next_trans_number {
   require SL::DB::Default;
   require SL::DB::Business;
 
-  my %conditions = ( query => [ $scoping_conditions ? $scoping_conditions->($spec_type) : () ] );
+  my %conditions            = ( query => [ $scoping_conditions ? $scoping_conditions->($spec_type) : () ] );
+  my %conditions_for_in_use = ( query => [ $scoping_conditions ? $scoping_conditions->($spec_type) : () ] );
 
   my $business;
   if ($spec_type =~ m{^(?:customer|vendor)$}) {
@@ -69,15 +70,17 @@ sub get_next_trans_number {
     }
   }
 
-  my @numbers        = map { $_->$number_column } @{ $self->_get_manager_class->get_all(%conditions) };
-  my %numbers_in_use = map { ( $_ => 1 )        } @numbers;
+  my %numbers_in_use = map { ( $_->$number_column => 1 ) } @{ $self->_get_manager_class->get_all(%conditions_for_in_use) };
 
   my $range_table    = $business ? $business : SL::DB::Default->get;
   my $start_number   = $range_table->$number_range_column;
   $start_number      = $range_table->articlenumber if ($number_range_column eq 'assemblynumber') && (length($start_number) < 1);
   my $sequence       = SL::PrefixedNumber->new(number => $start_number);
 
-  $sequence->set_to_max(@numbers) if !$fill_holes_in_range;
+  if (!$fill_holes_in_range) {
+    my @numbers = map { $_->$number_column } @{ $self->_get_manager_class->get_all(%conditions) };
+    $sequence->set_to_max(@numbers) ;
+  }
 
   my $new_number = $sequence->get_next;
   $new_number    = $sequence->get_next while $numbers_in_use{$new_number};
index ba6f12f..73390d8 100644 (file)
@@ -8,7 +8,7 @@ use SL::DB::MetaSetup::Project;
 use SL::DB::Manager::Project;
 
 use SL::DB::Helper::CustomVariables(
-  module      => 'Project',
+  module      => 'Projects',
   cvars_alias => 1,
 );
 
index bc651c8..d0086fc 100644 (file)
--- a/SL/DO.pm
+++ b/SL/DO.pm
@@ -728,7 +728,7 @@ sub order_details {
   my $subtotal_header = 0;
   my $subposition = 0;
 
-  my (@project_ids, %projectnumbers, %projectdescriptions);
+  my (@project_ids);
 
   push(@project_ids, $form->{"globalproject_id"}) if ($form->{"globalproject_id"});
 
@@ -742,21 +742,21 @@ sub order_details {
     push(@project_ids, $form->{"project_id_$i"}) if ($form->{"project_id_$i"});
   }
 
+  my $projects = [];
+  my %projects_by_id;
   if (@project_ids) {
-    $query = "SELECT id, projectnumber, description FROM project WHERE id IN (" .
-      join(", ", map("?", @project_ids)) . ")";
-    $sth = prepare_execute_query($form, $dbh, $query, @project_ids);
-    while (my $ref = $sth->fetchrow_hashref()) {
-      $projectnumbers{$ref->{id}} = $ref->{projectnumber};
-      $projectdescriptions{$ref->{id}} = $ref->{description};
-    }
-    $sth->finish();
+    $projects = SL::DB::Manager::Project->get_all(query => [ id => \@project_ids ]);
+    %projects_by_id = map { $_->id => $_ } @$projects;
   }
 
-  $form->{"globalprojectnumber"} =
-    $projectnumbers{$form->{"globalproject_id"}};
-  $form->{"globalprojectdescription"} =
-      $projectdescriptions{$form->{"globalproject_id"}};
+  $form->{globalprojectnumber} = $projects_by_id{$form->{"globalproject_id"}}->projectnumber;
+  $form->{globalprojectdescription} = $projects_by_id{$form->{"globalproject_id"}}->description;
+
+  if ($projects_by_id{$form->{"globalproject_id"}}) {
+    for (@{ $projects_by_id{$form->{"globalproject_id"}}->cvars_by_config }) {
+      $form->{"project_cvar_" . $_->config->name} = $_->value_as_text;
+    }
+  }
 
   my $q_pg     = qq|SELECT p.partnumber, p.description, p.unit, a.qty, pg.partsgroup
                     FROM assembly a
@@ -775,6 +775,7 @@ sub order_details {
   my $num_si   = 0;
 
   my $ic_cvar_configs = CVar->get_configs(module => 'IC');
+  my $project_cvar_configs = CVar->get_configs(module => 'Projects');
 
   $form->{TEMPLATE_ARRAYS} = { };
   IC->prepare_parts_for_printing(myconfig => $myconfig, form => $form);
@@ -788,6 +789,7 @@ sub order_details {
   map { $form->{TEMPLATE_ARRAYS}->{$_} = [] } (@arrays);
 
   push @arrays, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs };
+  push @arrays, map { "project_cvar_$_->{name}" } @{ $project_cvar_configs };
 
   $form->get_lists('price_factors' => 'ALL_PRICE_FACTORS');
   my %price_factors = map { $_->{id} => $_->{factor} } @{ $form->{ALL_PRICE_FACTORS} };
@@ -824,6 +826,7 @@ sub order_details {
     }
 
     my $price_factor = $price_factors{$form->{"price_factor_id_$i"}} || { 'factor' => 1 };
+    my $project = $projects_by_id{$form->{"project_id_$i"}} || SL::DB::Project->new;
 
     push @{ $form->{TEMPLATE_ARRAYS}{runningnumber} },   $position;
     push @{ $form->{TEMPLATE_ARRAYS}{number} },          $form->{"partnumber_$i"};
@@ -835,9 +838,8 @@ sub order_details {
     push @{ $form->{TEMPLATE_ARRAYS}{partnotes} },       $form->{"partnotes_$i"};
     push @{ $form->{TEMPLATE_ARRAYS}{serialnumber} },    $form->{"serialnumber_$i"};
     push @{ $form->{TEMPLATE_ARRAYS}{reqdate} },         $form->{"reqdate_$i"};
-    push @{ $form->{TEMPLATE_ARRAYS}{projectnumber} },   $projectnumbers{$form->{"project_id_$i"}};
-    push @{ $form->{TEMPLATE_ARRAYS}{projectdescription} },
-      $projectdescriptions{$form->{"project_id_$i"}};
+    push @{ $form->{TEMPLATE_ARRAYS}{projectnumber} },   $project->projectnumber;
+    push @{ $form->{TEMPLATE_ARRAYS}{projectdescription} }, $project->description;
 
     if ($form->{"subtotal_$i"} && $subtotal_header && ($subtotal_header != $i)) {
       $subtotal_header     = 0;
@@ -901,6 +903,8 @@ sub order_details {
     push @{ $form->{TEMPLATE_ARRAYS}->{"ic_cvar_$_->{name}"} },
       CVar->format_to_template(CVar->parse($form->{"ic_cvar_$_->{name}_$i"}, $_), $_)
         for @{ $ic_cvar_configs };
+
+    push @{ $form->{TEMPLATE_ARRAYS}->{"project_cvar_" . $_->config->name} }, $_->value_as_text for @{ $project->cvars_by_config };
   }
 
   $form->{totalweight}       = $form->format_amount($myconfig, $totalweight, 3);
index 23b6f80..cd15325 100644 (file)
--- a/SL/IS.pm
+++ b/SL/IS.pm
@@ -68,7 +68,7 @@ sub invoice_details {
   my $query = qq|SELECT date | . conv_dateq($form->{duedate}) . qq| - date | . conv_dateq($form->{invdate}) . qq| AS terms|;
   ($form->{terms}) = selectrow_query($form, $dbh, $query);
 
-  my (@project_ids, %projectnumbers, %projectdescriptions);
+  my (@project_ids);
   $form->{TEMPLATE_ARRAYS} = {};
 
   push(@project_ids, $form->{"globalproject_id"}) if ($form->{"globalproject_id"});
@@ -92,23 +92,21 @@ sub invoice_details {
     push(@project_ids, $form->{"project_id_$i"}) if ($form->{"project_id_$i"});
   }
 
+  my $projects = [];
+  my %projects_by_id;
   if (@project_ids) {
-    $query = "SELECT id, projectnumber, description FROM project WHERE id IN (" .
-      join(", ", map({ "?" } @project_ids)) . ")";
-    $sth = $dbh->prepare($query);
-    $sth->execute(@project_ids) ||
-      $form->dberror($query . " (" . join(", ", @project_ids) . ")");
-    while (my $ref = $sth->fetchrow_hashref()) {
-      $projectnumbers{$ref->{id}} = $ref->{projectnumber};
-      $projectdescriptions{$ref->{id}} = $ref->{description};
-    }
-    $sth->finish();
+    $projects = SL::DB::Manager::Project->get_all(query => [ id => \@project_ids ]);
+    %projects_by_id = map { $_->id => $_ } @$projects;
   }
 
-  $form->{"globalprojectnumber"} =
-    $projectnumbers{$form->{"globalproject_id"}};
-  $form->{"globalprojectdescription"} =
-    $projectdescriptions{$form->{"globalproject_id"}};
+  $form->{globalprojectnumber} = $projects_by_id{$form->{"globalproject_id"}}->projectnumber;
+  $form->{globalprojectdescription} = $projects_by_id{$form->{"globalproject_id"}}->description;
+
+  if ($projects_by_id{$form->{"globalproject_id"}}) {
+    for (@{ $projects_by_id{$form->{"globalproject_id"}}->cvars_by_config }) {
+      $form->{"project_cvar_" . $_->config->name} = $_->value_as_text;
+    }
+  }
 
   my $tax = 0;
   my $item;
@@ -146,6 +144,7 @@ sub invoice_details {
   IC->prepare_parts_for_printing(myconfig => $myconfig, form => $form);
 
   my $ic_cvar_configs = CVar->get_configs(module => 'IC');
+  my $project_cvar_configs = CVar->get_configs(module => 'Projects');
 
   my @arrays =
     qw(runningnumber number description longdescription qty ship unit bin
@@ -156,6 +155,7 @@ sub invoice_details {
        price_factor price_factor_name partsgroup weight lineweight);
 
   push @arrays, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs };
+  push @arrays, map { "project_cvar_$_->{name}" } @{ $project_cvar_configs };
 
   my @tax_arrays = qw(taxbase tax taxdescription taxrate taxnumber);
 
@@ -277,8 +277,10 @@ sub invoice_details {
       push @{ $form->{TEMPLATE_ARRAYS}->{nodiscount_linetotal} },       $form->format_amount($myconfig, $nodiscount_linetotal, 2);
       push @{ $form->{TEMPLATE_ARRAYS}->{nodiscount_linetotal_nofmt} }, $nodiscount_linetotal;
 
-      push(@{ $form->{TEMPLATE_ARRAYS}->{projectnumber} },              $projectnumbers{$form->{"project_id_$i"}});
-      push(@{ $form->{TEMPLATE_ARRAYS}->{projectdescription} },         $projectdescriptions{$form->{"project_id_$i"}});
+      my $project = $projects_by_id{$form->{"project_id_$i"}} || SL::DB::Project->new;
+
+      push @{ $form->{TEMPLATE_ARRAYS}->{projectnumber} },              $project->projectnumber;
+      push @{ $form->{TEMPLATE_ARRAYS}->{projectdescription} },         $project->description;
 
       my $lineweight = $form->{"qty_$i"} * $form->{"weight_$i"};
       $totalweight += $lineweight;
@@ -370,6 +372,8 @@ sub invoice_details {
       push @{ $form->{TEMPLATE_ARRAYS}->{"ic_cvar_$_->{name}"} },
         CVar->format_to_template(CVar->parse($form->{"ic_cvar_$_->{name}_$i"}, $_), $_)
           for @{ $ic_cvar_configs };
+
+      push @{ $form->{TEMPLATE_ARRAYS}->{"project_cvar_" . $_->config->name} }, $_->value_as_text for @{ $project->cvars_by_config };
     }
   }
 
index 9a47d29..f2e8a05 100644 (file)
@@ -51,7 +51,7 @@ sub section_menu {
     my $menuitem   = $menu->{$item};
     my $olabel     = apply { s/.*--// } $item;
     my $ml         = apply { s/--.*// } $item;
-    my $icon_class = apply { y/ /-/   } $item;
+    my $icon_class = apply { $_ =lc $_; s/[^a-z0-9_-]/-/g } $item;
     my $spacer     = "s" . (0 + $item =~ s/--/--/g);
 
     next if $level && $item ne "$level--$olabel";
index 0e5c05b..ae3ff08 100644 (file)
--- a/SL/OE.pm
+++ b/SL/OE.pm
@@ -1032,7 +1032,7 @@ sub order_details {
   my $tax_rate;
   my $taxamount;
 
-  my (@project_ids, %projectnumbers, %projectdescriptions);
+  my (@project_ids);
 
   push(@project_ids, $form->{"globalproject_id"}) if ($form->{"globalproject_id"});
 
@@ -1063,19 +1063,21 @@ sub order_details {
     push(@project_ids, $form->{"project_id_$i"}) if ($form->{"project_id_$i"});
   }
 
+  my $projects = [];
+  my %projects_by_id;
   if (@project_ids) {
-    $query = "SELECT id, projectnumber, description FROM project WHERE id IN (" .
-      join(", ", map("?", @project_ids)) . ")";
-    $sth = prepare_execute_query($form, $dbh, $query, @project_ids);
-    while (my $ref = $sth->fetchrow_hashref()) {
-      $projectnumbers{$ref->{id}} = $ref->{projectnumber};
-      $projectdescriptions{$ref->{id}} = $ref->{description};
-    }
-    $sth->finish();
+    $projects = SL::DB::Manager::Project->get_all(query => [ id => \@project_ids ]);
+    %projects_by_id = map { $_->id => $_ } @$projects;
   }
 
-  $form->{"globalprojectnumber"} = $projectnumbers{$form->{"globalproject_id"}};
-  $form->{"globalprojectdescription"} = $projectdescriptions{$form->{"globalproject_id"}};
+  $form->{globalprojectnumber} = $projects_by_id{$form->{"globalproject_id"}}->projectnumber;
+  $form->{globalprojectdescription} = $projects_by_id{$form->{"globalproject_id"}}->description;
+
+  if ($projects_by_id{$form->{"globalproject_id"}}) {
+    for (@{ $projects_by_id{$form->{"globalproject_id"}}->cvars_by_config }) {
+      $form->{"project_cvar_" . $_->config->name} = $_->value_as_text;
+    }
+  }
 
   $form->{discount} = [];
 
@@ -1083,6 +1085,7 @@ sub order_details {
   IC->prepare_parts_for_printing(myconfig => $myconfig, form => $form);
 
   my $ic_cvar_configs = CVar->get_configs(module => 'IC');
+  my $project_cvar_configs = CVar->get_configs(module => 'Projects');
 
   my @arrays =
     qw(runningnumber number description longdescription qty ship unit bin
@@ -1092,6 +1095,7 @@ sub order_details {
        price_factor price_factor_name partsgroup weight lineweight);
 
   push @arrays, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs };
+  push @arrays, map { "project_cvar_$_->{name}" } @{ $project_cvar_configs };
 
   my @tax_arrays = qw(taxbase tax taxdescription taxrate taxnumber);
 
@@ -1205,12 +1209,14 @@ sub order_details {
         $nodiscount += $linetotal;
       }
 
+      my $project = $projects_by_id{$form->{"project_id_$i"}} || SL::DB::Project->new;
+
       push @{ $form->{TEMPLATE_ARRAYS}->{linetotal} },                  $form->format_amount($myconfig, $linetotal, 2);
       push @{ $form->{TEMPLATE_ARRAYS}->{linetotal_nofmt} },            $linetotal_exact;
       push @{ $form->{TEMPLATE_ARRAYS}->{nodiscount_linetotal} },       $form->format_amount($myconfig, $nodiscount_linetotal, 2);
       push @{ $form->{TEMPLATE_ARRAYS}->{nodiscount_linetotal_nofmt} }, $nodiscount_linetotal;
-      push(@{ $form->{TEMPLATE_ARRAYS}->{projectnumber} },              $projectnumbers{$form->{"project_id_$i"}});
-      push(@{ $form->{TEMPLATE_ARRAYS}->{projectdescription} },         $projectdescriptions{$form->{"project_id_$i"}});
+      push @{ $form->{TEMPLATE_ARRAYS}->{projectnumber} },              $project->projectnumber;
+      push @{ $form->{TEMPLATE_ARRAYS}->{projectdescription} },         $project->description;
 
       my $lineweight = $form->{"qty_$i"} * $form->{"weight_$i"};
       $totalweight += $lineweight;
@@ -1282,6 +1288,8 @@ sub order_details {
       push @{ $form->{TEMPLATE_ARRAYS}->{"ic_cvar_$_->{name}"} },
         CVar->format_to_template(CVar->parse($form->{"ic_cvar_$_->{name}_$i"}, $_), $_)
           for @{ $ic_cvar_configs };
+
+      push @{ $form->{TEMPLATE_ARRAYS}->{"project_cvar_" . $_->config->name} }, $_->value_as_text for @{ $project->cvars_by_config };
     }
   }
 
index f257b51..302dbc1 100644 (file)
@@ -403,9 +403,6 @@ sub generate_balance_sheet {
   $::lxdebug->enter_sub;
   $::auth->assert('report');
 
-  my $defaults = SL::DB::Default->get;
-  $::form->error($::locale->text('No print templates have been created for this client yet. Please do so in the client configuration.')) if !$defaults->templates;
-  $::form->{templates}     = $defaults->templates;
   $::form->{decimalplaces} = $::form->{decimalplaces} * 1 || 2;
   $::form->{padding}       = "&nbsp;&nbsp;";
   $::form->{bold}          = "<b>";
index f847711..55ec597 100644 (file)
@@ -1,96 +1,96 @@
 .icon16 { background: url(../image/maps/icons16.png) 16px 0px no-repeat; padding: 0; width: 16px; height: 16px; }
-.icon16.AP--Add-Purchase-Order { background-position: -0px 0px; }
-.icon16.AP--Add-RFQ { background-position: -16px 0px; }
-.icon16.AP { background-position: -32px 0px; }
-.icon16.AP--Reports { background-position: -48px 0px; }
-.icon16.AP--Reports--Purchase-Orders { background-position: -64px 0px; }
-.icon16.AP--Reports--RFQs { background-position: -80px 0px; }
-.icon16.AR--Add-Credit-Note { background-position: -96px 0px; }
-.icon16.AR--Add-Delivery-Order { background-position: -112px 0px; }
-.icon16.AR--Add-Dunning { background-position: -128px 0px; }
-.icon16.AR--Add-Quotation { background-position: -144px 0px; }
-.icon16.AR--Add-Sales-Invoice { background-position: -160px 0px; }
-.icon16.AR--Add-Sales-Order { background-position: -176px 0px; }
-.icon16.AR { background-position: -192px 0px; }
-.icon16.AR--Reports--Delivery-Orders { background-position: -208px 0px; }
-.icon16.AR--Reports--Dunnings { background-position: -224px 0px; }
-.icon16.AR--Reports--Invoices { background-position: -240px 0px; }
-.icon16.AR--Reports { background-position: -256px 0px; }
-.icon16.AR--Reports--Quotations { background-position: -272px 0px; }
-.icon16.AR--Reports--Sales-Orders { background-position: -288px 0px; }
-.icon16.Batch-Printing--Packing-Lists { background-position: -304px 0px; }
-.icon16.Batch-Printing { background-position: -320px 0px; }
-.icon16.Batch-Printing--Purchase-Orders { background-position: -336px 0px; }
-.icon16.Batch-Printing--Quotations { background-position: -352px 0px; }
-.icon16.Batch-Printing--Receipts { background-position: -368px 0px; }
-.icon16.Batch-Printing--RFQs { background-position: -384px 0px; }
-.icon16.Batch-Printing--Sales-Invoices { background-position: -400px 0px; }
-.icon16.Batch-Printing--Sales-Orders { background-position: -416px 0px; }
-.icon16.Cash--Payment { background-position: -432px 0px; }
-.icon16.Cash { background-position: -448px 0px; }
-.icon16.Cash--Receipt { background-position: -464px 0px; }
-.icon16.Cash--Reconciliation { background-position: -480px 0px; }
-.icon16.Cash--Reports--Payments { background-position: -496px 0px; }
-.icon16.Cash--Reports { background-position: -512px 0px; }
-.icon16.Cash--Reports--Receipts { background-position: -528px 0px; }
-.icon16.CRM--Admin--Benutzer { background-position: -544px 0px; }
-.icon16.CRM--Admin--Dokumentvorlage { background-position: -560px 0px; }
-.icon16.CRM--Admin--Etiketten { background-position: -576px 0px; }
-.icon16.CRM--Admin--Gruppen { background-position: -592px 0px; }
-.icon16.CRM--Admin--Mitteilungen { background-position: -608px 0px; }
-.icon16.CRM--Admin { background-position: -624px 0px; }
-.icon16.CRM--Admin--Status { background-position: -640px 0px; }
-.icon16.CRM--Auftragschance { background-position: -656px 0px; }
-.icon16.CRM--eMail { background-position: -672px 0px; }
-.icon16.CRM--Hilfe { background-position: -688px 0px; }
-.icon16.CRM--Kunden { background-position: -704px 0px; }
-.icon16.CRM--Lieferant { background-position: -720px 0px; }
-.icon16.CRM--Notizen { background-position: -736px 0px; }
-.icon16.CRM--Personen { background-position: -752px 0px; }
-.icon16.CRM { background-position: -768px 0px; }
-.icon16.CRM--Schnellsuche { background-position: -784px 0px; }
-.icon16.CRM--Service { background-position: -800px 0px; }
-.icon16.CRM--Termine { background-position: -816px 0px; }
-.icon16.CRM--Wiedervorlage { background-position: -832px 0px; }
-.icon16.CRM--Wissens-DB { background-position: -848px 0px; }
-.icon16.General-Ledger--Add-AP-Transaction { background-position: -864px 0px; }
-.icon16.General-Ledger--Add-AR-Transaction { background-position: -880px 0px; }
-.icon16.General-Ledger--Add-Transaction { background-position: -896px 0px; }
-.icon16.General-Ledger--DATEV---Export-Assistent { background-position: -912px 0px; }
-.icon16.General-Ledger { background-position: -928px 0px; }
-.icon16.General-Ledger--Reports--AP-Aging { background-position: -944px 0px; }
-.icon16.General-Ledger--Reports--AR-Aging { background-position: -960px 0px; }
-.icon16.General-Ledger--Reports--Journal { background-position: -976px 0px; }
-.icon16.General-Ledger--Reports { background-position: -992px 0px; }
-.icon16.Master-Data--Add-Assembly { background-position: -1008px 0px; }
-.icon16.Master-Data--Add-Customer { background-position: -1024px 0px; }
-.icon16.Master-Data--Add-License { background-position: -1040px 0px; }
-.icon16.Master-Data--Add-Part { background-position: -1056px 0px; }
-.icon16.Master-Data--Add-Project { background-position: -1072px 0px; }
-.icon16.Master-Data--Add-Service { background-position: -1088px 0px; }
-.icon16.Master-Data--Add-Vendor { background-position: -1104px 0px; }
-.icon16.Master-Data { background-position: -1120px 0px; }
-.icon16.Master-Data--Reports--Assemblies { background-position: -1136px 0px; }
-.icon16.Master-Data--Reports--Customers { background-position: -1152px 0px; }
-.icon16.Master-Data--Reports--Licenses { background-position: -1168px 0px; }
-.icon16.Master-Data--Reports--Parts { background-position: -1184px 0px; }
-.icon16.Master-Data--Reports { background-position: -1200px 0px; }
-.icon16.Master-Data--Reports--Projects { background-position: -1216px 0px; }
-.icon16.Master-Data--Reports--Projecttransactions { background-position: -1232px 0px; }
-.icon16.Master-Data--Reports--Services { background-position: -1248px 0px; }
-.icon16.Master-Data--Reports--Vendors { background-position: -1264px 0px; }
-.icon16.Master-Data--Update-Prices { background-position: -1280px 0px; }
-.icon16.MDI-Text-Editor-16x16 { background-position: -1296px 0px; }
-.icon16.Neues-Fenster { background-position: -1312px 0px; }
-.icon16.Program--Logout { background-position: -1328px 0px; }
-.icon16.Program { background-position: -1344px 0px; }
-.icon16.Program--Preferences { background-position: -1360px 0px; }
-.icon16.Program--Version { background-position: -1376px 0px; }
-.icon16.Reports--Balance-Sheet { background-position: -1392px 0px; }
-.icon16.Reports--Chart-of-Accounts { background-position: -1408px 0px; }
-.icon16.Reports--Income-Statement { background-position: -1424px 0px; }
-.icon16.Reports { background-position: -1440px 0px; }
-.icon16.Reports--UStVa { background-position: -1456px 0px; }
-.icon16.System { background-position: -1472px 0px; }
-.icon16.Warehouse { background-position: -1488px 0px; }
-.icon16.Warehouse--Produce-Assembly { background-position: -1504px 0px; }
+.icon16.ap--add-purchase-order { background-position: -0px 0px; }
+.icon16.ap--add-rfq { background-position: -16px 0px; }
+.icon16.ap { background-position: -32px 0px; }
+.icon16.ap--reports { background-position: -48px 0px; }
+.icon16.ap--reports--purchase-orders { background-position: -64px 0px; }
+.icon16.ap--reports--rfqs { background-position: -80px 0px; }
+.icon16.ar--add-credit-note { background-position: -96px 0px; }
+.icon16.ar--add-delivery-order { background-position: -112px 0px; }
+.icon16.ar--add-dunning { background-position: -128px 0px; }
+.icon16.ar--add-quotation { background-position: -144px 0px; }
+.icon16.ar--add-sales-invoice { background-position: -160px 0px; }
+.icon16.ar--add-sales-order { background-position: -176px 0px; }
+.icon16.ar { background-position: -192px 0px; }
+.icon16.ar--reports--delivery-orders { background-position: -208px 0px; }
+.icon16.ar--reports--dunnings { background-position: -224px 0px; }
+.icon16.ar--reports--invoices--credit-notes---ar-transactions { background-position: -240px 0px; }
+.icon16.ar--reports { background-position: -256px 0px; }
+.icon16.ar--reports--quotations { background-position: -272px 0px; }
+.icon16.ar--reports--sales-orders { background-position: -288px 0px; }
+.icon16.batch-printing--packing-lists { background-position: -304px 0px; }
+.icon16.batch-printing { background-position: -320px 0px; }
+.icon16.batch-printing--purchase-orders { background-position: -336px 0px; }
+.icon16.batch-printing--quotations { background-position: -352px 0px; }
+.icon16.batch-printing--receipts { background-position: -368px 0px; }
+.icon16.batch-printing--rfqs { background-position: -384px 0px; }
+.icon16.batch-printing--sales-invoices { background-position: -400px 0px; }
+.icon16.batch-printing--sales-orders { background-position: -416px 0px; }
+.icon16.cash--payment { background-position: -432px 0px; }
+.icon16.cash { background-position: -448px 0px; }
+.icon16.cash--receipt { background-position: -464px 0px; }
+.icon16.cash--reconciliation { background-position: -480px 0px; }
+.icon16.cash--reports--payments { background-position: -496px 0px; }
+.icon16.cash--reports { background-position: -512px 0px; }
+.icon16.cash--reports--receipts { background-position: -528px 0px; }
+.icon16.crm--add--customer { background-position: -544px 0px; }
+.icon16.crm--add--person { background-position: -560px 0px; }
+.icon16.crm--add--vendor { background-position: -576px 0px; }
+.icon16.crm--admin--document-template { background-position: -592px 0px; }
+.icon16.crm--admin--label { background-position: -608px 0px; }
+.icon16.crm--admin--message { background-position: -624px 0px; }
+.icon16.crm--admin { background-position: -640px 0px; }
+.icon16.crm--admin--status { background-position: -656px 0px; }
+.icon16.crm--admin--user-groups { background-position: -672px 0px; }
+.icon16.crm--admin--user { background-position: -688px 0px; }
+.icon16.crm--appointments { background-position: -704px 0px; }
+.icon16.crm--e-mail { background-position: -720px 0px; }
+.icon16.crm--follow-up { background-position: -736px 0px; }
+.icon16.crm--help { background-position: -752px 0px; }
+.icon16.crm--knowledge { background-position: -768px 0px; }
+.icon16.crm--memo { background-position: -784px 0px; }
+.icon16.crm--opportunity { background-position: -800px 0px; }
+.icon16.crm { background-position: -816px 0px; }
+.icon16.crm--search { background-position: -832px 0px; }
+.icon16.crm--service { background-position: -848px 0px; }
+.icon16.general-ledger--add-ap-transaction { background-position: -864px 0px; }
+.icon16.general-ledger--add-ar-transaction { background-position: -880px 0px; }
+.icon16.general-ledger--add-transaction { background-position: -896px 0px; }
+.icon16.general-ledger--datev---export-assistent { background-position: -912px 0px; }
+.icon16.general-ledger { background-position: -928px 0px; }
+.icon16.general-ledger--reports--ap-aging { background-position: -944px 0px; }
+.icon16.general-ledger--reports--ar-aging { background-position: -960px 0px; }
+.icon16.general-ledger--reports--journal { background-position: -976px 0px; }
+.icon16.general-ledger--reports { background-position: -992px 0px; }
+.icon16.master-data--add-assembly { background-position: -1008px 0px; }
+.icon16.master-data--add-customer { background-position: -1024px 0px; }
+.icon16.master-data--add-license { background-position: -1040px 0px; }
+.icon16.master-data--add-part { background-position: -1056px 0px; }
+.icon16.master-data--add-project { background-position: -1072px 0px; }
+.icon16.master-data--add-service { background-position: -1088px 0px; }
+.icon16.master-data--add-vendor { background-position: -1104px 0px; }
+.icon16.master-data { background-position: -1120px 0px; }
+.icon16.master-data--reports--assemblies { background-position: -1136px 0px; }
+.icon16.master-data--reports--customers { background-position: -1152px 0px; }
+.icon16.master-data--reports--licenses { background-position: -1168px 0px; }
+.icon16.master-data--reports--parts { background-position: -1184px 0px; }
+.icon16.master-data--reports { background-position: -1200px 0px; }
+.icon16.master-data--reports--projects { background-position: -1216px 0px; }
+.icon16.master-data--reports--projecttransactions { background-position: -1232px 0px; }
+.icon16.master-data--reports--services { background-position: -1248px 0px; }
+.icon16.master-data--reports--vendors { background-position: -1264px 0px; }
+.icon16.master-data--update-prices { background-position: -1280px 0px; }
+.icon16.mdi-text-editor-16x16 { background-position: -1296px 0px; }
+.icon16.neues-fenster { background-position: -1312px 0px; }
+.icon16.program--logout { background-position: -1328px 0px; }
+.icon16.program { background-position: -1344px 0px; }
+.icon16.program--preferences { background-position: -1360px 0px; }
+.icon16.program--version { background-position: -1376px 0px; }
+.icon16.reports--balance-sheet { background-position: -1392px 0px; }
+.icon16.reports--chart-of-accounts { background-position: -1408px 0px; }
+.icon16.reports--income-statement { background-position: -1424px 0px; }
+.icon16.reports { background-position: -1440px 0px; }
+.icon16.reports--ustva { background-position: -1456px 0px; }
+.icon16.system { background-position: -1472px 0px; }
+.icon16.warehouse { background-position: -1488px 0px; }
+.icon16.warehouse--produce-assembly { background-position: -1504px 0px; }
index fe6ba0a..87a382e 100644 (file)
@@ -1,93 +1,93 @@
 .icon24 { background: url(../image/maps/icons24.png) 24px 0px no-repeat; padding: 0; width: 24px; height: 24px; }
-.icon24.AP--Add-Purchase-Order { background-position: -0px 0px; }
-.icon24.AP--Add-RFQ { background-position: -24px 0px; }
-.icon24.AP { background-position: -48px 0px; }
-.icon24.AP--Reports { background-position: -72px 0px; }
-.icon24.AP--Reports--Purchase-Orders { background-position: -96px 0px; }
-.icon24.AP--Reports--RFQs { background-position: -120px 0px; }
-.icon24.AR--Add-Dunning { background-position: -144px 0px; }
-.icon24.AR--Add-Quotation { background-position: -168px 0px; }
-.icon24.AR--Add-Sales-Invoice { background-position: -192px 0px; }
-.icon24.AR--Add-Sales-Order { background-position: -216px 0px; }
-.icon24.AR { background-position: -240px 0px; }
-.icon24.AR--Reports--Dunnings { background-position: -264px 0px; }
-.icon24.AR--Reports--Invoices { background-position: -288px 0px; }
-.icon24.AR--Reports { background-position: -312px 0px; }
-.icon24.AR--Reports--Quotations { background-position: -336px 0px; }
-.icon24.AR--Reports--Sales-Orders { background-position: -360px 0px; }
-.icon24.Batch-Printing--Packing-Lists { background-position: -384px 0px; }
-.icon24.Batch-Printing { background-position: -408px 0px; }
-.icon24.Batch-Printing--Purchase-Orders { background-position: -432px 0px; }
-.icon24.Batch-Printing--Quotations { background-position: -456px 0px; }
-.icon24.Batch-Printing--Receipts { background-position: -480px 0px; }
-.icon24.Batch-Printing--RFQs { background-position: -504px 0px; }
-.icon24.Batch-Printing--Sales-Invoices { background-position: -528px 0px; }
-.icon24.Batch-Printing--Sales-Orders { background-position: -552px 0px; }
-.icon24.Cash--Payment { background-position: -576px 0px; }
-.icon24.Cash { background-position: -600px 0px; }
-.icon24.Cash--Receipt { background-position: -624px 0px; }
-.icon24.Cash--Reconciliation { background-position: -648px 0px; }
-.icon24.Cash--Reports--Payments { background-position: -672px 0px; }
-.icon24.Cash--Reports { background-position: -696px 0px; }
-.icon24.Cash--Reports--Receipts { background-position: -720px 0px; }
-.icon24.CRM--Admin--Benutzer { background-position: -744px 0px; }
-.icon24.CRM--Admin--Dokumentvorlage { background-position: -768px 0px; }
-.icon24.CRM--Admin--Etiketten { background-position: -792px 0px; }
-.icon24.CRM--Admin--Gruppen { background-position: -816px 0px; }
-.icon24.CRM--Admin--Mitteilungen { background-position: -840px 0px; }
-.icon24.CRM--Admin { background-position: -864px 0px; }
-.icon24.CRM--Admin--Status { background-position: -888px 0px; }
-.icon24.CRM--Auftragschance { background-position: -912px 0px; }
-.icon24.CRM--eMail { background-position: -936px 0px; }
-.icon24.CRM--Hilfe { background-position: -960px 0px; }
-.icon24.CRM--Kunden { background-position: -984px 0px; }
-.icon24.CRM--Lieferant { background-position: -1008px 0px; }
-.icon24.CRM--Notizen { background-position: -1032px 0px; }
-.icon24.CRM--Personen { background-position: -1056px 0px; }
-.icon24.CRM { background-position: -1080px 0px; }
-.icon24.CRM--Schnellsuche { background-position: -1104px 0px; }
-.icon24.CRM--Service { background-position: -1128px 0px; }
-.icon24.CRM--Termine { background-position: -1152px 0px; }
-.icon24.CRM--Wiedervorlage { background-position: -1176px 0px; }
-.icon24.CRM--Wissens-DB { background-position: -1200px 0px; }
-.icon24.General-Ledger--Add-AP-Transaction { background-position: -1224px 0px; }
-.icon24.General-Ledger--Add-AR-Transaction { background-position: -1248px 0px; }
-.icon24.General-Ledger--Add-Transaction { background-position: -1272px 0px; }
-.icon24.General-Ledger--DATEV---Export-Assistent { background-position: -1296px 0px; }
-.icon24.General-Ledger { background-position: -1320px 0px; }
-.icon24.General-Ledger--Reports--AP-Aging { background-position: -1344px 0px; }
-.icon24.General-Ledger--Reports--AR-Aging { background-position: -1368px 0px; }
-.icon24.General-Ledger--Reports--Journal { background-position: -1392px 0px; }
-.icon24.General-Ledger--Reports { background-position: -1416px 0px; }
+.icon24.ap--add-purchase-order { background-position: -0px 0px; }
+.icon24.ap--add-rfq { background-position: -24px 0px; }
+.icon24.ap { background-position: -48px 0px; }
+.icon24.ap--reports { background-position: -72px 0px; }
+.icon24.ap--reports--purchase-orders { background-position: -96px 0px; }
+.icon24.ap--reports--rfqs { background-position: -120px 0px; }
+.icon24.ar--add-dunning { background-position: -144px 0px; }
+.icon24.ar--add-quotation { background-position: -168px 0px; }
+.icon24.ar--add-sales-invoice { background-position: -192px 0px; }
+.icon24.ar--add-sales-order { background-position: -216px 0px; }
+.icon24.ar { background-position: -240px 0px; }
+.icon24.ar--reports--dunnings { background-position: -264px 0px; }
+.icon24.ar--reports--invoices { background-position: -288px 0px; }
+.icon24.ar--reports { background-position: -312px 0px; }
+.icon24.ar--reports--quotations { background-position: -336px 0px; }
+.icon24.ar--reports--sales-orders { background-position: -360px 0px; }
+.icon24.batch-printing--packing-lists { background-position: -384px 0px; }
+.icon24.batch-printing { background-position: -408px 0px; }
+.icon24.batch-printing--purchase-orders { background-position: -432px 0px; }
+.icon24.batch-printing--quotations { background-position: -456px 0px; }
+.icon24.batch-printing--receipts { background-position: -480px 0px; }
+.icon24.batch-printing--rfqs { background-position: -504px 0px; }
+.icon24.batch-printing--sales-invoices { background-position: -528px 0px; }
+.icon24.batch-printing--sales-orders { background-position: -552px 0px; }
+.icon24.cash--payment { background-position: -576px 0px; }
+.icon24.cash { background-position: -600px 0px; }
+.icon24.cash--receipt { background-position: -624px 0px; }
+.icon24.cash--reconciliation { background-position: -648px 0px; }
+.icon24.cash--reports--payments { background-position: -672px 0px; }
+.icon24.cash--reports { background-position: -696px 0px; }
+.icon24.cash--reports--receipts { background-position: -720px 0px; }
+.icon24.crm--add--customer { background-position: -744px 0px; }
+.icon24.crm--add--person { background-position: -768px 0px; }
+.icon24.crm--add--vendor { background-position: -792px 0px; }
+.icon24.crm--admin--document-template { background-position: -816px 0px; }
+.icon24.crm--admin--label { background-position: -840px 0px; }
+.icon24.crm--admin--message { background-position: -864px 0px; }
+.icon24.crm--admin { background-position: -888px 0px; }
+.icon24.crm--admin--status { background-position: -912px 0px; }
+.icon24.crm--admin--user-groups { background-position: -936px 0px; }
+.icon24.crm--admin--user { background-position: -960px 0px; }
+.icon24.crm--appointments { background-position: -984px 0px; }
+.icon24.crm--email { background-position: -1008px 0px; }
+.icon24.crm--follow-up { background-position: -1032px 0px; }
+.icon24.crm--help { background-position: -1056px 0px; }
+.icon24.crm--knowledge { background-position: -1080px 0px; }
+.icon24.crm--memo { background-position: -1104px 0px; }
+.icon24.crm--opportunity { background-position: -1128px 0px; }
+.icon24.crm { background-position: -1152px 0px; }
+.icon24.crm--search { background-position: -1176px 0px; }
+.icon24.crm--service { background-position: -1200px 0px; }
+.icon24.general-ledger--add-ap-transaction { background-position: -1224px 0px; }
+.icon24.general-ledger--add-ar-transaction { background-position: -1248px 0px; }
+.icon24.general-ledger--add-transaction { background-position: -1272px 0px; }
+.icon24.general-ledger--datev---export-assistent { background-position: -1296px 0px; }
+.icon24.general-ledger { background-position: -1320px 0px; }
+.icon24.general-ledger--reports--ap-aging { background-position: -1344px 0px; }
+.icon24.general-ledger--reports--ar-aging { background-position: -1368px 0px; }
+.icon24.general-ledger--reports--journal { background-position: -1392px 0px; }
+.icon24.general-ledger--reports { background-position: -1416px 0px; }
 .icon24.leftarrow_24 { background-position: -1440px 0px; }
-.icon24.Master-Data--Add-Assembly { background-position: -1464px 0px; }
-.icon24.Master-Data--Add-Customer { background-position: -1488px 0px; }
-.icon24.Master-Data--Add-License { background-position: -1512px 0px; }
-.icon24.Master-Data--Add-Part { background-position: -1536px 0px; }
-.icon24.Master-Data--Add-Project { background-position: -1560px 0px; }
-.icon24.Master-Data--Add-Service { background-position: -1584px 0px; }
-.icon24.Master-Data--Add-Vendor { background-position: -1608px 0px; }
-.icon24.Master-Data { background-position: -1632px 0px; }
-.icon24.Master-Data--Reports--Assemblies { background-position: -1656px 0px; }
-.icon24.Master-Data--Reports--Customers { background-position: -1680px 0px; }
-.icon24.Master-Data--Reports--Licenses { background-position: -1704px 0px; }
-.icon24.Master-Data--Reports--Parts { background-position: -1728px 0px; }
-.icon24.Master-Data--Reports { background-position: -1752px 0px; }
-.icon24.Master-Data--Reports--Projects { background-position: -1776px 0px; }
-.icon24.Master-Data--Reports--Projecttransactions { background-position: -1800px 0px; }
-.icon24.Master-Data--Reports--Services { background-position: -1824px 0px; }
-.icon24.Master-Data--Reports--Vendors { background-position: -1848px 0px; }
-.icon24.Neues-Fenster { background-position: -1872px 0px; }
-.icon24.Productivity { background-position: -1896px 0px; }
-.icon24.Program--Logout { background-position: -1920px 0px; }
-.icon24.Program { background-position: -1944px 0px; }
-.icon24.Program--Preferences { background-position: -1968px 0px; }
-.icon24.Program--Version { background-position: -1992px 0px; }
-.icon24.Reports--Balance-Sheet { background-position: -2016px 0px; }
-.icon24.Reports--Chart-of-Accounts { background-position: -2040px 0px; }
-.icon24.Reports--Income-Statement { background-position: -2064px 0px; }
-.icon24.Reports { background-position: -2088px 0px; }
-.icon24.Reports--UStVa { background-position: -2112px 0px; }
+.icon24.master-data--add-assembly { background-position: -1464px 0px; }
+.icon24.master-data--add-customer { background-position: -1488px 0px; }
+.icon24.master-data--add-license { background-position: -1512px 0px; }
+.icon24.master-data--add-part { background-position: -1536px 0px; }
+.icon24.master-data--add-project { background-position: -1560px 0px; }
+.icon24.master-data--add-service { background-position: -1584px 0px; }
+.icon24.master-data--add-vendor { background-position: -1608px 0px; }
+.icon24.master-data { background-position: -1632px 0px; }
+.icon24.master-data--reports--assemblies { background-position: -1656px 0px; }
+.icon24.master-data--reports--customers { background-position: -1680px 0px; }
+.icon24.master-data--reports--licenses { background-position: -1704px 0px; }
+.icon24.master-data--reports--parts { background-position: -1728px 0px; }
+.icon24.master-data--reports { background-position: -1752px 0px; }
+.icon24.master-data--reports--projects { background-position: -1776px 0px; }
+.icon24.master-data--reports--projecttransactions { background-position: -1800px 0px; }
+.icon24.master-data--reports--services { background-position: -1824px 0px; }
+.icon24.master-data--reports--vendors { background-position: -1848px 0px; }
+.icon24.neues-fenster { background-position: -1872px 0px; }
+.icon24.productivity { background-position: -1896px 0px; }
+.icon24.program--logout { background-position: -1920px 0px; }
+.icon24.program { background-position: -1944px 0px; }
+.icon24.program--preferences { background-position: -1968px 0px; }
+.icon24.program--version { background-position: -1992px 0px; }
+.icon24.reports--balance-sheet { background-position: -2016px 0px; }
+.icon24.reports--chart-of-accounts { background-position: -2040px 0px; }
+.icon24.reports--income-statement { background-position: -2064px 0px; }
+.icon24.reports { background-position: -2088px 0px; }
+.icon24.reports--ustva { background-position: -2112px 0px; }
 .icon24.rightarrow_24 { background-position: -2136px 0px; }
-.icon24.System { background-position: -2160px 0px; }
-.icon24.Warehouse { background-position: -2184px 0px; }
+.icon24.system { background-position: -2160px 0px; }
+.icon24.warehouse { background-position: -2184px 0px; }
index a8d9d0d..0628d83 100644 (file)
@@ -1,90 +1,90 @@
 .icon32 { background: url(../image/maps/icons32.png) 32px 0px no-repeat; padding: 0; width: 32px; height: 32px; }
-.icon32.AP--Add-Purchase-Order { background-position: -0px 0px; }
-.icon32.AP--Add-RFQ { background-position: -32px 0px; }
-.icon32.AP { background-position: -64px 0px; }
-.icon32.AP--Reports { background-position: -96px 0px; }
-.icon32.AP--Reports--Purchase-Orders { background-position: -128px 0px; }
-.icon32.AP--Reports--RFQs { background-position: -160px 0px; }
-.icon32.AR--Add-Dunning { background-position: -192px 0px; }
-.icon32.AR--Add-Quotation { background-position: -224px 0px; }
-.icon32.AR--Add-Sales-Invoice { background-position: -256px 0px; }
-.icon32.AR--Add-Sales-Order { background-position: -288px 0px; }
-.icon32.AR { background-position: -320px 0px; }
-.icon32.AR--Reports--Dunnings { background-position: -352px 0px; }
-.icon32.AR--Reports--Invoices { background-position: -384px 0px; }
-.icon32.AR--Reports { background-position: -416px 0px; }
-.icon32.AR--Reports--Quotations { background-position: -448px 0px; }
-.icon32.AR--Reports--Sales-Orders { background-position: -480px 0px; }
-.icon32.Batch-Printing--Packing-Lists { background-position: -512px 0px; }
-.icon32.Batch-Printing { background-position: -544px 0px; }
-.icon32.Batch-Printing--Purchase-Orders { background-position: -576px 0px; }
-.icon32.Batch-Printing--Quotations { background-position: -608px 0px; }
-.icon32.Batch-Printing--Receipts { background-position: -640px 0px; }
-.icon32.Batch-Printing--RFQs { background-position: -672px 0px; }
-.icon32.Batch-Printing--Sales-Invoices { background-position: -704px 0px; }
-.icon32.Batch-Printing--Sales-Orders { background-position: -736px 0px; }
-.icon32.Cash--Payment { background-position: -768px 0px; }
-.icon32.Cash { background-position: -800px 0px; }
-.icon32.Cash--Receipt { background-position: -832px 0px; }
-.icon32.Cash--Reconciliation { background-position: -864px 0px; }
-.icon32.Cash--Reports--Payments { background-position: -896px 0px; }
-.icon32.Cash--Reports { background-position: -928px 0px; }
-.icon32.Cash--Reports--Receipts { background-position: -960px 0px; }
-.icon32.CRM--Admin--Benutzer { background-position: -992px 0px; }
-.icon32.CRM--Admin--Dokumentvorlage { background-position: -1024px 0px; }
-.icon32.CRM--Admin--Etiketten { background-position: -1056px 0px; }
-.icon32.CRM--Admin--Gruppen { background-position: -1088px 0px; }
-.icon32.CRM--Admin--Mitteilungen { background-position: -1120px 0px; }
-.icon32.CRM--Admin { background-position: -1152px 0px; }
-.icon32.CRM--Admin--Status { background-position: -1184px 0px; }
-.icon32.CRM--Auftragschance { background-position: -1216px 0px; }
-.icon32.CRM--eMail { background-position: -1248px 0px; }
-.icon32.CRM--Hilfe { background-position: -1280px 0px; }
-.icon32.CRM--Kunden { background-position: -1312px 0px; }
-.icon32.CRM--Lieferant { background-position: -1344px 0px; }
-.icon32.CRM--Notizen { background-position: -1376px 0px; }
-.icon32.CRM--Personen { background-position: -1408px 0px; }
-.icon32.CRM { background-position: -1440px 0px; }
-.icon32.CRM--Schnellsuche { background-position: -1472px 0px; }
-.icon32.CRM--Service { background-position: -1504px 0px; }
-.icon32.CRM--Termine { background-position: -1536px 0px; }
-.icon32.CRM--Wiedervorlage { background-position: -1568px 0px; }
-.icon32.CRM--Wissens-DB { background-position: -1600px 0px; }
-.icon32.General-Ledger--Add-AP-Transaction { background-position: -1632px 0px; }
-.icon32.General-Ledger--Add-AR-Transaction { background-position: -1664px 0px; }
-.icon32.General-Ledger--Add-Transaction { background-position: -1696px 0px; }
-.icon32.General-Ledger--DATEV---Export-Assistent { background-position: -1728px 0px; }
-.icon32.General-Ledger { background-position: -1760px 0px; }
-.icon32.General-Ledger--Reports--AP-Aging { background-position: -1792px 0px; }
-.icon32.General-Ledger--Reports--AR-Aging { background-position: -1824px 0px; }
-.icon32.General-Ledger--Reports--Journal { background-position: -1856px 0px; }
-.icon32.General-Ledger--Reports { background-position: -1888px 0px; }
-.icon32.Master-Data--Add-Assembly { background-position: -1920px 0px; }
-.icon32.Master-Data--Add-Customer { background-position: -1952px 0px; }
-.icon32.Master-Data--Add-License { background-position: -1984px 0px; }
-.icon32.Master-Data--Add-Part { background-position: -2016px 0px; }
-.icon32.Master-Data--Add-Project { background-position: -2048px 0px; }
-.icon32.Master-Data--Add-Service { background-position: -2080px 0px; }
-.icon32.Master-Data--Add-Vendor { background-position: -2112px 0px; }
-.icon32.Master-Data { background-position: -2144px 0px; }
-.icon32.Master-Data--Reports--Assemblies { background-position: -2176px 0px; }
-.icon32.Master-Data--Reports--Customers { background-position: -2208px 0px; }
-.icon32.Master-Data--Reports--Licenses { background-position: -2240px 0px; }
-.icon32.Master-Data--Reports--Parts { background-position: -2272px 0px; }
-.icon32.Master-Data--Reports { background-position: -2304px 0px; }
-.icon32.Master-Data--Reports--Projects { background-position: -2336px 0px; }
-.icon32.Master-Data--Reports--Projecttransactions { background-position: -2368px 0px; }
-.icon32.Master-Data--Reports--Services { background-position: -2400px 0px; }
-.icon32.Master-Data--Reports--Vendors { background-position: -2432px 0px; }
-.icon32.Neues-Fenster { background-position: -2464px 0px; }
-.icon32.Program--Logout { background-position: -2496px 0px; }
-.icon32.Program { background-position: -2528px 0px; }
-.icon32.Program--Preferences { background-position: -2560px 0px; }
-.icon32.Program--Version { background-position: -2592px 0px; }
-.icon32.Reports--Balance-Sheet { background-position: -2624px 0px; }
-.icon32.Reports--Chart-of-Accounts { background-position: -2656px 0px; }
-.icon32.Reports--Income-Statement { background-position: -2688px 0px; }
-.icon32.Reports { background-position: -2720px 0px; }
-.icon32.Reports--UStVa { background-position: -2752px 0px; }
-.icon32.System { background-position: -2784px 0px; }
-.icon32.Warehouse--Produce-Assembly { background-position: -2816px 0px; }
+.icon32.ap--add-purchase-order { background-position: -0px 0px; }
+.icon32.ap--add-rfq { background-position: -32px 0px; }
+.icon32.ap { background-position: -64px 0px; }
+.icon32.ap--reports { background-position: -96px 0px; }
+.icon32.ap--reports--purchase-orders { background-position: -128px 0px; }
+.icon32.ap--reports--rfqs { background-position: -160px 0px; }
+.icon32.ar--add-dunning { background-position: -192px 0px; }
+.icon32.ar--add-quotation { background-position: -224px 0px; }
+.icon32.ar--add-sales-invoice { background-position: -256px 0px; }
+.icon32.ar--add-sales-order { background-position: -288px 0px; }
+.icon32.ar { background-position: -320px 0px; }
+.icon32.ar--reports--dunnings { background-position: -352px 0px; }
+.icon32.ar--reports--invoices { background-position: -384px 0px; }
+.icon32.ar--reports { background-position: -416px 0px; }
+.icon32.ar--reports--quotations { background-position: -448px 0px; }
+.icon32.ar--reports--sales-orders { background-position: -480px 0px; }
+.icon32.batch-printing--packing-lists { background-position: -512px 0px; }
+.icon32.batch-printing { background-position: -544px 0px; }
+.icon32.batch-printing--purchase-orders { background-position: -576px 0px; }
+.icon32.batch-printing--quotations { background-position: -608px 0px; }
+.icon32.batch-printing--receipts { background-position: -640px 0px; }
+.icon32.batch-printing--rfqs { background-position: -672px 0px; }
+.icon32.batch-printing--sales-invoices { background-position: -704px 0px; }
+.icon32.batch-printing--sales-orders { background-position: -736px 0px; }
+.icon32.cash--payment { background-position: -768px 0px; }
+.icon32.cash { background-position: -800px 0px; }
+.icon32.cash--receipt { background-position: -832px 0px; }
+.icon32.cash--reconciliation { background-position: -864px 0px; }
+.icon32.cash--reports--payments { background-position: -896px 0px; }
+.icon32.cash--reports { background-position: -928px 0px; }
+.icon32.cash--reports--receipts { background-position: -960px 0px; }
+.icon32.crm--add--customer { background-position: -992px 0px; }
+.icon32.crm--add--person { background-position: -1024px 0px; }
+.icon32.crm--add--vendor { background-position: -1056px 0px; }
+.icon32.crm--admin--document-template { background-position: -1088px 0px; }
+.icon32.crm--admin--label { background-position: -1120px 0px; }
+.icon32.crm--admin--message { background-position: -1152px 0px; }
+.icon32.crm--admin { background-position: -1184px 0px; }
+.icon32.crm--admin--status { background-position: -1216px 0px; }
+.icon32.crm--admin--user-groups { background-position: -1248px 0px; }
+.icon32.crm--admin--user { background-position: -1280px 0px; }
+.icon32.crm--appointments { background-position: -1312px 0px; }
+.icon32.crm--email { background-position: -1344px 0px; }
+.icon32.crm--follow-up { background-position: -1376px 0px; }
+.icon32.crm--help { background-position: -1408px 0px; }
+.icon32.crm--knowledge { background-position: -1440px 0px; }
+.icon32.crm--memo { background-position: -1472px 0px; }
+.icon32.crm--opportunity { background-position: -1504px 0px; }
+.icon32.crm { background-position: -1536px 0px; }
+.icon32.crm--search { background-position: -1568px 0px; }
+.icon32.crm--service { background-position: -1600px 0px; }
+.icon32.general-ledger--add-ap-transaction { background-position: -1632px 0px; }
+.icon32.general-ledger--add-ar-transaction { background-position: -1664px 0px; }
+.icon32.general-ledger--add-transaction { background-position: -1696px 0px; }
+.icon32.general-ledger--datev---export-assistent { background-position: -1728px 0px; }
+.icon32.general-ledger { background-position: -1760px 0px; }
+.icon32.general-ledger--reports--ap-aging { background-position: -1792px 0px; }
+.icon32.general-ledger--reports--ar-aging { background-position: -1824px 0px; }
+.icon32.general-ledger--reports--journal { background-position: -1856px 0px; }
+.icon32.general-ledger--reports { background-position: -1888px 0px; }
+.icon32.master-data--add-assembly { background-position: -1920px 0px; }
+.icon32.master-data--add-customer { background-position: -1952px 0px; }
+.icon32.master-data--add-license { background-position: -1984px 0px; }
+.icon32.master-data--add-part { background-position: -2016px 0px; }
+.icon32.master-data--add-project { background-position: -2048px 0px; }
+.icon32.master-data--add-service { background-position: -2080px 0px; }
+.icon32.master-data--add-vendor { background-position: -2112px 0px; }
+.icon32.master-data { background-position: -2144px 0px; }
+.icon32.master-data--reports--assemblies { background-position: -2176px 0px; }
+.icon32.master-data--reports--customers { background-position: -2208px 0px; }
+.icon32.master-data--reports--licenses { background-position: -2240px 0px; }
+.icon32.master-data--reports--parts { background-position: -2272px 0px; }
+.icon32.master-data--reports { background-position: -2304px 0px; }
+.icon32.master-data--reports--projects { background-position: -2336px 0px; }
+.icon32.master-data--reports--projecttransactions { background-position: -2368px 0px; }
+.icon32.master-data--reports--services { background-position: -2400px 0px; }
+.icon32.master-data--reports--vendors { background-position: -2432px 0px; }
+.icon32.neues-fenster { background-position: -2464px 0px; }
+.icon32.program--logout { background-position: -2496px 0px; }
+.icon32.program { background-position: -2528px 0px; }
+.icon32.program--preferences { background-position: -2560px 0px; }
+.icon32.program--version { background-position: -2592px 0px; }
+.icon32.reports--balance-sheet { background-position: -2624px 0px; }
+.icon32.reports--chart-of-accounts { background-position: -2656px 0px; }
+.icon32.reports--income-statement { background-position: -2688px 0px; }
+.icon32.reports { background-position: -2720px 0px; }
+.icon32.reports--ustva { background-position: -2752px 0px; }
+.icon32.system { background-position: -2784px 0px; }
+.icon32.warehouse--produce-assembly { background-position: -2816px 0px; }
diff --git a/image/icons/16x16/AR--Reports--Invoices, Credit Notes & AR Transactions.png b/image/icons/16x16/AR--Reports--Invoices, Credit Notes & AR Transactions.png
new file mode 100644 (file)
index 0000000..ca74ae1
Binary files /dev/null and b/image/icons/16x16/AR--Reports--Invoices, Credit Notes & AR Transactions.png differ
diff --git a/image/icons/16x16/AR--Reports--Invoices.png b/image/icons/16x16/AR--Reports--Invoices.png
deleted file mode 100644 (file)
index ca74ae1..0000000
Binary files a/image/icons/16x16/AR--Reports--Invoices.png and /dev/null differ
index 87ff0b1..dafc5ce 100644 (file)
Binary files a/image/maps/icons16.png and b/image/maps/icons16.png differ
index 4bd1206..179097f 100644 (file)
Binary files a/image/maps/icons24.png and b/image/maps/icons24.png differ
index a564f6e..8ede568 100644 (file)
Binary files a/image/maps/icons32.png and b/image/maps/icons32.png differ
index e6a47d9..f025340 100755 (executable)
@@ -81,7 +81,12 @@ for (@gd_images) {
 
   for (@gd_images) {
     my $name = fileparse($_->{filename}, ".png");
-    $name =~ s/ /-/g;
+
+    # the full grammar for valid css class names is completely bonkers (to put it mildly).
+    # so instead of trying to punch filenames into those class names, we'll
+    # just reduce them to a nice minimal set of lower case /[a-z0-9_-]*/
+    $name = lc $name;
+    $name =~ s/[^a-z0-9_-]/-/g;
     print $file ".$class_for_map.$name { background-position: -$_->{h_offset}px 0px; }\n";
   }
 }