From eaa90ebbe52894dc1ae53d3eed4ee8b5f429375d Mon Sep 17 00:00:00 2001
From: zeldaababil19 <zeldaababil01@gmail.com>
Date: Thu, 28 Mar 2024 14:08:24 +0700
Subject: [PATCH] fix bug add additional

---
 resources/views/pages/Kasir/js.blade.php      |   1 -
 resources/views/pages/Kasir/js_baru.blade.php | 111 ++++++-----
 ..._baru_tmbl hapus di tabel kanan .blade.php | 180 ++++++++++++++++++
 .../views/pages/Kasir/modal_extra.blade.php   |   2 +-
 .../views/pages/Kasir/print_dapur.blade.php   |   1 -
 5 files changed, 245 insertions(+), 50 deletions(-)
 create mode 100644 resources/views/pages/Kasir/js_baru_tmbl hapus di tabel kanan .blade.php

diff --git a/resources/views/pages/Kasir/js.blade.php b/resources/views/pages/Kasir/js.blade.php
index 3d5e4b8..e81a3c4 100644
--- a/resources/views/pages/Kasir/js.blade.php
+++ b/resources/views/pages/Kasir/js.blade.php
@@ -724,7 +724,6 @@
                             timeOut: 2000
                         });
                         // location.reload();
-                        // window.open(result.url, '_blank');
                         window.open(result.url, '_blank',
                             "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=900,height=600"
                         );
diff --git a/resources/views/pages/Kasir/js_baru.blade.php b/resources/views/pages/Kasir/js_baru.blade.php
index 0b5e31a..15d7d62 100644
--- a/resources/views/pages/Kasir/js_baru.blade.php
+++ b/resources/views/pages/Kasir/js_baru.blade.php
@@ -14,7 +14,8 @@
             // adda nama menu to h5 wich id is menu-utama-yang-terpilih
             document.getElementById('menu-utama-yang-terpilih').innerHTML = namaMenu;
             // add total harga menu to input with id total-harga-menu-ini
-            document.getElementById('harga-menu-utama-yang-terpilih').innerHTML = totalHargaMenuIni;
+            document.getElementById('harga-menu-utama-yang-terpilih').innerHTML = totalHargaMenuIni +
+                '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
 
 
             // remove all li element in extra-menu-choised
@@ -25,13 +26,18 @@
                 const element = arrayExtraMenuChoised[index];
                 console.log(element.parent);
                 if (element.parent == globalId) {
-                    htmlnyayaini = `<li>
-                                <div class="row" style="justify-content: space-between;">
-                                    <input type="hidden" id="the-id-extra-menu-choised${globalId}" value="${element.id}">
-                                    <h5 id="the-menu-extra-menu-choised${globalId}">${element.nama_produk}</h5>
-                                    <h6 id="harga-extra-menu-choised${globalId}">${element.harga_produk}</h6>
-                                </div>
-                            </li>`;
+                    htmlnyayaini = `<li  id="linyaygdihapus${element.id}-${globalId}">
+                                        <div class="row" style="justify-content: space-between;">
+                                            <input type="hidden" id="the-id-extra-menu-choised${globalId}" value="${element.id}">
+                                            <h5 id="the-menu-extra-menu-choised${globalId}">${element.nama_produk}</h5>
+                                            <div class="row" style="align-items:center;">
+                                                <h6 id="harga-extra-menu-choised${globalId}" style="padding:0px;margin:0px">${element.harga_produk}</h6>
+                                                <button type="button" class="btn btn-default btn-xs" style="margin-left:4px" onclick="deleteAdditionalExtraMenu(${element.id}, '${globalId}', '${element.harga_produk}')">
+                                                    <i class="fas fa-trash"></i>
+                                                </button>
+                                            </div>
+                                        </div>
+                                    </li>`;
                     document.getElementById('extra-menu-choised').innerHTML += htmlnyayaini;
 
                 }
