Inventory item is not changing position on drop

Here my items code

public class ItemInteraction : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler, IPointerEnterHandler, IPointerExitHandler { private Item item; public int slotID; private GameObject inventory; private Inventory invScript; private GameObject visualItem; public GameObject slotToDrop; private Transform originalParent; private Vector2 offset; private GameObject tooltip; private Tooltip tooltipScript;

public void Start()
{

    inventory = GameObject.FindGameObjectWithTag("InventoryPanel");
    invScript = inventory.GetComponent<Inventory>();

    tooltip = GameObject.FindGameObjectWithTag("Tooltip");
    tooltipScript = inventory.GetComponent<Tooltip>();
    originalParent = this.transform.parent;


}


public void OnBeginDrag(PointerEventData eventData)
{
    this.transform.SetParent(this.transform.parent.parent.parent);
    offset = eventData.position - new Vector2(this.transform.position.x, this.transform.position.y);
    this.transform.position = eventData.position - offset;
}

public void OnDrag(PointerEventData eventData)
{
    this.transform.position = eventData.position;
}

public void OnEndDrag(PointerEventData eventData)
{
    this.transform.SetParent(originalParent);
    this.transform.position = originalParent.transform.position;

}public class ItemInteraction : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler, IPointerEnterHandler, IPointerExitHandler

{ private Item item; public int slotID; private GameObject inventory; private Inventory invScript; private GameObject visualItem; public GameObject slotToDrop; private Transform originalParent; private Vector2 offset; private GameObject tooltip; private Tooltip tooltipScript;

public void Start()
{

    inventory = GameObject.FindGameObjectWithTag("InventoryPanel");
    invScript = inventory.GetComponent<Inventory>();

    tooltip = GameObject.FindGameObjectWithTag("Tooltip");
    tooltipScript = inventory.GetComponent<Tooltip>();
    originalParent = this.transform.parent;


}


public void OnBeginDrag(PointerEventData eventData)
{
    this.transform.SetParent(this.transform.parent.parent.parent);
    offset = eventData.position - new Vector2(this.transform.position.x, this.transform.position.y);
    this.transform.position = eventData.position - offset;
}

public void OnDrag(PointerEventData eventData)
{
    this.transform.position = eventData.position;
}

public void OnEndDrag(PointerEventData eventData)
{
    this.transform.SetParent(originalParent);
    this.transform.position = originalParent.transform.position;

}
/r/Unity2D Thread