From 863fdf174a87d3da11390d09285300593cb94966 Mon Sep 17 00:00:00 2001 From: vpj-cd Date: Wed, 9 Jan 2008 05:30:47 +0000 Subject: [PATCH] Fixed [ 1867464 ] Incorrect Partner Location when create manual shipment http://sourceforge.net/tracker/index.php?func=detail&aid=1867464&group_id=176962&atid=879332 --- base/src/org/compiere/model/CalloutInOut.java | 104 ++++++++++-------- 1 file changed, 58 insertions(+), 46 deletions(-) diff --git a/base/src/org/compiere/model/CalloutInOut.java b/base/src/org/compiere/model/CalloutInOut.java index 792acd0638..713ff8a3c4 100644 --- a/base/src/org/compiere/model/CalloutInOut.java +++ b/base/src/org/compiere/model/CalloutInOut.java @@ -71,6 +71,8 @@ public class CalloutInOut extends CalloutEngine mTab.setValue("FreightAmt", order.getFreightAmt()); mTab.setValue("C_BPartner_ID", new Integer(order.getC_BPartner_ID())); + mTab.setValue("C_BPartner_Location_ID", new Integer(order.getC_BPartner_Location_ID())); + mTab.setValue("AD_User_ID", new Integer(order.getAD_User_ID())); } return ""; } // order @@ -163,57 +165,67 @@ public class CalloutInOut extends CalloutEngine Integer C_BPartner_ID = (Integer)value; if (C_BPartner_ID == null || C_BPartner_ID.intValue() == 0) return ""; - - String sql = "SELECT p.AD_Language,p.C_PaymentTerm_ID," - + "p.M_PriceList_ID,p.PaymentRule,p.POReference," - + "p.SO_Description,p.IsDiscountPrinted," - + "p.SO_CreditLimit-p.SO_CreditUsed AS CreditAvailable," - + "l.C_BPartner_Location_ID,c.AD_User_ID " - + "FROM C_BPartner p, C_BPartner_Location l, AD_User c " - + "WHERE p.C_BPartner_ID=l.C_BPartner_ID(+)" - + " AND p.C_BPartner_ID=c.C_BPartner_ID(+)" - + " AND p.C_BPartner_ID=?"; // 1 - - try - { - PreparedStatement pstmt = DB.prepareStatement(sql, null); - pstmt.setInt(1, C_BPartner_ID.intValue()); - ResultSet rs = pstmt.executeQuery(); - BigDecimal bd; - if (rs.next()) + + boolean IsSOTrx = "Y".equals(Env.getContext(ctx, WindowNo, "IsSOTrx")); + if (!IsSOTrx) + { + //When Is Receipt + String sql = "SELECT p.AD_Language,p.C_PaymentTerm_ID," + + "p.M_PriceList_ID,p.PaymentRule,p.POReference," + + "p.SO_Description,p.IsDiscountPrinted," + + "p.SO_CreditLimit-p.SO_CreditUsed AS CreditAvailable," + + "l.C_BPartner_Location_ID,c.AD_User_ID " + + "FROM C_BPartner p, C_BPartner_Location l, AD_User c " + + "WHERE l.IsActive='Y' AND p.C_BPartner_ID=l.C_BPartner_ID(+)" + + " AND p.C_BPartner_ID=c.C_BPartner_ID(+)" + + " AND p.C_BPartner_ID=?"; // 1 + + try { - // Location - Integer ii = new Integer(rs.getInt("C_BPartner_Location_ID")); - if (rs.wasNull()) - mTab.setValue("C_BPartner_Location_ID", null); - else - mTab.setValue("C_BPartner_Location_ID", ii); - // Contact - ii = new Integer(rs.getInt("AD_User_ID")); - if (rs.wasNull()) - mTab.setValue("AD_User_ID", null); - else - mTab.setValue("AD_User_ID", ii); - - //Bugs item #1679818: checking for SOTrx only - boolean IsSOTrx = Env.getContext(ctx, WindowNo, "IsSOTrx").equals("Y"); - if (IsSOTrx) + PreparedStatement pstmt = DB.prepareStatement(sql, null); + pstmt.setInt(1, C_BPartner_ID.intValue()); + ResultSet rs = pstmt.executeQuery(); + BigDecimal bd; + if (rs.next()) { - // CreditAvailable - double CreditAvailable = rs.getDouble("CreditAvailable"); - if (!rs.wasNull() && CreditAvailable < 0) - mTab.fireDataStatusEEvent("CreditLimitOver", - DisplayType.getNumberFormat(DisplayType.Amount).format(CreditAvailable), - false); - }// + // Location + Integer ii = new Integer(rs.getInt("C_BPartner_Location_ID")); + if (rs.wasNull()) + mTab.setValue("C_BPartner_Location_ID", null); + else + mTab.setValue("C_BPartner_Location_ID", ii); + // Contact + ii = new Integer(rs.getInt("AD_User_ID")); + if (rs.wasNull()) + mTab.setValue("AD_User_ID", null); + else + mTab.setValue("AD_User_ID", ii); + + //Bugs item #1679818: checking for SOTrx only + //boolean IsSOTrx = Env.getContext(ctx, WindowNo, "IsSOTrx").equals("Y"); + + if (IsSOTrx) + { + // CreditAvailable + double CreditAvailable = rs.getDouble("CreditAvailable"); + if (!rs.wasNull() && CreditAvailable < 0) + mTab.fireDataStatusEEvent("CreditLimitOver", + DisplayType.getNumberFormat(DisplayType.Amount).format(CreditAvailable), + false); + }// + } + rs.close(); + pstmt.close(); + } + catch (SQLException e) + { + log.log(Level.SEVERE, sql, e); + return e.getLocalizedMessage(); } - rs.close(); - pstmt.close(); } - catch (SQLException e) + else { - log.log(Level.SEVERE, sql, e); - return e.getLocalizedMessage(); + } return "";