#!/usr/bin/env perl use Getopt::Std; getopts('t'); # testing our($opt_t); use strict; use warnings; my $JUST_TESTING = $opt_t || 0; # dumps xl file only # export CENTRE=uclh; perl script/crons/monthly/lab_test_audit.pl # manual run ### recipients ################################################################# my @recipients = qw(raj wai.keong); # ################################################################################ BEGIN { use lib '/home/raj/perl5/lib/perl5'; # *must* come before FindBin($Bin) use FindBin qw($Bin); # warn $Bin; exit; use lib $Bin . '/../../../lib'; # override default db test: $ENV{ROSEDB_DEVINIT} = "$Bin/../../../config/rosedb_devinit_prod.pl"; } use IO::All; use Data::Printer; use LIMS::Local::LIMS; # for LIMS::Model use LIMS::Local::ScriptHelpers; my $tools = LIMS::Local::ScriptHelpers->new(); $tools->test_only($JUST_TESTING); my $config = $tools->config(); my $today = $tools->time_now; my $filename = 'lab_test_audit_data.xls'; # provides access to LIMS::Model: my $lims = LIMS::Local::LIMS->new({tools => $tools}); # 1st of month 2 months ago: my $d1 = $today->clone->subtract( months => 2 ); # end of month, 2 months ago (ie yesterday minus 1 month): my $d2 = $today->clone->subtract( months => 1 )->subtract( days => 1 ); my $subject = sprintf 'Lab test audit data [%s to %s]', $d1->dmy, $d2->dmy; # p $subject; # args for Model::Roles::Query::_set_search_constraints(): my %args = ( 'date_from' => $d1, # '01/01/2014' # dates OK also 'date_to' => $d2, # '31/10/2014' ); # p %args; exit; my $xl = $lims->model('Audit')->lab_test_turnaround_export(\%args); if ($JUST_TESTING) { io($filename)->print($xl); exit; } my %mail = ( config => $config, subject => $subject, filename => $filename, attachment => $xl, ); $tools->send_mail(\%mail, \@recipients);