Как посчитать Итого, Налог по данным из базы данных

так что я новичок в codeigniter и веб-разработке в целом, но можно ли подсчитать Sub Total и Tax, автоматически ввести это значение в какое-то поле ввода в codeigniter?

Например :

  • у меня есть модель, которая объединяет некоторые столбцы и отображает данные в таблице

модель таблицы.php

public function getPurchaseOrder()
    {
        $query =$this->db->query('SELECT dkmno, kodeprod,kodebarang_op,qty_op,unit_op,price,catatan FROM order_product JOIN barang_dkm ON order_product.kodebarang_op = barang_dkm.kodebarang');
        return $query->result_array();
    }

представление таблицы.php

<table class = "table table-fixed table-bordered table-hover" style = "width:100%;" id = "tebal">
                                <thead>
                                    <tr>
                                        <th scope = "col">DKM No </th>
                                        <th scope = "col">Kode Produksi </th>
                                        <th scope = "col">Kode Barang </th>
                                        <th scope = "col">Deskripsi </th>
                                        <th scope = "col">Jumlah/Quantity </th>
                                        <th scope = "col">Unit </th>
                                        <th scope = "col">Unit Price </th>
                                        <th scope = "col">Sub Total </th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php foreach ($dataTabel as $kiki) : ?>
                                        <tr class = "table-row">
                                            <td><?php echo $kiki["dkmno"]; ?></td>
                                            <td><?php echo $kiki["kodeprod"]; ?></td>
                                            <td><?php echo $kiki["kodebarang_op"]; ?></td>
                                            <td><?php echo $kiki["catatan"]; ?></td>
                                            <td><?php echo $kiki["qty_op"]; ?></td>
                                            <td><?php echo $kiki["unit_op"]; ?></td>
                                            <td><?php echo $kiki["price"]; ?></td>
                                            <td class = "calc"><?php $a=$kiki["qty_op"]*$kiki["price"]; echo $a ?></td>
                                        </tr>
                                    <?php endforeach;?>
                                </tbody>
                            </table>

  • и я хочу подсчитать промежуточный итог из приведенной выше таблицы и показать ответ в текстовом поле или поле ввода

  • промежуточный итог, скидка и налоговый код, если вы хотите знать

<div class = "row mt-5">
                    <div class = "col-sm" id = "kontol">
                        <div class = "form-group">
                            <div class = "row">
                                <div class = "col-sm-3">
                                    <label for = "SubTotal" class = "control-label">Sub Total : </label>
                                </div>
                                <div class = "col-sm-9">
                                    <input type = "number" id = "subTotal" name = "SubTotal" value = "" style = "text-align: right;" class = "form-control" disabled>
                                </div>
                            </div>
                        </div>
                        <div class = "form-group">
                            <div class = "row">
                                <div class = "col-lg-3">
                                    <label for = "Discount" class = "label-control" id = "Discount">Discount : </label>
                                </div>
                                <div class = "col-lg-3">
                                    <div class = "input-group">
                                        <input type = "number" name = "Discount" class = "form-control" id = "inputDiscount" value = "" min = "0" max = "100" onchange = "calculatedSubTotal()"><span class = "input-group-addon">%</span>
                                    </div>
                                </div>
                                <div class = "col-lg-6">
                                    <input type = "number" name = "SubTotalDiscount" value = "" style = "text-align: right;"  class = "form-control" id = "subTotalDiscount" disabled>
                                </div>
                            </div>
                        </div>
                        <div class = "form-group">
                            <div class = "row">
                                <div class = "col-lg-3">
                                    <label for = "Tax" class = "label-control">Tax : </label>
                                </div>
                                <div class = "col-lg-3">
                                    <div class = "input-group">
                                        <input type = "number" name = "Tax" value = "" min = "0" max = "100" class = "form-control" id = "inputTax" onchange = "calculatedSubTotal()"><span class = "input-group-addon">%</span>
                                    </div>
                                </div>
                                <div class = "col-lg-6">
                                    <input type = "number" name = "SubTotalTax" style = "text-align: right;" class = "form-control" id = "subTotalTax" value = "" disabled>
                                </div>
                            </div>
                        </div>

я пытался посмотреть на людей, которые задают тот же вопрос, но мне все еще нужна какая-то информация о том, как работают model.php, controller.php, view.php, script.js, если вам нужно больше деталей, вот ссылка на пользовательский интерфейс, который я уже сделано : https://i.imgur.com/LSkrnMH.png

вы можете использовать javascript для расчета суммы или хотите из самого запроса

Jacky 29.07.2019 09:34

Не могли бы вы проверить мой ответ?

Hasta Dhana 29.07.2019 11:25

@HastaDhana, извини, я не видел твоего

Jacky 29.07.2019 11:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
255
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Попробуй это:

$this->db->select_sum('your_column_to_calculate');
$this->db->select('your_column_to_calculate');
$this->db->from('price');
$this->db->get();

или вот так:

query = $this->db->query('SELECT sum(your_column_to_calculate) FROM price');

Надеюсь, поможет

может показать мне, как суммировать таблицу соединений? как код, который я только что добавил

Frsal 29.07.2019 08:44

Это код javascript, он вычисляет единственную строку расчета и показывает результат в текстовом поле промежуточного итога, и он будет загружаться автоматически:

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

                    var hh2 = 0;              
                    $('#tebal > tbody  > tr').each(function() {
              var price = $(this).find('.calc').val();
                hh2 += parseFloat(price);                   
                    });
$('#SubTotal').val(hh2);
            });
</script>

если я введу значение налога 10%, и он выведет значение subtotal*tax

Frsal 29.07.2019 10:44

ты понял или нет

Jacky 29.07.2019 11:55

вы можете посчитать всю сумму с помощью самого php

