/home2/kerimkazan/dvf/magaza/ajax.php
<?php
function removeSizeLabel($data)
{
foreach ($data as &$product) {
$product['variant'] = str_replace('Beden: ', '', $product['variant']);
}
return $data;
}
include('config.php');
if(m_get_session('m_admin')=='' or !m_admin_check())
{
$result['status'] = false;
$result['login'] = true;
echo json_encode($result);
exit;
}
if($_POST)
{
switch(m_u_p('type'))
{
case 'barcode_scan':
$result['status'] = false;
$result['msg'] = 'Ürün bulunamadı!';
$informations = $db->table('products')->where('barcode','=',m_u_p('barcode'))->where('status','=','1')->get();
if($informations['total_count']>0)
{
$stock = $db->select('sum(variant_stock) as stock')->table('product_variants')->where('p_id','=',$informations['data'][0]['id'])->get();
$stock = $stock['data'][0]['stock'];
if($stock=='')
{
$stock = 0;
}
if($stock>0)
{
$result['status'] = true;
$result['id'] = $informations['data'][0]['id'];
$result['barcode'] = $informations['data'][0]['barcode'];
$result['name'] = $informations['data'][0]['name'];
$result['image'] = m_image_url($informations['data'][0]['image']);
}
else
{
$result['status'] = false;
$result['msg'] = 'Ürüne Ait Stok Yok!';
}
}
else
{
$result['status'] = false;
$result['msg'] = 'Ürün bulunamadı!';
}
echo json_encode($result);
break;
case 'print_forms':
$saleId = $_POST['saleId'];
$sale = $db->table('sales')->where('id', '=', $saleId)->get_vars();
$saleProducts = $db->table('sales_products')->where('s_id', '=', $saleId)->get();
if ($sale && $saleProducts['total_count'] > 0) {
$brand = m_setting('brand');
$address = m_setting('address');
$phone = m_setting('phone');
$email = m_setting('email');
foreach ($saleProducts['data'] as &$product) {
$productId = $product['p_id'];
$variant = $db->table('product_variants')->where('id', '=', $product['v_id'])->get_vars();
$productName = $db->table('products')->where('id', '=', $productId)->get_vars('name');
$product['name'] = $productName['name'];
$product['variant'] = $variant['variant_type'] . ': ' . $variant['variant_value'];
}
$saleProductsData = removeSizeLabel($saleProducts['data']);
$response = [
'status' => true,
'sale' => $sale,
'saleProducts' => $saleProductsData,
'brand' => $brand,
'address' => $address,
'phone' => $phone,
'email' => $email
];
} else {
$response = [
'status' => false,
'msg' => 'Satış bulunamadı!'
];
}
echo json_encode($response);
break;
case 'sale_barcode_scan':
$result['status'] = false;
$result['msg'] = 'Ürün bulunamadı!';
$informations = $db->table('products')->where('barcode','=',m_u_p('barcode'))->where('status','=','1')->get();
if($informations['total_count']>0)
{
$info = $informations['data'][0];
// Fiyat çevirme işlemlerini kaldırıyoruz.
$sale_price = $info['sale_price'];
$rand = uniqid();
$product_variants = $db->table('product_variants')->where('p_id','=',$info['id'])->get();
if($product_variants['total_count']>0)
{
$product_variant = '<div><select class="form-select" name="product_variant[]">
<option value="">Özellik Seçiniz</option>';
foreach($product_variants['data'] as $p_variant)
{
if($p_variant['variant_stock']>0)
{
$product_variant.= '<option value="'.$p_variant['variant_type'].':'.$p_variant['variant_value'].'">'.$p_variant['variant_type'].':'.$p_variant['variant_value'].'</option>';
}
}
$product_variant.= '</select></div>';
}
else
{
$product_variant = '<div><select class="form-select" name="product_variant[]">';
$product_variant.= '<option value="">Özellik Yok</option>';
$product_variant.= '</select></div>';
}
$result['status'] = true;
$result['html'] = '
<div class="sale_product">
<input type="hidden" name="product_id[]" value="'.$info['id'].'">
<input type="hidden" name="product_rand[]" value="'.$rand.'">
<div class="row">
<div class="col-lg-4">
<div class="mb-1">
<label class="form-label fw-bold">Ürün</label>
<input type="text" class="form-control" name="product_name[]" value="'.$info['name'].'" readonly>
</div>
</div>
<div class="col-lg-2">
<div class="mb-1">
<label class="form-label fw-bold">Özellik</label>
'.$product_variant.'
</div>
</div>
<div class="col-lg-2">
<div class="mb-1">
<label class="form-label fw-bold">Miktar</label>
<input type="number" class="form-control" name="product_quantity[]" value="1">
</div>
</div>
<div class="col-lg-2">
<div class="mb-1">
<label class="form-label fw-bold">Fiyat</label>
<input type="text" class="form-control product_price" name="product_price[]" value="'.m_currency($sale_price).'">
</div>
</div>
</div>
<span class="btn btn-sm btn-danger sale_product_remove w-100"><i class="fa fa-trash"></i></span>
</div>';
}
else
{
$result['status'] = false;
$result['msg'] = 'Ürün bulunamadı!';
}
echo json_encode($result);
break;
case 'sale_form_calculate':
$total = 0;
$net_total = 0;
$discount = 0;
$products_html = '';
$n = 0;
foreach($_POST['product_id'] as $id)
{
// Ürün bilgilerini veritabanından çekin
$product_info = $db->select('name')->table('products')->where('id', '=', $id)->get();
$product_name = $product_info['data'][0]['name'];
$quantity = $_POST['product_quantity'][$n];
$variant = $_POST['product_variant'][$n];
$price = floatval(str_replace(',', '.', $_POST['product_price'][$n]));
$product_total = $price * $quantity;
$variant_info = '';
if ($variant != '') {
$variant_info = ' ( ' . $variant . ' )';
}
$products_html .= '<tr><td>' . $product_name . '' . $variant_info . '</td><td>' . $quantity . '</td><td>' . m_currency($price) . '</td><td>' . m_currency($product_total) . '</td></tr>';
$result['products'][] = ['id' => $id, 'total_price' => m_currency($product_total), 'rand' => $_POST['product_rand'][$n]];
$total += $product_total;
$n++;
}
$discount = m_percent($total, m_u_p('discount'));
$net_total = $total - $discount;
$result['discount'] = m_currency($discount);
$result['total'] = m_currency($total);
$result['net_total'] = m_currency($net_total);
$result['products_html'] = $products_html;
$result['customer'] = m_u_p('customer');
$result['date'] = date('d/m/Y H:i');
echo json_encode($result);
break;
// Diğer case'leriniz değişmeden aynı kalıyor
case 'sale_form':
if ($_POST['product_id'][0] == '') {
$result['status'] = false;
$result['msg'] = 'Ürün bulunamadı!';
} elseif ($_POST['customer'] == '') {
$result['status'] = false;
$result['msg'] = 'Müşteri adını yazınız!';
} else {
$total = 0;
$net_total = 0;
$discount = 0;
$products_html = '';
$n = 0;
foreach ($_POST['product_id'] as $id) {
$quantity = $_POST['product_quantity'][$n];
$variant = $_POST['product_variant'][$n];
$price = floatval(str_replace(',', '.', $_POST['product_price'][$n]));
$variant_ex = explode(':', $variant);
$stock = $db->select('sum(variant_stock) as stock, id')
->table('product_variants')
->where('p_id', '=', $id)
->where('variant_type', '=', $variant_ex[0])
->where('variant_value', '=', $variant_ex[1])
->get();
$stock_id = $stock['data'][0]['id'];
$stock = $stock['data'][0]['stock'];
if ($stock == '') {
$stock = 0;
}
if ($stock < $quantity) {
$result['status'] = false;
$result['msg'] = $info['name'] . ' - ' . $variant . ' için maksimum stok ' . $stock . ' adettir!';
echo json_encode($result);
exit;
}
$product_total = $price * $quantity;
$variant_info = '';
if ($variant != '') {
$variant_info = ' ( ' . $variant . ' )';
}
$products_html .= '<tr><td>' . $info['name'] . '' . $variant_info . '</td><td>' . $quantity . '</td><td>' . m_currency($price) . '</td><td>' . m_currency($product_total) . '</td></tr>';
$result['products'][] = [
'id' => $id,
'variant_id' => $stock_id,
'price' => $price,
'total_price' => $product_total,
'variant' => $variant,
'quantity' => $quantity,
'rand' => $_POST['product_rand'][$n]
];
$total += $product_total;
$n++;
}
$discount = m_percent($total, m_u_p('discount'));
$net_total = $total - $discount;
$data = [
'u_id' => m_admin('id'),
'customer' => m_u_p('customer'),
'discount' => m_u_p('discount'),
'total' => $total,
'discounted' => $discount,
'total_price' => $net_total
];
$s_id = $db->table('sales')->insert($data);
foreach ($result['products'] as $product) {
$data = [
's_id' => $s_id,
'p_id' => $product['id'],
'v_id' => $product['variant_id'],
'variant' => $product['variant'],
'quantity' => $product['quantity'],
'sale_price' => $product['price'],
'total_price' => $product['total_price']
];
$db->table('sales_products')->insert($data);
$db->query("update product_variants set variant_stock = variant_stock - " . $product['quantity'] . " where id = '" . $product['variant_id'] . "'");
}
$result['status'] = true;
$result['sale_id'] = $s_id; // Bu satırı ekledim
}
echo json_encode($result);
break;
case 'print_form':
if($_POST['product_id'][0]=='')
{
$result['status'] = false;
$result['msg'] = 'Ürün bulunamadı!';
}
elseif($_POST['customer']=='')
{
$result['status'] = false;
$result['msg'] = 'Müşteri adını yazınız!';
}
else
{
$products_html = '';
$n=0;
foreach($_POST['product_id'] as $id)
{
$quantity = $_POST['product_quantity'][$n];
$variant = $_POST['product_variant'][$n];
$variant_ex = explode(':', $variant);
$stock = $db->select('sum(variant_stock) as stock, id')->table('product_variants')->where('p_id', '=', $id)->where('variant_type', '=', $variant_ex[0])->where('variant_value', '=', $variant_ex[1])->get();
$stock_id = $stock['data'][0]['id'];
$stock = $stock['data'][0]['stock'];
if($stock=='')
{
$stock = 0;
}
if($stock < $quantity)
{
$result['status'] = false;
$result['msg'] = ''.$info['name'].' '.$variant.' için maksimum stok '.$stock.' adettir!';
echo json_encode($result);
exit;
}
}
$result['status'] = true;
}
echo json_encode($result);
break;
}
}
?>