IDEMPIERE-3303 Material Transaction form not zooming to Project

This commit is contained in:
Carlos Ruiz 2017-02-22 13:06:03 +01:00
parent 9014e90652
commit 9c2a2ef436
5 changed files with 36 additions and 108 deletions

View File

@ -146,16 +146,11 @@ public class SystemIDs
public final static int WINDOW_ACCOUNTCOMBINATION = 153; public final static int WINDOW_ACCOUNTCOMBINATION = 153;
public final static int WINDOW_CUSTOMERRETURN = 53097; public final static int WINDOW_CUSTOMERRETURN = 53097;
public final static int WINDOW_INVENTORYMOVE = 170;
public final static int WINDOW_LOT = 257; public final static int WINDOW_LOT = 257;
public final static int WINDOW_MATERIALRECEIPT = 184;
public final static int WINDOW_MATERIALTRANSACTIONS_INDIRECTUSER = 223; public final static int WINDOW_MATERIALTRANSACTIONS_INDIRECTUSER = 223;
public final static int WINDOW_MY_REQUESTS = 237; public final static int WINDOW_MY_REQUESTS = 237;
public final static int WINDOW_PHYSICALINVENTORY = 168;
public final static int WINDOW_PRODUCTION = 191;
public final static int WINDOW_REQUESTS_ALL = 232; public final static int WINDOW_REQUESTS_ALL = 232;
public final static int WINDOW_RETURNTOVENDOR = 53098; public final static int WINDOW_RETURNTOVENDOR = 53098;
public final static int WINDOW_SHIPMENT_CUSTOMER = 169;
public final static int WINDOW_WAREHOUSE_LOCATOR = 139; public final static int WINDOW_WAREHOUSE_LOCATOR = 139;
public final static int WINDOW_WINDOW_TAB_FIELD = 102; public final static int WINDOW_WINDOW_TAB_FIELD = 102;

View File

