use SL::CVar;
use SL::DBUtils;
+use SL::TransNumber;
use strict;
my $priceupdate = ', priceupdate = current_date';
if ($form->{id}) {
+ my $trans_number = SL::TransNumber->new(type => $form->{item}, dbh => $dbh, number => $form->{partnumber}, id => $form->{id});
+ if (!$trans_number->is_unique) {
+ $::lxdebug->leave_sub;
+ return 3;
+ }
# get old price
$query = qq|SELECT sellprice, weight FROM parts WHERE id = ?|;
$priceupdate = '' if (all { $previous_values->{$_} == $form->{$_} } qw(sellprice lastcost listprice));
} else {
- my ($count) = selectrow_query($form, $dbh, qq|SELECT COUNT(*) FROM parts WHERE partnumber = ?|, $form->{partnumber});
- if ($count) {
- $main::lxdebug->leave_sub();
+ my $trans_number = SL::TransNumber->new(type => $form->{item}, dbh => $dbh, number => $form->{partnumber}, save => 1);
+
+ if ($form->{partnumber} && !$trans_number->is_unique) {
+ $::lxdebug->leave_sub;
return 3;
}
+ $form->{partnumber} ||= $trans_number->create_unique;
+
($form->{id}) = selectrow_query($form, $dbh, qq|SELECT nextval('id')|);
- do_query($form, $dbh, qq|INSERT INTO parts (id, partnumber, unit) VALUES (?, '', '')|, $form->{id});
+ do_query($form, $dbh, qq|INSERT INTO parts (id, partnumber, unit) VALUES (?, ?, '')|, $form->{id}, $form->{partnumber});
$form->{orphaned} = 1;
- if ($form->{partnumber} eq "" && $form->{"item"} eq "service") {
- $form->{partnumber} = $form->update_defaults($myconfig, "servicenumber");
- }
- if ($form->{partnumber} eq "" && $form->{"item"} ne "service") {
- $form->{partnumber} = $form->update_defaults($myconfig, "articlenumber");
- }
-
}
my $partsgroup_id = 0;
if (($form->{"make_$i"}) || ($form->{"model_$i"})) {
#hli
$value = $form->parse_amount($myconfig, $form->{"lastcost_$i"});
- if ($value == $form->{"old_lastcost_$i"})
+ if ($value == $form->parse_amount($myconfig, $form->{"old_lastcost_$i"}))
{
if ($form->{"lastupdate_$i"} eq "") {
$lastupdate = 'now()';
push(@values, '%' . $form->{"${column}_$i"} . '%');
}
+ if ($form->{"id_${i}"}) {
+ $where .= qq| AND p.id = ?|;
+ push @values, $form->{"id_${i}"};
+ }
+
if ($form->{id}) {
$where .= qq| AND NOT (p.id = ?)|;
push(@values, conv_i($form->{id}));
}
my $placeholders = join ', ', ('?') x scalar(@part_ids);
- my $query = qq|SELECT mm.parts_id, mm.model, v.name AS make
+ my $query = qq|SELECT mm.parts_id, mm.model, mm.lastcost, v.name AS make
FROM makemodel mm
LEFT JOIN vendor v ON (mm.make = v.id)
WHERE mm.parts_id IN ($placeholders)|;