Personel satış raporu ve sistem satış raporu arasındaki farkların tespit edilmesi
MICROS | 20.04.2026
Birçok müşterimiz ay sonlarında Personel Satış Toplamları ile Sistem Satışlarını karşılaştırmakta olup oluşan tutarsızlıklar hakkında çağrı açmaktadırlar. Bu farkı
tespit edebilmek için oturup personel raporlarını tek tek toplayıp gün gün sistem satışları ile karşılaştırma yapmak zorunda kalıyoruz ve bu bizim çok uzun
vaktimizi alıyor.
Bu karşılaştırmayı daha hızlı yapabilmek için aşağıdaki 2 prosedürü Sql de create edip çalıştırdığınızda karşınıza 2 tarih arasındaki gün gün ve genel toplam
farklarını bulabilirsiniz.
Ayrıca çözüm ile ilgili olarak geriye dönük oluşan farklarda maalesef düzeltme yapamıyoruz. Sorun gün kapanış esnasında çalışan Increment_Employee_Shift adımının çalışmamasından dolayı ilgili güne ait verilerin oluşmamasından kaynaklanıyor. Bu prosedürü sonradan çalıştırsanız bile eksik günlere veri getirmiyor. Aşağıdaki prosedürler sadece eksik günleri hızlıca tespit edip, müşteriye bildirmenizi sağlar. Herhangi bir düzeltme yapmaz.
1. Gün Gün Karşılaştırma
Prosedür:
Create Procedure "custom"." Emp_Sys_Sales_Diff" (sdate1 date, sdate2 date)
begin
declare sql varchar(4000);
declare strStartDate varchar(10);
declare strEndDate varchar(10);
declare local temporary table tmpTotal1(
Bdate date,
Employee double null,
System_Sales double null,
Diff double null,
) on commit delete rows;
set strStartDate=dateFormat(sdate1,'yyyy-mm-dd');
set strEndDate=dateFormat(sdate2,'yyyy-mm-dd');
set sql='insert into tmptotal1(BDate,Employee,System_Sales,Diff)
select BDate, sum(Employee) as Employee, sum(System_Sales) as System_Sales , Employee-System_Sales as Diff from (
SELECT date(start_time) as BDate,sum(net_sls_ttl)as Employee ,0 System_Sales FROM "micros"."v_R_employee"
where date(start_time)>='''+strstartdate+''' and date (end_time)<='''+strenddate+'''
group by date(start_time)
union all
select date(business_date) as BDate, 0 as Employee,net_sls_ttl as System_Sales from micros.dly_sys_ttl
where date(business_date)>='''+strstartdate+''' and date (business_date)<='''+strenddate+''') tmp
group by BDate order by 1';
execute immediate sql;
select * from TMPTOTAL1
end
Kullanımı:
call "custom"."Emp_Sys_Sales_Diff " ('2018-04-01','2018-04-30')
2. Genel Toplam Karşılaştırma
Prosedür:
Create Procedure "custom"."Emp_Sys_Sales_Diff_Summary" (sdate1 date, sdate2 date)
begin
declare sql varchar(4000);
declare strStartDate varchar(10);
declare strEndDate varchar(10);
declare local temporary table tmpTotal1(
Employee double null,
System_Sales double null,
Diff double null,
) on commit delete rows;
set strStartDate=dateFormat(sdate1,'yyyy-mm-dd');
set strEndDate=dateFormat(sdate2,'yyyy-mm-dd');
set sql='insert into tmptotal1(Employee,System_Sales,Diff)
select sum(Employee) as Employee, sum(System_Sales) as System_Sales , Employee-System_Sales as Diff from (
SELECT sum(net_sls_ttl)as Employee ,0 System_Sales FROM "micros"."v_R_employee"
where date(start_time)>='''+strstartdate+''' and date (end_time)<='''+strenddate+'''
group by date(start_time)
union all
select 0 as Employee,net_sls_ttl as System_Sales from micros.dly_sys_ttl
where date(business_date)>='''+strstartdate+''' and date (business_date)<='''+strenddate+''') tmp';
execute immediate sql;
select * from TMPTOTAL1
end
Kullanımı:
call "custom"." Emp_Sys_Sales_Diff_Summary" ('2018-04-01','2018-04-30')