SORGES / SORGES LIGHT – Personalização de revenda

Neste post veremos em detalhes como revendas podem personalizar o software e sua instalação.

Observação importante: a partir da da versão 2024.110.795 do SORGES, e 2024.12.31 do SORGES LIGHT, foi incluída a possibilidade de gerar códigos curtos para mensalidades de revendas. Eles são menos seguros, mas por serem mais simples, é possível “gerar” esses códigos “de cabeça”, sem usar um programa para isso, ideal para quando não tiver o software acessível no momento. No final do artigo há um anexo explicando isso.

Para começar, o instalador que você usará é o mesmo disponível no site. Você pode baixar ele em https://soriodev.com.br/versoes-sorges/ (SORGES) ou em https://soriodev.com.br/versoes-sorgeslight/ (SORGES LIGHT). Esta página contém todas as versões do software, a primeira será sempre a mais atual e aparecerá num botão com cor diferente, em destaque. Você também pode baixar o software direto na página de divulgação de cada segmento.

Outro arquivo necessário é o softhouse.ini, este arquivo de configuração normalmente é instalado na pasta C:\SORIODEV\SORGES\CONFIGURA\, mas ao fazer a personalização e indicar um caminho diferente, ele ficará em C:\CAMINHO_QUE_VOCE_INDICOU\CONFIGURA\. O arquivo instalado com o software vem com os dados da Soriodev, mas naturalmente você precisa de um arquivo com os seus dados. Para facilitar a compreensão deste arquivo, há uma cópia disponível neste link para você baixar: https://www.soriodev.com.br/download/sorges/softhouse.zip. Devido a restrições da hospedagem o arquivo está em formato zip, basta extrair ele.

O terceiro arquivo que vai precisar, além do instalador e do softhouse.ini, é uma imagem que servirá como tela de abertura do programa, também conhecida como “splash screen”. Esta imagem pode conter logo e nome da sua empresa, nome do programa, telefone, o que você achar interessante. A imagem pode estar nos formatos jpg, gif e png, pode ter o tamanho que você quiser, e caso seja png suporta transparências. Porém, o nome do arquivo tem que ser splash. Exemplos: splash.jpg, splash.gif ou splash.png

arquivos necessários para personalizar a instalação do sorges

Você colocará tudo numa mesma pasta, o instalador do SORGES (instalasorges.exe), o arquivo de configuração (softhouse.ini) e a imagem da abertura do programa (splash.jpg ou gif ou png), como aparece na tela acima.

O próximo passo é alterar o arquivo softhouse.ini, ele é aberto pelo bloco de notas. Mas antes, vamos entender como funcionam estes arquivos .ini. Para simplificar o entendimento, o arquivo ini contém configurações que são lidas pelo programa. As configurações são dividas em seções e valores. Um exemplo:

[exemplo]
valor1=exemplo 1
valor2=exemplo 2

Neste exemplo acima, nós temos uma seção com o nome “exemplo“, e dois valores. O informado em “valor1 é “exemplo 1“, e informado em “valor2 é “exemplo 2“.

Explicado isso, vamos ver como é o arquivo softhouse.ini quando aberto pela primeira vez:

arquivo softhouse.ini

