#use SL::PE;
-require "$form->{path}/io.pl";
+require "bin/mozilla/io.pl";
+require "bin/mozilla/common.pl";
1;
$form->{title} = $locale->text('Add ' . ucfirst $form->{item});
$form->{callback} =
- "$form->{script}?action=add&item=$form->{item}&path=$form->{path}&login=$form->{login}&password=$form->{password}"
+ "$form->{script}?action=add&item=$form->{item}&login=$form->{login}&password=$form->{password}"
unless $form->{callback};
- $form->{unit} =
- ($form->{item} eq 'service') ? $locale->text('hr') : $locale->text('ea');
+ $form->{"unit_changeable"} = 1;
+
IC->get_pricegroups(\%myconfig, \%$form);
&link_part;
&display_form;
# $locale->text('Services')
# use JavaScript Calendar or not
- $form->{jsscript} = $jscalendar;
+ $form->{jsscript} = 1;
$jsscript = "";
if ($form->{jsscript}) {
<td width=5%> </td>
<th>| . $locale->text('From') . qq|</th>
$button1
- <th>| . $locale->text('To') . qq|</th>
+ <th>| . $locale->text('To (time)') . qq|</th>
$button2
</tr>
</table>
<tr>
<th>| . $locale->text('From') . qq|</th>
$button1
- <th>| . $locale->text('To') . qq|</th>
+ <th>| . $locale->text('To (time)') . qq|</th>
$button2
</tr>
</table>
<tr>
<th align=right nowrap>| . $locale->text('Part Number') . qq|</th>
<td><input name=partnumber size=20></td>
+ <th align=right nowrap>| . $locale->text('EAN') . qq|</th>
+ <td><input name=ean size=20></td>
</tr>
<tr>
<th align=right nowrap>|
. $locale->text('List Price') . qq|</td>
<td><input name=l_sellprice class=checkbox type=checkbox value=Y checked> |
. $locale->text('Sell Price') . qq|</td>
- <td><input name=l_lastcost class=checkbox type=checkbox value=Y> |
+ <td><input name=l_lastcost class=checkbox type=checkbox value=Y checked> |
. $locale->text('Last Cost') . qq|</td>
<td><input name=l_linetotal class=checkbox type=checkbox value=Y checked> |
. $locale->text('Line Total') . qq|</td>
<input type=hidden name=nextsub value=generate_report>
-<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 type=hidden name=revers value="$form->{revers}">
<input type=hidden name=lastsort value="$form->{lastsort}">
+<input type=hidden name=sort value="description">
<input type=hidden name=ndxs_counter value="$form->{ndxs_counter}">
$lxdebug->leave_sub();
} #end search()
+sub search_update_prices {
+ $lxdebug->enter_sub();
+
+ $form->{title} = $locale->text('Update prices');
+ IC->get_pricegroups(\%myconfig, \%$form);
+
+ # use JavaScript Calendar or not
+# $form->{jsscript} = 1;
+# $jsscript = "";
+# if ($form->{jsscript}) {
+#
+# # with JavaScript Calendar
+# $button1 = qq|
+# <td><input name=transdatefrom id=transdatefrom size=11 title="$myconfig{dateformat}"></td>
+# <td><input type=button name=transdatefrom id="trigger1" value=|
+# . $locale->text('button') . qq|></td>
+# |;
+# $button2 = qq|
+# <td><input name=transdateto id=transdateto size=11 title="$myconfig{dateformat}"></td>
+# <td><input type=button name=transdateto name=transdateto id="trigger2" value=|
+# . $locale->text('button') . qq|></td>
+# |;
+#
+# #write Trigger
+# $jsscript =
+# Form->write_trigger(\%myconfig, "2", "transdatefrom", "BL", "trigger1",
+# "transdateto", "BL", "trigger2");
+# } else {
+#
+# # without JavaScript Calendar
+# $button1 = qq|
+# <td><input name=transdatefrom id=transdatefrom size=11 title="$myconfig{dateformat}"></td>|;
+# $button2 = qq|
+# <td><input name=transdateto id=transdateto size=11 title="$myconfig{dateformat}"></td>|;
+# }
+
+ $onhand = qq|
+ <input name=itemstatus class=radio type=radio value=onhand> |
+ . $locale->text('On Hand') . qq|
+ <input name=itemstatus class=radio type=radio value=short> |
+ . $locale->text('Short') . qq|
+|;
+
+ $makemodel = qq|
+ <tr>
+ <th align=right nowrap>| . $locale->text('Make') . qq|</th>
+ <td><input name=make size=20></td>
+ <th align=right nowrap>| . $locale->text('Model') . qq|</th>
+ <td><input name=model size=20></td>
+ </tr>
+|;
+
+ $serialnumber = qq|
+ <th align=right nowrap>| . $locale->text('Serial Number') . qq|</th>
+ <td><input name=serialnumber size=20></td>
+|;
+
+ $l_serialnumber = qq|
+ <td><input name=l_serialnumber class=checkbox type=checkbox value=Y> |
+ . $locale->text('Serial Number') . qq|</td>
+|;
+
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=title value="$form->{title}">
+
+<table width="100%">
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Part Number') . qq|</th>
+ <td><input name=partnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|
+ . $locale->text('Part Description') . qq|</th>
+ <td colspan=3><input name=description size=40></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Group') . qq|</th>
+ <td><input name=partsgroup size=20></td>
+ $serialnumber
+ </tr>
+ $makemodel
+ <tr>
+ <th align=right nowrap>| . $locale->text('Drawing') . qq|</th>
+ <td><input name=drawing size=20></td>
+ <th align=right nowrap>| . $locale->text('Microfiche') . qq|</th>
+ <td><input name=microfiche size=20></td>
+ </tr>
+ $toplevel
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <input name=itemstatus class=radio type=radio value=active checked> |
+ . $locale->text('Active') . qq|
+ $onhand
+ <input name=itemstatus class=radio type=radio value=obsolete> |
+ . $locale->text('Obsolete') . qq|
+ <input name=itemstatus class=radio type=radio value=orphaned> |
+ . $locale->text('Orphaned') . qq|
+ </td>
+ </tr>
+ $bought
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <hr size=1 noshade>
+ </td>
+ </tr>|;
+ print qq|
+ <tr>
+ <td colspan=4>
+ <table width=100%>
+ <tr>
+ <th class="listheading">| . $locale->text('Preisklasse') . qq|</th>
+ <th class="listheading">| . $locale->text('Preis') . qq|</th>
+ <th class="listheading">| . $locale->text('Prozentual/Absolut') . qq|</th>
+ </tr>
+ <tr>
+ <td>| . $locale->text('Sell Price') . qq|</td>
+ <td><input name="sellprice" size=11 value="$form->{"sellprice"}"></td>
+ <td><input name="sellprice_type" class=radio type=radio value=percent checked>/<input name="sellprice_type" class=radio type=radio value=absolut></td>
+ </tr>
+ <tr>
+ <td>| . $locale->text('List Price') . qq|</td>
+ <td><input name="listprice" size=11 value="$form->{"listprice"}"></td>
+ <td><input name="listprice_type" class=radio type=radio value=percent checked>/<input name="listprice_type" class=radio type=radio value=absolut></td>
+ </tr>
+|;
+ for $i (1 .. $form->{price_rows}) {
+ print qq|
+ <tr>
+ <td width=50%><input type=hidden name="pricegroup_$i" size=30 value="$form->{"pricegroup_$i"}">$form->{"pricegroup_$i"}</td>
+ <td width=50%><input name="price_$i" size=11></td>
+ <input type=hidden name="pricegroup_id_$i" value="$form->{"pricegroup_id_$i"}">
+ <td><input name="pricegroup_type_$i" class=radio type=radio value=percent checked>/<input name="pricegroup_type_$i" class=radio type=radio value=absolut></td>
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+
+ <tr><td colspan=4><hr size=3 noshade></td></tr>
+</table>
+<input type=hidden name=nextsub value=confirm_price_update>
+<input type=hidden name=price_rows value=$form->{price_rows}>
+
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=password value=$form->{password}>
+
+<br>
+<input class=submit type=submit name=action value="|
+ . $locale->text('Continue') . qq|">
+</form>
+
+</body>
+</html>
+|;
+ $lxdebug->leave_sub();
+} #end search()
+
+sub confirm_price_update {
+ $lxdebug->enter_sub();
+
+
+ $form->{nextsub} = "update_prices";
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ # delete action variable
+ map { delete $form->{$_} } qw(action header);
+
+ foreach $key (keys %$form) {
+ $form->{$key} =~ s/\"/"/g;
+ print qq|<input type=hidden name=$key value="$form->{$key}">\n|;
+ }
+
+ print qq|
+<h2 class=confirm>| . $locale->text('Confirm!') . qq|</h2>
+
+<h4>|
+ . $locale->text('Are you sure you want to update the prices')
+. qq| </h4>
+
+<p>
+<input name=action class=submit type=submit value="|
+ . $locale->text('Continue') . qq|">
+</form>
+|;
+
+ $lxdebug->leave_sub();
+}
+
+sub update_prices {
+ $lxdebug->enter_sub();
+
+ if (IC->update_prices(\%myconfig, \%$form)) {
+ $form->redirect($form->{update_count} . $locale->text('prices updated!'));
+ } else {
+ $form->error($locale->text('Could not update prices!'));
+ }
+
+ $lxdebug->leave_sub();
+}
+
sub choice {
$lxdebug->enter_sub();
print qq|
-<input type=hidden name=path value=$form->{path}>
<input type=hidden name=login value=$form->{login}>
<input type=hidden name=password value=$form->{password}>
sub list {
$lxdebug->enter_sub();
- # get parts for
- if (($form->{partnumber} eq "") and ($form->{description} eq "")) {
- IC->get_parts(\%myconfig, \%$form, "");
- } else {
- if ((!($form->{partnumber} eq "")) and ($form->{description} eq "")) {
- IC->get_parts(\%myconfig, \%$form, "partnumber");
- } else {
- if (($form->{partnumber} eq "") and (!($form->{description} eq ""))) {
- IC->get_parts(\%myconfig, \%$form, "description");
- } else {
- IC->get_parts(\%myconfig, \%$form, "all");
- } #fi
- } #fi
- } #fi
+ my @sortorders = ("", "partnumber", "description", "all");
+ my $sortorder = $sortorders[($form->{description} ? 2 : 0) + ($form->{partnumber} ? 1 : 0)];
+ IC->get_parts(\%myconfig, \%$form, $sortorder);
$form->{title} = $locale->text('Top 100 hinzufuegen');
<br>
-<input type=hidden name=path value=$form->{path}>
<input type=hidden name=login value=$form->{login}>
<input type=hidden name=password value=$form->{password}>
} #fi
$callback =
- "$form->{script}?action=top100&path=$form->{path}&login=$form->{login}&password=$form->{password}&searchitems=$form->{searchitems}&itemstatus=$form->{itemstatus}&bom=$form->{bom}&l_linetotal=$form->{l_linetotal}&title="
+ "$form->{script}?action=top100&login=$form->{login}&password=$form->{password}&searchitems=$form->{searchitems}&itemstatus=$form->{itemstatus}&bom=$form->{bom}&l_linetotal=$form->{l_linetotal}&title="
. $form->escape($form->{title}, 1);
# if we have a serialnumber limit search
$callback .= "&partnumber=$form->{partnumber}";
$option .= $locale->text('Part Number') . qq| : $form->{partnumber}<br>|;
}
+ if ($form->{ean}) {
+ $callback .= "&partnumber=$form->{ean}";
+ $option .= $locale->text('EAN') . qq| : $form->{ean}<br>|;
+ }
if ($form->{partsgroup}) {
$callback .= "&partsgroup=$form->{partsgroup}";
$option .= $locale->text('Group') . qq| : $form->{partsgroup}<br>|;
}
@columns = $form->sort_columns(
- qw(number partnumber description partsgroup bin onhand rop unit listprice linetotallistprice sellprice linetotalsellprice lastcost linetotallastcost priceupdate weight image drawing microfiche invnumber ordnumber quonumber name serialnumber soldtotal)
+ qw(number partnumber ean description partsgroup bin onhand rop unit listprice linetotallistprice sellprice linetotalsellprice lastcost linetotallastcost priceupdate weight image drawing microfiche invnumber ordnumber quonumber name serialnumber soldtotal)
);
if ($form->{l_linetotal}) {
|| $form->{rfq}
|| $form->{quoted}) {
$form->{l_onhand} = "Y";
- } else {
+ } else {
$form->{l_linetotalsellprice} = "";
$form->{l_linetotallastcost} = "";
}
$column_data{number} =
"<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{number}, '', " ")
+ . $form->format_amount(\%myconfig, $ref->{number})
. "</td>";
$column_data{partnumber} =
"<td align=$align>$ref->{partnumber} </a></td>";
$column_data{onhand} =
"<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{onhand}, '', " ")
+ . $form->format_amount(\%myconfig, $ref->{onhand})
. "</td>";
$column_data{sellprice} =
"<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{sellprice}, 2, " ")
+ . $form->format_amount(\%myconfig, $ref->{sellprice})
. "</td>";
$column_data{listprice} =
"<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{listprice}, 2, " ")
+ . $form->format_amount(\%myconfig, $ref->{listprice})
. "</td>";
$column_data{lastcost} =
"<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{lastcost}, 2, " ")
+ . $form->format_amount(\%myconfig, $ref->{lastcost})
. "</td>";
$column_data{linetotalsellprice} = "<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{sellprice},
- 2, " ")
+ . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{sellprice}, 2)
. "</td>";
$column_data{linetotallastcost} = "<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{lastcost},
- 2, " ")
+ . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{lastcost}, 2)
. "</td>";
$column_data{linetotallistprice} = "<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{listprice},
- 2, " ")
+ . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{listprice}, 2)
. "</td>";
if (!$ref->{assemblyitem}) {
$column_data{rop} =
"<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{rop}, '', " ") . "</td>";
+ . $form->format_amount(\%myconfig, $ref->{rop}) . "</td>";
$column_data{weight} =
"<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{weight}, '', " ")
+ . $form->format_amount(\%myconfig, $ref->{weight})
. "</td>";
$column_data{unit} = "<td>$ref->{unit} </td>";
$column_data{bin} = "<td>$ref->{bin} </td>";
$column_data{invnumber} =
($ref->{module} ne 'oe')
- ? "<td><a href=$ref->{module}.pl?action=edit&type=invoice&id=$ref->{trans_id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{invnumber}</a></td>"
+ ? "<td><a href=$ref->{module}.pl?action=edit&type=invoice&id=$ref->{trans_id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{invnumber}</a></td>"
: "<td>$ref->{invnumber}</td>";
$column_data{ordnumber} =
($ref->{module} eq 'oe')
- ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{ordnumber}</a></td>"
+ ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{ordnumber}</a></td>"
: "<td>$ref->{ordnumber}</td>";
$column_data{quonumber} =
($ref->{module} eq 'oe' && !$ref->{ordnumber})
- ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{quonumber}</a></td>"
+ ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{quonumber}</a></td>"
: "<td>$ref->{quonumber}</td>";
$column_data{name} = "<td>$ref->{name}</td>";
map { $column_data{$_} = "<td> </td>" } @column_index;
$column_data{linetotalsellprice} =
"<th class=listtotal align=right>"
- . $form->format_amount(\%myconfig, $totalsellprice, 2, " ")
+ . $form->format_amount(\%myconfig, $totalsellprice, 2)
. "</th>";
$column_data{linetotallastcost} =
"<th class=listtotal align=right>"
- . $form->format_amount(\%myconfig, $totallastcost, 2, " ")
+ . $form->format_amount(\%myconfig, $totallastcost, 2)
. "</th>";
$column_data{linetotallistprice} =
"<th class=listtotal align=right>"
- . $form->format_amount(\%myconfig, $totallistprice, 2, " ")
+ . $form->format_amount(\%myconfig, $totallistprice, 2)
. "</th>";
print "<tr class=listtotal>";
<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}>
<input type=hidden name=ndxs_counter value="$form->{ndxs_counter}">
<input class=submit type=submit name=action value="|
- . $locale->text('choice') . qq|">|;
+ . $locale->text('choice') . qq|">
- if ($form->{menubar}) {
- require "$form->{path}/menu.pl";
- &menubar;
- }
-
- print qq|
</form>
</body>
} #fi
$callback =
- "$form->{script}?action=generate_report&path=$form->{path}&login=$form->{login}&password=$form->{password}&searchitems=$form->{searchitems}&itemstatus=$form->{itemstatus}&bom=$form->{bom}&l_linetotal=$form->{l_linetotal}&title="
+ "$form->{script}?action=generate_report&login=$form->{login}&password=$form->{password}&searchitems=$form->{searchitems}&itemstatus=$form->{itemstatus}&bom=$form->{bom}&l_linetotal=$form->{l_linetotal}&title="
. $form->escape($form->{title}, 1);
# if we have a serialnumber limit search
if ($form->{transdateto}) {
$callback .= "&transdateto=$form->{transdateto}";
$option .= "\n<br>"
- . $locale->text('To')
+ . $locale->text('To (time)')
. " "
. $locale->date(\%myconfig, $form->{transdateto}, 1);
}
|| $form->{rfq}
|| $form->{quoted}) {
$form->{l_onhand} = "Y";
- } else {
+ } else {
$form->{l_linetotalsellprice} = "";
$form->{l_linetotallastcost} = "";
}
/<br>/g;
$column_data{partnumber} =
- "<td align=$align><a href=$form->{script}?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{partnumber} </a></td>";
- $column_data{description} = "<td>$ref->{description} </td>";
+ "<td align=$align><a href=$form->{script}?action=edit&id=$ref->{id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{partnumber} </a></td>";
+ $column_data{description} = "<td><a href=$form->{script}?action=edit&id=$ref->{id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{description} </a></td>";
$column_data{partsgroup} = "<td>$ref->{partsgroup} </td>";
$column_data{onhand} =
"<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{onhand}, '', " ")
+ . $form->format_amount(\%myconfig, $ref->{onhand})
. "</td>";
$column_data{sellprice} =
"<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{sellprice}, 2, " ")
+ . $form->format_amount(\%myconfig, $ref->{sellprice}, -2)
. "</td>";
$column_data{listprice} =
"<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{listprice}, 2, " ")
+ . $form->format_amount(\%myconfig, $ref->{listprice}, -2)
. "</td>";
$column_data{lastcost} =
"<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{lastcost}, 2, " ")
+ . $form->format_amount(\%myconfig, $ref->{lastcost}, -2)
. "</td>";
$column_data{linetotalsellprice} = "<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{sellprice},
- 2, " ")
+ . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{sellprice}, 2)
. "</td>";
$column_data{linetotallastcost} = "<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{lastcost},
- 2, " ")
+ . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{lastcost}, 2)
. "</td>";
$column_data{linetotallistprice} = "<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{listprice},
- 2, " ")
+ . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{listprice}, 2)
. "</td>";
if (!$ref->{assemblyitem}) {
$column_data{rop} =
"<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{rop}, '', " ") . "</td>";
+ . $form->format_amount(\%myconfig, $ref->{rop}) . "</td>";
$column_data{weight} =
"<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{weight}, '', " ")
+ . $form->format_amount(\%myconfig, $ref->{weight})
. "</td>";
$column_data{unit} = "<td>$ref->{unit} </td>";
$column_data{bin} = "<td>$ref->{bin} </td>";
$column_data{invnumber} =
($ref->{module} ne 'oe')
- ? "<td><a href=$ref->{module}.pl?action=edit&type=invoice&id=$ref->{trans_id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{invnumber}</a></td>"
+ ? "<td><a href=$ref->{module}.pl?action=edit&type=invoice&id=$ref->{trans_id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{invnumber}</a></td>"
: "<td>$ref->{invnumber}</td>";
$column_data{ordnumber} =
($ref->{module} eq 'oe')
- ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{ordnumber}</a></td>"
+ ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{ordnumber}</a></td>"
: "<td>$ref->{ordnumber}</td>";
$column_data{quonumber} =
($ref->{module} eq 'oe' && !$ref->{ordnumber})
- ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{quonumber}</a></td>"
+ ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{quonumber}</a></td>"
: "<td>$ref->{quonumber}</td>";
$column_data{name} = "<td>$ref->{name}</td>";
$column_data{soldtotal} =
"<td align=right>"
- . $form->format_amount(\%myconfig, $ref->{soldtotal}, '', " ")
+ . $form->format_amount(\%myconfig, $ref->{soldtotal})
. "</td>";
$column_data{deliverydate} = "<td>$ref->{deliverydate}</td>";
map { $column_data{$_} = "<td> </td>" } @column_index;
$column_data{linetotalsellprice} =
"<th class=listtotal align=right>"
- . $form->format_amount(\%myconfig, $totalsellprice, 2, " ")
+ . $form->format_amount(\%myconfig, $totalsellprice, 2)
. "</th>";
$column_data{linetotallastcost} =
"<th class=listtotal align=right>"
- . $form->format_amount(\%myconfig, $totallastcost, 2, " ")
+ . $form->format_amount(\%myconfig, $totallastcost, 2)
. "</th>";
$column_data{linetotallistprice} =
"<th class=listtotal align=right>"
- . $form->format_amount(\%myconfig, $totallistprice, 2, " ")
+ . $form->format_amount(\%myconfig, $totallistprice, 2)
. "</th>";
print "<tr class=listtotal>";
<input type=hidden name=item value=$form->{searchitems}>
-<input type=hidden name=path value=$form->{path}>
<input type=hidden name=login value=$form->{login}>
<input type=hidden name=password value=$form->{password}>|;
print qq|
<input class=submit type=submit name=action value="|
- . $locale->text('Add') . qq|">|;
-
- if ($form->{menubar}) {
- require "$form->{path}/menu.pl";
- &menubar;
- }
+ . $locale->text('Add') . qq|">
- print qq|
</form>
</body>
$column_data{onhand} =
"<th class=listsubtotal align=right>"
- . $form->format_amount(\%myconfig, $subtotalonhand, '', " ")
+ . $form->format_amount(\%myconfig, $subtotalonhand)
. "</th>";
$column_data{linetotalsellprice} =
"<th class=listsubtotal align=right>"
- . $form->format_amount(\%myconfig, $subtotalsellprice, 2, " ")
+ . $form->format_amount(\%myconfig, $subtotalsellprice, 2)
. "</th>";
$column_data{linetotallistprice} =
"<th class=listsubtotal align=right>"
- . $form->format_amount(\%myconfig, $subtotallistprice, 2, " ")
+ . $form->format_amount(\%myconfig, $subtotallistprice, 2)
. "</th>";
$column_data{linetotallastcost} =
"<th class=listsubtotal align=right>"
- . $form->format_amount(\%myconfig, $subtotallastcost, 2, " ")
+ . $form->format_amount(\%myconfig, $subtotallastcost, 2)
. "</th>";
$subtotalonhand = 0;
sub edit {
$lxdebug->enter_sub();
-
+ # show history button
+ $form->{javascript} = qq|<script type="text/javascript" src="js/show_history.js"></script>|;
+ #/show hhistory button
IC->get_part(\%myconfig, \%$form);
+ $form->{"original_partnumber"} = $form->{"partnumber"};
+
$form->{title} = $locale->text('Edit ' . ucfirst $form->{item});
&link_part;
IC->create_links("IC", \%myconfig, \%$form);
# currencies
- map { $form->{selectcurrency} .= "<option>$_\n" } split /:/,
- $form->{currencies};
+ map({ $form->{selectcurrency} .= "<option>$_\n" }
+ split(/:/, $form->{currencies}));
# parts and assemblies have the same links
$item = $form->{item};
sub form_header {
$lxdebug->enter_sub();
- my $dec = '';
-
- #decimalplaces for listprice
- ($dec) = ($form->{listprice} =~ /\.(\d+)/);
- $dec = length $dec;
- my $decimalplaces = ($dec > 2) ? $dec : 2;
- $form->{listprice} =
- $form->format_amount(\%myconfig, $form->{listprice}, $decimalplaces);
-
- #decimalplaces for sellprice and gv
- ($dec) = ($form->{sellprice} =~ /\.(\d+)/);
- $dec = length $dec;
- my $decimalplaces = ($dec > 2) ? $dec : 2;
-
- map {
- $form->{$_} =
- $form->format_amount(\%myconfig, $form->{$_}, $decimalplaces)
- } qw(sellprice gv);
-
- ($dec) = ($form->{lastcost} =~ /\.(\d+)/);
- $dec = length $dec;
- my $decimalplaces = ($dec > 2) ? $dec : 2;
-
- $form->{lastcost} =
- $form->format_amount(\%myconfig, $form->{lastcost}, $decimalplaces);
+ map({ $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, -2) }
+ qw(sellprice listprice lastcost gv));
map { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}) }
qw(weight rop stock);
$form->{$item} =~ s/\"/"/g;
}
+ $payment = qq|<option value=""></option>|;
+ foreach $item (@{ $form->{payment_terms} }) {
+ if ($form->{payment_id} eq $item->{id}) {
+ $payment .= qq|<option value="$item->{id}" selected>$item->{description}</option>|;
+ } else {
+ $payment .= qq|<option value="$item->{id}">$item->{description}</option>|;
+ }
+ }
+
+
if (($rows = $form->numtextrows($form->{notes}, 40)) < 2) {
- $rows = 2;
+ $rows = 4;
}
$notes =
- qq|<textarea name=notes rows=$rows cols=40 wrap=soft>$form->{notes}</textarea>|;
+ qq|<textarea name=notes rows=$rows cols=45 wrap=soft>$form->{notes}</textarea>|;
if (($rows = $form->numtextrows($form->{description}, 40)) > 1) {
$description =
qq|<textarea name="description" rows=$rows cols=40 wrap=soft>$form->{description}</textarea>|;
qq|<input name=description size=40 value="$form->{description}">|;
}
+ $ean = qq|<input name=ean size=40 value="$form->{ean}">|;
+
foreach $item (split / /, $form->{taxaccounts}) {
$form->{"IC_tax_$item"} = ($form->{"IC_tax_$item"}) ? "checked" : "";
}
+ IC->retrieve_buchungsgruppen(\%myconfig, $form);
+ if (@{ $form->{BUCHUNGSGRUPPEN} }) {
+ foreach $item (@{ $form->{BUCHUNGSGRUPPEN} }) {
+ if ($item->{id} == $form->{buchungsgruppen_id}) {
+ $form->{selectbuchungsgruppe} .=
+ "<option value=$item->{id} selected>$item->{description}\n";
+ } elsif (($form->{id} && $form->{orphaned}) || (!$form->{id})) {
+ $form->{selectbuchungsgruppe} .=
+ "<option value=$item->{id}>$item->{description}\n";
+ }
+
+ }
+ }
+
+ $buchungsgruppe = qq|
+ <tr>
+ <th align=right>| . $locale->text('Buchungsgruppe') . qq|</th>
+ <td><select name=buchungsgruppen_id>$form->{selectbuchungsgruppe}</select></td>
+ </tr>|;
+
+
# set option
foreach $item (qw(IC IC_income IC_expense)) {
if ($form->{$item}) {
<td>
<input name=weight size=10 value=$form->{weight}>
</td>
- <th>
-
- $form->{weightunit}
- <input type=hidden name=weightunit value=$form->{weightunit}>
- </th>
</tr>
</table>
</td>
$form->{weight}
<input type=hidden name=weight value=$form->{weight}>
</td>
- <th>
-
- $form->{weightunit}
- <input type=hidden name=weightunit value=$form->{weightunit}>
- </th>
</tr>
</table>
</td>
|;
}
+ $linkaccounts = qq|<input type=hidden name=IC_income value="$form->{IC_income_default}">|;
+
+ if ($form->{IC_cogs_default}) {
+ $form->{IC_expense_default} = $form->{IC_cogs_default};
+ }
+
+ if (($form->{item} eq "service") || ($form->{item} eq "part")) {
+ $linkaccounts .= qq|<input type=hidden name=IC_expense value="$form->{IC_expense_default}">|;
+ }
+ if ($form->{item} eq "part") {
+ $linkaccounts .= qq|<input type=hidden name=IC value="$form->{IC_default}">|;
+ }
if ($form->{item} ne 'service') {
$n = ($form->{onhand} > 0) ? "1" : "0";
</tr>
<tr>
<th align="right" nowrap="true">|
- . $locale->text('Geschäftsvolumen') . qq|</th>
+ . $locale->text('Business Volume') . qq|</th>
<td><input name=gv size=10 value=$form->{gv}></td>
</tr>
|;
+ $notdiscountableok = ($form->{not_discountable}) == 1 ? "checked" : "";
+ $notdiscountable .= qq|
+ <tr>
+ <th align=right nowrap>|
+ . $locale->text('Not Discountable') . qq|</th>
+ <td><input class=checkbox type=checkbox name=not_discountable value=1 $notdiscountableok></td>
+ </tr>
+|;
+
+ $formel =
+ qq|<ilayer><layer onmouseover="this.T_STICKY=true;this.T_STATIC=true;return escape('| . $locale->text('The formula needs the following syntax:<br>For regular article:<br>Variablename= Variable Unit;<br>Variablename2= Variable2 Unit2;<br>...<br>###<br>Variable + ( Variable2 / Variable )<br><b>Please be beware of the spaces in the formula</b><br>') . qq|')"><textarea name=formel rows=4 cols=30 wrap=soft>$form->{formel}</textarea></layer><ilayer>|;
$imagelinks = qq|
<tr>
<td>
|;
}
$shopok = $form->{shop} == 1 ? "checked" : "";
- $obsolete .= qq|
+ $shop .= qq|
<tr>
<th align=right nowrap>|
. $locale->text('Shopartikel') . qq|</th>
</tr>
|;
+
# type=submit $locale->text('Add Part')
# type=submit $locale->text('Add Service')
# type=submit $locale->text('Add Assembly')
# type=submit $locale->text('Edit Service')
# type=submit $locale->text('Edit Assembly')
# use JavaScript Calendar or not
- $form->{jsscript} = $jscalendar;
+ $form->{jsscript} = 1;
$jsscript = "";
if ($form->{jsscript}) {
<td><input name=transdatefrom id=transdatefrom size=11 title="$myconfig{dateformat}"></td>|;
}
+ my $unit_select = '<input type="hidden" name="unit_changeable" value="' . $form->{"unit_changeable"} . '">';
+ if (!$form->{"unit_changeable"}) {
+ $unit_select .= '<input type="hidden" name="unit" value="' . $form->{"unit"} . '">' . $form->{"unit"};
+ } else {
+ my $units = AM->retrieve_units(\%myconfig, $form, $form->{"item"} eq "service" ? "service" : "dimension");
+ $unit_select .= AM->unit_select_html($units, "unit", $form->{"unit"});
+ }
+
$form->{fokus} = "ic.partnumber";
$form->header;
print qq|
<body onLoad="fokus()">
-
+ <script type="text/javascript" src="js/common.js"></script>
+ <script type="text/javascript" src="js/parts_language_selection.js"></script>
<form method=post name="ic" action=$form->{script}>
<input name=taxaccounts type=hidden value="$form->{taxaccounts}">
<input name=rowcount type=hidden value=$form->{rowcount}>
<input name=eur type=hidden value=$eur>
+<input name=language_values type=hidden value="$form->{language_values}">
+<input name="original_partnumber" type="hidden" value="| . $form->quote($form->{"original_partnumber"}) . qq|">
<table width="100%">
<tr>
<table width="100%" height="100%">
<tr class="listheading">
<th class="listheading" align="center" colspan=2>|
- . $locale->text('Link Accounts') . qq|</th>
+ . $locale->text('') . qq|</th>
</tr>
- $linkaccounts
+ <td colspan=2>
+ <table>
+ $buchungsgruppe
+ $linkaccounts
+ </table>
+ </td>
<tr>
<th align="left">| . $locale->text('Notes') . qq|</th>
+ <th align="left">| . $locale->text('Formula') . qq|</th>
</tr>
<tr>
- <td colspan=2>
+ <td>
$notes
</td>
+ <td>
+ $formel
+ </td>
+ </tr>
+ <tr>
+ <th align="left"></th>
+ <th align="left">| . $locale->text('EAN-Code') . qq|</th>
+ </tr>
+ <tr>
+ <td>
+ <button type="button" onclick="parts_language_selection_window('language_values')">| . $locale->text('Set Language Values') . qq|</button>
+ </td>
+ <td>
+ $ean
+ </td>
+ </tr>
+ <tr>
+ <td colspan=2>
+ <table>
+ <tr>
+ <th align=right>| . $locale->text('Payment Terms') . qq|</th>
+ <td><select name=payment_id>$payment</select></td>
+ </tr>
+ </table>
+ </td>
</tr>
</table>
</td>
$lastcost
<tr>
<th align="right" nowrap="true">| . $locale->text('Unit') . qq|</th>
- <td><input name=unit size=5 maxlength="10" value="$form->{unit}"></td>
+ <td>$unit_select</td>
</tr>
$weight
$rop
$bin
+ $notdiscountable
$vegv
+ $shop
$obsolete
</table>
</td>
}
print qq|
- <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 type=hidden name=callback value="$form->{callback}">
if (!$form->{previousform}) {
if ($form->{menubar}) {
- require "$form->{path}/menu.pl";
+ require "bin/mozilla/menu.pl";
&menubar;
}
}
-
+# button for saving history
+ if($form->{id} ne "") {
+ print qq|
+ <input type=button class=submit onclick=set_history_window(|
+ . $form->{id}
+ . qq|); name=history id=history value=|
+ . $locale->text('history')
+ . qq|>|;
+ }
+# /button for saving history
print qq|
</form>
+<script type="text/javascript" src="js/wz_tooltip.js"></script>
+
</body>
</html>
|;
} else {
$href =
- qq|$form->{script}?action=edit&id=$form->{"id_$i"}&path=$form->{path}&login=$form->{login}&password=$form->{password}&rowcount=$i&previousform=$previousform|;
+ qq|$form->{script}?action=edit&id=$form->{"id_$i"}&login=$form->{login}&password=$form->{password}&rowcount=$i&previousform=$previousform|;
$column_data{partnumber} =
qq|<td><input type=hidden name="partnumber_$i" value="$form->{"partnumber_$i"}"><a href=$href>$form->{"partnumber_$i"}</a></td>|;
$column_data{runningnumber} =
&check_form;
- } else {
+ } else {
IC->assembly_item(\%myconfig, \%$form);
}
if ($form->{item} eq 'service') {
- map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
- qw(sellprice listprice);
+ map({ $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+ qw(sellprice listprice lastcost));
&form_header;
+ &price_row;
&form_footer;
}
$locale->text(
"Inventory quantity must be zero before you can set this $form->{item} obsolete!"
))
- if ($form->{onhand});
+ if ($form->{onhand} * 1);
}
+ if (!$form->{buchungsgruppen_id}) {
+ $form->error($locale->text("Parts must have an entry type.") . " " .
+ $locale->text("If you see this message, you most likely just setup your LX-Office and haven't added any entry types. If this is the case, the option is accessible for administrators in the System menu.")
+ );
+ }
+
+ $form->error($locale->text('Description must not be empty!')) unless $form->{description};
+ $form->error($locale->text('Partnumber must not be set to empty!')) if $form->{id} && !$form->{partnumber};
+
# expand dynamic strings
# $locale->text('Inventory quantity must be zero before you can set this part obsolete!')
# $locale->text('Inventory quantity must be zero before you can set this assembly obsolete!')
if ($rc == 3) {
$form->error($locale->text('Partnumber not unique!'));
}
+ # saving the history
+ if(!exists $form->{addition}) {
+ $form->{snumbers} = qq|partnumber_| . $form->{partnumber};
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
+ }
+ # /saving the history
$parts_id = $form->{id};
# load previous variables
sub save_as_new {
$lxdebug->enter_sub();
+ # saving the history
+ if(!exists $form->{addition}) {
+ $form->{snumbers} = qq|partnumber_| . $form->{partnumber};
+ $form->{addition} = "SAVED AS NEW";
+ $form->save_history($form->dbconnect(\%myconfig));
+ }
+ # /saving the history
$form->{id} = 0;
+ if ($form->{"original_partnumber"} &&
+ ($form->{"partnumber"} eq $form->{"original_partnumber"})) {
+ $form->{partnumber} = "";
+ }
&save;
-
$lxdebug->leave_sub();
}
sub delete {
$lxdebug->enter_sub();
-
+ # saving the history
+ if(!exists $form->{addition}) {
+ $form->{snumbers} = qq|partnumber_| . $form->{partnumber};
+ $form->{addition} = "DELETED";
+ $form->save_history($form->dbconnect(\%myconfig));
+ }
+ # /saving the history
$rc = IC->delete(\%myconfig, \%$form);
# redirect
$lxdebug->leave_sub();
}
-sub stock_assembly {
- $lxdebug->enter_sub();
-
- $form->{title} = $locale->text('Stock Assembly');
-
- $form->header;
-
- print qq|
-<body>
-
-<form method=post action=$form->{script}>
-
-<table width="100%">
- <tr>
- <th class=listtop>$form->{title}</th>
- </tr>
- <tr height="5"></tr>
- <tr valign=top>
- <td>
- <table>
- <tr>
- <th align="right" nowrap="true">|
- . $locale->text('Part Number') . qq|</th>
- <td><input name=partnumber size=20></td>
- <td> </td>
- </tr>
- <tr>
- <th align="right" nowrap="true">|
- . $locale->text('Part Description') . qq|</th>
- <td><input name=description size=40></td>
- </tr>
- </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}>
-
-<input type=hidden name=nextsub value=list_assemblies>
-
-<br>
-<input class=submit type=submit name=action value="|
- . $locale->text('Continue') . qq|">
-</form>
-
-</body>
-</html>
-|;
-
- $lxdebug->leave_sub();
-}
-
-sub list_assemblies {
- $lxdebug->enter_sub();
-
- IC->retrieve_assemblies(\%myconfig, \%$form);
-
- $column_header{partnumber} =
- qq|<th class=listheading>| . $locale->text('Part Number') . qq|</th>|;
- $column_header{description} =
- qq|<th class=listheading>| . $locale->text('Part Description') . qq|</th>|;
- $column_header{bin} =
- qq|<th class=listheading>| . $locale->text('Bin') . qq|</th>|;
- $column_header{onhand} =
- qq|<th class=listheading>| . $locale->text('Qty') . qq|</th>|;
- $column_header{rop} =
- qq|<th class=listheading>| . $locale->text('ROP') . qq|</th>|;
- $column_header{stock} =
- qq|<th class=listheading>| . $locale->text('Add') . qq|</th>|;
-
- @column_index = (qw(partnumber description bin onhand rop stock));
-
- $form->{title} = $locale->text('Stock Assembly');
-
- $form->{callback} =
- "$form->{script}?action=stock_assembly&path=$form->{path}&login=$form->{login}&password=$form->{password}";
-
- $form->header;
-
- $colspan = $#column_index + 1;
-
- print qq|
-<body>
-
-<form method=post action=$form->{script}>
-
-<table width=100%>
- <tr>
- <th class=listtop colspan=$colspan>$form->{title}</th>
- </tr>
- <tr size=5></tr>
- <tr class=listheading>|;
-
- map { print "\n$column_header{$_}" } @column_index;
-
- print qq|
- </tr>
-|;
-
- $i = 1;
- foreach $ref (@{ $form->{assembly_items} }) {
-
- map { $ref->{$_} =~ s/\"/"/g } qw(partnumber description);
-
- $column_data{partnumber} = qq|<td width=20%>$ref->{partnumber}</td>|;
- $column_data{description} =
- qq|<td width=50%>$ref->{description} </td>|;
- $column_data{bin} = qq|<td>$ref->{bin} </td>|;
- $column_data{onhand} =
- qq|<td align=right>|
- . $form->format_amount(\%myconfig, $ref->{onhand}, '', " ")
- . qq|</td>|;
- $column_data{rop} =
- qq|<td align=right>|
- . $form->format_amount(\%myconfig, $ref->{rop}, '', " ")
- . qq|</td>|;
- $column_data{stock} = qq|<td width=10%><input name="qty_$i" size=10></td>|;
-
- $j++;
- $j %= 2;
- print
- qq|<tr class=listrow$j><input name="id_$i" type=hidden value=$ref->{id}>\n|;
-
- map { print "\n$column_data{$_}" } @column_index;
-
- print qq|
- </tr>
-|;
-
- $i++;
-
- }
-
- $i--;
- print qq|
- <tr>
- <td colspan=6><hr size=3 noshade>
- </tr>
-</table>
-<input name=rowcount type=hidden value="$i">
-
-<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->{callback}">
-
-<input type=hidden name=nextsub value=restock_assemblies>
-
-<br>
-<input class=submit type=submit name=action value="|
- . $locale->text('Continue') . qq|">
-
-</form>
-
-</body>
-</html>
-|;
-
- $lxdebug->leave_sub();
-}
-
-sub restock_assemblies {
- $lxdebug->enter_sub();
-
- $form->redirect($locale->text('Assemblies restocked!'))
- if (IC->restock_assemblies(\%myconfig, \%$form));
- $form->error($locale->text('Cannot stock assemblies!'));
-
- $lxdebug->leave_sub();
-}
-
sub price_row {
$lxdebug->enter_sub();
$lxdebug->leave_sub();
}
-sub continue { &{ $form->{nextsub} } }
+sub parts_language_selection {
+ $lxdebug->enter_sub();
+
+
+ my $languages = IC->retrieve_languages(\%myconfig, $form);
+
+
+ my $callback = "$form->{script}?action=parts_language_selection&";
+ map({ $callback .= "$_=" . $form->escape($form->{$_}) . "&" }
+ (qw(login password name input_name), grep({ /^[fl]_/ } keys %$form)));
+
+ my @header_sort = qw(name longdescription);
+ my %header_title = ( "name" => $locale->text("Name"),
+ "longdescription" => $locale->text("Long Description"),
+ );
+
+ my @header =
+ map(+{ "column_title" => $header_title{$_},
+ "column" => $_,
+ "callback" => $callback,
+ },
+ @header_sort);
+
+ $form->{"title"} = $locale->text("Language Values");
+ $form->header();
+ print($form->parse_html_template("ic/parts_language_selection", { "HEADER" => \@header,
+ "LANGUAGES" => $languages,
+ "onload" => $onload }));
+
+ $lxdebug->leave_sub();
+}
+
+sub continue { call_sub($form->{"nextsub"}); }