Nested Checkboxes

HTML

<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<ul class="nav" id="sidebar">
	<li class="nav-item">
		<input type="checkbox" class="check-negozio" data-npv="0" value="0">
			<a class="nav-link text-truncate collapsed" href="#" data-toggle="collapse" data-target="#pv0" aria-expanded="false">
				<i class="fas fa-store"></i>
				<span class="d-none d-sm-inline">PC-STEVE</span>
			</a>
			<ul class="flex-column pl-2 collapse" id="pv0" aria-expanded="false" style="">
				<li class="nav-item">
					<input type="checkbox" class="check-cassa" data-cs="1" value="1">
						<a class="nav-link py-0" href="#">
							<i class="fas fa-desktop"></i>
							<span>CASSA-1</span>
						</a>
					</li>
					<li class="nav-item">
						<input type="checkbox" class="check-cassa" data-cs="5" value="5">
							<a class="nav-link collapsed py-1" href="#" data-toggle="collapse" data-target="#cs05">
								<i class="fas fa-desktop"></i>
								<span>CASSA-5</span>
							</a>
							<ul class="flex-column pl-4 collapse" id="cs05" aria-expanded="false">
								<li class="nav-item">
									<input type="checkbox" class="check-operatore" data-op="0" value="0">
										<a class="nav-link p-1" href="#">
											<i class="far fa-user"></i>
											<span>N. OPERATORE</span>
										</a>
									</li>
								</ul>
							</li>
						</ul>
					</li>
					<li class="nav-item">
						<input type="checkbox" class="check-negozio" data-npv="1" value="1">
							<a class="nav-link collapsed text-truncate" href="#" data-toggle="collapse" data-target="#pv1">
								<i class="fas...

CSS

.card-pareto{
    padding-left: 0px !important;
    padding-right: 0px !important; 
}

.pagination{
    margin-right: 15px !important;
}

.nav-link[data-toggle].collapsed:after {
    font-size: 12px;
    margin-left: 3px;
    content: "▾";
}

.nav-link[data-toggle]:not(.collapsed):after {
    font-size: 12px;
    margin-left: 3px;
    content: "▴";
}


hr {
    position: absolute;
    right: 15px;
    width: calc(100% - 30px);
    background: hsla(0,0%,100%,.5);
}


.check-negozio {
    z-index: 999;
    margin-top: 13px;
    margin-left: 9px;
    position: absolute;
}

.check-cassa {
    z-index: 999;
    margin-top: 2px;
    margin-left: 9px;
    position: absolute;
}

.check-operatore {
    z-index: 999;
    margin-top: 5px;
    margin-left: 9px;
    position: absolute;
}

ul ul ul {
    list-style: none;
}

ul ul {
    list-style: none;
}

JavaScript

var config = [];
$(".nav").on("change", "input[type='checkbox']", function () {

    var checked = $(this).prop("checked"),
        container = $(this).parent();

    container.find('input[type="checkbox"]').prop({
        indeterminate: false,
        checked: checked
    });

    function checkSiblings(el) {

        var parent = el.parent().parent(),
            all = true;

        el.siblings().each(function () {
            let returnValue = all = ($(this).children('input[type="checkbox"]').prop("checked") === checked);
            return returnValue;
        });

        if (all && checked) {

            parent.children('input[type="checkbox"]').prop({
                indeterminate: false,
                checked: checked
            });

            checkSiblings(parent);

        } else if (all && !checked) {

            parent.children('input[type="checkbox"]').prop("checked", checked);
            parent.children('input[type="checkbox"]').prop("indeterminate", (parent.find('input[type="checkbox"]:checked').length > 0));
            checkSiblings(parent);

        } else {

            el.parents("li").children('input[type="checkbox"]').prop({
                indeterminate: true,
                checked: false
            });

        }

    }

    checkSiblings(container);



    var selezione = {
        cassa: [{
            operatore: []
        }]
    };

    $(".check-negozio").each(function () {
        if (this.checked || this.indeterminate) {
            const npv = $(this).attr('data-npv');
            if (npv != null)
                selezione.negozio = npv;
            $(".check-cassa").each(function () {
                if (this.checked || this.indeterminate) {
                    const cs = $(this).attr('data-cs');
                    if (cs != null)
                        selezione.cassa.push({ CS: cs });
                    $(".check-operatore").each(function () {
                        if (this.chedked) {
                           ...