Conforme pode ver na imagem, o arquivo contém várias seções e valores. A primeira seção é a “softhouse“, e ela contém as informações que o próprio software captura, por exemplo, para mostrar seu nome e do desenvolvedor em algumas telas. Esta seção contém os seguintes valores:

  • software: representa o nome do software;
  • empresa: representa o nome da empresa fornecedora do software;
  • telefone: é o telefone da empresa fornecedora do software;
  • título: aparece no título da tela principal e descreve o software, pode informar o nome e mais alguma descrição, por exemplo;
  • cnpj: é o cnpj da empresa fornecedora do software. Aqui é necessária atenção pelas revendas que atuam no estado de São Paulo, pois este cnpj também é usado para gerar o vínculo criptográfico com o sat. Se você alterar ele, você mesmo terá que se cadastrar na sefaz como desenvolvedor de software, e usar seu certificado digital para gerar o vínculo. Já se você não alterar pode usar o botão ao lado do campo onde fica o vínculo para que o software use o certificado da Soriodev;
  • texto_promocional: é uma mensagem que aparece no canto inferior direito da tela principal do programa. Se você não quiser usar, pode deixar apenas assim: “texto_promocional=“, sem preencher nada na frente do símbolo de igual;
  • msld: este valor serve para ativar ou desativar o pagamento de mensalidade para ativação no software, ou seja, ele permite que o revendedor cobre mensalidade do seu cliente e controle o vencimento da licença. Você notará que existe um último valor com o nome msld e o valor 1, porém, ele está com um ponto e vírgula na frente. Em arquivos ini o ponto e vírgula é usado para criar comentários escritos dentro do arquivo. Ou seja, da forma como está é como se este msld não existisse, é apenas um texto de comentário. Sendo assim, o funcionamento é o seguinte: se você não quer cobrar mensalidade do cliente, deixe como está, ou seja, “;msld=1“. Já se você quer cobrar mensalidade do seu cliente, tire o ponto e vírgula da frente, deixando assim: “msld=1“. Não altere o valor 1, apenas deixe ou tire o ponto e vírgula, de acordo com o que preferir.

A próxima seção é a “instalador”. Como o nome sugere, esta seção é usada pelo instalador do software (o instalasorges.exe) e permite modificar o nome do programa e o local onde ele será instalado. Se você não alterar ela, mesmo o nome do programa tendo sido alterado os atalhos dele, o caminho onde será instalado e a forma como ele aparece no painel de controle do Windows continuarão indicando que o software é o SORGES. Vamos entender os valores desta seção:

  • software: é o nome do software que aparecerá no instalador, e será usado para criar seus atalhos;
  • empresa: é a empresa fornecedora do software;
  • caminho: é o caminho onde ele será instalado. Não deve informar a letra da unidade, e caso tenha subdiretórios, as barras devem ser invertidas, iguais as de uma url de site. Para facilitar a compreensão, um exemplo: o padrão da Soriodev é o caminho C:\SORIODEV\GESTAO, então o valor indicado neste campo vem com SORIODEV/GESTAO. Se você mudar para BLZ/SOFTGESTAO ele será instalado em C:\BLZ\SOFTGESTAO. Não use acentuação nem cedilha neste campo, e recomendo também não usar espaços, quanto mais simples for o caminho melhor para manutenção posteriormente;
  • executavel: é o nome do programa executável em si. Realmente não acho que você precise alterar, pois o nome do programa nosso (sGestao.exe) já é bem genérico, mas se desejar pode alterar, seguindo a mesma regra do caminho: sem cedilha, acentos, espaços, e com o .exe no final;
  • site: é o site da empresa, se não tem pode deixar vazio: “site=“, se nada na frente do igual.

Muito importante: o instalador não consegue lidar bem com termos acentuados lidos do arquivo ini, possivelmente por conta da diferença de codificação usada por ele. Sendo assim, apesar de ter recomendado não usar cedilha e acentos nos campos caminho e executavel, recomendamos também não usar em nenhum outro campo, incluindo site, software e empresa. Ele até vai funcionar caso use, porém o caractere ficará ilegível, sendo substituído por um símbolo estranho. Já no caso dos valores caminho e executavel podem até ocorrer erros caso insista em usar.

No caso do SORGES, além destas duas seções, você notará a existência de várias outras. Na verdade, uma para cada estado brasileiro, elas terão o nome [UF_XX], onde o XX é a UF de cada estado. Essas seções não existem no SORGES LIGHT, que não é fiscal.

responsável técnico

Em cada uma destas seções você terá os valores:

  • idcsrt: é o id do código de segurança do responsável técnico;
  • csrt: é o código de segurança do responsável técnico;
  • cnpj: é o cnpj da empresa responsável pelo software;
  • responsavel: é o nome da pessoa responsável pelo software. Não é da empresa, mas sim da pessoa da empresa que é o responsável, o contato;
  • email: é o e-mail deste responsável técnico;
  • fone: é o telefone deste responsável técnico.

