- print qq|
-<body>
-
-$form->{body}
-
-<form method=post action=$form->{script}>
-
-<input name=file type=hidden value=$form->{file}>
-<input name=type type=hidden value=template>
-
-<input type=hidden name=path value=$form->{path}>
-<input type=hidden name=login value=$form->{login}>
-<input type=hidden name=password value=$form->{password}>
-
-<input name=action type=submit class=submit value="|
- . $locale->text('Edit') . qq|">|;
-
- if ($form->{menubar}) {
- require "$form->{path}/menu.pl";
- &menubar;
- }
-
- print qq|
- </form>
-
-</body>
-</html>
-|;
-
- $lxdebug->leave_sub();
-}
-
-sub edit_template {
- $lxdebug->enter_sub();
-
- AM->load_template(\%$form);
-
- $form->{title} = $locale->text('Edit Template');
-
- # convert   to &nbsp;
- $form->{body} =~ s/ /&nbsp;/gi;
-
- $form->header;
-
- print qq|
-<body>
-
-<form method=post action=$form->{script}>
-
-<input name=file type=hidden value=$form->{file}>
-<input name=type type=hidden value=template>
-
-<input type=hidden name=path value=$form->{path}>
-<input type=hidden name=login value=$form->{login}>
-<input type=hidden name=password value=$form->{password}>
-
-<input name=callback type=hidden value="$form->{script}?action=display_form&file=$form->{file}&path=$form->{path}&login=$form->{login}&password=$form->{password}">
-
-<textarea name=body rows=25 cols=70>
-$form->{body}
-</textarea>
-
-<br>
-<input type=submit class=submit name=action value="|
- . $locale->text('Save') . qq|">|;
-
- if ($form->{menubar}) {
- require "$form->{path}/menu.pl";
- &menubar;
- }
-
- print q|
- </form>
-
-
-</body>
-</html>
-|;
-
- $lxdebug->leave_sub();
-}
-
-sub save_template {
- $lxdebug->enter_sub();
-
- AM->save_template(\%$form);
- $form->redirect($locale->text('Template saved!'));
-
- $lxdebug->leave_sub();
-}
-
-sub config {
- $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})
- ? "<option selected>$item\n"
- : "<option>$item\n";
- }
-
- foreach $item (qw(1,000.00 1000.00 1.000,00 1000,00)) {
- $numberformat .=
- ($item eq $myconfig{numberformat})
- ? "<option selected>$item\n"
- : "<option>$item\n";
- }
-
- foreach $item (qw(name company address signature)) {
- $myconfig{$item} =~ s/\"/"/g;
- }
-
- foreach $item (qw(address signature)) {
- $myconfig{$item} =~ s/\\n/\r\n/g;
- }
-
- @formats = ();
- if ($opendocument_templates && $openofficeorg_writer_bin &&
- $xvfb_bin && (-x $openofficeorg_writer_bin) && (-x $xvfb_bin)) {
- push(@formats, { "name" => $locale->text("PDF (OpenDocument/OASIS)"),
- "value" => "opendocument_pdf" });
- }
- if ($latex_templates) {
- push(@formats, { "name" => $locale->text("PDF"), "value" => "pdf" });
- }
- push(@formats, { "name" => "HTML", "value" => "html" });
- if ($latex_templates) {
- push(@formats, { "name" => $locale->text("Postscript"),
- "value" => "postscript" });
- }
- if ($opendocument_templates) {
- push(@formats, { "name" => $locale->text("OpenDocument/OASIS"),
- "value" => "opendocument" });
- }
-
- if (!$myconfig{"template_format"}) {
- $myconfig{"template_format"} = "pdf";
- }
- $template_format = "";
- foreach $item (@formats) {
- $template_format .=
- "<option value=\"$item->{value}\"" .
- ($item->{"value"} eq $myconfig{"template_format"} ?
- " selected" : "") .
- ">" . H($item->{"name"}) . "</option>";
- }
-
- %countrycodes = User->country_codes;
- $countrycodes = '';
- foreach $key (sort { $countrycodes{$a} cmp $countrycodes{$b} }
- keys %countrycodes
- ) {
- $countrycodes .=
- ($myconfig{countrycode} eq $key)
- ? "<option selected value=$key>$countrycodes{$key}\n"
- : "<option value=$key>$countrycodes{$key}\n";
- }
- $countrycodes = "<option>American English\n$countrycodes";
-
- # use an other input number format than output numberformat
- # look at Form.pm, sub parse_amount
- my $in_numberformat = '';
- $text1 = qq|value="0">| . $locale->text('equal Outputformat');
- $text2 = qq|value="1">| . $locale->text('1000,00 or 1000.00');
- @in_nf = ($text1, $text2);
- foreach $item (@in_nf) {
- $in_numberformat .=
- (substr($item, 7, 1) eq $myconfig{in_numberformat})
- ? "<option selected $item\n"
- : "<option $item\n";
- }
-
- foreach $key (keys %{ $form->{IC} }) {
- foreach $accno (sort keys %{ $form->{IC}{$key} }) {
- $myconfig{$key} .=
- ($form->{IC}{$key}{$accno}{id} == $form->{defaults}{$key})
- ? "<option selected>$accno--$form->{IC}{$key}{$accno}{description}\n"
- : "<option>$accno--$form->{IC}{$key}{$accno}{description}\n";
- }
- }
-
- opendir CSS, "css/.";
- @all = grep /.*\.css$/, readdir CSS;
- closedir CSS;
-
- foreach $item (@all) {
- if ($item eq $myconfig{stylesheet}) {
- $selectstylesheet .= qq|<option selected>$item\n|;
- } else {
- $selectstylesheet .= qq|<option>$item\n|;
- }
- }
- $selectstylesheet .= "<option>\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";
- }
-
- print qq|
-<body>
-
-<form method=post action=$form->{script}>
-
-<input type=hidden name=old_password value=$myconfig{password}>
-<input type=hidden name=type value=preferences>
-<input type=hidden name=role value=$myconfig{role}>
-
-<table width=100%>
- <tr><th class=listtop>$form->{title}</th></tr>
- <tr>
- <td>
- <table>
- <tr>
- <th align=right>| . $locale->text('Name') . qq|</th>
- <td><input name=name size=15 value="$myconfig{name}"></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Password') . qq|</th>
- <td><input type=password name=new_password size=10 value=$myconfig{password}></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('E-mail') . qq|</th>
- <td><input name=email size=30 value="$myconfig{email}"></td>
- </tr>
- <tr valign=top>
- <th align=right>| . $locale->text('Signature') . qq|</th>
- <td><textarea name=signature rows=3 cols=50>$myconfig{signature}</textarea></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Phone') . qq|</th>
- <td><input name=tel size=14 value="$myconfig{tel}"></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Fax') . qq|</th>
- <td><input name=fax size=14 value="$myconfig{fax}"></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Company') . qq|</th>
- <td><input name=company size=30 value="$myconfig{company}"></td>
- </tr>
- <tr valign=top>
- <th align=right>| . $locale->text('Address') . qq|</th>
- <td><textarea name=address rows=4 cols=50>$myconfig{address}</textarea></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Date Format') . qq|</th>
- <td><select name=dateformat>$dateformat</select></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Output Number Format') . qq|</th>
- <td><select name=numberformat>$numberformat</select></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Input Number Format') . qq|</th>
- <td><select name=in_numberformat>$in_numberformat</select></td>
- </tr>
-
- <tr>
- <th align=right>| . $locale->text('Dropdown Limit') . qq|</th>
- <td><input name=vclimit size=10 value="$myconfig{vclimit}"></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Language') . qq|</th>
- <td><select name=countrycode>$countrycodes</select></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Stylesheet') . qq|</th>
- <td><select name=usestylesheet>$selectstylesheet</select></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Setup Menu') . qq|</th>
- <td><input name=menustyle type=radio class=radio value=v3 $menustyle_v3> | .
- $locale->text("Top (CSS)") . qq|
- <input name=menustyle type=radio class=radio value=neu $menustyle_neu> | .
- $locale->text("Top (Javascript)") . qq|
- <input name=menustyle type=radio class=radio value=old $menustyle_old> | .
- $locale->text("Old (on the side)") . qq|</td>
- </tr>
- <input name=printer type=hidden value="$myconfig{printer}">
- <tr class=listheading>
- <th colspan=2>| . $locale->text("Print options") . qq|</th>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Default template format') . qq|</th>
- <td><select name="template_format">$template_format</select></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Number of copies') . qq|</th>
- <td><input name="copies" size="10" value="| .
- $form->quote($myconfig{"copies"}) . qq|"></td>
- </tr>
-
-
- <tr class=listheading>
- <th colspan=2> </th>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Business Number') . qq|</th>
- <td><input name=businessnumber size=25 value="$myconfig{businessnumber}"></td>
- </tr>
- <tr>
- <td colspan=2>
- <table width=100%>
- <tr>
- <th align=right>| . $locale->text('Year End') . qq| (mm/dd)</th>
- <td><input name=yearend size=5 value=$form->{defaults}{yearend}></td>
- <th align=right>| . $locale->text('Weight Unit') . qq|</th>
- <td><input name=weightunit size=5 value="$form->{defaults}{weightunit}"></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr class=listheading>
- <th colspan=2>|
- . $locale->text('Last Numbers & Default Accounts') . qq|</th>
- </tr>
- <tr>
- <td colspan=2>
- <table width=100%>
- <tr>
- <th align=right nowrap>| . $locale->text('Inventory Account') . qq|</th>
- <td><select name=inventory_accno>$myconfig{IC}</select></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Revenue Account') . qq|</th>
- <td><select name=income_accno>$myconfig{IC_income}</select></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Expense Account') . qq|</th>
- <td><select name=expense_accno>$myconfig{IC_expense}</select></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Foreign Exchange Gain') . qq|</th>
- <td><select name=fxgain_accno>$myconfig{FX_gain}</select></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Foreign Exchange Loss') . qq|</th>
- <td><select name=fxloss_accno>$myconfig{FX_loss}</select></td>
- </tr>
- <tr>
- <td colspan=2>|
- . $locale->text(
- 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies'
- )
- . qq|<br><input name=curr size=40 value="$form->{defaults}{curr}"></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td colspan=2>
- <table width=100%>
- <tr>
- <th align=right nowrap>| . $locale->text('Last Invoice Number') . qq|</th>
- <td><input name=invnumber size=10 value=$form->{defaults}{invnumber}></td>
- <th align=right nowrap>|
- . $locale->text('Last Customer Number') . qq|</th>
- <td><input name=customernumber size=10 value=$form->{defaults}{customernumber}></td>
- </tr>
- <tr>
- <th align=right nowrap>|
- . $locale->text('Last Credit Note Number') . qq|</th>
- <td><input name=cnnumber size=10 value=$form->{defaults}{cnnumber}></td>
- <th align=right nowrap>|
- . $locale->text('Last Vendor Number') . qq|</th>
- <td><input name=vendornumber size=10 value=$form->{defaults}{vendornumber}></td>
- </tr>
- <tr>
- <th align=right nowrap>|
- . $locale->text('Last Sales Order Number') . qq|</th>
- <td><input name=sonumber size=10 value=$form->{defaults}{sonumber}></td>
- </tr>
- <tr>
- <th align=right nowrap>|
- . $locale->text('Last Purchase Order Number') . qq|</th>
- <td><input name=ponumber size=10 value=$form->{defaults}{ponumber}></td>
- <th align=right nowrap>|
- . $locale->text('Last Article Number') . qq|</th>
- <td><input name=articlenumber size=10 value=$form->{defaults}{articlenumber}></td>
- </tr>
- <tr>
- <th align=right nowrap>|
- . $locale->text('Last Sales Quotation Number') . qq|</th>
- <td><input name=sqnumber size=10 value=$form->{defaults}{sqnumber}></td>
- <th align=right nowrap>|
- . $locale->text('Last Service Number') . qq|</th>
- <td><input name=servicenumber size=10 value=$form->{defaults}{servicenumber}></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Last RFQ Number') . qq|</th>
- <td><input name=rfqnumber size=10 value=$form->{defaults}{rfqnumber}></td>
- <th align=right nowrap></th>
- <td></td>
- </tr>
- </table>
- </td>
- </tr>|;
-# <tr class=listheading>
-# <th colspan=2>| . $locale->text('Tax Accounts') . qq|</th>
-# </tr>
-# <tr>
-# <td colspan=2>
-# <table>
-# <tr>
-# <th> </th>
-# <th>| . $locale->text('Rate') . qq| (%)</th>
-# <th>| . $locale->text('Number') . qq|</th>
-# </tr>
-# |;
-#
-# foreach $accno (sort keys %{ $form->{taxrates} }) {
-# print qq|
-# <tr>
-# <th align=right>$form->{taxrates}{$accno}{description}</th>
-# <td><input name=$form->{taxrates}{$accno}{id} size=6 value=$form->{taxrates}{$accno}{rate}></td>
-# <td><input name="taxnumber_$form->{taxrates}{$accno}{id}" value="$form->{taxrates}{$accno}{taxnumber}"></td>
-# </tr>
-# |;
-# $form->{taxaccounts} .= "$form->{taxrates}{$accno}{id} ";
-# }
-#
-# chop $form->{taxaccounts};
-#
-# print qq|
-# <input name=taxaccounts type=hidden value="$form->{taxaccounts}">
-#
-# </table>
-# </td>
-# </tr>
-print qq| </table>
- </td>
- </tr>
- <tr>
- <td><hr size=3 noshade></td>
- </tr>
-</table>
-
-<input type=hidden name=path value=$form->{path}>
-<input type=hidden name=login value=$form->{login}>
-<input type=hidden name=password value=$form->{password}>
-
-<br>
-<input type=submit class=submit name=action value="|
- . $locale->text('Save') . qq|">|;
-
- if ($form->{menubar}) {
- require "$form->{path}/menu.pl";
- &menubar;
- }
-
- print qq|
- </form>
-
-</body>
-</html>
-|;
-
- $lxdebug->leave_sub();
-}
-
-sub save_preferences {
- $lxdebug->enter_sub();
-
- $form->{stylesheet} = $form->{usestylesheet};
-
- $form->redirect($locale->text('Preferences saved!'))
- if (
- AM->save_preferences(\%myconfig, \%$form, $memberfile, $userspath, $webdav
- ));
- $form->error($locale->text('Cannot save preferences!'));
-
- $lxdebug->leave_sub();
-}
-
-sub backup {
- $lxdebug->enter_sub();
-
- if ($form->{media} eq 'email') {
- $form->error($locale->text('No email address for') . " $myconfig{name}")
- unless ($myconfig{email});
-
- $form->{OUT} = "$sendmail";
-
- }
-
- AM->backup(\%myconfig, \%$form, $userspath);
-
- if ($form->{media} eq 'email') {
- $form->redirect($locale->text('Backup sent to') . qq| $myconfig{email}|);
- }
-
- $lxdebug->leave_sub();
-}
-
-sub audit_control {
- $lxdebug->enter_sub();
-
- $form->{title} = $locale->text('Audit Control');
-
- AM->closedto(\%myconfig, \%$form);
-
- if ($form->{revtrans}) {
- $checked{Y} = "checked";
- } else {
- $checked{N} = "checked";
- }
-
- $form->header;
-
- print qq|
-<body>
-
-<form method=post action=$form->{script}>
-
-<input type=hidden name=path value=$form->{path}>
-<input type=hidden name=login value=$form->{login}>
-<input type=hidden name=password value=$form->{password}>
-
-<table width=100%>
- <tr><th class=listtop>$form->{title}</th></tr>
- <tr height="5"></tr>
- <tr>
- <td>
- <table>
- <tr>
- <td>|
- . $locale->text('Enforce transaction reversal for all dates') . qq|</th>
- <td><input name=revtrans class=radio type=radio value="1" $checked{Y}> |
- . $locale->text('Yes')
- . qq| <input name=revtrans class=radio type=radio value="0" $checked{N}> |
- . $locale->text('No')
- . qq|</td>
- </tr>
- <tr>
- <th>| . $locale->text('Close Books up to') . qq|</th>
- <td><input name=closedto size=11 title="$myconfig{dateformat}" value=$form->{closedto}></td>
- </tr>
- </table>
- </td>
- </tr>
-</table>
-
-<hr size=3 noshade>
-
-<br>
-<input type=hidden name=nextsub value=doclose>
-
-<input type=submit class=submit name=action value="|
- . $locale->text('Continue') . qq|">
-
-</form>
-
-</body>
-</html>
-|;
-
- $lxdebug->leave_sub();
-}
-
-sub doclose {
- $lxdebug->enter_sub();
-
- AM->closebooks(\%myconfig, \%$form);
-
- if ($form->{revtrans}) {
- $form->redirect(
- $locale->text('Transaction reversal enforced for all dates'));
- } else {
- if ($form->{closedto}) {
- $form->redirect(
- $locale->text('Transaction reversal enforced up to') . " "
- . $locale->date(\%myconfig, $form->{closedto}, 1));
- } else {
- $form->redirect($locale->text('Books are open'));
- }
- }
-
- $lxdebug->leave_sub();
-}
-
-sub add_warehouse {
- $lxdebug->enter_sub();
-
- $form->{title} = "Add";
-
- $form->{callback} =
- "$form->{script}?action=add_warehouse&path=$form->{path}&login=$form->{login}&password=$form->{password}"
- unless $form->{callback};
-
- &warehouse_header;
- &form_footer;
-
- $lxdebug->leave_sub();
-}
-
-sub edit_warehouse {
- $lxdebug->enter_sub();
-
- $form->{title} = "Edit";
-
- AM->get_warehouse(\%myconfig, \%$form);
-
- &warehouse_header;
- &form_footer;
-
- $lxdebug->leave_sub();
-}
-
-sub list_warehouse {
- $lxdebug->enter_sub();
-
- AM->warehouses(\%myconfig, \%$form);
-
- $form->{callback} =
- "$form->{script}?action=list_warehouse&path=$form->{path}&login=$form->{login}&password=$form->{password}";
-
- $callback = $form->escape($form->{callback});
-
- $form->{title} = $locale->text('Warehouses');
-
- @column_index = qw(description);
-
- $column_header{description} =
- qq|<th class=listheading width=100%>|
- . $locale->text('Description')
- . qq|</th>|;
-
- $form->header;
-
- print qq|
-<body>
-
-<table width=100%>
- <tr>
- <th class=listtop>$form->{title}</th>
- </tr>
- <tr height="5"></tr>
- <tr>
- <td>
- <table width=100%>
- <tr class=listheading>
-|;
-
- map { print "$column_header{$_}\n" } @column_index;
-
- print qq|
- </tr>
-|;
-
- foreach $ref (@{ $form->{ALL} }) {
-
- $i++;
- $i %= 2;
-
- print qq|
- <tr valign=top class=listrow$i>
-|;
-
- $column_data{description} =
- qq|<td><a href=$form->{script}?action=edit_warehouse&id=$ref->{id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{description}</td>|;
-
- map { print "$column_data{$_}\n" } @column_index;
-
- print qq|
- </tr>
-|;
- }
-
- print qq|
- </table>
- </td>
- </tr>
- <tr>
- <td><hr size=3 noshade></td>
- </tr>
-</table>
-
-<br>
-<form method=post action=$form->{script}>
-
-<input name=callback type=hidden value="$form->{callback}">
-
-<input type=hidden name=type value=warehouse>
-
-<input type=hidden name=path value=$form->{path}>
-<input type=hidden name=login value=$form->{login}>
-<input type=hidden name=password value=$form->{password}>
-
-<input class=submit type=submit name=action value="|
- . $locale->text('Add') . qq|">|;
-
- if ($form->{menubar}) {
- require "$form->{path}/menu.pl";
- &menubar;
- }
-
- print qq|
- </form>
-
- </body>
- </html>
-|;
-
- $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|<textarea name="description" rows=$rows cols=60 wrap=soft>$form->{description}</textarea>|;
- } else {
- $description =
- qq|<input name=description size=60 value="$form->{description}">|;
- }
-
- $form->header;
-
- print qq|
-<body>
-
-<form method=post action=$form->{script}>
-
-<input type=hidden name=id value=$form->{id}>
-<input type=hidden name=type value=warehouse>
-
-<table width=100%>
- <tr>
- <th class=listtop colspan=2>$form->{title}</th>
- </tr>
- <tr height="5"></tr>
- <tr>
- <th align=right>| . $locale->text('Description') . qq|</th>
- <td>$description</td>
- </tr>
- <tr>
- <td colspan=2><hr size=3 noshade></td>
- </tr>
-</table>
-|;
-
- $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();
-
- &{ $form->{nextsub} };
-
- $lxdebug->leave_sub();
-}
-
-sub edit_units {
- $lxdebug->enter_sub();
-
- $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}));
-
- @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}))));
- }
- my $i = 1;
- foreach (@unit_list) {
- $_->{"factor"} = $form->format_amount(\%myconfig, $_->{"factor"}, 5) if ($_->{"factor"});
- $_->{"UNITLANGUAGES"} = [];
- foreach my $lang (@languages) {
- push(@{ $_->{"UNITLANGUAGES"} },
- { "idx" => $i,
- "unit" => $_->{"name"},
- "language_id" => $lang->{"id"},
- "localized" => $_->{"LANGUAGES"}->{$lang->{"template_code"}}->{"localized"},
- "localized_plural" => $_->{"LANGUAGES"}->{$lang->{"template_code"}}->{"localized_plural"},
- });
- }
- $i++;
- }
-
- $units = AM->retrieve_units(\%myconfig, $form, $form->{"unit_type"});
- $ddbox = AM->unit_select_data($units, undef, 1);