Skip to main content

Bisu Tahsilatından Bayilere Aktarılan Tutar

Bayilere yapılan ödemelerde sipariş totalAmountları üzerinden bir hesaplama yapılmıyor. Aşağıdaki query ile istenilen tarih aralığındaki siparişlerden bayilere yapılacak olan ödeme tutarı tutarına ulaşılabilir.

SELECT SUM(o.totalAmount + IFNULL(o.provisionAmount, 0) +
IF(o.campaignId IS NULL OR cgm.campaignId IS NULL, IFNULL(o.discountAmount, 0), 0)) +
IFNULL(SUM(IFNULL(op.dataDouble, 0)), 0) 'Toplam Tutar'
FROM Orders o
LEFT JOIN OrderPayment op ON op.orderNumber = o.orderNumber AND op.reason = 'PAYU_SENT'
LEFT JOIN Campaign_Group_Map cgm ON cgm.campaignId = o.campaignId AND cgm.campaignGroupId = 8
LEFT JOIN Campaign_Group_Map cgm_paket
ON cgm_paket.campaignId = o.campaignId AND cgm_paket.campaignGroupId = 10
WHERE o.dateCreated BETWEEN '2022-10-01' AND '2022-11-01'
AND op.dateUpdated IS NULL
AND o.paymentMethod != 'PAYATDOOR'
AND cgm_paket.campaignId IS NULL
AND o.status = 'ORDER_COMPLETED'

Belirli bir tarih aralığındaki bayilere yatırılacak tutarlar için sipariş bazlı raporlaması istendiğinde aşağıdaki sorgudan yararlanılabilir. Bu sorgu ile siparişin toplam tutarı, tarihi, kullanıcı bilgileri, bayiye yatırılacak olan tutar vs gibi bilgilere ulaşılabilir.

SELECT
op.merchantId 'merchant',
o.orderNumber 'Referans No',
ifnull(s.subscriptionNo, sr.phoneNumber) 'Telefon',

s.fullName 'Abonelik İsmi',
b.name 'Marka',
d.name 'Bayi Adı',
il.name 'İl',
ilce.name 'İlçe',
semt.name 'Semt',
s.address 'Adres',
o.deliveryDate 'Teslimat Tarihi',
date(op.dateCreated) 'EFT Günü',
o.totalAmount + ifnull(o.discountAmount, 0) + ifnull(o.provisionAmount, 0) 'Tutar',
o.totalAmount 'Müşteriden Tahsil Edilen',
o.totalAmount + IFNULL(o.provisionAmount, 0) + IF(cgm.campaignId IS NULL, IFNULL(o.discountAmount, 0), 0) - op.paymentCommissionAmount
'Bayiye yatan'

FROM Orders o
LEFT JOIN Subscription s ON s.id = o.subscriptionId
LEFT JOIN Brand b ON b.id = s.brandId
LEFT JOIN Distributor d on s.distributorId=d.id
LEFT JOIN Subscriber sr ON sr.id = s.subscriberId
LEFT JOIN OrderPayment op ON op.orderId = o.id
LEFT JOIN Location semt ON semt.id = o.locationId
LEFT JOIN Location ilce ON ilce.id = semt.parentId
LEFT JOIN Location il ON il.id = ilce.parentId
LEFT JOIN Campaign_Group_Map cgm ON cgm.campaignId = o.campaignId AND cgm.campaignGroupId = 8
LEFT JOIN Campaign_Group_Map cgm_paket
ON cgm_paket.campaignId = o.campaignId AND cgm_paket.campaignGroupId = 10
WHERE op.dateCreated like '2023-03-10%' and o.paymentMethod != 'PAYATDOOR' and o.status='ORDER_COMPLETED'
and cgm_paket.campaignId is null
ORDER BY o.deliveryDate;