src/org/openbravo/erpCommon/ad_reports/ReportOrderNotInvoice_data.xsql
author Carlos Romero <carlos.romero@openbravo.com>
Tue, 12 Feb 2008 18:53:44 +0000
changeset 423 ecf368072c48
parent 0 0247c26f10c6
child 1605 8a0fe0193bef
permissions -rw-r--r--
Fixed bug [ 1889741 ] Openbravo PostgreSQL 8.3 compatible
<?xml version="1.0" encoding="UTF-8" ?>
<!--
 *************************************************************************
 * The contents of this file are subject to the Openbravo  Public  License
 * Version  1.0  (the  "License"),  being   the  Mozilla   Public  License
 * Version 1.1  with a permitted attribution clause; you may not  use this
 * file except in compliance with the License. You  may  obtain  a copy of
 * the License at http://www.openbravo.com/legal/license.html 
 * Software distributed under the License  is  distributed  on  an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 * License for the specific  language  governing  rights  and  limitations
 * under the License. 
 * The Original Code is Openbravo ERP. 
 * The Initial Developer of the Original Code is Openbravo SL 
 * All portions are Copyright (C) 2001-2006 Openbravo SL 
 * All Rights Reserved. 
 * Contributor(s):  ______________________________________.
 ************************************************************************
-->





