Skip to content

Commit

Permalink
rotina de migração das opções personalizadas de clientes #9
Browse files Browse the repository at this point in the history
  • Loading branch information
andrekutianski committed Oct 16, 2021
1 parent 8d4ced0 commit 6543eb8
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 1 deletion.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

### Rebrand do Módulo

#### Migração

* Adicionada rotina que migra os dados da versão anterior a 2.0 na ativação do módulo. Desta forma não é preciso se preocupar na reconfiguração do módulo.
* Adicionada rotina que migra as configurações persoanlizada do cliente para emissão de nota fiscal.

#### Estrutura de diretórios
#### Nomenclatura do módulo

Expand Down
2 changes: 1 addition & 1 deletion checklist_migracao.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ Checklist com os itens primordiais a serem implementados e verificados para perm
* [x] migrar configurações: migrar as configurações atuais do antigo módulo para o novo e evitar configuração
* [ ] migrar notas: migrar os dados atuais das notas da tabela _gofasnfeio_ para _mod_nfeio_si_serviceinvoices_
* [ ] migrar produtos: migrar os registros dos códigos de serviços personalizado dos produtos da tabela _tblproductcode_ para _mod_nfeio_si_productcode_
* [ ] migrar clientes: migrar os registros de emissão de nf personalizados dos clientes da tabela _mod_nfeio_custom_configs_ para _mod_nfeio_si_custom_configs_
* [x] migrar clientes: migrar os registros de emissão de nf personalizados dos clientes da tabela _mod_nfeio_custom_configs_ para _mod_nfeio_si_custom_configs_
* [x] campos obrigatórios: verificar se os campos obrigatórios estão preenchidos e alertar
* [x] estrutura de tabelas: obedecer a estrutura atual das tabelas para menor atrito na migração
3 changes: 3 additions & 0 deletions modules/addons/NFEioServiceInvoices/lib/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,9 @@ public function activate()

// rotinas de ativação da model ClientConfiguration (tabela custom_configs)
$clientConfigurationRepo = new \NFEioServiceInvoices\Models\ClientConfiguration\Repository();
// verifica e realiza possiveis migrações durante o processo de ativação para a model ClientConfiguration
\NFEioServiceInvoices\Migrations\Migrations::migrateClientsConfigurations();
// executa as rotinas de sql para a model ClientConfiguration
$clientConfigurationRepo->createClientCustomConfigTable();

// Migração das configurações do módulo para versão inferior a 2
Expand Down
48 changes: 48 additions & 0 deletions modules/addons/NFEioServiceInvoices/lib/Migrations/Migrations.php
Original file line number Diff line number Diff line change
Expand Up @@ -83,4 +83,52 @@ public static function migrateConfigurations()
// se não tiver registros antigos retorna false (nada a migrar)
return false;
}

/**
* Migra as configurações personalizadas dos clientes da tabela mod_nfeio_custom_configs (versões anterior a 2).
*/
public static function migrateClientsConfigurations()
{

// verifica se existem registros de versão anterior do módulo no banco de dados
// se houver, considera que pode existir registros em
if (Versions::hasOldNfeioModule()) {

try {

// se a tabela mod_nfeio_custom_configs não existir não há o ser que migrar
if (!Capsule::schema()->hasTable('mod_nfeio_custom_configs')) { return false; }
// se não houver registros na tabela mod_nfeio_custom_configs não há o que ser migrado
if (!Capsule::table('mod_nfeio_custom_configs')->count()) { return false; }
// se a nova tabela já existir e possuir registros, não migra nada
if (
Capsule::schema()->hasTable('mod_nfeio_si_custom_configs') &&
Capsule::table('mod_nfeio_si_custom_configs')->count()
) {
return false;
}

// não existir a nova tabela destino mod_nfeio_si_custom_configs
if (!Capsule::schema()->hasTable('mod_nfeio_si_custom_configs')) {

// copia a antiga tabela mod_nfeio_custom_configs e renomeia para o novo nome
$db = Capsule::connection();
$db->statement('CREATE TABLE mod_nfeio_si_custom_configs LIKE mod_nfeio_custom_configs');
$db->statement( 'INSERT mod_nfeio_si_custom_configs SELECT * FROM mod_nfeio_custom_configs');

return true;
}

return false;


} catch (\Exception $exception) {
echo $exception->getMessage();
}
}

// se não tiver registros returna false pra migração
return false;

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@ class Repository extends \WHMCSExpert\mtLibs\models\Repository

public $tableName = 'mod_nfeio_si_custom_configs';

private function getTableName()
{
return $this->tableName;
}

function getModelClass()
{
return __NAMESPACE__ . '\ClientConfiguration';
Expand Down

0 comments on commit 6543eb8

Please sign in to comment.