X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fam.pl;h=80f05084be3ee47923acc7892b19d768e5ba2cab;hb=db68b6fd72b9f0d7d8be953746c0e7d6154f5eaf;hp=7084aa388b7c52c0f181b9546efc3ec768f8d0d3;hpb=f16abae9524dc7ffd6c40bc37784791883e29739;p=kivitendo-erp.git diff --git a/bin/mozilla/am.pl b/bin/mozilla/am.pl index 7084aa388..80f05084b 100644 --- a/bin/mozilla/am.pl +++ b/bin/mozilla/am.pl @@ -40,6 +40,8 @@ use Data::Dumper; 1; + + require "$form->{path}/common.pl"; # end of main @@ -175,10 +177,14 @@ sub account_header { 76 => $locale->text('UStVA-Nr. 76'), 77 => $locale->text('UStVA-Nr. 77'), 80 => $locale->text('UStVA-Nr. 80'), + 81 => $locale->text('UStVA-Nr. 81 left'), + 811 => $locale->text('UStVA-Nr. 81 right'), 84 => $locale->text('UStVA-Nr. 84'), 85 => $locale->text('UStVA-Nr. 85'), 86 => $locale->text('UStVA-Nr. 86 left'), 861 => $locale->text('UStVA-Nr. 86 right'), + 89 => $locale->text('UStVA-Nr. 89 left'), + 891 => $locale->text('UStVA-Nr. 89 right'), 91 => $locale->text('UStVA-Nr. 91'), 93 => $locale->text('UStVA-Nr. 93 left'), 931 => $locale->text('UStVA-Nr. 93 right'), @@ -528,36 +534,7 @@ sub list_account { $callback = "$form->{script}?action=list_account&path=$form->{path}&login=$form->{login}&password=$form->{password}"; - @column_index = qw(accno gifi_accno description debit credit link); - - $column_header{accno} = qq|| . $locale->text('Account') . qq||; - $column_header{gifi_accno} = - qq|| . $locale->text('GIFI') . qq||; - $column_header{description} = - qq|| . $locale->text('Description') . qq||; - $column_header{debit} = qq|| . $locale->text('Debit') . qq||; - $column_header{credit} = qq|| . $locale->text('Credit') . qq||; - $column_header{link} = qq|| . $locale->text('Link') . qq||; - $form->header; - $colspan = $#column_index + 1; - - print qq| - - - - - - - - -|; - - map { print "$column_header{$_}\n" } @column_index; - - print qq| - -|; # escape callback $callback = $form->escape($callback); @@ -576,50 +553,66 @@ sub list_account { $form->format_amount(\%myconfig, -$ca->{amount}, 2, " "); } - $ca->{link} =~ s/:/
/og; - - if ($ca->{charttype} eq "H") { - print qq||; - - $column_data{accno} = - qq||; - $column_data{gifi_accno} = - qq||; - $column_data{description} = qq||; - $column_data{debit} = qq||; - $column_data{credit} = qq| |; - $column_data{link} = qq||; - - } else { - $i++; - $i %= 2; - print qq| -|; - $column_data{accno} = - qq||; - $column_data{gifi_accno} = - qq||; - $column_data{description} = qq||; - $column_data{debit} = qq||; - $column_data{credit} = qq||; - $column_data{link} = qq||; - + my @links = split( q{:}, $ca->{link}); + + $ca->{link} = q{}; + + foreach my $link (@links){ + $link = ( $link eq 'AR') ? $locale->text('Account Link AR') + : ( $link eq 'AP') ? $locale->text('Account Link AP') + : ( $link eq 'IC') ? $locale->text('Account Link IC') + : ( $link eq 'AR_amount' ) ? $locale->text('Account Link AR_amount') + : ( $link eq 'AR_paid' ) ? $locale->text('Account Link AR_paid') + : ( $link eq 'AR_tax' ) ? $locale->text('Account Link AR_tax') + : ( $link eq 'AP_amount' ) ? $locale->text('Account Link AP_amount') + : ( $link eq 'AP_paid' ) ? $locale->text('Account Link AP_paid') + : ( $link eq 'AP_tax' ) ? $locale->text('Account Link AP_tax') + : ( $link eq 'IC_sale' ) ? $locale->text('Account Link IC_sale') + : ( $link eq 'IC_cogs' ) ? $locale->text('Account Link IC_cogs') + : ( $link eq 'IC_taxpart' ) ? $locale->text('Account Link IC_taxpart') + : ( $link eq 'IC_income' ) ? $locale->text('Account Link IC_income') + : ( $link eq 'IC_expense' ) ? $locale->text('Account Link IC_expense') + : ( $link eq 'IC_taxservice' ) ? $locale->text('Account Link IC_taxservice') + : ( $link eq 'CT_tax' ) ? $locale->text('Account Link CT_tax') + : $locale->text('Unknown Link') . ': ' . $link; + + $ca->{link} .= qq|[| . $link . qq|] |; } - - map { print "$column_data{$_}\n" } @column_index; - - print "\n"; + + $ca->{startdate} =~ s/,/
/og; + $ca->{tk_ustva} =~ s/,/
/og; + $ca->{taxkey} =~ s/,/
/og; + $ca->{taxaccount} =~ s/,/
/og; + $ca->{taxdescription} =~ s/,/
/og; + $ca->{datevautomatik} = ($ca->{datevautomatik}) ? $locale->text('On'):q{}; + + $ca->{category} = ($ca->{category} eq 'A') ? $locale->text('Account Category A') + : ($ca->{category} eq 'E') ? $locale->text('Account Category E') + : ($ca->{category} eq 'L') ? $locale->text('Account Category L') + : ($ca->{category} eq 'I') ? $locale->text('Account Category I') + : ($ca->{category} eq 'Q') ? $locale->text('Account Category Q') + : ($ca->{category} eq 'C') ? $locale->text('Account Category C') + : ($ca->{category} eq 'G') ? $locale->text('Account Category G') + : $locale->text('Unknown Category') . ': ' . $ca->{category}; + + $ca->{link_edit_account} = + qq|$form->{script}?action=edit_account&id=$ca->{id}| + .qq|&path=$form->{path}&login=$form->{login}| + .qq|&password=$form->{password}&callback=$callback|; } - - print qq| - -
$form->{title}
{script}?action=edit_account&id=$ca->{id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ca->{accno}{script}?action=edit_gifi&accno=$ca->{gifi_accno}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ca->{gifi_accno} $ca->{description}    
{script}?action=edit_account&id=$ca->{id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ca->{accno}{script}?action=edit_gifi&accno=$ca->{gifi_accno}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ca->{gifi_accno} $ca->{description} $ca->{debit}$ca->{credit}$ca->{link} 

- - - -|; - + + my $parameters_ref = { + + + # hidden_variables => $_hidden_variables_ref, + }; + + # Ausgabe des Templates + print($form->parse_html_template('am/list_accounts', $parameters_ref)); + $lxdebug->leave_sub(); + + } sub delete_account { @@ -642,231 +635,6 @@ sub delete_account { $lxdebug->leave_sub(); } -sub list_gifi { - $lxdebug->enter_sub(); - - @{ $form->{fields} } = (accno, description); - $form->{table} = "gifi"; - $form->{sortorder} = "accno"; - - AM->gifi_accounts(\%myconfig, \%$form); - - $form->{title} = $locale->text('GIFI'); - - # construct callback - $callback = - "$form->{script}?action=list_gifi&path=$form->{path}&login=$form->{login}&password=$form->{password}"; - - @column_index = qw(accno description); - - $column_header{accno} = qq|| . $locale->text('GIFI') . qq||; - $column_header{description} = - qq|| . $locale->text('Description') . qq||; - - $form->header; - $colspan = $#column_index + 1; - - print qq| - - - - - - - - -|; - - map { print "$column_header{$_}\n" } @column_index; - - print qq| - -|; - - # escape callback - $callback = $form->escape($callback); - - foreach $ca (@{ $form->{ALL} }) { - - $i++; - $i %= 2; - - print qq| -|; - - $column_data{accno} = - qq||; - $column_data{description} = qq||; - - map { print "$column_data{$_}\n" } @column_index; - - print "\n"; - } - - print qq| - - - -
$form->{title}
{script}?action=edit_gifi&coa=1&accno=$ca->{accno}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ca->{accno}$ca->{description} 

- - - -|; - - $lxdebug->leave_sub(); -} - -sub add_gifi { - $lxdebug->enter_sub(); - - $form->{title} = "Add"; - - # construct callback - $form->{callback} = - "$form->{script}?action=list_gifi&path=$form->{path}&login=$form->{login}&password=$form->{password}"; - - $form->{coa} = 1; - - &gifi_header; - &gifi_footer; - - $lxdebug->leave_sub(); -} - -sub edit_gifi { - $lxdebug->enter_sub(); - - $form->{title} = "Edit"; - - AM->get_gifi(\%myconfig, \%$form); - - &gifi_header; - &gifi_footer; - - $lxdebug->leave_sub(); -} - -sub gifi_header { - $lxdebug->enter_sub(); - - $form->{title} = $locale->text("$form->{title} GIFI"); - - # $locale->text('Add GIFI') - # $locale->text('Edit GIFI') - - $form->{description} =~ s/\"/"/g; - - $form->header; - - print qq| - - -
{script}> - -{accno}> - - - - - - - - - - - - - -
$form->{title}
- - - - - - - - - -
| . $locale->text('GIFI') . qq|{accno}>
| . $locale->text('Description') . qq|
-

-|; - - $lxdebug->leave_sub(); -} - -sub gifi_footer { - $lxdebug->enter_sub(); - - print qq| - - - -{path}> -{login}> -{password}> - -
|; - - if ($form->{coa}) { - print qq| - -|; - - if ($form->{accno} && $form->{orphaned}) { - print qq||; - } - } - - print qq| -
- - - -|; - - $lxdebug->leave_sub(); -} - -sub save_gifi { - $lxdebug->enter_sub(); - - $form->isblank("accno", $locale->text('GIFI missing!')); - AM->save_gifi(\%myconfig, \%$form); - $form->redirect($locale->text('GIFI saved!')); - - $lxdebug->leave_sub(); -} - -sub copy_to_coa { - $lxdebug->enter_sub(); - - $form->isblank("accno", $locale->text('GIFI missing!')); - - AM->save_gifi(\%myconfig, \%$form); - - delete $form->{id}; - $form->{gifi_accno} = $form->{accno}; - $form->{title} = "Add"; - $form->{charttype} = "A"; - - &account_header; - &form_footer; - - $lxdebug->leave_sub(); -} - -sub delete_gifi { - $lxdebug->enter_sub(); - - AM->delete_gifi(\%myconfig, \%$form); - $form->redirect($locale->text('GIFI deleted!')); - - $lxdebug->leave_sub(); -} - sub add_department { $lxdebug->enter_sub(); @@ -1342,7 +1110,7 @@ sub list_business { |; $discount = - $form->format_amount(\%myconfig, $ref->{discount} * 100, 1, " "); + $form->format_amount(\%myconfig, $ref->{discount} * 100); $description = ($ref->{salesman}) ? "$ref->{description}" @@ -1448,6 +1216,7 @@ sub save_business { $lxdebug->enter_sub(); $form->isblank("description", $locale->text('Description missing!')); + $form->{discount} = $form->parse_amount(\%myconfig, $form->{discount}) / 100; AM->save_business(\%myconfig, \%$form); $form->redirect($locale->text('Business saved!')); @@ -1782,14 +1551,26 @@ sub list_buchungsgruppe { $form->{title} = $locale->text('Buchungsgruppen'); - @column_index = qw(description inventory_accno income_accno_0 expense_accno_0 income_accno_1 expense_accno_1 income_accno_2 expense_accno_2 income_accno_3 expense_accno_3 ); + @column_index = qw(up down description inventory_accno + income_accno_0 expense_accno_0 + income_accno_1 expense_accno_1 + income_accno_2 expense_accno_2 + income_accno_3 expense_accno_3 ); + $column_header{up} = + qq|| + . qq|| . $locale->text(| + . qq||; + $column_header{down} = + qq|| + . qq|| . $locale->text(| + . qq||; $column_header{description} = - qq|| + qq|| . $locale->text('Description') . qq||; $column_header{inventory_accno} = - qq|| + qq|| . $locale->text('Bestandskonto') . qq||; $column_header{income_accno_0} = @@ -1846,6 +1627,11 @@ sub list_buchungsgruppe { |; + my $swap_link = qq|$form->{script}?action=swap_buchungsgruppen&|; + map({ $swap_link .= $_ . "=" . $form->escape($form->{$_}) . "&" } + qw(login password path)); + + my $row = 0; foreach $ref (@{ $form->{ALL} }) { $i++; @@ -1855,6 +1641,27 @@ sub list_buchungsgruppe { |; + if ($row) { + my $pref = $form->{ALL}->[$row - 1]; + $column_data{up} = + qq|| . + qq|| . + qq|| . $locale->text(| . + qq||; + } else { + $column_data{up} = qq| |; + } + + if ($row == (scalar(@{ $form->{ALL} }) - 1)) { + $column_data{down} = qq| |; + } else { + my $nref = $form->{ALL}->[$row + 1]; + $column_data{down} = + qq|| . + qq|| . + qq|| . $locale->text(| . + qq||; + } $column_data{description} = qq|{script}?action=edit_buchungsgruppe&id=$ref->{id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{description}|; @@ -1877,6 +1684,8 @@ sub list_buchungsgruppe { print qq| |; + + $row++; } print qq| @@ -2071,6 +1880,15 @@ sub delete_buchungsgruppe { $lxdebug->leave_sub(); } +sub swap_buchungsgruppen { + $lxdebug->enter_sub(); + + AM->swap_sortkeys(\%myconfig, $form, "buchungsgruppen"); + list_buchungsgruppe(); + + $lxdebug->leave_sub(); +} + sub add_printer { $lxdebug->enter_sub(); @@ -2274,7 +2092,6 @@ sub delete_printer { $lxdebug->leave_sub(); } - sub add_payment { $lxdebug->enter_sub(); @@ -2287,6 +2104,10 @@ sub add_payment { $form->{terms_netto} = 0; $form->{terms_skonto} = 0; $form->{percent_skonto} = 0; + my @languages = AM->language(\%myconfig, $form, 1); + map({ $_->{"language"} = $_->{"description"}; + $_->{"language_id"} = $_->{"id"}; } @languages); + $form->{"TRANSLATION"} = \@languages; &payment_header; &form_footer; @@ -2298,7 +2119,9 @@ sub edit_payment { $form->{title} = "Edit"; - AM->get_payment(\%myconfig, \%$form); + AM->get_payment(\%myconfig, $form); + $form->{percent_skonto} = + $form->format_amount(\%myconfig, $form->{percent_skonto} * 100); &payment_header; @@ -2313,15 +2136,23 @@ sub list_payment { AM->payment(\%myconfig, \%$form); - $form->{callback} = - "$form->{script}?action=list_payment&path=$form->{path}&login=$form->{login}&password=$form->{password}"; + $form->{callback} = build_std_url("action=list_payment"); $callback = $form->escape($form->{callback}); $form->{title} = $locale->text('Payment Terms'); - @column_index = qw(description description_long terms_netto terms_skonto percent_skonto); + @column_index = qw(up down description description_long terms_netto + terms_skonto percent_skonto); + $column_header{up} = + qq|| + . qq|| . $locale->text(| + . qq||; + $column_header{down} = + qq|| + . qq|| . $locale->text(| + . qq||; $column_header{description} = qq|| . $locale->text('Description') @@ -2365,6 +2196,9 @@ sub list_payment { |; + my $swap_link = build_std_url("action=swap_payment_terms"); + + my $row = 0; foreach $ref (@{ $form->{ALL} }) { $i++; @@ -2374,21 +2208,48 @@ sub list_payment { |; + if ($row) { + my $pref = $form->{ALL}->[$row - 1]; + $column_data{up} = + qq|| . + qq|| . + qq|| . $locale->text(| . + qq||; + } else { + $column_data{up} = qq| |; + } + + if ($row == (scalar(@{ $form->{ALL} }) - 1)) { + $column_data{down} = qq| |; + } else { + my $nref = $form->{ALL}->[$row + 1]; + $column_data{down} = + qq|| . + qq|| . + qq|| . $locale->text(| . + qq||; + } $column_data{description} = - qq|{script}?action=edit_payment&id=$ref->{id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{description}|; - $column_data{description_long} = qq|$ref->{description_long}|; + qq|{id}", "callback=$callback") . + qq|">| . H($ref->{description}) . qq||; + $column_data{description_long} = + qq|| . H($ref->{description_long}) . qq||; $column_data{terms_netto} = qq|$ref->{terms_netto}|; $column_data{terms_skonto} = qq|$ref->{terms_skonto}|; $column_data{percent_skonto} = - qq|$ref->{percent_skonto} %|; + qq|| . + $form->format_amount(\%myconfig, $ref->{percent_skonto} * 100) . + qq|%|; map { print "$column_data{$_}\n" } @column_index; print qq| |; + $row++; } print qq| @@ -2458,6 +2319,22 @@ sub payment_header { | . $locale->text('Long Description') . qq| +|; + + foreach my $language (@{ $form->{"TRANSLATION"} }) { + print qq| + + | . + sprintf($locale->text('Translation (%s)'), + $language->{"language"}) + . qq| + + +|; + } + + print qq| | . $locale->text('Netto Terms') . qq| @@ -2473,7 +2350,38 @@ sub payment_header {
-|; + +

| . $locale->text("You can use the following strings in the long " . + "description and all translations. They will be " . + "replaced by their actual values by Lx-Office " . + "before they're output.") +. qq|

+ +|; $lxdebug->leave_sub(); } @@ -2481,7 +2389,9 @@ sub payment_header { sub save_payment { $lxdebug->enter_sub(); - $form->isblank("description", $locale->text('Language missing!')); + $form->isblank("description", $locale->text('Description missing!')); + $form->{"percent_skonto"} = + $form->parse_amount(\%myconfig, $form->{percent_skonto}) / 100; AM->save_payment(\%myconfig, \%$form); $form->redirect($locale->text('Payment Terms saved!')); @@ -2497,217 +2407,23 @@ sub delete_payment { $lxdebug->leave_sub(); } -sub add_sic { +sub swap_payment_terms { $lxdebug->enter_sub(); - $form->{title} = "Add"; - - $form->{callback} = - "$form->{script}?action=add_sic&path=$form->{path}&login=$form->{login}&password=$form->{password}" - unless $form->{callback}; - - &sic_header; - &form_footer; + AM->swap_sortkeys(\%myconfig, $form, "payment_terms"); + list_payment(); $lxdebug->leave_sub(); } -sub edit_sic { +sub display_stylesheet { $lxdebug->enter_sub(); - $form->{title} = "Edit"; - - AM->get_sic(\%myconfig, \%$form); + $form->{file} = "css/$myconfig{stylesheet}"; + &display_form; - &sic_header; - - $form->{orphaned} = 1; - &form_footer; - - $lxdebug->leave_sub(); -} - -sub list_sic { - $lxdebug->enter_sub(); - - AM->sic(\%myconfig, \%$form); - - $form->{callback} = - "$form->{script}?action=list_sic&path=$form->{path}&login=$form->{login}&password=$form->{password}"; - - $callback = $form->escape($form->{callback}); - - $form->{title} = $locale->text('Standard Industrial Codes'); - - @column_index = qw(code description); - - $column_header{code} = - qq|| . $locale->text('Code') . qq||; - $column_header{description} = - qq|| . $locale->text('Description') . qq||; - - $form->header; - - print qq| - - - - - - - - - - - - - -
$form->{title}
- - -|; - - map { print "$column_header{$_}\n" } @column_index; - - print qq| - -|; - - foreach $ref (@{ $form->{ALL} }) { - - $i++; - $i %= 2; - - if ($ref->{sictype} eq 'H') { - print qq| - -|; - $column_data{code} = - qq||; - $column_data{description} = qq||; - - } else { - print qq| - -|; - - $column_data{code} = - qq||; - $column_data{description} = qq||; - - } - - map { print "$column_data{$_}\n" } @column_index; - - print qq| - -|; - } - - print qq| -
{script}?action=edit_sic&code=$ref->{code}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{code}$ref->{description}
{script}?action=edit_sic&code=$ref->{code}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{code}$ref->{description}
-

- -
-
{script}> - - - - - -{path}> -{login}> -{password}> - - - -
- - - -|; - - $lxdebug->leave_sub(); -} - -sub sic_header { - $lxdebug->enter_sub(); - - $form->{title} = $locale->text("$form->{title} SIC"); - - # $locale->text('Add SIC') - # $locale->text('Edit SIC') - - $form->{code} =~ s/\"/"/g; - $form->{description} =~ s/\"/"/g; - - $checked = ($form->{sictype} eq 'H') ? "checked" : ""; - - $form->header; - - print qq| - - -
{script}> - - -{code}> - - - - - - - - - - - - - - - - - - - - -
$form->{title}
| . $locale->text('Code') . qq|{code}>
| - . $locale->text('Heading') . qq|
| . $locale->text('Description') . qq|

-|; - - $lxdebug->leave_sub(); -} - -sub save_sic { - $lxdebug->enter_sub(); - - $form->isblank("code", $locale->text('Code missing!')); - $form->isblank("description", $locale->text('Description missing!')); - AM->save_sic(\%myconfig, \%$form); - $form->redirect($locale->text('SIC saved!')); - - $lxdebug->leave_sub(); -} - -sub delete_sic { - $lxdebug->enter_sub(); - - AM->delete_sic(\%myconfig, \%$form); - $form->redirect($locale->text('SIC deleted!')); - - $lxdebug->leave_sub(); -} - -sub display_stylesheet { - $lxdebug->enter_sub(); - - $form->{file} = "css/$myconfig{stylesheet}"; - &display_form; - - $lxdebug->leave_sub(); -} + $lxdebug->leave_sub(); +} sub display_form { $lxdebug->enter_sub(); @@ -2900,19 +2616,6 @@ sub config { } $countrycodes = "
- - - -|; - - $lxdebug->leave_sub(); -} - -sub warehouse_header { - $lxdebug->enter_sub(); - - $form->{title} = $locale->text("$form->{title} Warehouse"); - - # $locale->text('Add Warehouse') - # $locale->text('Edit Warehouse') - - $form->{description} =~ s/\"/"/g; - - if (($rows = $form->numtextrows($form->{description}, 60)) > 1) { - $description = - qq||; - } else { - $description = - qq||; - } - - $form->header; - - print qq| - - -
{script}> - -{id}> - - - - - - - - - - - - - - -
$form->{title}
| . $locale->text('Description') . qq|$description

-|; - - $lxdebug->leave_sub(); -} - -sub save_warehouse { - $lxdebug->enter_sub(); - - $form->isblank("description", $locale->text('Description missing!')); - AM->save_warehouse(\%myconfig, \%$form); - $form->redirect($locale->text('Warehouse saved!')); - - $lxdebug->leave_sub(); -} - -sub delete_warehouse { - $lxdebug->enter_sub(); - - AM->delete_warehouse(\%myconfig, \%$form); - $form->redirect($locale->text('Warehouse deleted!')); - - $lxdebug->leave_sub(); -} - sub continue { $lxdebug->enter_sub(); @@ -3538,15 +3036,11 @@ sub edit_units { @languages = AM->language(\%myconfig, $form, 1); - @unit_list = (); - foreach $name (sort({ lc($a) cmp lc($b) } grep({ !$units->{$_}->{"base_unit"} } keys(%{$units})))) { - map({ push(@unit_list, $units->{$_}); } - sort({ ($units->{$a}->{"resolved_factor"} * 1) <=> ($units->{$b}->{"resolved_factor"} * 1) } - grep({ $units->{$_}->{"resolved_base_unit"} eq $name } keys(%{$units})))); - } + @unit_list = sort({ $a->{"sortkey"} <=> $b->{"sortkey"} } values(%{$units})); + my $i = 1; foreach (@unit_list) { - $_->{"factor"} = $form->format_amount(\%myconfig, $_->{"factor"}, 5) if ($_->{"factor"}); + $_->{"factor"} = $form->format_amount(\%myconfig, $_->{"factor"} * 1) if ($_->{"factor"}); $_->{"UNITLANGUAGES"} = []; foreach my $lang (@languages) { push(@{ $_->{"UNITLANGUAGES"} }, @@ -3563,12 +3057,15 @@ sub edit_units { $units = AM->retrieve_units(\%myconfig, $form, $form->{"unit_type"}); $ddbox = AM->unit_select_data($units, undef, 1); + my $updownlink = build_std_url("action=swap_units", "unit_type"); + $form->{"title"} = sprintf($locale->text("Add and edit %s"), $form->{"unit_type"} eq "dimension" ? $locale->text("dimension units") : $locale->text("service units")); $form->header(); print($form->parse_html_template("am/edit_units", { "UNITS" => \@unit_list, "NEW_BASE_UNIT_DDBOX" => $ddbox, - "LANGUAGES" => \@languages })); + "LANGUAGES" => \@languages, + "updownlink" => $updownlink })); $lxdebug->leave_sub(); } @@ -3704,3 +3201,110 @@ sub save_unit { $lxdebug->leave_sub(); } + +sub show_history_search { + $lxdebug->enter_sub(); + + $form->{title} = $locale->text("History Search"); + $form->header(); + + print $form->parse_html_template("/common/search_history"); + + $lxdebug->leave_sub(); +} + +sub show_am_history { + $lxdebug->enter_sub(); + my %search = ( "Artikelnummer" => "parts", + "Kundennummer" => "customer", + "Lieferantennummer" => "vendor", + "Projektnummer" => "project", + "Buchungsnummer" => "oe", + "Eingangsrechnungnummer" => "ap", + "Ausgangsrechnungnummer" => "ar" + ); + my %searchNo = ( "Artikelnummer" => "partnumber", + "Kundennummer" => "customernumber", + "Lieferantennummer" => "vendornumber", + "Projektnummer" => "projectnummer", + "Buchungsnummer" => "ordnumber", + "Eingangsrechnungnummer" => "invnumber", + "Ausgangsrechnungnummer" => "invnumber" + ); + + my $restriction; + my $tempNo = 0; + foreach(split(/\,/, $form->{einschraenkungen})) { + if($tempNo == 0) { + $restriction .= " AND addition = '" . $_ . "'"; + $tempNo = 1; + } + else { + $restriction .= " OR addition = '" . $_ . "'"; + } + } + + $restriction .= (($form->{transdate} ne "" && $form->{reqdate} ne "") + ? qq| AND st.itime::date >= '| . $form->{transdate} . qq|' AND st.itime::date <= '| . $form->{reqdate} . qq|'| + : (($form->{transdate} ne "" && $form->{reqdate} eq "") + ? qq| AND st.itime::date >= '| . $form->{transdate} . qq|'| + : ($form->{transdate} eq "" && $form->{reqdate} ne "") + ? qq| AND st.itime::date <= '| . $form->{reqdate} . qq|'| + : "" + ) + ); + + my $dbh = $form->dbconnect(\%myconfig); + + $restriction .= ($form->{mitarbeiter} eq "" ? "" + : ($form->{mitarbeiter} =~ /^[0-9]*$/ + ? " AND employee_id = " . $form->{mitarbeiter} + : " AND employee_id = " . &get_employee_id($form->{mitarbeiter}, $dbh))); + + my $query = qq|SELECT id FROM $search{$form->{what2search}} + WHERE $searchNo{$form->{'what2search'}} ILIKE '$form->{"searchid"}' + |; + + my $sth = $dbh->prepare($query); + + $sth->execute() || $form->dberror($query); + + $form->{title} = $locale->text("History Search"); + $form->header(); + + while(my $hash_ref = $sth->fetchrow_hashref()){ + print $form->parse_html_template("/common/show_history", + {"DATEN" => $form->get_history($dbh,$hash_ref->{id},$restriction), + "SUCCESS" => ($form->get_history($dbh,$hash_ref->{id},$restriction) != 0), + "NONEWWINDOW" => "1" + } + ); + } + $dbh->disconnect(); + + $lxdebug->leave_sub(); +} + +sub get_employee_id { + $lxdebug->enter_sub(); + my $query = qq|SELECT id FROM employee WHERE name = '| . $_[0] . qq|'|; + my $sth = $_[1]->prepare($query); + $sth->execute() || $form->dberror($query); + my $return = $sth->fetch(); + $sth->finish(); + return ${$return}[0]; + $lxdebug->leave_sub(); +} + +sub swap_units { + $lxdebug->enter_sub(); + + my $dir = $form->{"dir"} eq "down" ? "down" : "up"; + my $unit_type = $form->{"unit_type"} eq "dimension" ? + "dimension" : "service"; + AM->swap_units(\%myconfig, $form, $dir, $form->{"name"}, $unit_type); + + edit_units(); + + $lxdebug->leave_sub(); +} \ No newline at end of file