my @old_project_ids = ($form->{"globalproject_id"}, grep { $_ } map { $form->{"project_id_$_"} } 1..$form->{"rowcount"});
my $vc = $form->{vc} eq "customer" ? "customers" : "vendors";
- $form->get_lists("shipto" => "ALL_SHIPTO",
- "projects" => { "key" => "ALL_PROJECTS",
+ $form->get_lists("projects" => { "key" => "ALL_PROJECTS",
"all" => 0,
"old_id" => \@old_project_ids },
- "employees" => "ALL_EMPLOYEES",
- "salesmen" => "ALL_SALESMEN",
"taxzones" => "ALL_TAXZONES",
"payments" => "ALL_PAYMENTS",
"currencies" => "ALL_CURRENCIES",
"price_factors" => "ALL_PRICE_FACTORS");
# label subs
+ $TMPL_VAR{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{employee_id}, deleted => 0 ] ]);
+ $TMPL_VAR{ALL_SALESMEN} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{salesman_id}, deleted => 0 ] ]);
+ $TMPL_VAR{ALL_SHIPTO} = SL::DB::Manager::Shipto->get_all(query => [
+ or => [ trans_id => $::form->{"$::form->{vc}_id"} * 1, and => [ shipto_id => $::form->{shipto_id} * 1, trans_id => undef ] ]
+ ]);
$TMPL_VAR{ALL_CONTACTS} = SL::DB::Manager::Contact->get_all(query => [
or => [
cp_cv_id => $::form->{"$::form->{vc}_id"} * 1,
]
]);
$TMPL_VAR{sales_employee_labels} = sub { $_[0]->{name} || $_[0]->{login} };
- $TMPL_VAR{shipto_labels} = sub { join "; ", grep { $_ } map { $_[0]->{"shipto${_}" } } qw(name department_1 street city) };
$TMPL_VAR{department_labels} = sub { "$_[0]->{description}--$_[0]->{id}" };
# vendor/customer
$TMPL_VAR{notes} = qq|<textarea name=notes rows="$rows" cols="25">| . H($form->{notes}) . qq|</textarea>|;
$TMPL_VAR{intnotes} = qq|<textarea name=intnotes rows="$introws" cols="35">| . H($form->{intnotes}) . qq|</textarea>|;
+ IS->get_customer(\%myconfig, \%$form) if $form->{type} =~ /sales_(order|quotation)/;
+
+ if ( $form->{vc} eq 'customer' && !$form->{taxincluded_changed_by_user} ) {
+ if ( $form->{taxincluded_checked} eq 'y' ) {
+ $form->{taxincluded} = 1;
+ } elsif ( $form->{taxincluded_checked} eq 'n' ) {
+ $form->{taxincluded} = 0;
+ } else {
+ $form->{taxincluded} = $myconfig{taxincluded_checked};
+ }
+ }
+
if (!$form->{taxincluded}) {
foreach my $item (split / /, $form->{taxaccounts}) {
# setup vendor / customer data
$form->all_vc(\%myconfig, $form->{vc}, ($form->{vc} eq 'customer') ? "AR" : "AP");
$form->get_lists("projects" => { "key" => "ALL_PROJECTS", "all" => 1 },
- "employees" => "ALL_EMPLOYEES",
- "salesmen" => "ALL_SALESMEN",
"departments" => "ALL_DEPARTMENTS",
"$form->{vc}s" => "ALL_VC");
+ $form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ deleted => 0 ]);
# constants and subs for template
$form->{jsscript} = 1;
- $form->{employee_labels} = sub { $_[0]->{"name"} || $_[0]->{"login"} };
$form->{vc_keys} = sub { "$_[0]->{name}--$_[0]->{id}" };
- $form->{salesman_labels} = $form->{employee_labels};
$form->header();
delete($form->{$idx});
}
- # clear reqdate unless changed
- if ($form->{reqdate} && $form->{id}) {
+ # clear reqdate and transdate unless changed
+ if ( $form->{reqdate} && $form->{id} ) {
my $saved_order = OE->retrieve_simple(id => $form->{id});
- if ($saved_order && $saved_order->{reqdate} eq $form->{reqdate}) {
- delete $form->{reqdate};
+ if ( $saved_order && $saved_order->{reqdate} eq $form->{reqdate} && $saved_order->{transdate} eq $form->{transdate} ) {
+
+ my $dbh = $form->get_standard_dbh;
+
+ my $wday = (localtime(time))[6];
+ my $next_workday = $wday == 5 ? 3 : $wday == 6 ? 2 : 1;
+
+ my $query = 'SELECT
+ date(current_date + interval \''. $next_workday .' days\') AS reqdate,
+ date(current_date) AS transdate';
+ my $ref = selectfirst_hashref_query($form, $dbh, $query);
+
+ map(
+ { $form->{$_} = $ref->{$_} }
+ keys %{$ref}
+ );
}
}