File "ordermodify2.php"

Full path: /home/atrmarke/public_html/atrdemolive.site/hardware/log/ordermodify2.php
File size: 0.03 KB (26.49 KB bytes)
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php
include("../db/cn.php");
/*session_start();*/

if(isset($_SESSION['user_name']) && isset($_SESSION['user_role']) && isset($_SESSION['outlet_name']) && isset($_SESSION['outlet_address'])) {
    $userName = $_SESSION['user_name'];
    $userRole = $_SESSION['user_role'];
    $outlet_address = $_SESSION['outlet_address'];
    $outlet_name = $_SESSION['outlet_name'];
}

// Check if order ID is provided
if (!isset($_GET["order_id"])) {
    exit("Order ID is missing.");
}

$order_id = mysqli_real_escape_string($connection, $_GET["order_id"]);
$products_query = mysqli_query($connection, "SELECT * FROM log_user_sales WHERE order_id = '$order_id'");



if ($_POST) {
    // Extract order details from the HTML form inputs
    $totalAmount = mysqli_real_escape_string($connection, $_POST['total_input']);
    $discounted = mysqli_real_escape_string($connection, $_POST['discounted']);
    $discountAmount = mysqli_real_escape_string($connection, $_POST['result']);
    $discountPercentage = mysqli_real_escape_string($connection, $_POST['discount_percentage']);
    $cashAmount = mysqli_real_escape_string($connection, $_POST['cash_amount']);
    $changeAmount = mysqli_real_escape_string($connection, $_POST['change_amount']);
    $taxAmount = mysqli_real_escape_string($connection, $_POST['tax_amount']);
    $customerName = mysqli_real_escape_string($connection, $_POST['customer_name']);
    $customerPhone = mysqli_real_escape_string($connection, $_POST['customer_phone']);
    $paidBy = mysqli_real_escape_string($connection, $_POST['paid_by']);

    // Construct the INSERT query
    $insertQuery = "INSERT INTO `m_order` (product_id, supplier_name, company, company_category, product_name, product_price, product_quantity, product_total, tax_amount, total_amount, paid_by, customer_name, customer_phone, discount_amount, discounted, discount_per, cash_amount, change_amount, order_id, outlet_name, login_user, user_role, outlet_address, date_time) VALUES ";

    // Additional details (assuming these are constants or fetched from somewhere else)
    $dateTime = date("Y-m-d");

    // Extract product details from the table rows
    $productData = array();
    if (isset($_POST['product']) && is_array($_POST['product'])) {
        foreach ($_POST['product'] as $row) {
            $productId = mysqli_real_escape_string($connection, $row['product_id']);
            $supplierName = mysqli_real_escape_string($connection, $row['supplier_name']);
            $company = mysqli_real_escape_string($connection, $row['company']);
            $companyCategory = mysqli_real_escape_string($connection, $row['company_category']);
            $productName = mysqli_real_escape_string($connection, $row['product_name']);
            $productPrice = mysqli_real_escape_string($connection, $row['product_price']);
            $productQuantity = mysqli_real_escape_string($connection, $row['product_quantity']);
            $productTotal = mysqli_real_escape_string($connection, $row['product_total']);
            $productData[] = "('$productId', '$supplierName', '$company', '$companyCategory', '$productName', '$productPrice', '$productQuantity', '$productTotal', '$taxAmount', '$totalAmount', '$paidBy', '$customerName', '$customerPhone', '$discountAmount', '$discounted', '$discountPercentage', '$cashAmount', '$changeAmount', '$order_id', '$outlet_name', '$userName', '$userRole', '$outlet_address', '$dateTime')";
        }

        // Construct the INSERT query
        $insertQuery .= implode(", ", $productData);

        // Execute the query
        if (mysqli_query($connection, $insertQuery)) {
            echo "Records inserted successfully.";
        } else {
            echo "Error: " . $insertQuery . "<br>" . mysqli_error($connection);
        }
    } else {
        echo "No products found.";
    }
}