Estas informações são relativas ao responsável técnico pelo software, e são usadas para a emissão de documentos fiscais eletrônicos, como a NF-e, NFC-e, MDF-e e CT-e OS. Os dois primeiros campos referem-se a um código que, em tese, pode ser gerado no site de cada sefaz, porém atualmente nenhum estado brasileiro usa, por isso em todas as seções o idcsrt vem com valor zero e a csrt vem sem valor nenhum. Já para as demais informações, você notará que alguns poucos estados tem os valores preenchidos. Estes são os estados onde é obrigatório informar o valor. Se você vende sistemas em um destes estados os campos dele tornam-se obrigatórios. Ou seja, você deve ficar atento apenas as informações referentes aos estados onde você comercializa o software, se for obrigatório elas devem ser preenchidas.

E é aí que deve você deve ter atenção especial, pois estas informações entram no xml da nota fiscal, e são usadas pela sefaz para se comunicar com o desenvolvedor do software, principalmente quando ocorre consumo indevido, ou seja, quando o cliente tenta reenviar continuamente um documento que foi rejeitado devido a uma informação incorreta, sem corrigir este erro.

Aí entram dois problemas: o primeiro é que com nossas informações no xml da nota, seu cliente pode facilmente nos identificar, mesmo você tendo personalizado o software. O segundo é que, se a sefaz entrar em contato conosco, não poderemos identificar a origem do problema, uma vez que não temos acesso ao seu cliente. Mesmo que eles informe o cnpj, se você comprou a licença em seu nome não há como identificar a origem do cliente, o que impossibilitará resolver o problema. Por isso, é importante que você também ajuste estas seções no arquivo.

Finalmente, terminamos a explicação sobre o arquivo de configuração. Veja abaixo um exemplo simples de um arquivo, de uma empresa fictícia chamada BZL:

configuração exemplo

O nome da empresa é “BZL” e o software é o “BZL GESTÃO”. Se eu executar o instalador agora:

instalador
instalador

Note que o título e o caminho foram alterados. Além disso, quando o programa for instalado:

software instalado

Note que ele foi instalado no caminho C:\BZL\GESTAO, e o software dentro da pasta BIN foi renomeado para bzlgestao.exe, como especificado no arquivo. Se abrirmos o software:

tela principal do software

Veja que ele estará com os termos que definimos no arquivo. Isso encerra toda a parte de personalização do software, vamos agora ao controle de mensalidade.

O primeiro passo para iniciar o controle de mensalidade é, antes de qualquer coisa, anotar o id da base de dados, pois ele serve para gerar o código criptografado que permite definir a validade da mensalidade. Para obter esta chave, entre no programa, clique em mais no canto superior esquerdo da tela, e em sobre o sistema:

sobre o sistema

Fazendo isso verá a seguinte tela:

sobre o sistema

Note que circundei o id do sistema, é ele que você deve anotar. Para gerar os códigos só precisa dos 8 primeiros caracteres, mas se preferir pode anotar tudo, pois este id é único para cada instalação do programa, e é criado junto com o banco de dados. Se você apagar o banco de dados e criar outro, mesmo que no mesmo computador, outro id será gerado. É importante que você faça isso antes de ativar a licença, pois após ativar ela o controle de mensalidade passa a vigorar, e o software travará pedindo o código de liberação da mensalidade, que por sua vez só pode ser feito usando este id (os 8 primeiros caracteres).

Supondo que você tenha ativado aquela configuração “msld=1” no arquivo de configuração para fazer o controle da mensalidade, a partir do momento que ativar a licença o software começará a trabalhar em modo mensalidade. Neste modo ele passa a pedir o código de mensalidade, até que você informe o primeiro. A partir daí ele só mostrará esta tela de novo se você clicar em ativar licença, ou se o código vencer, e ao cancelar ele encerra o programa caso o código esteja vencido. Ou seja, para que o programa possa ser usado ele deve estar com a mensalidade em dia, venceu o programa trava.

Para gerarmos este código e para configurar a mensalidade também, existe um processo a ser feito.

Mas antes de começar, embora seja meio óbvio, é importante dizer: você não fará a criação de atalhos que será descrita abaixo na frente do seu cliente! O ideal é que você crie os atalhos no seu próprio computador, por exemplo, e deixe eles gravados num pendrive. Assim, mesmo que seu cliente esteja do lado ele não entenderá exatamente o que foi feito.

Tanto para configurar a mensalidade como para gerar códigos nós usamos o próprio programa SORGES, porém ele é executado com um parâmetros.

