<?php
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
 * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
 * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
 * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org/licenses/>.
 */

/**
 *	\file       settlements/settlementsindex.php
 *	\ingroup    settlements
 *	\brief      Home page of settlements top menu
 */


// Load Dolibarr environment

$res = 0;
// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) {
    $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"] . "/main.inc.php";
}
// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME'];
$tmp2 = realpath(__FILE__);
$i = strlen($tmp) - 1;
$j = strlen($tmp2) - 1;
while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) {
    $i--;
    $j--;
}
if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1)) . "/main.inc.php")) {
    $res = @include substr($tmp, 0, ($i + 1)) . "/main.inc.php";
}
if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1))) . "/main.inc.php")) {
    $res = @include dirname(substr($tmp, 0, ($i + 1))) . "/main.inc.php";
}
// Try main.inc.php using relative path
if (!$res && file_exists("../main.inc.php")) {
    $res = @include "../main.inc.php";
}
if (!$res && file_exists("../../main.inc.php")) {
    $res = @include "../../main.inc.php";
}
if (!$res && file_exists("../../../main.inc.php")) {
    $res = @include "../../../main.inc.php";
}
if (!$res) {
    die("Include of main fails");
}

require_once DOL_DOCUMENT_ROOT . '/core/class/html.formfile.class.php';
require_once DOL_DOCUMENT_ROOT . '/user/class/usergroup.class.php';
require_once DOL_DOCUMENT_ROOT . '/custom/settlements/class/groupusers.class.php';
require_once DOL_DOCUMENT_ROOT . '/custom/settlements/class/helper.class.php';
require_once DOL_DOCUMENT_ROOT . '/custom/settlements/class/daily_closing.class.php';
require_once DOL_DOCUMENT_ROOT . '/custom/bbus/class/commissionhandler.class.php';
require_once DOL_DOCUMENT_ROOT . '/custom/financialreport/class/helper.class.php';
require_once DOL_DOCUMENT_ROOT . '/user/class/user.class.php';
require_once DOL_DOCUMENT_ROOT . '/custom/settlements/core/tpl/printPDF_szisz.php';

dol_include_once('/settlements/lib/settlements_group.lib.php');


$helper = new Helper($db);
$commmissionhandler = new CommissionHandler();
$userObj = new User($db);
$dailyClosing = new DailyClosing();

// Load translation files required by the page
$langs->loadLangs(array("financialreport@financialreport"));

$action = GETPOST('action', 'aZ09');
$id = GETPOST('id', 'int');
$user_id = GETPOST('user_id', 'int');
$idmenu = GETPOST('idmenu', 'int');
$stornochange = GETPOST('stornochange', 'aZ09');

//$confirmdailyclosing = GETPOST('confirmdailyclosing', 'aZ09');

$withholdingsArray = $_REQUEST['withholding']['withholdingAmount'];
$withholdingsChkArray = $_REQUEST['withholding']['withholdingchk'];
//var_dump($_REQUEST['withholding']['withholdingAmount']);
//print_r($_REQUEST);

$form = new Form($db);
$formfile = new FormFile($db);
$userObj = new User($db);

$result = $userObj->fetch($user_id);
$name = $userObj->firstname . ' ' . $userObj->lastname;
if ($userObj->array_options['options_nickname'] != '') {
    $name .= ' (' . $userObj->array_options['options_nickname'] . ')';
}

//$Block1stData = $helper->get1stBlockData($user_id);
if($id>0){
    $dailyClosingId = $id;
}else{
    $dailyClosingId = $helper->getDailyClosingId($user_id);
}
//print $dailyClosingId;
if (isset($dailyClosingId)) {
    $packageHistoryRecordObj = new PackageHistory($db);
    $packageHistoryRecordObj->fetch($dailyClosingId);
    if (!empty($packageHistoryRecordObj)) {
        $BLock2ndData = $helper->get2ndBlockData($packageHistoryRecordObj->package_id);
        $BLock3rdData = $helper->get3rdBlockData($packageHistoryRecordObj, $user_id);
        $factures = $helper->getAllFactures($packageHistoryRecordObj, $user_id);
        $addititonalDevices = $helper->getAddititonalDevices($dailyClosingId);
        $addititonalChangesDevices = $helper->getAddititonalChangesDevices($dailyClosingId);
    }
}

$changeMoneyHUF = 0;
$changeMoneyEUR = 0;
$disabled = '';

if (!empty($packageHistoryRecordObj)) {
    $PackageHistoryOpen = $helper->searchAndFetchDailyClosingRow($packageHistoryRecordObj, $user_id, 0);
}

if (isset($_REQUEST['withholding']) && $stornochange == 'false') {
    $deviceArray = $_REQUEST['withholding']['withholdingchk'];
    $amountArray = $_REQUEST['withholding']['withholdingAmount'];
    $problemWithForm = $helper->checkForm($deviceArray, $amountArray);

    if ($problemWithForm == false) {
        $resultDailyClosing = $helper->updatePackageHistory($PackageHistoryOpen, $BLock3rdData);
        if ($resultDailyClosing < 0) {
            setEventMessage($langs->trans('dailyClosingFail'), 'errors');
        } else {
            $helper->returnDailyClosingWindowLocation($_SERVER["PHP_SELF"], $id, $user_id, $idmenu);
        }
    } else {
        setEventMessage($langs->trans('checklistFail'), 'errors');
    }
}

