Example #1
0
        /**
         *  Create Asset Delivery for HTTP Request
         *  @param asset asset
         *  @param request request
         *  @param AD_User_ID BP Contact
         */
        //public MAssetDelivery(MAsset asset,
        //    HttpServletRequest request, int AD_User_ID)
        //{
        //    base(asset.getCtx(), 0, asset.get_TrxName());
        //    setClientOrg(asset);
        //    //	Asset Info
        //    setA_Asset_ID(asset.getA_Asset_ID());
        //    setLot(asset.getLot());
        //    setSerNo(asset.getSerNo());
        //    setVersionNo(asset.getVersionNo());
        //    //
        //    SetMovementDate(new DateTime(System.currentTimeMillis()));
        //    //	Request
        //    setURL(request.getRequestURL().toString());
        //    setReferrer(request.getHeader("Referer"));
        //    setRemote_Addr(request.getRemoteAddr());
        //    setRemote_Host(request.getRemoteHost());
        //    //	Who
        //    setAD_User_ID(AD_User_ID);
        //    //
        //    save();
        //}

        /**
         *  Create Asset Delivery for EMail
         *  @param asset asset
         *  @param email optional email
         *  @param messageID access ID
         *  @param AD_User_ID BP Contact
         */
        public MAssetDelivery(MAsset asset, EMail email, String messageID, int AD_User_ID)
            : base(asset.GetCtx(), 0, asset.Get_TrxName())
        {
            SetClientOrg(asset);
            //	Asset Info
            SetA_Asset_ID(asset.GetA_Asset_ID());
            SetLot(asset.GetLot());
            SetSerNo(asset.GetSerNo());
            SetVersionNo(asset.GetVersionNo());
            //
            SetMovementDate(new DateTime(CommonFunctions.CurrentTimeMillis()));
            //	EMail
            if (email != null)
            {
                SetEMail(email.GetTo().ToString());
                SetMessageID(email.GetMessageID());
            }
            else
            {
                SetMessageID(messageID);
            }
            //	Who
            SetAD_User_ID(AD_User_ID);
            //
            Save();
        }
        /// <summary>
        /// Get Asset From Shipment.
        /// (Order.reverseCorrect)
        /// </summary>
        /// <param name="ctx">context</param>
        /// <param name="M_InOutLine_ID">shipment line</param>
        /// <param name="trxName">transaction</param>
        /// <returns>asset or null</returns>
        public static MAsset GetFromShipment(Ctx ctx, int M_InOutLine_ID, Trx trxName)
        {
            MAsset  retValue = null;
            String  sql      = "SELECT * FROM A_Asset WHERE M_InOutLine_ID=" + M_InOutLine_ID;
            DataSet ds       = new DataSet();

            try
            {
                ds = DB.ExecuteDataset(sql, null, trxName);
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    DataRow dr = ds.Tables[0].Rows[i];
                    retValue = new MAsset(ctx, dr, trxName);
                }
                ds = null;
            }
            catch (Exception e)
            {
                _log.Log(Level.SEVERE, sql, e);
            }

            return(retValue);
        }
        /**
         *  Create Trial Asset
         *	@param ctx context
         *	@param user user
         *	@param entityType entity type
         *	@return asset or null if no product found
         */
        public static MAsset GetTrial(Ctx ctx, MUser user, String entityType)
        {
            if (user == null)
            {
                _log.Warning("Cannot create Trial - No User");
                return(null);
            }
            if (Util.IsEmpty(entityType))
            {
                _log.Warning("Cannot create Trial - No Entity Type");
                return(null);
            }
            MProduct product = MProduct.GetTrial(ctx, entityType);

            if (product == null)
            {
                _log.Warning("No Trial for Entity Type=" + entityType);
                return(null);
            }
            //
            DateTime now = Convert.ToDateTime(CommonFunctions.CurrentTimeMillis());
            //
            MAsset asset = new MAsset(ctx, 0, null);

            asset.SetClientOrg(user);
            asset.SetAssetServiceDate(now);
            asset.SetIsOwned(false);
            asset.SetIsTrialPhase(true);
            //
            MBPartner partner    = new MBPartner(ctx, user.GetC_BPartner_ID(), null);
            String    documentNo = "Trial";
            //	Value
            String value = partner.GetValue() + "_" + product.GetValue();

            if (value.Length > 40 - documentNo.Length)
            {
                value = value.Substring(0, 40 - documentNo.Length) + documentNo;
            }
            asset.SetValue(value);
            //	Name		MProduct.afterSave
            String name = "Trial " + partner.GetName() + " - " + product.GetName();

            if (name.Length > 60)
            {
                name = name.Substring(0, 60);
            }
            asset.SetName(name);
            //	Description
            String description = product.GetDescription();

            asset.SetDescription(description);

            //	User
            asset.SetAD_User_ID(user.GetAD_User_ID());
            asset.SetC_BPartner_ID(user.GetC_BPartner_ID());
            //	Product
            asset.SetM_Product_ID(product.GetM_Product_ID());
            asset.SetA_Asset_Group_ID(product.GetA_Asset_Group_ID());
            asset.SetQty(new Decimal(product.GetSupportUnits()));
            //	Guarantee & Version
            asset.SetGuaranteeDate(TimeUtil.AddDays(now, product.GetTrialPhaseDays()));
            asset.SetVersionNo(product.GetVersionNo());
            //
            return(asset);
        }