예제 #1
0
 /**
  *  Parent Constructor (old)
  *	@param product parent
  *	@param C_AcctSchema_ID accounting schema
  */
 public MProductCosting(MProduct product, int C_AcctSchema_ID)
     : base(product.GetCtx(), 0, product.Get_TrxName())
 {
     SetClientOrg(product);
     SetM_Product_ID(product.GetM_Product_ID());
     SetC_AcctSchema_ID(C_AcctSchema_ID);
 }
        public static MCostForeignCurrency Get(MProduct product, int M_AttributeSetInstance_ID, int AD_Org_ID, int M_CostElement_ID,
                                               int C_BPartner_ID, int C_Currency_ID)
        {
            MCostForeignCurrency foreignCurrency = null;
            String sql = "SELECT * "
                         + "FROM M_Cost_ForeignCurrency c "
                         + "WHERE AD_Client_ID=" + product.GetAD_Client_ID() + " AND AD_Org_ID=" + AD_Org_ID
                         + " AND M_Product_ID=" + product.GetM_Product_ID()
                         + " AND NVL(M_AttributeSetInstance_ID , 0) =" + M_AttributeSetInstance_ID
                         + " AND M_CostElement_ID=" + M_CostElement_ID
                         + " AND C_BPartner_ID = " + C_BPartner_ID
                         + " AND C_Currency_ID = " + C_Currency_ID;
            DataTable   dt  = null;
            IDataReader idr = null;

            try
            {
                idr = DB.ExecuteReader(sql, null, product.Get_TrxName());
                dt  = new DataTable();
                dt.Load(idr);
                idr.Close();
                foreach (DataRow dr in dt.Rows)
                {
                    foreignCurrency = new MCostForeignCurrency(product.GetCtx(), dr, product.Get_TrxName());
                }
            }
            catch (Exception e)
            {
                if (idr != null)
                {
                    idr.Close();
                }
                _log.Log(Level.SEVERE, sql, e);
            }
            finally { dt = null; }

            //	New
            if (foreignCurrency == null)
            {
                foreignCurrency = new MCostForeignCurrency(AD_Org_ID, product, M_AttributeSetInstance_ID,
                                                           M_CostElement_ID, C_BPartner_ID, C_Currency_ID);
            }
            return(foreignCurrency);
        }
예제 #3
0
 /// <summary>
 /// Parent Constructor
 /// </summary>
 /// <param name="parent"></param>
 public MUOMConversion(MProduct parent)
     : this(parent.GetCtx(), 0, parent.Get_TrxName())
 {
     SetClientOrg(parent);
     SetC_UOM_ID(parent.GetC_UOM_ID());
     SetM_Product_ID(parent.GetM_Product_ID());
     SetC_UOM_To_ID(parent.GetC_UOM_ID());
     SetMultiplyRate(Env.ONE);
     SetDivideRate(Env.ONE);
 }
        /**
         *  Get array of active Locators for Product and warehouse ordered by priority
         *	@param product product
         *	@param M_Warehouse_ID wh
         *	@return product locators
         */
        public static MLocator[] GetLocators(MProduct product, int M_Warehouse_ID)
        {
            List <MLocator> list = new List <MLocator>();
            String          sql  = "SELECT * FROM M_Locator l "
                                   + "WHERE l.IsActive='Y'"
                                   + " AND (M_Locator_ID IN (SELECT M_Locator_ID FROM M_Product WHERE M_Product_ID=" + product.GetM_Product_ID() + ")"
                                   + " OR M_Locator_ID IN (SELECT M_Locator_ID FROM M_ProductLocator WHERE M_Product_ID=" + product.GetM_Product_ID() + " AND IsActive='Y'))"
                                   + " AND M_Warehouse_ID=" + M_Warehouse_ID
                                   + "ORDER BY PriorityNo DESC";
            DataTable   dt  = null;
            IDataReader idr = null;

            try
            {
                idr = DataBase.DB.ExecuteReader(sql, null, product.Get_TrxName());
                dt  = new DataTable();
                dt.Load(idr);
                idr.Close();
                foreach (DataRow dr in dt.Rows)
                {
                    list.Add(new MLocator(product.GetCtx(), dr, product.Get_TrxName()));
                }
            }
            catch (Exception e)
            {
                if (idr != null)
                {
                    idr.Close();
                }
                _log.Log(Level.SEVERE, sql, e);
            }
            finally {
                if (idr != null)
                {
                    idr.Close();
                }
                dt = null;
            }
            MLocator[] retValue = new MLocator[list.Count];
            retValue = list.ToArray();
            return(retValue);
        }
 public MCostForeignCurrency(int AD_Org_ID, MProduct product, int M_AttributeSetInstance_ID,
                             int M_CostElement_ID, int C_BPartner_ID, int C_Currency_ID)
     : this(product.GetCtx(), 0, product.Get_TrxName())
 {
     SetClientOrg(product.GetAD_Client_ID(), AD_Org_ID);
     SetM_Product_ID(product.GetM_Product_ID());
     SetM_AttributeSetInstance_ID(M_AttributeSetInstance_ID);
     SetM_CostElement_ID(M_CostElement_ID);
     SetC_BPartner_ID(C_BPartner_ID);
     SetC_Currency_ID(C_Currency_ID);
 }
        /**
         *  Get First M_Locator_ID for product and Warehouse ordered by priority of Locator
         *	@param product product
         *	@param M_Warehouse_ID wh
         *	@return locator or 0 if none
         */
        public static int GetFirstM_Locator_ID(MProduct product, int M_Warehouse_ID)
        {
            if (product == null || M_Warehouse_ID == 0)
            {
                return(0);
            }
            //
            int    M_Locator_ID = 0;
            String sql          = "SELECT M_Locator_ID FROM M_Locator l "
                                  + "WHERE l.IsActive='Y'"
                                  + " AND (M_Locator_ID IN (SELECT M_Locator_ID FROM M_Product WHERE M_Product_ID=" + product.GetM_Product_ID() + ")"
                                  + " OR M_Locator_ID IN (SELECT M_Locator_ID FROM M_ProductLocator WHERE M_Product_ID=" + product.GetM_Product_ID() + " AND IsActive='Y'))"
                                  + " AND M_Warehouse_ID= " + M_Warehouse_ID
                                  + "ORDER BY PriorityNo DESC";
            DataTable   dt  = null;
            IDataReader idr = null;

            try
            {
                idr = DataBase.DB.ExecuteReader(sql, null, product.Get_TrxName());
                dt  = new DataTable();
                dt.Load(idr);
                idr.Close();
                foreach (DataRow dr in dt.Rows)
                {
                    M_Locator_ID = Convert.ToInt32(dr[0]);// rs.getInt(1);
                }
            }
            catch (Exception e)
            {
                if (idr != null)
                {
                    idr.Close();
                }
                _log.Log(Level.SEVERE, sql, e);
            }
            finally {
                if (idr != null)
                {
                    idr.Close();
                }
                dt = null;
            }
            return(M_Locator_ID);
        }
예제 #7
0
 /**
  *  Get BOM Lines for Product
  *	@param product product
  *	@return array of BOMs
  */
 public static MProductBOM[] GetBOMLines(MProduct product)
 {
     return(GetBOMLines(product.GetCtx(), product.GetM_Product_ID(), product.Get_TrxName()));
 }