@@ -41,11 +47,16 @@
         function pesanExtra(params) {
             console.log(params);
             jsonParams = JSON.stringify(params);
-            htmlnyayaini = `<li>
+            htmlnyayaini = `<li id="linyaygdihapus${params.id}">
                                 <div class="row" style="justify-content: space-between;">
                                     <input type="hidden" id="id-extra-menu-choised" value="${params.id}">
                                     <h5 id="menu-extra-menu-choised">${params.nama_produk}</h5>
-                                    <h6 id="harga-extra-menu-choised">${params.harga_produk}</h6>
+                                    <div class="row" style="align-items:center;">
+                                        <h6 id="harga-extra-menu-choised" style="padding:0px;margin:0px">${params.harga_produk}</h6>
+                                        <button type="button" class="btn btn-default btn-xs" style="margin-left:4px" onclick="deleteAdditionalExtraMenu(${params.id})">
+                                            <i class="fas fa-trash"></i>
+                                        </button>
+                                    </div>
                                 </div>
                             </li>`;
             // get element by id
@@ -61,6 +72,14 @@
             // get all li element in extraMenuChoised
             var li = extraMenuChoised.getElementsByTagName('li');
 
+            // remove all li element in the-extra-menu-choised
+            document.getElementById('the-extra-menu-choised' + idTableRowExtra.value).innerHTML = '';
+
+            // remove all element in arrayExtraMenuChoised where parent is idTableRowExtra.value
+            arrayExtraMenuChoised = arrayExtraMenuChoised.filter(function(el) {
+                return el.parent !== idTableRowExtra.value;
+            });
+
             // loop through all li element
             for (let i = 0; i < li.length; i++) {
                 // get id-extra-menu-choised element
@@ -74,12 +93,7 @@
                                 <div class="row" style="justify-content: space-between;">
                                     <input type="hidden" id="the-id-extra-menu-choised${idTableRowExtra.value}" value="${idExtraMenuChoised.value}">
                                     <small id="the-menu-extra-menu-choised${idTableRowExtra.value}">${menuExtraMenuChoised.innerText}</small>
-                                    <div class="row">
-                                        <small id="the-harga-extra-menu-choised${idTableRowExtra.value}" style="margin: 0px;align-self: center;padding: 0px;">${hargaExtraMenuChoised.innerText}</small>
-                                        <button type="button" class="btn btn-default btn-xs" style="margin-left:4px">
-                                            <i class="fas fa-trash" onclick="deleteAdditionalExtraMenu(${idExtraMenuChoised.value}, '${idTableRowExtra.value}', '${hargaExtraMenuChoised.innerText}')"></i>
-                                        </button>
-                                    </div>
+                                    <small id="the-harga-extra-menu-choised${idTableRowExtra.value}" style="margin: 0px;align-self: center;padding: 0px;">${hargaExtraMenuChoised.innerText}</small>
                                 </div>
                             </li>`;
                 document.getElementById('the-extra-menu-choised' + idTableRowExtra.value).innerHTML += htmlnyayaini;
@@ -133,12 +147,7 @@
                         <div class="row" style="justify-content: space-between;">
                             <input type="hidden" id="the-id-extra-menu-choised${i.parent}" value="${i.id}">
                             <small id="the-menu-extra-menu-choised${i.parent}">${i.nama_produk}</small>
-                            <div class="row">
-                                <small id="the-harga-extra-menu-choised${i.parent}" style="margin: 0px;align-self: center;padding: 0px;">${i.harga_produk}</small>
-                                <button type="button" class="btn btn-default btn-xs" style="margin-left:4px">
-                                    <i class="fas fa-trash" onclick="deleteAdditionalExtraMenu(${i.id}, '${i.parent}', '${i.harga_produk}')"></i>
-                                </button>
-                            </div>
+                            <small id="the-harga-extra-menu-choised${i.parent}" style="margin: 0px;align-self: center;padding: 0px;">${i.harga_produk}</small>
                         </div>
                     </li>
                 `);
@@ -149,32 +158,40 @@
         }
         loadAdditionalFromLocalStorage();
 
-        function deleteAdditionalExtraMenu(id, parent, harga) {
-            console.log(id);
-            // get index of arrayExtraMenuChoised
-            var index = arrayExtraMenuChoised.findIndex(x => x.id == id);
-            // remove element from arrayExtraMenuChoised
-            arrayExtraMenuChoised.splice(index, 1);
-            // get element by id
-            var element = document.getElementById('linyaini' + id + parent);
-            // remove element from DOM
-            console.log(element);
-            element.remove();
-            // recalculate total
-            // Mendapatkan semua elemen <tr> dalam tabel dengan id 'tbody-order-menus'
-            var tableRowsNya = document.querySelectorAll('#tbody-order-menus tr');
+        function deleteAdditionalExtraMenu(id, parent = null, harga = null) {
+            console.log(id + ' ' + parent + ' ' + harga);
 
-            // Iterasi melalui setiap elemen <tr> dan mencetak nilai atribut 'data-total'
-            tableRowsNya.forEach(function(row) {
-                var rownya = row.getAttribute('data-row-id');
-                var dataTotal = row.getAttribute('data-total');
-                dataTotal = parseInt(dataTotal) - parseInt(harga);
-                if (rownya == parent) {
-                    row.setAttribute('data-total', dataTotal);
-                    document.getElementById('price' + parent).innerHTML = 'Rp. ' + dataTotal;
-                }
-            });
-            calculateTotal();
+            if (parent == null) {
+                var element = document.getElementById('linyaygdihapus' + id);
+                element.remove();
+            } else {
+                // console.log(id);
+                // // get index of arrayExtraMenuChoised
+                // var index = arrayExtraMenuChoised.findIndex(x => x.id == id);
+                // // remove element from arrayExtraMenuChoised
+                // arrayExtraMenuChoised.splice(index, 1);
+                // get element by id
+                console.log('linyaygdihapus' + id + '-' + parent);
+                var element = document.getElementById('linyaygdihapus' + id + '-' + parent);
+                // remove element from DOM
+                // console.log(element);
+                element.remove();
+                // // recalculate total
+                // // Mendapatkan semua elemen <tr> dalam tabel dengan id 'tbody-order-menus'
+                // var tableRowsNya = document.querySelectorAll('#tbody-order-menus tr');
+
+                // // Iterasi melalui setiap elemen <tr> dan mencetak nilai atribut 'data-total'
+                // tableRowsNya.forEach(function(row) {
+                //     var rownya = row.getAttribute('data-row-id');
+                //     var dataTotal = row.getAttribute('data-total');
+                //     dataTotal = parseInt(dataTotal) - parseInt(harga);
+                //     if (rownya == parent) {
+                //         row.setAttribute('data-total', dataTotal);
+                //         document.getElementById('price' + parent).innerHTML = 'Rp. ' + dataTotal;
+                //     }
+                // });
+            }
+            // calculateTotal();
         }
     </script>
 @endpush
diff --git a/resources/views/pages/Kasir/js_baru_tmbl hapus di tabel kanan .blade.php b/resources/views/pages/Kasir/js_baru_tmbl hapus di tabel kanan .blade.php
new file mode 100644
index 0000000..0b5e31a
--- /dev/null
+++ b/resources/views/pages/Kasir/js_baru_tmbl hapus di tabel kanan .blade.php	
@@ -0,0 +1,180 @@
+@push('scripts')
+    <script type="text/javascript">
+        $(document).ready(function() {
+
+        });
+        // create array to store all extra menu choised
+        var arrayExtraMenuChoised = [];
+
+        function setIdRowTable(globalId, namaMenu, totalHargaMenuIni) {
+            console.log(globalId);
+            console.log(namaMenu);
+            console.log(totalHargaMenuIni);
+            document.getElementById('id-table-row-extra').value = globalId;
+            // adda nama menu to h5 wich id is menu-utama-yang-terpilih
+            document.getElementById('menu-utama-yang-terpilih').innerHTML = namaMenu;
+            // add total harga menu to input with id total-harga-menu-ini
+            document.getElementById('harga-menu-utama-yang-terpilih').innerHTML = totalHargaMenuIni;
+
+
+            // remove all li element in extra-menu-choised
+            var extraMenuChoised = document.getElementById('extra-menu-choised');
+            extraMenuChoised.innerHTML = '';
+
+            for (let index = 0; index < arrayExtraMenuChoised.length; index++) {
+                const element = arrayExtraMenuChoised[index];
+                console.log(element.parent);
+                if (element.parent == globalId) {
+                    htmlnyayaini = `<li>
+                                <div class="row" style="justify-content: space-between;">
+                                    <input type="hidden" id="the-id-extra-menu-choised${globalId}" value="${element.id}">
+                                    <h5 id="the-menu-extra-menu-choised${globalId}">${element.nama_produk}</h5>
+                                    <h6 id="harga-extra-menu-choised${globalId}">${element.harga_produk}</h6>
+                                </div>
+                            </li>`;
+                    document.getElementById('extra-menu-choised').innerHTML += htmlnyayaini;
+
+                }
+            }
+        }
+
+        function pesanExtra(params) {
+            console.log(params);
+            jsonParams = JSON.stringify(params);
+            htmlnyayaini = `<li>
+                                <div class="row" style="justify-content: space-between;">
+                                    <input type="hidden" id="id-extra-menu-choised" value="${params.id}">
+                                    <h5 id="menu-extra-menu-choised">${params.nama_produk}</h5>
+                                    <h6 id="harga-extra-menu-choised">${params.harga_produk}</h6>
+                                </div>
+                            </li>`;
+            // get element by id
+            var extraMenuChoised = document.getElementById('extra-menu-choised');
+            // append htmlnyayaini to extraMenuChoised
+            extraMenuChoised.innerHTML += htmlnyayaini;
+        }
+
+        function simpanPesananExtra() {
+            var idTableRowExtra = document.getElementById('id-table-row-extra');
+            // get extra-menu-choised element
+            var extraMenuChoised = document.getElementById('extra-menu-choised');
+            // get all li element in extraMenuChoised
+            var li = extraMenuChoised.getElementsByTagName('li');
+
+            // loop through all li element
+            for (let i = 0; i < li.length; i++) {
+                // get id-extra-menu-choised element
+                var idExtraMenuChoised = li[i].getElementsByTagName('input')[0];
+                // get menu-extra-menu-choised element
+                var menuExtraMenuChoised = li[i].getElementsByTagName('h5')[0];
+                // get harga-extra-menu-choised element
+                var hargaExtraMenuChoised = li[i].getElementsByTagName('h6')[0];
+
+                htmlnyayaini = `<li style="margin:10px" id="linyaini${idExtraMenuChoised.value}${idTableRowExtra.value}">
+                                <div class="row" style="justify-content: space-between;">
+                                    <input type="hidden" id="the-id-extra-menu-choised${idTableRowExtra.value}" value="${idExtraMenuChoised.value}">
+                                    <small id="the-menu-extra-menu-choised${idTableRowExtra.value}">${menuExtraMenuChoised.innerText}</small>
+                                    <div class="row">
+                                        <small id="the-harga-extra-menu-choised${idTableRowExtra.value}" style="margin: 0px;align-self: center;padding: 0px;">${hargaExtraMenuChoised.innerText}</small>
+                                        <button type="button" class="btn btn-default btn-xs" style="margin-left:4px">
+                                            <i class="fas fa-trash" onclick="deleteAdditionalExtraMenu(${idExtraMenuChoised.value}, '${idTableRowExtra.value}', '${hargaExtraMenuChoised.innerText}')"></i>
+                                        </button>
+                                    </div>
+                                </div>
+                            </li>`;
+                document.getElementById('the-extra-menu-choised' + idTableRowExtra.value).innerHTML += htmlnyayaini;
+
+                // push extra menu choised to extraMenuChoised array
+                arrayExtraMenuChoised.push({
+                    parent: idTableRowExtra.value,
+                    id: idExtraMenuChoised.value,
+                    nama_produk: menuExtraMenuChoised.innerText,
+                    harga_produk: hargaExtraMenuChoised.innerText
+                });
+            }
+            calculationMenuUtamaDenganExtraMenu();
+            // log extraMenuChoised
+            console.log(arrayExtraMenuChoised);
+        }
+
+        function calculationMenuUtamaDenganExtraMenu() {
+            for (let index = 0; index < arrayExtraMenuChoised.length; index++) {
+                const element = arrayExtraMenuChoised[index];
+
+                // Mendapatkan semua elemen <tr> dalam tabel dengan id 'tbody-order-menus'
+                var tableRowsNya = document.querySelectorAll('#tbody-order-menus tr');
+
+                // Iterasi melalui setiap elemen <tr> dan mencetak nilai atribut 'data-total'
+                tableRowsNya.forEach(function(row) {
+                    var rownya = row.getAttribute('data-row-id');
+                    var dataTotal = row.getAttribute('data-total');
+                    dataTotal = parseInt(dataTotal) + parseInt(element.harga_produk);
+                    if (rownya == element.parent) {
+                        row.setAttribute('data-total', dataTotal);
+                        document.getElementById('price' + element.parent).innerHTML = 'Rp. ' + dataTotal;
+                    }
+                });
+            }
+
+            calculateTotal();
+        }
+
+        function loadAdditionalFromLocalStorage() {
+            var data = localStorage.getItem('AdditionalStorage');
+            if (data === null || data === undefined) {
+                return false;
+            }
+            data = JSON.parse(data);
+            arrayExtraMenuChoised = data.arrayExtraMenuChoised;
+            // console.log(arrayExtraMenuChoised);
+            arrayExtraMenuChoised.forEach((i, key) => {
+                $('#the-extra-menu-choised' + i.parent).append(`
+                    <li style="margin:10px" id="linyaini${i.id}${i.parent}">
+                        <div class="row" style="justify-content: space-between;">
+                            <input type="hidden" id="the-id-extra-menu-choised${i.parent}" value="${i.id}">
+                            <small id="the-menu-extra-menu-choised${i.parent}">${i.nama_produk}</small>
+                            <div class="row">
+                                <small id="the-harga-extra-menu-choised${i.parent}" style="margin: 0px;align-self: center;padding: 0px;">${i.harga_produk}</small>
+                                <button type="button" class="btn btn-default btn-xs" style="margin-left:4px">
+                                    <i class="fas fa-trash" onclick="deleteAdditionalExtraMenu(${i.id}, '${i.parent}', '${i.harga_produk}')"></i>
+                                </button>
+                            </div>
+                        </div>
+                    </li>
+                `);
+            });
+
+            // set total extra menu
+            calculationMenuUtamaDenganExtraMenu();
+        }
+        loadAdditionalFromLocalStorage();
+
+        function deleteAdditionalExtraMenu(id, parent, harga) {
+            console.log(id);
+            // get index of arrayExtraMenuChoised
+            var index = arrayExtraMenuChoised.findIndex(x => x.id == id);
+            // remove element from arrayExtraMenuChoised
+            arrayExtraMenuChoised.splice(index, 1);
+            // get element by id
+            var element = document.getElementById('linyaini' + id + parent);
+            // remove element from DOM
+            console.log(element);
+            element.remove();
+            // recalculate total
+            // Mendapatkan semua elemen <tr> dalam tabel dengan id 'tbody-order-menus'
+            var tableRowsNya = document.querySelectorAll('#tbody-order-menus tr');
+
+            // Iterasi melalui setiap elemen <tr> dan mencetak nilai atribut 'data-total'
+            tableRowsNya.forEach(function(row) {
+                var rownya = row.getAttribute('data-row-id');
+                var dataTotal = row.getAttribute('data-total');
+                dataTotal = parseInt(dataTotal) - parseInt(harga);
+                if (rownya == parent) {
+                    row.setAttribute('data-total', dataTotal);
+                    document.getElementById('price' + parent).innerHTML = 'Rp. ' + dataTotal;
+                }
+            });
+            calculateTotal();
+        }
+    </script>
+@endpush
diff --git a/resources/views/pages/Kasir/modal_extra.blade.php b/resources/views/pages/Kasir/modal_extra.blade.php
index 07069b7..72735b2 100644
--- a/resources/views/pages/Kasir/modal_extra.blade.php
+++ b/resources/views/pages/Kasir/modal_extra.blade.php
@@ -1,5 +1,5 @@
 <div class="modal fade" id="modal-add-extra">
-    <div class="modal-dialog modal-lg">
+    <div class="modal-dialog modal-xl">
         <div class="modal-content">
             <div class="modal-header">
                 <h4 class="modal-title">Pilih Extra Topping</h4>
diff --git a/resources/views/pages/Kasir/print_dapur.blade.php b/resources/views/pages/Kasir/print_dapur.blade.php
index 643fdab..599c409 100644
--- a/resources/views/pages/Kasir/print_dapur.blade.php
+++ b/resources/views/pages/Kasir/print_dapur.blade.php
@@ -150,7 +150,6 @@
                     </tr>
                     @php
                         $tampungid;
-
                     @endphp
                     @foreach ($pesanan->detailPesanan as $item2)
                         @if ($item2->id_parent !== null && $item2->id_parent == $item->id)