// Check if product name is requested via AJAX
if (isset($_POST['product_name'])) {
    $productName = mysqli_real_escape_string($connection, $_POST['product_name']);
    echo "Product name: $productName\n";

    $product_query = mysqli_query($connection, "SELECT * FROM products WHERE name = '$productName'");

    if ($product_query && mysqli_num_rows($product_query) > 0) {
        $product = mysqli_fetch_assoc($product_query);
        echo "Product found: ". json_encode($product). "\n";
        echo json_encode($product);
    } else {
        echo "Error: Product not found\n";
        echo json_encode(["error" => "Product not found"]);
    }

}

// Fetch product names
$products_query1 = mysqli_query($connection, "SELECT name FROM products");
$products = array();
while ($row = mysqli_fetch_assoc($products_query1)) {
    $products[] = $row["name"];
}
?>



<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Pharmacy POS</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <style>
        html, body {
            height: 100%;
            margin: 0;
            padding: 0;
            font-family: Arial, sans-serif;
            background-image: url(img/bg.jpg);
            background-size: cover;
            background-position: center;
            background-attachment: fixed;
        }

        .wrapper {
            display: flex;
            flex-direction: column;
            height: 100%;
        }

        .header,
        .footer {
            width: 100%;
            height: 70px;
            background-color: #060606;
            color: #fff;
            text-align: ;
        }

        .content {
            flex: 1;
            overflow-y: auto;
            padding: 10px;
        }

        #product-container-wrapper {
            max-height: 300px;
            overflow-y: auto;
        }

        .dropdown-options {
            display: none;
            position: absolute;
            z-index: 1000;
            width: calc(89% - 2px);
            max-height: 200px;
            overflow-y: auto;
            border: 1px solid #ccc;
            background-color: #fff;
        }

        .option {
            padding: 5px 10px;
            cursor: pointer;
            transition: background-color 0.3s;
        }

        .option:hover,
        .option.highlight {
            background-color: #353535;
            color: #fff;
        }

        @keyframes blink {
            0% {
                opacity: 1;
            }

            50% {
                opacity: 0;
            }

            100% {
                opacity: 1;
            }
        }

        #total-amount {
            font-size: 46px;
            font-weight: 700;
            color: #0A5064;
            animation: blink 1s step-start infinite;
        }

        label {
            font-weight: 600;
        }

        .in_c {
            border: 1.5px solid #0A5064;
        }
        img.pulse {
            width: 60px;
            height: 60px;
            animation: pulse 2s infinite;
        }
        @keyframes pulse {
            0% {
                transform: scale(1);
            }
            50% {
                transform: scale(1.2);
            }
            100% {
                transform: scale(1);
            }
        }
        .btn-success {
            background: #0A5064;
            color: #fff;
            border: 1px solid #353535;
        }
    </style>
</head>

