{"id":3374,"date":"2025-01-19T20:27:55","date_gmt":"2025-01-19T19:27:55","guid":{"rendered":"https:\/\/www.lecomptoirjunasol.coop\/?page_id=3374"},"modified":"2025-01-19T21:29:47","modified_gmt":"2025-01-19T20:29:47","slug":"elementor-3374","status":"publish","type":"page","link":"https:\/\/www.lecomptoirjunasol.coop\/?page_id=3374","title":{"rendered":"Elementor #3374"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3374\" class=\"elementor elementor-3374\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ef07c13 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ef07c13\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3d4f21f\" data-id=\"3d4f21f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a6adf62 elementor-widget elementor-widget-html\" data-id=\"a6adf62\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"wrap payment-report\">\r\n    <style>\r\n        \/* Material Design Style *\/\r\n        .payment-report {\r\n            background-color: #f5f5f5;\r\n            padding: 20px;\r\n            font-family: 'Roboto', sans-serif;\r\n        }\r\n\r\n        .payment-card {\r\n            background: #fff;\r\n            border-radius: 8px;\r\n            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\r\n            padding: 20px;\r\n            margin-bottom: 20px;\r\n        }\r\n\r\n        .payment-table {\r\n            width: 100%;\r\n            border-collapse: collapse;\r\n            margin: 1em 0;\r\n        }\r\n\r\n        .payment-table th,\r\n        .payment-table td {\r\n            padding: 12px;\r\n            text-align: left;\r\n            border-bottom: 1px solid #ddd;\r\n        }\r\n\r\n        .payment-table th {\r\n            background-color: #f8f9fa;\r\n            font-weight: 600;\r\n        }\r\n\r\n        .payment-input {\r\n            width: 100%;\r\n            max-width: 200px;\r\n            padding: 8px;\r\n            border: 1px solid #ddd;\r\n            border-radius: 4px;\r\n            margin: 5px 0;\r\n        }\r\n\r\n        .btn {\r\n            background-color: #6200ea;\r\n            color: white;\r\n            border: none;\r\n            padding: 10px 20px;\r\n            cursor: pointer;\r\n            border-radius: 4px;\r\n            font-size: 16px;\r\n            transition: background-color 0.3s;\r\n            margin-right: 10px;\r\n            margin-top: 10px;\r\n        }\r\n\r\n        .btn:hover {\r\n            background-color: #3700b3;\r\n        }\r\n\r\n        .btn-danger {\r\n            background-color: #d32f2f;\r\n        }\r\n\r\n        .btn-danger:hover {\r\n            background-color: #9a0007;\r\n        }\r\n\r\n        .button-container {\r\n            display: flex;\r\n            justify-content: space-between;\r\n        }\r\n\r\n        .payment-report-summary {\r\n            margin-top: 20px;\r\n            padding: 10px;\r\n            background-color: #f8f9fa;\r\n            border-radius: 4px;\r\n        }\r\n\r\n        .payment-report-table {\r\n            margin-top: 20px;\r\n            background-color: #ffffff;\r\n            border-radius: 4px;\r\n            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\r\n            padding: 20px;\r\n        }\r\n\r\n        .report-header {\r\n            font-size: 20px;\r\n            font-weight: 600;\r\n            margin-bottom: 15px;\r\n        }\r\n\r\n        .search-container {\r\n            margin-bottom: 20px;\r\n        }\r\n\r\n        .search-input {\r\n            width: 100%;\r\n            max-width: 200px;\r\n            padding: 8px;\r\n            border: 1px solid #ddd;\r\n            border-radius: 4px;\r\n        }\r\n\r\n        .pagination {\r\n            display: flex;\r\n            justify-content: center;\r\n            margin-top: 20px;\r\n        }\r\n\r\n        .pagination button {\r\n            background-color: #6200ea;\r\n            color: white;\r\n            border: none;\r\n            padding: 10px 20px;\r\n            cursor: pointer;\r\n            border-radius: 4px;\r\n            font-size: 16px;\r\n            transition: background-color 0.3s;\r\n            margin: 0 5px;\r\n        }\r\n\r\n        .pagination button:hover {\r\n            background-color: #3700b3;\r\n        }\r\n    <\/style>\r\n\r\n    <div class=\"payment-card\">\r\n        <h2>Ajouter un Rapport de D\u00e9p\u00f4t<\/h2>\r\n        <form id=\"payment-form\">\r\n            <input type=\"date\" name=\"report_date\" class=\"payment-input\" required placeholder=\"Date\" \/>\r\n            <input type=\"number\" name=\"cash\" class=\"payment-input\" step=\"0.01\" placeholder=\"Esp\u00e8ces (\u20ac)\" required \/>\r\n            <input type=\"number\" name=\"card\" class=\"payment-input\" step=\"0.01\" placeholder=\"Carte bancaire (\u20ac)\" required \/>\r\n            <input type=\"number\" name=\"restaurant_ticket\" class=\"payment-input\" step=\"0.01\" placeholder=\"CB Ticket Restau (\u20ac)\" required \/>\r\n            <input type=\"number\" name=\"check\" class=\"payment-input\" step=\"0.01\" placeholder=\"Ch\u00e8que (\u20ac)\" required \/>\r\n            <input type=\"number\" name=\"bank_transfer\" class=\"payment-input\" step=\"0.01\" placeholder=\"Virement bancaire (\u20ac)\" required \/>\r\n            <input type=\"number\" name=\"ticket_restaurant\" class=\"payment-input\" step=\"0.01\" placeholder=\"Ticket Restau (\u20ac)\" required \/>\r\n            <input type=\"number\" name=\"deferred\" class=\"payment-input\" step=\"0.01\" placeholder=\"Diff\u00e9r\u00e9 (\u20ac)\" required \/>\r\n\r\n            <div class=\"button-container\">\r\n                <button type=\"button\" class=\"btn\" onclick=\"validateForm()\">Valider<\/button>\r\n                <button type=\"button\" class=\"btn\" onclick=\"syncWithKDrive()\">Synchroniser<\/button>\r\n                <button type=\"button\" class=\"btn btn-danger\" onclick=\"clearForm()\">Effacer les saisies<\/button>\r\n                <button type=\"button\" class=\"btn\" onclick=\"exportToXLS()\">Exporter en XLS<\/button>\r\n            <\/div>\r\n        <\/form>\r\n    <\/div>\r\n\r\n    <div class=\"payment-report-summary\">\r\n        <h3>R\u00e9sum\u00e9 des Saisies<\/h3>\r\n        <table class=\"payment-table\" id=\"report-summary\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Champ<\/th>\r\n                    <th>Valeur<\/th>\r\n                <\/tr>\r\n            <\/thead>\r\n            <tbody>\r\n                <!-- Les valeurs seront ajout\u00e9es dynamiquement ici -->\r\n            <\/tbody>\r\n        <\/table>\r\n    <\/div>\r\n\r\n    <div class=\"search-container\">\r\n        <input type=\"text\" class=\"search-input\" placeholder=\"Rechercher par date\" onkeyup=\"filterReports()\" \/>\r\n    <\/div>\r\n\r\n    <div class=\"payment-report-table\">\r\n        <div class=\"report-header\">Tous les Rapports<\/div>\r\n        <table class=\"payment-table\" id=\"daily-reports\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Date<\/th>\r\n                    <th>Esp\u00e8ces (\u20ac)<\/th>\r\n                    <th>Carte bancaire (\u20ac)<\/th>\r\n                    <th>Ch\u00e8que (\u20ac)<\/th>\r\n                    <th>Total (\u20ac)<\/th>\r\n                <\/tr>\r\n            <\/thead>\r\n            <tbody>\r\n                <!-- Liste des rapports des jours pass\u00e9s -->\r\n            <\/tbody>\r\n        <\/table>\r\n        <div class=\"pagination\">\r\n            <button onclick=\"prevPage()\">Pr\u00e9c\u00e9dent<\/button>\r\n            <button onclick=\"nextPage()\">Suivant<\/button>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        let formData = {};\r\n        let allReports = [];\r\n        let currentPage = 1;\r\n        const reportsPerPage = 5;\r\n\r\n        \/\/ Fonction pour valider et afficher le r\u00e9sum\u00e9\r\n        function validateForm() {\r\n            const form = document.getElementById('payment-form');\r\n            const data = new FormData(form);\r\n\r\n            formData = {\r\n                date: data.get('report_date'),\r\n                cash: parseFloat(data.get('cash')) || 0,\r\n                card: parseFloat(data.get('card')) || 0,\r\n                restaurant_ticket: parseFloat(data.get('restaurant_ticket')) || 0,\r\n                check: parseFloat(data.get('check')) || 0,\r\n                bank_transfer: parseFloat(data.get('bank_transfer')) || 0,\r\n                ticket_restaurant: parseFloat(data.get('ticket_restaurant')) || 0,\r\n                deferred: parseFloat(data.get('deferred')) || 0,\r\n            };\r\n\r\n            \/\/ Calcul des totaux\r\n            const totalGeneral = Object.values(formData).slice(1).reduce((acc, val) => acc + val, 0);\r\n\r\n            \/\/ Mettre \u00e0 jour l'interface\r\n            updateReportSummary();\r\n\r\n            \/\/ Sauvegarder le rapport pour la liste des rapports\r\n            allReports.push({ ...formData, total: totalGeneral });\r\n            updateDailyReports();\r\n\r\n            \/\/ Message de confirmation\r\n            alert('Rapport valid\u00e9 avec succ\u00e8s !');\r\n        }\r\n\r\n        \/\/ Mettre \u00e0 jour le r\u00e9sum\u00e9 des saisies\r\n        function updateReportSummary() {\r\n            const summaryTable = document.getElementById('report-summary').getElementsByTagName('tbody')[0];\r\n            summaryTable.innerHTML = '';\r\n\r\n            for (const [key, value] of Object.entries(formData)) {\r\n                const row = document.createElement('tr');\r\n                const cell1 = document.createElement('td');\r\n                cell1.textContent = key.replace(\/_\/g, ' ').toUpperCase();\r\n                const cell2 = document.createElement('td');\r\n                cell2.textContent = value.toFixed(2);\r\n                row.appendChild(cell1);\r\n                row.appendChild(cell2);\r\n                summaryTable.appendChild(row);\r\n            }\r\n\r\n            const totalRow = document.createElement('tr');\r\n            const totalCell1 = document.createElement('td');\r\n            totalCell1.textContent = 'TOTAL';\r\n            const totalCell2 = document.createElement('td');\r\n            totalCell2.textContent = Object.values(formData).slice(1).reduce((acc, val) => acc + val, 0).toFixed(2);\r\n            totalRow.appendChild(totalCell1);\r\n            totalRow.appendChild(totalCell2);\r\n            summaryTable.appendChild(totalRow);\r\n        }\r\n\r\n        \/\/ Mettre \u00e0 jour le tableau des rapports\r\n        function updateDailyReports() {\r\n            const reportsTable = document.getElementById('daily-reports').getElementsByTagName('tbody')[0];\r\n            reportsTable.innerHTML = '';\r\n\r\n            const filteredReports = allReports.slice((currentPage - 1) * reportsPerPage, currentPage * reportsPerPage);\r\n\r\n            filteredReports.forEach(report => {\r\n                const row = document.createElement('tr');\r\n                const dateCell = document.createElement('td');\r\n                dateCell.textContent = report.date;\r\n\r\n                const cashCell = document.createElement('td');\r\n                cashCell.textContent = report.cash.toFixed(2);\r\n\r\n                const cardCell = document.createElement('td');\r\n                cardCell.textContent = report.card.toFixed(2);\r\n\r\n                const checkCell = document.createElement('td');\r\n                checkCell.textContent = report.check.toFixed(2);\r\n\r\n                const totalCell = document.createElement('td');\r\n                totalCell.textContent = report.total.toFixed(2);\r\n\r\n                row.appendChild(dateCell);\r\n                row.appendChild(cashCell);\r\n                row.appendChild(cardCell);\r\n                row.appendChild(checkCell);\r\n                row.appendChild(totalCell);\r\n                reportsTable.appendChild(row);\r\n            });\r\n        }\r\n\r\n        \/\/ Effacer les saisies\r\n        function clearForm() {\r\n            document.getElementById('payment-form').reset();\r\n            formData = {};\r\n            updateReportSummary();\r\n            alert('Saisies effac\u00e9es avec succ\u00e8s !');\r\n        }\r\n\r\n        \/\/ Exporter en XLS\r\n        function exportToXLS() {\r\n            let csvContent = 'Date,Esp\u00e8ces,Carte bancaire,Ticket Restau,Ch\u00e8que,Virement bancaire,Ticket Restau Diff\u00e9r\u00e9,Total\\n';\r\n            allReports.forEach(report => {\r\n                const row = `${report.date},${report.cash},${report.card},${report.restaurant_ticket},${report.check},${report.bank_transfer},${report.deferred},${report.total}\\n`;\r\n                csvContent += row;\r\n            });\r\n\r\n            const link = document.createElement('a');\r\n            link.href = 'data:text\/csv;charset=utf-8,' + encodeURIComponent(csvContent);\r\n            link.download = 'rapports_depots.csv';\r\n            link.click();\r\n            alert('Rapport export\u00e9 avec succ\u00e8s !');\r\n        }\r\n\r\n        \/\/ Synchroniser avec KDrive\r\n        function syncWithKDrive() {\r\n            console.log('Synchronisation avec kDrive...');\r\n            console.log(formData);\r\n            alert('Donn\u00e9es synchronis\u00e9es avec succ\u00e8s !');\r\n        }\r\n\r\n        \/\/ Filtrer les rapports par date\r\n        function filterReports() {\r\n            const searchInput = document.querySelector('.search-input').value.toLowerCase();\r\n            const filteredReports = allReports.filter(report => report.date.includes(searchInput));\r\n            displayReports(filteredReports);\r\n        }\r\n\r\n        \/\/ Afficher les rapports filtr\u00e9s\r\n        function displayReports(reports) {\r\n            const reportsTable = document.getElementById('daily-reports').getElementsByTagName('tbody')[0];\r\n            reportsTable.innerHTML = '';\r\n\r\n            reports.forEach(report => {\r\n                const row = document.createElement('tr');\r\n                const dateCell = document.createElement('td');\r\n                dateCell.textContent = report.date;\r\n\r\n                const cashCell = document.createElement('td');\r\n                cashCell.textContent = report.cash.toFixed(2);\r\n\r\n                const cardCell = document.createElement('td');\r\n                cardCell.textContent = report.card.toFixed(2);\r\n\r\n                const checkCell = document.createElement('td');\r\n                checkCell.textContent = report.check.toFixed(2);\r\n\r\n                const totalCell = document.createElement('td');\r\n                totalCell.textContent = report.total.toFixed(2);\r\n\r\n                row.appendChild(dateCell);\r\n                row.appendChild(cashCell);\r\n                row.appendChild(cardCell);\r\n                row.appendChild(checkCell);\r\n                row.appendChild(totalCell);\r\n                reportsTable.appendChild(row);\r\n            });\r\n        }\r\n\r\n        \/\/ Pagination\r\n        function prevPage() {\r\n            if (currentPage > 1) {\r\n                currentPage--;\r\n                updateDailyReports();\r\n            }\r\n        }\r\n\r\n        function nextPage() {\r\n            if (currentPage < Math.ceil(allReports.length \/ reportsPerPage)) {\r\n                currentPage++;\r\n                updateDailyReports();\r\n            }\r\n        }\r\n    <\/script>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Ajouter un Rapport de D\u00e9p\u00f4t Valider Synchroniser Effacer les saisies Exporter en XLS R\u00e9sum\u00e9 des Saisies Champ Valeur Tous les Rapports Date Esp\u00e8ces (\u20ac) Carte bancaire (\u20ac) Ch\u00e8que (\u20ac) Total (\u20ac) Pr\u00e9c\u00e9dent Suivant<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_mc_calendar":[],"footnotes":""},"class_list":["post-3374","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.lecomptoirjunasol.coop\/index.php?rest_route=\/wp\/v2\/pages\/3374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lecomptoirjunasol.coop\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lecomptoirjunasol.coop\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lecomptoirjunasol.coop\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lecomptoirjunasol.coop\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3374"}],"version-history":[{"count":40,"href":"https:\/\/www.lecomptoirjunasol.coop\/index.php?rest_route=\/wp\/v2\/pages\/3374\/revisions"}],"predecessor-version":[{"id":3419,"href":"https:\/\/www.lecomptoirjunasol.coop\/index.php?rest_route=\/wp\/v2\/pages\/3374\/revisions\/3419"}],"wp:attachment":[{"href":"https:\/\/www.lecomptoirjunasol.coop\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}