Merged in hengsin/idempiere-hengsin (pull request #3)
This commit is contained in:
commit
d0312be908
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,55 @@
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=12326
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=190,IsDisplayed='Y' WHERE AD_Field_ID=50158
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=200,IsDisplayed='Y' WHERE AD_Field_ID=50159
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=210,IsDisplayed='Y' WHERE AD_Field_ID=50160
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=220,IsDisplayed='Y' WHERE AD_Field_ID=50184
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=230,IsDisplayed='Y' WHERE AD_Field_ID=50185
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=240,IsDisplayed='Y' WHERE AD_Field_ID=50186
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=250,IsDisplayed='Y' WHERE AD_Field_ID=54238
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=260,IsDisplayed='Y' WHERE AD_Field_ID=54680
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:52 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Column SET IsActive='N',Updated=TO_DATE('2012-03-19 20:36:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=14403
|
||||||
|
;
|
||||||
|
|
||||||
|
UPDATE AD_System
|
||||||
|
SET LastMigrationScriptApplied='825_IDEMPIERE-189.sql'
|
||||||
|
WHERE LastMigrationScriptApplied<'825_IDEMPIERE-189.sql'
|
||||||
|
OR LastMigrationScriptApplied IS NULL
|
||||||
|
;
|
|
@ -0,0 +1,12 @@
|
||||||
|
-- Mar 19, 2012 8:33:59 PM MYT
|
||||||
|
-- IDEMPIERE-118 Average Costing: Negative Inventory
|
||||||
|
UPDATE AD_Column SET ReadOnlyLogic=NULL,Updated=TO_DATE('2012-03-19 20:33:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13455
|
||||||
|
;
|
||||||
|
|
||||||
|
UPDATE AD_System
|
||||||
|
SET LastMigrationScriptApplied='826_IDEMPIERE-118.sql'
|
||||||
|
WHERE LastMigrationScriptApplied<'826_IDEMPIERE-118.sql'
|
||||||
|
OR LastMigrationScriptApplied IS NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,56 @@
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=12326
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=190,IsDisplayed='Y' WHERE AD_Field_ID=50158
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=200,IsDisplayed='Y' WHERE AD_Field_ID=50159
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=210,IsDisplayed='Y' WHERE AD_Field_ID=50160
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=220,IsDisplayed='Y' WHERE AD_Field_ID=50184
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=230,IsDisplayed='Y' WHERE AD_Field_ID=50185
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=240,IsDisplayed='Y' WHERE AD_Field_ID=50186
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=250,IsDisplayed='Y' WHERE AD_Field_ID=54238
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:26 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Field SET SeqNo=260,IsDisplayed='Y' WHERE AD_Field_ID=54680
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2012 8:36:52 PM MYT
|
||||||
|
-- IDEMPIERE-189 Average Costing: moving average costing doesn't work if AD_Client.IsCostImmediate is false
|
||||||
|
UPDATE AD_Column SET IsActive='N',Updated=TO_TIMESTAMP('2012-03-19 20:36:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=14403
|
||||||
|
;
|
||||||
|
|
||||||
|
UPDATE AD_System
|
||||||
|
SET LastMigrationScriptApplied='825_IDEMPIERE-189.sql'
|
||||||
|
WHERE LastMigrationScriptApplied<'825_IDEMPIERE-189.sql'
|
||||||
|
OR LastMigrationScriptApplied IS NULL
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
-- Mar 19, 2012 8:33:59 PM MYT
|
||||||
|
-- IDEMPIERE-118 Average Costing: Negative Inventory
|
||||||
|
UPDATE AD_Column SET ReadOnlyLogic=NULL,Updated=TO_DATE('2012-03-19 20:33:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13455
|
||||||
|
;
|
||||||
|
|
||||||
|
UPDATE AD_System
|
||||||
|
SET LastMigrationScriptApplied='826_IDEMPIERE-118.sql'
|
||||||
|
WHERE LastMigrationScriptApplied<'826_IDEMPIERE-118.sql'
|
||||||
|
OR LastMigrationScriptApplied IS NULL
|
||||||
|
;
|
|
@ -0,0 +1,36 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Product: iDempiere ERP & CRM Smart Business Solution *
|
||||||
|
* Copyright (C) 2012 Heng Sin Low *
|
||||||
|
* Copyright (C) 2012 www.iDempiere.org *
|
||||||
|
* 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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author hengsin
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class AverageCostingNegativeQtyException extends AdempiereException {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* generated serial version id
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 4165497320719149773L;
|
||||||
|
|
||||||
|
public AverageCostingNegativeQtyException() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public AverageCostingNegativeQtyException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,296 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Product: Adempiere ERP & CRM Smart Business Solution *
|
||||||
|
* Copyright (C) 1999-2007 ComPiere, Inc. 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. *
|
||||||
|
* For the text or an alternative of this public license, you may reach us *
|
||||||
|
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
|
||||||
|
* or via info@compiere.org or http://www.compiere.org/license.html *
|
||||||
|
*****************************************************************************/
|
||||||
|
package org.adempiere.model;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import org.compiere.model.*;
|
||||||
|
import org.compiere.util.KeyNamePair;
|
||||||
|
|
||||||
|
/** Generated Interface for M_CostHistory
|
||||||
|
* @author Adempiere (generated)
|
||||||
|
* @version Release 3.6.0LTS
|
||||||
|
*/
|
||||||
|
public interface I_M_CostHistory
|
||||||
|
{
|
||||||
|
|
||||||
|
/** TableName=M_CostHistory */
|
||||||
|
public static final String Table_Name = "M_CostHistory";
|
||||||
|
|
||||||
|
/** AD_Table_ID=200001 */
|
||||||
|
public static final int Table_ID = 200001;
|
||||||
|
|
||||||
|
KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name);
|
||||||
|
|
||||||
|
/** AccessLevel = 3 - Client - Org
|
||||||
|
*/
|
||||||
|
BigDecimal accessLevel = BigDecimal.valueOf(3);
|
||||||
|
|
||||||
|
/** Load Meta Data */
|
||||||
|
|
||||||
|
/** Column name AD_Client_ID */
|
||||||
|
public static final String COLUMNNAME_AD_Client_ID = "AD_Client_ID";
|
||||||
|
|
||||||
|
/** Get Client.
|
||||||
|
* Client/Tenant for this installation.
|
||||||
|
*/
|
||||||
|
public int getAD_Client_ID();
|
||||||
|
|
||||||
|
/** Column name AD_Org_ID */
|
||||||
|
public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID";
|
||||||
|
|
||||||
|
/** Set Organization.
|
||||||
|
* Organizational entity within client
|
||||||
|
*/
|
||||||
|
public void setAD_Org_ID (int AD_Org_ID);
|
||||||
|
|
||||||
|
/** Get Organization.
|
||||||
|
* Organizational entity within client
|
||||||
|
*/
|
||||||
|
public int getAD_Org_ID();
|
||||||
|
|
||||||
|
/** Column name Created */
|
||||||
|
public static final String COLUMNNAME_Created = "Created";
|
||||||
|
|
||||||
|
/** Get Created.
|
||||||
|
* Date this record was created
|
||||||
|
*/
|
||||||
|
public Timestamp getCreated();
|
||||||
|
|
||||||
|
/** Column name CreatedBy */
|
||||||
|
public static final String COLUMNNAME_CreatedBy = "CreatedBy";
|
||||||
|
|
||||||
|
/** Get Created By.
|
||||||
|
* User who created this records
|
||||||
|
*/
|
||||||
|
public int getCreatedBy();
|
||||||
|
|
||||||
|
/** Column name IsActive */
|
||||||
|
public static final String COLUMNNAME_IsActive = "IsActive";
|
||||||
|
|
||||||
|
/** Set Active.
|
||||||
|
* The record is active in the system
|
||||||
|
*/
|
||||||
|
public void setIsActive (boolean IsActive);
|
||||||
|
|
||||||
|
/** Get Active.
|
||||||
|
* The record is active in the system
|
||||||
|
*/
|
||||||
|
public boolean isActive();
|
||||||
|
|
||||||
|
/** Column name M_AttributeSetInstance_ID */
|
||||||
|
public static final String COLUMNNAME_M_AttributeSetInstance_ID = "M_AttributeSetInstance_ID";
|
||||||
|
|
||||||
|
/** Set Attribute Set Instance.
|
||||||
|
* Product Attribute Set Instance
|
||||||
|
*/
|
||||||
|
public void setM_AttributeSetInstance_ID (int M_AttributeSetInstance_ID);
|
||||||
|
|
||||||
|
/** Get Attribute Set Instance.
|
||||||
|
* Product Attribute Set Instance
|
||||||
|
*/
|
||||||
|
public int getM_AttributeSetInstance_ID();
|
||||||
|
|
||||||
|
public I_M_AttributeSetInstance getM_AttributeSetInstance() throws RuntimeException;
|
||||||
|
|
||||||
|
/** Column name M_CostDetail_ID */
|
||||||
|
public static final String COLUMNNAME_M_CostDetail_ID = "M_CostDetail_ID";
|
||||||
|
|
||||||
|
/** Set Cost Detail.
|
||||||
|
* Cost Detail Information
|
||||||
|
*/
|
||||||
|
public void setM_CostDetail_ID (int M_CostDetail_ID);
|
||||||
|
|
||||||
|
/** Get Cost Detail.
|
||||||
|
* Cost Detail Information
|
||||||
|
*/
|
||||||
|
public int getM_CostDetail_ID();
|
||||||
|
|
||||||
|
public org.compiere.model.I_M_CostDetail getM_CostDetail() throws RuntimeException;
|
||||||
|
|
||||||
|
/** Column name M_CostElement_ID */
|
||||||
|
public static final String COLUMNNAME_M_CostElement_ID = "M_CostElement_ID";
|
||||||
|
|
||||||
|
/** Set Cost Element.
|
||||||
|
* Product Cost Element
|
||||||
|
*/
|
||||||
|
public void setM_CostElement_ID (int M_CostElement_ID);
|
||||||
|
|
||||||
|
/** Get Cost Element.
|
||||||
|
* Product Cost Element
|
||||||
|
*/
|
||||||
|
public int getM_CostElement_ID();
|
||||||
|
|
||||||
|
public org.compiere.model.I_M_CostElement getM_CostElement() throws RuntimeException;
|
||||||
|
|
||||||
|
/** Column name M_CostHistory_ID */
|
||||||
|
public static final String COLUMNNAME_M_CostHistory_ID = "M_CostHistory_ID";
|
||||||
|
|
||||||
|
/** Set Cost History.
|
||||||
|
* Movement history for M_Cost
|
||||||
|
*/
|
||||||
|
public void setM_CostHistory_ID (int M_CostHistory_ID);
|
||||||
|
|
||||||
|
/** Get Cost History.
|
||||||
|
* Movement history for M_Cost
|
||||||
|
*/
|
||||||
|
public int getM_CostHistory_ID();
|
||||||
|
|
||||||
|
/** Column name M_CostHistory_UU */
|
||||||
|
public static final String COLUMNNAME_M_CostHistory_UU = "M_CostHistory_UU";
|
||||||
|
|
||||||
|
/** Set Cost History UUID */
|
||||||
|
public void setM_CostHistory_UU (String M_CostHistory_UU);
|
||||||
|
|
||||||
|
/** Get Cost History UUID */
|
||||||
|
public String getM_CostHistory_UU();
|
||||||
|
|
||||||
|
/** Column name M_CostType_ID */
|
||||||
|
public static final String COLUMNNAME_M_CostType_ID = "M_CostType_ID";
|
||||||
|
|
||||||
|
/** Set Cost Type.
|
||||||
|
* Type of Cost (e.g. Current, Plan, Future)
|
||||||
|
*/
|
||||||
|
public void setM_CostType_ID (int M_CostType_ID);
|
||||||
|
|
||||||
|
/** Get Cost Type.
|
||||||
|
* Type of Cost (e.g. Current, Plan, Future)
|
||||||
|
*/
|
||||||
|
public int getM_CostType_ID();
|
||||||
|
|
||||||
|
public org.compiere.model.I_M_CostType getM_CostType() throws RuntimeException;
|
||||||
|
|
||||||
|
/** Column name NewCAmt */
|
||||||
|
public static final String COLUMNNAME_NewCAmt = "NewCAmt";
|
||||||
|
|
||||||
|
/** Set New Accumulated Amt.
|
||||||
|
* Accumulated Amt after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setNewCAmt (BigDecimal NewCAmt);
|
||||||
|
|
||||||
|
/** Get New Accumulated Amt.
|
||||||
|
* Accumulated Amt after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getNewCAmt();
|
||||||
|
|
||||||
|
/** Column name NewCostPrice */
|
||||||
|
public static final String COLUMNNAME_NewCostPrice = "NewCostPrice";
|
||||||
|
|
||||||
|
/** Set New Cost Price.
|
||||||
|
* New current cost price after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setNewCostPrice (BigDecimal NewCostPrice);
|
||||||
|
|
||||||
|
/** Get New Cost Price.
|
||||||
|
* New current cost price after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getNewCostPrice();
|
||||||
|
|
||||||
|
/** Column name NewCQty */
|
||||||
|
public static final String COLUMNNAME_NewCQty = "NewCQty";
|
||||||
|
|
||||||
|
/** Set New Accumulated Qty.
|
||||||
|
* New Accumulated Qty after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setNewCQty (BigDecimal NewCQty);
|
||||||
|
|
||||||
|
/** Get New Accumulated Qty.
|
||||||
|
* New Accumulated Qty after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getNewCQty();
|
||||||
|
|
||||||
|
/** Column name NewQty */
|
||||||
|
public static final String COLUMNNAME_NewQty = "NewQty";
|
||||||
|
|
||||||
|
/** Set New Current Quantity.
|
||||||
|
* New current quantity after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setNewQty (BigDecimal NewQty);
|
||||||
|
|
||||||
|
/** Get New Current Quantity.
|
||||||
|
* New current quantity after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getNewQty();
|
||||||
|
|
||||||
|
/** Column name OldCAmt */
|
||||||
|
public static final String COLUMNNAME_OldCAmt = "OldCAmt";
|
||||||
|
|
||||||
|
/** Set Old Accumulated Amt.
|
||||||
|
* Old accumulated amt before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setOldCAmt (BigDecimal OldCAmt);
|
||||||
|
|
||||||
|
/** Get Old Accumulated Amt.
|
||||||
|
* Old accumulated amt before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getOldCAmt();
|
||||||
|
|
||||||
|
/** Column name OldCostPrice */
|
||||||
|
public static final String COLUMNNAME_OldCostPrice = "OldCostPrice";
|
||||||
|
|
||||||
|
/** Set Old Current Cost Price.
|
||||||
|
* Old current cost price before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setOldCostPrice (BigDecimal OldCostPrice);
|
||||||
|
|
||||||
|
/** Get Old Current Cost Price.
|
||||||
|
* Old current cost price before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getOldCostPrice();
|
||||||
|
|
||||||
|
/** Column name OldCQty */
|
||||||
|
public static final String COLUMNNAME_OldCQty = "OldCQty";
|
||||||
|
|
||||||
|
/** Set Old Accumulated Qty.
|
||||||
|
* Old accumulated qty before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setOldCQty (BigDecimal OldCQty);
|
||||||
|
|
||||||
|
/** Get Old Accumulated Qty.
|
||||||
|
* Old accumulated qty before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getOldCQty();
|
||||||
|
|
||||||
|
/** Column name OldQty */
|
||||||
|
public static final String COLUMNNAME_OldQty = "OldQty";
|
||||||
|
|
||||||
|
/** Set Old Current Quantity.
|
||||||
|
* Old current quantity before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setOldQty (BigDecimal OldQty);
|
||||||
|
|
||||||
|
/** Get Old Current Quantity.
|
||||||
|
* Old current quantity before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getOldQty();
|
||||||
|
|
||||||
|
/** Column name Updated */
|
||||||
|
public static final String COLUMNNAME_Updated = "Updated";
|
||||||
|
|
||||||
|
/** Get Updated.
|
||||||
|
* Date this record was updated
|
||||||
|
*/
|
||||||
|
public Timestamp getUpdated();
|
||||||
|
|
||||||
|
/** Column name UpdatedBy */
|
||||||
|
public static final String COLUMNNAME_UpdatedBy = "UpdatedBy";
|
||||||
|
|
||||||
|
/** Get Updated By.
|
||||||
|
* User who updated this records
|
||||||
|
*/
|
||||||
|
public int getUpdatedBy();
|
||||||
|
}
|
|
@ -0,0 +1,392 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Product: Adempiere ERP & CRM Smart Business Solution *
|
||||||
|
* Copyright (C) 1999-2007 ComPiere, Inc. 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. *
|
||||||
|
* For the text or an alternative of this public license, you may reach us *
|
||||||
|
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
|
||||||
|
* or via info@compiere.org or http://www.compiere.org/license.html *
|
||||||
|
*****************************************************************************/
|
||||||
|
/** Generated Model - DO NOT CHANGE */
|
||||||
|
package org.adempiere.model;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.util.Properties;
|
||||||
|
import org.compiere.model.*;
|
||||||
|
import org.compiere.util.Env;
|
||||||
|
|
||||||
|
/** Generated Model for M_CostHistory
|
||||||
|
* @author Adempiere (generated)
|
||||||
|
* @version Release 3.6.0LTS - $Id$ */
|
||||||
|
public class X_M_CostHistory extends PO implements I_M_CostHistory, I_Persistent
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 20120308L;
|
||||||
|
|
||||||
|
/** Standard Constructor */
|
||||||
|
public X_M_CostHistory (Properties ctx, int M_CostHistory_ID, String trxName)
|
||||||
|
{
|
||||||
|
super (ctx, M_CostHistory_ID, trxName);
|
||||||
|
/** if (M_CostHistory_ID == 0)
|
||||||
|
{
|
||||||
|
setM_AttributeSetInstance_ID (0);
|
||||||
|
setM_CostDetail_ID (0);
|
||||||
|
setM_CostElement_ID (0);
|
||||||
|
setM_CostHistory_ID (0);
|
||||||
|
setM_CostHistory_UU (null);
|
||||||
|
setM_CostType_ID (0);
|
||||||
|
setNewCostPrice (Env.ZERO);
|
||||||
|
setNewQty (Env.ZERO);
|
||||||
|
setOldCostPrice (Env.ZERO);
|
||||||
|
setOldQty (Env.ZERO);
|
||||||
|
} */
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Load Constructor */
|
||||||
|
public X_M_CostHistory (Properties ctx, ResultSet rs, String trxName)
|
||||||
|
{
|
||||||
|
super (ctx, rs, trxName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** AccessLevel
|
||||||
|
* @return 3 - Client - Org
|
||||||
|
*/
|
||||||
|
protected int get_AccessLevel()
|
||||||
|
{
|
||||||
|
return accessLevel.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Load Meta Data */
|
||||||
|
protected POInfo initPO (Properties ctx)
|
||||||
|
{
|
||||||
|
POInfo poi = POInfo.getPOInfo (ctx, Table_ID, get_TrxName());
|
||||||
|
return poi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
StringBuffer sb = new StringBuffer ("X_M_CostHistory[")
|
||||||
|
.append(get_ID()).append("]");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public I_M_AttributeSetInstance getM_AttributeSetInstance() throws RuntimeException
|
||||||
|
{
|
||||||
|
return (I_M_AttributeSetInstance)MTable.get(getCtx(), I_M_AttributeSetInstance.Table_Name)
|
||||||
|
.getPO(getM_AttributeSetInstance_ID(), get_TrxName()); }
|
||||||
|
|
||||||
|
/** Set Attribute Set Instance.
|
||||||
|
@param M_AttributeSetInstance_ID
|
||||||
|
Product Attribute Set Instance
|
||||||
|
*/
|
||||||
|
public void setM_AttributeSetInstance_ID (int M_AttributeSetInstance_ID)
|
||||||
|
{
|
||||||
|
if (M_AttributeSetInstance_ID < 0)
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_AttributeSetInstance_ID, null);
|
||||||
|
else
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_AttributeSetInstance_ID, Integer.valueOf(M_AttributeSetInstance_ID));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Attribute Set Instance.
|
||||||
|
@return Product Attribute Set Instance
|
||||||
|
*/
|
||||||
|
public int getM_AttributeSetInstance_ID ()
|
||||||
|
{
|
||||||
|
Integer ii = (Integer)get_Value(COLUMNNAME_M_AttributeSetInstance_ID);
|
||||||
|
if (ii == null)
|
||||||
|
return 0;
|
||||||
|
return ii.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.compiere.model.I_M_CostDetail getM_CostDetail() throws RuntimeException
|
||||||
|
{
|
||||||
|
return (org.compiere.model.I_M_CostDetail)MTable.get(getCtx(), org.compiere.model.I_M_CostDetail.Table_Name)
|
||||||
|
.getPO(getM_CostDetail_ID(), get_TrxName()); }
|
||||||
|
|
||||||
|
/** Set Cost Detail.
|
||||||
|
@param M_CostDetail_ID
|
||||||
|
Cost Detail Information
|
||||||
|
*/
|
||||||
|
public void setM_CostDetail_ID (int M_CostDetail_ID)
|
||||||
|
{
|
||||||
|
if (M_CostDetail_ID < 1)
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_CostDetail_ID, null);
|
||||||
|
else
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_CostDetail_ID, Integer.valueOf(M_CostDetail_ID));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Cost Detail.
|
||||||
|
@return Cost Detail Information
|
||||||
|
*/
|
||||||
|
public int getM_CostDetail_ID ()
|
||||||
|
{
|
||||||
|
Integer ii = (Integer)get_Value(COLUMNNAME_M_CostDetail_ID);
|
||||||
|
if (ii == null)
|
||||||
|
return 0;
|
||||||
|
return ii.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.compiere.model.I_M_CostElement getM_CostElement() throws RuntimeException
|
||||||
|
{
|
||||||
|
return (org.compiere.model.I_M_CostElement)MTable.get(getCtx(), org.compiere.model.I_M_CostElement.Table_Name)
|
||||||
|
.getPO(getM_CostElement_ID(), get_TrxName()); }
|
||||||
|
|
||||||
|
/** Set Cost Element.
|
||||||
|
@param M_CostElement_ID
|
||||||
|
Product Cost Element
|
||||||
|
*/
|
||||||
|
public void setM_CostElement_ID (int M_CostElement_ID)
|
||||||
|
{
|
||||||
|
if (M_CostElement_ID < 1)
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_CostElement_ID, null);
|
||||||
|
else
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_CostElement_ID, Integer.valueOf(M_CostElement_ID));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Cost Element.
|
||||||
|
@return Product Cost Element
|
||||||
|
*/
|
||||||
|
public int getM_CostElement_ID ()
|
||||||
|
{
|
||||||
|
Integer ii = (Integer)get_Value(COLUMNNAME_M_CostElement_ID);
|
||||||
|
if (ii == null)
|
||||||
|
return 0;
|
||||||
|
return ii.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set Cost History.
|
||||||
|
@param M_CostHistory_ID
|
||||||
|
Movement history for M_Cost
|
||||||
|
*/
|
||||||
|
public void setM_CostHistory_ID (int M_CostHistory_ID)
|
||||||
|
{
|
||||||
|
if (M_CostHistory_ID < 1)
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_CostHistory_ID, null);
|
||||||
|
else
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_CostHistory_ID, Integer.valueOf(M_CostHistory_ID));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Cost History.
|
||||||
|
@return Movement history for M_Cost
|
||||||
|
*/
|
||||||
|
public int getM_CostHistory_ID ()
|
||||||
|
{
|
||||||
|
Integer ii = (Integer)get_Value(COLUMNNAME_M_CostHistory_ID);
|
||||||
|
if (ii == null)
|
||||||
|
return 0;
|
||||||
|
return ii.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set Cost History UUID.
|
||||||
|
@param M_CostHistory_UU Cost History UUID */
|
||||||
|
public void setM_CostHistory_UU (String M_CostHistory_UU)
|
||||||
|
{
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_CostHistory_UU, M_CostHistory_UU);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Cost History UUID.
|
||||||
|
@return Cost History UUID */
|
||||||
|
public String getM_CostHistory_UU ()
|
||||||
|
{
|
||||||
|
return (String)get_Value(COLUMNNAME_M_CostHistory_UU);
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.compiere.model.I_M_CostType getM_CostType() throws RuntimeException
|
||||||
|
{
|
||||||
|
return (org.compiere.model.I_M_CostType)MTable.get(getCtx(), org.compiere.model.I_M_CostType.Table_Name)
|
||||||
|
.getPO(getM_CostType_ID(), get_TrxName()); }
|
||||||
|
|
||||||
|
/** Set Cost Type.
|
||||||
|
@param M_CostType_ID
|
||||||
|
Type of Cost (e.g. Current, Plan, Future)
|
||||||
|
*/
|
||||||
|
public void setM_CostType_ID (int M_CostType_ID)
|
||||||
|
{
|
||||||
|
if (M_CostType_ID < 1)
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_CostType_ID, null);
|
||||||
|
else
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_CostType_ID, Integer.valueOf(M_CostType_ID));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Cost Type.
|
||||||
|
@return Type of Cost (e.g. Current, Plan, Future)
|
||||||
|
*/
|
||||||
|
public int getM_CostType_ID ()
|
||||||
|
{
|
||||||
|
Integer ii = (Integer)get_Value(COLUMNNAME_M_CostType_ID);
|
||||||
|
if (ii == null)
|
||||||
|
return 0;
|
||||||
|
return ii.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set New Accumulated Amt.
|
||||||
|
@param NewCAmt
|
||||||
|
Accumulated Amt after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setNewCAmt (BigDecimal NewCAmt)
|
||||||
|
{
|
||||||
|
set_ValueNoCheck (COLUMNNAME_NewCAmt, NewCAmt);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get New Accumulated Amt.
|
||||||
|
@return Accumulated Amt after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getNewCAmt ()
|
||||||
|
{
|
||||||
|
BigDecimal bd = (BigDecimal)get_Value(COLUMNNAME_NewCAmt);
|
||||||
|
if (bd == null)
|
||||||
|
return Env.ZERO;
|
||||||
|
return bd;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set New Cost Price.
|
||||||
|
@param NewCostPrice
|
||||||
|
New current cost price after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setNewCostPrice (BigDecimal NewCostPrice)
|
||||||
|
{
|
||||||
|
set_ValueNoCheck (COLUMNNAME_NewCostPrice, NewCostPrice);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get New Cost Price.
|
||||||
|
@return New current cost price after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getNewCostPrice ()
|
||||||
|
{
|
||||||
|
BigDecimal bd = (BigDecimal)get_Value(COLUMNNAME_NewCostPrice);
|
||||||
|
if (bd == null)
|
||||||
|
return Env.ZERO;
|
||||||
|
return bd;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set New Accumulated Qty.
|
||||||
|
@param NewCQty
|
||||||
|
New Accumulated Qty after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setNewCQty (BigDecimal NewCQty)
|
||||||
|
{
|
||||||
|
set_ValueNoCheck (COLUMNNAME_NewCQty, NewCQty);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get New Accumulated Qty.
|
||||||
|
@return New Accumulated Qty after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getNewCQty ()
|
||||||
|
{
|
||||||
|
BigDecimal bd = (BigDecimal)get_Value(COLUMNNAME_NewCQty);
|
||||||
|
if (bd == null)
|
||||||
|
return Env.ZERO;
|
||||||
|
return bd;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set New Current Quantity.
|
||||||
|
@param NewQty
|
||||||
|
New current quantity after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setNewQty (BigDecimal NewQty)
|
||||||
|
{
|
||||||
|
set_ValueNoCheck (COLUMNNAME_NewQty, NewQty);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get New Current Quantity.
|
||||||
|
@return New current quantity after processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getNewQty ()
|
||||||
|
{
|
||||||
|
BigDecimal bd = (BigDecimal)get_Value(COLUMNNAME_NewQty);
|
||||||
|
if (bd == null)
|
||||||
|
return Env.ZERO;
|
||||||
|
return bd;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set Old Accumulated Amt.
|
||||||
|
@param OldCAmt
|
||||||
|
Old accumulated amt before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setOldCAmt (BigDecimal OldCAmt)
|
||||||
|
{
|
||||||
|
set_ValueNoCheck (COLUMNNAME_OldCAmt, OldCAmt);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Old Accumulated Amt.
|
||||||
|
@return Old accumulated amt before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getOldCAmt ()
|
||||||
|
{
|
||||||
|
BigDecimal bd = (BigDecimal)get_Value(COLUMNNAME_OldCAmt);
|
||||||
|
if (bd == null)
|
||||||
|
return Env.ZERO;
|
||||||
|
return bd;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set Old Current Cost Price.
|
||||||
|
@param OldCostPrice
|
||||||
|
Old current cost price before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setOldCostPrice (BigDecimal OldCostPrice)
|
||||||
|
{
|
||||||
|
set_ValueNoCheck (COLUMNNAME_OldCostPrice, OldCostPrice);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Old Current Cost Price.
|
||||||
|
@return Old current cost price before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getOldCostPrice ()
|
||||||
|
{
|
||||||
|
BigDecimal bd = (BigDecimal)get_Value(COLUMNNAME_OldCostPrice);
|
||||||
|
if (bd == null)
|
||||||
|
return Env.ZERO;
|
||||||
|
return bd;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set Old Accumulated Qty.
|
||||||
|
@param OldCQty
|
||||||
|
Old accumulated qty before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setOldCQty (BigDecimal OldCQty)
|
||||||
|
{
|
||||||
|
set_ValueNoCheck (COLUMNNAME_OldCQty, OldCQty);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Old Accumulated Qty.
|
||||||
|
@return Old accumulated qty before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getOldCQty ()
|
||||||
|
{
|
||||||
|
BigDecimal bd = (BigDecimal)get_Value(COLUMNNAME_OldCQty);
|
||||||
|
if (bd == null)
|
||||||
|
return Env.ZERO;
|
||||||
|
return bd;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set Old Current Quantity.
|
||||||
|
@param OldQty
|
||||||
|
Old current quantity before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public void setOldQty (BigDecimal OldQty)
|
||||||
|
{
|
||||||
|
set_ValueNoCheck (COLUMNNAME_OldQty, OldQty);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Old Current Quantity.
|
||||||
|
@return Old current quantity before the processing of M_CostDetail
|
||||||
|
*/
|
||||||
|
public BigDecimal getOldQty ()
|
||||||
|
{
|
||||||
|
BigDecimal bd = (BigDecimal)get_Value(COLUMNNAME_OldQty);
|
||||||
|
if (bd == null)
|
||||||
|
return Env.ZERO;
|
||||||
|
return bd;
|
||||||
|
}
|
||||||
|
}
|
|
@ -28,6 +28,7 @@ import java.util.Iterator;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AverageCostingNegativeQtyException;
|
||||||
import org.compiere.model.MAccount;
|
import org.compiere.model.MAccount;
|
||||||
import org.compiere.model.MAcctSchema;
|
import org.compiere.model.MAcctSchema;
|
||||||
import org.compiere.model.MConversionRate;
|
import org.compiere.model.MConversionRate;
|
||||||
|
@ -516,6 +517,12 @@ public abstract class Doc
|
||||||
p_Status = postLogic ();
|
p_Status = postLogic ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (AverageCostingNegativeQtyException e)
|
||||||
|
{
|
||||||
|
log.log(Level.INFO, e.getLocalizedMessage(), e);
|
||||||
|
p_Status = STATUS_NotPosted;
|
||||||
|
p_Error = e.toString();
|
||||||
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
log.log(Level.SEVERE, "", e);
|
log.log(Level.SEVERE, "", e);
|
||||||
|
@ -525,7 +532,7 @@ public abstract class Doc
|
||||||
|
|
||||||
String validatorMsg = null;
|
String validatorMsg = null;
|
||||||
// Call validator on before post
|
// Call validator on before post
|
||||||
if (!p_Status.equals(STATUS_Error)) {
|
if (p_Status.equals(STATUS_Posted)) {
|
||||||
validatorMsg = ModelValidationEngine.get().fireDocValidate(getPO(), ModelValidator.TIMING_BEFORE_POST);
|
validatorMsg = ModelValidationEngine.get().fireDocValidate(getPO(), ModelValidator.TIMING_BEFORE_POST);
|
||||||
if (validatorMsg != null) {
|
if (validatorMsg != null) {
|
||||||
p_Status = STATUS_Error;
|
p_Status = STATUS_Error;
|
||||||
|
@ -536,7 +543,7 @@ public abstract class Doc
|
||||||
// commitFact
|
// commitFact
|
||||||
p_Status = postCommit (p_Status);
|
p_Status = postCommit (p_Status);
|
||||||
|
|
||||||
if (!p_Status.equals(STATUS_Error)) {
|
if (p_Status.equals(STATUS_Posted)) {
|
||||||
validatorMsg = ModelValidationEngine.get().fireDocValidate(getPO(), ModelValidator.TIMING_AFTER_POST);
|
validatorMsg = ModelValidationEngine.get().fireDocValidate(getPO(), ModelValidator.TIMING_AFTER_POST);
|
||||||
if (validatorMsg != null) {
|
if (validatorMsg != null) {
|
||||||
p_Status = STATUS_Error;
|
p_Status = STATUS_Error;
|
||||||
|
|
|
@ -19,6 +19,7 @@ package org.compiere.acct;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Savepoint;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -283,6 +284,7 @@ public class DocManager {
|
||||||
trxName = localTrxName;
|
trxName = localTrxName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Trx trx = Trx.get(trxName, true);
|
||||||
String error = null;
|
String error = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -292,12 +294,22 @@ public class DocManager {
|
||||||
Doc doc = Doc.get (as, AD_Table_ID, rs, trxName);
|
Doc doc = Doc.get (as, AD_Table_ID, rs, trxName);
|
||||||
if (doc != null)
|
if (doc != null)
|
||||||
{
|
{
|
||||||
|
Savepoint savepoint = trx.setSavepoint(null);
|
||||||
error = doc.post (force, repost); // repost
|
error = doc.post (force, repost); // repost
|
||||||
status = doc.getPostStatus();
|
status = doc.getPostStatus();
|
||||||
if (error != null && error.trim().length() > 0)
|
if (error != null && error.trim().length() > 0)
|
||||||
|
{
|
||||||
|
trx.rollback(savepoint);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
trx.releaseSavepoint(savepoint);
|
||||||
|
} catch (Exception e) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
return "NoDoc";
|
return "NoDoc";
|
||||||
}
|
}
|
||||||
|
@ -311,7 +323,6 @@ public class DocManager {
|
||||||
ValueNamePair dbError = CLogger.retrieveError();
|
ValueNamePair dbError = CLogger.retrieveError();
|
||||||
// log.log(Level.SEVERE, "(doc not saved) ... rolling back");
|
// log.log(Level.SEVERE, "(doc not saved) ... rolling back");
|
||||||
if (localTrxName != null) {
|
if (localTrxName != null) {
|
||||||
Trx trx = Trx.get(localTrxName, false);
|
|
||||||
if (trx != null)
|
if (trx != null)
|
||||||
trx.rollback();
|
trx.rollback();
|
||||||
}
|
}
|
||||||
|
@ -321,7 +332,6 @@ public class DocManager {
|
||||||
error = "SaveError";
|
error = "SaveError";
|
||||||
}
|
}
|
||||||
if (localTrxName != null) {
|
if (localTrxName != null) {
|
||||||
Trx trx = Trx.get(localTrxName, false);
|
|
||||||
if (trx != null)
|
if (trx != null)
|
||||||
trx.commit();
|
trx.commit();
|
||||||
}
|
}
|
||||||
|
@ -329,7 +339,6 @@ public class DocManager {
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
if (localTrxName != null) {
|
if (localTrxName != null) {
|
||||||
Trx trx = Trx.get(localTrxName, false);
|
|
||||||
if (trx != null)
|
if (trx != null)
|
||||||
trx.rollback();
|
trx.rollback();
|
||||||
}
|
}
|
||||||
|
@ -342,7 +351,6 @@ public class DocManager {
|
||||||
{
|
{
|
||||||
if (localTrxName != null)
|
if (localTrxName != null)
|
||||||
{
|
{
|
||||||
Trx trx = Trx.get(localTrxName, false);
|
|
||||||
if (trx != null)
|
if (trx != null)
|
||||||
trx.close();
|
trx.close();
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@ import java.util.List;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AverageCostingNegativeQtyException;
|
||||||
import org.adempiere.exceptions.DBException;
|
import org.adempiere.exceptions.DBException;
|
||||||
import org.compiere.Adempiere;
|
import org.compiere.Adempiere;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
|
@ -1440,6 +1441,15 @@ public class MCost extends X_M_Cost
|
||||||
*/
|
*/
|
||||||
public void add (BigDecimal amt, BigDecimal qty)
|
public void add (BigDecimal amt, BigDecimal qty)
|
||||||
{
|
{
|
||||||
|
MCostElement costElement = (MCostElement) getM_CostElement();
|
||||||
|
if (costElement.isAveragePO() || costElement.isAverageInvoice())
|
||||||
|
{
|
||||||
|
if (getCurrentQty().add(qty).signum() < 0)
|
||||||
|
{
|
||||||
|
throw new AverageCostingNegativeQtyException("Product(ID)="+getM_Product_ID()+", Current Qty="+getCurrentQty()+", Trx Qty="+qty
|
||||||
|
+ ", CostElement="+costElement.getName()+", Schema="+getC_AcctSchema().getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
setCumulatedAmt(getCumulatedAmt().add(amt));
|
setCumulatedAmt(getCumulatedAmt().add(amt));
|
||||||
setCumulatedQty(getCumulatedQty().add(qty));
|
setCumulatedQty(getCumulatedQty().add(qty));
|
||||||
setCurrentQty(getCurrentQty().add(qty));
|
setCurrentQty(getCurrentQty().add(qty));
|
||||||
|
@ -1453,6 +1463,18 @@ public class MCost extends X_M_Cost
|
||||||
*/
|
*/
|
||||||
public void setWeightedAverage (BigDecimal amt, BigDecimal qty)
|
public void setWeightedAverage (BigDecimal amt, BigDecimal qty)
|
||||||
{
|
{
|
||||||
|
//amount must follow the sign of qty
|
||||||
|
if (amt.signum() != 0 && amt.signum() != qty.signum())
|
||||||
|
{
|
||||||
|
amt = amt.multiply(new BigDecimal(-1.00d));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getCurrentQty().add(qty).signum() < 0)
|
||||||
|
{
|
||||||
|
throw new AverageCostingNegativeQtyException("Product(ID)="+getM_Product_ID()+", Current Qty="+getCurrentQty()+", Trx Qty="+qty
|
||||||
|
+", CostElement="+getM_CostElement().getName()+", Schema="+getC_AcctSchema().getName());
|
||||||
|
}
|
||||||
|
|
||||||
BigDecimal oldSum = getCurrentCostPrice().multiply(getCurrentQty());
|
BigDecimal oldSum = getCurrentCostPrice().multiply(getCurrentQty());
|
||||||
BigDecimal newSum = amt; // is total already
|
BigDecimal newSum = amt; // is total already
|
||||||
BigDecimal sumAmt = oldSum.add(newSum);
|
BigDecimal sumAmt = oldSum.add(newSum);
|
||||||
|
@ -1604,6 +1626,17 @@ public class MCost extends X_M_Cost
|
||||||
if (getCumulatedQty().signum() != 0)
|
if (getCumulatedQty().signum() != 0)
|
||||||
setCumulatedQty(Env.ZERO);
|
setCumulatedQty(Env.ZERO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-ve current qty will break moving average costing
|
||||||
|
if ((ce.isAveragePO() || ce.isAverageInvoice()) && is_ValueChanged(COLUMNNAME_CurrentQty))
|
||||||
|
{
|
||||||
|
if (getCurrentQty().signum() < 0)
|
||||||
|
{
|
||||||
|
throw new AverageCostingNegativeQtyException("Product(ID)="+getM_Product_ID()+", Current Qty="+getCurrentQty()
|
||||||
|
+", CostElement="+getM_CostElement().getName()+", Schema="+getC_AcctSchema().getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} // beforeSave
|
} // beforeSave
|
||||||
|
|
||||||
|
@ -1618,6 +1651,20 @@ public class MCost extends X_M_Cost
|
||||||
} // beforeDelete
|
} // beforeDelete
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCurrentQty(BigDecimal CurrentQty) {
|
||||||
|
MCostElement ce = (MCostElement)getM_CostElement();
|
||||||
|
if (ce.isAveragePO() || ce.isAverageInvoice())
|
||||||
|
{
|
||||||
|
if (CurrentQty.signum() < 0)
|
||||||
|
{
|
||||||
|
throw new AverageCostingNegativeQtyException("Product(ID)="+getM_Product_ID()+", Current Qty="+getCurrentQty()+", New Current Qty="+CurrentQty
|
||||||
|
+", CostElement="+ce.getName()+", Schema="+getC_AcctSchema().getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
super.setCurrentQty(CurrentQty);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test
|
* Test
|
||||||
* @param args ignored
|
* @param args ignored
|
||||||
|
|
|
@ -23,6 +23,7 @@ import java.util.List;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import org.adempiere.model.X_M_CostHistory;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
@ -110,9 +111,7 @@ public class MCostDetail extends X_M_CostDetail
|
||||||
boolean ok = cd.save();
|
boolean ok = cd.save();
|
||||||
if (ok && !cd.isProcessed())
|
if (ok && !cd.isProcessed())
|
||||||
{
|
{
|
||||||
MClient client = MClient.get(as.getCtx(), as.getAD_Client_ID());
|
ok = cd.process();
|
||||||
if (client.isCostImmediate())
|
|
||||||
cd.process();
|
|
||||||
}
|
}
|
||||||
s_log.config("(" + ok + ") " + cd);
|
s_log.config("(" + ok + ") " + cd);
|
||||||
return ok;
|
return ok;
|
||||||
|
@ -179,9 +178,7 @@ public class MCostDetail extends X_M_CostDetail
|
||||||
boolean ok = cd.save();
|
boolean ok = cd.save();
|
||||||
if (ok && !cd.isProcessed())
|
if (ok && !cd.isProcessed())
|
||||||
{
|
{
|
||||||
MClient client = MClient.get(as.getCtx(), as.getAD_Client_ID());
|
ok = cd.process();
|
||||||
if (client.isCostImmediate())
|
|
||||||
cd.process();
|
|
||||||
}
|
}
|
||||||
s_log.config("(" + ok + ") " + cd);
|
s_log.config("(" + ok + ") " + cd);
|
||||||
return ok;
|
return ok;
|
||||||
|
@ -249,9 +246,7 @@ public class MCostDetail extends X_M_CostDetail
|
||||||
boolean ok = cd.save();
|
boolean ok = cd.save();
|
||||||
if (ok && !cd.isProcessed())
|
if (ok && !cd.isProcessed())
|
||||||
{
|
{
|
||||||
MClient client = MClient.get(as.getCtx(), as.getAD_Client_ID());
|
ok = cd.process();
|
||||||
if (client.isCostImmediate())
|
|
||||||
cd.process();
|
|
||||||
}
|
}
|
||||||
s_log.config("(" + ok + ") " + cd);
|
s_log.config("(" + ok + ") " + cd);
|
||||||
return ok;
|
return ok;
|
||||||
|
@ -317,9 +312,7 @@ public class MCostDetail extends X_M_CostDetail
|
||||||
boolean ok = cd.save();
|
boolean ok = cd.save();
|
||||||
if (ok && !cd.isProcessed())
|
if (ok && !cd.isProcessed())
|
||||||
{
|
{
|
||||||
MClient client = MClient.get(as.getCtx(), as.getAD_Client_ID());
|
ok = cd.process();
|
||||||
if (client.isCostImmediate())
|
|
||||||
cd.process();
|
|
||||||
}
|
}
|
||||||
s_log.config("(" + ok + ") " + cd);
|
s_log.config("(" + ok + ") " + cd);
|
||||||
return ok;
|
return ok;
|
||||||
|
@ -389,9 +382,7 @@ public class MCostDetail extends X_M_CostDetail
|
||||||
boolean ok = cd.save();
|
boolean ok = cd.save();
|
||||||
if (ok && !cd.isProcessed())
|
if (ok && !cd.isProcessed())
|
||||||
{
|
{
|
||||||
MClient client = MClient.get(as.getCtx(), as.getAD_Client_ID());
|
ok = cd.process();
|
||||||
if (client.isCostImmediate())
|
|
||||||
cd.process();
|
|
||||||
}
|
}
|
||||||
s_log.config("(" + ok + ") " + cd);
|
s_log.config("(" + ok + ") " + cd);
|
||||||
return ok;
|
return ok;
|
||||||
|
@ -457,9 +448,7 @@ public class MCostDetail extends X_M_CostDetail
|
||||||
boolean ok = cd.save();
|
boolean ok = cd.save();
|
||||||
if (ok && !cd.isProcessed())
|
if (ok && !cd.isProcessed())
|
||||||
{
|
{
|
||||||
MClient client = MClient.get(as.getCtx(), as.getAD_Client_ID());
|
ok = cd.process();
|
||||||
if (client.isCostImmediate())
|
|
||||||
cd.process();
|
|
||||||
}
|
}
|
||||||
s_log.config("(" + ok + ") " + cd);
|
s_log.config("(" + ok + ") " + cd);
|
||||||
return ok;
|
return ok;
|
||||||
|
@ -826,10 +815,25 @@ public class MCostDetail extends X_M_CostDetail
|
||||||
{
|
{
|
||||||
MCost cost = MCost.get(product, M_ASI_ID, as,
|
MCost cost = MCost.get(product, M_ASI_ID, as,
|
||||||
Org_ID, ce.getM_CostElement_ID(), get_TrxName());
|
Org_ID, ce.getM_CostElement_ID(), get_TrxName());
|
||||||
|
|
||||||
|
DB.getDatabase().forUpdate(cost, 120);
|
||||||
|
|
||||||
// if (cost == null)
|
// if (cost == null)
|
||||||
// cost = new MCost(product, M_ASI_ID,
|
// cost = new MCost(product, M_ASI_ID,
|
||||||
// as, Org_ID, ce.getM_CostElement_ID());
|
// as, Org_ID, ce.getM_CostElement_ID());
|
||||||
|
|
||||||
|
//save history for m_cost
|
||||||
|
X_M_CostHistory history = new X_M_CostHistory(getCtx(), 0, get_TrxName());
|
||||||
|
history.setM_AttributeSetInstance_ID(cost.getM_AttributeSetInstance_ID());
|
||||||
|
history.setM_CostDetail_ID(this.getM_CostDetail_ID());
|
||||||
|
history.setM_CostElement_ID(ce.getM_CostElement_ID());
|
||||||
|
history.setM_CostType_ID(cost.getM_CostType_ID());
|
||||||
|
history.setClientOrg(cost.getAD_Client_ID(), cost.getAD_Org_ID());
|
||||||
|
history.setOldQty(cost.getCurrentQty());
|
||||||
|
history.setOldCostPrice(cost.getCurrentCostPrice());
|
||||||
|
history.setOldCAmt(cost.getCumulatedAmt());
|
||||||
|
history.setOldCQty(cost.getCumulatedQty());
|
||||||
|
|
||||||
// MZ Goodwill
|
// MZ Goodwill
|
||||||
// used deltaQty and deltaAmt if exist
|
// used deltaQty and deltaAmt if exist
|
||||||
BigDecimal qty = Env.ZERO;
|
BigDecimal qty = Env.ZERO;
|
||||||
|
@ -1030,7 +1034,15 @@ public class MCostDetail extends X_M_CostDetail
|
||||||
if (ce.isAverageInvoice())
|
if (ce.isAverageInvoice())
|
||||||
{
|
{
|
||||||
if (addition)
|
if (addition)
|
||||||
|
{
|
||||||
cost.setWeightedAverage(amt, qty);
|
cost.setWeightedAverage(amt, qty);
|
||||||
|
//shouldn't accumulate reversal of customer shipment qty and amt
|
||||||
|
if (isShipment())
|
||||||
|
{
|
||||||
|
cost.setCumulatedQty(history.getOldCQty());
|
||||||
|
cost.setCumulatedAmt(history.getOldCAmt());
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
cost.setCurrentQty(cost.getCurrentQty().add(qty));
|
cost.setCurrentQty(cost.getCurrentQty().add(qty));
|
||||||
log.finer("QtyAdjust - AverageInv - " + cost);
|
log.finer("QtyAdjust - AverageInv - " + cost);
|
||||||
|
@ -1038,7 +1050,15 @@ public class MCostDetail extends X_M_CostDetail
|
||||||
else if (ce.isAveragePO())
|
else if (ce.isAveragePO())
|
||||||
{
|
{
|
||||||
if (addition)
|
if (addition)
|
||||||
|
{
|
||||||
cost.setWeightedAverage(amt, qty);
|
cost.setWeightedAverage(amt, qty);
|
||||||
|
//shouldn't accumulate reversal of customer shipment qty and amt
|
||||||
|
if (isShipment())
|
||||||
|
{
|
||||||
|
cost.setCumulatedQty(history.getOldCQty());
|
||||||
|
cost.setCumulatedAmt(history.getOldCAmt());
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
cost.setCurrentQty(cost.getCurrentQty().add(qty));
|
cost.setCurrentQty(cost.getCurrentQty().add(qty));
|
||||||
log.finer("QtyAdjust - AveragePO - " + cost);
|
log.finer("QtyAdjust - AveragePO - " + cost);
|
||||||
|
@ -1169,6 +1189,15 @@ public class MCostDetail extends X_M_CostDetail
|
||||||
setCurrentQty(cost.getCurrentQty());
|
setCurrentQty(cost.getCurrentQty());
|
||||||
setCumulatedAmt(cost.getCumulatedAmt());
|
setCumulatedAmt(cost.getCumulatedAmt());
|
||||||
setCumulatedQty(cost.getCumulatedQty());
|
setCumulatedQty(cost.getCumulatedQty());
|
||||||
|
|
||||||
|
//update history
|
||||||
|
history.setNewQty(cost.getCurrentQty());
|
||||||
|
history.setNewCostPrice(cost.getCurrentCostPrice());
|
||||||
|
history.setNewCAmt(cost.getCumulatedAmt());
|
||||||
|
history.setNewCQty(cost.getCumulatedQty());
|
||||||
|
if (!history.save())
|
||||||
|
return false;
|
||||||
|
|
||||||
return cost.save();
|
return cost.save();
|
||||||
} // process
|
} // process
|
||||||
|
|
||||||
|
|
|
@ -442,8 +442,6 @@ public class MMatchInv extends X_M_MatchInv
|
||||||
cd.setQty(cd.getQty().subtract(qty));
|
cd.setQty(cd.getQty().subtract(qty));
|
||||||
if (!cd.isProcessed())
|
if (!cd.isProcessed())
|
||||||
{
|
{
|
||||||
MClient client = MClient.get(getCtx(), getAD_Client_ID());
|
|
||||||
if (client.isCostImmediate())
|
|
||||||
cd.process();
|
cd.process();
|
||||||
}
|
}
|
||||||
if (cd.getQty().compareTo(Env.ZERO) == 0)
|
if (cd.getQty().compareTo(Env.ZERO) == 0)
|
||||||
|
|
|
@ -946,11 +946,14 @@ public class MMatchPO extends X_M_MatchPO
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set Total Amount and Total Quantity from Matched PO
|
// Set Total Amount and Total Quantity from Matched PO
|
||||||
MCostDetail.createOrder(as, oLine.getAD_Org_ID(),
|
if (!MCostDetail.createOrder(as, oLine.getAD_Org_ID(),
|
||||||
getM_Product_ID(), getM_AttributeSetInstance_ID(),
|
getM_Product_ID(), getM_AttributeSetInstance_ID(),
|
||||||
oLine.getC_OrderLine_ID(), 0, // no cost element
|
oLine.getC_OrderLine_ID(), 0, // no cost element
|
||||||
tAmt, tQty, // Delivered
|
tAmt, tQty, // Delivered
|
||||||
oLine.getDescription(), get_TrxName());
|
oLine.getDescription(), get_TrxName()))
|
||||||
|
{
|
||||||
|
return "SaveError";
|
||||||
|
}
|
||||||
// end MZ
|
// end MZ
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -987,8 +990,6 @@ public class MMatchPO extends X_M_MatchPO
|
||||||
cd.setQty(cd.getQty().subtract(getQty()));
|
cd.setQty(cd.getQty().subtract(getQty()));
|
||||||
if (!cd.isProcessed())
|
if (!cd.isProcessed())
|
||||||
{
|
{
|
||||||
MClient client = MClient.get(getCtx(), getAD_Client_ID());
|
|
||||||
if (client.isCostImmediate())
|
|
||||||
cd.process();
|
cd.process();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -411,7 +411,8 @@ ContextMenuListener, IZoomableEditor
|
||||||
@Override
|
@Override
|
||||||
public void dynamicDisplay()
|
public void dynamicDisplay()
|
||||||
{
|
{
|
||||||
if ((lookup != null) && (!lookup.isValidated() || !lookup.isLoaded()))
|
if ((lookup != null) && (!lookup.isValidated() || !lookup.isLoaded()
|
||||||
|
|| (isReadWrite() && lookup.getSize() != getComponent().getItemCount())))
|
||||||
this.actionRefresh();
|
this.actionRefresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,8 +89,6 @@ public class WebUIServlet extends DHtmlLayoutServlet
|
||||||
|
|
||||||
logger = CLogger.getCLogger(WebUIServlet.class);
|
logger = CLogger.getCLogger(WebUIServlet.class);
|
||||||
|
|
||||||
// hengsin: temporary solution for problem with zk client
|
|
||||||
Ini.setProperty(Ini.P_ADEMPIERESYS, false);
|
|
||||||
logger.log(Level.OFF, "ADempiere web ui service started successfully");
|
logger.log(Level.OFF, "ADempiere web ui service started successfully");
|
||||||
/**
|
/**
|
||||||
* End ADempiere Start
|
* End ADempiere Start
|
||||||
|
|
|
@ -31,9 +31,9 @@
|
||||||
<classpathentry exported="true" kind="lib" path="lib/zk-sources.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/zk-sources.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/zk.jar" sourcepath="lib/zk-sources.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/zk.jar" sourcepath="lib/zk-sources.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/zkex-sources.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/zkex-sources.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/zkex.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/zkex.jar" sourcepath="lib/zkex-sources.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/zkmax-sources.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/zkmax-sources.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/zkmax.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/zkmax.jar" sourcepath="lib/zkmax-sources.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/zkplus-sources.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/zkplus-sources.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/zkplus.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/zkplus.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/zml-sources.jar"/>
|
<classpathentry exported="true" kind="lib" path="lib/zml-sources.jar"/>
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue