// added By Amit 4-8-2015 VAMRP
        public static MProductPO GetOfVendorProduct(Ctx ctx, int C_BPartner_ID, int M_Product_ID, Trx trx)
        {
            MProductPO productPO = null;
            String     sql       = "SELECT * FROM M_Product_PO "
                                   + "WHERE C_BPartner_ID=" + C_BPartner_ID + " AND M_Product_ID = " + M_Product_ID;

            IDataReader idr = null;

            try
            {
                idr = DB.ExecuteReader(sql, null, trx);
                DataTable dt = new DataTable();
                dt.Load(idr);
                idr.Close();
                if (dt.Rows.Count > 0)
                {
                    productPO = (new MProductPO(ctx, dt.Rows[0], trx));
                }
            }
            catch (Exception ex)
            {
                _log.Log(Level.SEVERE, sql, ex);
            }
            finally
            {
                if (idr != null)
                {
                    idr.Close();
                    idr = null;
                }
            }
            return(productPO);
        }
        /*	Get current PO of Product
         *  @param ctx context
         *	@param M_Product_ID product
         *	@param trxName transaction
         *	@return PO - current vendor first
         */
        public static MProductPO[] GetOfProduct(Ctx ctx, int M_Product_ID, Trx trxName)
        {
            List <MProductPO> list = new List <MProductPO>();
            String            sql  = "SELECT * FROM M_Product_PO "
                                     + "WHERE M_Product_ID=" + M_Product_ID + " AND IsActive='Y' "
                                     + "ORDER BY IsCurrentVendor DESC";
            DataTable   dt  = null;
            IDataReader idr = null;

            try
            {
                idr = DataBase.DB.ExecuteReader(sql, null, trxName);
                dt  = new DataTable();
                dt.Load(idr);
                idr.Close();
                foreach (DataRow dr in dt.Rows)
                {
                    list.Add(new MProductPO(ctx, dr, trxName));
                }
            }
            catch (Exception ex)
            {
                if (idr != null)
                {
                    idr.Close();
                }
                _log.Log(Level.SEVERE, sql, ex);
            }
            finally {
                if (idr != null)
                {
                    idr.Close();
                }
                dt = null;
            }

            MProductPO[] retValue = new MProductPO[list.Count];
            retValue = list.ToArray();
            return(retValue);
        }