#!/usr/bin/perl

use strict;
use CGI;

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

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

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

my $uid         =$payment->{'uid'};
my $amtReceived =$payment->{'amtReceived'};
my $payList     =$payment->{'payList'};
my $description =$payment->{'description'};
my $payMethod     =$payment->{'payMethod'};
my $tender=$payment->{'tender'};
my $change  =$payment->{'change'};

my $respUid     =$resp->{'uid'};
my $pid= trans_payment($dbh,$respUid,$uid,$amtReceived,$payList,$description,undef,$payMethod,$tender,$change);
my $unpaidList =trans_getUnpaidChargeList($dbh,$uid);
my $balance =trans_getBalance($dbh,$uid);
print "Content-type: text/plain\n\n";

my $rs={status=>1,pid=>$pid,unpaidList=>$unpaidList,balance=>$balance};
print   to_json($rs);


#-------------------------------------------------------------------------------
sub getRqPayment{

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