public function getStoreValue($data = null)
    {

        // If Overrite Value
        if (isset($this->value) && $this->overwriteValue) {
            return $this->value;
        }

        // If user have user input value
        if ($data != null && isset($data[$this->getName()])) {

            // Process the value by FieldType
            // For example, HTML5's datetime-local is unable insert into the database directly. So the DateTimeLocal have to convert it to the proper format.
            return $this->fieldType->beforeStoreValue($data[$this->getName()]);
        }

        return $this->value;
    }