#!/usr/bin/perl
use strict;

sub making_of_list {
  opendir (FTP, "C:/ftproot") or die $!;
  my @result = grep /txt|doc|mpd|mta/i, (readdir FTP);
  closedir FTP;
  return @result;
}

############################################################

sub copy_from_root {
  my %pats;
  foreach (@_) {
    print $_,"\n";
    my $reports = $_;
    my $invoice = 0;
    if ($reports =~ /^{af,cs,sf}inv/i 
        || $reports =~ /mta/i) {
      $invoice = $reports !~ /mta/i;
      $reports =~ s/.mta/.mpd/ig;
    } elsif ($reports =~ /doc/i) {
      $reports =~ s/doc/txt/ig;
    }
    my $daym = (localtime)[3];
    my $source = "c:/ftproot/$report";
    foreach my $dest ("c:/scripts/attempt/$reports",
                      "c:/afis3too/$daym/$reports",
                      "c:/reports/$reports",
                     ) {
      copy ($source, $dest);
    }
    if ($invoice) {
      copy($source, "c:/invoice/$reports");
    }
    unlink $source;
    my $pap = sprintf("%.6s", $_) . ".bat";
    $pap =~ tr/a-z/A-Z/;
    $pats{$pap} = 1;
  }
  return keys %pats;
}

############################################################


sub list_batch_files {
  return grep /bat/i, glob("c:/reports");
}

sub wow {

my $batch="c:/scripts/bats.txt";
my $fink = "c:/scripts/fink.txt";
my $wow="c:/scripts/wow.txt";
open (BAT, "+$batch") or die $!;
open (LST, "+$fink") or die $!;
my @batch = <BAT>;
my @lst = <LST>;
my $c = 0;
foreach (@lst){
	my $sub=$lst[$c];
	my $d=0;
	foreach (@batch){
		my $sub2 = $batch[$d];
		if ("$sub2" =~ /$sub/ig){
			open (WOW, "+>>$wow") or die $!;
			print WOW $batch[$d];
			print "Working...\n";
		}$d++;
	}$c++;
}
close BAT;
close LST;
close WOW;
}

############################################################

sub run_the_batches {

my $copy="c:/scripts/wow.txt";
open (COPY, "+$copy") || die $!;
my @co = <COPY>;
chomp @co = <COPY>;
my $s=0;
my $output = "c:/reports/$co[$s]";
foreach (@co) {
	system ($output);	
	$s++;
}

}

############################################################

sub delete {

my $fink = "c:/scripts/fink.txt";
my $bat = "c:/scripts/bats.txt";
my $wowo = "c:/scripts/wow.txt";
my $ftpr = "c:/docu/ftproot.txt";

open (FINK, "+>$fink") || die "$!";
open (BAT, "+>$bat") || die "$!";
open (WOW, "+>$wowo") || die "$!";
open (FTP, "+>$ftpr") || die "$!";

unlink <FINK>;
unlink <BAT>;
unlink <WOW>;
unlink <FTP>;

}

#
#
#
#
#
############################################################

############################################################


print "\n\n\n";
print "         Robco Inc. Presents :   \n\n\n";
print "     The NEW, AMAZING, INCREDIBLE ....\n\n\n";
print "      Robco Document Rotisserie!!!!!\n\n\n";
print "Just RENDER it, THEN don't REMEMBER it!!!!!\n\n";
print "         It's just that easy.\n\n\n\n\n";

while (1) {

	my $clock = localtime;
	print $clock,"\n";
	print "sleeping ....  ZzZzZzZzZz......\n";
	sleep (10);
	print "OK! OK!  ....  I'm awake!  ....  I'm awake\n";
	&copy_from_root;
	&make_list_for_batches;
	&this_gets_a_listing_of_the_batch_files;
	&wow;
	&run_the_batches;
	&delete;
	&making_of_list;	
}
