Reporte de Ventas generadas desde Micros 9700

Este Query permite obtener la información de las ventas de A&B (Alimentos y Bebidas del Hotel) realizadas desde MIcros 9700, ventas que podrían estar facturadas directamente desde el Micros o ventas que fueron cargadas a una determinada Habitación del Hotel, los cargos a habitación se visualizan y se facturan desde el PMS Opera generalmente cuando el cliente realiza el Check Out. Este Query de obtención de información de ventas se puede automatizar mediante una tarea para obtener los ingresos por ventas de A&B en linea.

La información obtenida a partir de este Query se puede utilizar para la realización de reportes de Business Intelligence que nos permitan analíticas adicionales a las presentadas en las herramientas del Oracle como el MyMicros

select t.cf_cnumser,t.cf_cnumdoc,t.cf_dfecdoc,t.cf_dfecven,t.cf_ccodcli,t.cf_cnombre,t.cf_ccodmon,t.cf_nprecio,t.cf_nigv,t.others,t.cf_nimport from ( 

    select to_char(c.checknumber) as cf_cnumser, 

        ‘CARGO HAB’ as cf_cnumdoc, 

        to_char(c.checkopen,’DD/MM/RRRR’) as cf_dfecdoc,  

        to_char(c.checkclose,’DD/MM/RRRR’) as cf_dfecven, 

        ‘HAB ‘||to_char(t.OBJECTNUMBER) as cf_ccodcli, 

        ‘CHK ‘||to_char(c.checknumber) as cf_cnombre, 

        ‘MN’ as cf_ccodmon, 

        round(c.subtotal,2) as cf_nprecio, 

        round(c.tax,2) as cf_nigv,  

        (round(c.other,2)+round(c.autogratuity,2)) as others,  

        round(c.payment,2) as cf_nimport 

     from microsdb.checks c  

     INNER JOIN MICROSDB.DINING_TABLE t on (c.diningtableid=t.diningtableid)

     where c.checkopen >= TO_DATE(’07/08/2019’||’00:00:00′, ‘DD/MM/RRRR HH24:MI:SS’) 

        AND c.checkopen <= TO_DATE(’07/08/2019’||’23:59:59′, ‘DD/MM/RRRR HH24:MI:SS’) 

        AND c.revctrid!=4 and c.payment>0

        AND c.checkid not in (

            SELECT cs.checkid 

            FROM microsdb.fcr_invoice_data a 

            inner join MICROSDB.CHECKS cs on (cs.checknumber=a.microschknum and cs.revctrid=2)

            where a.microsbsnzdate >= TO_DATE(’07/08/2019’||’00:00:00′, ‘DD/MM/YYYY HH24:MI:SS’)

            AND a.microsbsnzdate <= TO_DATE(’07/08/2019’||’23:59:59′, ‘DD/MM/YYYY HH24:MI:SS’)

        )

    UNION ALL 

    SELECT to_char(substr(a.fcrinvnumber,1,4)) as cf_cnumser, 

        to_char(substr(a.fcrinvnumber,6,7)) as cf_cnumdoc,  

        to_char(a.microsbsnzdate,’DD/MM/RRRR’) as cf_dfecdoc,  

        to_char(a.microsbsnzdate,’DD/MM/RRRR’) as cf_dfecven, 

        to_char(a.customerid) as cf_ccodcli, 

        to_char(a.extrafield1) as cf_cnombre, 

        ‘MN’ as cf_ccodmon, 

        round(a.subtotal8/1.18,2) as cf_nprecio, 

        round(a.subtotal8-(a.subtotal8/1.18),2) as cf_nigv,  

        0 as others, 

        a.subtotal8 as cf_nimport 

    FROM microsdb.fcr_invoice_data a

    where a.microsbsnzdate >= TO_DATE(’07/08/2019’||’00:00:00′, ‘DD/MM/YYYY HH24:MI:SS’)

    AND a.microsbsnzdate <= TO_DATE(’07/08/2019’||’23:59:59′, ‘DD/MM/YYYY HH24:MI:SS’)

    AND a.microschknum NOT IN (

        SELECT c.checknumber

        FROM MICROSDB.CHECKS c 

        inner join MICROSDB.CHECK_DETAIL cd on (c.CHECKID=cd.CHECKID and cd.detailtype=1)

        inner join MICROSDB.menu_item_detail mid on (mid.CHECKDETAILID=cd.CHECKDETAILID)

        inner join MICROSDB.menu_item_definition mif on (mif.MENUITEMDEFID=mid.MENUITEMDEFID)

        inner join MICROSDB.v_string_table st on (st.STRINGNUMBERID=mif.name1id)

        where c.checkopen >= TO_DATE(’07/08/2019’||’00:00:00′, ‘DD/MM/YYYY HH24:MI:SS’)

            AND c.checkopen <= TO_DATE(’07/08/2019’||’23:59:59′, ‘DD/MM/YYYY HH24:MI:SS’)

            and st.stringid in (

                1,2,3–SERVICIOS A EXCLUIR

            )

    )

) t order by t.cf_dfecdoc ASC 

Este Query permite obtener la información de todos los Check que se realizan desde el Micros 9700 independientemente de si genera un comprobante de pago o un cargo a habitación, esta información se puede utilizar para generar reportes de análisis de ingresos en tiempo real por cada Revenue Center definido en el Micros 9700.

SELECT c.CHECKID,c.checknumber,cd.detailindex,cd.salescount,cd.total,st.stringtext,
to_char(t.OBJECTNUMBER) num_table,
NVL((select listagg (sd.plaindata, ‘,’) WITHIN GROUP (ORDER BY sd.plaindata) from MICROSDB.CHECK_DETAIL cd inner join MICROSDB.secure_detail sd on (sd.checkdetailid=cd.CHECKDETAILID) where cd.checkid=c.CHECKID group by cd.checkid),’-‘) secure_detail,
c.revctrid revenue_center,
to_char(c.checkpostingtime,’DD/MM/RRRR’) postingtime
FROM MICROSDB.CHECK_DETAIL cd 
inner JOIN MICROSDB.CHECKS C on (c.CHECKID=cd.CHECKID)
inner JOIN MICROSDB.DINING_TABLE t on (c.diningtableid=t.diningtableid)
inner join MICROSDB.menu_item_detail mid on (mid.CHECKDETAILID=cd.CHECKDETAILID)
inner join MICROSDB.menu_item_definition mif on (mif.MENUITEMDEFID=mid.MENUITEMDEFID)
inner join MICROSDB.v_string_table st on (st.STRINGNUMBERID=mif.name1id)
where c.checkpostingtime >= TO_DATE(’09/08/2019’||’00:00:00′, ‘DD/MM/YYYY HH24:MI:SS’)
AND c.checkpostingtime <= TO_DATE(’09/08/2019’||’23:59:59′, ‘DD/MM/YYYY HH24:MI:SS’)
order by c.checknumber,cd.detailindex asc