Exemplo n.º 1
0
    public virtual void UseItem(IConsumableItem item)
    {
        Inventory  inventory = item.inventory;
        Metabolism local     = inventory.GetLocal <Metabolism>();

        if (local == null)
        {
            return;
        }
        if (!local.CanConsumeYet())
        {
            return;
        }
        local.MarkConsumptionTime();
        float single = Mathf.Min(local.GetRemainingCaloricSpace(), this.calories);

        if (this.calories > 0f)
        {
            local.AddCalories(single);
        }
        if (this.litresOfWater > 0f)
        {
            local.AddWater(this.litresOfWater);
        }
        if (this.antiRads > 0f)
        {
            local.AddAntiRad(this.antiRads);
        }
        if (this.healthToHeal != 0f)
        {
            HumanBodyTakeDamage humanBodyTakeDamage = inventory.GetLocal <HumanBodyTakeDamage>();
            if (humanBodyTakeDamage != null)
            {
                if (this.healthToHeal <= 0f)
                {
                    TakeDamage.HurtSelf(inventory.idMain, Mathf.Abs(this.healthToHeal), null);
                }
                else
                {
                    humanBodyTakeDamage.HealOverTime(this.healthToHeal);
                }
            }
        }
        if (this.poisonAmount > 0f)
        {
            local.AddPoison(this.poisonAmount);
        }
        int num = 1;

        if (item.Consume(ref num))
        {
            inventory.RemoveItem(item.slot);
        }
    }
Exemplo n.º 2
0
        /// <summary>
        /// Issues the consumable.
        /// </summary>
        /// <param name="patientID">The patient identifier.</param>
        /// <param name="issueDate">The issue date.</param>
        /// <param name="userID">The user identifier.</param>
        /// <param name="item">The item.</param>
        /// <param name="quantity">The quantity.</param>
        /// <exception cref="System.NotImplementedException"></exception>
        public void IssueConsumable(int itemID, int itemTypeID, string itemName, float sellingPrice, int patientID, int LocationID, DateTime issueDate, int userID, int quantity, int moduleID, bool itemConsumed = true)
        {
            lock (this)
            {
                IConsumableItem item = (IConsumableItem)this;
                item.ItemID       = itemID;
                item.ItemName     = itemName;
                item.ItemTypeID   = itemTypeID;
                item.SellingPrice = sellingPrice;
                float     _discount   = item.CalculateDiscount(patientID, issueDate, moduleID);
                ClsObject objItemList = new ClsObject();
                ClsUtility.Init_Hashtable();


                ClsUtility.AddExtendedParameters("@PatientID", SqlDbType.Int, patientID);
                ClsUtility.AddExtendedParameters("@LocationID", SqlDbType.Int, LocationID);
                ClsUtility.AddExtendedParameters("@ModuleID", SqlDbType.Int, moduleID);
                ClsUtility.AddParameters("@DateIssued", SqlDbType.DateTime, issueDate.ToString("dd-MMM-yyyy"));
                ClsUtility.AddParameters("@ItemId", SqlDbType.Int, itemID.ToString());
                ClsUtility.AddParameters("@ItemTypeID", SqlDbType.Int, itemTypeID.ToString());
                ClsUtility.AddParameters("@Quantity", SqlDbType.Int, quantity.ToString());
                ClsUtility.AddParameters("@SellingPrice", SqlDbType.Int, sellingPrice.ToString());
                ClsUtility.AddParameters("@UserId", SqlDbType.Int, userID.ToString());
                DataRow row = (DataRow)objItemList.ReturnObject(ClsUtility.theParams, "dbo.pr_Clinical_IssueItemToPatient", ClsDBUtility.ObjectEnum.DataRow);


                if (item.SellingPrice > 0 && (item.SellingPrice - _discount) > 0 && row != null)
                {
                    objItemList = new ClsObject();
                    ClsUtility.Init_Hashtable();
                    // ClsUtility.AddExtendedParameters("@BillID", SqlDbType.Int, DBNull.Value);
                    ClsUtility.AddExtendedParameters("@PatientID", SqlDbType.Int, patientID);
                    ClsUtility.AddExtendedParameters("@ModuleID", SqlDbType.Int, moduleID);
                    ClsUtility.AddExtendedParameters("@LocationID", SqlDbType.Int, LocationID);
                    //ClsUtility.AddExtendedParameters("@billItemID", SqlDbType.Int, DBNull.Value);
                    ClsUtility.AddExtendedParameters("@ItemSourceReferenceID", SqlDbType.Int, row["PatientItemID"].ToString());
                    ClsUtility.AddParameters("@BillItemDate", SqlDbType.DateTime, issueDate.ToString("dd-MMM-yyyy"));
                    //ClsUtility.AddExtendedParameters("@PaymentType", SqlDbType.Int, DBNull.Value);
                    ClsUtility.AddParameters("@ItemId", SqlDbType.Int, itemID.ToString());
                    ClsUtility.AddParameters("@ItemName", SqlDbType.VarChar, itemName);
                    ClsUtility.AddParameters("@ItemType", SqlDbType.Int, itemTypeID.ToString());
                    ClsUtility.AddParameters("@Quantity", SqlDbType.Int, quantity.ToString());
                    ClsUtility.AddParameters("@SellingPrice", SqlDbType.Int, item.SellingPrice.ToString());
                    ClsUtility.AddParameters("@PaymentStatus ", SqlDbType.Int, "0");
                    ClsUtility.AddParameters("@Discount", SqlDbType.Int, _discount.ToString());
                    ClsUtility.AddParameters("@UserId", SqlDbType.Int, userID.ToString());
                    ClsUtility.AddParameters("@ServiceStatus", SqlDbType.Int, itemConsumed ? "1" : "0");
                    objItemList.ReturnObject(ClsUtility.theParams, "dbo.pr_Billing_SaveBillItem", ClsDBUtility.ObjectEnum.ExecuteNonQuery);
                }
            }
        }