@Tyson @MBH2006 @Nahuel
Hello
We have made some years in 2015 lol, long time ago a tool to map/move services from one module to outher in this case was moving from "Blesta Universal Module" to "OpenSRS Module"
We only need the Services ID from Module A (cPanel) and Module B (Direct Admin)
Here is the code exemple on the Plugin:
public function install($plugin_id) {
$sendreport = null;
$module_A = array('1','2','3'); // put here the Service Package Id's from Module A
$module_B = array('4','5','6'); // put here the Service Package Id's equivalent to Module A to migrate
$module_migrate_map = array_map(null, $module_A, $module_B);
foreach ($module_migrate_map as &$value) {
$upackages = $this->Record->select(array("pricing_id","package_id"))->from("package_pricing")->where("package_pricing.package_id", "=", $value[0])->fetchAll();
$sendreport .= "Module A Package ID = ". $value[0]."\n";
foreach ($upackages as $upackage) {
$upricings = $this->Record->select(array("id","period","term"))->from("pricings")->where("pricings.id", "=", $upackage->pricing_id)->fetchAll();
$sendreport .= "Module A Package Price ID = ". $upackage->pricing_id."\n";
foreach ($upricings as $upricing) {
$gterm = $upricing->term;
if ($upricing->period == "month")
$gterm = ($upricing->term / 12);
$sendreport .= "Module A Price Period = ". $upricing->period."\n";
$sendreport .= "Module A Package Price Term = ". $gterm." -> Original Term = ".$upricing->term." \n\n";
$sendreport .= "Module B Package ID = ". $value[1]."\n";
$opackages = $this->Record->select(array("pricing_id","package_id"))->from("package_pricing")->where("package_pricing.package_id", "=", $value[1])->fetchAll();
foreach ($opackages as $opackage) {
$sendreport .= "Module B Price ID = ". $opackage->pricing_id."\n";
$opricings = $this->Record->select(array("id","period","term"))->from("pricings")->where("pricings.id", "=", $opackage->pricing_id)->where("pricings.period", "=", "year")->where("pricings.term", "=", $gterm)->fetchAll();
foreach ($opricings as $opricing) {
$opricingid = $opricing->id;
$sendreport .= "Module B Package Price Period = ". $opricing->period."\n";
$sendreport .= "Module B Package Price Term = ". $opricing->term."\n";
$sendreport .= "\n\n---------------BEGINING---------------\n";
$oservices = $this->Record->select(array("id"))->from("services")->where("pricing_id", "=", $upricing->id)->fetchAll();
foreach ($oservices as $oservice) {
$sendreport .= "Migrate from A to B Imported Service ID = ". $oservice->id."\n";
$this->Record->where("pricing_id", "=", $upricing->id)->where("module_row_id", "=", "2")->update("services", array("pricing_id"=>$opricingid, "module_row_id"=>"3"));
$this->Record->where("service_id", "=", $oservice->id)->where("key", "=", "user1")->update("service_fields", array("key"=>"domain"));
$this->Record->from("service_fields")->where("service_id", "=", $oservice->id)->where("key", "in", array("opt1","opt2","pass","user2"))->delete();
}
$sendreport .= "\n------------------END-------------------\n\n";
}
}
}
}
$sendreport .= "\n\n";
}
mail("notify@mydomain.com", "Blesta - Migrate from Module A to Module B Report", $sendreport);
}
Hope this help someone
Regards,
PV