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); } }
/// <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); } } }