@ -2015,9 +2015,9 @@ public final class Env
public static int getZoomWindowID(int AD_Table_ID, int Record_ID, int windowNo) public static int getZoomWindowID(int AD_Table_ID, int Record_ID, int windowNo)
{ {
int AD_Window_ID = MZoomCondition.findZoomWindowByTableId(AD_Table_ID, Record_ID, windowNo); int AD_Window_ID = MZoomCondition.findZoomWindowByTableId(AD_Table_ID, Record_ID, windowNo);
MTable table = MTable.get(Env.getCtx(), AD_Table_ID);
if (AD_Window_ID <= 0) if (AD_Window_ID <= 0)
{ {
MTable table = MTable.get(Env.getCtx(), AD_Table_ID);
AD_Window_ID = table.getAD_Window_ID(); AD_Window_ID = table.getAD_Window_ID();
// Nothing to Zoom to // Nothing to Zoom to
if (AD_Window_ID == 0) if (AD_Window_ID == 0)

View File

@ -32,7 +32,6 @@ import java.util.logging.Level;
import javax.swing.JLabel; import javax.swing.JLabel;
import org.compiere.apps.AEnv; import org.compiere.apps.AEnv;
import org.compiere.apps.AWindow;
import org.compiere.apps.ConfirmPanel; import org.compiere.apps.ConfirmPanel;
import org.compiere.apps.StatusBar; import org.compiere.apps.StatusBar;
import org.compiere.grid.GridController; import org.compiere.grid.GridController;
@ -285,17 +284,7 @@ public class VTrxMaterial extends TrxMaterial
super.zoom(); super.zoom();
// Zoom // Zoom
panel.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); AEnv.zoom(AD_Table_ID, Record_ID);
AWindow frame = new AWindow(panel.getGraphicsConfiguration());
if (!frame.initWindow(AD_Window_ID, query))
{
panel.setCursor(Cursor.getDefaultCursor());
return;
}
AEnv.addToWindowManager(frame);
AEnv.showCenterScreen(frame);
frame = null;
panel.setCursor(Cursor.getDefaultCursor());
} // zoom } // zoom
} // VTrxMaterial } // VTrxMaterial

View File

@ -66,12 +66,6 @@ import org.zkoss.zul.Separator;
public class WTrxMaterial extends TrxMaterial public class WTrxMaterial extends TrxMaterial
implements IFormController, EventListener<Event>, ValueChangeListener implements IFormController, EventListener<Event>, ValueChangeListener
{ {
/**
*
*/
@SuppressWarnings("unused")
private static final long serialVersionUID = -2141669182129214237L;
private CustomForm form = new CustomForm(); private CustomForm form = new CustomForm();
/** GridController */ /** GridController */
@ -285,7 +279,7 @@ public class WTrxMaterial extends TrxMaterial
super.zoom(); super.zoom();
// Zoom // Zoom
AEnv.zoom(AD_Window_ID, query); AEnv.zoom(AD_Table_ID, Record_ID);
} // zoom } // zoom
public ADForm getForm() public ADForm getForm()

View File

@ -13,9 +13,8 @@
*****************************************************************************/ *****************************************************************************/
package org.compiere.apps.form; package org.compiere.apps.form;
import java.sql.PreparedStatement; import static org.compiere.model.SystemIDs.WINDOW_MATERIALTRANSACTIONS_INDIRECTUSER;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.logging.Level; import java.util.logging.Level;
@ -23,10 +22,14 @@ import org.compiere.apps.IStatusBar;
import org.compiere.model.GridTab; import org.compiere.model.GridTab;
import org.compiere.model.GridWindow; import org.compiere.model.GridWindow;
import org.compiere.model.GridWindowVO; import org.compiere.model.GridWindowVO;
import org.compiere.model.I_C_ProjectIssue;
import org.compiere.model.I_M_InOutLine;
import org.compiere.model.I_M_InventoryLine;
import org.compiere.model.I_M_MovementLine;
import org.compiere.model.I_M_ProductionLine;
import org.compiere.model.I_M_Transaction;
import org.compiere.model.MQuery; import org.compiere.model.MQuery;
import static org.compiere.model.SystemIDs.*;
import org.compiere.util.CLogger; import org.compiere.util.CLogger;
import org.compiere.util.DB;
import org.compiere.util.Env; import org.compiere.util.Env;
import org.compiere.util.Msg; import org.compiere.util.Msg;
@ -108,9 +111,8 @@ public class TrxMaterial {
statusBar.setStatusDB(Integer.toString(no)); statusBar.setStatusDB(Integer.toString(no));
} // refresh } // refresh
public int AD_Window_ID; public int AD_Table_ID;
public MQuery query; public int Record_ID;
/** /**
* Zoom * Zoom
*/ */
@ -118,85 +120,33 @@ public class TrxMaterial {
{ {
log.info(""); log.info("");
// //
AD_Window_ID = 0; AD_Table_ID = 0;
String ColumnName = null; Record_ID = Env.getContextAsInt(Env.getCtx(), m_WindowNo, I_M_Transaction.COLUMNNAME_M_InOutLine_ID);
String SQL = null; if (Record_ID != 0) {
// AD_Table_ID = I_M_InOutLine.Table_ID;
int lineID = Env.getContextAsInt(Env.getCtx(), m_WindowNo, "M_InOutLine_ID"); } else {
if (lineID != 0) Record_ID = Env.getContextAsInt(Env.getCtx(), m_WindowNo, I_M_Transaction.COLUMNNAME_M_InventoryLine_ID);
{ if (Record_ID != 0) {
if (log.isLoggable(Level.FINE)) log.fine("M_InOutLine_ID=" + lineID); AD_Table_ID = I_M_InventoryLine.Table_ID;
if (Env.getContext(Env.getCtx(), m_WindowNo, "MovementType").startsWith("C")) } else {
AD_Window_ID = WINDOW_SHIPMENT_CUSTOMER; // Customer Record_ID = Env.getContextAsInt(Env.getCtx(), m_WindowNo, I_M_Transaction.COLUMNNAME_M_MovementLine_ID);
else if (Record_ID != 0) {
AD_Window_ID = WINDOW_MATERIALRECEIPT; // Vendor AD_Table_ID = I_M_MovementLine.Table_ID;
ColumnName = "M_InOut_ID"; } else {
SQL = "SELECT M_InOut_ID FROM M_InOutLine WHERE M_InOutLine_ID=?"; Record_ID = Env.getContextAsInt(Env.getCtx(), m_WindowNo, I_M_Transaction.COLUMNNAME_M_ProductionLine_ID);
} if (Record_ID != 0) {
else AD_Table_ID = I_M_ProductionLine.Table_ID;
{ } else {
lineID = Env.getContextAsInt(Env.getCtx(), m_WindowNo, "M_InventoryLine_ID"); Record_ID = Env.getContextAsInt(Env.getCtx(), m_WindowNo, I_M_Transaction.COLUMNNAME_C_ProjectIssue_ID);
if (lineID != 0) if (Record_ID != 0) {
{ AD_Table_ID = I_C_ProjectIssue.Table_ID;
if (log.isLoggable(Level.FINE)) log.fine("M_InventoryLine_ID=" + lineID); } else {
AD_Window_ID = WINDOW_PHYSICALINVENTORY; log.warning("Not found zoom table WindowNo=" + m_WindowNo);
ColumnName = "M_Inventory_ID"; }
SQL = "SELECT M_Inventory_ID FROM M_InventoryLine WHERE M_InventoryLine_ID=?";
}
else
{
lineID = Env.getContextAsInt(Env.getCtx(), m_WindowNo, "M_MovementLine_ID");
if (lineID != 0)
{
if (log.isLoggable(Level.FINE)) log.fine("M_MovementLine_ID=" + lineID);
AD_Window_ID = WINDOW_INVENTORYMOVE;
ColumnName = "M_Movement_ID";
SQL = "SELECT M_Movement_ID FROM M_MovementLine WHERE M_MovementLine_ID=?";
}
else
{
lineID = Env.getContextAsInt(Env.getCtx(), m_WindowNo, "M_ProductionLine_ID");
if (lineID != 0)
{
if (log.isLoggable(Level.FINE)) log.fine("M_ProductionLine_ID=" + lineID);
AD_Window_ID = WINDOW_PRODUCTION;
ColumnName = "M_Production_ID";
SQL = "SELECT M_Production_ID FROM M_ProductionLine WHERE M_ProductionLine_ID=?";
} }
else
if (log.isLoggable(Level.FINE)) log.fine("Not found WindowNo=" + m_WindowNo);
} }
} }
} }
if (AD_Window_ID == 0)
return;
// Get Parent ID
int parentID = 0;
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
pstmt = DB.prepareStatement(SQL, null);
pstmt.setInt(1, lineID);
rs = pstmt.executeQuery();
if (rs.next())
parentID = rs.getInt(1);
}
catch (SQLException e)
{
log.log(Level.SEVERE, SQL, e);
}
finally
{
DB.close(rs, pstmt);
rs = null;
pstmt = null;
}
query = MQuery.getEqualQuery(ColumnName, parentID);
if (log.isLoggable(Level.CONFIG)) log.config("AD_Window_ID=" + AD_Window_ID + " - " + query);
if (parentID == 0)
log.log(Level.SEVERE, "No ParentValue - " + SQL + " - " + lineID);
} // zoom } // zoom