sub rerateandupdate (@)
{
my $currAcct = shift;
my $getAccumsForAcct = qq{ select distinct usage_acum_seq_nbr from svc_price sp,svc_agrmnt_line_item sali,sbscrp_Asgm sa where sp.free_usage_across_acct_ind in ('Y','A') and sp.svc_name=sali.svc_name and sp.comm_svc_area_id=sali.comm_svc_area_id and sp.charge_type_cd='F' and sp.svc_price_expr_dt is null and svc_agrmnt_trmntn_dt is null and sali.sbscrp_id=sa.sbscrp_id and sa.sbscrp_asgm_expr_dt is null and acct_nbr=:currAcct};
my $getAccums = $lda->prepare($getAccumsForAcct);
if(defined($getAccums))
{
$getAccums->execute();
while (my @accums = $getAccums->fetchrow_array() ) {
foreach(@accums)
{
int returnCode = SUCCESS;
my $xmlFile = "GetUsgSummary_" . $acct_nbr . ".xml";
createXmlForUpd( $xmlFile, $acct_nbr, );
$returnCode = invokeServer( $acct_nbr , $xmlFile );
if ( $returnCode != SUCCESS ) { return $returnCode; }
return $returnCode;
}
}
}
}
####
sub createXmlForUpd($$)
{
my $xmlFile = shift;
my $acct_nbr = shift;
my $returnCode = SUCCESS;
# Generate XML API input file for UpdateAccount API
open(INFILE,">$xmlFile")||die "Can not find file $xmlFile\n";
print INFILE '' . "\n";
print INFILE '' . "\n";
print INFILE '' . "\n";
print INFILE '\n";
print INFILE "\n\n";
close(INFILE);
return $returnCode;
}
##
##
sub invokeServer($$)
{
my $acct_nbr = shift;
my $xmlFile = shift;
my $pwd = $ENV{'PWD'};
my $api_call = ${pwd} . "/REAccount1 -stdin < " . $xmlFile;
my $cleanup_call = "rm ". $xmlFile;
if ($opt_c eq "Y" || $opt_c eq "y")
{
my $output = `$api_call`; # Execute Unix command
}
else
{
print LOG_FILE "[$acct_nbr] NO_GO - XML Input file successfully created for acct_nbr = $acct_nbr -> API hasn't been invoked\n";
return SUCCESS;
}
}