use SL::DB::DeliveryOrder;
use SL::DB::Status;
use SL::DBUtils;
+use SL::HTML::Restrict;
use SL::RecordLinks;
use SL::IC;
+use SL::TransNumber;
use strict;
my $vc = $form->{vc} eq "customer" ? "customer" : "vendor";
my $query =
- qq|SELECT dord.id, dord.donumber, dord.ordnumber,
+ qq|SELECT dord.id, dord.donumber, dord.ordnumber, dord.cusordnumber,
dord.transdate, dord.reqdate,
ct.${vc}number, ct.name, dord.${vc}_id, dord.globalproject_id,
dord.closed, dord.delivered, dord.shippingpoint, dord.shipvia,
# connect to database, turn off autocommit
my $dbh = $form->get_standard_dbh($myconfig);
+ my $restricter = SL::HTML::Restrict->create;
my ($query, @values, $sth, $null);
my $ic_cvar_configs = CVar->get_configs(module => 'IC',
dbh => $dbh);
- $form->{donumber} = $form->update_defaults($myconfig, $form->{type} eq 'sales_delivery_order' ? 'sdonumber' : 'pdonumber', $dbh) unless $form->{donumber};
+ my $trans_number = SL::TransNumber->new(type => $form->{type}, dbh => $dbh, number => $form->{donumber}, id => $form->{id});
+ $form->{donumber} ||= $trans_number->create_unique;
$form->{employee_id} = (split /--/, $form->{employee})[1] if !$form->{employee_id};
$form->get_employee($dbh) unless ($form->{employee_id});
# save detail record in delivery_order_items table
@values = (conv_i($item_id), conv_i($form->{id}), conv_i($form->{"id_$i"}),
- $form->{"description_$i"}, $form->{"longdescription_$i"},
+ $form->{"description_$i"}, $restricter->process($form->{"longdescription_$i"}),
$form->{"qty_$i"}, $baseqty,
$form->{"sellprice_$i"}, $form->{"discount_$i"} / 100,
$form->{"unit_$i"}, conv_date($items_reqdate), conv_i($form->{"project_id_$i"}),
conv_i($form->{id}));
do_query($form, $dbh, $query, @values);
- # add shipto
$form->{name} = $form->{ $form->{vc} };
$form->{name} =~ s/--$form->{"$form->{vc}_id"}//;
+ # add shipto
if (!$form->{shipto_id}) {
$form->add_shipto($dbh, $form->{id}, "DO");
}
my $rc = $dbh->commit();
$form->{saved_donumber} = $form->{donumber};
-
+ $form->{saved_ordnumber} = $form->{ordnumber};
+ $form->{saved_cusordnumber} = $form->{cusordnumber};
+
Common::webdav_folder($form);
$main::lxdebug->leave_sub();
$sth = prepare_execute_query($form, $dbh, $query, @do_ids);
delete $form->{"${vc}_id"};
+ my $pos = 0;
+ $form->{ordnumber_array} = ' ';
+ $form->{cusordnumber_array} = ' ';
while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
if ($form->{"${vc}_id"} && ($ref->{"${vc}_id"} != $form->{"${vc}_id"})) {
$sth->finish();
map { $form->{$_} = $ref->{$_} } keys %$ref if ($ref);
$form->{donumber_array} .= $form->{donumber} . ' ';
+ $pos = index($form->{ordnumber_array},' ' . $form->{ordnumber} . ' ');
+ if ($pos == -1) {
+ $form->{ordnumber_array} .= $form->{ordnumber} . ' ';
+ }
+ $pos = index($form->{cusordnumber_array},' ' . $form->{cusordnumber} . ' ');
+ if ($pos == -1) {
+ $form->{cusordnumber_array} .= $form->{cusordnumber} . ' ';
+ }
}
$sth->finish();
$form->{donumber_array} =~ s/\s*$//g;
+ $form->{ordnumber_array} =~ s/ //;
+ $form->{ordnumber_array} =~ s/\s*$//g;
+ $form->{cusordnumber_array} =~ s/ //;
+ $form->{cusordnumber_array} =~ s/\s*$//g;
$form->{saved_donumber} = $form->{donumber};
+ $form->{saved_ordnumber} = $form->{ordnumber};
+ $form->{saved_cusordnumber} = $form->{cusordnumber};
# if not given, fill transdate with current_date
$form->{transdate} = $form->current_date($myconfig) unless $form->{transdate};
doi.reqdate, doi.project_id, doi.serialnumber, doi.lastcost,
doi.ordnumber, doi.transdate, doi.cusordnumber, doi.longdescription,
doi.price_factor_id, doi.price_factor, doi.marge_price_factor, doi.pricegroup_id,
- pr.projectnumber, dord.transdate AS dord_transdate,
+ pr.projectnumber, dord.transdate AS dord_transdate, dord.donumber,
pg.partsgroup
FROM delivery_order_items doi
JOIN parts p ON (doi.parts_id = p.id)