blob: d876b49754e6c4c2c5893442310bbed70203b80e (
plain)
- #!/usr/bin/perl
- # This is the SL-Short listener. It listens for the "parts_short" signal and
- # when the signal comes in, prepares a list of short parts to be sent to
- # at least one person.
- #
- # By Chris Travers, Metatron Technology Consulting
- # chris@metatrontech.com
- #
- # Released under the GNU GPL v2.0 or later. See included GPL.txt for more
- # information.
- require "config.pl";
- use DBI;
- my $dsn = "dbi:Pg:dbname=$database";
- my $dbh = DBI->connect(
- $dsn, $db_user,
- $db_passwd,
- {
- AutoCommit => 1,
- PrintError => 0,
- RaiseError => 1,
- }
- );
- $dbh->{pg_enable_utf8} = 1;
- my $sth;
- $dbh->do("LISTEN parts_short");
- while (1) { # loop infinitely
- if ( $dbh->func('pg_notifies') ) {
- &on_notify;
- }
- sleep $cycle_delay;
- }
- sub on_notify {
- open( MAIL, '|-', "$sendmail" );
- $sth = $dbh->prepare( "
- SELECT partnumber, description, onhand, rop FROM parts
- WHERE onhand <= rop
- " );
- $sth->execute;
- print MAIL $template_top;
- while ( ( $partnumber, $description, $avail, $rop ) = $sth->fetchrow_array )
- {
- write MAIL;
- }
- print MAIL $template_foot;
- close MAIL;
- }
|