<SqlClass name="ReportOrderNotInvoiceData" package="org.openbravo.erpCommon.ad_reports">
  <SqlClassComment></SqlClassComment>
  <SqlMethod name="select" type="preparedStatement" return="multiple">
    <SqlMethodComment></SqlMethodComment>
    <Sql>
    <![CDATA[
      SELECT ORGNAME, C_BPARTNER_ID, BPARTNERNAME, C_ORDER_ID, DOCUMENTNO, DATEORDERED, GRANDTOTAL, ISO_CODE, INVOICERULE, 
      LINE, PRODUCT, PRICE, QTYORDERED, UOMSYMBOL, TAX, TAXBASE, LINENETAMT
      FROM (
      SELECT AD_ORG.NAME AS ORGNAME, C_BPARTNER.C_BPARTNER_ID, C_BPARTNER.NAME AS BPARTNERNAME, C_ORDER.C_ORDER_ID, C_ORDER.DOCUMENTNO,
      C_ORDER.DATEORDERED, C_ORDER.GRANDTOTAL, C_CURRENCY.ISO_CODE, (CASE C_ORDER.INVOICERULE WHEN 'S' THEN COALESCE(AD_REF_LIST_TRL.NAME, AD_REF_LIST.NAME)||' ('||C_INVOICESCHEDULE.NAME||')' ELSE COALESCE(AD_REF_LIST_TRL.NAME, AD_REF_LIST.NAME) END) AS INVOICERULE,
      C_ORDERLINE.LINE AS LINE, COALESCE(M_PRODUCT.NAME, M_PRODUCT.DESCRIPTION) AS PRODUCT, C_ORDERLINE.PRICEACTUAL AS PRICE, 
      C_ORDERLINE.QTYORDERED, C_UOM.UOMSYMBOL, NULL AS TAX, NULL AS TAXBASE, C_ORDERLINE.LINENETAMT
      FROM C_BPARTNER left join C_INVOICESCHEDULE on C_BPARTNER.C_INVOICESCHEDULE_ID = C_INVOICESCHEDULE.C_INVOICESCHEDULE_ID,
           AD_REF_LIST left join AD_REF_LIST_TRL  on AD_REF_LIST.AD_REF_LIST_ID = AD_REF_LIST_TRL.AD_REF_LIST_ID  
                                                     and AD_REF_LIST_TRL.AD_LANGUAGE = ?,
           C_ORDERLINE left join M_PRODUCT on C_ORDERLINE.M_PRODUCT_ID=M_PRODUCT.M_PRODUCT_ID,
           C_ORDER, AD_ORG, C_UOM, C_CURRENCY
      WHERE C_ORDER.C_ORDER_ID=C_ORDERLINE.C_ORDER_ID
      AND C_ORDER.C_BPARTNER_ID = C_BPARTNER.C_BPARTNER_ID
      AND C_ORDER.INVOICERULE = AD_REF_LIST.VALUE
      AND C_ORDERLINE.C_UOM_ID = C_UOM.C_UOM_ID
      AND C_ORDER.AD_ORG_ID = AD_ORG.AD_ORG_ID
      AND C_ORDER.C_CURRENCY_ID = C_CURRENCY.C_CURRENCY_ID
      AND AD_REF_LIST.AD_REFERENCE_ID = 150
      AND C_ORDER.PROCESSED = 'Y'
      AND C_ORDER.ISSOTRX = 'Y'
      AND C_ORDERLINE.QTYORDERED<>C_ORDERLINE.QTYINVOICED
      AND C_ORDER.AD_Client_ID IN ('1')
      AND C_ORDER.AD_ORG_ID IN ('1')
      AND 1=1
      UNION ALL
      SELECT AD_ORG.NAME AS ORGNAME, C_BPARTNER.C_BPARTNER_ID, C_BPARTNER.NAME AS BPARTNERNAME, C.C_ORDER_ID, C.DOCUMENTNO,
      C.DATEORDERED, C.GRANDTOTAL, C_CURRENCY.ISO_CODE AS ISO_CODE, (CASE C.INVOICERULE WHEN 'S' THEN COALESCE(AD_REF_LIST_TRL.NAME, AD_REF_LIST.NAME)||' ('||C_INVOICESCHEDULE.NAME||')' ELSE COALESCE(AD_REF_LIST_TRL.NAME, AD_REF_LIST.NAME) END) AS INVOICERULE,
      NULL AS LINE , C_TAX.NAME AS PRODUCT, NULL AS PRICE, 
      NULL AS QTYORDERED, NULL AS UOMSYMBOL, C_TAX.RATE AS TAX, C_ORDERTAX.TAXBASEAMT AS TAXBASE, C_ORDERTAX.TAXAMT AS LINENETAMT
      FROM C_BPARTNER left join C_INVOICESCHEDULE on C_BPARTNER.C_INVOICESCHEDULE_ID = C_INVOICESCHEDULE.C_INVOICESCHEDULE_ID,
           AD_REF_LIST left join AD_REF_LIST_TRL on AD_REF_LIST.AD_REF_LIST_ID = AD_REF_LIST_TRL.AD_REF_LIST_ID 
                                                 AND AD_REF_LIST_TRL.AD_LANGUAGE = ? ,
      C_ORDER C ,C_ORDERTAX, AD_ORG,  C_TAX, C_CURRENCY      
      WHERE C.C_ORDER_ID=C_ORDERTAX.C_ORDER_ID
      AND C.C_BPARTNER_ID=C_BPARTNER.C_BPARTNER_ID
      AND C.C_CURRENCY_ID = C_CURRENCY.C_CURRENCY_ID
      AND C.INVOICERULE = AD_REF_LIST.VALUE
      AND AD_REF_LIST.AD_REFERENCE_ID = 150
      AND C_ORDERTAX.C_TAX_ID = C_TAX.C_TAX_ID
      AND C.AD_ORG_ID = AD_ORG.AD_ORG_ID
      AND C.PROCESSED = 'Y'
      AND C.ISSOTRX = 'Y'
      AND EXISTS (SELECT 1 FROM C_ORDER C2, C_ORDERLINE CL
                 WHERE C2.c_order_id = C.c_order_id
                 and c2.c_order_id=cl.c_order_id
                 and cl.QTYORDERED<>cl.QTYINVOICED)
      AND C.AD_Client_ID IN ('2')
      AND C.AD_ORG_ID IN ('2')
      AND 2=2
      ) AAA
      ORDER BY ORGNAME, BPARTNERNAME, DATEORDERED DESC, DOCUMENTNO, LINE
      ]]></Sql>
    <Parameter name="adLanguage"/>
    <Parameter name="adUserClient" type="replace" optional="true" after="C_ORDER.AD_Client_ID IN (" text="'1'"/>
    <Parameter name="adUserOrg" type="replace" optional="true" after="C_ORDER.AD_ORG_ID IN (" text="'1'"/>
    <Parameter name="cBpartnerId" optional="true" after="1=1">AND C_ORDER.C_BPARTNER_ID = TO_NUMBER(?)</Parameter>
    <Parameter name="cOrgId" optional="true" after="1=1">AND C_ORDER.AD_ORG_ID = TO_NUMBER(?)</Parameter>
    <Parameter name="invoiceRule" optional="true" after="1=1">AND C_ORDER.INVOICERULE = ?</Parameter>
    <Parameter name="dateFrom" optional="true" after="1=1"><![CDATA[ AND C_ORDER.DATEORDERED >= to_date(?) ]]></Parameter>
    <Parameter name="dateTo" optional="true" after="1=1"><![CDATA[ AND C_ORDER.DATEORDERED < to_date(?) ]]></Parameter>
    <Parameter name="adLanguage"/>
    <Parameter name="adUserClient" type="replace" optional="true" after="C.AD_Client_ID IN (" text="'2'"/>
    <Parameter name="adUserOrg" type="replace" optional="true" after="C.AD_ORG_ID IN (" text="'2'"/>
    <Parameter name="cBpartnerId" optional="true" after="2=2">AND C.C_BPARTNER_ID = TO_NUMBER(?)</Parameter>
    <Parameter name="cOrgId" optional="true" after="2=2">AND C.AD_ORG_ID = TO_NUMBER(?)</Parameter>
    <Parameter name="invoiceRule" optional="true" after="2=2">AND C.INVOICERULE = ?</Parameter>
    <Parameter name="dateFrom" optional="true" after="2=2"><![CDATA[ AND C.DATEORDERED >= to_date(?) ]]></Parameter>
    <Parameter name="dateTo" optional="true" after="2=2"><![CDATA[ AND C.DATEORDERED < to_date(?) ]]></Parameter>
  </SqlMethod>
  <SqlMethod name="set" type="constant" return="multiple">
      <SqlMethodComment></SqlMethodComment>
      <Sql></Sql>
  </SqlMethod>
  <SqlMethod name="bPartnerDescription" type="preparedStatement" return="String" default="">
    <SqlMethodComment></SqlMethodComment>
    <Sql>
    SELECT max(NAME) as name FROM C_BPARTNER 
    WHERE C_BPARTNER_ID = TO_NUMBER(?)
    </Sql>
    <Parameter name="cBpartnerId"/>
  </SqlMethod>
</SqlClass>