qq| o.closed, o.delivered, o.quonumber, o.cusordnumber, o.shippingpoint, o.shipvia, | .
qq| o.transaction_description, | .
qq| o.marge_total, o.marge_percent, | .
+ qq| o.exchangerate, | .
qq| o.itime::DATE AS insertdate, | .
qq| department.description as department, | .
- qq| ex.$rate AS exchangerate, | .
+ qq| ex.$rate AS daily_exchangerate, | .
qq| pt.description AS payment_terms, | .
qq| pr.projectnumber AS globalprojectnumber, | .
qq| e.name AS employee, s.name AS salesman, | .
$ref->{remaining_amount} = $ref->{amount} - $ref->{billed_amount};
$ref->{remaining_netamount} = $ref->{netamount} - $ref->{billed_netamount};
}
- $ref->{exchangerate} = 1 unless $ref->{exchangerate};
+ $ref->{exchangerate} ||= $ref->{daily_exchangerate};
+ $ref->{exchangerate} ||= 1;
push @{ $form->{OE} }, $ref if $ref->{id} != $id{ $ref->{id} };
$id{ $ref->{id} } = $ref->{id};
}
require SL::DB::Customer;
my $customer = SL::DB::Manager::Customer->find_by(id => $form->{customer_id});
die "Can't find customer" unless $customer;
+ die $main::locale->text("Error while creating project with project number of new order number, project number #1 already exists!", $form->{ordnumber})
+ if SL::DB::Manager::Project->find_by(projectnumber => $form->{ordnumber});
+
my $new_project = SL::DB::Project->new(
projectnumber => $form->{ordnumber},
description => $customer->name,
);
$new_project->save;
$form->{"globalproject_id"} = $new_project->id;
- };
+ }
CVar->get_non_editable_ic_cvars(form => $form,
dbh => $dbh,
# get tax rates and description
my $accno_id = ($form->{vc} eq "customer") ? $ref->{income_accno} : $ref->{expense_accno};
$query =
- qq|SELECT c.accno, t.taxdescription, t.rate, c.accno as taxnumber | .
+ qq|SELECT c.accno, t.taxdescription, t.rate, t.id as tax_id, c.accno as taxnumber | .
qq|FROM tax t | .
qq|LEFT JOIN chart c on (c.id = t.chart_id) | .
qq|WHERE t.id IN (SELECT tk.tax_id FROM taxkeys tk | .
$form->{"$ptr->{accno}_rate"} = $ptr->{rate};
$form->{"$ptr->{accno}_description"} = $ptr->{taxdescription};
$form->{"$ptr->{accno}_taxnumber"} = $ptr->{taxnumber};
+ $form->{"$ptr->{accno}_tax_id"} = $ptr->{tax_id};
$form->{taxaccounts} .= "$ptr->{accno} ";
}
push(@{ $form->{TEMPLATE_ARRAYS}->{taxrate} }, $form->format_amount($myconfig, $form->{"${item}_rate"} * 100));
push(@{ $form->{TEMPLATE_ARRAYS}->{taxrate_nofmt} }, $form->{"${item}_rate"} * 100);
push(@{ $form->{TEMPLATE_ARRAYS}->{taxnumber} }, $form->{"${item}_taxnumber"});
+ push(@{ $form->{TEMPLATE_ARRAYS}->{tax_id} }, $form->{"${item}_tax_id"});
- my $tax_objs = SL::DB::Manager::Tax->get_objects_from_sql(
- sql => 'SELECT * from tax where chart_id = (SELECT id FROM chart WHERE accno = ?)',
- args => [ $form->{"${item}_taxnumber"} ]
- );
- my $tax_obj;
- if ( $tax_objs ) {
- $tax_obj = $tax_objs->[0];
+ if ( $form->{"${item}_tax_id"} ) {
+ my $tax_obj = SL::DB::Manager::Tax->find_by(id => $form->{"${item}_tax_id"}) or die "Can't find tax with id " . $form->{"${item}_tax_id"};
+ my $description = $tax_obj ? $tax_obj->translated_attribute('taxdescription', $form->{language_id}, 0) : '';
+ push(@{ $form->{TEMPLATE_ARRAYS}->{taxdescription} }, $description . q{ } . 100 * $form->{"${item}_rate"} . q{%});
}
- my $description = $tax_obj ? $tax_obj->translated_attribute('taxdescription', $form->{language_id}, 0) : '';
- push(@{ $form->{TEMPLATE_ARRAYS}->{taxdescription} }, $description . q{ } . 100 * $form->{"${item}_rate"} . q{%});
}
$form->{nodiscount_subtotal} = $form->format_amount($myconfig, $form->{nodiscount_total}, 2);