Various changes to support Payment 1
My initial drafting of this script could not support Payment 1 properly, as I started the script after Payment 1 in 2018-05 round was already done. These changes, while not yet fully tested, probably should work to handle Payment 1 tickets.
This commit is contained in:
parent
950d3d374f
commit
bf631e8259
1 changed files with 55 additions and 31 deletions
|
@ -15,7 +15,8 @@ our $RT_CMD;
|
||||||
require 'rt-helper.pl';
|
require 'rt-helper.pl';
|
||||||
|
|
||||||
my($PAYMENT_DIR, $VERBOSE, $INTERACTIVE, $PAYMENT_NUMBER, $INVOICE_LINE, $INTERN_SUCCESS_FILE,
|
my($PAYMENT_DIR, $VERBOSE, $INTERACTIVE, $PAYMENT_NUMBER, $INVOICE_LINE, $INTERN_SUCCESS_FILE,
|
||||||
$INTERN_FAIL_FILE, $LEDGER_ENTRY_DATE, $SVN_CMD, $ROUND, $TRAVEL_NOTICE_TICKET);
|
$INTERN_FAIL_FILE, $LEDGER_ENTRY_DATE, $SVN_CMD, $ROUND, $TRAVEL_NOTICE_TICKET,
|
||||||
|
$OVERRIDE_APPROVAL_TAG);
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
sub LedgerTagFromTicket($$) {
|
sub LedgerTagFromTicket($$) {
|
||||||
|
@ -74,13 +75,13 @@ GetOptions("paymentDir=s" => \$PAYMENT_DIR, "verbose=i" => \$VERBOSE, "interacti
|
||||||
"invoiceLine=s" => \$INVOICE_LINE, "internSuccessFile=s", \$INTERN_SUCCESS_FILE,
|
"invoiceLine=s" => \$INVOICE_LINE, "internSuccessFile=s", \$INTERN_SUCCESS_FILE,
|
||||||
"internFailFile=s", \$INTERN_FAIL_FILE, 'ledgerEntryDate=s' => \$LEDGER_ENTRY_DATE,
|
"internFailFile=s", \$INTERN_FAIL_FILE, 'ledgerEntryDate=s' => \$LEDGER_ENTRY_DATE,
|
||||||
"svnCommand=s" => \$SVN_CMD, "round=s" => \$ROUND,
|
"svnCommand=s" => \$SVN_CMD, "round=s" => \$ROUND,
|
||||||
|
'overrideApprovalTag=s' => \$OVERRIDE_APPROVAL_TAG,
|
||||||
'travelNoticeTicket=i' => \$TRAVEL_NOTICE_TICKET);
|
'travelNoticeTicket=i' => \$TRAVEL_NOTICE_TICKET);
|
||||||
|
|
||||||
$RT_CMD = '/usr/bin/rt' unless defined $RT_CMD;
|
$RT_CMD = '/usr/bin/rt' unless defined $RT_CMD;
|
||||||
$SVN_CMD = '/usr/bin/svn' unless defined $SVN_CMD;
|
$SVN_CMD = '/usr/bin/svn' unless defined $SVN_CMD;
|
||||||
|
|
||||||
$INTERACTIVE = 0 if not defined $INTERACTIVE;
|
$INTERACTIVE = 0 if not defined $INTERACTIVE;
|
||||||
|
|
||||||
unless (defined $TRAVEL_NOTICE_TICKET) {
|
unless (defined $TRAVEL_NOTICE_TICKET) {
|
||||||
print STDERR "usage: $0 --travelNoticeTicket=<TICKET_NUMBER> option is required and must be an integer\n";
|
print STDERR "usage: $0 --travelNoticeTicket=<TICKET_NUMBER> option is required and must be an integer\n";
|
||||||
exit 1;
|
exit 1;
|
||||||
|
@ -123,6 +124,10 @@ unless (defined $PAYMENT_NUMBER and $PAYMENT_NUMBER =~ /^[123]$/) {
|
||||||
print STDERR "usage: $0 --paymentNumber=<VALUE> option is required and must be 1, 2 or 3\n";
|
print STDERR "usage: $0 --paymentNumber=<VALUE> option is required and must be 1, 2 or 3\n";
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
|
if ( (not defined $OVERRIDE_APPROVAL_TAG) and $PAYMENT_NUMBER == 1) {
|
||||||
|
print STDERR "usage: $0 --overrideApprovalTag=<STRING> option is required if payment number is 1\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
$VERBOSE = 0 unless defined $VERBOSE;
|
$VERBOSE = 0 unless defined $VERBOSE;
|
||||||
|
|
||||||
opendir(my $dh, $PAYMENT_DIR);
|
opendir(my $dh, $PAYMENT_DIR);
|
||||||
|
@ -146,10 +151,13 @@ while (my $file = readdir $dh) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (not defined $mentorDate) {
|
if (not defined $mentorDate) {
|
||||||
|
if ($PAYMENT_NUMBER == 1) {
|
||||||
|
$mentorDate = $LEDGER_ENTRY_DATE;
|
||||||
|
} else {
|
||||||
print STDERR "\"$file\": Skipping: Inside that file there is no valid Date: header" ;
|
print STDERR "\"$file\": Skipping: Inside that file there is no valid Date: header" ;
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
my(@nameComponents) = split(/\s*-\s*/, $name);
|
my(@nameComponents) = split(/\s*-\s*/, $name);
|
||||||
my(@searchTerms);
|
my(@searchTerms);
|
||||||
foreach my $name (@nameComponents) {
|
foreach my $name (@nameComponents) {
|
||||||
|
@ -188,8 +196,8 @@ while (my $file = readdir $dh) {
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($PAYMENT_NUMBER <= 1) {
|
if ($PAYMENT_NUMBER < 1 or $PAYMENT_NUMBER > 3) {
|
||||||
print STDERR "Sorry, script does not yet support first payment\n";
|
print STDERR "Payment number should be between 1 and 3\n";
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
# Check to see if this payment was already made
|
# Check to see if this payment was already made
|
||||||
|
@ -207,6 +215,7 @@ while (my $file = readdir $dh) {
|
||||||
# Check to see if previous payment was sent payment
|
# Check to see if previous payment was sent payment
|
||||||
my $prevPayNum = $PAYMENT_NUMBER - 1;
|
my $prevPayNum = $PAYMENT_NUMBER - 1;
|
||||||
|
|
||||||
|
if ($prevPayNum > 0) {
|
||||||
my $lastPayDate = PaymentDateByTicket($ticket, $prevPayNum);
|
my $lastPayDate = PaymentDateByTicket($ticket, $prevPayNum);
|
||||||
if (not defined $lastPayDate) {
|
if (not defined $lastPayDate) {
|
||||||
print STDERR "\"$file\": \"$ticket\": Skipped: payment $prevPayNum was not made yet";
|
print STDERR "\"$file\": \"$ticket\": Skipped: payment $prevPayNum was not made yet";
|
||||||
|
@ -217,19 +226,19 @@ while (my $file = readdir $dh) {
|
||||||
}
|
}
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
my $expectVal = 'payment-' . $PAYMENT_NUMBER . "-approved";
|
my $expectVal = 'payment-' . $PAYMENT_NUMBER . "-approved";
|
||||||
if ($completedInternshipField eq $expectVal) {
|
if ($completedInternshipField eq $expectVal and $PAYMENT_NUMBER != 1) {
|
||||||
print STDERR "\"$file\": \"$ticket\": $PAYMENT_NUMBER PAYMENT-DONE: Skipped: completed-internship is ",
|
print STDERR "\"$file\": \"$ticket\": $PAYMENT_NUMBER PAYMENT-DONE: Skipped: completed-internship is ",
|
||||||
"\"$completedInternshipField\" which indicates this payment round is in process.\n";
|
"\"$completedInternshipField\" which indicates this payment round is in process.\n";
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
$expectVal = 'payment-' . $prevPayNum . "-approved";
|
$expectVal = 'payment-' . $prevPayNum . "-approved" if $PAYMENT_NUMBER != 1;
|
||||||
if ($completedInternshipField ne $expectVal) {
|
if ($prevPayNum > 0 and $completedInternshipField ne $expectVal) {
|
||||||
print STDERR "\"$file\": \"$ticket\": Skipped: completed-internship field was ",
|
print STDERR "\"$file\": \"$ticket\": Skipped: completed-internship field was ",
|
||||||
"\"$completedInternshipField\" instead of \"$expectVal\".\n";
|
"\"$completedInternshipField\" instead of \"$expectVal\".\n";
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
my(%links) = GetLinksForTicket($ticket);
|
my(%links) = GetLinksForTicket($ticket);
|
||||||
if ($VERBOSE > 5) {
|
if ($VERBOSE > 5) {
|
||||||
use Data::Dumper;
|
use Data::Dumper;
|
||||||
|
@ -276,11 +285,15 @@ while (my $file = readdir $dh) {
|
||||||
my $successString = ($pass) ? "success" : "failed";
|
my $successString = ($pass) ? "success" : "failed";
|
||||||
my $repositoryFile = File::Spec->catfile($PAYMENT_DIR, $mentorDate . "_" . $entity . '_' . $successString . '-report.mbox');
|
my $repositoryFile = File::Spec->catfile($PAYMENT_DIR, $mentorDate . "_" . $entity . '_' . $successString . '-report.mbox');
|
||||||
my $approvalTag = $repositoryFile;
|
my $approvalTag = $repositoryFile;
|
||||||
|
if ($PAYMENT_NUMBER == 1) {
|
||||||
|
$approvalTag = " ;Approval: $OVERRIDE_APPROVAL_TAG";
|
||||||
|
unlink(File::Spec->catfile($PAYMENT_DIR, $file));
|
||||||
|
} else {
|
||||||
$approvalTag =~ s%^.*(Projects/Outreachy/.*)$%$1%;
|
$approvalTag =~ s%^.*(Projects/Outreachy/.*)$%$1%;
|
||||||
$approvalTag = " ;Approval: $approvalTag";
|
$approvalTag = " ;Approval: $approvalTag";
|
||||||
|
|
||||||
rename(File::Spec->catfile($PAYMENT_DIR, $file), $repositoryFile);
|
rename(File::Spec->catfile($PAYMENT_DIR, $file), $repositoryFile);
|
||||||
system($SVN_CMD, "add", $repositoryFile);
|
system($SVN_CMD, "add", $repositoryFile);
|
||||||
|
}
|
||||||
open(my $rtCorrespondFH, "|-", $RT_CMD, 'correspond', $ticket, '-m', '-');
|
open(my $rtCorrespondFH, "|-", $RT_CMD, 'correspond', $ticket, '-m', '-');
|
||||||
my @dd;
|
my @dd;
|
||||||
foreach my $line (@{$internCorrespond{$successString}}) {
|
foreach my $line (@{$internCorrespond{$successString}}) {
|
||||||
|
@ -304,7 +317,7 @@ while (my $file = readdir $dh) {
|
||||||
'Status=open');
|
'Status=open');
|
||||||
my($leftA, $rightA);
|
my($leftA, $rightA);
|
||||||
if ($PAYMENT_NUMBER == 1) {
|
if ($PAYMENT_NUMBER == 1) {
|
||||||
$leftA = ' $-500.00'; $rightA = ' $500.00';
|
$leftA = ' $-1,000.00'; $rightA = ' $1,000.00';
|
||||||
} elsif ($PAYMENT_NUMBER == 2) {
|
} elsif ($PAYMENT_NUMBER == 2) {
|
||||||
$leftA = '$-2,250.00'; $rightA = '$2,250.00';
|
$leftA = '$-2,250.00'; $rightA = '$2,250.00';
|
||||||
} elsif ($PAYMENT_NUMBER == 3) {
|
} elsif ($PAYMENT_NUMBER == 3) {
|
||||||
|
@ -317,22 +330,33 @@ while (my $file = readdir $dh) {
|
||||||
$contractName =~ s/^\s*//; $contractName =~ s/\s*$//;
|
$contractName =~ s/^\s*//; $contractName =~ s/\s*$//;
|
||||||
|
|
||||||
open(my $paymentValsFH, ">", File::Spec->catfile($PAYMENT_DIR, "payment-values.txt"));
|
open(my $paymentValsFH, ">", File::Spec->catfile($PAYMENT_DIR, "payment-values.txt"));
|
||||||
|
print "OUTREACHY INTERNSHIP PAYMENT $PAYMENT_NUMBER ";
|
||||||
foreach my $key (keys %paymentVals) {
|
foreach my $key (keys %paymentVals) {
|
||||||
print $paymentValsFH "$key:$paymentVals{$key}\n";
|
print $paymentValsFH sprintf(" %20s", $key), "$paymentVals{$key}\n";
|
||||||
}
|
}
|
||||||
close $paymentValsFH;
|
print $paymentValsFH sprintf(" %20s", 'TOTAL AMOUNT'), "$rightA\n\n LEDGER ENTRY:\n\n";
|
||||||
|
|
||||||
open(my $ledgerEntryFH, ">>", File::Spec->catfile($PAYMENT_DIR, "entry.ledger"));
|
my $ledgerEntryFile = File::Spec->catfile($PAYMENT_DIR, "entry.ledger")
|
||||||
print $ledgerEntryFH <<LEDGER_ENTRY
|
open(my $ledgerEntryFH, ">>", $ledgerEntryFile);
|
||||||
|
my $ledgerEntryStr = <<LEDGER_ENTRY
|
||||||
|
|
||||||
$LEDGER_ENTRY_DATE $contractName - Outreachy Internship - Round 2018-05 - Payment $PAYMENT_NUMBER
|
$LEDGER_ENTRY_DATE $contractName - Outreachy Internship - Round 2018-12 - Payment $PAYMENT_NUMBER
|
||||||
@tags ;Invoice: $INVOICE_LINE
|
@tags ;Invoice: $INVOICE_LINE
|
||||||
$approvalTag
|
$approvalTag
|
||||||
Accrued:Accounts Payable:Outreachy $leftA
|
Accrued:Accounts Payable:Outreachy $leftA
|
||||||
Expenses:Outreachy:Internships $rightA
|
Expenses:Outreachy:Internships $rightA
|
||||||
LEDGER_ENTRY
|
LEDGER_ENTRY
|
||||||
;
|
;
|
||||||
|
print $ledgerEntryFH $ledgerEntryStr;
|
||||||
close $ledgerEntryFH ;
|
close $ledgerEntryFH ;
|
||||||
|
open(my $ledgerTagConvertFH, "|-", File::Spec->catfile($ENV{CONSERVANCY_REPOSITORY},
|
||||||
|
'Financial', 'Code', 'ledger-tag-convert.plx') .
|
||||||
|
'<' . $ledgerEntryFile);
|
||||||
|
foreach my $line (<$ledgerTagConvertFH>) {
|
||||||
|
print $paymentValsFH $line;
|
||||||
|
}
|
||||||
|
close $ledgerTagConvertFH;
|
||||||
|
close $paymentValsFH;
|
||||||
} else {
|
} else {
|
||||||
system($RT_CMD, "edit", $ticket, 'set', 'CF.{completed-internship}=unsuccessful');
|
system($RT_CMD, "edit", $ticket, 'set', 'CF.{completed-internship}=unsuccessful');
|
||||||
if ($PAYMENT_NUMBER == 1) {
|
if ($PAYMENT_NUMBER == 1) {
|
||||||
|
|
Loading…
Reference in a new issue