<?php

use Illuminate\Database\Capsule\Manager as Capsule;

if (!defined("WHMCS"))
    die("This file cannot be accessed directly");
global $whmcs;
$reportdata["headertext"] = '<form action="" method="post"><select name="status"><option value="any">Any</option><option value="Unpaid">Unpaid</option><option value="Paid">Paid</option></select> &nbsp;&nbsp;&nbsp; <input type="submit" value="Generate Report" name="generatereport"/></form>';
$reportdata["title"] = "Detail of Invoices";
$reportdata["description"] = "";

if (isset($_POST['generatereport']) && $_POST['generatereport'] == 'Generate Report') {
    $status = $whmcs->get_req_var('status');
    $reportdata["tableheadings"] = array("Invoice Id", "Username", "Invoice Date", "Invoice Status", "Payment Method", "Amount", "Domain Name");
    $table = Capsule::table("tblinvoices");
    $startdate = "2019-02-01";
    $enddate = date("Y-m-d", strtotime("now"));
    if ($status != 'any')
        $table->where('status', '=', $status);
    $table->whereDate('date', '>=', $startdate);
    $table->whereDate('date', '<=', $enddate);
    $getInvoices = $table->get();
    echo 'Total Invoices Record Founds: ' . count($getInvoices);
    foreach ($getInvoices as $key => $invoice) {
//        $getInvoiceItem = Capsule::table('tblinvoiceitems')->where('invoiceid', $invoice->id)->get();
        $getInvoiceItem = Capsule::select("select tblinvoiceitems.*, CONCAT(tblclients.firstname,' ',tblclients.lastname) as fullname from tblinvoiceitems inner join tblclients on tblclients.id = tblinvoiceitems.userid where tblinvoiceitems.invoiceid = '" . $invoice->id . "'");
        foreach ($getInvoiceItem as $invoiceItem) {
            $reportdata["tablevalues"][] = array($invoiceItem->invoiceid, '#' . $invoiceItem->userid . ', ' . $invoiceItem->fullname, $invoice->date, $invoice->status, $invoiceItem->paymentmethod, $invoiceItem->amount, $invoiceItem->description);
        }
    }
//    print_r($getInvoices);
//    echo '</pre>';
//    $table = Capsule::table("tbldomains");
//    $startdate = "2019-02-01";
//    $enddate = date("Y-m-d", strtotime("now"));
//    $table->whereDate('registrationdate', '>=', $startdate);
//    $table->whereDate('registrationdate', '<=', $enddate);
//    $getDomains = $table->get();
//    $domainsresultArr = [];
////echo '<pre>';
//    foreach ($getDomains as $domain) {
//        $getInvoiceId = Capsule::table("tblorders")->select('invoiceid')->where('id', $domain->orderid)->first();
//        if ($status == 'any')
//            $invoicesData = Capsule::select("SELECT tblinvoices.id, tblinvoices.status, tblinvoices.date,tblinvoiceitems.amount,tblinvoiceitems.description FROM tblinvoices INNER JOIN tblinvoiceitems on tblinvoiceitems.invoiceid= tblinvoices.id WHERE tblinvoiceitems.description LIKE '%" . $domain->domain . "%'");
//        else
//            $invoicesData = Capsule::select("SELECT tblinvoices.id, tblinvoices.status, tblinvoices.date,tblinvoiceitems.amount,tblinvoiceitems.description FROM tblinvoices INNER JOIN tblinvoiceitems on tblinvoiceitems.invoiceid= tblinvoices.id WHERE tblinvoiceitems.description LIKE '%" . $domain->domain . "%' AND tblinvoices.status = '" . $status . "'");
//        foreach ($invoicesData as $invoiceItem) {
//            $domainArr = explode('-', $invoiceItem->description);
//            $reportdata["tablevalues"][] = array($invoiceItem->id, $invoiceItem->date, $invoiceItem->amount, $invoiceItem->status, $invoiceItem->description);
//        }
//    }
}

//echo '</pre>';
//echo '</pre>';
//$table = Capsule::table("tbldomains");
//$startdate = "2019-02-01";
//$enddate = date("Y-m-d", strtotime("now"));
//$table->whereDate('registrationdate', '>=', $startdate);
//$table->whereDate('registrationdate', '<=', $enddate);
//$domaintable = $table->get();
//foreach ($domaintable as $domain) {
//    $reportdata["tablevalues"][] = array($domain->domain, $domain->registrationdate, $domain->firstpaymentamount);
//}
?>