<body>
    <div class="wrapper">
        <div class="header row">
            <div class="col-sm-3">
                <a href="addproduct.php"><img class="pulse" src="img/logo_1.png" width="60" height="60"></a>
            </div>
            <div class="col-sm-6">
                <h3 style="color:#fff; text-align:center;line-height:70px; font-weight:600;">HASSAN PHARMACY</h3>
            </div>    
            <div class="col-sm-3"></div>
        </div>

        <div class="content">
            <div class="container">
                <form id="orderForm" action="ordermodify2.php?order_id=<?php echo $order_id; ?>" method="post" enctype="multipart/form-data">
                    <div class="container">
                        <div class="row" style="border:1px solid #0A5064; border-radius:7px; background:#FFF;padding:10px;">
                            <div class="col-sm-5">
                                <br>
                                <div class="form-group" style="border:1px solid #ccc; border-radius:7px; background:#EFEFE5;padding:10px;">
                                    <input type="text" id="searchInput" class="search-input form-control in_c" />
                                    <div id="filteredOptions" class="dropdown-options"></div>
                                </div>
                            </div>
                            <div class="col-sm-4"></div>
                            <div class="col-sm-3" style="background:#353535; text-align:center; padding:15px;border-radius:10px;border:1px solid #0A5064;">
                                <span style="font-size:46px; font-weight:700; color:#0A5064;" id="total-amount">0.00</span>
                            </div>
                        </div>
                        <br>
                        <div class="row">
                            <div class="col-sm-12" id="product-container-wrapper" style="height:320px; border:1px solid #0A5064; border-radius:7px; background:#F5F5F5;padding:10px;">
                                <table id="cart-table" class="table table-striped table-sm text-center">
                                    <thead>
                                        <tr class="bg-dark text-white" style="border-radius:10px;">
                                            <th>Total.Qty</th>
                                            <th>Item Code</th>
                                            <th>Description</th>
                                            <th>Modify.Qty</th>
                                            <th>Unit Price</th>
                                            <th>Amount</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <?php while($row = mysqli_fetch_array($products_query)) { ?>
                                            <tr>
                                                <td style="color:#0A5064; font-weight:600;"><?php echo $row["product_quantity"]; ?></td>
                                                <td style="color:#0A5064; font-weight:600;"><?php echo $row["product_id"]; ?></td>
                                                <td style="color:#353535; font-weight:600;"><?php echo $row["product_name"]; ?></td>
                                                <td><center><input type="number" class="form-control" value="<?php echo $row["product_quantity"]; ?>" style="width:41%; border:1px solid #0A5064;" /></center></td>
                                                <td><?php echo $row["product_price"]; ?></td>
                                                <td style="color:#353535; font-weight:600;"><?php echo $row["product_total"]; ?></td>
                                            </tr>
                                        <?php } ?>
                                    </tbody>
                                </table>
                                <div id="hidden-fields-container"></div>
                            </div>
                        </div>
                        <div class="row" style="margin-top:30px;">
                            <div class="col-sm-12" style="background:#F5F5F5; padding:18px; border:1px solid #0A5064; border-radius:7px;">
                                <div class="row">
                                    <div class="col-sm-2">
                                        <div class="form-group">
                                            <label>Total</label>
                                            <input type="number" id="total-input" name="total_input" class="form-control in_c" readonly />
                                        </div>
                                    </div>
                                    <div class="col-sm-2">
                                        <div class="form-group">
                                            <label>Bill Amount</label>
                                            <input type="number" id="discount-input" name="discounted" class="form-control in_c" oninput="calculateResult()" />
                                        </div>
                                    </div>
                                    <div class="col-sm-2">
                                        <div class="form-group">
                                            <label>Discount Amount</label>
                                            <input type="number" id="result-input" name="result" class="form-control in_c" readonly />
                                        </div>
                                    </div>
                                    <div class="col-sm-2">
                                        <div class="form-group">
                                            <label>Discount %</label>
                                            <input type="number" id="percentage-display" name="discount_percentage" class="form-control in_c" readonly />
                                        </div>
                                    </div>
                                    <div class="col-sm-2">
                                        <div class="form-group">
                                            <label>Cash Received</label>
                                            <input type="number" id="cash-input" name="cash_amount" class="form-control in_c" />
                                        </div>
                                    </div>
                                    <div class="col-sm-2">
                                        <div class="form-group">
                                            <label>Cash Return</label>
                                            <input type="number" id="balance-input" name="change_amount" class="form-control in_c" readonly />
                                        </div>
                                    </div>
                                </div>
                                <br>
                                <div class="row">
                                    <div class="col-sm-2">
                                        <div class="form-group">
                                            <label>S.Tax(0%)</label>
                                            <input type="text" class="form-control in_c" name="tax_amount" />
                                        </div>
                                    </div>
                                    <div class="col-sm-2">
                                        <div class="form-group">
                                            <label>Customer Name</label>
                                            <input type="text" class="form-control in_c" name="customer_name" />
                                        </div>
                                    </div>
                                    <div class="col-sm-2">
                                        <div class="form-group">
                                            <label>Phone</label>
                                            <input type="text" class="form-control in_c" name="customer_phone" />
                                        </div>
                                    </div>
                                    <div class="col-sm-2">
                                        <div class="form-group">
                                            <label>Method</label>
                                            <select name="paid_by" class="form-control">
                                                <option value="cash">Cash</option>
                                                <option value="credit">Credit</option>
                                                <option value="other">Other</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="col-sm-3">
                                        <br>
                                        <button id="bill-button" class="btn btn-success form-control" type="submit" name="submit">Update / Modify</button>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <br>
                        <div class="row">
                            <div class="col-sm-5"></div>
                            <div class="col-sm-2"></div>
                            <div class="col-sm-5"></div>
                        </div>
                        <div class="row">
                            <div class="col-sm-12 text-left"></div>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
