package BP;
-
sub get_vc {
$main::lxdebug->enter_sub();
# connect to database
my $dbh = $form->dbconnect($myconfig);
-
- my %arap = ( invoice => 'ar',
- packing_list => 'ar',
- sales_order => 'oe',
- purchase_order => 'oe',
- sales_quotation => 'oe',
- request_quotation => 'oe',
- check => 'ap',
- receipt => 'ar'
- );
-
+
+ my %arap = (invoice => 'ar',
+ packing_list => 'ar',
+ sales_order => 'oe',
+ purchase_order => 'oe',
+ sales_quotation => 'oe',
+ request_quotation => 'oe',
+ check => 'ap',
+ receipt => 'ar');
+
$query = qq|SELECT count(*)
FROM (SELECT DISTINCT ON (vc.id) vc.id
FROM $form->{vc} vc, $arap{$form->{type}} a, status s
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
push @{ $form->{"all_$form->{vc}"} }, $ref;
}
-
+
$sth->finish;
$dbh->disconnect;
-
+
$main::lxdebug->leave_sub();
}
-
-
sub payment_accounts {
$main::lxdebug->enter_sub();
my ($self, $myconfig, $form) = @_;
-
+
# connect to database
my $dbh = $form->dbconnect($myconfig);
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
push @{ $form->{accounts} }, $ref;
}
-
+
$sth->finish;
$dbh->disconnect;
-
+
$main::lxdebug->leave_sub();
}
-
sub get_spoolfiles {
$main::lxdebug->enter_sub();
my $invnumber = "invnumber";
if ($form->{type} eq 'check' || $form->{type} eq 'receipt') {
-
+
$arap = ($form->{type} eq 'check') ? "ap" : "ar";
my ($accno) = split /--/, $form->{account};
-
+
$query = qq|SELECT a.id, s.spoolfile, vc.name, ac.transdate, a.invnumber,
a.invoice, '$arap' AS module
FROM status s, chart c, $form->{vc} vc, $arap a, acc_trans ac
AND ac.chart_id = c.id
AND NOT ac.fx_transaction|;
} else {
-
+
$arap = "ar";
my $invoice = "a.invoice";
-
+
if ($form->{type} =~ /_(order|quotation)$/) {
$invnumber = "ordnumber";
- $arap = "oe";
- $invoice = '0';
+ $arap = "oe";
+ $invoice = '0';
}
-
+
$query = qq|SELECT a.id, a.$invnumber AS invnumber, a.ordnumber,
a.quonumber, a.transdate, $invoice AS invoice,
'$arap' AS module, vc.name, s.spoolfile
if ($form->{"$form->{vc}_id"}) {
$query .= qq| AND a.$form->{vc}_id = $form->{"$form->{vc}_id"}|;
} else {
- if ($form->{$form->{vc}}) {
- my $name = $form->like(lc $form->{$form->{vc}});
+ if ($form->{ $form->{vc} }) {
+ my $name = $form->like(lc $form->{ $form->{vc} });
$query .= " AND lower(vc.name) LIKE '$name'";
}
}
$query .= " AND lower(a.quonumber) LIKE '$quonumber'";
}
-# $query .= " AND a.transdate >= '$form->{transdatefrom}'" if $form->{transdatefrom};
-# $query .= " AND a.transdate <= '$form->{transdateto}'" if $form->{transdateto};
+ if ($form->{type} =~ /(invoice|sales_order|sales_quotation|packing_list|puchase_order|request_quotation)$/) {
+ $query .= " AND a.transdate >= '$form->{transdatefrom}'" if $form->{transdatefrom};
+ $query .= " AND a.transdate <= '$form->{transdateto}'" if $form->{transdateto};
+ }
my @a = (transdate, $invnumber, name);
my $sortorder = join ', ', $form->sort_columns(@a);
- $sortorder = $form->{sort} unless $sortorder;
-
- $query .= " ORDER by $sortorder";
+ $sortorder = $form->{sort} if $form->{sort};
+ $query .= " ORDER by $sortorder";
my $sth = $dbh->prepare($query);
$sth->execute || $form->dberror($query);
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
push @{ $form->{SPOOL} }, $ref;
}
-
+
$sth->finish;
$dbh->disconnect;
$main::lxdebug->leave_sub();
}
-
sub delete_spool {
$main::lxdebug->enter_sub();
my $dbh = $form->dbconnect_noauto($myconfig);
my $query;
-
+
if ($form->{type} =~ /(check|receipt)/) {
$query = qq|DELETE FROM status
WHERE spoolfile = ?|;
WHERE spoolfile = ?|;
}
my $sth = $dbh->prepare($query) || $form->dberror($query);
-
+
foreach my $i (1 .. $form->{rowcount}) {
if ($form->{"checked_$i"}) {
$sth->execute($form->{"spoolfile_$i"}) || $form->dberror($query);
$sth->finish;
}
}
-
+
# commit
my $rc = $dbh->commit;
$dbh->disconnect;
foreach my $i (1 .. $form->{rowcount}) {
$_ = qq|$spool/$form->{"spoolfile_$i"}|;
if ($form->{"checked_$i"}) {
- unlink;
+ unlink;
}
}
}
return $rc;
}
-
sub print_spool {
$main::lxdebug->enter_sub();
WHERE formname = '$form->{type}'
AND spoolfile = ?|;
my $sth = $dbh->prepare($query) || $form->dberror($query);
-
+
foreach my $i (1 .. $form->{rowcount}) {
if ($form->{"checked_$i"}) {
open(OUT, $form->{OUT}) or $form->error("$form->{OUT} : $!");
-
+
$spoolfile = qq|$spool/$form->{"spoolfile_$i"}|;
-
+
# send file to printer
open(IN, $spoolfile) or $form->error("$spoolfile : $!");
while (<IN>) {
- print OUT $_;
+ print OUT $_;
}
close(IN);
close(OUT);
$sth->execute($form->{"spoolfile_$i"}) || $form->dberror($query);
$sth->finish;
-
+
}
}
$main::lxdebug->leave_sub();
}
-
1;