/home2/kerimkazan/dvf/magaza/assets/theme.js
function printSale(saleId) {
// AJAX isteği yaparak ilgili satış bilgilerini alın
$.ajax({
type: "POST",
url: "ajax.php",
data: { type: "print_forms", saleId: saleId },
dataType: "json",
success: function (response) {
if (response.status) {
// Satış bilgileri başarılı bir şekilde alındı
var sale = response.sale;
var saleProducts = response.saleProducts;
// Yazdırma işlemi için bir pop-up penceresi oluşturun
var printWindow = window.open('', '_blank');
// Yazdırma işlemi için pop-up penceresinin içeriğini oluşturun
printWindow.document.open();
printWindow.document.write('<html><head><title>Satış Raporu</title>');
printWindow.document.write('<link rel="stylesheet" type="text/css" href="yazdir3.css">');
printWindow.document.write('<link rel="stylesheet" type="text/css" href="assets/fontawesome/css/all.min.css">');
printWindow.document.write('</head><body>');
// Satış raporu içeriğini oluşturun
printWindow.document.write('<div class="print">');
printWindow.document.write('<div class="row mb-5">');
printWindow.document.write('<div class="col-6">');
printWindow.document.write('<img src="qr.png" alt="QR Code" class="qr-code">');
printWindow.document.write('<h1 style="font-size:24px;">' + response.brand + '</h1>');
printWindow.document.write('</div>');
printWindow.document.write('<div class="col-6 text-start">');
printWindow.document.write('<i class="fa fa-map"></i> ' + response.address + '<br>');
printWindow.document.write('<i class="fa fa-phone"></i> ' + response.phone + '<br>');
printWindow.document.write('<i class="fa fa-envelope"></i> ' + response.email);
printWindow.document.write('</div>');
printWindow.document.write('</div>');
printWindow.document.write('<div style="padding-left:5px;" class="mb-2">');
printWindow.document.write('<b>Customer:</b> <span class="sale_customer style="font-size:20px">' + sale.customer + '</span><br><br>');
printWindow.document.write('<b>DATE:</b> <span class="sale_date">' + sale.date + '</span>');
printWindow.document.write('</div>');
printWindow.document.write('<table class="table">');
printWindow.document.write('<thead><tr><th>Product</th><th>Quantity</th><th>Price</th><th>Amount</th></tr></thead>');
printWindow.document.write('<tbody class="print_products">');
for (var i = 0; i < saleProducts.length; i++) {
var product = saleProducts[i];
printWindow.document.write('<tr>');
printWindow.document.write('<td>' + product.name + ' (' + product.variant + ')' + '</td>');
printWindow.document.write('<td>' + product.quantity + '</td>');
printWindow.document.write('<td>' + product.sale_price + '</td>');
printWindow.document.write('<td>' + product.total_price + '</td>');
printWindow.document.write('</tr>');
}
printWindow.document.write('</tbody>');
printWindow.document.write('</table>');
printWindow.document.write('<div class="mt-2 mb-2 float-end">');
printWindow.document.write('<b style="font-size:20px;width:100px;display:inline-block;">Amount:</b> <span class="total_price" style="font-size:20px">' + sale.total + '</span> <p style="font-size:20px;width:100px;display:inline-block;">€</p>');
printWindow.document.write('<b style="font-size:20px;width:100px;display:inline-block;">Discount:</b> <span class="total_discount" style="font-size:20px">' + sale.discounted + '</span> <p style="font-size:20px;width:100px;display:inline-block;">€</p>');
printWindow.document.write('<b style="font-size:20px;width:100px;display:inline-block;">Total:</b> <span class="net_total_price" style="font-size:20px">' + sale.total_price + '</span> <p style="font-size:20px;width:100px;display:inline-block;">€</p>');
printWindow.document.write('</div>');
printWindow.document.write('</div>'); // .print
printWindow.document.write('</body></html>');
printWindow.document.close();
// CSS dosyasının yüklenmesini bekleyin ve yazdırma işlemini başlatın
printWindow.onload = function () {
printWindow.print();
};
} else {
// Hata durumunda gerekli işlemleri burada yapabilirsiniz
console.error(response.msg);
}
},
error: function (xhr, status, error) {
// AJAX hatası durumunda gerekli işlemleri burada yapabilirsiniz
console.error(error);
}
});
}
function sale_calculate()
{
var form_data = $('.sale_form').serialize();
$.ajax({
type: 'POST',
url: ajax_url,
data: 'type=sale_form_calculate&'+form_data+'',
dataType: 'json',
success: function(data)
{
$.each(data.products, function(k, product) {
$('.product_total_'+product.rand+'').val(product.total_price);
});
$('.total_price').html(data.total);
$('.net_total_price').html(data.net_total);
$('.total_discount').html(data.discount);
$('.print_products').html(data.products_html);
$('.sale_date').html(data.date);
$('.sale_customer').html(data.customer);
}
});
}
$(document).ready(function()
{
$( '.select2' ).select2( {
width: '100%',
placeholder: $( this ).data( 'placeholder' ),
} );
$('.sale_form').on('change keyup paste', ':input', function(e) {
sale_calculate();
});
var $_GET = {};
document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
function decode(s) {
return decodeURIComponent(s.split("+").join(" "));
}
$_GET[decode(arguments[1])] = decode(arguments[2]);
});
if($_GET["date"])
{
var tarihler = $_GET["date"].split(" - ");
var st = tarihler[0];
var ed = tarihler[1];
}
else
{
var st = "01.01.2023";
var ed = "01.01.2024";
}
$('.daterange-ranges').daterangepicker(
{
showCustomRangeLabel:false,
startDate:st,
endDate:ed,
minDate: '01.01.2023',
maxDate: '30.12.2025',
dateLimit: { days: 60 },
autoApply: true,
ranges: {
'Bugün': [moment(), moment()],
'Dün': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Son 1 Hafta': [moment().subtract(6, 'days'), moment()],
'Son 1 Ay': [moment().subtract(29, 'days'), moment()],
'Bu Ay': [moment().startOf('month'), moment().endOf('month')],
'Geçen Ay': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
},
opens: 'right',
applyClass: 'btn-sm bg-slate-600',
cancelClass: 'btn-sm btn-light',
locale: {
format: 'DD.MM.YYYY',
applyLabel: 'Uygula',
cancelLabel: 'Kapat',
startLabel: 'Başlangıç',
endLabel: 'Bitiş',
daysOfWeek: ['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cm','Cmts'],
monthNames: ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık']
}
},
function(start, end) {
$('.daterange-ranges span').html(start.format('DD.MM.YYYY') + ' - ' + end.format('DD.MM.YYYY'));
}
);
if ($('.datatable').length)
{
var table = $(".datatable").DataTable({
dom: "<'datatable_header'<l><B><f>><'row'<'col-sm-12'tr>><'datatable_footer'<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>>",
charset: "UTF-8",
buttons: {
buttons: [
{
extend: 'colvis',
className: 'btn btn-light',
text: '<i class="fas fa-th-list"></i> Görünüm'
},
{
extend: 'copy',
className: 'btn btn-light',
text: '<i class="fa fa-copy"></i> Kopyala'
},
{
extend: 'excel',
className: 'btn btn-light',
text: '<i class="fas fa-table"></i> Excel'
},
{
extend: 'print',
customize: function ( win ) {
$(win.document.body)
.css( 'font-size', '10pt' );
$(win.document.body).find( 'table' )
.addClass( 'compact' )
.css( 'font-size', 'inherit' );
},
text: '<i class="fa fa-print"></i> Yazdır',
className: 'btn btn-light',
exportOptions: {
columns: ':visible'
}
}
]
},
aaSorting:[],
language:
{
"sDecimal": ",",
"sEmptyTable": "Tabloda herhangi bir veri mevcut değil",
"sInfo": "_TOTAL_ kayıttan _START_ - _END_ arasındaki kayıtlar gösteriliyor",
"sInfoEmpty": "Kayıt yok",
"sInfoFiltered": "(_MAX_ kayıt içerisinden bulunan)",
"sInfoPostFix": "",
"sInfoThousands": ".",
"sLengthMenu": "_MENU_ Görüntüle",
"sLoadingRecords": "Yükleniyor...",
"searchPlaceholder": "Arama...",
"sProcessing": "İşleniyor...",
"sSearch": "",
"sZeroRecords": "Eşleşen kayıt bulunamadı",
"oPaginate": {
"sFirst": "İlk",
"sLast": "Son",
"sNext": "Sonraki",
"sPrevious": "Önceki"
},
"oAria": {
"sSortAscending": ": artan sütun sıralamasını aktifleştir",
"sSortDescending": ": azalan sütun sıralamasını aktifleştir"
},
"select": {
"rows": {
"_": "%d kayıt seçildi",
"0": "",
"1": "1 kayıt seçildi"
}
},
buttons: {
copyTitle: 'Kopyalama İşlemi',
copySuccess: {
1: "Satırlar kopyalandı.",
_: "%d satır kopyalandı."
}
}
}
}).buttons().container().appendTo(".dataTables_wrapper .col-md-6:eq(0)");
$(".dataTables_length select").addClass("form-select form-select-sm");
$("div.dataTables_filter input").focus();
}
});
$(document).on('click', '.delete', function (e) {
e.preventDefault();
var url = $(this).attr('href');
Swal.fire({
icon:"question",
customClass: {
confirmButton: 'btn btn-danger me-2',
cancelButton: 'btn btn-success me-2'
},
buttonsStyling: false,
html: 'Bu içeriği silmek istediğinizden eminmisiniz ?',
showCancelButton: true,
confirmButtonText: 'Evet',
cancelButtonText: 'Hayır',
}).then((result) => {
if (result.isConfirmed) {
window.location.href=url;
}
});
});
$(document).on('click', '.add_variant', function (e) {
e.preventDefault();
var clone = $('.product_variant_clone').html();
$('.product_variants').append('<div class="product_variant">'+clone+'</div>');
});
$(document).on('click', '.variant_remove', function (e) {
e.preventDefault();
$(this).closest('.product_variant').remove();
});
$(document).on('click', '.sale_product_remove', function (e) {
$(this).closest('.sale_product').remove();
sale_calculate();
});
$(document).on('submit', '.sale_form', function (e) {
e.preventDefault();
var form_data = $('.sale_form').serialize();
$.ajax({
type: 'POST',
url: ajax_url,
data: 'type=sale_form&' + form_data,
dataType: 'json',
success: function(data) {
if (data.status) {
// Bootstrap alert oluşturma
var alertHtml = '<div class="alert alert-success alert-dismissible fade show" role="alert">' +
'Satış Başarılı.<br>Satış ID: ' + data.sale_id + '<br>' +
'<button type="button" class="btn btn-success btn-sm mt-2 print-btn"><i class="fa fa-print"></i> Fiş Yazdır</button>' +
'<a href="' + home_url + '" class="btn btn-primary btn-sm mt-2">Ana Sayfaya Dön</a>' +
'<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>' +
'</div>';
$('#alert-container').html(alertHtml);
// Form alanlarını ve eklenmiş ürünleri gizleme
$('.sale_form').hide();
$('.sale_products').hide();
$('.nav-pills').hide();
$('.select2').hide();
// Sayfayı en yukarı kaydırma
window.scrollTo({ top: 0, behavior: 'smooth' });
// Fiş Yazdır butonuna tıklanıldığında yönlendirme işlemi
$('.print-btn').on('click', function () {
window.open('print.php?saleId=' + data.sale_id, '_blank');
setTimeout(function() {
window.location.href = home_url;
}, 1000); // 1 saniye bekleme süresi
});
} else {
var alertHtml = '<div class="alert alert-danger alert-dismissible fade show" role="alert">' +
'Hata: ' + data.msg +
'<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>' +
'</div>';
$('#alert-container').html(alertHtml);
// Sayfayı en yukarı kaydırma
window.scrollTo({ top: 0, behavior: 'smooth' });
}
}
});
});
function barcode_scanner(barcode)
{
html5QrCode.stop();
$.ajax({
type: 'POST',
url: ajax_url,
data: 'type=barcode_scan&barcode='+barcode+'',
dataType: 'json',
success: function(data)
{
if(data.status)
{
$('.product_name').val(data.name);
$('.product_id').val(data.id);
$('.product_image_url').attr('href',data.image);
$('.product_image_src').attr('src',data.image);
}
else
{
if(data.login)
{
window.location.href = login_url;
}
else
{
Swal.fire({
icon: 'error',
title: 'Hata',
text: data.msg,
confirmButtonText: 'Tamam'
});
}
}
}
});
}
function sale_barcode_scanner(barcode,stat=true)
{
if(stat)
{
html5QrCode.stop();
}
$.ajax({
type: 'POST',
url: ajax_url,
data: 'type=sale_barcode_scan&barcode='+barcode+'',
dataType: 'json',
success: function(data)
{
if(data.status)
{
$('.sale_products').prepend(data.html);
sale_calculate();
}
else
{
if(data.login)
{
window.location.href = login_url;
}
else
{
Swal.fire({
icon: 'error',
title: 'Hata',
text: data.msg,
confirmButtonText: 'Tamam'
});
}
}
}
});
}
function product_barcode_scanner(barcode)
{
html5QrCode.stop();
$('.pr_barcode').val(barcode);
}
const html5QrCode = new Html5Qrcode("reader");
const qrCodeSuccessCallback = (decodedText, decodedResult) => {
barcode_scanner(decodedText);
html5QrCode.stop();
};
const config = { fps: 10, qrbox: { width: 250, height: 250 } };
$(document).on('click', '.barcode_scan', function (e) {
html5QrCode.start({ facingMode: "environment" }, config, barcode_scan);
});
$(document).on('click', '.sale_barcode_scan', function (e) {
html5QrCode.start({ facingMode: "environment" }, config, sale_barcode_scanner);
});
$(document).on('click', '.product_barcode_scan', function (e) {
html5QrCode.start({ facingMode: "environment" }, config, product_barcode_scanner);
});
$(document).on('change', '.manuel_product', function (e) {
sale_barcode_scanner($(this).val(),false);
});
$(document).on('click', '.print_btn', function (e) {
e.preventDefault();
var form_data = $('.sale_form').serialize();
$.ajax({
type: 'POST',
url: ajax_url,
data: 'type=print_form&'+form_data+'',
dataType: 'json',
success: function(data)
{
if(data.status)
{
$('.print').print({
globalStyles : true,
mediaPrint : true,
iframe : false
});
}
else
{
Swal.fire({
icon: 'error',
title: 'Hata',
text: data.msg,
confirmButtonText: 'Tamam'
});
}
}
});
});