set variable $subtotal with zero, and add $subtotal in every loop

<?php 
$subtotal = 0;
foreach ($dataTabel as $kiki) : ?>
<tr class = "table-row">
    ....
</tr> <?php $subtotal = $subtotal+$kiki["qty_op"]*$kiki["price"]; endforeach;?>

Надеюсь, ты понял.

Ответ принят как подходящий

Вы можете получить промежуточный итог с помощью CodeIgniter, но вам придется использовать javascript для расчета налога, поскольку он требует взаимодействия с пользователем.

Например, у вас есть ввод промежуточного итога следующим образом:

    <div class = "form-group">
        <label class = "col-sm-3 control-label" for = "SubTotal">Sub Total</label>
        <div class = "col-sm-9">
            <input type = "number" name = "SubTotal" id = "subTotal" class = "form-control" value = "" title = "Sub Total" disabled><br/>
        </div>
    </div>
    <div class = "form-group">
        <label class = "col-sm-3 control-label" for = "Discount">Discount</label>
        <div class = "col-sm-9">
            <div class = "col-sm-6">
                <div class = "input-group input-group-md">
                    <input type = "number" name = "Discount" id = "inputDiscount" class = "form-control" value = "" title = "Discount" min = "0" max = "100" onchange = "calculateSubTotal()"><span class = "input-group-addon">%</span>
                </div>
            </div>
            <div class = "col-sm-6">
                <input type = "number" name = "SubTotalDiscount" id = "subTotalDiscount" class = "form-control" value = "" title = "Subtotal After Discount" disabled><br/>
            </div>
        </div>
    </div>
    <div class = "form-group">
        <label class = "col-sm-3 control-label" for = "Tax">Tax</label>
        <div class = "col-sm-9">
            <div class = "col-sm-6">
                <div class = "input-group input-group-md">
                    <input type = "number" name = "Tax" id = "inputTax" class = "form-control" value = "" title = "Tax" min = "0" max = "100" onchange = "calculateSubTotal()"><span class = "input-group-addon">%</span>
                </div>
            </div>
            <div class = "col-sm-6">
                <input type = "number" name = "SubTotalTax" id = "subTotalTax" class = "form-control" value = "" title = "Subtotal After Tax" disabled><br/>
            </div>
        </div>
    </div>

Затем вы можете установить значение промежуточного итога, а также подсчитать значение промежуточного итога после скидки и после уплаты налога следующим образом:

<script>
    jQuery(function () {
        let sum = 0.0;
        jQuery('.calc').each(function() {
            sum += parseInt(jQuery(this).text());
        });
        jQuery("#subTotal").val(sum);
    });
    function calculateSubTotal() {
        let subtotal = jQuery("#subTotal").val();
        jQuery("#subTotalDiscount").val(subtotal - (Math.round((jQuery("#inputDiscount").val() / 100) * subtotal)));
        let subtotal_discount = jQuery("#subTotalDiscount").val();
        jQuery("#subTotalTax").val(+subtotal_discount + (Math.round((jQuery("#inputTax").val() / 100) * subtotal_discount)));
    }
</script>

Вместо этого все промежуточные итоги будут установлены с использованием javascript.

Вы назначили id = "subTotal" входу Промежуточный итог? также вы получаете какое-либо консольное сообщение? Кроме того, не могли бы вы поделиться кодом ввода промежуточной суммы, скидки и налога?

Hasta Dhana 30.07.2019 05:08

да, я присвоил этому свой промежуточный идентификатор, да, конечно, я только что отредактировал свой вопрос

Frsal 30.07.2019 06:33

Я вижу, вы переименовали calculateSubTotal() в calculatedSubTotal() в своем коде, не могли бы вы также показать код javascript?

Hasta Dhana 30.07.2019 06:45

javascript, который я пробую, это тот, который ты пишешь

Frsal 30.07.2019 07:06

нет ошибки, только нет значения, которое появляется

Frsal 30.07.2019 08:32

Значит, значение Промежуточный итог (первый вход) пусто?

Hasta Dhana 30.07.2019 08:34

да ввод subTotal пуст

Frsal 30.07.2019 08:42

Попробуйте это на консоли: let y = 0.0;$('.calc').each(function(){y += parseInt($(this).text())});console.info(y);, что он возвращает?

Hasta Dhana 30.07.2019 08:54

не могли бы вы объяснить мне, как это сделать, я до сих пор не очень понимаю javascript

Frsal 30.07.2019 09:12

Откройте Dev Tools, нажав: Ctrl+Shift+i ИЛИ F12, затем вставьте эти коды на вкладку Консоль.

Hasta Dhana 30.07.2019 09:55
Uncaught TypeError: Cannot read property 'each' of null at <anonymous>:1:23 он возвращает эту ошибку
Frsal 30.07.2019 10:00

обновите страницу и попробуйте заменить знак $ на jQuery в консоли: let y = 0.0;jQuery('.calc').each(function(){y += parseInt(jQuery(this).text())});console.info(y);

Hasta Dhana 30.07.2019 10:18

да, это показывает суммарное значение subTotal из таблицы

Frsal 30.07.2019 10:38

если я использую $(function () { let sum = 0.0; $('.calc').each(function() { sum += parseInt($(this).text()); }); $("#subTotal").val(sum); }); в консоли, он возвращает это k.fn.init [document], и значение появляется в поле ввода

Frsal 30.07.2019 10:43

это работает! спасибо, это потому что я не установил jquery?

Frsal 30.07.2019 11:59

пожалуйста! может быть, это потому, что ваша библиотека использует jQuery.noConflict(), что для использования jquery вам нужно заменить $ на jQuery, более

Hasta Dhana 30.07.2019 12:08

Другие вопросы по теме