$stornochange = 'false';
$title = '';
$help_url = '';
$morejs = '';
$morecss = '';


llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', 'classforhorizontalscrolloftabs');

$head = $dailyClosing->getHeader($object, $user_id, $idmenu);
###### Itt vannak a tabok ########
print dol_get_fiche_head($head, 'card', $langs->trans("Group"), -1);

$linkback = '<a href="' . dol_buildpath("/custom/settlements/settlementdailyclosingindex.php?idmenu=946&mainmenu=settlements&leftmenu=", 1) . '">' . '<b><span class="fa fa-arrow-left"></span> ' . $langs->trans("BackToList") . '</b></a>';
print $linkback;
include DOL_DOCUMENT_ROOT . '/custom/settlements/core/tpl/dailyclosing_open.tpl.php';
llxFooter();
$db->close();
?>
<style>
    .dailyClosingHeader {
        height: 80px;
        text-align: center;
        background-color: rgb(163, 0, 51);
        color: white;
        padding-top: 0px;
        border-radius: 10px;
    }

    .unprintedfactures {
        height: 40px;
        text-align: center;
        background-color: rgb(163, 0, 51);
        color: white;
        padding-top: 0px;
        border-radius: 10px;
        cursor: pointer;
    }

    .unprintedfacturetr {
        font-weight: bold;
    }

    .dailyclosingTableLeftSide {
        width: 100%;
    }

    .withholding{
        background-color: lightgrey;
        padding-top: 3px;
        height: 32px;
    }
</style>

<script>
    $(document).ready(function () {

    });

    function saveScrollPosition() {
        var scrollPosition = window.pageYOffset || document.documentElement.scrollTop;
        localStorage.setItem('scrollPosition', scrollPosition);
    }

    function restoreScrollPosition() {
        var scrollPosition = localStorage.getItem('scrollPosition');
        if (scrollPosition) {
            window.scrollTo(0, scrollPosition);
            localStorage.removeItem('scrollPosition'); // Clear the stored position after using it
        }
    }

    window.onload = restoreScrollPosition;

    function setStorno(event) {
        this.saveScrollPosition();
        const checkbox = event.target;
        const isChecked = checkbox.checked;
        var form = document.getElementById("dailyclosingform");
        var xhr = new XMLHttpRequest(); // XMLHttpRequest objektum létrehozása
        xhr.onreadystatechange = function () {
            if (xhr.readyState === XMLHttpRequest.DONE) { // A kérés befejeződött
                if (xhr.status === 200) { // A válasz státusza OK
                    //console.log(xhr.responseText); // A válasz tartalmának megjelenítése a konzolon
                    $('#stornochange').val('true');
                    form.submit();
                } else {
                    console.error('Hiba történt a kérés során.'); // Hiba esetén hibaüzenet megjelenítése a konzolon
                }
            }
        };
        xhr.open("GET", "facturemarkedstorno.php?ajaxstorno=" + isChecked + "&facturerowid=" + checkbox.value, true); // A GET kérés konfigurálása, amely a "facturemarkedstorno.php" URL-t hívja meg
        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhr.send(); // A kérés küldése

    }

    function setCommission(event) {
        this.saveScrollPosition();
        const checkbox = event.target;
        const isChecked = checkbox.checked;
        var form = document.getElementById("dailyclosingform");
        var xhr = new XMLHttpRequest(); // XMLHttpRequest objektum létrehozása
        xhr.onreadystatechange = function () {
            if (xhr.readyState === XMLHttpRequest.DONE) { // A kérés befejeződött
                if (xhr.status === 200) { // A válasz státusza OK
                    //console.log(xhr.responseText); // A válasz tartalmának megjelenítése a konzolon
                    $('#stornochange').val('true');
                    form.submit();
                } else {
                    console.error('Hiba történt a kérés során.'); // Hiba esetén hibaüzenet megjelenítése a konzolon
                }
            }
        };
        xhr.open("GET", "facturemarkedcommissiondeduction.php?ajaxstorno=" + isChecked + "&facturerowid=" + checkbox.value, true); // A GET kérés konfigurálása, amely a "facturemarkedstorno.php" URL-t hívja meg
        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhr.send(); // A kérés küldése

    }

    function showFactures(event) {
        const checkbox = event.target;
        const isChecked = checkbox.checked;
        if ($('#unprintedfactureslist').css('display') === 'none') {
            $('#unprintedfactureslist').css('display', 'inline-block');
            $('#unprintedFactureSpan').removeClass('fa-chevron-down');
            $('#unprintedFactureSpan').addClass('fa-chevron-up');
        } else {
            $('#unprintedFactureSpan').addClass('fa-chevron-down');
            $('#unprintedFactureSpan').removeClass('fa-chevron-up');
            $('#unprintedfactureslist').css('display', 'none');
        }
    }

    function checkall(event) {
        const checkbox = event.target;
        const isChecked = checkbox.checked;
        $('.inputfield').val('');
        $('.DCcheckbox').prop('checked', isChecked);
        $('.fields').css('display', isChecked ? 'none' : 'inline-block');
    }

    function checkboxClick(event) {
        const checkbox = event.target;
        const dataChkValue = checkbox.getAttribute("data-chk");
        const dataInputValue = checkbox.getAttribute("data-input");
        const isChecked = checkbox.checked;
        $("#" + dataInputValue).val('');
        $("#" + dataChkValue).css('display', isChecked ? 'none' : 'inline-block');
    }
</script>