<?php

include "../includes/sessioncheckserviceuser.php";
require_once "../includes/function.php";
$strReasonCombo = isset($HTTP_POST_VARS["optReason"]) ? Trim($HTTP_POST_VARS["optReason"]) : "";
$strOtherReason = isset($HTTP_POST_VARS["txtReason"]) ? Trim($HTTP_POST_VARS["txtReason"]) : "";
$iTransactionId = isset($HTTP_POST_VARS["hdTransactionId"]) ? Trim($HTTP_POST_VARS["hdTransactionId"]) : "";
$strDateTime = func_get_current_date_time();
$return_insertId = func_transaction_updatenew($iTransactionId, $cnn_cs);
$qryUpdate = "update cs_transactiondetails set cancelstatus ='Y',cancellationDate = '{$strDateTime}',reason='{$strReasonCombo}',other='{$strOtherReason}'";
$qryUpdate .= " where transactionId =" . $return_insertId;
if (!mysql_query($qryUpdate)) {
    print "Can not execute query";
    exit;
}
$user_id = func_get_value_of_field($cnn_cs, "cs_transactiondetails", "userId", "transactionId", $return_insertId);
func_canceledTransaction_receipt($user_id, $return_insertId, $cnn_cs);
header('location:customerservice.php');
 $other = isset($HTTP_GET_VARS['other']) ? Trim($HTTP_GET_VARS['other']) : "";
 if ($cancel) {
     $iTransactionId = $id;
     $return_insertId = func_transaction_updatenew($iTransactionId, $cnn_cs);
     $query = "Update transactiondetails set cancelstatus='Y' where transactionId={$return_insertId} and userid={$sessionlogin}";
     //		echo $query;
     mysql_query($query);
     if (mysql_affected_rows() == 0) {
         $outhtml = "y";
         $msgtodisplay = "This transaction has been already canceled";
         message($msgtodisplay, $outhtml, $headerInclude);
         exit;
     } else {
         $show_sql = mysql_query("update transactiondetails set reason='{$cancelreason}',cancellationDate='{$canceldate}' where transactionId={$return_insertId} and userid={$sessionlogin}");
         $show_sql = mysql_query("update transactiondetails set other='{$other}' where transactionId={$return_insertId} and userid={$sessionlogin}");
         func_canceledTransaction_receipt($sessionlogin, $id, $cnn_cs);
         $outhtml = "y";
         $msgtodisplay = "Selected transactions has been canceled";
         message($msgtodisplay, $outhtml, $headerInclude);
         exit;
     }
 } else {
     if ($cnumber != "" && $id != "" || $tele_number != "") {
         if ($cnumber) {
             $cnumber_qry = "a.CCnumber ='" . etelEnc($cnumber) . "' and";
         }
         if ($id) {
             $tid_qry = "a.transactionId={$id} and ";
         }
         $querystr = "select b.companyname,a.name,a.surname,a.transactionDate,a.checkorcard,a.CCnumber,a.checkto,a.amount,a.status,a.bankaccountnumber,a.bankroutingcode,a.phonenumber,a.address,a.country,a.city,a.state,a.zipcode,a.memodet,a.signature,a.email,a.transactionId,a.cardtype,a.validupto,a.reason,a.other,a.cvv,a.misc,a.Invoiceid,a.checktype,a.bankname,a.accounttype,a.ipaddress,a.cancelstatus,a.voiceAuthorizationno,a.shippingTrackingno,a.socialSecurity,a.driversLicense,a.chequedate,a.billingDate,a.licensestate from transactiondetails as a,customerdetails as b where " . $tid_qry . "a.userid={$sessionlogin} and " . $cnumber_qry . " " . $telephone_qry . " a.userid=b.userid";
         //	 echo $querystr;
         print "Can not execute query cancel update query";
         exit;
     }
     $qryUpdate = "update cs_transactiondetails set reason=null, other=null,cancellationDate=null,admin_approval_for_cancellation='N' where transactionId={$iTransactionId}";
     if (!mysql_query($qryUpdate, $cnn_cs)) {
         print mysql_errno() . ": " . mysql_error() . "<BR>";
         print "Can not execute query cancel return query";
         exit;
     }
     if ($strPaymentType == "C") {
         //if($strBankRoutingCode != "")
         //{
         func_send_cancel_mail($iCompanyId, $strPaymentType);
         //}
     }
     func_canceledTransaction_receipt($iCompanyId, $return_insertId, $cnn_cs);
 } else {
     if ($strCancel == "reject") {
         $qryUpdateCallNotes = "update cs_callnotes set cancel_status='0' where note_id={$iNoteId}";
         $qryUpdate = "update cs_transactiondetails set admin_approval_for_cancellation='D' where transactionId={$iTransactionId}";
         if (!mysql_query($qryUpdate, $cnn_cs)) {
             print mysql_errno() . ": " . mysql_error() . "<BR>";
             print "Can not execute query cancel update query";
             exit;
         }
         $qryUpdate = "update cs_transactiondetails set reason=null, other=null,cancellationDate=null,admin_approval_for_cancellation='N' where transactionId={$iTransactionId}";
         if (!mysql_query($qryUpdate, $cnn_cs)) {
             print mysql_errno() . ": " . mysql_error() . "<BR>";
             print "Can not execute query cancel update query";
             exit;
         }
     exit;
 }
 if (mysql_num_rows($rst_select_status) > 0) {
     $db_passstatus = mysql_result($rst_select_status, 0, 0);
     $db_status = mysql_result($rst_select_status, 0, 1);
     $db_cancelstatus = mysql_result($rst_select_status, 0, 2);
     $db_passcount = mysql_result($rst_select_status, 0, 3);
     $db_approvalcount = mysql_result($rst_select_status, 0, 4);
 }
 $qrydeclineUpdate = "update cs_transactiondetails set td_is_chargeback = '{$td_is_chargeback}', cancelstatus = '{$cancelstatus}',reason='{$strtxt}' where transactionId={$iTransactionId}";
 if (!mysql_query($qrydeclineUpdate, $cnn_cs)) {
     print mysql_errno() . ": " . mysql_error() . "<BR>";
     print "Can not execute query pass update query";
     exit;
 }
 func_canceledTransaction_receipt($companyids, $iTransactionId, $cnn_cs);
 if ($strDeclinedReason != "") {
     $qrydeclineUpdate = "update cs_transactiondetails set declinedReason = '{$strDeclinedReason}' where transactionId={$iTransactionId}";
     if (!mysql_query($qrydeclineUpdate, $cnn_cs)) {
         print mysql_errno() . ": " . mysql_error() . "<BR>";
         print "Can not execute query pass update query";
         exit;
     }
 }
 if ($strPassStatus != "" && $strPassStatus != $db_passstatus) {
     if ($strPassStatus == "NP") {
         $qryUpdate = "update cs_transactiondetails set td_is_chargeback = '{$td_is_chargeback}', cancelstatus = '{$cancelstatus}', nopasscomments = '{$strNoPassReason}' where transactionId={$iTransactionId}";
     } else {
         if ($db_passstatus == "NP") {
             $qryUpdate = "update cs_transactiondetails set nopasscomments = '' where transactionId={$iTransactionId}";
         }
             print "Can not execute query status update";
             exit;
         }
     }
 }
 if ($strCancel != "" && $strCancel != $db_cancelstatus) {
     $return_insertId = func_transaction_updatenew($iTransactionId, $cnn_cs);
     $qryUpdate = "update cs_transactiondetails set passStatus='ND',cancelstatus='Y',reason='{$strCancelReason}',other='{$strOtherReason}',cancellationDate='{$strCurrentDateTime}' where transactionId={$return_insertId}";
     if (!mysql_query($qryUpdate, $cnn_cs)) {
         print mysql_errno() . ": " . mysql_error() . "<BR>";
         print "Can not execute query cancel update query";
         exit;
     } else {
         //send mail to the bank if the billing date is on or before current date and status is approved
         $user_id = func_get_value_of_field($cnn_cs, "cs_transactiondetails", "userId", "transactionId", $return_insertId);
         func_canceledTransaction_receipt($user_id, $iTransactionId, $cnn_cs);
         $qry_select = "SELECT billingDate,status,bankroutingcode FROM cs_transactiondetails WHERE transactionId = " . $return_insertId;
         $rst_select = mysql_query($qry_select, $cnn_cs);
         if (mysql_num_rows($rst_select) > 0) {
             $str_bill_date = mysql_result($rst_select, 0, 0);
             $str_approval_status = mysql_result($rst_select, 0, 1);
             $strBankRoutingCode = mysql_result($rst_select, 0, 2);
             //print("id= ".$iTransactionId." bill date= ".$str_bill_date." current= ".$strCurrentDateTime." status= ".$str_approval_status."<br>");
             if ($str_bill_date != "") {
                 if ($strCurrentDateTime >= $str_bill_date && $str_approval_status == "A") {
                     if ($str_payment_type == "C") {
                         //if($strBankRoutingCode != "") {
                         func_send_cancel_mail($iCompanyId, $str_payment_type);
                         //}
                     }
                 }