$(document).ready(function() {
    var products = <?php echo json_encode($products); ?>;
    var searchInput = document.getElementById('searchInput');
    var filteredOptions = document.getElementById('filteredOptions');
    var cartTableBody = document.getElementById('cart-table').getElementsByTagName('tbody')[0];

   // Function to add product to table and form
function addProductToTable(productName, productId, productPrice) {
    // Add product to table
    var newRow = document.createElement('tr');
    newRow.innerHTML = `
        <td style="color:#0A5064; font-weight:600;">1</td>
        <td style="color:#0A5064; font-weight:600;">${productId}</td>
        <td style="color:#353535; font-weight:600;">${productName}</td>
        <td><center><input type="number" name="product[${productId}][quantity]" value="1" class="form-control" style="width:41%; border:1px solid #0A5064;" /></center></td>
        <td>${productPrice}</td>
        <td style="color:#353535; font-weight:600;">${productPrice}</td>
    `;
    cartTableBody.appendChild(newRow);

    // Calculate total amount and update display
    calculateAmountAndTotal();
}
function addProductToTable(productName) {
    // You can add an AJAX request here to send data to PHP for database insertion
    $.ajax({
        url: 'ordermodify2.php?order_id=<?php echo $order_id;?>', // PHP script to handle database insertion
        type: 'POST',
        data: { productName: productName }, // Data to be sent
        success: function(response) {
            console.log('Data inserted into database:', response);
        },
        error: function(xhr, status, error) {
            console.error('Error inserting data into database:', error);
        }
    });

    // Add product to table
    var newRow = document.createElement('tr');
    newRow.innerHTML = `
        <td style="color:#0A5064; font-weight:600;">1</td>
        <td style="color:#0A5064; font-weight:600;">001</td>
        <td style="color:#353535; font-weight:600;">${productName}</td>
        <td><center><input type="number" class="form-control" value="1" style="width:41%; border:1px solid #0A5064;" oninput="calculateAmountAndTotal()" /></center></td>
        <td>${productPrice}</td>
        <td style="color:#353535; font-weight:600;">${productPrice}</td>
    `;
    console.log('New row created:', newRow);
    console.log('Cart table body:', cartTableBody);
    cartTableBody.appendChild(newRow);

    // Calculate total amount and update display
    calculateAmountAndTotal();
}
       // Function to calculate total amount
    function calculateAmountAndTotal() {
        var totalAmount = 0;
        var rows = cartTableBody.getElementsByTagName('tr');
        for (var i = 0; i < rows.length; i++) {
            var quantity = parseInt(rows[i].getElementsByTagName('input')[0].value);
            var price = parseFloat(rows[i].getElementsByTagName('td')[4].textContent);
            var amount = quantity * price;
            totalAmount += amount;
            rows[i].getElementsByTagName('td')[5].textContent = amount.toFixed(2);
        }
        document.getElementById('total-amount').textContent = totalAmount.toFixed(2);
        document.getElementById('total-input').value = totalAmount.toFixed(2);
        calculateResult();
        calculateCashReturn();
    }
// Function to handle form submission
document.getElementById('orderForm').addEventListener('submit', function(event) {
    var formData = new FormData(this);
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'ordermodify2.php?order_id=<?php echo $order_id;?>', true);
    xhr.onload = function() {
        if (xhr.status === 200) {
            console.log('Data inserted into database:', xhr.responseText);
        } else {
            console.error('Error inserting data into database:', xhr.statusText);
        }
    };
    xhr.send(formData);
});
        // Rest of the existing code for search and adding product...
        searchInput.addEventListener('input', function() {
            var value = searchInput.value.toLowerCase();
            var html = '';
            products.forEach(function(product) {
                if (product.toLowerCase().includes(value)) {
                    html += '<div class="option" data-value="' + product + '">' + product + '</div>';
                }
            });
            filteredOptions.innerHTML = html;
            if (value.length > 0) {
                filteredOptions.style.display = 'block';
            } else {
                filteredOptions.style.display = 'none';
            }
        });

    searchInput.addEventListener('keydown', function(e) {
        var options = filteredOptions.getElementsByClassName('option');
        var currentIndex = -1;
        for (var i = 0; i < options.length; i++) {
            if (options[i].classList.contains('highlight')) {
                currentIndex = i;
                break;
            }
        }
        if (e.key === 'ArrowDown') {
            e.preventDefault();
            if (currentIndex === -1 || currentIndex === options.length - 1) {
                if (options.length > 0) options[0].classList.add('highlight');
            } else {
                options[currentIndex].classList.remove('highlight');
                options[currentIndex + 1].classList.add('highlight');
            }
        } else if (e.key === 'ArrowUp') {
            e.preventDefault();
            if (currentIndex > 0) {
                options[currentIndex].classList.remove('highlight');
                options[currentIndex - 1].classList.add('highlight');
            }
        } else if (e.key === 'Enter') {
            if (currentIndex !== -1) {
                var selectedProduct = options[currentIndex].dataset.value;
                searchInput.value = selectedProduct;
                filteredOptions.style.display = 'none';
                addProductToTable(selectedProduct);
                e.preventDefault();
            }
        }
    });

    filteredOptions.addEventListener('click', function(e) {
        if (e.target.classList.contains('option')) {
            var selectedProduct = e.target.dataset.value;
            searchInput.value = selectedProduct;
            filteredOptions.style.display = 'none';
            addProductToTable(selectedProduct);
        }
    });

    function addProductToTable(productName) {
        var rows = cartTableBody.getElementsByTagName('tr');
        var productExists = false;

        for (var i = 0; i < rows.length; i++) {
            var descriptionCell = rows[i].getElementsByTagName('td')[2];
            if (descriptionCell.textContent === productName) {
                var quantityInput = rows[i].getElementsByTagName('input')[0];
                quantityInput.value = parseInt(quantityInput.value) + 1;
                productExists = true;
                break;
            }
        }

        if (!productExists) {
            var newRow = document.createElement('tr');
            newRow.innerHTML = `
                <td style="color:#0A5064; font-weight:600;">1</td>
                <td style="color:#0A5064; font-weight:600;">${productId}</td>
                <td style="color:#353535; font-weight:600;">${productName}</td>
                <td><center><input type="number" class="form-control" value="1" style="width:41%; border:1px solid #0A5064;" oninput="calculateAmountAndTotal()" /></center></td>
                <td>${productPrice}</td>
                <td style="color:#353535; font-weight:600;">${productPrice}</td>
            `;
            cartTableBody.appendChild(newRow);
        }
        calculateAmountAndTotal();
        searchInput.value = '';
    }


      
    function calculateResult() {
        var totalAmount = parseFloat(document.getElementById('total-input').value);
        var billAmount = parseFloat(document.getElementById('discount-input').value);
        var discountAmount = totalAmount - billAmount;
        document.getElementById('result-input').value = discountAmount.toFixed(2);

        var discountPercentage = (discountAmount / totalAmount) * 100;
        document.getElementById('percentage-display').value = discountPercentage.toFixed(2);
    }
	
	 function calculateCashReturn() {
        var totalAmount = parseFloat(document.getElementById('total-input').value);
        var billAmount = parseFloat(document.getElementById('discount-input').value); // Changed variable name to billAmount
        var cashAmount = parseFloat(document.getElementById('cash-input').value);
        var cashReturn = cashAmount - billAmount; // Subtract billAmount from cashAmount
        document.getElementById('balance-input').value = cashReturn.toFixed(2);
    }

    document.getElementById('discount-input').addEventListener('input', calculateResult);
    document.getElementById('cash-input').addEventListener('input', calculateCashReturn);
    cartTableBody.addEventListener('input', function(e) {
        if (e.target && e.target.type === 'number') {
            calculateAmountAndTotal();
        }
    });
});
    </script>

</html>
</html>
</body>
</html>