hg merge release-2.1 (merge release2.1 into development)
This commit is contained in:
commit
e4c0fdd849
|
@ -0,0 +1,28 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- IDEMPIERE-2540: Allowing Vendor qty break to specify breaks for all customers
|
||||||
|
-- Mar 25, 2015 12:46:56 PM IST
|
||||||
|
UPDATE AD_Column SET IsMandatory='N',Updated=TO_DATE('2015-03-25 12:46:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=56928
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 25, 2015 12:46:59 PM IST
|
||||||
|
ALTER TABLE M_ProductPriceVendorBreak MODIFY C_BPartner_ID NUMBER(10) DEFAULT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 25, 2015 12:47:00 PM IST
|
||||||
|
ALTER TABLE M_ProductPriceVendorBreak MODIFY C_BPartner_ID NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 25, 2015 12:47:00 PM IST
|
||||||
|
ALTER TABLE M_ProductPriceVendorBreak DROP CONSTRAINT cbpartner_mproductpricevendorb
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 25, 2015 12:47:00 PM IST
|
||||||
|
ALTER TABLE M_ProductPriceVendorBreak ADD CONSTRAINT cbpartner_mproductpricevendorb FOREIGN KEY (C_BPartner_ID) REFERENCES c_bpartner(c_bpartner_id) DEFERRABLE INITIALLY DEFERRED
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201503251255_IDEMPIERE-2540.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
-- IDEMPIERE-2540: Allowing Vendor qty break to specify breaks for all customers
|
||||||
|
-- Mar 25, 2015 12:46:56 PM IST
|
||||||
|
UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2015-03-25 12:46:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=56928
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 25, 2015 12:46:59 PM IST
|
||||||
|
INSERT INTO t_alter_column values('m_productpricevendorbreak','C_BPartner_ID','NUMERIC(10)',null,'NULL')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 25, 2015 12:47:00 PM IST
|
||||||
|
INSERT INTO t_alter_column values('m_productpricevendorbreak','C_BPartner_ID',null,'NULL',null)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 25, 2015 12:47:00 PM IST
|
||||||
|
ALTER TABLE M_ProductPriceVendorBreak DROP CONSTRAINT cbpartner_mproductpricevendorb
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 25, 2015 12:47:00 PM IST
|
||||||
|
ALTER TABLE M_ProductPriceVendorBreak ADD CONSTRAINT cbpartner_mproductpricevendorb FOREIGN KEY (C_BPartner_ID) REFERENCES c_bpartner(c_bpartner_id) DEFERRABLE INITIALLY DEFERRED
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201503251255_IDEMPIERE-2540.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
||||||
|
|
|
@ -1101,7 +1101,14 @@ public class CalloutOrder extends CalloutEngine
|
||||||
if (log.isLoggable(Level.FINE)) log.fine("QtyChanged -> PriceActual=" + pp.getPriceStd()
|
if (log.isLoggable(Level.FINE)) log.fine("QtyChanged -> PriceActual=" + pp.getPriceStd()
|
||||||
+ ", PriceEntered=" + PriceEntered + ", Discount=" + pp.getDiscount());
|
+ ", PriceEntered=" + PriceEntered + ", Discount=" + pp.getDiscount());
|
||||||
PriceActual = pp.getPriceStd();
|
PriceActual = pp.getPriceStd();
|
||||||
|
PriceEntered = pp.getPriceStd();
|
||||||
|
Discount = pp.getDiscount();
|
||||||
|
PriceLimit = pp.getPriceLimit();
|
||||||
|
PriceList = pp.getPriceList();
|
||||||
|
mTab.setValue("PriceList", pp.getPriceList());
|
||||||
|
mTab.setValue("PriceLimit", pp.getPriceLimit());
|
||||||
mTab.setValue("PriceActual", pp.getPriceStd());
|
mTab.setValue("PriceActual", pp.getPriceStd());
|
||||||
|
mTab.setValue("PriceEntered", pp.getPriceStd());
|
||||||
mTab.setValue("Discount", pp.getDiscount());
|
mTab.setValue("Discount", pp.getDiscount());
|
||||||
mTab.setValue("PriceEntered", PriceEntered);
|
mTab.setValue("PriceEntered", PriceEntered);
|
||||||
Env.setContext(ctx, WindowNo, "DiscountSchema", pp.isDiscountSchema() ? "Y" : "N");
|
Env.setContext(ctx, WindowNo, "DiscountSchema", pp.isDiscountSchema() ? "Y" : "N");
|
||||||
|
|
|
@ -21,6 +21,7 @@ import java.util.logging.Level;
|
||||||
import org.compiere.model.MField;
|
import org.compiere.model.MField;
|
||||||
import org.compiere.model.MTab;
|
import org.compiere.model.MTab;
|
||||||
import org.compiere.util.AdempiereUserError;
|
import org.compiere.util.AdempiereUserError;
|
||||||
|
import org.compiere.util.DB;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -62,6 +63,40 @@ public class TabCopy extends SvrProcess
|
||||||
*/
|
*/
|
||||||
protected String doIt() throws Exception
|
protected String doIt() throws Exception
|
||||||
{
|
{
|
||||||
|
final String sqluptrltab = ""
|
||||||
|
+ "UPDATE ad_tab_trl "
|
||||||
|
+ "SET name = (SELECT name "
|
||||||
|
+ " FROM ad_tab_trl t2 "
|
||||||
|
+ " WHERE t2.ad_tab_id = ? AND t2.ad_language = ad_tab_trl.ad_language), "
|
||||||
|
+ " description = (SELECT description "
|
||||||
|
+ " FROM ad_tab_trl t2 "
|
||||||
|
+ " WHERE t2.ad_tab_id = ? AND t2.ad_language = ad_tab_trl.ad_language), "
|
||||||
|
+ " help = (SELECT help "
|
||||||
|
+ " FROM ad_tab_trl t2 "
|
||||||
|
+ " WHERE t2.ad_tab_id = ? AND t2.ad_language = ad_tab_trl.ad_language), "
|
||||||
|
+ " commitwarning = (SELECT commitwarning "
|
||||||
|
+ " FROM ad_tab_trl t2 "
|
||||||
|
+ " WHERE t2.ad_tab_id = ? AND t2.ad_language = ad_tab_trl.ad_language), "
|
||||||
|
+ " istranslated = (SELECT istranslated "
|
||||||
|
+ " FROM ad_tab_trl t2 "
|
||||||
|
+ " WHERE t2.ad_tab_id = ? AND t2.ad_language = ad_tab_trl.ad_language) "
|
||||||
|
+ "WHERE ad_tab_id = ?";
|
||||||
|
final String sqluptrlfld = ""
|
||||||
|
+ "UPDATE ad_field_trl "
|
||||||
|
+ "SET name = (SELECT name "
|
||||||
|
+ " FROM ad_field_trl t2 "
|
||||||
|
+ " WHERE t2.ad_field_id = ? AND t2.ad_language = ad_field_trl.ad_language), "
|
||||||
|
+ " description = (SELECT description "
|
||||||
|
+ " FROM ad_field_trl t2 "
|
||||||
|
+ " WHERE t2.ad_field_id = ? AND t2.ad_language = ad_field_trl.ad_language), "
|
||||||
|
+ " help = (SELECT help "
|
||||||
|
+ " FROM ad_field_trl t2 "
|
||||||
|
+ " WHERE t2.ad_field_id = ? AND t2.ad_language = ad_field_trl.ad_language), "
|
||||||
|
+ " istranslated = (SELECT istranslated "
|
||||||
|
+ " FROM ad_field_trl t2 "
|
||||||
|
+ " WHERE t2.ad_field_id = ? AND t2.ad_language = ad_field_trl.ad_language) "
|
||||||
|
+ "WHERE ad_field_id = ?";
|
||||||
|
|
||||||
if (log.isLoggable(Level.INFO)) log.info("To AD_Tab_ID=" + p_AD_TabTo_ID + ", From=" + p_AD_TabFrom_ID);
|
if (log.isLoggable(Level.INFO)) log.info("To AD_Tab_ID=" + p_AD_TabTo_ID + ", From=" + p_AD_TabFrom_ID);
|
||||||
MTab from = new MTab (getCtx(), p_AD_TabFrom_ID, get_TrxName());
|
MTab from = new MTab (getCtx(), p_AD_TabFrom_ID, get_TrxName());
|
||||||
if (from.get_ID() == 0)
|
if (from.get_ID() == 0)
|
||||||
|
@ -71,6 +106,7 @@ public class TabCopy extends SvrProcess
|
||||||
throw new AdempiereUserError("@NotFound@ (to<-) @AD_Tab_ID@");
|
throw new AdempiereUserError("@NotFound@ (to<-) @AD_Tab_ID@");
|
||||||
if (from.getAD_Table_ID() != to.getAD_Table_ID())
|
if (from.getAD_Table_ID() != to.getAD_Table_ID())
|
||||||
throw new AdempiereUserError("@Error@ @AD_Table_ID@");
|
throw new AdempiereUserError("@Error@ @AD_Table_ID@");
|
||||||
|
DB.executeUpdateEx(sqluptrltab, new Object[]{from.get_ID(),from.get_ID(),from.get_ID(),from.get_ID(),from.get_ID(),to.get_ID()}, get_TrxName());
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
for (MField oldField : from.getFields(false, get_TrxName()))
|
for (MField oldField : from.getFields(false, get_TrxName()))
|
||||||
|
@ -78,10 +114,12 @@ public class TabCopy extends SvrProcess
|
||||||
MField newField = new MField (to, oldField);
|
MField newField = new MField (to, oldField);
|
||||||
if (! oldField.isActive())
|
if (! oldField.isActive())
|
||||||
newField.setIsActive(false);
|
newField.setIsActive(false);
|
||||||
if (newField.save())
|
if (newField.save()) {
|
||||||
|
DB.executeUpdateEx(sqluptrlfld, new Object[]{oldField.get_ID(),oldField.get_ID(),oldField.get_ID(),oldField.get_ID(),newField.get_ID()}, get_TrxName());
|
||||||
count++;
|
count++;
|
||||||
else
|
} else {
|
||||||
throw new AdempiereUserError("@Error@ @AD_Field_ID@");
|
throw new AdempiereUserError("@Error@ @AD_Field_ID@");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
StringBuilder msgreturn = new StringBuilder("@Copied@ #").append(count);
|
StringBuilder msgreturn = new StringBuilder("@Copied@ #").append(count);
|
||||||
return msgreturn.toString();
|
return msgreturn.toString();
|
||||||
|
|
|
@ -22,6 +22,7 @@ import org.compiere.model.MField;
|
||||||
import org.compiere.model.MTab;
|
import org.compiere.model.MTab;
|
||||||
import org.compiere.model.MWindow;
|
import org.compiere.model.MWindow;
|
||||||
import org.compiere.util.AdempiereUserError;
|
import org.compiere.util.AdempiereUserError;
|
||||||
|
import org.compiere.util.DB;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -63,6 +64,55 @@ public class WindowCopy extends SvrProcess
|
||||||
*/
|
*/
|
||||||
protected String doIt() throws Exception
|
protected String doIt() throws Exception
|
||||||
{
|
{
|
||||||
|
final String sqluptrlwin = ""
|
||||||
|
+ "UPDATE ad_window_trl "
|
||||||
|
+ "SET name = (SELECT name "
|
||||||
|
+ " FROM ad_window_trl t2 "
|
||||||
|
+ " WHERE t2.ad_window_id = ? AND t2.ad_language = ad_window_trl.ad_language), "
|
||||||
|
+ " description = (SELECT description "
|
||||||
|
+ " FROM ad_window_trl t2 "
|
||||||
|
+ " WHERE t2.ad_window_id = ? AND t2.ad_language = ad_window_trl.ad_language), "
|
||||||
|
+ " help = (SELECT help "
|
||||||
|
+ " FROM ad_window_trl t2 "
|
||||||
|
+ " WHERE t2.ad_window_id = ? AND t2.ad_language = ad_window_trl.ad_language), "
|
||||||
|
+ " istranslated = (SELECT istranslated "
|
||||||
|
+ " FROM ad_window_trl t2 "
|
||||||
|
+ " WHERE t2.ad_window_id = ? AND t2.ad_language = ad_window_trl.ad_language) "
|
||||||
|
+ "WHERE ad_window_id = ?";
|
||||||
|
final String sqluptrltab = ""
|
||||||
|
+ "UPDATE ad_tab_trl "
|
||||||
|
+ "SET name = (SELECT name "
|
||||||
|
+ " FROM ad_tab_trl t2 "
|
||||||
|
+ " WHERE t2.ad_tab_id = ? AND t2.ad_language = ad_tab_trl.ad_language), "
|
||||||
|
+ " description = (SELECT description "
|
||||||
|
+ " FROM ad_tab_trl t2 "
|
||||||
|
+ " WHERE t2.ad_tab_id = ? AND t2.ad_language = ad_tab_trl.ad_language), "
|
||||||
|
+ " help = (SELECT help "
|
||||||
|
+ " FROM ad_tab_trl t2 "
|
||||||
|
+ " WHERE t2.ad_tab_id = ? AND t2.ad_language = ad_tab_trl.ad_language), "
|
||||||
|
+ " commitwarning = (SELECT commitwarning "
|
||||||
|
+ " FROM ad_tab_trl t2 "
|
||||||
|
+ " WHERE t2.ad_tab_id = ? AND t2.ad_language = ad_tab_trl.ad_language), "
|
||||||
|
+ " istranslated = (SELECT istranslated "
|
||||||
|
+ " FROM ad_tab_trl t2 "
|
||||||
|
+ " WHERE t2.ad_tab_id = ? AND t2.ad_language = ad_tab_trl.ad_language) "
|
||||||
|
+ "WHERE ad_tab_id = ?";
|
||||||
|
final String sqluptrlfld = ""
|
||||||
|
+ "UPDATE ad_field_trl "
|
||||||
|
+ "SET name = (SELECT name "
|
||||||
|
+ " FROM ad_field_trl t2 "
|
||||||
|
+ " WHERE t2.ad_field_id = ? AND t2.ad_language = ad_field_trl.ad_language), "
|
||||||
|
+ " description = (SELECT description "
|
||||||
|
+ " FROM ad_field_trl t2 "
|
||||||
|
+ " WHERE t2.ad_field_id = ? AND t2.ad_language = ad_field_trl.ad_language), "
|
||||||
|
+ " help = (SELECT help "
|
||||||
|
+ " FROM ad_field_trl t2 "
|
||||||
|
+ " WHERE t2.ad_field_id = ? AND t2.ad_language = ad_field_trl.ad_language), "
|
||||||
|
+ " istranslated = (SELECT istranslated "
|
||||||
|
+ " FROM ad_field_trl t2 "
|
||||||
|
+ " WHERE t2.ad_field_id = ? AND t2.ad_language = ad_field_trl.ad_language) "
|
||||||
|
+ "WHERE ad_field_id = ?";
|
||||||
|
|
||||||
if (log.isLoggable(Level.INFO)) log.info("doIt - To AD_Window_ID=" + p_AD_WindowTo_ID + ", From=" + p_AD_WindowFrom_ID);
|
if (log.isLoggable(Level.INFO)) log.info("doIt - To AD_Window_ID=" + p_AD_WindowTo_ID + ", From=" + p_AD_WindowFrom_ID);
|
||||||
MWindow from = new MWindow (getCtx(), p_AD_WindowFrom_ID, get_TrxName());
|
MWindow from = new MWindow (getCtx(), p_AD_WindowFrom_ID, get_TrxName());
|
||||||
if (from.get_ID() == 0)
|
if (from.get_ID() == 0)
|
||||||
|
@ -70,6 +120,7 @@ public class WindowCopy extends SvrProcess
|
||||||
MWindow to = new MWindow (getCtx(), p_AD_WindowTo_ID, get_TrxName());
|
MWindow to = new MWindow (getCtx(), p_AD_WindowTo_ID, get_TrxName());
|
||||||
if (to.get_ID() == 0)
|
if (to.get_ID() == 0)
|
||||||
throw new AdempiereUserError("@NotFound@ (to<-) @AD_Window_ID@");
|
throw new AdempiereUserError("@NotFound@ (to<-) @AD_Window_ID@");
|
||||||
|
DB.executeUpdateEx(sqluptrlwin, new Object[]{from.get_ID(),from.get_ID(),from.get_ID(),from.get_ID(),to.get_ID()}, get_TrxName());
|
||||||
|
|
||||||
int tabCount = 0;
|
int tabCount = 0;
|
||||||
int fieldCount = 0;
|
int fieldCount = 0;
|
||||||
|
@ -80,6 +131,7 @@ public class WindowCopy extends SvrProcess
|
||||||
MTab newTab = new MTab (to, oldTab);
|
MTab newTab = new MTab (to, oldTab);
|
||||||
if (newTab.save())
|
if (newTab.save())
|
||||||
{
|
{
|
||||||
|
DB.executeUpdateEx(sqluptrltab, new Object[]{oldTab.get_ID(),oldTab.get_ID(),oldTab.get_ID(),oldTab.get_ID(),oldTab.get_ID(),newTab.get_ID()}, get_TrxName());
|
||||||
tabCount++;
|
tabCount++;
|
||||||
// Copy Fields
|
// Copy Fields
|
||||||
for (MField oldField : oldTab.getFields(false, get_TrxName()))
|
for (MField oldField : oldTab.getFields(false, get_TrxName()))
|
||||||
|
@ -87,10 +139,12 @@ public class WindowCopy extends SvrProcess
|
||||||
MField newField = new MField (newTab, oldField);
|
MField newField = new MField (newTab, oldField);
|
||||||
if (! oldField.isActive())
|
if (! oldField.isActive())
|
||||||
newField.setIsActive(false);
|
newField.setIsActive(false);
|
||||||
if (newField.save())
|
if (newField.save()) {
|
||||||
|
DB.executeUpdateEx(sqluptrlfld, new Object[]{oldField.get_ID(),oldField.get_ID(),oldField.get_ID(),oldField.get_ID(),newField.get_ID()}, get_TrxName());
|
||||||
fieldCount++;
|
fieldCount++;
|
||||||
else
|
} else {
|
||||||
throw new AdempiereUserError("@Error@ @AD_Field_ID@");
|
throw new AdempiereUserError("@Error@ @AD_Field_ID@");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -528,6 +528,10 @@ public abstract class Doc
|
||||||
// post
|
// post
|
||||||
p_Status = postLogic ();
|
p_Status = postLogic ();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
p_Status = STATUS_Posted; // skipped is OK
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class MClient extends X_AD_Client
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -4479164806149932775L;
|
private static final long serialVersionUID = -4420908648355523008L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get client
|
* Get client
|
||||||
|
@ -82,7 +82,19 @@ public class MClient extends X_AD_Client
|
||||||
*/
|
*/
|
||||||
public static MClient[] getAll (Properties ctx)
|
public static MClient[] getAll (Properties ctx)
|
||||||
{
|
{
|
||||||
|
return getAll(ctx, "");
|
||||||
|
} // getAll
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all clients
|
||||||
|
* @param ctx context
|
||||||
|
* @param order by clause
|
||||||
|
* @return clients
|
||||||
|
*/
|
||||||
|
public static MClient[] getAll (Properties ctx, String orderBy)
|
||||||
|
{
|
||||||
List<MClient> list = new Query(ctx,I_AD_Client.Table_Name,null,null)
|
List<MClient> list = new Query(ctx,I_AD_Client.Table_Name,null,null)
|
||||||
|
.setOrderBy(orderBy)
|
||||||
.list();
|
.list();
|
||||||
for(MClient client:list ){
|
for(MClient client:list ){
|
||||||
s_cache.put (new Integer (client.getAD_Client_ID()), client);
|
s_cache.put (new Integer (client.getAD_Client_ID()), client);
|
||||||
|
|
|
@ -52,7 +52,7 @@ public class MProductPricing
|
||||||
m_Qty = Qty;
|
m_Qty = Qty;
|
||||||
m_isSOTrx = isSOTrx;
|
m_isSOTrx = isSOTrx;
|
||||||
int thereAreVendorBreakRecords = DB.getSQLValue(null,
|
int thereAreVendorBreakRecords = DB.getSQLValue(null,
|
||||||
"SELECT count(M_Product_ID) FROM M_ProductPriceVendorBreak WHERE M_Product_ID=? AND C_BPartner_ID=?",
|
"SELECT count(M_Product_ID) FROM M_ProductPriceVendorBreak WHERE M_Product_ID=? AND (C_BPartner_ID=? OR C_BPartner_ID is NULL)",
|
||||||
m_M_Product_ID, m_C_BPartner_ID);
|
m_M_Product_ID, m_C_BPartner_ID);
|
||||||
m_useVendorBreak = thereAreVendorBreakRecords > 0;
|
m_useVendorBreak = thereAreVendorBreakRecords > 0;
|
||||||
} // MProductPricing
|
} // MProductPricing
|
||||||
|
@ -440,9 +440,9 @@ public class MProductPricing
|
||||||
+ " AND pp.IsActive='Y'"
|
+ " AND pp.IsActive='Y'"
|
||||||
+ " AND p.M_Product_ID=?" // #1
|
+ " AND p.M_Product_ID=?" // #1
|
||||||
+ " AND pv.M_PriceList_Version_ID=?" // #2
|
+ " AND pv.M_PriceList_Version_ID=?" // #2
|
||||||
+ " AND pp.C_BPartner_ID=?" // #3
|
+ " AND (pp.C_BPartner_ID=? OR pp.C_BPartner_ID is NULL)" // #3
|
||||||
+ " AND ?>=pp.BreakValue" // #4
|
+ " AND ?>=pp.BreakValue" // #4
|
||||||
+ " ORDER BY BreakValue DESC";
|
+ " ORDER BY pp.C_BPartner_ID, BreakValue DESC";
|
||||||
m_calculated = false;
|
m_calculated = false;
|
||||||
PreparedStatement pstmt = null;
|
PreparedStatement pstmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
|
@ -561,9 +561,9 @@ public class MProductPricing
|
||||||
+ " AND pp.IsActive='Y'"
|
+ " AND pp.IsActive='Y'"
|
||||||
+ " AND p.M_Product_ID=?" // #1
|
+ " AND p.M_Product_ID=?" // #1
|
||||||
+ " AND pv.M_PriceList_ID=?" // #2
|
+ " AND pv.M_PriceList_ID=?" // #2
|
||||||
+ " AND pp.C_BPartner_ID=?" // #3
|
+ " AND (pp.C_BPartner_ID=? OR pp.C_BPartner_ID is NULL)" // #3
|
||||||
+ " AND ?>=pp.BreakValue" // #4
|
+ " AND ?>=pp.BreakValue" // #4
|
||||||
+ " ORDER BY pv.ValidFrom DESC, BreakValue DESC";
|
+ " ORDER BY pp.C_BPartner_ID, pv.ValidFrom DESC, BreakValue DESC";
|
||||||
m_calculated = false;
|
m_calculated = false;
|
||||||
if (m_PriceDate == null)
|
if (m_PriceDate == null)
|
||||||
m_PriceDate = new Timestamp (System.currentTimeMillis());
|
m_PriceDate = new Timestamp (System.currentTimeMillis());
|
||||||
|
@ -646,9 +646,9 @@ public class MProductPricing
|
||||||
+ " AND pp.IsActive='Y'"
|
+ " AND pp.IsActive='Y'"
|
||||||
+ " AND p.M_Product_ID=?" // #1
|
+ " AND p.M_Product_ID=?" // #1
|
||||||
+ " AND pl.M_PriceList_ID=?" // #2
|
+ " AND pl.M_PriceList_ID=?" // #2
|
||||||
+ " AND pp.C_BPartner_ID=?" // #3
|
+ " AND (pp.C_BPartner_ID=? OR pp.C_BPartner_ID is NULL)" // #3
|
||||||
+ " AND ?>=pp.BreakValue" // #4
|
+ " AND ?>=pp.BreakValue" // #4
|
||||||
+ " ORDER BY pv.ValidFrom DESC, BreakValue DESC";
|
+ " ORDER BY pp.C_BPartner_ID, pv.ValidFrom DESC, BreakValue DESC";
|
||||||
m_calculated = false;
|
m_calculated = false;
|
||||||
if (m_PriceDate == null)
|
if (m_PriceDate == null)
|
||||||
m_PriceDate = new Timestamp (System.currentTimeMillis());
|
m_PriceDate = new Timestamp (System.currentTimeMillis());
|
||||||
|
|
|
@ -684,7 +684,7 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
||||||
Record_ID = -1;
|
Record_ID = -1;
|
||||||
}
|
}
|
||||||
Boolean canAccess = null;
|
Boolean canAccess = null;
|
||||||
if (Record_ID >= 0) {
|
if (Record_ID >= 0 && mTable != null) {
|
||||||
int AD_Window_ID = Env.getZoomWindowID(mTable.get_ID(), Record_ID);
|
int AD_Window_ID = Env.getZoomWindowID(mTable.get_ID(), Record_ID);
|
||||||
canAccess = MRole.getDefault().getWindowAccess(AD_Window_ID);
|
canAccess = MRole.getDefault().getWindowAccess(AD_Window_ID);
|
||||||
}
|
}
|
||||||
|
|
|
@ -771,7 +771,9 @@ public class Login
|
||||||
|
|
||||||
// IDEMPIERE-1717 Maintenance mode
|
// IDEMPIERE-1717 Maintenance mode
|
||||||
if (! MRole.get(m_ctx, AD_Role_ID).isAccessAdvanced()) {
|
if (! MRole.get(m_ctx, AD_Role_ID).isAccessAdvanced()) {
|
||||||
if (MSysConfig.getBooleanValue(MSysConfig.SYSTEM_IN_MAINTENANCE_MODE, false, AD_Client_ID))
|
if (MSysConfig.getBooleanValue(MSysConfig.SYSTEM_IN_MAINTENANCE_MODE, false, 0))
|
||||||
|
return Msg.getMsg(m_ctx, "SystemInMaintenance");
|
||||||
|
if (AD_Client_ID != 0 && MSysConfig.getBooleanValue(MSysConfig.SYSTEM_IN_MAINTENANCE_MODE, false, AD_Client_ID))
|
||||||
return Msg.getMsg(m_ctx, "SystemInMaintenance");
|
return Msg.getMsg(m_ctx, "SystemInMaintenance");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -866,7 +866,7 @@ public class TimeUtil
|
||||||
calEnd.set(Calendar.MILLISECOND, 0);
|
calEnd.set(Calendar.MILLISECOND, 0);
|
||||||
|
|
||||||
while (cal.before(calEnd) || cal.equals(calEnd)) {
|
while (cal.before(calEnd) || cal.equals(calEnd)) {
|
||||||
if (!nbd.contains(new Timestamp(cal.getTimeInMillis()))) {
|
if (nbd == null || !nbd.contains(new Timestamp(cal.getTimeInMillis()))) {
|
||||||
if (cal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && cal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
|
if (cal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && cal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
|
||||||
retValue++;
|
retValue++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,6 +65,7 @@ import org.compiere.model.AdempiereProcessorLog;
|
||||||
import org.compiere.model.MClient;
|
import org.compiere.model.MClient;
|
||||||
import org.compiere.model.MSession;
|
import org.compiere.model.MSession;
|
||||||
import org.compiere.model.MStore;
|
import org.compiere.model.MStore;
|
||||||
|
import org.compiere.model.MSysConfig;
|
||||||
import org.compiere.model.MSystem;
|
import org.compiere.model.MSystem;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
import org.compiere.server.AdempiereServerGroup;
|
import org.compiere.server.AdempiereServerGroup;
|
||||||
|
@ -95,7 +96,8 @@ public class AdempiereMonitor extends HttpServlet
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -387582087015910664L;
|
private static final long serialVersionUID = -7455613826465213838L;
|
||||||
|
|
||||||
/** Logger */
|
/** Logger */
|
||||||
private static CLogger log = CLogger.getCLogger(AdempiereMonitor.class);
|
private static CLogger log = CLogger.getCLogger(AdempiereMonitor.class);
|
||||||
/** The Server */
|
/** The Server */
|
||||||
|
@ -1005,7 +1007,7 @@ public class AdempiereMonitor extends HttpServlet
|
||||||
table.setCellPadding(2);
|
table.setCellPadding(2);
|
||||||
//
|
//
|
||||||
line = new tr();
|
line = new tr();
|
||||||
MClient[] clients = MClient.getAll(ctx);
|
MClient[] clients = MClient.getAll(ctx, "AD_Client_ID");
|
||||||
line.addElement(new th().addElement("Client #" + clients.length + " - EMail Test:"));
|
line.addElement(new th().addElement("Client #" + clients.length + " - EMail Test:"));
|
||||||
p = new p();
|
p = new p();
|
||||||
for (int i = 0; i < clients.length; i++)
|
for (int i = 0; i < clients.length; i++)
|
||||||
|
@ -1044,6 +1046,8 @@ public class AdempiereMonitor extends HttpServlet
|
||||||
p = new p();
|
p = new p();
|
||||||
for (int i = 0; i < clients.length; i++) {
|
for (int i = 0; i < clients.length; i++) {
|
||||||
MClient client = clients[i];
|
MClient client = clients[i];
|
||||||
|
if (!client.isActive())
|
||||||
|
continue;
|
||||||
if (i > 0)
|
if (i > 0)
|
||||||
p.addElement(" - ");
|
p.addElement(" - ");
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
@ -1059,20 +1063,34 @@ public class AdempiereMonitor extends HttpServlet
|
||||||
table.addElement(line);
|
table.addElement(line);
|
||||||
//
|
//
|
||||||
line = new tr();
|
line = new tr();
|
||||||
int inMaintenanceClients[] = DB.getIDsEx(null, "SELECT AD_Client_ID FROM AD_SysConfig WHERE Name = 'SYSTEM_IN_MAINTENANCE_MODE' AND Value = 'Y'");
|
|
||||||
line.addElement(new th().addElement("Maintenance Mode #"+inMaintenanceClients.length));
|
boolean isSystemInMaintenance = MSysConfig.getBooleanValue(MSysConfig.SYSTEM_IN_MAINTENANCE_MODE, false, 0);
|
||||||
|
List<Integer> inMaintenanceClients = new ArrayList<Integer>();
|
||||||
|
if (isSystemInMaintenance)
|
||||||
|
line.addElement(new th().addElement("Maintenance Mode"));
|
||||||
|
else {
|
||||||
|
int possiblyInMaintenanceClients[] = DB.getIDsEx(null, "SELECT AD_Client_ID FROM AD_SysConfig WHERE AD_Client_ID!=0 AND IsActive='Y' AND Name=?", MSysConfig.SYSTEM_IN_MAINTENANCE_MODE);
|
||||||
|
for (int clientId : possiblyInMaintenanceClients) {
|
||||||
|
boolean isTenantInMaintenance = MSysConfig.getBooleanValue(MSysConfig.SYSTEM_IN_MAINTENANCE_MODE, false, clientId);
|
||||||
|
if (isTenantInMaintenance)
|
||||||
|
inMaintenanceClients.add(clientId);
|
||||||
|
}
|
||||||
|
line.addElement(new th().addElement("Maintenance Mode #"+inMaintenanceClients.size()));
|
||||||
|
}
|
||||||
|
|
||||||
p = new p();
|
p = new p();
|
||||||
if (inMaintenanceClients.length > 0) {
|
if (isSystemInMaintenance)
|
||||||
for (int i = 0; i < clients.length; i++) {
|
p.addElement("All clients are in maintenance mode");
|
||||||
MClient client = clients[i];
|
else if (inMaintenanceClients.size() > 0) {
|
||||||
if (i > 0)
|
boolean first = true;
|
||||||
|
for (int clientID : inMaintenanceClients) {
|
||||||
|
MClient client = MClient.get(ctx, clientID);
|
||||||
|
if (!client.isActive())
|
||||||
|
continue;
|
||||||
|
if (!first)
|
||||||
p.addElement(" - ");
|
p.addElement(" - ");
|
||||||
for (int clientID : inMaintenanceClients) {
|
p.addElement(client.getName());
|
||||||
if (client.getAD_Client_ID() == clientID)
|
first = false;
|
||||||
p.addElement(client.getName() + " : Yes");
|
|
||||||
else
|
|
||||||
p.addElement(client.getName() + " : No");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue