summaryrefslogtreecommitdiff
path: root/templates/Estonian_UTF8-ap_transaction.html
diff options
context:
space:
mode:
Diffstat (limited to 'templates/Estonian_UTF8-ap_transaction.html')
0 files changed, 0 insertions, 0 deletions
ss="hl slc">#
  • # Batch printing module backend routines
  • #
  • #======================================================================
  • package BP;
  • use LedgerSMB::Sysconfig;
  • sub get_vc {
  • my ( $self, $myconfig, $form ) = @_;
  • # connect to database
  • my $dbh = $form->{dbh};
  • my %arap = (
  • invoice => ['ar'],
  • packing_list => [ 'oe', 'ar' ],
  • sales_order => ['oe'],
  • work_order => ['oe'],
  • pick_list => [ 'oe', 'ar' ],
  • purchase_order => ['oe'],
  • bin_list => ['oe'],
  • sales_quotation => ['oe'],
  • request_quotation => ['oe'],
  • timecard => ['jcitems'],
  • check => ['ap'],
  • );
  • my $query = "";
  • my $sth;
  • my $n;
  • my $count;
  • my $item;
  • my $sth;
  • $item = $form->{dbh}->quote($item);
  • foreach $item ( @{ $arap{ $form->{type} } } ) {
  • $query = qq|
  • SELECT count(*)
  • FROM (SELECT DISTINCT vc.id
  • FROM $form->{vc} vc, $item a, status s
  • WHERE a.entity_id = vc.entity_id
  • AND s.trans_id = a.id
  • AND s.formname = ?
  • AND s.spoolfile IS NOT NULL) AS total|;
  • $sth = $dbh->prepare($query);
  • $sth->execute( $form->{type} );
  • ($n) = $sth->fetchrow_array;
  • $count += $n;
  • }
  • # build selection list
  • my $union = "";
  • $query = "";
  • my @queryargs = ();
  • if ( $count < $myconfig->{vclimit} ) {
  • foreach $item ( @{ $arap{ $form->{type} } } ) {
  • $query .= qq|
  • $union
  • SELECT DISTINCT vc.id, vc.name
  • FROM $item a
  • JOIN $form->{vc} vc
  • USING (entity_id)
  • JOIN status s ON (s.trans_id = a.id)
  • WHERE s.formname = ?
  • AND s.spoolfile IS NOT NULL|;
  • $union = "UNION";
  • push @queryargs, $form->{type};
  • }
  • $sth = $dbh->prepare($query);
  • $sth->execute(@queryargs) || $form->dberror($query);
  • while ( my $ref = $sth->fetchrow_hashref(NAME_lc) ) {
  • push @{ $form->{"all_$form->{vc}"} }, $ref;
  • }
  • $sth->finish;
  • }
  • $dbh->{commit};
  • $form->all_years( $myconfig, $dbh );
  • }
  • sub get_spoolfiles {
  • my ( $self, $myconfig, $form ) = @_;
  • # connect to database
  • my $dbh = $form->{dbh};
  • my $query;
  • my $invnumber = "invnumber";
  • my $item;
  • my %arap = (
  • invoice => ['ar'],
  • packing_list => [ 'oe', 'ar' ],
  • sales_order => ['oe'],
  • work_order => ['oe'],
  • pick_list => [ 'oe', 'ar' ],
  • purchase_order => ['oe'],
  • bin_list => ['oe'],
  • sales_quotation => ['oe'],
  • request_quotation => ['oe'],
  • timecard => ['jc'],
  • check => ['ap'],
  • );
  • ( $form->{transdatefrom}, $form->{transdateto} ) =
  • $form->from_to( $form->{year}, $form->{month}, $form->{interval} )
  • if $form->{year} && $form->{month};
  • my @queryargs;
  • if ( $form->{type} eq 'timecard' ) {
  • my $dateformat = $myconfig->{dateformat};
  • $dateformat =~ s/yy/yyyy/;
  • $dateformat =~ s/yyyyyy/yyyy/;
  • $invnumber = 'id';
  • $query = qq|
  • SELECT j.id, e.name, j.id AS invnumber,
  • to_char(j.checkedin, ?) AS transdate,
  • '' AS ordnumber, '' AS quonumber, '0' AS invoice,
  • '$arap{$form->{type}}[0]' AS module, s.spoolfile
  • FROM jcitems j
  • JOIN employees e ON (e.id = j.employee_id)
  • JOIN status s ON (s.trans_id = j.id)
  • WHERE s.formname = ?
  • AND s.spoolfile IS NOT NULL|;
  • @queryargs = ( $dateformat, $form->{type} );
  • if ( $form->{"$form->{vc}_id"} ) {
  • $query .= qq| AND j.$form->{vc}_id = ?|;
  • push( @queryargs, $form->{"$form->{vc}_id"} );
  • }
  • else {
  • if ( $form->{ $form->{vc} } ) {
  • $item = $form->like( lc $form->{ $form->{vc} } );
  • $query .= " AND lower(e.name) LIKE ?";
  • push( @queryargs, $item );
  • }
  • }
  • if ( $form->{transdatefrom} ) {
  • $query .= " AND j.checkedin >= ?";
  • push( @queryargs, $form->{transdatefrom} );
  • }
  • if ( $form->{transdateto} ) {
  • $query .= " AND j.checkedin <= ?";
  • push( @queryargs, $form->{transdateto} );
  • }
  • }
  • else {
  • @queryargs = ();
  • foreach $item ( @{ $arap{ $form->{type} } } ) {
  • $invoice = "a.invoice";
  • $invnumber = "invnumber";
  • if ( $item eq 'oe' ) {
  • $invnumber = "ordnumber";
  • $invoice = "'0'";
  • }
  • $query .= qq|
  • $union
  • SELECT a.id, vc.name, a.$invnumber AS invnumber, a.transdate,
  • a.ordnumber, a.quonumber, $invoice AS invoice,
  • '$item' AS module, s.spoolfile
  • FROM $item a, $form->{vc} vc, status s
  • WHERE s.trans_id = a.id
  • AND s.spoolfile IS NOT NULL
  • AND s.formname = ?
  • AND a.entity_id = vc.entity_id|;
  • push( @queryargs, $form->{type} );
  • if ( $form->{"$form->{vc}_id"} ) {
  • $query .= qq| AND a.entity_id = $form->{"entity_id"}|;
  • }
  • else {
  • if ( $form->{ $form->{vc} } ne "" ) {
  • $item = $form->like( lc $form->{ $form->{vc} } );
  • $query .= " AND lower(vc.name) LIKE ?";
  • push @queryargs, $item;
  • }
  • }
  • if ( $form->{invnumber} ne "" ) {
  • $item = $form->like( lc $form->{invnumber} );
  • $query .= " AND lower(a.invnumber) LIKE ?";
  • push @queryargs, $item;
  • }
  • if ( $form->{ordnumber} ne "" ) {
  • $item = $form->like( lc $form->{ordnumber} );
  • $query .= " AND lower(a.ordnumber) LIKE ?";
  • push @queryargs, $item;
  • }
  • if ( $form->{quonumber} ne "" ) {
  • $item = $form->like( lc $form->{quonumber} );
  • $query .= " AND lower(a.quonumber) LIKE ?";
  • push @queryargs, $item;
  • }
  • if ( $form->{transdatefrom} ) {
  • $query .= " AND a.transdate >= ?";
  • push @queryargs, $form->{transdatefrom};
  • }
  • if ( $form->{transdateto} ) {
  • $query .= " AND a.transdate <= ?";
  • push @queryargs, $form->{transdateto};
  • }
  • $union = "UNION";
  • }
  • }
  • my %ordinal = (
  • 'name' => 2,
  • 'invnumber' => 3,
  • 'transdate' => 4,
  • 'ordnumber' => 5,
  • 'quonumber' => 6,
  • );
  • my @a = ();
  • push @a, ( "transdate", "$invnumber", "name" );
  • my $sortorder = $form->sort_order( \@a, \%ordinal );
  • $query .= " ORDER by $sortorder";
  • my $sth = $dbh->prepare($query);
  • $sth->execute(@queryargs) || $form->dberror($query);
  • while ( my $ref = $sth->fetchrow_hashref(NAME_lc) ) {
  • push @{ $form->{SPOOL} }, $ref;
  • }
  • $sth->finish;
  • $dbh->commit;
  • }
  • sub delete_spool {
  • my ( $self, $myconfig, $form ) = @_;
  • # connect to database, turn AutoCommit off
  • my $dbh = $form->{dbh};
  • my $query;
  • my %audittrail;
  • $query = qq|
  • UPDATE status
  • SET spoolfile = NULL
  • 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;
  • %audittrail = (
  • tablename => $form->{module},
  • reference => $form->{"reference_$i"},
  • formname => $form->{type},
  • action => 'dequeued',
  • id => $form->{"id_$i"}
  • );
  • $form->audittrail( $dbh, "", \%audittrail );
  • }
  • }
  • # commit
  • my $rc = $dbh->commit;
  • if ($rc) {
  • foreach my $i ( 1 .. $form->{rowcount} ) {
  • $_ = qq|${LedgerSMB::Sysconfig::spool}/$form->{"spoolfile_$i"}|;
  • if ( $form->{"checked_$i"} ) {
  • unlink;
  • }
  • }
  • }
  • $rc;
  • }
  • sub print_spool {
  • my ( $self, $myconfig, $form ) = @_;
  • # connect to database
  • my $dbh = $form->{dbh};
  • my %audittrail;
  • my $query = qq|UPDATE status
  • SET printed = '1'
  • WHERE 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} : $!");
  • binmode(OUT);
  • $spoolfile = qq|$spool/$form->{"spoolfile_$i"}|;
  • # send file to printer
  • open( IN, '<', $spoolfile ) or $form->error("$spoolfile : $!");
  • binmode(IN);
  • while (<IN>) {
  • print OUT $_;
  • }
  • close(IN);
  • close(OUT);
  • $sth->execute( $form->{"spoolfile_$i"} ) || $form->dberror($query);
  • $sth->finish;
  • %audittrail = (
  • tablename => $form->{module},
  • reference => $form->{"reference_$i"},
  • formname => $form->{type},
  • action => 'printed',
  • id => $form->{"id_$i"}
  • );
  • $form->audittrail( $dbh, "", \%audittrail );
  • $dbh->commit;
  • }
  • }
  • }
  • 1;