#!/usr/bin/perl
use strict;
use Data::Show;
use File::Stat;
use DateTime;
use Text::CSV;
use Text::Diff;
use Mojo::Template;
use MIME::Lite;
use Net::FTP;
use File::Stat;
use Mojo::UserAgent;
use Mojo::UserAgent::Transactor;
# my $stderrs;
# use Tie::STDERR \&stderrs;
use warnings; no warnings 'uninitialized';

my $dir = '/home/sites/clm.dmadelivers.com/www/clmapp/public/files/opfreturn/';
my $dt = DateTime->now(time_zone => 'America/Chicago');
my $started = $dt->epoch();



my $host= 'axn.amphire.com';
my $user = 'ftpdma207';
my $pass = 'kI7RUzEt';
my $ftpdir = '/DMAOPFChanges';



# ftp://axn.staging.amphire.com / ftpdma207 / faWrudr5
# ftp://axn.amphire.com/  / ftpdma207 / kI7RUzEt

# get new
	my $ftp = Net::FTP->new($host, Passive => 1, Debug => 1) or die "Cannot connect to some.host.name: $@";
	$ftp->login($user,$pass) or die "Cannot login ", $ftp->message;
	$ftp->cwd($ftpdir) or die "Cannot change working directory ", $ftp->message;
	# $ftp->binary(1);
	my @files = $ftp->ls($ftpdir);
	my $file = $files[-1];
	my $lmdtm = 0;
	foreach my $f (@files){
		if(-e $dir . $f){

			my $dirf = $dir . $f;
			my $wc = `cat $dirf | wc -l`;
			chomp($wc);

			my $lsize = -s $dir . $f;
			my $rsize = int( $ftp->size($f) ) - int( $wc );
# show $f, $lsize, $rsize, $wc;			
			if($lsize == $rsize){
				# show 'DELETE';
				$ftp->delete($f);
			}
		}


		next if -e $dir . $f;
		$ftp->get($f, $dir . $f);
		my $mdtm = $ftp->mdtm($f);
		my $date;
		# if($f =~ /(\d+)DMAOPFChanges\.csv/){  # 201938755DMAOPFChanges.csv
		# 	$date = $1;
		# 	# YYYYMDHmm
		# 	# YYYYMMDHmm
		# 	# YYYYMDHHmm
		# 	# YYYYMDDHmm
		# 	# YYYYMMDHmm
		# 	# YYYYMDDHHmm
		# 	# YYYYMMDDHmm
		# 	# YYYYMMDDHHmm
		# }


		if($mdtm > $lmdtm){
			$file = $f;
			$lmdtm = $mdtm;
		}
	}


	# test update DC
	# $file = '201943750DMAOPFChanges.csv';
	# $file = '202133550DMAOPFChanges.csv';
	
	$ftp->quit;

	#show $file;
	my $stat = new File::Stat($dir . $file);


	# my $obj = [
	#   {
	#   	key => '12866357-f808-435a-a390-5987ee22f7b8',
	#     # "deleteType": "DELETE",
	#     # "deleteUrl": "/api/attachment/file/1546969938_SCVP_Presales_MatchingStatus_20181108_111606.txt",
	#     filedir => "/tmp/",
	#     filename => "$file.txt",
	#     filepath => "/tmp/$file",
	#     filesize => $stat->size,
	#     filetype => "txt",
	#     # "fileurl": "/files/uploads/1546969938_SCVP_Presales_MatchingStatus_20181108_111606.txt",
	#     name => "$file",
	#     path => "/tmp/$file",
	#     size => $stat->size,
	#     # "url": "/files/uploads/1546969938_SCVP_Presales_MatchingStatus_20181108_111606.txt"
	#   }
	# ];


	my $ua  = Mojo::UserAgent->new;
	$ua->connect_timeout(30);
	$ua->inactivity_timeout(30);
	$ua->request_timeout(300);
	# my $body = $ua->post('http://clm.dma.rajya/api/presaleitem/itnimportcomplete?import=1&key=12866357-f808-435a-a390-5987ee22f7b8' => json => $obj)->result->body;


	my $t = Mojo::UserAgent::Transactor->new;
	# my $tx = $t->tx(POST => 'http://clm.dma.rajya/import/itn' => form => {key => 'b59597f8-42f5-48b9-8cbb-9a60348821c2', itn => {file => "$dir/$file"}});
	my $tx = $t->tx(POST => 'http://clm.dmadelivers.com/import/itn' => form => {key => 'b59597f8-42f5-48b9-8cbb-9a60348821c2', itn => {file => "$dir/$file"}});
	my $res = $ua->start($tx)->result;
	my $body = $res->body;
	my $json = $res->json;


	my $step1msg = ' Complete ' . $json->{msgs}->[0]->{details}; # $json->{msgs}->[0]->{msg} .
	my $type = $json->{msgs}->[0]->{type};

	# show $json->{msgs};
	my $subject = 'CLM DMAOPFChanges' . $dt->ymd('-') . ' ' . $dt->hms(':');


    open my $fh, '<:encoding(UTF-8)', $dir . $file;
    my $priority = 0;
    while (my $line = <$fh>) {
        if ($line =~ /Updated DC Nbr/i) {
            $priority = 1;
            $subject = 'ACTION REQUIRED: CLM DMAOPFChanges' . $dt->ymd('-') . ' ' . $dt->hms(':');
        }
    }	


	if($type =~ /success/){

		my $jbody = $ua->post('http://clm.dmadelivers.com/api/import/itn?key=b59597f8-42f5-48b9-8cbb-9a60348821c2' => json => $json->{tabledata}->{data})->result->json;

	}
			my $msg = MIME::Lite->new(
				From     => 'root@dmadelivers.com',
				# Bcc => 'dma@ace4it.com',
				Cc => 'dma@ace4it.com',
				To => 'opfftp@dmadelivers.com',
				# To => 'dma@ace4it.com',
				# To => 'matt.kot@dmadelivers.com',
				# Cc => 'jim.szatkowski@dmadelivers.com',
			    Subject  => $subject,
				Type => 'multipart/mixed'
			);
			if($priority){
				$msg->attr('X-Priority','1 (Highest)');
			}

			$msg->attach(
				Type     => 'text/plain',
				Data => $step1msg
			);
			$msg->attach(
				Type     => 'text/csv',
				# Type     => 'application/octet-stream',
				Path => $dir . $file
			);	
			$msg->send;








	print $step1msg;



1;
