Buen Día Estoy intentando realizar un reporte, para conseguir las facturas con su nota crédito. Este reporte me servira para para cuadrar la caja en la venta del día
Tengo que hacerlo por usuario. Si la notas de crédito de la factura del día se hace en otra fecha no puede aparecer en ese día; ejemplo el 22 de julio se realizo 22 facturas de las cuales 4 facturas le hicieron las notas de crédito porque tuvieron que devolver el dinero. Pero esta solo dos facturas se la hicieron el mismo días y las otras 2 la realizaron el 23. Solo debe aparecer 2 facturas de las 4, para el día 22 de julio, las otras dos deben aparecer el 23 de julio con las demás facturas de ese día.
Mi ayuda es si alguien puede ayudar a mejorar el lógico.
Adjunto esta el archivo.
Miguel lo último que logre fue traer las facturas exacta del dia con su nota de crédito comparando la fecha de la factura con la fecha de la nota de crédito, pero como tengo factura
Con nota del 23/07/2013 ella no trae, pero cuando consulto que traiga la factura del 23/07/2013 no puede traerme la nota crédito porque las factura no que tengo son del 22/07/2013
SELECT DISTINCT b.xx_sede,
org.name as organizacon, b.c_bpartner_id, a.c_bpartner_id,
d.name as paciente
,a.ad_client_id, a.ad_org_id,
a.c_invoice_id,b.xx_admission AS no_admision,a.c_order_id,a.xx_factura As no_factura,a.dateinvoiced AS fecha_factura,
case a.c_doctype_id
when 1000002 then a.grandtotal
else 0
end as monto_factura
,aa.dateinvoiced AS fecha_nota_credito2
,aa.grandtotal::numeric as monto_nota_credito2
,aa.xx_controlnumber AS num_ctrol_factura2
,aa.xx_factura as num_nota_cred2
,aa.xx_facturaafectada AS num_fact_afect2
,h.c_bpartner_id, g.ad_user_id,
g.name AS usuario, (COALESCE( ' '||
h.name||', '||h.name2)) AS nombre_usr, a.ispaid,a.c_doctype_id,b.xx_insurance_id AS seguroid,
f.name AS seguro, a.docstatus, a.c_doctype_id
FROM
---FACTURA------------
c_invoice a
LEFT JOIN c_order b ON a.c_order_id = b.c_order_id
LEFT JOIN c_bpartner c ON b.xx_medical_id = c.c_bpartner_id
LEFT JOIN c_bpartner d ON a.xx_patient_id = d.c_bpartner_id
LEFT JOIN c_bpartner f ON b.xx_insurance_id = f.c_bpartner_id
JOIN c_doctype_trl e ON a.c_doctype_id = e.c_doctype_id
JOIN ad_user g ON a.createdby = g.ad_user_id
LEFT JOIN c_bpartner h ON h.c_bpartner_id = g.c_bpartner_id
JOIN c_bpartner i ON i.c_bpartner_id = a.c_bpartner_id
JOIN adempiere.c_doctype doc on doc.c_doctype_id=a.c_doctype_id
JOIN ad_org org ON a.ad_org_id = org.ad_org_id
JOIN c_doctype dt ON a.c_doctype_id = dt.c_doctype_id
---COMBINACION PARA TRAERME LAS NOTA DE CRÉDITO------
LEFT JOIN c_invoice aa on a.xx_factura=aa.xx_facturaafectada and aa.xx_controlnumberafec>0 AND
--compracion de fecha FACTURA NOTA DE CRÉDITO--------
a.dateinvoiced=aa.dateinvoiced
WHERE a.issotrx = 'Y'::bpchar
and a.grandtotal >= 0::numeric
AND a.ad_org_id=1000015
and a.c_doctype_id <> 1000050 and a.c_doctype_id <> 1000005
--usuario que hace la fachtura--
AND h.c_bpartner_id=1078530
--fecha de de consulta de factura + nota de crédito---
AND a.dateinvoiced='22-07-2013'
AND (a.docstatus = ANY (ARRAY['CO'::bpchar, 'CL'::bpchar]))
AND e.ad_language::text = 'es_VE'::text
--filtro de los usuario que crean las facturas + los usuario que crean la nota de crédito----------
and (g.ad_user_id= ANY (ARRAY[1000394::numeric,1000498::numeric,1001093::numeric,1000397::numeric,1000796::numeric,1000948::numeric,1001113::numeric]))
ORDER BY
a.dateinvoiced DESC,a.c_doctype_id