criando o atalho

O primeiro passo é criar um atalho para o programa. Para isso, clique com o botão direito do mouse sobre o executável, segure e arraste para onde quer criar. Ao soltar verá um menu, clique em “criar atalhos aqui“. Feito isso, personalize o atalho, clicando com o botão direito do mouse sobre ele (sobre o atalho), e em “propriedades“. Você verá a tela como na imagem acima.

No campo “destino” você terá o caminho completo do executável do programa. Se você colocou algum espaço nos nomes de pastas precisará colocar aspas duplas no início e no fim do caminho, este é um dos motivos pelos quais indicamos que não é interessante usar espaços. Vou exemplificar: se o caminho do executável for C:\BZL\BZL GESTAO\GIN\bzlgestao.exe, precisa colocar aspas, para ficar assim: “C:\BZL\BZL GESTAO\GIN\bzlgestao.exe”. Já se o caminho for C:\BZL\GESTAO\GIN\bzlgestao.exe não precisa fazer nada.

Na frente do caminho completo do programa você vai digitar um espaço, depois a palavra revenda, depois mais um espaço, depois a palavra gerar, depois outro espaço, e por fim a palavra gravar. Ou seja, tomando o exemplo acima, ficaria assim: “C:\BZL\GESTAO\bzlgestao.exe revenda gerar gravar” (sem as aspas). Se você executar este atalho, verá a seguinte tela:

configurar mensalidade

Esta tela é dividida em duas seções, a primeira é a de “configurações da mensalidade” e a segunda “gerar código e mensalidade“.

Na seção configurar mensalidade você faz ajustes no processo de mensalidade, e ela deve ser executado no computador do cliente, pois o sistema grava isso no banco de dados dele. No primeiro campo você pode ajustar a mensagem que aparece quando a mensalidade está vencendo ou já venceu. Para exibir a validade na mensagem deve usar o texto [VALIDADE] no lugar onde deseja que apareça. O sistema já vem com uma mensagem padrão, então não precisa mexer se não achar necessário. No segundo campo pode indicar com quantos dias de antecedência o sistema deve começar a mostrar a mensagem. Por fim, o terceiro campo é uma caixa de marcação que permite indicar se o sistema deve ou não consultar a data na internet. A consulta é feita numa página dedicada a isso em nosso site, e o objetivo é que o cliente não mexa na data do computador para tentar liberar a mensalidade. Sendo assim, o ideal é marcar, porém se o cliente não tem internet ou se a internet dele é muito ruim, caso ache viável pode deixar desmarcado, aí o sistema vai usar a data do computador mesmo como referência. Definidas as configurações, clique no botão GRAVAR e elas serão salvas no banco de dados.

Na seção gerar código de mensalidade você pode gerar códigos para duas operações: definir uma nova validade para a mensalidade ou cancelar ela. O primeiro passo é escolher uma destas opções no campo tipo. Já no campo id da base de dados você usar aquela id que anotou na tela sobre o sistema, mas só os 8 primeiros caracteres. Se você estiver executando este programa no computador do cliente ele já vem preenchido com a id dele, provavelmente isso é o que vai ocorrer quando você estiver no cliente, mas caso libere mensalidades à distância você provavelmente vai executar o programa no seu computador (por isso a necessidade de anotar o id). Por fim, o terceiro campo define a validade. Se você estiver gerando uma mensalidade é a validade dela, já se estiver cancelado esta validade se referirá ao próprio código em si. Definidos estes campos, clique em GERAR para que o código seja gerado no campo em vermelho no final da tela. Aí basta usar este código dentro do sistema.

ativar código

Se você definir um intervalo em dias para que o sistema comece a avisar sobre o vencimento, quando ele estiver próximo o cliente verá esta mensagem:

aviso sobre mensalidade

Caso você deseje cancelar a mensalidade do cliente por algum motivo, deve usar o tipo “CANCELAR MENSALIDADE”, como na imagem abaixo:

cancelar mensalidade

Porém, além de usar este código, você deve alterar o arquivo softhouse.ini e colocar novamente o ponto e vírgula na frente do valor msld. Ou seja, na linha que está msld=1, mude de novo para ;msld=1.

