BF [ 2784194 ] Check Warehouse-Locator conflict
https://sourceforge.net/tracker/?func=detail&aid=2784194&group_id=176962&atid=879332
This commit is contained in:
parent
db9e81c387
commit
ef72cfb284
|
@ -0,0 +1,43 @@
|
|||
/******************************************************************************
|
||||
* Product: Adempiere ERP & CRM Smart Business Solution *
|
||||
* Copyright (C) 2009 SC ARHIPAC SERVICE SRL. All Rights Reserved. *
|
||||
* This program is free software; you can redistribute it and/or modify it *
|
||||
* under the terms version 2 of the GNU General Public License as published *
|
||||
* by the Free Software Foundation. This program is distributed in the hope *
|
||||
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU General Public License for more details. *
|
||||
* You should have received a copy of the GNU General Public License along *
|
||||
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||
*****************************************************************************/
|
||||
package org.adempiere.exceptions;
|
||||
|
||||
import org.compiere.model.I_M_Locator;
|
||||
import org.compiere.model.I_M_Warehouse;
|
||||
|
||||
/**
|
||||
* Throwed when a document warehouse does not match with document or document line locator.
|
||||
* @author Teo Sarca, www.arhipac.ro
|
||||
*/
|
||||
public class WarehouseLocatorConflictException extends AdempiereException
|
||||
{
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 4812283712626432829L;
|
||||
|
||||
/**
|
||||
* @param wh warehouse
|
||||
* @param locator locator
|
||||
* @param lineNo Document Line#
|
||||
*/
|
||||
public WarehouseLocatorConflictException(I_M_Warehouse wh, I_M_Locator locator, int lineNo)
|
||||
{
|
||||
super ("@WarehouseLocatorConflict@"
|
||||
+" @M_Warehouse_ID@: "+(wh != null ? wh.getName() : "?")
|
||||
+" @M_Locator_ID@: "+(locator != null ? locator.getValue() : "?")
|
||||
+" @Line@: "+lineNo
|
||||
);
|
||||
}
|
||||
}
|
|
@ -22,6 +22,7 @@ import java.util.List;
|
|||
import java.util.Properties;
|
||||
|
||||
import org.adempiere.exceptions.FillMandatoryException;
|
||||
import org.adempiere.exceptions.WarehouseLocatorConflictException;
|
||||
import org.compiere.util.DB;
|
||||
import org.compiere.util.Env;
|
||||
import org.compiere.util.Msg;
|
||||
|
@ -32,6 +33,10 @@ import org.compiere.util.Util;
|
|||
*
|
||||
* @author Jorg Janke
|
||||
* @version $Id: MInOutLine.java,v 1.5 2006/07/30 00:51:03 jjanke Exp $
|
||||
*
|
||||
* @author Teo Sarca, www.arhipac.ro
|
||||
* <li>BF [ 2784194 ] Check Warehouse-Locator conflict
|
||||
* https://sourceforge.net/tracker/?func=detail&aid=2784194&group_id=176962&atid=879332
|
||||
*/
|
||||
public class MInOutLine extends X_M_InOutLine
|
||||
{
|
||||
|
@ -254,12 +259,13 @@ public class MInOutLine extends X_M_InOutLine
|
|||
* Set M_Locator_ID
|
||||
* @param M_Locator_ID id
|
||||
*/
|
||||
@Override
|
||||
public void setM_Locator_ID (int M_Locator_ID)
|
||||
{
|
||||
if (M_Locator_ID < 0)
|
||||
throw new IllegalArgumentException ("M_Locator_ID is mandatory.");
|
||||
// set to 0 explicitly to reset
|
||||
set_Value ("M_Locator_ID", new Integer(M_Locator_ID));
|
||||
set_Value (COLUMNNAME_M_Locator_ID, new Integer(M_Locator_ID));
|
||||
} // setM_Locator_ID
|
||||
|
||||
/**
|
||||
|
@ -275,7 +281,7 @@ public class MInOutLine extends X_M_InOutLine
|
|||
// No Product
|
||||
if (getM_Product_ID() == 0)
|
||||
{
|
||||
set_ValueNoCheck("M_Locator_ID", null);
|
||||
set_ValueNoCheck(COLUMNNAME_M_Locator_ID, null);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -492,7 +498,7 @@ public class MInOutLine extends X_M_InOutLine
|
|||
if (getLine() == 0)
|
||||
{
|
||||
String sql = "SELECT COALESCE(MAX(Line),0)+10 FROM M_InOutLine WHERE M_InOut_ID=?";
|
||||
int ii = DB.getSQLValue (get_TrxName(), sql, getM_InOut_ID());
|
||||
int ii = DB.getSQLValueEx (get_TrxName(), sql, getM_InOut_ID());
|
||||
setLine (ii);
|
||||
}
|
||||
// UOM
|
||||
|
@ -520,6 +526,19 @@ public class MInOutLine extends X_M_InOutLine
|
|||
}
|
||||
}
|
||||
|
||||
// Validate Locator/Warehouse - teo_sarca, BF [ 2784194 ]
|
||||
if (getM_Locator_ID() > 0)
|
||||
{
|
||||
MLocator locator = MLocator.get(getCtx(), getM_Locator_ID());
|
||||
if (getM_Warehouse_ID() != locator.getM_Warehouse_ID())
|
||||
{
|
||||
throw new WarehouseLocatorConflictException(
|
||||
MWarehouse.get(getCtx(), getM_Warehouse_ID()),
|
||||
locator,
|
||||
getLine());
|
||||
}
|
||||
}
|
||||
|
||||
// if (getC_Charge_ID() == 0 && getM_Product_ID() == 0)
|
||||
// ;
|
||||
|
||||
|
|
Loading…
Reference in New Issue