<?php
$this->load->library("BIBAccounts");
$BIBAccounts = new BIBAccounts();
?>
<?php
$IncomeAccounts = $this->acc->getAccountsByGroup(3);
$ExpenseAccounts = $this->acc->getAccountsByGroup(4);
$IncomesTotal = $this->acc->getAccountBalanceByGroup(3);
$ExpensesTotal = $this->acc->getAccountBalanceByGroup(4);
$PL = $IncomesTotal - $ExpensesTotal;
?>
<style>
    table,
    td,
    tr {
        padding: 0px;
        margin: 0px;
    }

    .group-name {
        width: 40%;
    }

    .group-total {
        width: 10%;
    }

    .table-gray {
        background-color: #eee;
    }

    .table td,
    .table th {
        padding: 0px;
        margin: 0px;
    }

    .bg-darker {
        background-color: #ddd;
    }

    td .table {
        border: 0px !important;
        margin-bottom: 0rem;
    }

    table td:first-child {
        padding-left: 5px;
    }

    .table-bordered.vertical-borders td,
    .table-bordered.vertical-borders th {
        border-left: 1px solid #dee2e6;
        border-right: 1px solid #dee2e6;
    }

    .table-bordered.vertical-borders thead th {
        padding: 0.25rem;
        border-top: none;
        border-bottom: 2px solid #dee2e6;
    }

    .table-bordered.vertical-borders tfoot th {
        padding: 0.25rem;
        border-top: 2px solid #dee2e6;
        border-bottom: none;
    }

    .currency {
        font-weight: normal !important;
    }

    .underline {
        text-decoration: underline;
    }

    .form-control {
        display: block;
        width: 100%;
        height: calc(1.5rem + 1px);
        padding: 0.375rem 0.75rem;
        font-size: 1rem;
        font-weight: 400;
        line-height: 1.5;
        color: #495057;
        background-color: #fff;
        background-clip: padding-box;
        border: 1px solid #ced4da;
        border-radius: 0.25rem;
        box-shadow: inset 0 0 0 transparent;
        transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
    }

    .table.table-head-fixed thead tr:nth-child(1) th {
        padding-left: 6px;
        ;
    }
</style>
<div class="content-wrapper">
    <section class="content">
        <div class="container-fluid">
            <div class="card card-primary card-outline ">
                <div class="card-header">
                    <h3 class="card-title mt-1">Receipts And Payments <?php //echo $pageTitle; 
                                                                        ?> </h3>
                    <div class="card-tools">
                        <form method="post" action="" id="FilterForm">
                            <!-- button with a dropdown -->
                            <div class="btn-group">
                                <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-toggle="dropdown" data-offset="-52">
                                    Filters
                                </button>
                                <div class="dropdown-menu" role="menu">
                                    <div class="form-group p-2 pb-0">
                                        <div class="col">
                                            <div class="form-group">
                                                <label for="fromDate"><?php myLang("Starting Period"); ?></label>
                                                <input type="text" class="form-control " name="fromDate" value="<?php echo (isset($_POST['fromDate'])) ? $_POST['fromDate'] : NepaliDate($this->session->FiscalYear->fiscalyear_from); ?>" data-start="<?php echo $fiscalStart; ?>" data-end="<?php echo $fiscalEnd; ?>" id="fromDate" aria-describedby="helpId_fromDate" placeholder="Starting Period">
                                            </div>
                                            <div class="form-group">
                                                <label for="toDate"><?php myLang("Ending Period"); ?></label>
                                                <input type="text" class="form-control " name="toDate" value="<?php echo (isset($_POST['toDate'])) ? $_POST['toDate'] : NepaliDate($this->session->FiscalYear->fiscalyear_to); ?>" data-start="<?php echo $fiscalStart; ?>" data-end="<?php echo $fiscalEnd; ?>" id="toDate" aria-describedby="helpId_toDate" placeholder="Ending Period">
                                            </div>
                                        </div>
                                        <div class="dropdown-divider"></div>
                                        <!-- <div class="form-check">
                                            <input class="form-check-input" type="checkbox">
                                            <label class="form-check-label">Select
                                                All</label>
                                        </div> -->
                                        <div class="form-check">
                                            <!-- <input type="hidden" name="showOB" value="not"> -->
                                            <input type="checkbox" class="form-check-input " name="showOB" id="showOB" aria-describedby="helpId_showOB" placeholder="Show Opening Balance" <?php echo (isset($_POST['showOB'])) ? "CHECKED" : ""; ?>>
                                            <!-- <input class="form-check-input" type="checkbox"> -->
                                            <label class="form-check-label" for="showOB">Opening</label>
                                        </div>
                                        <div class="form-check">
                                            <!-- <input class="form-check-input" type="checkbox"> -->
                                            <input type="checkbox" class="form-check-input " name="showClosing" id="showClosing" aria-describedby="helpId_showClosing" placeholder="Show Closing Balance" <?php echo (isset($_POST['showClosing'])) ? "CHECKED" : ""; ?>>
                                            <label class="form-check-label" for="showClosing">Closing</label>
                                        </div>
                                        <div class="form-check">
                                            <!-- <input class="form-check-input" type="checkbox" checked> -->
                                            <input type="checkbox" class="form-check-input" name="showPeriod" id="showPeriod" aria-describedby="helpId_showPeriod" placeholder="Show Periodic Balance" <?php echo (isset($_POST['showPeriod'])) ? "CHECKED" : "CHECKED"; ?>>
                                            <label class="form-check-label" for="showPeriod">Period</label>
                                        </div>
                                    </div>
                                    <div class="dropdown-divider"></div>
                                    <div class="form-group p-2 pb-0 text-right">
                                        <button type="button" class="btn btn-info btn-sm " style="width:60px;height:30px;" onclick="resetForm()">Reset</button>
                                        <button type="submit" class="btn btn-primary mr-2 btn-sm" style="width:60px;height:30px;">Search </button>
                                    </div>
                                </div>
                            </div>
                            <div class="btn-group">
                                <button type="submit" class="btn btn-warning btn-sm " data-toggle="dropdown" data-offset="-52">
                                    Export
                                </button>
                                <!-- <div class="dropdown-menu" role="menu">
                <a href="#" class="dropdown-item">Export</a>
                <a href="#" class="dropdown-item">Pdf</a>
                <div class="dropdown-divider"></div>
                <a href="#" class="dropdown-item">View calendar</a>
              </div> -->
                            </div>
                            <!-- <button type="button" class="btn btn-warning btn-sm" onclick="resetForm()">Reset</button> -->
                            <button class="btn btn-secondary toggle-collapse btn-sm" id="toggleShowAll">Toggle Collapse</button>
                        </form>
                        <script>
                            function resetForm() {
                                document.getElementById("fromDate").value = "<?php echo NepaliDate($this->session->FiscalYear->fiscalyear_from); ?>";
                                document.getElementById("toDate").value = "<?php echo NepaliDate($this->session->FiscalYear->fiscalyear_to); ?>";
                                document.getElementById("showOB").checked = <?php echo  "false"; ?>;
                                document.getElementById("showClosing").checked = <?php echo  "false"; ?>;
                                document.getElementById("FilterForm").submit();
                            }
                        </script>
                    </div>
                    <!-- /.card-tools -->
                </div>
                <!-- <div class="card-body">
                    <form method="post" action="" id="FilterForm">
                        <div class="row align-items-end">
                            <div class="col-2">
                                <div class="form-group">
                                    <label for="fromDate"><?php //myLang("Starting Period"); ?></label>
                                    <input type="text" class="form-control nepaliDatePicker" name="fromDate" value="<?php //echo (isset($_POST['fromDate'])) ? $_POST['fromDate'] : NepaliDate($this->session->FiscalYear->fiscalyear_from); ?>" id="fromDate" aria-describedby="helpId_fromDate" placeholder="Starting Period">
                                </div>
                            </div>
                            <div class="col-2">
                                <div class="form-group">
                                    <label for="toDate"><?php //myLang("Ending Period"); ?></label>
                                    <input type="text" class="form-control nepaliDatePicker" name="toDate" value="<?php //echo (isset($_POST['toDate'])) ? $_POST['toDate'] : NepaliDate($this->session->FiscalYear->fiscalyear_to); ?>" id="toDate" aria-describedby="helpId_toDate" placeholder="Ending Period">
                                </div>
                            </div>
                            <div class="col-1 text-center">
                                <div class="form-group">
                                    <label for="showOB"><?php //myLang("Opening"); ?></label>
                                    <input type="checkbox" class="form-control " name="showOB" id="showOB" aria-describedby="helpId_showOB" placeholder="Show Opening Balance" <?php echo (isset($_POST['showOB'])) ? "CHECKED" : "CHECKED"; ?>>
                                </div>
                            </div>
                            <div class="col-1 text-center">
                                <div class="form-group">
                                    <label for="showClosing"><?php //myLang("Closing"); ?></label>
                                    <input type="checkbox" class="form-control " name="showClosing" id="showClosing" aria-describedby="helpId_showClosing" placeholder="Show Closing Balance" <?php echo (isset($_POST['showClosing'])) ? "CHECKED" : "CHECKED"; ?>>
                                </div>
                            </div>
                            <div class="col-1 text-center">
                                <div class="form-group">
                                    <label for="showPeriod"><?php //myLang("Period"); ?></label>
                                    <input type="checkbox" class="form-control " name="showPeriod" id="showPeriod" aria-describedby="helpId_showPeriod" placeholder="Show Periodic Balance" <?php echo (isset($_POST['showPeriod'])) ? "CHECKED" : "CHECKED"; ?>>
                                </div>
                            </div>
                            <div class="col">
                                <div class="form-group d-flex justify-content-end">
                                    <button class="btn btn-secondary toggle-collapse mr-2" id="toggleShowAll">Toggle Collapse</button>
                                    <button type="submit" class="btn btn-primary mr-2">Filter</button>
                                    <button type="submit" class="btn btn-success mr-2">Export</button>
                                    <button type="button" class="btn btn-warning" onclick="resetForm()">Reset</button>
                                </div>
                            </div>
                        </div>
                    </form>
                    <script>
                        function resetForm() {
                            document.getElementById("fromDate").value = "2078-4-1";
                            document.getElementById("toDate").value = "2079-3-32";
                            document.getElementById("showOB").checked = false;
                            document.getElementById("showClosing").checked = false;
                            document.getElementById("FilterForm").submit();
                        }
                    </script>
                </div> -->
            </div>
            <div class="card">
                <div class="card card-primary card-outline">
                    <?php $IncomesExpenses = $BIBAccounts->prepareIncomeExpenses() ?>
                    <table class="table table-head-fixed table-bordered  g-0" id="TrialBalanceTable">
                        <thead>
                            <tr>
                                <th class="" width="30%"><?php myLang("Receipts"); ?></th>
                                <th class="text-right" width="10%"></th>
                                <th class="text-right pr-2" width="10%"><?php myLang("Amount"); ?></th>
                                <th class="" width="30%"><?php echo myLang("Payments"); ?></th>
                                <th class="text-right" width="10%"></th>
                                <th class="text-right pr-2" width="10%"><?php myLang("Amount"); ?></th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td colspan=3 class="p-0">
                                    <table class="table g-0">
                                        <?php $total1 = 0;
                                        $counter = 0;
                                        $index = 0;
                                        foreach ($IncomesExpenses['Incomes'] as $Incomes) { ?>
                                            <?php if ($Incomes['account'] == "GROUP TOTAL") : ?>
                                                <!--tr>
                                                    <td class="" width="70%"><b><?php echo $Incomes['group']; ?></b></td>
                                                    <td width="15%"></td>
                                                    <td class="text-right" width="15%"><u><?php echo myCurrency($Incomes['amount']); ?></u></td>
                                                </tr-->
                                            <?php elseif ($Incomes['account'] == "CATEGORY TOTAL") : ?>
                                                <?php $index++; ?>
                                                <tr class="parent-row" class="group-heading" data-toggle="collapse" data-target="#group_<?php echo $index; ?>">
                                                    <td class="" width="60%"><b><?php echo $Incomes['category']; ?></b></td>
                                                    <td width="20%"></td>
                                                    <td class="text-right pr-2" width="20%"><?php echo myCurrency($Incomes['amount']); ?></td>
                                                </tr>
                                            <?php else : ?>
                                                <?php $total1 += $Incomes['amount']; ?>
                                                <tr class="collapse" data-target="#group_<?php echo $index; ?>">
                                                    <td class="pr-2" width="60%">
                                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $Incomes['account']; ?>
                                                    </td>
                                                    <td class="text-right pr-2" width="20%"><?php echo myCurrency($Incomes['amount']); ?></td>
                                                    <td width="20%"></td>
                                                </tr>
                                            <?php endif; ?>
                                            <?php $counter = $index ?>
                                        <?php }; ?>
                                    </table>
                                </td>
                                <td colspan=3 class="p-0">
                                    <table class="table g-0">
                                        <?php $total = 0;
                                        foreach ($IncomesExpenses['Expenses'] as $Expenses) {
                                            if ($Expenses['account'] == "GROUP TOTAL") : ?>
                                                <!--tr>
                                                    <td class="" width="70%"><b><?php echo $Expenses['group']; ?></b></td>
                                                    <td width="15%"></td>
                                                    <td class="text-right" width="15%"><u><?php echo myCurrency($Expenses['amount']); ?></u></td>
                                                </tr-->
                                            <?php elseif ($Expenses['account'] == "CATEGORY TOTAL") : ?>
                                                <?php $counter++; ?>
                                                <tr data-toggle="collapse" data-target="#group_<?php echo $counter; ?>">
                                                    <td class="pr-2" width="60%"><b><?php echo $Expenses['category']; ?></b></td>
                                                    <td width="20%"></td>
                                                    <td class="text-right pr-2" width="20%"><?php echo myCurrency($Expenses['amount']); ?></td>
                                                </tr>
                                            <?php else : ?>
                                                <?php $total += $Expenses['amount']; ?>
                                                <tr class="collapse" data-target="#group_<?php echo $counter; ?>">
                                                    <td class="" width="60%">
                                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                                        <?php echo $Expenses['account']; ?>
                                                    </td>
                                                    <td class="text-right pr-2" width="20%"><?php echo myCurrency($Expenses['amount']); ?></td>
                                                    <td width="20%"></td>
                                                </tr>
                                            <?php endif; ?>
                                        <?php }; ?>
                                    </table>
                                </td>
                            </tr>
                            <?php $balance_fi = $total1 - $total; ?>
                            <?php if ($balance_fi < 0) :  $total1 += $balance_fi; ?>
                                <tr>
                                    <th class="pl-2"><?php echo myLang("Closing Balance"); ?></th>
                                    <th></th>
                                    <td><span class="text-red pr-2"><?php echo myCurrency($balance_fi); ?></span></td>
                                    <th></th>
                                    <th></th>
                                    <td></td>
                                </tr>
                            <?php elseif ($balance_fi > 0) : $total += $balance_fi;  ?>
                                <tr>
                                    <th></th>
                                    <th></th>
                                    <td></td>
                                    <th class="pl-2"><?php echo myLang("Closing Balance"); ?></th>
                                    <th></th>
                                    <td class="pr-2"><?php echo myCurrency($balance_fi); ?></td>
                                </tr>
                            <?php endif; ?>
                            <tr>
                                <th class="pl-2">Total</th>
                                <th></th>
                                <td class="pr-2"><?php echo myCurrency($total1); ?></td>
                                <th class="pl-2">Total</th>
                                <th></th>
                                <td class="pr-2"><?php echo myCurrency($total); ?></td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            </div>
        </div><!-- /.container-fluid -->
    </section>
    <?php function footerFunctions()
    { ?>
        <script>
            $(document).ready(function() {
                // Prevent the dropdown from closing when clicking inside
                $('.dropdown-menu').on('click', function(event) {
                    event.stopPropagation();
                });
            });
        </script>
        <script>
            // var exportButton = document.getElementById("exportButton");
            // exportButton.addEventListener("click", function() {
            //     exportTableToCSV("table.csv");
            // });
            document.addEventListener("DOMContentLoaded", function() {
                // Trigger click event on page load
                document.getElementById("toggleShowAll").click();
            });
            document.getElementById("toggleShowAll").addEventListener("click", function(e) {
                e.preventDefault();
                var nestedRows = document.getElementsByClassName("collapse");
                for (var i = 0; i < nestedRows.length; i++) {
                    if (nestedRows[i].classList.contains("show")) {
                        nestedRows[i].classList.remove("show");
                    } else {
                        nestedRows[i].classList.add("show");
                    }
                }
            });

            function exportTableToCSV(filename) {
                var csv = [];
                var rows = document.querySelectorAll("table tr:not(.hide)");
                for (var i = 0; i < rows.length; i++) {
                    var row = [];
                    var cols = rows[i].querySelectorAll("td:not(.hide), th:not(.hide)");
                    // Check if the parent row is collapsed or hidden
                    var parentRow = rows[i].closest(".collapse");
                    var isParentCollapsed = parentRow && (!parentRow.classList.contains("show"));
                    if (isParentCollapsed) {
                        continue; // Skip child table rows if parent is collapsed
                    }
                    for (var j = 0; j < cols.length; j++) {
                        var cellValue = cols[j].innerText.replace(/,/g, ""); // Remove commas from the cell value
                        row.push(cellValue);
                    }
                    csv.push(row.join(","));
                }
                // Create a CSV file
                var csvContent = "data:text/csv;charset=utf-8," + csv.join("\n");
                var encodedUri = encodeURI(csvContent);
                var link = document.createElement("a");
                link.setAttribute("href", encodedUri);
                link.setAttribute("download", filename);
                document.body.appendChild(link);
                link.click();
            }
        </script>
        <script>
            $("#fromDate").nepaliDatePicker({
                dateFormat: "%y-%m-%d",
                closeOnDateSelect: true,
                minDate: $('#fromDate').data('start'),
                maxDate: $('#fromDate').data('end'),
            });
        </script>
        <script>
            $("#toDate").nepaliDatePicker({
                dateFormat: "%y-%m-%d",
                closeOnDateSelect: true,
                minDate: $('#toDate').data('start'),
                maxDate: $('#toDate').data('end'),
            });
        </script>
    <?php } ?>