#!/usr/bin/perl

use strict;
use CGI;

use JSON;
use Opals::Context;
use Opals::User;
use	Opals::Transaction qw(
    trans_getUnpaidChargeList
    trans_getBalance
    trans_adjustCharge
    trans_getCharge
);
use Opals::Locale qw(
    loc_getMsgFile
    loc_write
);

 
my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }

my $request=getRequest();
my $cgi    = CGI->new;
my ($errCode, $ck, $resp) = Opals::User::user_currentUser($dbh, $cgi);

my $uidList  =$request->{'uidList'};
my $note     =$request->{'note'};

my $respUid     =$resp->{'uid'};

foreach my $uid(@$uidList){
    my $unpaidList = trans_getUnpaidChargeList($dbh,$uid);
    foreach my $charge(@$unpaidList){
        if($charge->{'balance'}>0){
            $charge->{'waive'} +=$charge->{'balance'};        
            $charge = trans_adjustCharge($dbh,$respUid,$charge,$note);
        }
    }
}

print "Content-type: text/plain\n\n";

my $rs={status=>1};
print   to_json($rs);

#-------------------------------------------------------------------------------
sub getRequest{

  my $request;
  if ($ENV{'REQUEST_METHOD'} eq "POST") {
        my $json ="";
        while (<STDIN>) {
            $json .= $_;
        }
        $request = decode_json($json);
    }
   return $request;
}
