X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=inline;f=bin%2Fmozilla%2Fam.pl;h=ee2b0e6486526a2d9ae137b180d8af58c573fc6c;hb=eb8d3de878876804b0465ec7cde9adfff436a5a0;hp=95bea4dcdc826c5910f47f56e29c59178c65f416;hpb=d38be021dde6dae352b0d755d9574dfe2de9898d;p=kivitendo-erp.git diff --git a/bin/mozilla/am.pl b/bin/mozilla/am.pl index 95bea4dcd..ee2b0e648 100644 --- a/bin/mozilla/am.pl +++ b/bin/mozilla/am.pl @@ -31,12 +31,14 @@ # #====================================================================== +use SL::Auth; use SL::AM; use SL::CA; use SL::Form; use SL::User; use SL::USTVA; use SL::Iconv; +use SL::TODO; use CGI::Ajax; use CGI; @@ -57,13 +59,13 @@ sub continue { call_sub($form->{"nextsub"}); } sub add_account { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = "Add"; $form->{charttype} = "A"; AM->get_account(\%myconfig, \%$form); - $form->{callback} = - "$form->{script}?action=list_account&login=$form->{login}&password=$form->{password}" - unless $form->{callback}; + $form->{callback} = "am.pl?action=list_account" unless $form->{callback}; &account_header; &form_footer; @@ -74,6 +76,8 @@ sub add_account { sub edit_account { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = "Edit"; AM->get_account(\%myconfig, \%$form); @@ -90,6 +94,8 @@ sub edit_account { sub account_header { $lxdebug->enter_sub(); + $auth->assert('config'); + if ( $form->{action} eq 'edit_account') { $form->{account_exists} = '1'; } @@ -161,7 +167,7 @@ sub account_header { if ($item eq ''){ $form->{ACCOUNT_TAXKEYS}[$i]{select_tax} .= qq|-\n|; } - elsif ( $item == $taxkey_used->{pos_ustva} ) { + elsif ( $item eq $taxkey_used->{pos_ustva} ) { $form->{ACCOUNT_TAXKEYS}[$i]{select_tax} .= qq|$item\n|; } else { @@ -348,12 +354,11 @@ sub account_header { sub form_footer { $lxdebug->enter_sub(); - print qq| + $auth->assert('config'); - + print qq| -{login}> -{password}> + |; if ((!$form->{id}) || ($form->{id} && $form->{orphaned}) || (($form->{type} eq "account") && (!$form->{new_chart_valid}))) { @@ -381,6 +386,8 @@ sub form_footer { sub save_account { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->isblank("accno", $locale->text('Account Number missing!')); $form->isblank("description", $locale->text('Account Description missing!')); @@ -398,55 +405,40 @@ sub save_account { sub list_account { $lxdebug->enter_sub(); - CA->all_accounts(\%myconfig, \%$form); - - $form->{title} = $locale->text('Chart of Accounts'); - - # construct callback - $callback = - "$form->{script}?action=list_account&login=$form->{login}&password=$form->{password}"; + $auth->assert('config'); + $form->{callback} = build_std_url('action=list_account'); + my $link_edit_account = build_std_url('action=edit_account', 'callback'); - - # escape callback - $callback = $form->escape($callback); + CA->all_accounts(\%myconfig, \%$form); foreach $ca (@{ $form->{CA} }) { - $ca->{debit} = " "; - $ca->{credit} = " "; + $ca->{debit} = ""; + $ca->{credit} = ""; if ($ca->{amount} > 0) { - $ca->{credit} = - $form->format_amount(\%myconfig, $ca->{amount}, 2, " "); + $ca->{credit} = $form->format_amount(\%myconfig, $ca->{amount}, 2); } if ($ca->{amount} < 0) { - $ca->{debit} = - $form->format_amount(\%myconfig, -1 * $ca->{amount}, 2, " "); + $ca->{debit} = $form->format_amount(\%myconfig, -1 * $ca->{amount}, 2); } $ca->{heading} = ( $ca->{charttype} eq 'H' ) ? 1:''; - $ca->{link_edit_account} = - qq|$form->{script}?action=edit_account&id=$ca->{id}| - .qq|&login=$form->{login}| - .qq|&password=$form->{password}&callback=$callback|; + $ca->{link_edit_account} = $link_edit_account . '&id=' . E($ca->{id}); } # Ajax - my $list_account_details_url = - "$form->{script}?login=$form->{login}" - ."&password=$form->{password}&action=list_account_details&"; - - - my $pjx = new CGI::Ajax( - 'list_account_details' => $list_account_details_url - ); + my $pjx = new CGI::Ajax('list_account_details' => build_std_url('action=list_account_details')); # Eneable AJAX debuging #$pjx->DEBUG(1); #$pjx->JSDEBUG(1); push(@ { $form->{AJAX} }, $pjx); - + + $form->{stylesheets} = "list_accounts.css"; + $form->{title} = $locale->text('Chart of Accounts'); + $form->header; @@ -463,23 +455,14 @@ sub list_account { sub list_account_details { -# Ajax Funktion aus list_account_details +# Ajax Funktion aus list_account_details $lxdebug->enter_sub(); - my $chart_id = $form->{args}; - - CA->all_accounts(\%myconfig, \%$form, $chart_id); - - $form->{title} = $locale->text('Chart of Accounts'); - - # construct callback - $callback = - "$form->{script}?action=list_account&login=$form->{login}&password=$form->{password}"; + $auth->assert('config'); - $form->header; + my $chart_id = $form->{args}; - # escape callback - $callback = $form->escape($callback); + CA->all_accounts(\%myconfig, \%$form, $chart_id); foreach $ca (@{ $form->{CA} }) { @@ -496,11 +479,11 @@ sub list_account_details { } my @links = split( q{:}, $ca->{link}); - + $ca->{link} = q{}; - + foreach my $link (@links){ - $link = ( $link eq 'AR') ? $locale->text('Account Link AR') + $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') @@ -517,16 +500,8 @@ sub list_account_details { : ( $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} .= ($link ne '') ? "[$link] ":''; } - - $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'):$locale->text('Off'); $ca->{category} = ($ca->{category} eq 'A') ? $locale->text('Account Category A') : ($ca->{category} eq 'E') ? $locale->text('Account Category E') @@ -536,29 +511,13 @@ sub list_account_details { : ($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|&login=$form->{login}| - .qq|&password=$form->{password}&callback=$callback|; } + $form->{title} = $locale->text('Chart of Accounts'); + $form->header(); + print $form->parse_html_template('am/list_account_details'); - - my $parameters_ref = { - - - # hidden_variables => $_hidden_variables_ref, - }; - - # Ausgabe des Templates - #my $q = CGI->new(); - my $result = $form->parse_html_template('am/list_account_details', $parameters_ref); - - print $result; -# print "chart_id:$chart_id, form->chartid:$form->{chart_id}, rest=$rest"; - $lxdebug->leave_sub(); } @@ -566,6 +525,8 @@ sub list_account_details { sub delete_account { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = $locale->text('Delete Account'); foreach $id ( @@ -586,12 +547,12 @@ sub delete_account { sub add_department { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = "Add"; $form->{role} = "P"; - $form->{callback} = - "$form->{script}?action=add_department&login=$form->{login}&password=$form->{password}" - unless $form->{callback}; + $form->{callback} = "am.pl?action=add_department" unless $form->{callback}; &department_header; &form_footer; @@ -602,6 +563,8 @@ sub add_department { sub edit_department { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = "Edit"; AM->get_department(\%myconfig, \%$form); @@ -615,10 +578,11 @@ sub edit_department { sub list_department { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->departments(\%myconfig, \%$form); - $form->{callback} = - "$form->{script}?action=list_department&login=$form->{login}&password=$form->{password}"; + $form->{callback} = "am.pl?action=list_department"; $callback = $form->escape($form->{callback}); @@ -674,7 +638,7 @@ sub list_department { $profitcenter = ($ref->{role} eq "P") ? "X" : ""; $column_data{description} = - qq|{script}?action=edit_department&id=$ref->{id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{description}|; + qq|$ref->{description}|; $column_data{cost} = qq|$costcenter|; $column_data{profit} = qq|$profitcenter|; @@ -695,15 +659,12 @@ sub list_department { -{script}> + -{login}> -{password}> - @@ -719,6 +680,8 @@ sub list_department { sub department_header { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = $locale->text("$form->{title} Department"); # $locale->text('Add Department') @@ -742,7 +705,7 @@ sub department_header { print qq| -{script}> + {id}> @@ -775,6 +738,8 @@ sub department_header { sub save_department { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->isblank("description", $locale->text('Description missing!')); AM->save_department(\%myconfig, \%$form); $form->redirect($locale->text('Department saved!')); @@ -785,6 +750,8 @@ sub save_department { sub delete_department { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->delete_department(\%myconfig, \%$form); $form->redirect($locale->text('Department deleted!')); @@ -794,11 +761,11 @@ sub delete_department { sub add_lead { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = "Add"; - $form->{callback} = - "$form->{script}?action=add_lead&login=$form->{login}&password=$form->{password}" - unless $form->{callback}; + $form->{callback} = "am.pl?action=add_lead" unless $form->{callback}; &lead_header; &form_footer; @@ -809,6 +776,8 @@ sub add_lead { sub edit_lead { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = "Edit"; AM->get_lead(\%myconfig, \%$form); @@ -824,10 +793,11 @@ sub edit_lead { sub list_lead { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->lead(\%myconfig, \%$form); - $form->{callback} = - "$form->{script}?action=list_lead&login=$form->{login}&password=$form->{password}"; + $form->{callback} = "am.pl?action=list_lead"; $callback = $form->escape($form->{callback}); @@ -870,8 +840,7 @@ sub list_lead { $lead = $ref->{lead}; - $column_data{description} = - qq|{script}?action=edit_lead&id=$ref->{id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{lead}|; + $column_data{description} = qq|$ref->{lead}|; map { print "$column_data{$_}\n" } @column_index; @@ -887,15 +856,12 @@ sub list_lead { -{script}> + -{login}> -{password}> - @@ -911,6 +877,8 @@ sub list_lead { sub lead_header { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = $locale->text("$form->{title} Lead"); # $locale->text('Add Lead') @@ -926,7 +894,7 @@ sub lead_header { print qq| -{script}> + {id}> @@ -951,6 +919,8 @@ sub lead_header { sub save_lead { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->isblank("description", $locale->text('Description missing!')); AM->save_lead(\%myconfig, \%$form); $form->redirect($locale->text('lead saved!')); @@ -961,6 +931,8 @@ sub save_lead { sub delete_lead { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->delete_lead(\%myconfig, \%$form); $form->redirect($locale->text('lead deleted!')); @@ -970,11 +942,11 @@ sub delete_lead { sub add_business { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = "Add"; - $form->{callback} = - "$form->{script}?action=add_business&login=$form->{login}&password=$form->{password}" - unless $form->{callback}; + $form->{callback} = "am.pl?action=add_business" unless $form->{callback}; &business_header; &form_footer; @@ -1000,10 +972,11 @@ sub edit_business { sub list_business { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->business(\%myconfig, \%$form); - $form->{callback} = - "$form->{script}?action=list_business&login=$form->{login}&password=$form->{password}"; + $form->{callback} = "am.pl?action=list_business"; $callback = $form->escape($form->{callback}); @@ -1059,8 +1032,7 @@ sub list_business { $form->format_amount(\%myconfig, $ref->{discount} * 100); $description = $ref->{description}; - $column_data{description} = - qq|{script}?action=edit_business&id=$ref->{id}&login=$form->{login}&password=$form->{password}&callback=$callback>$description|; + $column_data{description} = qq|$description|; $column_data{discount} = qq|$discount|; $column_data{customernumberinit} = qq|$ref->{customernumberinit}|; @@ -1082,15 +1054,12 @@ sub list_business { -{script}> + -{login}> -{password}> - @@ -1106,6 +1075,8 @@ sub list_business { sub business_header { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = $locale->text("$form->{title} Business"); # $locale->text('Add Business') @@ -1120,7 +1091,7 @@ sub business_header { print qq| -{script}> + {id}> @@ -1153,6 +1124,8 @@ sub business_header { sub save_business { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->isblank("description", $locale->text('Description missing!')); $form->{discount} = $form->parse_amount(\%myconfig, $form->{discount}) / 100; AM->save_business(\%myconfig, \%$form); @@ -1164,6 +1137,8 @@ sub save_business { sub delete_business { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->delete_business(\%myconfig, \%$form); $form->redirect($locale->text('Business deleted!')); @@ -1173,11 +1148,11 @@ sub delete_business { sub add_language { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = "Add"; - $form->{callback} = - "$form->{script}?action=add_language&login=$form->{login}&password=$form->{password}" - unless $form->{callback}; + $form->{callback} = "am.pl?action=add_language" unless $form->{callback}; &language_header; &form_footer; @@ -1188,6 +1163,8 @@ sub add_language { sub edit_language { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = "Edit"; AM->get_language(\%myconfig, \%$form); @@ -1203,10 +1180,11 @@ sub edit_language { sub list_language { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->language(\%myconfig, \%$form); - $form->{callback} = - "$form->{script}?action=list_language&login=$form->{login}&password=$form->{password}"; + $form->{callback} = "am.pl?action=list_language"; $callback = $form->escape($form->{callback}); @@ -1272,7 +1250,7 @@ sub list_language { $column_data{description} = - qq|{script}?action=edit_language&id=$ref->{id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{description}|; + qq|$ref->{description}|; $column_data{template_code} = qq|$ref->{template_code}|; $column_data{article_code} = qq|$ref->{article_code}|; @@ -1308,15 +1286,12 @@ sub list_language { -{script}> + -{login}> -{password}> - @@ -1332,6 +1307,8 @@ sub list_language { sub language_header { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = $locale->text("$form->{title} Language"); # $locale->text('Add Language') @@ -1369,7 +1346,7 @@ sub language_header { print qq| -{script}> + {id}> @@ -1420,6 +1397,8 @@ sub language_header { sub save_language { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->isblank("description", $locale->text('Language missing!')); $form->isblank("template_code", $locale->text('Template Code missing!')); $form->isblank("article_code", $locale->text('Article Code missing!')); @@ -1432,6 +1411,8 @@ sub save_language { sub delete_language { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->delete_language(\%myconfig, \%$form); $form->redirect($locale->text('Language deleted!')); @@ -1442,13 +1423,14 @@ sub delete_language { sub add_buchungsgruppe { $lxdebug->enter_sub(); + $auth->assert('config'); + # $locale->text("Add Buchungsgruppe") # $locale->text("Edit Buchungsgruppe") $form->{title} = "Add"; - $form->{callback} = - "$form->{script}?action=add_buchungsgruppe&login=$form->{login}&password=$form->{password}" - unless $form->{callback}; + $form->{callback} = "am.pl?action=add_buchungsgruppe" unless $form->{callback}; + AM->get_buchungsgruppe(\%myconfig, \%$form); $form->{"inventory_accno_id"} = $form->{"std_inventory_accno_id"}; for (my $i = 0; 4 > $i; $i++) { @@ -1465,6 +1447,8 @@ sub add_buchungsgruppe { sub edit_buchungsgruppe { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = "Edit"; AM->get_buchungsgruppe(\%myconfig, \%$form); @@ -1479,10 +1463,11 @@ sub edit_buchungsgruppe { sub list_buchungsgruppe { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->buchungsgruppe(\%myconfig, \%$form); - $form->{callback} = - "$form->{script}?action=list_buchungsgruppe&login=$form->{login}&password=$form->{password}"; + $form->{callback} = "am.pl?action=list_buchungsgruppe"; $callback = $form->escape($form->{callback}); @@ -1564,9 +1549,7 @@ sub list_buchungsgruppe { |; - my $swap_link = qq|$form->{script}?action=swap_buchungsgruppen&|; - map({ $swap_link .= $_ . "=" . $form->escape($form->{$_}) . "&" } - qw(login password)); + my $swap_link = qq|am.pl?action=swap_buchungsgruppen&|; my $row = 0; foreach $ref (@{ $form->{ALL} }) { @@ -1600,8 +1583,7 @@ sub list_buchungsgruppe { qq||; } - $column_data{description} = - qq|{script}?action=edit_buchungsgruppe&id=$ref->{id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{description}|; + $column_data{description} = qq|$ref->{description}|; $column_data{inventory_accno} = qq|$ref->{inventory_accno}|; $column_data{income_accno_0} = qq|$ref->{income_accno_0}|; @@ -1635,15 +1617,12 @@ sub list_buchungsgruppe { -{script}> + -{login}> -{password}> - @@ -1659,6 +1638,8 @@ sub list_buchungsgruppe { sub buchungsgruppe_header { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = $locale->text("$form->{title} Buchungsgruppe"); # $locale->text('Add Accounting Group') @@ -1690,11 +1671,11 @@ sub buchungsgruppe_header { if ($form->{id}) { $form->{selectIC} =~ s/selected//g; - $form->{selectIC} =~ s/ value=$form->{inventory_accno_id}/ value=$form->{inventory_accno_id} selected/; + $form->{selectIC} =~ s/ value=\Q$form->{inventory_accno_id}\E/ value=$form->{inventory_accno_id} selected/; $form->{selectIC_income} =~ s/selected//g; - $form->{selectIC_income} =~ s/ value=$form->{income_accno_id_0}/ value=$form->{income_accno_id_0} selected/; + $form->{selectIC_income} =~ s/ value=\Q$form->{income_accno_id_0}\E/ value=$form->{income_accno_id_0} selected/; $form->{selectIC_expense} =~ s/selected//g; - $form->{selectIC_expense} =~ s/ value=$form->{expense_accno_id_0}/ value=$form->{expense_accno_id_0} selected/; + $form->{selectIC_expense} =~ s/ value=\Q$form->{expense_accno_id_0}\E/ value=$form->{expense_accno_id_0} selected/; } if (!$eur) { @@ -1721,9 +1702,9 @@ sub buchungsgruppe_header { |; if ($form->{id}) { $form->{selectIC_income} =~ s/selected//g; - $form->{selectIC_income} =~ s/ value=$form->{income_accno_id_1}/ value=$form->{income_accno_id_1} selected/; + $form->{selectIC_income} =~ s/ value=\Q$form->{income_accno_id_1}\E/ value=$form->{income_accno_id_1} selected/; $form->{selectIC_expense} =~ s/selected//g; - $form->{selectIC_expense} =~ s/ value=$form->{expense_accno_id_1}/ value=$form->{expense_accno_id_1} selected/; + $form->{selectIC_expense} =~ s/ value=\Q$form->{expense_accno_id_1}\E/ value=$form->{expense_accno_id_1} selected/; } $linkaccounts .= qq| | . $locale->text('Revenues EU with UStId') . qq| @@ -1736,9 +1717,9 @@ sub buchungsgruppe_header { if ($form->{id}) { $form->{selectIC_income} =~ s/selected//g; - $form->{selectIC_income} =~ s/ value=$form->{income_accno_id_2}/ value=$form->{income_accno_id_2} selected/; + $form->{selectIC_income} =~ s/ value=\Q$form->{income_accno_id_2}\E/ value=$form->{income_accno_id_2} selected/; $form->{selectIC_expense} =~ s/selected//g; - $form->{selectIC_expense} =~ s/ value=$form->{expense_accno_id_2}/ value=$form->{expense_accno_id_2} selected/; + $form->{selectIC_expense} =~ s/ value=\Q$form->{expense_accno_id_2}\E/ value=$form->{expense_accno_id_2} selected/; } $linkaccounts .= qq| @@ -1752,9 +1733,9 @@ sub buchungsgruppe_header { if ($form->{id}) { $form->{selectIC_income} =~ s/selected//g; - $form->{selectIC_income} =~ s/ value=$form->{income_accno_id_3}/ value=$form->{income_accno_id_3} selected/; + $form->{selectIC_income} =~ s/ value=\Q$form->{income_accno_id_3}\E/ value=$form->{income_accno_id_3} selected/; $form->{selectIC_expense} =~ s/selected//g; - $form->{selectIC_expense} =~ s/ value=$form->{expense_accno_id_3}/ value=$form->{expense_accno_id_3} selected/; + $form->{selectIC_expense} =~ s/ value=\Q$form->{expense_accno_id_3}\E/ value=$form->{expense_accno_id_3} selected/; } $linkaccounts .= qq| @@ -1773,7 +1754,7 @@ sub buchungsgruppe_header { print qq| -{script}> + {id}> @@ -1799,6 +1780,8 @@ sub buchungsgruppe_header { sub save_buchungsgruppe { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->isblank("description", $locale->text('Description missing!')); AM->save_buchungsgruppe(\%myconfig, \%$form); @@ -1810,6 +1793,8 @@ sub save_buchungsgruppe { sub delete_buchungsgruppe { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->delete_buchungsgruppe(\%myconfig, \%$form); $form->redirect($locale->text('Accounting Group deleted!')); @@ -1819,6 +1804,8 @@ sub delete_buchungsgruppe { sub swap_buchungsgruppen { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->swap_sortkeys(\%myconfig, $form, "buchungsgruppen"); list_buchungsgruppe(); @@ -1829,11 +1816,11 @@ sub swap_buchungsgruppen { sub add_printer { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = "Add"; - $form->{callback} = - "$form->{script}?action=add_printer&login=$form->{login}&password=$form->{password}" - unless $form->{callback}; + $form->{callback} = "am.pl?action=add_printer" unless $form->{callback}; &printer_header; &form_footer; @@ -1844,6 +1831,8 @@ sub add_printer { sub edit_printer { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = "Edit"; AM->get_printer(\%myconfig, \%$form); @@ -1859,10 +1848,11 @@ sub edit_printer { sub list_printer { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->printer(\%myconfig, \%$form); - $form->{callback} = - "$form->{script}?action=list_printer&login=$form->{login}&password=$form->{password}"; + $form->{callback} = "am.pl?action=list_printer"; $callback = $form->escape($form->{callback}); @@ -1915,8 +1905,7 @@ sub list_printer { |; - $column_data{printer_description} = - qq|{script}?action=edit_printer&id=$ref->{id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{printer_description}|; + $column_data{printer_description} = qq|$ref->{printer_description}|; $column_data{printer_command} = qq|$ref->{printer_command}|; $column_data{template_code} = qq|$ref->{template_code}|; @@ -1938,15 +1927,12 @@ sub list_printer { -{script}> + -{login}> -{password}> - @@ -1962,6 +1948,8 @@ sub list_printer { sub printer_header { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = $locale->text("$form->{title} Printer"); # $locale->text('Add Printer') @@ -1977,7 +1965,7 @@ sub printer_header { print qq| -{script}> + {id}> @@ -2010,6 +1998,8 @@ sub printer_header { sub save_printer { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->isblank("printer_description", $locale->text('Description missing!')); $form->isblank("printer_command", $locale->text('Printer Command missing!')); AM->save_printer(\%myconfig, \%$form); @@ -2021,6 +2011,8 @@ sub save_printer { sub delete_printer { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->delete_printer(\%myconfig, \%$form); $form->redirect($locale->text('Printer deleted!')); @@ -2030,11 +2022,11 @@ sub delete_printer { sub add_payment { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = "Add"; - $form->{callback} = - "$form->{script}?action=add_payment&login=$form->{login}&password=$form->{password}" - unless $form->{callback}; + $form->{callback} = "am.pl?action=add_payment" unless $form->{callback}; $form->{terms_netto} = 0; $form->{terms_skonto} = 0; @@ -2052,6 +2044,8 @@ sub add_payment { sub edit_payment { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = "Edit"; AM->get_payment(\%myconfig, $form); @@ -2069,6 +2063,8 @@ sub edit_payment { sub list_payment { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->payment(\%myconfig, \%$form); $form->{callback} = build_std_url("action=list_payment"); @@ -2197,15 +2193,12 @@ sub list_payment { -{script}> + -{login}> -{password}> - @@ -2221,6 +2214,8 @@ sub list_payment { sub payment_header { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = $locale->text("$form->{title} Payment Terms"); # $locale->text('Add Payment Terms') @@ -2235,7 +2230,7 @@ sub payment_header { print qq| -{script}> + {id}> @@ -2301,8 +2296,12 @@ sub payment_header { | . $locale->text("<%skonto_amount%> -- The deductible amount") . qq| | . $locale->text("<%total%> -- Amount payable") +. qq| + | . $locale->text("<%total_wo_skonto%> -- Amount payable less discount") . qq| | . $locale->text("<%invtotal%> -- Invoice total") +. qq| + | . $locale->text("<%invtotal_wo_skonto%> -- Invoice total less discount") . qq| | . $locale->text("<%currency%> -- The selected currency") . qq| @@ -2323,6 +2322,8 @@ sub payment_header { sub save_payment { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->isblank("description", $locale->text('Description missing!')); $form->{"percent_skonto"} = $form->parse_amount(\%myconfig, $form->{percent_skonto}) / 100; @@ -2335,6 +2336,8 @@ sub save_payment { sub delete_payment { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->delete_payment(\%myconfig, \%$form); $form->redirect($locale->text('Payment terms deleted!')); @@ -2344,39 +2347,73 @@ sub delete_payment { sub swap_payment_terms { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->swap_sortkeys(\%myconfig, $form, "payment_terms"); list_payment(); $lxdebug->leave_sub(); } -sub config { +sub edit_defaults { $lxdebug->enter_sub(); # get defaults for account numbers and last numbers AM->defaultaccounts(\%myconfig, \%$form); - foreach $item (qw(mm-dd-yy mm/dd/yy dd-mm-yy dd/mm/yy dd.mm.yy yyyy-mm-dd)) { - $dateformat .= - ($item eq $myconfig{dateformat}) - ? "$item\n" - : "$item\n"; - } + map { $form->{"defaults_${_}"} = $form->{defaults}->{$_} } keys %{ $form->{defaults} }; - foreach $item (qw(1,000.00 1000.00 1.000,00 1000,00)) { - $numberformat .= - ($item eq $myconfig{numberformat}) - ? "$item\n" - : "$item\n"; + foreach $key (keys %{ $form->{IC} }) { + foreach $accno (sort keys %{ $form->{IC}->{$key} }) { + my $array = "ACCNOS_" . uc($key); + $form->{$array} ||= []; + + my $value = "${accno}--" . $form->{IC}->{$key}->{$accno}->{description}; + push @{ $form->{$array} }, { + 'name' => $value, + 'value' => $value, + 'selected' => $form->{IC}->{$key}->{$accno}->{id} == $form->{defaults}->{$key}, + }; + } } - foreach $item (qw(name company address signature)) { - $myconfig{$item} =~ s/\"/"/g; - } + $form->{title} = $locale->text('Ranges of numbers and default accounts'); + + $form->header(); + print $form->parse_html_template('am/edit_defaults'); - foreach $item (qw(address signature)) { - $myconfig{$item} =~ s/\\n/\r\n/g; + $lxdebug->leave_sub(); +} + +sub save_defaults { + $lxdebug->enter_sub(); + + AM->save_defaults(); + + $form->redirect($locale->text('Defaults saved.')); + + $lxdebug->leave_sub(); +} + +sub _build_cfg_options { + my $idx = shift; + my $array = uc($idx) . 'S'; + + $form->{$array} = []; + foreach my $item (@_) { + push @{ $form->{$array} }, { + 'name' => $item, + 'value' => $item, + 'selected' => $item eq $myconfig{$idx}, + }; } +} + +sub config { + $lxdebug->enter_sub(); + + _build_cfg_options('dateformat', qw(mm-dd-yy mm/dd/yy dd-mm-yy dd/mm/yy dd.mm.yy yyyy-mm-dd)); + _build_cfg_options('numberformat', qw(1,000.00 1000.00 1.000,00 1000,00)); @formats = (); if ($opendocument_templates && $openofficeorg_writer_bin && @@ -2400,346 +2437,67 @@ sub config { if (!$myconfig{"template_format"}) { $myconfig{"template_format"} = "pdf"; } - my $template_format = ""; + $form->{TEMPLATE_FORMATS} = []; foreach $item (@formats) { - $template_format .= - "{value}\"" . - ($item->{"value"} eq $myconfig{"template_format"} ? - " selected" : "") . - ">" . H($item->{"name"}) . ""; + push @{ $form->{TEMPLATE_FORMATS} }, { + 'name' => $item->{name}, + 'value' => $item->{value}, + 'selected' => $item->{value} eq $myconfig{template_format}, + }; } if (!$myconfig{"default_media"}) { $myconfig{"default_media"} = "screen"; } + my %selected = ($myconfig{"default_media"} => "selected"); - my $default_media = qq| - | . $locale->text("Screen") . qq| - | . $locale->text("Printer") . qq| - | . $locale->text("Queue") . qq| -|; + $form->{MEDIA} = [ + { 'name' => $locale->text('Screen'), 'value' => 'screen', 'selected' => $selected{screen}, }, + { 'name' => $locale->text('Printer'), 'value' => 'printer', 'selected' => $selected{printer}, }, + { 'name' => $locale->text('Queue'), 'value' => 'queue', 'selected' => $selected{queue}, }, + ]; - %selected = (); - $selected{$myconfig{"default_printer_id"}} = "selected" - if ($myconfig{"default_printer_id"}); - my $default_printer = qq||; AM->printer(\%myconfig, $form); + + $form->{PRINTERS} = []; foreach my $printer (@{$form->{"ALL"}}) { - $default_printer .= qq|{'id'}}>| . - H($printer->{"printer_description"}) . qq||; + push @{ $form->{PRINTERS} }, { + 'name' => $printer->{printer_description}, + 'value' => $printer->{id}, + 'selected' => $printer->{id} == $myconfig{default_printer_id}, + }; } %countrycodes = User->country_codes; - $countrycodes = ''; - foreach $key (sort { $countrycodes{$a} cmp $countrycodes{$b} } - keys %countrycodes - ) { - $countrycodes .= - ($myconfig{countrycode} eq $key) - ? "$countrycodes{$key}\n" - : "$countrycodes{$key}\n"; - } - $countrycodes = "American English\n$countrycodes"; - - foreach $key (keys %{ $form->{IC} }) { - foreach $accno (sort keys %{ $form->{IC}{$key} }) { - $myconfig{$key} .= - ($form->{IC}{$key}{$accno}{id} == $form->{defaults}{$key}) - ? "$accno--$form->{IC}{$key}{$accno}{description}\n" - : "$accno--$form->{IC}{$key}{$accno}{description}\n"; - } - } - -# opendir CSS, "css/."; -# @all = grep /.*\.css$/, readdir CSS; -# closedir CSS; - -# css dir has styles that are not intended as general layouts. -# reverting to hardcoded list - @all = qw(lx-office-erp.css Win2000.css); - foreach $item (@all) { - if ($item eq $myconfig{stylesheet}) { - $selectstylesheet .= qq|$item\n|; - } else { - $selectstylesheet .= qq|$item\n|; - } + $countrycodes{""} = "American English"; + $form->{COUNTRYCODES} = []; + foreach $countrycode (sort { $countrycodes{$a} cmp $countrycodes{$b} } keys %countrycodes) { + push @{ $form->{COUNTRYCODES} }, { + 'name' => $countrycodes{$countrycode}, + 'value' => $countrycode, + 'selected' => $countrycode eq $myconfig{countrycode}, + }; } - $selectstylesheet .= "\n"; - $form->{title} = $locale->text('Edit Preferences for') . qq| $form->{login}|; - - $form->header; - - if ($myconfig{menustyle} eq "old") { - $menustyle_old = "checked"; - } elsif ($myconfig{menustyle} eq "neu") { - $menustyle_neu = "checked"; - } elsif ($myconfig{menustyle} eq "v3") { - $menustyle_v3 = "checked"; + $form->{STYLESHEETS} = []; + foreach $item (qw(lx-office-erp.css Win2000.css)) { + push @{ $form->{STYLESHEETS} }, { + 'name' => $item, + 'value' => $item, + 'selected' => $item eq $myconfig{stylesheet}, + }; } - my ($show_form_details, $hide_form_details); - $myconfig{"show_form_details"} = 1 - unless (defined($myconfig{"show_form_details"})); - $show_form_details = "checked" if ($myconfig{"show_form_details"}); - $hide_form_details = "checked" unless ($myconfig{"show_form_details"}); - - print qq| - - -{script}> + $myconfig{show_form_details} = 1 unless (defined($myconfig{show_form_details})); + $form->{"menustyle_$myconfig{menustyle}"} = 1; + $form->{CAN_CHANGE_PASSWORD} = $auth->can_change_password(); + $form->{todo_cfg} = { TODO->get_user_config('login' => $form->{login}) }; - - - + $form->{title} = $locale->text('Edit Preferences for #1', $form->{login}); - - $form->{title} - - - - - | . $locale->text('Name') . qq| - - - - | . $locale->text('Password') . qq| - - - - | . $locale->text('E-mail') . qq| - - - - | . $locale->text('Signature') . qq| - $myconfig{signature} - - - | . $locale->text('Phone') . qq| - - - - | . $locale->text('Fax') . qq| - - - - | . $locale->text('Company') . qq| - - - - | . $locale->text('Address') . qq| - $myconfig{address} - - - | . $locale->text('Date Format') . qq| - $dateformat - - - | . $locale->text('Output Number Format') . qq| - $numberformat - - - - | . $locale->text('Dropdown Limit') . qq| - - - - | . $locale->text('Language') . qq| - $countrycodes - - - | . $locale->text('Stylesheet') . qq| - $selectstylesheet - - - | . $locale->text('Setup Menu') . qq| - | . - $locale->text("Top (CSS)") . qq| - | . - $locale->text("Top (Javascript)") . qq| - | . - $locale->text("Old (on the side)") . qq| - - - | . $locale->text('Form details (second row)') . qq| - - | . $locale->text('Show by default') . qq| - - | . $locale->text('Hide by default') . qq| - - - - | . $locale->text("Print options") . qq| - - - | . $locale->text('Default template format') . qq| - $template_format - - - | . $locale->text('Default output medium') . qq| - $default_media - - - | . $locale->text('Default printer') . qq| - $default_printer - - - | . $locale->text('Number of copies') . qq| - - - - - - - - - | . $locale->text('Business Number') . qq| - - - - | . $locale->text('Year End') . qq| (mm/dd) - {defaults}{yearend}> - - - | - . $locale->text('Last Numbers & Default Accounts') . qq| - - - - - - | . $locale->text('Inventory Account') . qq| - $myconfig{IC} - - - | . $locale->text('Revenue Account') . qq| - $myconfig{IC_income} - - - | . $locale->text('Expense Account') . qq| - $myconfig{IC_expense} - - - | . $locale->text('Foreign Exchange Gain') . qq| - $myconfig{FX_gain} - - - | . $locale->text('Foreign Exchange Loss') . qq| - $myconfig{FX_loss} - - - | - . $locale->text( - 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' - ) - . qq| - - - - - - - - - | . $locale->text('Last Invoice Number') . qq| - {defaults}{invnumber}> - | - . $locale->text('Last Customer Number') . qq| - {defaults}{customernumber}> - - - | - . $locale->text('Last Credit Note Number') . qq| - {defaults}{cnnumber}> - | - . $locale->text('Last Vendor Number') . qq| - {defaults}{vendornumber}> - - - | - . $locale->text('Last Sales Order Number') . qq| - {defaults}{sonumber}> - - - | - . $locale->text('Last Purchase Order Number') . qq| - {defaults}{ponumber}> - | - . $locale->text('Last Article Number') . qq| - {defaults}{articlenumber}> - - - | - . $locale->text('Last Sales Quotation Number') . qq| - {defaults}{sqnumber}> - | - . $locale->text('Last Service Number') . qq| - {defaults}{servicenumber}> - - - | . $locale->text('Last RFQ Number') . qq| - {defaults}{rfqnumber}> - - - - - - |; -# -# | . $locale->text('Tax Accounts') . qq| -# -# -# -# -# -# -# | . $locale->text('Rate') . qq| (%) -# | . $locale->text('Number') . qq| -# -# |; -# -# foreach $accno (sort keys %{ $form->{taxrates} }) { -# print qq| -# -# $form->{taxrates}{$accno}{description} -# {taxrates}{$accno}{id} size=6 value=$form->{taxrates}{$accno}{rate}> -# -# -# |; -# $form->{taxaccounts} .= "$form->{taxrates}{$accno}{id} "; -# } -# -# chop $form->{taxaccounts}; -# -# print qq| -# -# -# -# -# -print qq| - - - - - - - -{login}> -{password}> - - - - - - - - -|; + $form->header(); + print $form->parse_html_template('am/config'); $lxdebug->leave_sub(); } @@ -2749,10 +2507,9 @@ sub save_preferences { $form->{stylesheet} = $form->{usestylesheet}; - $form->redirect($locale->text('Preferences saved!')) - if ( - AM->save_preferences(\%myconfig, \%$form, $memberfile, $userspath, $webdav - )); + TODO->save_user_config('login' => $form->{login}, %{ $form->{todo_cfg} || { } }); + + $form->redirect($locale->text('Preferences saved!')) if (AM->save_preferences(\%myconfig, \%$form, $webdav)); $form->error($locale->text('Cannot save preferences!')); $lxdebug->leave_sub(); @@ -2761,6 +2518,8 @@ sub save_preferences { sub audit_control { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = $locale->text('Audit Control'); AM->closedto(\%myconfig, \%$form); @@ -2776,10 +2535,7 @@ sub audit_control { print qq| -{script}> - -{login}> -{password}> + $form->{title} @@ -2825,6 +2581,8 @@ sub audit_control { sub doclose { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->closebooks(\%myconfig, \%$form); if ($form->{revtrans}) { @@ -2846,6 +2604,8 @@ sub doclose { sub edit_units { $lxdebug->enter_sub(); + $auth->assert('config'); + $units = AM->retrieve_units(\%myconfig, $form, $form->{"unit_type"}, "resolved_"); AM->units_in_use(\%myconfig, $form, $units); map({ $units->{$_}->{"BASE_UNIT_DDBOX"} = AM->unit_select_data($units, $units->{$_}->{"base_unit"}, 1); } keys(%{$units})); @@ -2878,10 +2638,10 @@ sub edit_units { $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, + { "UNITS" => \@unit_list, "NEW_BASE_UNIT_DDBOX" => $ddbox, - "LANGUAGES" => \@languages, - "updownlink" => $updownlink })); + "LANGUAGES" => \@languages, + "updownlink" => $updownlink })); $lxdebug->leave_sub(); } @@ -2889,6 +2649,8 @@ sub edit_units { sub add_unit { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->isblank("new_name", $locale->text("The name is missing.")); $units = AM->retrieve_units(\%myconfig, $form, $form->{"unit_type"}); $all_units = AM->retrieve_units(\%myconfig, $form); @@ -2925,6 +2687,8 @@ sub add_unit { sub set_unit_languages { $lxdebug->enter_sub(); + $auth->assert('config'); + my ($unit, $languages, $idx) = @_; $unit->{"LANGUAGES"} = []; @@ -2943,6 +2707,8 @@ sub set_unit_languages { sub save_unit { $lxdebug->enter_sub(); + $auth->assert('config'); + $old_units = AM->retrieve_units(\%myconfig, $form, $form->{"unit_type"}, "resolved_"); AM->units_in_use(\%myconfig, $form, $old_units); @@ -3021,16 +2787,21 @@ sub save_unit { sub show_history_search { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = $locale->text("History Search"); $form->header(); - print $form->parse_html_template("/common/search_history"); + print $form->parse_html_template("common/search_history"); $lxdebug->leave_sub(); } sub show_am_history { $lxdebug->enter_sub(); + + $auth->assert('config'); + my %search = ( "Artikelnummer" => "parts", "Kundennummer" => "customer", "Lieferantennummer" => "vendor", @@ -3103,7 +2874,7 @@ sub show_am_history { my ($sort, $sortby) = split(/\-\-/, $form->{order}); $sort =~ s/.*\.(.*)$/$1/; - print $form->parse_html_template("/common/show_history", + print $form->parse_html_template("common/show_history", {"DATEN" => $form->get_history($dbh, $daten, $restriction, $form->{order}), "SUCCESS" => ($form->get_history($dbh, $daten, $restriction, $form->{order}) ne "0"), "NONEWWINDOW" => 1, @@ -3116,6 +2887,9 @@ sub show_am_history { sub get_employee_id { $lxdebug->enter_sub(); + + $auth->assert('config'); + my $query = qq|SELECT id FROM employee WHERE name = '| . $_[0] . qq|'|; my $sth = $_[1]->prepare($query); $sth->execute() || $form->dberror($query); @@ -3128,6 +2902,8 @@ sub get_employee_id { sub swap_units { $lxdebug->enter_sub(); + $auth->assert('config'); + my $dir = $form->{"dir"} eq "down" ? "down" : "up"; my $unit_type = $form->{"unit_type"} eq "dimension" ? "dimension" : "service"; @@ -3141,11 +2917,11 @@ sub swap_units { sub add_tax { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = $locale->text('Add'); - $form->{callback} = - "$form->{script}?action=add_tax&login=$form->{login}&password=$form->{password}" - unless $form->{callback}; + $form->{callback} ||= "am.pl?action=add_tax"; _get_taxaccount_selection(); @@ -3164,11 +2940,15 @@ sub add_tax { sub edit_tax { $lxdebug->enter_sub(); + $auth->assert('config'); + $form->{title} = $locale->text('Edit'); AM->get_tax(\%myconfig, \%$form); _get_taxaccount_selection(); + $form->{rate} = $form->format_amount(\%myconfig, $form->{rate}, 2); + $form->header(); my $parameters_ref = { @@ -3183,10 +2963,13 @@ sub edit_tax { sub list_tax { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->taxes(\%myconfig, \%$form); - $form->{callback} = - "$form->{script}?action=list_tax&login=$form->{login}&password=$form->{password}"; + map { $_->{rate} = $form->format_amount(\%myconfig, $_->{rate}, 2) } @{ $form->{TAX} }; + + $form->{callback} = build_std_url('action=list_tax'); $form->{title} = $locale->text('Tax-O-Matic'); @@ -3199,27 +2982,13 @@ sub list_tax { } sub _get_taxaccount_selection{ - $lxdebug->enter_sub(); + $lxdebug->enter_sub(); - AM->get_tax_accounts(\%myconfig, \%$form); + $auth->assert('config'); - my $i = 0; - foreach my $taxaccount (@{ $form->{ACCOUNTS} } ) { + AM->get_tax_accounts(\%myconfig, \%$form); - # Fill in the Taxaxxounts as select options - if ($form->{chart_id} == $taxaccount->{id}) { - $form->{ACCOUNTS}[$i]{select_taxaccount} .= - qq| - $form->{ACCOUNTS}[$i]{_taxaccount}\n|; - } - else { - $form->{ACCOUNTS}[$i]{select_taxaccount} .= - qq| - $form->{ACCOUNTS}[$i]{_taxaccount}\n|; - } - $i++; - } - return; + map { $_->{selected} = $form->{chart_id} == $_->{id} } @{ $form->{ACCOUNTS} }; $lxdebug->leave_sub(); } @@ -3227,16 +2996,19 @@ sub _get_taxaccount_selection{ sub save_tax { $lxdebug->enter_sub(); - $form->isblank("chart_id", $locale->text('Tax-O-Matic account missing!')); + $auth->assert('config'); + $form->isblank("rate", $locale->text('Taxrate missing!')); $form->isblank("taxdescription", $locale->text('Taxdescription missing!')); $form->isblank("taxkey", $locale->text('Taxkey missing!')); - - if ( $form->{rate} <= 0 || $form->{rate} >= 100 ) { + + $form->{rate} = $form->parse_amount(\%myconfig, $form->{rate}); + + if ( $form->{rate} < 0 || $form->{rate} >= 100 ) { $form->error($locale->text('Tax Percent is a number between 0 and 100')); } - if ( $form->{rate} <= 0.99 && $form->{rate} >= 0 ) { + if ( $form->{rate} <= 0.99 && $form->{rate} > 0 ) { $form->error($locale->text('Tax Percent is a number between 0 and 100')); } @@ -3249,8 +3021,246 @@ sub save_tax { sub delete_tax { $lxdebug->enter_sub(); + $auth->assert('config'); + AM->delete_tax(\%myconfig, \%$form); $form->redirect($locale->text('Tax deleted!')); $lxdebug->leave_sub(); } + +sub add_price_factor { + $lxdebug->enter_sub(); + + $auth->assert('config'); + + $form->{title} = $locale->text('Add Price Factor'); + $form->{callback} ||= build_std_url('action=add_price_factor'); + $form->{fokus} = 'description'; + + $form->header(); + print $form->parse_html_template('am/edit_price_factor'); + + $lxdebug->leave_sub(); +} + +sub edit_price_factor { + $lxdebug->enter_sub(); + + $auth->assert('config'); + + $form->{title} = $locale->text('Edit Price Factor'); + $form->{callback} ||= build_std_url('action=add_price_factor'); + $form->{fokus} = 'description'; + + AM->get_price_factor(\%myconfig, $form); + + $form->{factor} = $form->format_amount(\%myconfig, $form->{factor} * 1); + + $form->header(); + print $form->parse_html_template('am/edit_price_factor'); + + $lxdebug->leave_sub(); +} + +sub list_price_factors { + $lxdebug->enter_sub(); + + $auth->assert('config'); + + AM->get_all_price_factors(\%myconfig, \%$form); + + my $previous; + foreach my $current (@{ $form->{PRICE_FACTORS} }) { + if ($previous) { + $previous->{next_id} = $current->{id}; + $current->{previous_id} = $previous->{id}; + } + + $current->{factor} = $form->format_amount(\%myconfig, $current->{factor} * 1); + + $previous = $current; + } + + $form->{callback} = build_std_url('action=list_price_factors'); + $form->{title} = $locale->text('Price Factors'); + $form->{url_base} = build_std_url('callback'); + + $form->header(); + print $form->parse_html_template('am/list_price_factors'); + + $lxdebug->leave_sub(); +} + +sub save_price_factor { + $lxdebug->enter_sub(); + + $auth->assert('config'); + + $form->isblank("description", $locale->text('Description missing!')); + $form->isblank("factor", $locale->text('Factor missing!')); + + $form->{factor} = $form->parse_amount(\%myconfig, $form->{factor}); + + AM->save_price_factor(\%myconfig, $form); + + $form->{callback} .= '&MESSAGE=' . $form->escape($locale->text('Price factor saved!')) if ($form->{callback}); + + $form->redirect($locale->text('Price factor saved!')); + + $lxdebug->leave_sub(); +} + +sub delete_price_factor { + $lxdebug->enter_sub(); + + $auth->assert('config'); + + AM->delete_price_factor(\%myconfig, \%$form); + + $form->{callback} .= '&MESSAGE=' . $form->escape($locale->text('Price factor deleted!')) if ($form->{callback}); + + $form->redirect($locale->text('Price factor deleted!')); + + $lxdebug->leave_sub(); +} + +sub swap_price_factors { + $lxdebug->enter_sub(); + + $auth->assert('config'); + + AM->swap_sortkeys(\%myconfig, $form, 'price_factors'); + list_price_factors(); + + $lxdebug->leave_sub(); +} + +sub add_warehouse { + $lxdebug->enter_sub(); + + $auth->assert('config'); + + $form->{title} = $locale->text('Add Warehouse'); + $form->{callback} ||= build_std_url('action=add_warehouse'); + $form->{fokus} = 'description'; + + $form->header(); + print $form->parse_html_template('am/edit_warehouse'); + + $lxdebug->leave_sub(); +} + +sub edit_warehouse { + $lxdebug->enter_sub(); + + $auth->assert('config'); + + AM->get_warehouse(\%myconfig, $form); + + $form->get_lists('employees' => 'EMPLOYEES'); + + $form->{title} = $locale->text('Edit Warehouse'); + $form->{callback} ||= build_std_url('action=list_warehouses'); + $form->{fokus} = 'description'; + + $form->header(); + print $form->parse_html_template('am/edit_warehouse'); + + $lxdebug->leave_sub(); +} + +sub list_warehouses { + $lxdebug->enter_sub(); + + $auth->assert('config'); + + AM->get_all_warehouses(\%myconfig, $form); + + my $previous; + foreach my $current (@{ $form->{WAREHOUSES} }) { + if ($previous) { + $previous->{next_id} = $current->{id}; + $current->{previous_id} = $previous->{id}; + } + + $previous = $current; + } + + $form->{callback} = build_std_url('action=list_warehouses'); + $form->{title} = $locale->text('Warehouses'); + $form->{url_base} = build_std_url('callback'); + + $form->header(); + print $form->parse_html_template('am/list_warehouses'); + + $lxdebug->leave_sub(); +} + +sub save_warehouse { + $lxdebug->enter_sub(); + + $auth->assert('config'); + + $form->isblank("description", $locale->text('Description missing!')); + + $form->{number_of_new_bins} = $form->parse_amount(\%myconfig, $form->{number_of_new_bins}); + + AM->save_warehouse(\%myconfig, $form); + + $form->{callback} .= '&saved_message=' . E($locale->text('Warehouse saved.')) if ($form->{callback}); + + $form->redirect($locale->text('Warehouse saved.')); + + $lxdebug->leave_sub(); +} + +sub swap_warehouses { + $lxdebug->enter_sub(); + + $auth->assert('config'); + + AM->swap_sortkeys(\%myconfig, $form, 'warehouse'); + list_warehouses(); + + $lxdebug->leave_sub(); +} + +sub delete_warehouse { + $lxdebug->enter_sub(); + + $auth->assert('config'); + + if (!$form->{confirmed}) { + $form->{title} = $locale->text('Confirmation'); + + $form->header(); + print $form->parse_html_template('am/confirm_delete_warehouse'); + exit 0; + } + + if (AM->delete_warehouse(\%myconfig, $form)) { + $form->{callback} .= '&saved_message=' . E($locale->text('Warehouse deleted.')) if ($form->{callback}); + $form->redirect($locale->text('Warehouse deleted.')); + + } else { + $form->error($locale->text('The warehouse could not be deleted because it has already been used.')); + } + + $lxdebug->leave_sub(); +} + +sub save_bin { + $lxdebug->enter_sub(); + + $auth->assert('config'); + + AM->save_bins(\%myconfig, $form); + + $form->{callback} .= '&saved_message=' . E($locale->text('Bins saved.')) if ($form->{callback}); + + $form->redirect($locale->text('Bins saved.')); + + $lxdebug->leave_sub(); +} +