VTreeBOM:
* reorganized imports * fixed indentation * refactor some code * cleanup
This commit is contained in:
parent
13e407caff
commit
39d29a9116
|
@ -16,52 +16,16 @@
|
||||||
|
|
||||||
package org.eevolution.form;
|
package org.eevolution.form;
|
||||||
|
|
||||||
import org.compiere.apps.ConfirmPanel;
|
|
||||||
import org.compiere.apps.StatusBar;
|
|
||||||
import org.compiere.apps.form.FormFrame;
|
|
||||||
import org.compiere.apps.form.FormPanel;
|
|
||||||
|
|
||||||
import org.compiere.grid.ed.VLookup;
|
|
||||||
|
|
||||||
import org.eevolution.model.QueryDB;
|
|
||||||
|
|
||||||
import org.compiere.minigrid.MiniTable;
|
|
||||||
|
|
||||||
import org.compiere.model.MLookup;
|
|
||||||
import org.compiere.model.MLookupFactory;
|
|
||||||
import org.compiere.model.MProduct;
|
|
||||||
import org.compiere.model.MColumn;
|
|
||||||
import org.compiere.model.X_C_UOM;
|
|
||||||
import org.eevolution.model.X_PP_Product_BOM;
|
|
||||||
import org.eevolution.model.X_PP_Product_BOMLine;
|
|
||||||
import org.compiere.model.X_M_Product;
|
|
||||||
|
|
||||||
import org.compiere.swing.CCheckBox;
|
|
||||||
import org.compiere.swing.CLabel;
|
|
||||||
import org.compiere.swing.CPanel;
|
|
||||||
|
|
||||||
import org.compiere.util.DisplayType;
|
|
||||||
import org.compiere.util.Env;
|
|
||||||
import org.compiere.util.KeyNamePair;
|
|
||||||
import org.compiere.util.CLogger;
|
|
||||||
import org.compiere.util.Language;
|
|
||||||
import org.compiere.util.Msg;
|
|
||||||
|
|
||||||
import java.awt.BorderLayout;
|
import java.awt.BorderLayout;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.FlowLayout;
|
import java.awt.FlowLayout;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
|
|
||||||
import java.beans.PropertyChangeEvent;
|
import java.beans.PropertyChangeEvent;
|
||||||
import java.beans.PropertyChangeListener;
|
import java.beans.PropertyChangeListener;
|
||||||
import java.beans.VetoableChangeListener;
|
import java.beans.VetoableChangeListener;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
@ -79,8 +43,32 @@ import javax.swing.event.TreeSelectionListener;
|
||||||
import javax.swing.table.DefaultTableModel;
|
import javax.swing.table.DefaultTableModel;
|
||||||
import javax.swing.tree.DefaultMutableTreeNode;
|
import javax.swing.tree.DefaultMutableTreeNode;
|
||||||
|
|
||||||
|
import org.compiere.apps.ConfirmPanel;
|
||||||
|
import org.compiere.apps.StatusBar;
|
||||||
|
import org.compiere.apps.form.FormFrame;
|
||||||
|
import org.compiere.apps.form.FormPanel;
|
||||||
|
import org.compiere.grid.ed.VLookup;
|
||||||
|
import org.compiere.minigrid.MiniTable;
|
||||||
|
import org.compiere.model.MColumn;
|
||||||
|
import org.compiere.model.MLookup;
|
||||||
|
import org.compiere.model.MLookupFactory;
|
||||||
|
import org.compiere.model.MProduct;
|
||||||
|
import org.compiere.model.MUOM;
|
||||||
|
import org.compiere.model.Query;
|
||||||
|
import org.compiere.swing.CCheckBox;
|
||||||
|
import org.compiere.swing.CLabel;
|
||||||
|
import org.compiere.swing.CPanel;
|
||||||
|
import org.compiere.util.CLogger;
|
||||||
|
import org.compiere.util.DisplayType;
|
||||||
|
import org.compiere.util.Env;
|
||||||
|
import org.compiere.util.KeyNamePair;
|
||||||
|
import org.compiere.util.Language;
|
||||||
|
import org.compiere.util.Msg;
|
||||||
|
import org.eevolution.model.MPPProductBOM;
|
||||||
|
import org.eevolution.model.MPPProductBOMLine;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tree Maintenance
|
* BOM Tree Maintenance
|
||||||
*
|
*
|
||||||
* @author Victor Perez,Sergio Ramazzinag
|
* @author Victor Perez,Sergio Ramazzinag
|
||||||
* @version $Id: VTreeMaintenance.java,v 1.1 2004/03/20 04:35:51 jjanke Exp $
|
* @version $Id: VTreeMaintenance.java,v 1.1 2004/03/20 04:35:51 jjanke Exp $
|
||||||
|
@ -88,10 +76,15 @@ import javax.swing.tree.DefaultMutableTreeNode;
|
||||||
* 4Layers - MODIFICATIONS --------------------------------------------------------
|
* 4Layers - MODIFICATIONS --------------------------------------------------------
|
||||||
* 2005/04/12 Various improvements to the standard form (Sergio Ramazzina)
|
* 2005/04/12 Various improvements to the standard form (Sergio Ramazzina)
|
||||||
* 4Layers -------------------------------------------------------------------- end
|
* 4Layers -------------------------------------------------------------------- end
|
||||||
|
*
|
||||||
|
* @author Teo Sarca, SC ARHIPAC SERVICE SRL
|
||||||
*/
|
*/
|
||||||
public class VTreeBOM extends CPanel implements FormPanel, ActionListener,
|
public class VTreeBOM extends CPanel implements FormPanel, ActionListener,
|
||||||
ListSelectionListener, PropertyChangeListener, VetoableChangeListener,
|
ListSelectionListener, PropertyChangeListener, VetoableChangeListener,
|
||||||
TreeSelectionListener, TableModelListener {
|
TreeSelectionListener, TableModelListener
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tree Maintenance
|
* Tree Maintenance
|
||||||
*/
|
*/
|
||||||
|
@ -133,8 +126,8 @@ public class VTreeBOM extends CPanel implements FormPanel, ActionListener,
|
||||||
//private CTextField fieldRevision = new CTextField(8);
|
//private CTextField fieldRevision = new CTextField(8);
|
||||||
//private CLabel labelECN = new CLabel();
|
//private CLabel labelECN = new CLabel();
|
||||||
//private CTextField fieldECN = new CTextField(10);
|
//private CTextField fieldECN = new CTextField(10);
|
||||||
//private VDate dateFrom = new VDate ("DateFrom", false, false, true, DisplayType.Date, Msg.translate(Env.getCtx(), "DateFrom"));
|
//private VDate dateFrom = new VDate ("DateFrom", false, false, true, DisplayType.Date, Msg.translate(getCtx(), "DateFrom"));
|
||||||
//private VDate dateTo = new VDate ("DateTo", false, false, true, DisplayType.Date, Msg.translate(Env.getCtx(), "DateTo"));
|
//private VDate dateTo = new VDate ("DateTo", false, false, true, DisplayType.Date, Msg.translate(getCtx(), "DateTo"));
|
||||||
private CPanel southPanel = new CPanel();
|
private CPanel southPanel = new CPanel();
|
||||||
private BorderLayout southLayout = new BorderLayout();
|
private BorderLayout southLayout = new BorderLayout();
|
||||||
private ConfirmPanel confirmPanel = new ConfirmPanel(true);
|
private ConfirmPanel confirmPanel = new ConfirmPanel(true);
|
||||||
|
@ -148,6 +141,10 @@ public class VTreeBOM extends CPanel implements FormPanel, ActionListener,
|
||||||
private final int DIVIDER_LOCATION = 240;
|
private final int DIVIDER_LOCATION = 240;
|
||||||
// 4Layers - end
|
// 4Layers - end
|
||||||
|
|
||||||
|
public Properties getCtx() {
|
||||||
|
return Env.getCtx();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize Panel
|
* Initialize Panel
|
||||||
* @param WindowNo window
|
* @param WindowNo window
|
||||||
|
@ -178,7 +175,7 @@ public class VTreeBOM extends CPanel implements FormPanel, ActionListener,
|
||||||
*/
|
*/
|
||||||
private void preInit() throws Exception
|
private void preInit() throws Exception
|
||||||
{
|
{
|
||||||
Properties ctx = Env.getCtx();
|
Properties ctx = getCtx();
|
||||||
Language language = Language.getLoginLanguage(); // Base Language
|
Language language = Language.getLoginLanguage(); // Base Language
|
||||||
MLookup m_fieldProduct = MLookupFactory.get(ctx, m_WindowNo,
|
MLookup m_fieldProduct = MLookupFactory.get(ctx, m_WindowNo,
|
||||||
MColumn.getColumn_ID(MProduct.Table_Name, "M_Product_ID"),
|
MColumn.getColumn_ID(MProduct.Table_Name, "M_Product_ID"),
|
||||||
|
@ -191,7 +188,7 @@ public class VTreeBOM extends CPanel implements FormPanel, ActionListener,
|
||||||
splitPane.add (new JScrollPane(dataPane), JSplitPane.RIGHT);
|
splitPane.add (new JScrollPane(dataPane), JSplitPane.RIGHT);
|
||||||
dataPane.getViewport().add(tableBOM , null);
|
dataPane.getViewport().add(tableBOM , null);
|
||||||
|
|
||||||
DefaultMutableTreeNode parent = new DefaultMutableTreeNode(Msg.getElement(Env.getCtx(), "M_BOM_ID"));
|
DefaultMutableTreeNode parent = new DefaultMutableTreeNode(Msg.getElement(getCtx(), "M_BOM_ID"));
|
||||||
m_tree = new JTree(parent);
|
m_tree = new JTree(parent);
|
||||||
splitPane.add (m_tree, JSplitPane.LEFT);
|
splitPane.add (m_tree, JSplitPane.LEFT);
|
||||||
|
|
||||||
|
@ -215,23 +212,23 @@ public class VTreeBOM extends CPanel implements FormPanel, ActionListener,
|
||||||
// Header Info
|
// Header Info
|
||||||
columnNames = new Vector<String>(18);
|
columnNames = new Vector<String>(18);
|
||||||
|
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "Select")); // 0
|
columnNames.add(Msg.translate(getCtx(), "Select")); // 0
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "IsActive")); // 1
|
columnNames.add(Msg.translate(getCtx(), "IsActive")); // 1
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "Line")); // 2
|
columnNames.add(Msg.translate(getCtx(), "Line")); // 2
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "ValidFrom")); // 3
|
columnNames.add(Msg.translate(getCtx(), "ValidFrom")); // 3
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "ValidTo")); // 4
|
columnNames.add(Msg.translate(getCtx(), "ValidTo")); // 4
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "M_Product_ID")); // 5
|
columnNames.add(Msg.translate(getCtx(), "M_Product_ID")); // 5
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "C_UOM_ID")); // 6
|
columnNames.add(Msg.translate(getCtx(), "C_UOM_ID")); // 6
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "IsQtyPercentage")); // 7
|
columnNames.add(Msg.translate(getCtx(), "IsQtyPercentage")); // 7
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "QtyBatch")); // 8
|
columnNames.add(Msg.translate(getCtx(), "QtyBatch")); // 8
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "QtyBOM")); // 9
|
columnNames.add(Msg.translate(getCtx(), "QtyBOM")); // 9
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "IsCritical")); // 10
|
columnNames.add(Msg.translate(getCtx(), "IsCritical")); // 10
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "LeadTimeOffset")); // 11
|
columnNames.add(Msg.translate(getCtx(), "LeadTimeOffset")); // 11
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "Assay")); // 12
|
columnNames.add(Msg.translate(getCtx(), "Assay")); // 12
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "Scrap")); // 13
|
columnNames.add(Msg.translate(getCtx(), "Scrap")); // 13
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "IssueMethod")); // 14
|
columnNames.add(Msg.translate(getCtx(), "IssueMethod")); // 14
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "BackflushGroup")); // 15
|
columnNames.add(Msg.translate(getCtx(), "BackflushGroup")); // 15
|
||||||
columnNames.add(Msg.translate(Env.getCtx(), "Forecast")); // 16
|
columnNames.add(Msg.translate(getCtx(), "Forecast")); // 16
|
||||||
|
|
||||||
// Remove previous listeners
|
// Remove previous listeners
|
||||||
tableBOM.getModel().removeTableModelListener(this);
|
tableBOM.getModel().removeTableModelListener(this);
|
||||||
|
@ -281,15 +278,15 @@ public class VTreeBOM extends CPanel implements FormPanel, ActionListener,
|
||||||
// 4Layers - Set initial window dimension
|
// 4Layers - Set initial window dimension
|
||||||
this.setPreferredSize(new Dimension(640, 480));
|
this.setPreferredSize(new Dimension(640, 480));
|
||||||
|
|
||||||
//labelUOM.setText (Msg.getElement(Env.getCtx(), "C_UOM_ID"));
|
//labelUOM.setText (Msg.getElement(getCtx(), "C_UOM_ID"));
|
||||||
//fieldUOM.setEditable(false);
|
//fieldUOM.setEditable(false);
|
||||||
//labelDocument.setText (Msg.translate(Env.getCtx(), "Document"));
|
//labelDocument.setText (Msg.translate(getCtx(), "Document"));
|
||||||
//labelRevision.setText (Msg.translate(Env.getCtx(), "Revision"));
|
//labelRevision.setText (Msg.translate(getCtx(), "Revision"));
|
||||||
//labelECN.setText (Msg.translate(Env.getCtx(), "ECN"));
|
//labelECN.setText (Msg.translate(getCtx(), "ECN"));
|
||||||
|
|
||||||
labelProduct.setText (Msg.getElement(Env.getCtx(), "M_Product_ID"));
|
labelProduct.setText (Msg.getElement(getCtx(), "M_Product_ID"));
|
||||||
//implosion.setEnabled (false);
|
//implosion.setEnabled (false);
|
||||||
implosion.setText (Msg.getElement(Env.getCtx(), "Implosion"));
|
implosion.setText (Msg.getElement(getCtx(), "Implosion"));
|
||||||
//treeInfo.setText (" ");
|
//treeInfo.setText (" ");
|
||||||
//bAdd.setToolTipText("Add to Tree");
|
//bAdd.setToolTipText("Add to Tree");
|
||||||
//bAddAll.setToolTipText("Add ALL to Tree");
|
//bAddAll.setToolTipText("Add ALL to Tree");
|
||||||
|
@ -406,59 +403,28 @@ public class VTreeBOM extends CPanel implements FormPanel, ActionListener,
|
||||||
*/
|
*/
|
||||||
private void action_loadBOM()
|
private void action_loadBOM()
|
||||||
{
|
{
|
||||||
|
int M_Product_ID = getM_Product_ID();
|
||||||
Integer Product = (Integer)fieldProduct.getValue();
|
|
||||||
if (Product == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
int M_Product_ID = Product.intValue();
|
|
||||||
|
|
||||||
if (M_Product_ID == 0)
|
if (M_Product_ID == 0)
|
||||||
return;
|
return;
|
||||||
//System.out.println("Product ID" + Product);
|
MProduct M_Product = MProduct.get(getCtx(), M_Product_ID);
|
||||||
X_M_Product M_Product = new X_M_Product(Env.getCtx(), M_Product_ID,"M_Product");
|
DefaultMutableTreeNode parent = new DefaultMutableTreeNode(productSummary(M_Product, false));
|
||||||
X_C_UOM C_UOM = new X_C_UOM(Env.getCtx() , M_Product.getC_UOM_ID(), "C_UOM");
|
|
||||||
DefaultMutableTreeNode parent = new DefaultMutableTreeNode(Msg.getElement(Env.getCtx(), "M_Product_ID")
|
|
||||||
+ " "
|
|
||||||
+ Msg.getElement(Env.getCtx(), "Value")
|
|
||||||
+ ": "
|
|
||||||
+ M_Product.getValue()
|
|
||||||
+ " "
|
|
||||||
+ Msg.getElement(Env.getCtx(), "Name")
|
|
||||||
+ ": "
|
|
||||||
+ M_Product.getName()
|
|
||||||
+ " "
|
|
||||||
+ Msg.getElement(Env.getCtx(), "C_UOM_ID")
|
|
||||||
+ ": "
|
|
||||||
+ C_UOM.getName());
|
|
||||||
|
|
||||||
dataBOM.clear();
|
dataBOM.clear();
|
||||||
|
|
||||||
if (implosion.isSelected())
|
if (isImplosion())
|
||||||
{
|
{
|
||||||
QueryDB query = new QueryDB("org.eevolution.model.X_PP_Product_BOMLine");
|
for (MPPProductBOMLine bomline : getBOMLines(M_Product_ID))
|
||||||
String filter = "M_Product_ID=" + M_Product_ID;
|
|
||||||
List<Object> results = query.execute(filter);
|
|
||||||
Iterator<Object> select = results.iterator();
|
|
||||||
while (select.hasNext())
|
|
||||||
{
|
{
|
||||||
X_PP_Product_BOMLine bomline = (X_PP_Product_BOMLine) select.next();
|
parent.add(parent(bomline));
|
||||||
parent.add(parent(bomline));
|
|
||||||
}
|
}
|
||||||
m_tree = new JTree(parent);
|
m_tree = new JTree(parent);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QueryDB query = new QueryDB("org.eevolution.model.X_PP_Product_BOM");
|
for (MPPProductBOM bom : getBOMs(M_Product_ID, true))
|
||||||
String filter = " IsActive='Y' AND M_Product_ID =" + M_Product_ID;
|
|
||||||
List<Object> results = query.execute(filter);
|
|
||||||
Iterator<Object> select = results.iterator();
|
|
||||||
while (select.hasNext())
|
|
||||||
{
|
{
|
||||||
X_PP_Product_BOM bom = (X_PP_Product_BOM) select.next();
|
|
||||||
parent.add(parent(bom));
|
parent.add(parent(bom));
|
||||||
}
|
}
|
||||||
|
|
||||||
m_tree = new JTree(parent);
|
m_tree = new JTree(parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -478,26 +444,13 @@ public class VTreeBOM extends CPanel implements FormPanel, ActionListener,
|
||||||
|
|
||||||
} // action_fillTree
|
} // action_fillTree
|
||||||
|
|
||||||
public DefaultMutableTreeNode parent(X_PP_Product_BOMLine bomline)
|
public DefaultMutableTreeNode parent(MPPProductBOMLine bomline)
|
||||||
{
|
{
|
||||||
|
|
||||||
//System.out.println("-------------------------Parent:" + bom.getName());
|
//System.out.println("-------------------------Parent:" + bom.getName());
|
||||||
X_M_Product M_Product = new X_M_Product(Env.getCtx(), bomline.getM_Product_ID(),"M_Product");
|
MProduct M_Product = MProduct.get(getCtx(), bomline.getM_Product_ID());
|
||||||
X_C_UOM C_UOM = new X_C_UOM(Env.getCtx() , M_Product.getC_UOM_ID(),"C_UOM");
|
MPPProductBOM bomproduct = new MPPProductBOM(getCtx(), bomline.getPP_Product_BOM_ID(), null);
|
||||||
|
DefaultMutableTreeNode parent = new DefaultMutableTreeNode(productSummary(M_Product, false));
|
||||||
X_PP_Product_BOM bomproduct = new X_PP_Product_BOM(Env.getCtx(),bomline.getPP_Product_BOM_ID(),"PP_Product_BOM");
|
|
||||||
DefaultMutableTreeNode parent = new DefaultMutableTreeNode(Msg.getElement(Env.getCtx(), "M_Product_ID")
|
|
||||||
+ Msg.getElement(Env.getCtx(), "Value")
|
|
||||||
+ ": "
|
|
||||||
+ M_Product.getValue()
|
|
||||||
+ " "
|
|
||||||
+ Msg.getElement(Env.getCtx(), "Name")
|
|
||||||
+ ": "
|
|
||||||
+ M_Product.getName()
|
|
||||||
+ " "
|
|
||||||
+ Msg.getElement(Env.getCtx(), "C_UOM_ID")
|
|
||||||
+ ": "
|
|
||||||
+ C_UOM.getName());
|
|
||||||
|
|
||||||
Vector<Object> line = new Vector<Object>(17);
|
Vector<Object> line = new Vector<Object>(17);
|
||||||
line.add( new Boolean(false)); // 0 Select
|
line.add( new Boolean(false)); // 0 Select
|
||||||
|
@ -521,40 +474,26 @@ public class VTreeBOM extends CPanel implements FormPanel, ActionListener,
|
||||||
line.add( (BigDecimal) bomline.getForecast()); // 16 Forecast
|
line.add( (BigDecimal) bomline.getForecast()); // 16 Forecast
|
||||||
dataBOM.add(line);
|
dataBOM.add(line);
|
||||||
|
|
||||||
QueryDB query = new QueryDB("org.eevolution.model.X_PP_Product_BOM");
|
for (MPPProductBOM bom : getBOMs(bomproduct.getM_Product_ID(), false))
|
||||||
String filter = "M_Product_ID = " + bomproduct.getM_Product_ID();
|
|
||||||
List<Object> results = query.execute(filter);
|
|
||||||
Iterator<Object> select = results.iterator();
|
|
||||||
while (select.hasNext())
|
|
||||||
{
|
{
|
||||||
X_PP_Product_BOM bom = (X_PP_Product_BOM) select.next();
|
MProduct component = MProduct.get(getCtx(), bom.getM_Product_ID());
|
||||||
X_M_Product component = new X_M_Product(Env.getCtx(), bom.getM_Product_ID(),"M_Product");
|
|
||||||
return component(component);
|
return component(component);
|
||||||
}
|
}
|
||||||
return parent;
|
return parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DefaultMutableTreeNode parent(X_PP_Product_BOM bom)
|
public DefaultMutableTreeNode parent(MPPProductBOM bom)
|
||||||
{
|
{
|
||||||
|
|
||||||
// System.out.println("Parent:" + bom.getName());
|
// System.out.println("Parent:" + bom.getName());
|
||||||
// X_M_Product product = new X_M_Product(Env.getCtx(), bom.getM_Product_ID(),"M_Product");
|
// X_M_Product product = new X_M_Product(getCtx(), bom.getM_Product_ID(),"M_Product");
|
||||||
|
|
||||||
//vparent.setValue(m_product_id);
|
//vparent.setValue(m_product_id);
|
||||||
String data = Msg.getElement(Env.getCtx(), "PP_Product_BOM_ID") + " "
|
DefaultMutableTreeNode parent = new DefaultMutableTreeNode(productSummary(bom));
|
||||||
+ Msg.getElement(Env.getCtx(), "Value") + ":" + bom.getValue()
|
|
||||||
+ " " + Msg.getElement(Env.getCtx(), "Name") + ": "
|
|
||||||
+ bom.getName();
|
|
||||||
DefaultMutableTreeNode parent = new DefaultMutableTreeNode(data);
|
|
||||||
|
|
||||||
QueryDB query = new QueryDB("org.eevolution.model.X_PP_Product_BOMLine");
|
for (MPPProductBOMLine bomline : bom.getLines())
|
||||||
String filter = "PP_Product_BOM_ID=" + bom.getPP_Product_BOM_ID();
|
|
||||||
List<Object> results = query.execute(filter);
|
|
||||||
Iterator<Object> select = results.iterator();
|
|
||||||
while (select.hasNext())
|
|
||||||
{
|
{
|
||||||
X_PP_Product_BOMLine bomline = (X_PP_Product_BOMLine) select.next();
|
MProduct component = MProduct.get(getCtx(), bomline.getM_Product_ID());
|
||||||
X_M_Product component = new X_M_Product(Env.getCtx(), bomline.getM_Product_ID(),"M_Product");
|
|
||||||
//System.out.println("Componente :" + component.getValue() + "[" + component.getName() + "]");
|
//System.out.println("Componente :" + component.getValue() + "[" + component.getName() + "]");
|
||||||
//component(component);
|
//component(component);
|
||||||
Vector<Object> line = new Vector<Object>(17);
|
Vector<Object> line = new Vector<Object>(17);
|
||||||
|
@ -585,67 +524,25 @@ public class VTreeBOM extends CPanel implements FormPanel, ActionListener,
|
||||||
return parent;
|
return parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DefaultMutableTreeNode component(X_M_Product M_Product)
|
public DefaultMutableTreeNode component(MProduct M_Product)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (implosion.isSelected())
|
if (isImplosion())
|
||||||
{
|
{
|
||||||
//vparent.setValue(m_product_id);
|
DefaultMutableTreeNode parent = new DefaultMutableTreeNode(productSummary(M_Product, false));
|
||||||
//String data = Msg.getElement(Env.getCtx(), "PP_ProductBOM_ID") + ":" + Msg.getElement(Env.getCtx(), "Value") + ":"+ bom.getValue()+ " " + Msg.getElement(Env.getCtx(), "Name") + ": " + bom.getName();
|
for (MPPProductBOMLine bomline : getBOMLines(M_Product.getM_Product_ID()))
|
||||||
X_C_UOM C_UOM = new X_C_UOM(Env.getCtx(), M_Product.getC_UOM_ID(), "C_UOM");
|
|
||||||
DefaultMutableTreeNode parent = new DefaultMutableTreeNode(Msg.getElement(Env.getCtx(), "M_Product_ID")
|
|
||||||
+ Msg.getElement(Env.getCtx(), "Value")
|
|
||||||
+ ": "
|
|
||||||
+ M_Product.getValue()
|
|
||||||
+ " "
|
|
||||||
+ Msg.getElement(Env.getCtx(), "Name")
|
|
||||||
+ ": "
|
|
||||||
+ M_Product.getName()
|
|
||||||
+ " "
|
|
||||||
+ Msg.getElement(Env.getCtx(), "C_UOM_ID")
|
|
||||||
+ ": "
|
|
||||||
+ C_UOM.getName());
|
|
||||||
|
|
||||||
//System.out.print("Componet Product:" + M_Product.getName());
|
|
||||||
QueryDB query = new QueryDB("org.eevolution.model.X_PP_Product_BOMLine");
|
|
||||||
String filter = "M_Product_ID=" + M_Product.getM_Product_ID();
|
|
||||||
List<Object> results = query.execute(filter);
|
|
||||||
Iterator<Object> select = results.iterator();
|
|
||||||
while (select.hasNext())
|
|
||||||
{
|
{
|
||||||
X_PP_Product_BOMLine bomline = (X_PP_Product_BOMLine) select.next();
|
|
||||||
//System.out.print("--------------------------------------Componet BOM:" + bom.getName());
|
|
||||||
parent.add(parent(bomline));
|
parent.add(parent(bomline));
|
||||||
}
|
}
|
||||||
|
|
||||||
return parent;
|
return parent;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//System.out.print("--------------------------------------Component Product:" + M_Product.getName());
|
for (MPPProductBOM bom : getBOMs(M_Product.getValue()))
|
||||||
QueryDB query = new QueryDB("org.eevolution.model.X_PP_Product_BOM");
|
|
||||||
String filter = "Value='" + M_Product.getValue() + "'";
|
|
||||||
X_C_UOM C_UOM = new X_C_UOM(Env.getCtx() , M_Product.getC_UOM_ID(),"C_UOM");
|
|
||||||
List<Object> results = query.execute(filter);
|
|
||||||
Iterator<Object> select = results.iterator();
|
|
||||||
while (select.hasNext())
|
|
||||||
{
|
{
|
||||||
X_PP_Product_BOM bom = (X_PP_Product_BOM) select.next();
|
|
||||||
//System.out.print("--------------------------------------Component BOM:" + bom.getName());
|
|
||||||
return parent(bom);
|
return parent(bom);
|
||||||
}
|
}
|
||||||
|
return new DefaultMutableTreeNode(productSummary(M_Product, true));
|
||||||
return new DefaultMutableTreeNode(Msg.getElement(Env.getCtx(), "Value")
|
|
||||||
+ ": "
|
|
||||||
+ M_Product.getValue()
|
|
||||||
+ " "
|
|
||||||
+ Msg.getElement(Env.getCtx(), "Name")
|
|
||||||
+ ": "
|
|
||||||
+ M_Product.getName()
|
|
||||||
+ " "
|
|
||||||
+ Msg.getElement(Env.getCtx(), "C_UOM_ID")
|
|
||||||
+ ": "
|
|
||||||
+ C_UOM.getName());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -829,5 +726,80 @@ public class VTreeBOM extends CPanel implements FormPanel, ActionListener,
|
||||||
} // toString
|
} // toString
|
||||||
|
|
||||||
} // ListItem
|
} // ListItem
|
||||||
|
|
||||||
|
private String productSummary(MProduct product, boolean isLeaf) {
|
||||||
|
MUOM uom = MUOM.get(getCtx(), product.getC_UOM_ID());
|
||||||
|
//
|
||||||
|
StringBuffer sb = new StringBuffer();
|
||||||
|
if (!isLeaf) {
|
||||||
|
sb.append(Msg.getElement(getCtx(), "M_Product_ID"));
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Product Value
|
||||||
|
sb.append(" ");
|
||||||
|
sb.append(Msg.getElement(getCtx(), "Value")).append(": ").append(product.getValue());
|
||||||
|
//
|
||||||
|
// Product Name
|
||||||
|
sb.append(" ");
|
||||||
|
sb.append(Msg.getElement(getCtx(), "Name"))
|
||||||
|
.append(": ")
|
||||||
|
.append(product.get_Translation(MProduct.COLUMNNAME_Name));
|
||||||
|
;
|
||||||
|
//
|
||||||
|
// UOM
|
||||||
|
if (uom != null) {
|
||||||
|
sb.append(" ")
|
||||||
|
.append(Msg.getElement(getCtx(), "C_UOM_ID"))
|
||||||
|
.append(": ")
|
||||||
|
.append(uom.get_Translation(MUOM.COLUMNNAME_Name));
|
||||||
|
}
|
||||||
|
//
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isImplosion() {
|
||||||
|
return implosion.isSelected();
|
||||||
|
}
|
||||||
|
|
||||||
|
private int getM_Product_ID() {
|
||||||
|
Integer Product = (Integer)fieldProduct.getValue();
|
||||||
|
if (Product == null)
|
||||||
|
return 0;
|
||||||
|
return Product.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String productSummary(MPPProductBOM bom) {
|
||||||
|
return ""
|
||||||
|
+ Msg.getElement(getCtx(), "PP_Product_BOM_ID")
|
||||||
|
+ " " + Msg.getElement(getCtx(), "Value") + ":" + bom.getValue()
|
||||||
|
+ " " + Msg.getElement(getCtx(), "Name") + ": "
|
||||||
|
+ bom.get_Translation(MPPProductBOM.COLUMNNAME_Name)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<MPPProductBOM> getBOMs(String productValue)
|
||||||
|
{
|
||||||
|
int ad_client_id = Env.getAD_Client_ID(getCtx());
|
||||||
|
String filter = MPPProductBOM.COLUMNNAME_Value+"=? AND AD_Client_ID=?";
|
||||||
|
return new Query (getCtx(), MPPProductBOM.Table_Name, filter, null)
|
||||||
|
.setParameters(new Object[]{productValue, ad_client_id})
|
||||||
|
.list();
|
||||||
|
|
||||||
|
}
|
||||||
|
private List<MPPProductBOM> getBOMs(int M_Product_ID, boolean onlyActiveRecords)
|
||||||
|
{
|
||||||
|
String filter = MPPProductBOM.COLUMNNAME_M_Product_ID+"=?"
|
||||||
|
+(onlyActiveRecords ? " AND IsActive='Y'" : "");
|
||||||
|
return new Query(getCtx(), MPPProductBOM.Table_Name, filter, null)
|
||||||
|
.setParameters(new Object[]{M_Product_ID})
|
||||||
|
.list();
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<MPPProductBOMLine> getBOMLines(int M_Product_ID)
|
||||||
|
{
|
||||||
|
String filter = MPPProductBOMLine.COLUMNNAME_M_Product_ID+"=?";
|
||||||
|
return new Query(getCtx(), MPPProductBOMLine.Table_Name, filter, null)
|
||||||
|
.setParameters(new Object[]{M_Product_ID})
|
||||||
|
.list();
|
||||||
|
}
|
||||||
} // VTreeMaintenance
|
} // VTreeMaintenance
|
Loading…
Reference in New Issue