Para finalizarmos este artigo, veremos mais duas possibilidades sobre a criação de atalhos para revenda. Como vimos antes, se você criar um atalho e adicionar os parâmetros “revenda gerar gravar” na frente do destino, terá uma tela de gestão como a vimos. Porém, é possível dividir esta tela em duas se preferir.

Para ver uma tela só com a configuração da mensalidade, use só os parâmetros “revenda gravar”, como na imagem abaixo:

criando atalho para configurar mensalidade

Já para ver uma tela só com o gerador de código, use os parâmetros “revenda gerar”, assim:

criando atalho para gerador de código de mensalidade

Criando os atalhos desta forma, ao abrir eles você terá estas telas:

telas de gestão de mensalidade para revendas

Com “revenda gravar” você terá só uma tela de configuração de mensalidade. Já com “revenda gerar” tem uma tela só para gerar o código. E com “revenda gerar gravar” tem uma tela com todas as opções.

Anexo – atualização de 22/04/2024

Na versão 2024.110.795 do SORGES, e 2024.12.31 do SORGES LIGHT, foi criado um novo método para se gerar códigos de liberação de mensalidade para revendas:

O novo “código curto” foi incluído na tela de configuração de mensalidade do revendendor, conforme imagem acima. Porém é possível gerar tal código sem o uso do software, e abaixo descreverei a “fórmula” para se fazer isso.

Primeiramente, são necessárias duas informações: assim como no código completo, precisa dos 8 primeiros dígitos do ID da base de dados, e também da validade. No exemplo acima, são esses:

ID: 8C98FD07
VALIDADE: 22/04/2024

O código curto terá sempre 8 dígitos, e será composto da seguinte forma:

1º dígito: é o último dígito do ano, ou seja, 4 (22/04/2024);
2º dígito: é o último dígito do mês, ou seja, 4 (22/04/2024);
3º dígito: é o último dígito do dia, ou seja, 2 (22/04/2024);
4º dígito: é o primeiro dígito numérico do ID, ou seja, 8 (8C98FD07). Se o ID não tiver nenhum dígito numérico, forem 8 caracteres textuais, então deve usar 9;
5º dígito: é o penúltimo dígito do ano, ou seja, 2 (22/04/2024);
6º dígito: é o primeiro dígito do mês. Entretanto, se for zero, deve-se trocar por 9. Nesse exemplo está sendo usado 9 justamente porque o mês é 04 (22/04/2024), então 0 virou 9;
7º dígito: é o primeiro dígito do dia. Assim como no mês, se for 0 deve-se trocar por 9. Entretanto, nesse exemplo o dígito é 2 (22/04/2024);
8º dígito: é o segundo dígito numérico do ID, ou seja, 9 (8C98FD07). Se o ID não tiver dois dígitos numéricos, tiver apenas um ou nenhum, então deve usar 9.

Num outro exemplo, vamos supor que fossem esses dados:

ID: ABCDEF6H
VALIDADE: 01/08/2025

O código seria 58162999:

1º dígito: 5 (01/08/2025);
2º dígito: 8 (01/08/2025);
3º dígito: 1 (01/08/2025);
4º dígito: 6 (ABCDEF6H);
5º dígito: 2 (01/08/2025);
6º dígito: 9 (01/08/2025) – converter 0 para 9;
7º dígito: 9 (01/08/2025) – converter 0 para 9;
8º dígito: 9 (ABCDEF6H) – não existe 2º dígito numérico no ID, então usar 9.

Dessa forma, sabendo a validade e o ID é possível calcular manualmente qual é o código numérico. Mas tenha em mente que seu usuário pode conseguir chegar a essa fórmula, então há um risco envolvido em se usar esse tipo de código. Procuramos dificultar um pouco, mas sem tornar impossível o cálculo, para permitir que numa situação de necessidade você possa fornecer uma mensalidade ao cliente. Note entretanto que ainda precisará do ID da base, porém é possível solicitar que seu cliente lhe informe ele olhando na tela sobre do sistema.

Você ainda pode continuar usando o código que era gerado anteriormente, mais longo e complexo, e que dificilmente um usuário conseguiria quebrar. Ou seja, tem as duas opções, use a que lhe for mais conveniente.