diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index 67c2d00fc78..107f68e4a89 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -54,6 +54,7 @@ require_once $dolibarr_main_document_root.'/commande/class/commande.class.php'; require_once $dolibarr_main_document_root.'/fourn/class/fournisseur.commande.class.php'; require_once $dolibarr_main_document_root.'/core/lib/price.lib.php'; require_once $dolibarr_main_document_root.'/core/class/menubase.class.php'; +require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php'; require_once $dolibarr_main_document_root.'/core/lib/files.lib.php'; global $langs; @@ -517,10 +518,11 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ */ // Scripts for 20.0 - /*$afterversionarray = explode('.', '19.0.9'); + $afterversionarray = explode('.', '19.0.9'); $beforeversionarray = explode('.', '20.0.9'); if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - }*/ + migrate_invoice_export_models(); + } // Scripts for 21.0 $afterversionarray = explode('.', '20.0.9'); @@ -5133,3 +5135,75 @@ function migrate_contractdet_rank() print ''.$langs->trans("NothingToDo")."\n"; } } + +/** + * Invoice exports been shifted (facture_1 => facture_0, facture_2 => facture_1) in version 20, shift export models accordingly + * + * @return void + */ +function migrate_invoice_export_models() +{ + global $db, $langs; + + $lock = getDolGlobalInt('MIGRATION_FLAG_INVOICE_MODELS_V20'); + + $firstInstallVersion = getDolGlobalString('MAIN_VERSION_FIRST_INSTALL', DOL_VERSION); + $migrationNeeded = (versioncompare(explode('.', $firstInstallVersion, 3), array(20, 0, -5)) < 0 && !$lock); + + print ''; + print ''.$langs->trans('InvoiceExportModelsMigration').": \n"; + + if (! $migrationNeeded) { + print $langs->trans("AlreadyDone"); + print ''; + dolibarr_set_const($db, 'MIGRATION_FLAG_INVOICE_MODELS_V20', 1, 'chaine', 0, 'To flag the upgrade of invoice template has been set', 0); + return; + } + + + $db->begin(); + + $sql1 = "UPDATE ".$db->prefix()."export_model SET type = 'facture_0' WHERE type = 'facture_1'"; + + $resql1 = $db->query($sql1); + + if (! $resql1) { + dol_print_error($db); + $db->rollback(); + print ''; + return; + } + + $modified1 = $db->affected_rows($resql1); + + print str_repeat('.', $modified1); + + $db->free($resql1); + + $sql2 = "UPDATE ".$db->prefix()."export_model SET type = 'facture_1' WHERE type = 'facture_2'"; + + $resql2 = $db->query($sql2); + + if (! $resql2) { + dol_print_error($db); + $db->rollback(); + print ''; + return; + } + + $modified2 = $db->affected_rows($resql2); + + print str_repeat('.', $modified2); + + $db->free($resql2); + + if (empty($modified1 + $modified2)) { + print $langs->trans('NothingToDo'); + } + + $db->commit(); + + dolibarr_set_const($db, 'MIGRATION_FLAG_INVOICE_MODELS_V20', 1, 'chaine', 0, 'To flag the upgrade of invoice template has been set', 0); + + echo ''; +} diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang index 38b09fc12d0..570f7ae1de8 100644 --- a/htdocs/langs/en_US/install.lang +++ b/htdocs/langs/en_US/install.lang @@ -219,3 +219,4 @@ NodoUpgradeAfterDB=No action requested by external modules after upgrade of data NodoUpgradeAfterFiles=No action requested by external modules after upgrade of files or directories MigrationContractLineRank=Migrate Contract Line to use Rank (and enable Reorder) MigrationProductLotPath=Migrate Product Batch files path +InvoiceExportModelsMigration=Migrate invoice export models diff --git a/htdocs/modulebuilder/template/core/modules/modMyModule.class.php b/htdocs/modulebuilder/template/core/modules/modMyModule.class.php index 78740b564d1..06bad340cf7 100644 --- a/htdocs/modulebuilder/template/core/modules/modMyModule.class.php +++ b/htdocs/modulebuilder/template/core/modules/modMyModule.class.php @@ -388,7 +388,7 @@ class modMyModule extends DolibarrModules // Exports profiles provided by this module - $r = 1; + $r = 0; /* BEGIN MODULEBUILDER EXPORT MYOBJECT */ /* $langs->load("mymodule@mymodule"); @@ -419,7 +419,7 @@ class modMyModule extends DolibarrModules /* END MODULEBUILDER EXPORT MYOBJECT */ // Imports profiles provided by this module - $r = 1; + $r = 0; /* BEGIN MODULEBUILDER IMPORT MYOBJECT */ /* $langs->load("mymodule@mymodule");