:: **Zploit** v1.0 | Current Path: **/home/kreativepixelz/www/kreative_crm/quatation/**
:: Editing File: dryfruits_stock_add.php
<?php ob_start(); error_reporting(E_ALL); ini_set('display_errors', 1); include_once("session.php"); include("db.php"); include("header.php"); $user_id = $_SESSION['user_id']; $category_id = 2; // Dry Fruits category /* ---------------- PRODUCTS ---------------- */ $product_res = mysqli_query($conn," SELECT id, product_name FROM packaging_materials WHERE status=1 AND category_id=$category_id ORDER BY product_name "); /* ---------------- VENDORS ---------------- */ $vendor_res = mysqli_query($conn," SELECT id, name FROM party ORDER BY name "); /* ---------------- SAVE STOCK ---------------- */ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $product_id = (int)$_POST['product_id']; $vendor_id = !empty($_POST['vendor_id']) ? (int)$_POST['vendor_id'] : NULL; $stock_type = $_POST['stock_type']; $quantity = (float)$_POST['quantity']; $stock_date = $_POST['stock_date']; $remark = mysqli_real_escape_string($conn,$_POST['remark']); $status = (int)$_POST['status']; $unit_type = mysqli_real_escape_string($conn,$_POST['unit_type']); /* ---------- GET LAST AVAILABLE STOCK ---------- */ $last = mysqli_fetch_assoc(mysqli_query($conn," SELECT available_stock FROM packaging_stock WHERE product_id=$product_id AND category_id=$category_id AND status=1 ORDER BY id DESC LIMIT 1 ")); $current_stock = $last ? (float)$last['available_stock'] : 0; /* ---------- APPLY STOCK LOGIC ---------- */ if ($stock_type === 'IN') { $new_stock = $current_stock + $quantity; } else { // OUT if ($quantity > $current_stock) { $_SESSION['error'] = "❌ Insufficient stock! Available: $current_stock $unit_type"; header("Location: dryfruits_stock_add.php"); exit; } $new_stock = $current_stock - $quantity; } /* ---------- INSERT ---------- */ $insert = " INSERT INTO packaging_stock ( category_id, product_id, vendor_id, stock_type, quantity, available_stock, unit_type, status, remark, stock_date, created_by ) VALUES ( $category_id, $product_id, ".($vendor_id ? $vendor_id : "NULL").", '$stock_type', $quantity, $new_stock, '$unit_type', $status, '$remark', '$stock_date', $user_id ) "; if (mysqli_query($conn,$insert)) { $_SESSION['success'] = "✅ Stock entry added successfully!"; header("Location: dryfruits_stock_list.php"); exit; } else { $_SESSION['error'] = mysqli_error($conn); } } ?> <main> <div class="container-fluid"> <div class="row m-1"> <div class="col-12"> <h4 class="main-title">Add Dryfruits Stock</h4> <ul class="app-line-breadcrumbs mb-3"> <li><a href="dashboard.php">Home</a></li> <li><a href="dryfruits_stock_list.php">Dryfruits Stock List</a></li> <li class="active"><a href="#">Add Dryfruits Stock</a></li> </ul> </div> </div> <div class="card"> <div class="card-body"> <?php if (!empty($_SESSION['success'])) { echo "<div class='alert alert-success'>{$_SESSION['success']}</div>"; unset($_SESSION['success']); } if (!empty($_SESSION['error'])) { echo "<div class='alert alert-danger'>{$_SESSION['error']}</div>"; unset($_SESSION['error']); } ?> <form method="post" class="row g-3"> <div class="col-md-3"> <label>Vendor</label> <select name="vendor_id" class="form-select" required> <option value="">-- Optional --</option> <?php while ($v=mysqli_fetch_assoc($vendor_res)) { ?> <option value="<?= $v['id']; ?>"><?= htmlspecialchars($v['name']); ?></option> <?php } ?> </select> </div> <div class="col-md-3"> <label>Product *</label> <select name="product_id" id="product_id" class="form-select" required> <option value="">Select Product</option> <?php while ($p=mysqli_fetch_assoc($product_res)) { ?> <option value="<?= $p['id']; ?>"><?= htmlspecialchars($p['product_name']); ?></option> <?php } ?> </select> </div> <div class="col-md-3"> <label>Unit</label> <input type="text" name="unit_type" id="unit_type" class="form-control" readonly> </div> <div class="col-md-3"> <label>Available Stock</label> <input type="text" id="available_stock" class="form-control" readonly> </div> <div class="col-md-3"> <label>Quantity *</label> <input type="number" step="0.001" name="quantity" class="form-control" required> </div> <div class="col-md-3"> <label>Stock Type *</label> <select name="stock_type" class="form-select" required> <option value="">Select</option> <option value="IN">IN (Purchase)</option> <option value="OUT">OUT (Used)</option> </select> </div> <div class="col-md-3"> <label>Date *</label> <input type="date" name="stock_date" value="<?= date('Y-m-d'); ?>" class="form-control"> </div> <div class="col-md-3"> <label>Status</label> <select name="status" class="form-select"> <option value="1">Active</option> <option value="0">Inactive</option> </select> </div> <div class="col-12"> <label>Remark</label> <textarea name="remark" class="form-control"></textarea> </div> <div class="col-12"> <button class="btn btn-primary">Save</button> <a href="dryfruits_stock_list.php" class="btn btn-secondary">Back</a> </div> </form> </div> </main> <?php include("footer.php"); ?> <script> document.getElementById('product_id').addEventListener('change', function () { const productId = this.value; if (!productId) return; fetch('ajax_get_product_stock.php?product_id=' + productId) .then(res => res.json()) .then(data => { if (data.status === 'success') { document.getElementById('unit_type').value = data.unit; document.getElementById('available_stock').value = data.stock + ' ' + data.unit; } }); }); </script> <?php ob_end_flush(); ?>