# sanity check, can't have AR with AR_...
if ($form->{AR} || $form->{AP} || $form->{IC}) {
map { delete $form->{$_} }
- qw(AR_amount AR_tax AR_paid AP_amount AP_tax AP_paid IC_sale IC_cogs IC_taxpart IC_income IC_expense IC_taxservice CT_tax);
+ qw(AR_amount AR_tax AR_paid AP_amount AP_tax AP_paid IC_sale IC_cogs IC_taxpart IC_income IC_expense IC_taxservice);
+ }
+
+ if ($form->{AR_include_in_dropdown}) {
+ $form->{$form->{AR_include_in_dropdown}} = $form->{AR_include_in_dropdown};
+ }
+ if ($form->{AP_include_in_dropdown}) {
+ $form->{$form->{AP_include_in_dropdown}} = $form->{AP_include_in_dropdown};
}
$form->{link} = "";
$form->{IC}, $form->{IC_sale},
$form->{IC_cogs}, $form->{IC_taxpart},
$form->{IC_income}, $form->{IC_expense},
- $form->{IC_taxservice}, $form->{CT_tax}
+ $form->{IC_taxservice}
) {
$form->{link} .= "${item}:" if ($item);
}
$form->{id} = "";
}
+ $query = '
+ SELECT accno
+ FROM chart
+ WHERE accno = ?';
+
+ my @values = ($form->{accno});
+
+ if ( $form->{id} ) {
+ $query .= ' AND NOT id = ?';
+ push(@values, $form->{id});
+ }
+
+ my ($accno) = selectrow_query($form, $dbh, $query, @values);
+
+ if ($accno) {
+ $form->error($::locale->text('Account number not unique!'));
+ }
+
+
if (!$form->{id} || $form->{id} eq "") {
$query = qq|SELECT nextval('id')|;
($form->{"id"}) = selectrow_query($form, $dbh, $query);
do_query($form, $dbh, $query, $form->{"id"}, $form->{"accno"});
}
- my @values;
+ @values = ();
if ($form->{id}) {
do_query($form, $dbh, $query, $form->{id});
}
- foreach my $table (qw(partstax customertax vendortax tax)) {
- $query = qq|DELETE FROM $table
- WHERE chart_id = ?|;
- do_query($form, $dbh, $query, $form->{id});
- }
+ $query = qq|DELETE FROM tax
+ WHERE chart_id = ?|;
+ do_query($form, $dbh, $query, $form->{id});
# delete chart of account record
$query = qq|DELETE FROM chart
$query = qq|UPDATE leads SET
lead = ?
WHERE id = ?|;
- puhs(@values, $form->{id});
+ push(@values, $form->{id});
} else {
$query = qq|INSERT INTO leads
(lead)
}
$filename .= "." . ($form->{format} eq "html" ? "html" : "tex");
- $filename =~ s|.*/||;
+ if ($form->{"formname"} =~ m|\.\.| || $form->{"formname"} =~ m|^/|) {
+ $filename =~ s|.*/||;
+ }
$display_filename = $filename;
$filename = "$myconfig->{templates}/$filename";
}
my $error = "";
- if (open(TEMPLATE, ">$filename")) {
+ if (open(TEMPLATE, ">", $filename)) {
$content = Encode::encode('utf-8-strict', $content) if $::locale->is_utf8;
$content =~ s/\r\n/\n/g;
print(TEMPLATE $content);
$form->{sdonumber}, $form->{pdonumber},
$currency,
$form->{businessnumber}, $form->{weightunit},
- $form->{language_id});
+ conv_i($form->{language_id}));
do_query($form, $dbh, $query, @values);
$dbh->commit();
$form->{businessnumber} = $businessnumber;
- $myconfig = new User($form->{login});
+ $myconfig = User->new(login => $form->{login});
foreach my $item (keys %$form) {
$myconfig->{$item} = $form->{$item};
$main::lxdebug->enter_sub();
my ($self, $myconfig, $form, $prefix) = @_;
+ $prefix ||= '';
my $dbh = $form->get_standard_dbh;
my $self = shift;
- if (!$main::all_units) {
- $main::all_units = $self->retrieve_units(\%main::myconfig, $main::form);
+ if (!$::request->{cache}{all_units}) {
+ $::request->{cache}{all_units} = $self->retrieve_units(\%main::myconfig, $main::form);
}
$main::lxdebug->leave_sub();
- return $main::all_units;
+ return $::request->{cache}{all_units};
}
$main::lxdebug->enter_sub(2);
my ($this, $a, $b, $all_units) = @_;
+ if (!$all_units) {
+ $all_units = $this->retrieve_all_units;
+ }
+
$main::lxdebug->leave_sub(2) and return 0 unless $a && $b;
$main::lxdebug->leave_sub(2) and return 0 unless $all_units->{$a} && $all_units->{$b};
$main::lxdebug->leave_sub(2) and return 0 unless $all_units->{$a}{base_unit} eq $all_units->{$b}{base_unit};
taxkey,
taxdescription,
round(rate * 100, 2) AS rate,
- chart_id
+ chart_id,
+ (id IN (SELECT tax_id
+ FROM acc_trans)) AS tax_already_used
FROM tax
WHERE id = ? |;