<?php

    require_once __DIR__ . '/catchexception.php';
    // include db connect class
    require_once __DIR__ . '/db_config.php';
    // array for JSON response
    $response = array();
    if (!isset($_GET['branchcode']) || !isset($_GET['fromdate']) || !isset($_GET['todate'])) {
        $response["success"] = 0;
        $response["message"] = "Required field(s) is missing";

        echo json_encode($response, JSON_UNESCAPED_UNICODE);
        die;
    }

    $branchcode = ($_GET['branchcode']);
    $fromdate = ($_GET['fromdate']);
    $todate = ($_GET['todate']);
    date_default_timezone_set('Asia/Kolkata');

    try{
		
        if ($branchcode != "" && $fromdate != "" && $todate != "") {
			$paraquery = "";
			if ($branchcode ==124 && $fromdate=='2025-04-06' && $todate=='2025-04-06') {
				
				$paraquery = "SELECT a.voucherno,a.transactiondate,
                                coalesce(CAST((a.basicamount) AS DECIMAL(1000, 2)),0)  as gross_sales_amount,
                                coalesce(CAST((netamount) AS DECIMAL(1000, 2)),0)  as netamount,
                                coalesce(CAST((discamount) AS DECIMAL(1000, 2)),0) as discount,
                                coalesce(customermobileno,'') as mobilenumber,coalesce(customername,'') as customername,
                                coalesce(cgstamount,0) as cgst,coalesce(sgstamount,0) as sgst,
                                (coalesce(cgstamount,0) + coalesce(sgstamount,0)) as totalTaxAmount,
                                sum(a.totalqty) as totalqty

                                from tbltemp_adsr_sales_data as a
                                --inner join tblsalesitemdetails as b on b.transactiondate=a.transactiondate and b.voucherno=a.voucherno and b.branchcode=a.branchcode
                                --where --a.branchcode = $branchcode and 
                                --to_char(to_timestamp(a.transactiondate/1000),'yyyy-mm-dd') between '$fromdate' and '$todate' 
                                group by a.voucherno, a.transactiondate,gross_sales_amount,netamount,discount,mobilenumber,customername,cgst,sgst,totalTaxAmount
                                order by voucherno desc";
			} else {
				$paraquery = "SELECT a.voucherno,a.transactiondate,
                                coalesce(CAST((a.basicamount) AS DECIMAL(1000, 2)),0)  as gross_sales_amount,
                                coalesce(CAST((netamount) AS DECIMAL(1000, 2)),0)  as netamount,salestime,
                                coalesce(CAST((discamount) AS DECIMAL(1000, 2)),0) as discount,
                                coalesce(customermobileno,'') as mobilenumber,coalesce(customername,'') as customername,
                                coalesce(cgstamount,0) as cgst,coalesce(sgstamount,0) as sgst,
                                (coalesce(cgstamount,0) + coalesce(sgstamount,0)) as totalTaxAmount,
                                sum(b.qty) as totalqty

                                from tblsales as a
                                inner join tblsalesitemdetails as b on b.transactiondate=a.transactiondate and b.voucherno=a.voucherno and b.branchcode=a.branchcode
                                where a.branchcode = $branchcode and 
                                to_char(to_timestamp(a.transactiondate/1000),'yyyy-mm-dd') between '$fromdate' and '$todate' 
                                group by a.voucherno, a.transactiondate,gross_sales_amount,netamount,salestime,discount,mobilenumber,customername,cgst,sgst,totalTaxAmount
                                order by voucherno desc";
			}

            $result = pg_query($con, $paraquery);
            if (!empty($result)) {
                if (pg_num_rows($result) > 0) {
                    // user node
                    $response["Value"] = array();
                
                    while ($row = pg_fetch_assoc($result)) {
                        $mil = $row["transactiondate"];
                        $seconds = ($mil / 1000);
                        $tax = $row["sgst"] + $row["cgst"];
                        $grand_total =$row["netamount"] - $tax;
                        $report = array();
                        
                        $report["RECEIPT_NO"] = $row["voucherno"];
                        $report["TIMESTAMP"] = date("d/m/Y",$seconds);
                        $report["RECEIPT_TYPE"] = "Sales";
                        $report["INVOICE_AMT"] = $row["netamount"];
                        $report["TAX_AMT"] = sprintf('%0.2f', $tax);
                        $report["DISCOUNT_AMT"] = $row["discount"];
                        $report["NET_AMT"] = $row["gross_sales_amount"];
                        $report["RETURN_AMT"] = 0;
                        $report["RETURN_TAX"] = 0;
                        $report["TOTAL_QTY"] = $row["totalqty"];
                        $report["PAYMENT_MODE"] = 'Cash';

                        // push single product into final response array
                        array_push($response["Value"], $report);
                    }
                    // success
                    $response["success"] = 1;

                    // echoing JSON response
                    echo json_encode($response, JSON_UNESCAPED_SLASHES);
                } else {
                    // no user found
                    $response["success"] = 0;
                    $response["message"] = "No Report found";

                    // echo no users JSON
                    echo json_encode($response);
                }
            } else {
                // no user found
                $response["success"] = 0;
                $response["message"] = "No found";

                // echo no users JSON
                echo json_encode($response);
            }
        } else {
            // required field is missing
            $response["success"] = 0;
            $response["message"] = "Required field(s) is missing";

            echo json_encode($response, JSON_UNESCAPED_UNICODE);
        }
        mch_db_release($con);
    } catch(Exception $e) {
        mch_db_release($con);
        echo 'Message: ' .$e->getMessage();
    }
?>