X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=inline;f=bin%2Fmozilla%2Foe.pl;h=72ad0d79930fd63915b196032a1b993cbe1fc9e6;hb=3d9df149ec915037561bebce349e6d49584749e0;hp=40a9b4e024ac31f32836d09006a7babf77953927;hpb=5edee2313bde03fb9b825905a36647569b504199;p=kivitendo-erp.git
diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl
index 40a9b4e02..72ad0d799 100644
--- a/bin/mozilla/oe.pl
+++ b/bin/mozilla/oe.pl
@@ -327,13 +327,9 @@ sub form_header {
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("contacts" => "ALL_CONTACTS",
- "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",
@@ -343,9 +339,21 @@ sub form_header {
"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,
+ and => [
+ cp_cv_id => undef,
+ cp_id => $::form->{cp_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{contact_labels} = sub { join(', ', $_[0]->{"cp_name"}, $_[0]->{"cp_givenname"}) . ($_[0]->{cp_abteilung} ? " ($_[0]->{cp_abteilung})" : "") };
$TMPL_VAR{department_labels} = sub { "$_[0]->{description}--$_[0]->{id}" };
# vendor/customer
@@ -467,6 +475,18 @@ sub form_footer {
$TMPL_VAR{notes} = qq||;
$TMPL_VAR{intnotes} = qq||;
+ 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}) {
@@ -536,11 +556,13 @@ sub update {
set_headings($form->{"id"} ? "edit" : "add");
- map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate) unless $recursive_call;
$form->{update} = 1;
&check_name($form->{vc});
+ if (!$form->{forex}) { # read exchangerate from input field (not hidden)
+ map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate) unless $recursive_call;
+ }
my $buysell = 'buy';
$buysell = 'sell' if ($form->{vc} eq 'vendor');
$form->{forex} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, $buysell);
@@ -699,16 +721,13 @@ sub search {
# 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();
@@ -1610,11 +1629,25 @@ sub save_as_new {
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}
+ );
}
}