function run($request) { $db = DB::getConn(); if ($db instanceof PostgreSQLDatabase) { $exist = DB::query("SELECT column_name FROM information_schema.columns WHERE table_name ='PickUpOrDeliveryModifier' AND column_name = 'PickupOrDeliveryType'")->numRecords(); } else { // default is MySQL - broken for others, each database conn type supported must be checked for! $exist = DB::query("SHOW COLUMNS FROM \"PickUpOrDeliveryModifier\" LIKE 'PickupOrDeliveryType'")->numRecords(); } if ($exist > 0) { $defaultOption = PickUpOrDeliveryModifierOptions::get()->filter(array("IsDefault" => 1))->First(); $modifiers = PickUpOrDeliveryModifier::get()->filter(array("OptionID" => 0)); if ($modifiers->count()) { foreach ($modifiers as $modifier) { if (!isset($modifier->OptionID) || !$modifier->OptionID) { if (!isset(self::$options_old_to_new[$modifier->Code])) { $option = PickUpOrDeliveryModifierOptions::get()->filter(array("Code" => $modifier->Code))->First(); if (!$option) { $option = $defaultOption; } self::$options_old_to_new[$modifier->Code] = $option->ID; } $myOption = self::$options_old_to_new[$modifier->Code]; // USING QUERY TO UPDATE DB::query("UPDATE \"PickUpOrDeliveryModifier\" SET \"OptionID\" = " . $myOption . " WHERE \"PickUpOrDeliveryModifier\".\"ID\" = " . $modifier->ID); DB::alteration_message('Updated modifier #' . $modifier->ID . ' from code to option ID ' . $myOption, 'edited'); } } } } DB::alteration_message("<hr />COMPLETED<hr />", "created"); }
function getCMSFields() { $fields = parent::getCMSFields(); $fieldLabels = $this->Config()->get("field_labels"); $fields->replaceField("CountryCode", new DropDownField("CountryCode", $fieldLabels["CountryCode"], EcommerceCountry::get_country_dropdown())); return $fields; }
function requireDefaultRecords() { parent::requireDefaultRecords(); // we must check for individual database types here because each deals with schema in a none standard way $modifiers = PickUpOrDeliveryModifier::get()->filter(array("OptionID" => 0)); if ($modifiers->count()) { DB::alteration_message("You need to upgrade PickUpOrDeliveryModifier <a href=\"/dev/tasks/EcommerceTaskUpgradePickUpOrDeliveryModifier\">do it now!</a>", "deleted"); } }