diff --git a/migration/360lts-i1.0a/oracle/912_IDEMPIERE_391.sql b/migration/360lts-i1.0a/oracle/912_IDEMPIERE_391.sql index a06964a2ff..e1431f46d7 100644 --- a/migration/360lts-i1.0a/oracle/912_IDEMPIERE_391.sql +++ b/migration/360lts-i1.0a/oracle/912_IDEMPIERE_391.sql @@ -1639,6 +1639,7 @@ from c_acctprocessor where not exists (select 1 from ad_schedule where coalesce(c_acctprocessor.frequencytype,' ') =coalesce(ad_schedule.frequencytype,' ') and coalesce(c_acctprocessor.frequency,-1) =coalesce(ad_schedule.frequency,-1) +and ad_schedule.scheduletype='F' ) ) ; @@ -1653,6 +1654,7 @@ from ad_alertprocessor where not exists (select 1 from ad_schedule where coalesce(ad_alertprocessor.frequencytype,' ') =coalesce(ad_schedule.frequencytype,' ') and coalesce(ad_alertprocessor.frequency,-1) =coalesce(ad_schedule.frequency,-1) +and ad_schedule.scheduletype='F' ) ) ; @@ -1667,6 +1669,7 @@ from r_requestprocessor where not exists (select 1 from ad_schedule where coalesce(r_requestprocessor.frequencytype,' ') =coalesce(ad_schedule.frequencytype,' ') and coalesce(r_requestprocessor.frequency,-1) =coalesce(ad_schedule.frequency,-1) +and ad_schedule.scheduletype='F' ) ) ; @@ -1681,6 +1684,7 @@ from ad_workflowprocessor where not exists (select 1 from ad_schedule where coalesce(ad_workflowprocessor.frequencytype,' ') =coalesce(ad_schedule.frequencytype,' ') and coalesce(ad_workflowprocessor.frequency,-1) =coalesce(ad_schedule.frequency,-1) +and ad_schedule.scheduletype='F' ) ) ; diff --git a/migration/360lts-i1.0a/postgresql/912_IDEMPIERE_391.sql b/migration/360lts-i1.0a/postgresql/912_IDEMPIERE_391.sql index e57743b5ee..6598451135 100644 --- a/migration/360lts-i1.0a/postgresql/912_IDEMPIERE_391.sql +++ b/migration/360lts-i1.0a/postgresql/912_IDEMPIERE_391.sql @@ -1639,6 +1639,7 @@ from c_acctprocessor where not exists (select 1 from ad_schedule where coalesce(c_acctprocessor.frequencytype,' ') =coalesce(ad_schedule.frequencytype,' ') and coalesce(c_acctprocessor.frequency,-1) =coalesce(ad_schedule.frequency,-1) +and ad_schedule.scheduletype='F' ) ) as x ; @@ -1653,6 +1654,7 @@ from ad_alertprocessor where not exists (select 1 from ad_schedule where coalesce(ad_alertprocessor.frequencytype,' ') =coalesce(ad_schedule.frequencytype,' ') and coalesce(ad_alertprocessor.frequency,-1) =coalesce(ad_schedule.frequency,-1) +and ad_schedule.scheduletype='F' ) ) as x ; @@ -1667,6 +1669,7 @@ from r_requestprocessor where not exists (select 1 from ad_schedule where coalesce(r_requestprocessor.frequencytype,' ') =coalesce(ad_schedule.frequencytype,' ') and coalesce(r_requestprocessor.frequency,-1) =coalesce(ad_schedule.frequency,-1) +and ad_schedule.scheduletype='F' ) ) as x ; @@ -1681,6 +1684,7 @@ from ad_workflowprocessor where not exists (select 1 from ad_schedule where coalesce(ad_workflowprocessor.frequencytype,' ') =coalesce(ad_schedule.frequencytype,' ') and coalesce(ad_workflowprocessor.frequency,-1) =coalesce(ad_schedule.frequency,-1) +and ad_schedule.scheduletype='F' ) ) as x ; diff --git a/migration/i2.0/oracle/201402111757_IDEMPIERE-1724.sql b/migration/i2.0/oracle/201402111757_IDEMPIERE-1724.sql new file mode 100644 index 0000000000..08bbab32ad --- /dev/null +++ b/migration/i2.0/oracle/201402111757_IDEMPIERE-1724.sql @@ -0,0 +1,11 @@ +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- Feb 11, 2014 5:56:46 PM COT +-- IDEMPIERE-1724 Field C_Charge_ID in table C_OrderLine has wrong dynamic Validation +UPDATE AD_Column SET AD_Val_Rule_ID=52030,Updated=TO_DATE('2014-02-11 17:56:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=3050 +; + +SELECT register_migration_script('201402111757_IDEMPIERE-1724.sql') FROM dual +; + diff --git a/migration/i2.0/oracle/201402151138_IDEMPIERE-1755.sql b/migration/i2.0/oracle/201402151138_IDEMPIERE-1755.sql new file mode 100644 index 0000000000..2a5aa602a7 --- /dev/null +++ b/migration/i2.0/oracle/201402151138_IDEMPIERE-1755.sql @@ -0,0 +1,55 @@ +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- Feb 15, 2014 11:34:30 AM COT +-- IDEMPIERE-1755 when copy a user some field should reset +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2014-02-15 11:34:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200458 +; + +-- Feb 15, 2014 11:35:12 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2014-02-15 11:35:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200405 +; + +-- Feb 15, 2014 11:35:19 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2014-02-15 11:35:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200408 +; + +-- Feb 15, 2014 11:35:23 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2014-02-15 11:35:23','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200407 +; + +-- Feb 15, 2014 11:35:46 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2014-02-15 11:35:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200406 +; + +-- Feb 15, 2014 11:35:55 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2014-02-15 11:35:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200456 +; + +-- Feb 15, 2014 11:36:03 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2014-02-15 11:36:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200404 +; + +-- Feb 15, 2014 11:36:14 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2014-02-15 11:36:14','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200409 +; + +-- Feb 15, 2014 11:36:31 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2014-02-15 11:36:31','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=417 +; + +-- Feb 15, 2014 11:36:38 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2014-02-15 11:36:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=61756 +; + +-- Feb 15, 2014 11:36:43 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2014-02-15 11:36:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200457 +; + +-- Feb 15, 2014 11:36:51 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_DATE('2014-02-15 11:36:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=52066 +; + +SELECT register_migration_script('201402151138_IDEMPIERE-1755.sql') FROM dual +; + diff --git a/migration/i2.0/postgresql/201402111757_IDEMPIERE-1724.sql b/migration/i2.0/postgresql/201402111757_IDEMPIERE-1724.sql new file mode 100644 index 0000000000..ba3bf43412 --- /dev/null +++ b/migration/i2.0/postgresql/201402111757_IDEMPIERE-1724.sql @@ -0,0 +1,8 @@ +-- Feb 11, 2014 5:56:46 PM COT +-- IDEMPIERE-1724 Field C_Charge_ID in table C_OrderLine has wrong dynamic Validation +UPDATE AD_Column SET AD_Val_Rule_ID=52030,Updated=TO_TIMESTAMP('2014-02-11 17:56:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=3050 +; + +SELECT register_migration_script('201402111757_IDEMPIERE-1724.sql') FROM dual +; + diff --git a/migration/i2.0/postgresql/201402151138_IDEMPIERE-1755.sql b/migration/i2.0/postgresql/201402151138_IDEMPIERE-1755.sql new file mode 100644 index 0000000000..b0d4cfebb8 --- /dev/null +++ b/migration/i2.0/postgresql/201402151138_IDEMPIERE-1755.sql @@ -0,0 +1,52 @@ +-- Feb 15, 2014 11:34:30 AM COT +-- IDEMPIERE-1755 when copy a user some field should reset +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2014-02-15 11:34:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200458 +; + +-- Feb 15, 2014 11:35:12 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2014-02-15 11:35:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200405 +; + +-- Feb 15, 2014 11:35:19 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2014-02-15 11:35:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200408 +; + +-- Feb 15, 2014 11:35:23 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2014-02-15 11:35:23','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200407 +; + +-- Feb 15, 2014 11:35:46 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2014-02-15 11:35:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200406 +; + +-- Feb 15, 2014 11:35:55 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2014-02-15 11:35:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200456 +; + +-- Feb 15, 2014 11:36:03 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2014-02-15 11:36:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200404 +; + +-- Feb 15, 2014 11:36:14 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2014-02-15 11:36:14','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200409 +; + +-- Feb 15, 2014 11:36:31 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2014-02-15 11:36:31','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=417 +; + +-- Feb 15, 2014 11:36:38 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2014-02-15 11:36:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=61756 +; + +-- Feb 15, 2014 11:36:43 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2014-02-15 11:36:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200457 +; + +-- Feb 15, 2014 11:36:51 AM COT +UPDATE AD_Column SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2014-02-15 11:36:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=52066 +; + +SELECT register_migration_script('201402151138_IDEMPIERE-1755.sql') FROM dual +; + diff --git a/org.adempiere.base.callout/src/org/adempiere/model/CalloutRMA.java b/org.adempiere.base.callout/src/org/adempiere/model/CalloutRMA.java index 504ab6e170..586fb5f66d 100644 --- a/org.adempiere.base.callout/src/org/adempiere/model/CalloutRMA.java +++ b/org.adempiere.base.callout/src/org/adempiere/model/CalloutRMA.java @@ -153,7 +153,7 @@ public class CalloutRMA extends CalloutEngine { invoice.getDateInvoiced(), invoice.getDateInvoiced(), AD_Org_ID, rma.getShipment().getM_Warehouse_ID(), invoice.getC_BPartner_Location_ID(), // should be bill to - invoice.getC_BPartner_Location_ID(), rma.isSOTrx()); + invoice.getC_BPartner_Location_ID(), rma.isSOTrx(), null); } else { @@ -168,7 +168,7 @@ public class CalloutRMA extends CalloutEngine { order.getDateOrdered(), order.getDateOrdered(), AD_Org_ID, order.getM_Warehouse_ID(), order.getC_BPartner_Location_ID(), // should be bill to - order.getC_BPartner_Location_ID(), rma.isSOTrx()); + order.getC_BPartner_Location_ID(), rma.isSOTrx(), null); } else return "No Invoice/Order found the Shipment/Receipt associated"; diff --git a/org.adempiere.base.callout/src/org/compiere/model/CalloutInvoice.java b/org.adempiere.base.callout/src/org/compiere/model/CalloutInvoice.java index b3e36dc703..771bb308fd 100644 --- a/org.adempiere.base.callout/src/org/compiere/model/CalloutInvoice.java +++ b/org.adempiere.base.callout/src/org/compiere/model/CalloutInvoice.java @@ -477,7 +477,7 @@ public class CalloutInvoice extends CalloutEngine // int C_Tax_ID = Tax.get(ctx, M_Product_ID, C_Charge_ID, billDate, shipDate, AD_Org_ID, M_Warehouse_ID, billC_BPartner_Location_ID, shipC_BPartner_Location_ID, - Env.getContext(ctx, WindowNo, "IsSOTrx").equals("Y")); + Env.getContext(ctx, WindowNo, "IsSOTrx").equals("Y"), null); if (log.isLoggable(Level.INFO)) log.info("Tax ID=" + C_Tax_ID); // if (C_Tax_ID == 0) diff --git a/org.adempiere.base.callout/src/org/compiere/model/CalloutInvoiceBatch.java b/org.adempiere.base.callout/src/org/compiere/model/CalloutInvoiceBatch.java index 03c23608da..3def446db6 100644 --- a/org.adempiere.base.callout/src/org/compiere/model/CalloutInvoiceBatch.java +++ b/org.adempiere.base.callout/src/org/compiere/model/CalloutInvoiceBatch.java @@ -323,7 +323,7 @@ public class CalloutInvoiceBatch extends CalloutEngine // int C_Tax_ID = Tax.get(ctx, 0, C_Charge_ID, billDate, shipDate, AD_Org_ID, M_Warehouse_ID, C_BPartner_Location_ID, C_BPartner_Location_ID, - Env.getContext(ctx, WindowNo, "IsSOTrx").equals("Y")); + Env.getContext(ctx, WindowNo, "IsSOTrx").equals("Y"), null); if (log.isLoggable(Level.INFO)) log.info("Tax ID=" + C_Tax_ID); // if (C_Tax_ID == 0) diff --git a/org.adempiere.base.callout/src/org/compiere/model/CalloutOrder.java b/org.adempiere.base.callout/src/org/compiere/model/CalloutOrder.java index 09331f172a..a8aef526ce 100644 --- a/org.adempiere.base.callout/src/org/compiere/model/CalloutOrder.java +++ b/org.adempiere.base.callout/src/org/compiere/model/CalloutOrder.java @@ -1002,7 +1002,7 @@ public class CalloutOrder extends CalloutEngine // int C_Tax_ID = Tax.get (ctx, M_Product_ID, C_Charge_ID, billDate, shipDate, AD_Org_ID, M_Warehouse_ID, billC_BPartner_Location_ID, shipC_BPartner_Location_ID, - "Y".equals(Env.getContext(ctx, WindowNo, "IsSOTrx"))); + "Y".equals(Env.getContext(ctx, WindowNo, "IsSOTrx")), null); if (log.isLoggable(Level.INFO)) log.info("Tax ID=" + C_Tax_ID); // if (C_Tax_ID == 0) diff --git a/org.adempiere.base/src/org/compiere/model/MInvoiceLine.java b/org.adempiere.base/src/org/compiere/model/MInvoiceLine.java index f6664cb359..d826c59fdd 100644 --- a/org.adempiere.base/src/org/compiere/model/MInvoiceLine.java +++ b/org.adempiere.base/src/org/compiere/model/MInvoiceLine.java @@ -437,7 +437,7 @@ public class MInvoiceLine extends X_C_InvoiceLine int C_Tax_ID = Tax.get(getCtx(), getM_Product_ID(), getC_Charge_ID() , m_DateInvoiced, m_DateInvoiced, getAD_Org_ID(), M_Warehouse_ID, m_C_BPartner_Location_ID, // should be bill to - m_C_BPartner_Location_ID, m_IsSOTrx); + m_C_BPartner_Location_ID, m_IsSOTrx, get_TrxName()); if (C_Tax_ID == 0) { log.log(Level.SEVERE, "No Tax found"); diff --git a/org.adempiere.base/src/org/compiere/model/MOrderLine.java b/org.adempiere.base/src/org/compiere/model/MOrderLine.java index d0e9e7abcf..0e4ec79798 100644 --- a/org.adempiere.base/src/org/compiere/model/MOrderLine.java +++ b/org.adempiere.base/src/org/compiere/model/MOrderLine.java @@ -341,7 +341,7 @@ public class MOrderLine extends X_C_OrderLine int ii = Tax.get(getCtx(), getM_Product_ID(), getC_Charge_ID(), getDateOrdered(), getDateOrdered(), getAD_Org_ID(), getM_Warehouse_ID(), getC_BPartner_Location_ID(), // should be bill to - getC_BPartner_Location_ID(), m_IsSOTrx); + getC_BPartner_Location_ID(), m_IsSOTrx, get_TrxName()); if (ii == 0) { log.log(Level.SEVERE, "No Tax found"); diff --git a/org.adempiere.base/src/org/compiere/model/MRMALine.java b/org.adempiere.base/src/org/compiere/model/MRMALine.java index 54a18ce301..e3b705d263 100644 --- a/org.adempiere.base/src/org/compiere/model/MRMALine.java +++ b/org.adempiere.base/src/org/compiere/model/MRMALine.java @@ -159,7 +159,7 @@ public class MRMALine extends X_M_RMALine taxId = Tax.get(getCtx(), getM_Product_ID(), getC_Charge_ID(), invoice.getDateInvoiced(), invoice.getDateInvoiced(), getAD_Org_ID(), getParent().getShipment().getM_Warehouse_ID(), invoice.getC_BPartner_Location_ID(), // should be bill to - invoice.getC_BPartner_Location_ID(), getParent().isSOTrx()); + invoice.getC_BPartner_Location_ID(), getParent().isSOTrx(), get_TrxName()); } else { @@ -173,7 +173,7 @@ public class MRMALine extends X_M_RMALine taxId = Tax.get(getCtx(), getM_Product_ID(), getC_Charge_ID(), order.getDateOrdered(), order.getDateOrdered(), getAD_Org_ID(), order.getM_Warehouse_ID(), order.getC_BPartner_Location_ID(), // should be bill to - order.getC_BPartner_Location_ID(), getParent().isSOTrx()); + order.getC_BPartner_Location_ID(), getParent().isSOTrx(), get_TrxName()); } else throw new IllegalStateException("No Invoice/Order found the Shipment/Receipt associated"); diff --git a/org.adempiere.base/src/org/compiere/model/Tax.java b/org.adempiere.base/src/org/compiere/model/Tax.java index 5b5cf3e5c4..1f48646f71 100644 --- a/org.adempiere.base/src/org/compiere/model/Tax.java +++ b/org.adempiere.base/src/org/compiere/model/Tax.java @@ -46,6 +46,30 @@ public class Tax /** Logger */ static private CLogger log = CLogger.getCLogger (Tax.class); + + /** + * + * @param ctx + * @param M_Product_ID + * @param C_Charge_ID + * @param billDate + * @param shipDate + * @param AD_Org_ID + * @param M_Warehouse_ID + * @param billC_BPartner_Location_ID + * @param shipC_BPartner_Location_ID + * @param IsSOTrx + * @deprecated + * @return + */ + public static int get (Properties ctx, int M_Product_ID, int C_Charge_ID, + Timestamp billDate, Timestamp shipDate, + int AD_Org_ID, int M_Warehouse_ID, + int billC_BPartner_Location_ID, int shipC_BPartner_Location_ID, + boolean IsSOTrx) { + return get(ctx, M_Product_ID, C_Charge_ID, billDate, shipDate, AD_Org_ID, M_Warehouse_ID, billC_BPartner_Location_ID, shipC_BPartner_Location_ID, IsSOTrx, null); + } + /************************************************************************** * Get Tax ID - converts parameters to call Get Tax. @@ -76,18 +100,41 @@ public class Tax Timestamp billDate, Timestamp shipDate, int AD_Org_ID, int M_Warehouse_ID, int billC_BPartner_Location_ID, int shipC_BPartner_Location_ID, - boolean IsSOTrx) + boolean IsSOTrx, String trxName) { if (M_Product_ID != 0) return getProduct (ctx, M_Product_ID, billDate, shipDate, AD_Org_ID, M_Warehouse_ID, - billC_BPartner_Location_ID, shipC_BPartner_Location_ID, IsSOTrx); + billC_BPartner_Location_ID, shipC_BPartner_Location_ID, IsSOTrx, trxName); else if (C_Charge_ID != 0) return getCharge (ctx, C_Charge_ID, billDate, shipDate, AD_Org_ID, M_Warehouse_ID, - billC_BPartner_Location_ID, shipC_BPartner_Location_ID, IsSOTrx); + billC_BPartner_Location_ID, shipC_BPartner_Location_ID, IsSOTrx, trxName); else - return getExemptTax (ctx, AD_Org_ID); + return getExemptTax (ctx, AD_Org_ID, trxName); } // get + /** + * + * @param ctx + * @param C_Charge_ID + * @param billDate + * @param shipDate + * @param AD_Org_ID + * @param M_Warehouse_ID + * @param billC_BPartner_Location_ID + * @param shipC_BPartner_Location_ID + * @param IsSOTrx + * @return + * @deprecated + */ + public static int getCharge (Properties ctx, int C_Charge_ID, + Timestamp billDate, Timestamp shipDate, + int AD_Org_ID, int M_Warehouse_ID, + int billC_BPartner_Location_ID, int shipC_BPartner_Location_ID, + boolean IsSOTrx) { + return getCharge(ctx, C_Charge_ID, billDate, shipDate, AD_Org_ID, M_Warehouse_ID, billC_BPartner_Location_ID, shipC_BPartner_Location_ID, IsSOTrx, null); + } + + /** * Get Tax ID - converts parameters to call Get Tax. *
@@ -118,7 +165,7 @@ public class Tax
Timestamp billDate, Timestamp shipDate,
int AD_Org_ID, int M_Warehouse_ID,
int billC_BPartner_Location_ID, int shipC_BPartner_Location_ID,
- boolean IsSOTrx)
+ boolean IsSOTrx, String trxName)
{
/* ship location from warehouse is plainly ignored below */
// if (M_Warehouse_ID <= 0)
@@ -152,7 +199,7 @@ public class Tax
ResultSet rs = null;
try
{
- pstmt = DB.prepareStatement (sql, null);
+ pstmt = DB.prepareStatement (sql, trxName);
pstmt.setInt (1, M_Warehouse_ID);
pstmt.setInt (2, C_Charge_ID);
pstmt.setInt (3, AD_Org_ID);
@@ -182,7 +229,7 @@ public class Tax
}
else if ("Y".equals (IsTaxExempt))
{
- return getExemptTax (ctx, AD_Org_ID);
+ return getExemptTax (ctx, AD_Org_ID, trxName);
}
}
catch (SQLException e)
@@ -213,10 +260,32 @@ public class Tax
+ ", shipToC_Location_ID=" + shipToC_Location_ID);
return get (ctx, C_TaxCategory_ID, IsSOTrx,
shipDate, shipFromC_Location_ID, shipToC_Location_ID,
- billDate, billFromC_Location_ID, billToC_Location_ID);
+ billDate, billFromC_Location_ID, billToC_Location_ID, trxName);
} // getCharge
+ /**
+ *
+ * @param ctx
+ * @param M_Product_ID
+ * @param billDate
+ * @param shipDate
+ * @param AD_Org_ID
+ * @param M_Warehouse_ID
+ * @param billC_BPartner_Location_ID
+ * @param shipC_BPartner_Location_ID
+ * @param IsSOTrx
+ * @return
+ * @deprecated
+ */
+ public static int getProduct (Properties ctx, int M_Product_ID,
+ Timestamp billDate, Timestamp shipDate,
+ int AD_Org_ID, int M_Warehouse_ID,
+ int billC_BPartner_Location_ID, int shipC_BPartner_Location_ID,
+ boolean IsSOTrx) {
+ return getProduct(ctx, M_Product_ID, billDate, shipDate, AD_Org_ID, M_Warehouse_ID, billC_BPartner_Location_ID, shipC_BPartner_Location_ID, IsSOTrx, null);
+ }
+
/**
* Get Tax ID - converts parameters to call Get Tax.
*
@@ -246,7 +315,7 @@ public class Tax
Timestamp billDate, Timestamp shipDate,
int AD_Org_ID, int M_Warehouse_ID,
int billC_BPartner_Location_ID, int shipC_BPartner_Location_ID,
- boolean IsSOTrx)
+ boolean IsSOTrx, String trxName)
{
String variable = "";
int C_TaxCategory_ID = 0;
@@ -273,7 +342,7 @@ public class Tax
+ " AND o.AD_Org_ID=?"
+ " AND il.C_BPartner_Location_ID=?"
+ " AND sl.C_BPartner_Location_ID=?";
- pstmt = DB.prepareStatement(sql, null);
+ pstmt = DB.prepareStatement(sql, trxName);
pstmt.setInt(1, M_Warehouse_ID);
pstmt.setInt(2, M_Product_ID);
pstmt.setInt(3, AD_Org_ID);
@@ -298,7 +367,7 @@ public class Tax
if (found && "Y".equals(IsTaxExempt))
{
if (log.isLoggable(Level.FINE)) log.fine("getProduct - Business Partner is Tax exempt");
- return getExemptTax(ctx, AD_Org_ID);
+ return getExemptTax(ctx, AD_Org_ID, trxName);
}
else if (found)
{
@@ -318,7 +387,7 @@ public class Tax
+ ", shipToC_Location_ID=" + shipToC_Location_ID);
return get(ctx, C_TaxCategory_ID, IsSOTrx,
shipDate, shipFromC_Location_ID, shipToC_Location_ID,
- billDate, billFromC_Location_ID, billToC_Location_ID);
+ billDate, billFromC_Location_ID, billToC_Location_ID, trxName);
}
// ----------------------------------------------------------------
@@ -328,7 +397,7 @@ public class Tax
// M_Product_ID -> C_TaxCategory_ID
variable = "M_Product_ID";
sql = "SELECT C_TaxCategory_ID FROM M_Product WHERE M_Product_ID=?";
- C_TaxCategory_ID = DB.getSQLValueEx(null, sql, M_Product_ID);
+ C_TaxCategory_ID = DB.getSQLValueEx(trxName, sql, M_Product_ID);
found = C_TaxCategory_ID != -1;
if (C_TaxCategory_ID <= 0)
{
@@ -339,7 +408,7 @@ public class Tax
// AD_Org_ID -> billFromC_Location_ID
variable = "AD_Org_ID";
sql = "SELECT C_Location_ID FROM AD_OrgInfo WHERE AD_Org_ID=?";
- billFromC_Location_ID = DB.getSQLValueEx(null, sql, AD_Org_ID);
+ billFromC_Location_ID = DB.getSQLValueEx(trxName, sql, AD_Org_ID);
found = billFromC_Location_ID != -1;
if (billFromC_Location_ID <= 0)
{
@@ -352,7 +421,7 @@ public class Tax
+ " FROM C_BPartner_Location l"
+ " INNER JOIN C_BPartner b ON (l.C_BPartner_ID=b.C_BPartner_ID) "
+ " WHERE C_BPartner_Location_ID=?";
- pstmt = DB.prepareStatement(sql, null);
+ pstmt = DB.prepareStatement(sql, trxName);
pstmt.setInt(1, billC_BPartner_Location_ID);
rs = pstmt.executeQuery();
found = false;
@@ -370,7 +439,7 @@ public class Tax
throw new TaxCriteriaNotFoundException(variable, billC_BPartner_Location_ID);
}
if ("Y".equals(IsTaxExempt))
- return getExemptTax(ctx, AD_Org_ID);
+ return getExemptTax(ctx, AD_Org_ID, trxName);
// Reverse for PO
if (!IsSOTrx)
@@ -389,7 +458,7 @@ public class Tax
// M_Warehouse_ID -> shipFromC_Location_ID
variable = "M_Warehouse_ID";
sql = "SELECT C_Location_ID FROM M_Warehouse WHERE M_Warehouse_ID=?";
- shipFromC_Location_ID = DB.getSQLValueEx(null, sql, M_Warehouse_ID);
+ shipFromC_Location_ID = DB.getSQLValueEx(trxName, sql, M_Warehouse_ID);
found = shipFromC_Location_ID != -1;
if (shipFromC_Location_ID <= 0)
{
@@ -399,7 +468,7 @@ public class Tax
// shipC_BPartner_Location_ID -> shipToC_Location_ID
variable = "C_BPartner_Location_ID";
sql = "SELECT C_Location_ID FROM C_BPartner_Location WHERE C_BPartner_Location_ID=?";
- shipToC_Location_ID = DB.getSQLValueEx(null, sql, shipC_BPartner_Location_ID);
+ shipToC_Location_ID = DB.getSQLValueEx(trxName, sql, shipC_BPartner_Location_ID);
found = shipToC_Location_ID != -1;
if (shipToC_Location_ID <= 0)
{
@@ -428,24 +497,25 @@ public class Tax
return get (ctx, C_TaxCategory_ID, IsSOTrx,
shipDate, shipFromC_Location_ID, shipToC_Location_ID,
- billDate, billFromC_Location_ID, billToC_Location_ID);
+ billDate, billFromC_Location_ID, billToC_Location_ID, trxName);
} // getProduct
/**
* Get Exempt Tax Code
* @param ctx context
* @param AD_Org_ID org to find client
+ * @param trxName Transaction
* @return C_Tax_ID
* @throws TaxNoExemptFoundException if no tax exempt found
*/
- private static int getExemptTax (Properties ctx, int AD_Org_ID)
+ private static int getExemptTax (Properties ctx, int AD_Org_ID, String trxName)
{
final String sql = "SELECT t.C_Tax_ID "
+ "FROM C_Tax t"
+ " INNER JOIN AD_Org o ON (t.AD_Client_ID=o.AD_Client_ID) "
+ "WHERE t.IsTaxExempt='Y' AND o.AD_Org_ID=? "
+ "ORDER BY t.Rate DESC";
- int C_Tax_ID = DB.getSQLValueEx(null, sql, AD_Org_ID);
+ int C_Tax_ID = DB.getSQLValueEx(trxName, sql, AD_Org_ID);
if (log.isLoggable(Level.FINE)) log.fine("getExemptTax - TaxExempt=Y - C_Tax_ID=" + C_Tax_ID);
if (C_Tax_ID <= 0)
{
@@ -469,13 +539,14 @@ public class Tax
* @param billDate invoice date
* @param billFromC_Location_ID invoice from
* @param billToC_Location_ID invoice to
+ * @param trxName Transaction
* @return C_Tax_ID
* @throws TaxNotFoundException if no tax found for given criteria
*/
protected static int get (Properties ctx,
int C_TaxCategory_ID, boolean IsSOTrx,
Timestamp shipDate, int shipFromC_Location_ID, int shipToC_Location_ID,
- Timestamp billDate, int billFromC_Location_ID, int billToC_Location_ID)
+ Timestamp billDate, int billFromC_Location_ID, int billToC_Location_ID, String trxName)
{
// C_TaxCategory contains CommodityCode
@@ -490,8 +561,8 @@ public class Tax
}
MTax[] taxes = MTax.getAll (ctx);
- MLocation lFrom = new MLocation (ctx, billFromC_Location_ID, null);
- MLocation lTo = new MLocation (ctx, billToC_Location_ID, null);
+ MLocation lFrom = new MLocation (ctx, billFromC_Location_ID, trxName);
+ MLocation lTo = new MLocation (ctx, billToC_Location_ID, trxName);
if (log.isLoggable(Level.FINER)){
log.finer("From=" + lFrom);
log.finer("To=" + lTo);
diff --git a/org.adempiere.base/src/org/compiere/util/Login.java b/org.adempiere.base/src/org/compiere/util/Login.java
index 9fe8fd4a40..0eb8185a9d 100644
--- a/org.adempiere.base/src/org/compiere/util/Login.java
+++ b/org.adempiere.base/src/org/compiere/util/Login.java
@@ -1498,7 +1498,12 @@ public class Login
sql.append(" AND r.IsMasterRole='N'");
sql.append(" AND u.IsActive='Y' AND EXISTS (SELECT * FROM AD_Client c WHERE u.AD_Client_ID=c.AD_Client_ID AND c.IsActive='Y')");
// don't show roles without org access
- sql.append(" AND (r.isaccessallorgs='Y' OR EXISTS (SELECT 1 FROM AD_Role_OrgAccess ro WHERE ro.AD_Role_ID=r.AD_Role_ID AND ro.IsActive='Y'))");
+ sql.append(" AND (");
+ sql.append(" (r.isaccessallorgs='Y' OR EXISTS (SELECT 1 FROM AD_Role_OrgAccess ro WHERE ro.AD_Role_ID=r.AD_Role_ID AND ro.IsActive='Y'))");
+ // show roll with isuseuserorgaccess = "Y" when Exist org in AD_User_Orgaccess
+ sql.append(" OR ");
+ sql.append(" (r.isuseuserorgaccess='Y' AND EXISTS (SELECT 1 FROM AD_User_Orgaccess uo WHERE uo.AD_User_ID=u.AD_User_ID AND uo.IsActive='Y')) ");
+ sql.append(")");
sql.append(" ORDER BY r.Name");
PreparedStatement pstmt = null;