terça-feira, 15 de novembro de 2016

Emissões de Nota Fiscal Eletrônica ao Consumidor (NFC-e) na Paraíba

Emissões de Nota Fiscal Eletrônica ao Consumidor (NFC-e) voltam a expandir em outubro na Paraíba

Em expansão, as emissões de Nota Fiscal Eletrônica ao Consumidor (NFC-e) voltaram a crescer na Paraíba no mês de outubro. As empresas varejistas paraibanas emitiram 17,633 milhões de NFC-e no último mês, alta de 8,38% sobre setembro. No acumulado de janeiro a outubro, o valor já soma um patamar de 139,181 milhões de notas eletrônicas emitidas, o que leva a Paraíba a permanecer na liderança entre os nove Estados da Região Nordeste.

Um dos principais motivos do crescimento de emissão de outubro veio das empresas do varejo paraibanas com receita anual acima de R$ 3,6 milhões, no exercício de 2014, que passaram a emitir a NFC-e na Paraíba. A secretaria de Estado da Receita da Paraíba implantou a emissão de NFC-e para as empresas do varejo paraibano em julho de 2015. O novo serviço faz parte da modernização da Receita Estadual, que traz redução de custos para empresas do setor, garante transparência e permite acesso eletrônico do cupom fiscal aos consumidores (via QR-Code e armazenamento eletrônico).

SETE SEGMENTOS JÁ EMITEM – Em apenas 16 meses de implantação de obrigatoriedade, a Receita Estadual já englobou sete segmentos. A obrigatoriedade foi iniciada em julho de 2015 com as grandes varejistas com faturamento superior a R$ 25 milhões ao ano. No segundo semestre do ano passado, as empresas do comércio varejista de combustíveis de Gás Liquefeito de Petróleo (postos de combustíveis) e revendedores de gás de cozinha; bares, restaurantes, lanchonetes, buffet, casas de chá, cantinas e similares e de bebidas, com faturamento acima de R$ 600 mil no ano, foram incluídos na NFC-e na Paraíba. Em 2016, o calendário já incluiu as empresas com faturamento acima de R$ 9 milhões (em janeiro) e, em julho, aquelas com faturamento acima de R$ 5,5 milhões. Em outubro deste ano, as empresas do varejo com receitas acima de R$ 3,6 milhões foram incluídas no programa de implantação da NFC-e.

REDUÇÃO DE CUSTO – A implantação do novo serviço da NFC-e tem como objetivo reduzir os custos das empresas varejistas com a dispensa do uso de impressora fiscal ECF (Emissor do Cupom Fiscal), pois cria a possibilidade de abrir novos caixas de pagamento com impressoras não fiscais. Já para o consumidor, além da compra ficar mais simplificada, terá acesso aos documentos fiscais, que ficarão arquivados de forma eletrônica, no portal da SER-PB (www.receita.pb.gov.br), garantindo autenticidade de sua transação comercial e recuperação do cupom fiscal a qualquer momento.


domingo, 21 de agosto de 2016

Programa de computador!

Programa


É uma coleção de instruções que descrevem uma tarefa a ser realizada por um computador.
(LAUREANO, 2005, p. 4).

Programa Compilador

Compilador

É um programa que traduz algoritmos construídos em uma determinada linguagem de programação para arquivos em linguagem de máquina, ou seja, possíveis de serem executados em computadores.

Linguagem de programação!

Linguagem de programação


É um método padronizado para expressar instruções para um computador.
(LAUREANO, 2005, p. 4).

sábado, 20 de agosto de 2016

Operadores aritméticos e expressões aritméticas!

Operadores aritméticos e expressões aritméticas


     Os operadores aritméticos são símbolos que representam operações aritméticas, ou seja, as operações matemáticas básicas. O Quadro 2.2 apresenta os operadores aritméticos que utilizaremos neste curso.

Operadores aritméticos 

Operador Operação matemática
Quadro 2.2: 

     Os operadores aritméticos são utilizados para formar expressões aritméticas.
   As expressões aritméticas são formadas por operadores aritméticos que agem sobre operandos. Os operandos podem ser variáveis ou constantes do tipo numérico, ou seja, inteiros ou reais.

Abaixo temos dois exemplos de expressões aritméticas:
     Para resolver expressões aritméticas formadas por mais de um operador, deve-se utilizar uma ordem de precedência entre os mesmos. O Quadro 2.3 exibe essa ordem de precedência.

Ordem de precedência entre operadores aritméticos Prioridade Operador Operação
Quadro 2.3 

     Além da ordem de prioridades definida acima, podemos utilizar parênteses.

     Assim, resolvemos primeiro as expressões contidas nos parênteses mais internos, seguindo a ordem de precedência entre operadores, passando depois para os parênteses mais externos. 

Por exemplo, na expressão:
Primeiro somamos nota2 a nota3. O resultado é divido por 2 e só depois somamos com nota 1.

Um fato interessante é que o resultado da execução de expressões aritméticas é sempre um valor numérico (inteiro ou real) que pode então ser atribuído a uma variável numérica por meio do uso do comando de atribuição estudado anteriormente.

Resumindo:

• expressões aritméticas: uma conta a ser feita;

• operadores aritméticos: os sinais + - * / %;

• operandos aritméticos: constantes ou variáveis (inteiras ou reais), ou outra expressão aritmética;

• precedência na ordem dos cálculos: a mesma da matemática, podendo haver vários níveis de parênteses; não há colchetes [ ] ou chaves { }.

     Como exemplo, vamos criar um algoritmo para ler e multiplicar dois números inteiros e exibir o resultado.

É importante observar cada linha desta sequência:

Vamos entender todas as linhas do nosso algoritmo:

linha 1 ... Nome do programa.

linha 2 ... Indica o início do bloco de declaração de variáveis.

linha 3 ... Declaração das três variáveis do tipo inteiro necessárias ao programa.

linha 4 ... Indica o início do bloco de instruções do algoritmo.

linha 5 ... O comando escreva exibirá na tela do computador uma mensagem que solicita a digitação do primeiro número.

linha 6 ... O primeiro número digitado será lido e armazenado na variável num1.

linha 7 ... O comando escreva exibirá na tela do computador uma mensagem que solicita a digitação do segundo número.

linha 8 ... O segundo número digitado será lido e armazenado na variável num2.

linha 9 ... A variável mult receberá o resultado da multiplicação do primeiro número pelo segundo número.

linha 10 ... O comando escreva exibirá na tela do computador uma mensagem com o resultado da multiplicação.

linha 11 ... Indica o fim do algoritmo.

Algoritmo em Portugol

Algoritmo



Algoritmo completo em Portugol.

Como exemplo, vamos criar um algoritmo: solicitamos que o usuário digite seu nome e depois imprimimos na tela uma saudação ao mesmo.




Como exemplo, vamos criar um algoritmo para ler e multiplicar dois números inteiros e exibir o resultado.


É importante observar cada linha desta sequência:





sexta-feira, 19 de agosto de 2016

Lógica na Programação

Lógica



     Pode ser vista como a arte de pensar corretamente. A lógica visa a colocar ordem no pensamento.
(FARRER, 1999).

Testes na Programação

Testes



     Determinam quais ações serão executadas; são chamados de estruturas de seleção ou estruturas de decisão.

Memória na Programação

Memória



   Meio físico para armazenar dados temporariamente ou permanentemente.
(TANENBAUM, 1997, p.212).

Variável na programação

Variável



    É uma posição nomeada de memória, que é usada para guardar um valor que pode ser modificado  pelo programa.
(LAUREANO, 2005, p. 12

Algoritmo na Programação

Algoritmo


     
      Formalmente é uma sequência finita de passos que levam à execução de uma tarefa. 
Podemos pensar em algoritmo como uma receita, uma sequência de instruções que dão cabo de uma meta específica.
(FORBELLONE et al., 2005).

Constante em Portugol

Constante



     É uma variável com valor pré-definido que não pode ser modificado por nenhuma função de um programa.

(LAUREANO, 2005, p.16)

quarta-feira, 2 de março de 2016

Vírus de NOTA FISCAL de e-mail por xml ou pdf




Como conhecer um vírus de NOTA FISCAL de e-mail

verificando a chave de acesso.

Em primeiro lugar, a chave da nota contem o CNPJ: "0200083100019" de quem emitiu, antes do mesmo tem a data de emissão: 1509, escrito em formato de trás para frente, após o CNPJ tem o modelo da nota que pode ser "55" DANFE, OU "65" NFC-e e junto tem a serie da nota "001", apos isso vem o numero da nota "00169180" que apos o numero da nota vem repetindo o numero da nota "00169180" novamente com o ultimo digito verificador "7".

Verifique a verdadeira CHAVE DA NOTA.

25150902000831000199550010001691801001691807

Agora verifique a imagem da figura-01 abaixo:

Figura 01

Verificando um link anexo.

Por ultimo também pode vir um link dentro do e-mail como na imagem da figura-02 abaixo:

Figura 02

Verificando um verdadeiro e-mail.

Veja a seguir como seria uma nota fiscal recebida no seu e-mail na figura-03 abaixo:

Simples e fácil de identifica que os anexos vem com abreviações na extensão do arquivo com *.XML e o *.PDF, então não tem como erra e pegar vírus no seu computador.

Figura 03


Obrigado por compartilha conhecimentos e com isso compartilhe com seus amigos.

Até a próxima.

terça-feira, 19 de janeiro de 2016

Construir uma Classe com o Método de validação do CNPJ em c#!

Classe com o Método de validação do CNPJ 


Validação

   Olá caros amigos e participante do meu blog, vou mostra como fiz meu método de validação em uma classe com o retorno que foi verdadeiro ou falso o teste para que o sistema continue com usa execução, sendo assim foi modificado do jeito em que mostre ao usuário se ele digitou corretamente ou não o CNPJ no "textBox", ao pesquisar em vários sites vi que não existia este método abaixo e por isso modifiquei e agora estou postando para que vejam e aprendam que existe vários modos de validação de um texto digitado.

Local que foi extraído o código de validação

   Segue anexo o link do site do Sintegra que tem o modelo do código para "Javascript" que foi modificado para reconhecimento no Csharp.

Site de Consulta do CNPJ

Código em Javascript a que foi copiado

     Aqui vou mostra o código completo em que foi modificado para o c#.
com o lado direito do mouse clique em "Exibir Código-Fonte", automaticamente o site mostra o código abaixo em linguagem de javascript.




código em c# com validação do CNPJ

   Abaixo fiz algumas modificações que depois possa ser melhorado no seu conteúdo.

   O primeiro foi a extração de espaços no começo e no final do texto.

   Em seguida foi extraído os pontos, traços e barras para melhor validação dos textos digitados.

   Os "alerts" foram modificado para mensagem de reconhecimento do c#.

   Como também foi modificado o teste  de verificação de cada caracteres que no inicio do método ele mesmo já extrai e não deixa passar, mas deixei como estava para que você caro leitor verifique o que foi modificado para que o c# entenda o que vai ser executado, veja e verifique linha por linha, junto com ele, também foi modificado o local que ao extrai cada linha para verificação do digito verificador e comparação do mesmo,

"int cgc01 = Convert.ToInt16( cgc.Substring(0, 1));"

 Depois de muito pesquisar verifiquei que a linha de codigo que segue abaixo teve que ser totalmente modificada,

 "var ch = int.Parse(checkStr.Substring(i, 1));" 

Encontrei a melhor opção para extrair valores de um texto e converter em inteiro para a verificação de valores incorreto, verifique o original abaixo que foi totalmente modificado.

"ch = checkStr.charAt(i);"

com isso consegui extrair cada "string" do texto sem nenhum problema.

verifique abaixo por completo:

namespace GerenciandoeAdministramdoNFc.Controllers.Clientes
{
    class ValidarCnpj
    {
        //ClsClientes _dadosClsClientes;

        internal static bool ValidarCnpjDigitado(ClsClientes dadosClsClientes)
        {


            dadosClsClientes.Cnpj = dadosClsClientes.Cnpj.Trim();
            dadosClsClientes.Cnpj = dadosClsClientes.Cnpj.Replace(".", "").Replace("-", "").Replace("/", "");

            if (dadosClsClientes.Cnpj == "")
            {

                MessageBox.Show("Por favor, preencha o campo \"CNPJ\"." + dadosClsClientes.Cnpj);
                return (false);
            }
            if (dadosClsClientes.Cnpj == "00000000000000")
            {
                MessageBox.Show("Valor de \"CNPJ\" inválido.");
   return (false);
   }

            if (dadosClsClientes.Cnpj.Length < 14)
            {
       MessageBox.Show("Por favor, preencha o campo \"CNPJ\" com 14 dígitos.");
       return (false);
   }

            if (dadosClsClientes.Cnpj.Length > 14)
     {
       MessageBox.Show("Por favor, preencha o campo \"CNPJ\" com 14 dígitos.");
       return (false);
     }
   const string checkOk = "0123456789";
   var checkStr = dadosClsClientes.Cnpj;
   var allValid = true;
   int decPoints = 0;
   var allNum = "";
            int i;
            int j;
            for (i = 0;  i < checkStr.Length;  i++)
   {

                var ch = int.Parse(checkStr.Substring(i, 1));

       for (j = 0;  j < checkOk.Length;  j++)
                    if (ch == int.Parse(checkOk.Substring(j, 1)))
                    //if (ch == checkOk.Substring(j))
                    break;

   if (j == checkOk.Length)
   {
       allValid = false;
       break;
   }
 
     allNum += ch;
   }
   if (!allValid)
                   {
   MessageBox.Show("Por favor, preencha o campo \"CNPJ\" apenas com dígitos.");
   return (false);
   }
            string cgc = dadosClsClientes.Cnpj;
            int cgc01 = Convert.ToInt16( cgc.Substring(0, 1));
            int cgc02 = Convert.ToInt16( cgc.Substring(1, 1));
            int cgc03 = Convert.ToInt16( cgc.Substring(2, 1));
            int cgc04 = Convert.ToInt16( cgc.Substring(3, 1));
            int cgc05 = Convert.ToInt16( cgc.Substring(4, 1));
            int cgc06 = Convert.ToInt16( cgc.Substring(5, 1));
            int cgc07 = Convert.ToInt16( cgc.Substring(6, 1));
            int cgc08 = Convert.ToInt16( cgc.Substring(7, 1));
            int cgc09 = Convert.ToInt16( cgc.Substring(8, 1));
            int cgc10 = Convert.ToInt16( cgc.Substring(9, 1));
            int cgc11 = Convert.ToInt16( cgc.Substring(10, 1));
            int cgc12 = Convert.ToInt16( cgc.Substring(11, 1));
            int cgc13 = Convert.ToInt16( cgc.Substring(12, 1));
            int cgc14 = Convert.ToInt16( cgc.Substring(13, 1));
            decimal aux1 = 10*(cgc01*5 + cgc02*4 + cgc03*3 + cgc04*2 + cgc05*9 + cgc06*8 +
                       cgc07*7 + cgc08*6 + cgc09*5 + cgc10*4 + cgc11*3 + cgc12*2);
            decimal aux2 = aux1/11;
            decimal aux3 = Math.Floor(aux2);
            decimal aux4 = aux3*11;
            decimal dv1 = (aux1 - aux4);
   if (dv1 == 10)
   {
       dv1 = 0;
   }
            aux1 = 10*(cgc01*6 + cgc02*5 + cgc03*4 + cgc04*3 + cgc05*2 + cgc06*9 +
                       cgc07*8 + cgc08*7 + cgc09*6 + cgc10*5 + cgc11*4 + cgc12*3 +
                       dv1*2);
            aux2 = aux1/11;
            aux3 = Math.Floor(aux2);
            aux4 = aux3*11;
            decimal dv2 = (aux1 - aux4);
   if (dv2 == 10)
   {
       dv2 = 0;
   }
   if (dv1 != cgc13 || dv2 != cgc14)
   {
       MessageBox.Show("Dígito verificador do campo \"CNPJ\" não confere.");
       return (false);
   }
            return true;
        }
    }
}



Espero que gostem, comentem e dê sua opinião para que melhore as minhas postagem.

segunda-feira, 18 de janeiro de 2016

Preencher um "comboBox" com estados cadastrados em uma tabela do banco de dados Firebird e populando com os dados capturados.

Preenchendo comboBox com estados, populando de um banco de dados Firebird.

Mostrando o Form.

     Vou explicar de um moto rápido, para quem já entende um pouco de acesso ao banco de dados e tendo em vista que já esta um pouco mais avançado na programação em c#.

     Então fiz um "Form" e que dentro dele tenha uma "comboBox" que vai ser preenchido com os estados cadastrados dentro de uma tabela no banco de dados firebird.

A figura 01 abaixo mostra o Form com a comboBox a ser preenchido.

Figura 01


Executando dentro do "Form".

     Ao entrar no "Form" verifique que no metodo "Load", o comboBox é preenchido com os dados que vai ser buscado na tabela

vamos verificar como ficou, para um melhor entendimento.

        public string ReceberDadosTabelaEstados = "estados";

       private void Form1_Load(object sender, EventArgs e)
        {
            comboBoxEstados.DataSource = Controllers.Estados.EstadosFb.fb_GetDados(ReceberDadosTabelaEstados);
            comboBoxEstados.DisplayMember = "uf";
        }

Acessando a tabela dentro do banco de dados.


     Configurando a chamada de dentro do banco de dados Firebird.

Segue abaixo o método criado para acesso ao banco de dados e selecionar todos os estados cadastrados.

veja como ficou simples e de fácil entendimento.

        public static DataTable fb_GetDados(string receberDadosTabela)
        {
            using (FbConnection conexaoFireBird = Models.Dados.ClsAcessoFB.getInstancia().getConexao())
            {
                try
                {
                    conexaoFireBird.Open();                         //abre a conexao...
                    string mSql = "Select uf from " + receberDadosTabela;         //seleciona tudo da
                    FbCommand cmd = new FbCommand(mSql, conexaoFireBird); // dar um comando dentro do banco...
                    FbDataAdapter da = new FbDataAdapter(cmd);      //cria uma instancia "da" para receber os comandos.
                    DataTable dt = new DataTable();
                    da.Fill(dt);
                    return dt;  // retorna os dados capturados ao acesso ao banco de dados.
                }
                catch (FbException fbex)
                {
                    throw fbex;
                }
                finally
                {
                    conexaoFireBird.Close();
                }
            }
        }

Navegando no webBrowser.

     Ao executar um botão o sistema navegara em uma webBrowser e buscarar o estado escolhido antes da abertura.



    webBrowserSintegra.Navigating += new WebBrowserNavigatingEventHandler(webBrowserSintegra_Navigating);

As urls ele executara dependendo do estado escolhido.
exemplo:

  if (Convert.ToBoolean(_comboBoxEstados == "PR"))
 webBrowserSintegra.Navigate(new Uri("http://www.sintegra.fazenda.pr.gov.br/sintegra/"));



Sites Cadastrados

     Veja agora todas as Urls dos site de conferencia do Sintegra apos escolher o estado no comboBox.

segue abaixo:

    if (Convert.ToBoolean(_comboBoxEstados == "AC"))
webBrowserSintegra.Navigate(new Uri("http://sefaznet.ac.gov.br/sefazonline/servlet/hpfsincon"));
 
    if (Convert.ToBoolean(_comboBoxEstados == "AL")) webBrowserSintegra.Navigate(new Uri("http://www.sefaz.al.gov.br/asp/sintegra/sintegra.asp?estado=AL"));

    if (Convert.ToBoolean(_comboBoxEstados == "AP")) webBrowserSintegra.Navigate(new Uri("http://www.sintegra.ap.gov.br/"));

    if (Convert.ToBoolean(_comboBoxEstados == "AM")) webBrowserSintegra.Navigate(new Uri("http://www.sefaz.am.gov.br/sintegra/sintegra0.asp"));

    if (Convert.ToBoolean(_comboBoxEstados == "BA")) webBrowserSintegra.Navigate(new Uri("http://www.sefaz.ba.gov.br/Sintegra/sintegra.asp?estado=BA"));

    if (Convert.ToBoolean(_comboBoxEstados == "CE")) webBrowserSintegra.Navigate(new Uri("http://www.sefaz.ce.gov.br/Sintegra/Sintegra.Asp?estado=CE"));

    if (Convert.ToBoolean(_comboBoxEstados == "DF")) webBrowserSintegra.Navigate(new Uri("http://www.fazenda.df.gov.br/area.cfm?id_area=110"));

    if (Convert.ToBoolean(_comboBoxEstados == "ES")) webBrowserSintegra.Navigate(new Uri("http://www.sintegra.es.gov.br/"));

    if (Convert.ToBoolean(_comboBoxEstados == "GO")) webBrowserSintegra.Navigate(new Uri("http://appasp.sefaz.go.gov.br/Sintegra/Consulta/default.asp?"));

    if (Convert.ToBoolean(_comboBoxEstados == "MA")) webBrowserSintegra.Navigate(new Uri("http://www.sefaz.ma.gov.br/sintegra/sintegra.asp"));

    if (Convert.ToBoolean(_comboBoxEstados == "MT")) webBrowserSintegra.Navigate(new Uri("http://www.sefaz.mt.gov.br/sid/consulta/infocadastral/consultar/publica"));

    if (Convert.ToBoolean(_comboBoxEstados == "MS")) webBrowserSintegra.Navigate(new Uri("http://www1.sefaz.ms.gov.br/Cadastro/sintegra/cadastromsCCI.asp"));

    if (Convert.ToBoolean(_comboBoxEstados == "MG")) webBrowserSintegra.Navigate(new Uri("http://consultasintegra.fazenda.mg.gov.br"));

    if (Convert.ToBoolean(_comboBoxEstados == "PA")) webBrowserSintegra.Navigate(new Uri("http://app.sefa.pa.gov.br/Sintegra/"));

    if (Convert.ToBoolean(_comboBoxEstados == "PB")) webBrowserSintegra.Navigate(new Uri("http://sintegra.receita.pb.gov.br/sintegra/sintegra.asp?estado=pb"));

    if (Convert.ToBoolean(_comboBoxEstados == "PR")) webBrowserSintegra.Navigate(new Uri("http://www.sintegra.fazenda.pr.gov.br/sintegra/"));

    if (Convert.ToBoolean(_comboBoxEstados == "PE")) webBrowserSintegra.Navigate(new Uri("http://www.sintegra.sefaz.pe.gov.br"));

    if (Convert.ToBoolean(_comboBoxEstados == "PI")) webBrowserSintegra.Navigate(new Uri("http://web.sintegra.sefaz.pi.gov.br"));

    webBrowserSintegra.Navigate(new Uri("if (Convert.ToBoolean(_comboBoxEstados == "RJ")) http://www.fazenda.rj.gov.br/projetoCPS"));

    if (Convert.ToBoolean(_comboBoxEstados == "RN")) webBrowserSintegra.Navigate(new Uri("http://www.set.rn.gov.br/uvt/consultacontribuinte.aspx"));

    if (Convert.ToBoolean(_comboBoxEstados == "RS")) webBrowserSintegra.Navigate(new Uri("http://sintegra.sefaz.rs.gov.br/sef_root/inf/Sintegra_Entrada.asp"));

    if (Convert.ToBoolean(_comboBoxEstados == "RO")) http://www.sefin.ro.gov.br/sint_consul.asp"));

    if (Convert.ToBoolean(_comboBoxEstados == "RR")) webBrowserSintegra.Navigate(new Uri("https://www.sefaz.rr.gov.br/siate/servlet/wp_siate_consultasintegra"));

    if (Convert.ToBoolean(_comboBoxEstados == "SC")) webBrowserSintegra.Navigate(new Uri("http://sistemas3.sef.sc.gov.br/sintegra/consulta_empresa_pesquisa.aspx"));

    if (Convert.ToBoolean(_comboBoxEstados == "SP")) webBrowserSintegra.Navigate(new Uri("http://pfeserv1.fazenda.sp.gov.br/sintegrapfe/consultaSintegraServlet"));

    if (Convert.ToBoolean(_comboBoxEstados == "SE")) webBrowserSintegra.Navigate(new Uri("http://www.sefaz.se.gov.br/sintegra"));

    if (Convert.ToBoolean(_comboBoxEstados == "TO")) webBrowserSintegra.Navigate(new Uri("http://sintegra.sefaz.to.gov.br"));

    if (Convert.ToBoolean(_comboBoxEstados == " ")) webBrowserSintegra.Navigate(new Uri("http://www.suframa.gov.br/sintegra"));


Obrigado por Participar do meu Blogger.

     Qualquer duvida estou aqui para ajudar.

sábado, 2 de janeiro de 2016

Atualizar a alíquota de 18% nas impressoras fiscais.

Procedimento de atualização a alíquota de 18% nas impressoras fiscais.

Sem intervenção do Ecf.

1 - Procedimento


Baixe o Ecfteste.exe no site do Projeto Acbr.

Segue o link do Projeto caso não tenha o cadastro, tenho uma versão antiga para download
no servidor segue o link como também o link da dll responsável na execução.

2 - Procedimento

Ao baixar o arquivo Ecfteste.exe, execute antes de fazer qualquer vendas ou abertura do dia.
caso tenha feito algum movimento a única Ecf que não deixa cadastra é a Bematech.

veja abaixo a imagem do procedimento.



Procure o modelo de sua Ecf, como também a Porta que corresponde a comunicação com a mesma.
caso não saiba selecione diretamente Ativar para que o programa encontre.


ao não encontrar o ecf ele mostra a seguinte mensagem como na imagem acima.

3 - procedimento

Quando o programa encontra o Ecf correspondente selecione o Menu Variáveis.



Ao executar ele mostra todas as alíquotas cadastradas no ecf.



4 - procedimento

Agora vamos executar o cadastro de uma nova alíquota.
selecione no Menu Utilitários.



ao executar o programa de alíquota ele mostra qual alíquota vai se usada.


clique em "ok" para cadastra o desejado.


Confirme a aliquota desejada "SIM" = ICMS e "NÃO" = ISS.


pressione "YES" para programar a alíquota desejada.


Agora verifique como ficou a sua programação da nova alíquota no ecf.


Obrigado por compartilha suas ideias com todos,

@alexssandrolima












sexta-feira, 1 de janeiro de 2016

Usando ADO para conexão com o bando de dados Firebird!

Modificando dados na tabela do banco de dados Firebird.

Conexão com o banco de dados.

Boa noite, 
   Em primeiro lugar, crie uma classe que vai ter a conexão com o banco de dados, e que também  não possa ser herdada e nem instanciada usando o ADO para criação das classes de acesso.

   Como veremos abaixo o condigo de conexão com o banco de dados, sendo que, o mesmo tem que pegar algumas de suas configurações no app.config para posteriores modificações, assim mostrado a seguir.

Codigo de modelo de conexão com o banco de dados:

using FirebirdSql.Data.FirebirdClient;
using System.Configuration;

namespace GerenciandoeAdministramdoNFc.Models.Dados
{
    public class ClsAcessoFB   //deixar a classe publica
    {
        #region " base acesso ao banco de dados "
        private static readonly ClsAcessoFB instanciaFirebird = new ClsAcessoFB(); // instancia vai dar erro...
        private ClsAcessoFB() {}    // caso acessar direto nao mostrara nada.
        #endregion
        #region "INSTANCIAR O FIERBIRD"
        public static ClsAcessoFB getInstancia()    //INSTANCIAR BANCO DE DADOS....
        {
            return instanciaFirebird;
        }
        #endregion

        #region "STRING DE CONEXÃO E CONFIGURAÇÃO COM OS DADOS"
        public FbConnection getConexao()    // string de conexao com o bando de dados pegando do arquivo config...
        {
            string conn = ConfigurationManager.ConnectionStrings["FireBirdConnectionString"].ToString();
            return new FbConnection(conn);
        }
        #endregion
}


Veja a seguir os dados de configuração com o banco de dados, que contem o usuário como sua senha padrão de acesso, e o local onde se encontra o banco de dados para que a classe que o acesse consiga total conexão.

Configurando o app.config de configuração ao banco de dados:

 
             connectionString="Server=localhost;User=SYSDBA;Password=masterkey;Database=C:\dados\DADOS_systems.FDB" />
 


   Segue um breve exemplo de modificação de dados de uma tabela do banco de dados
recebendo como referencia do "Form" de alteração o nome da tabela que vai ser modificada, que aqui chamei de [usuarios] e como os respectivos dados a ser modificado.


        #region "Modificar e alterar Dados da tabela"
        internal static void Fb_AlterarDados(string receberDadosTabela, Models.Usuarios.ClsUsuarios tabeladedados)
        {
            using (FbConnection conexaoFireBird = Models.Dados.ClsAcessoFB.getInstancia().getConexao())
            {
                try
                {
                    conexaoFireBird.Open();
                    if (receberDadosTabela == "usuarios") // caso não seja a tabela a que foi designado o sistema não modificara os dados.
                    {
                        string mSql = "UPDATE " + receberDadosTabela + " SET nome = '" + tabeladedados.Nome + "', nivelacesso = '" + tabeladedados.Nivelacesso + "'" + " WHERE codigo= " + tabeladedados.ID;
                        FbCommand cmd = new FbCommand(mSql, conexaoFireBird);
                        cmd.ExecuteNonQuery(); // Gravando os dados no bando.
                    }
                }
                catch (FbException fbex)
                {
                    //MessageBox.Show("error no -> " + Fbex);
                    throw fbex;
                }
                finally
                {
                    conexaoFireBird.Close();
                }
            }
        }
        #endregion


Espero que gostem do exemplo que usei para conexão com o banco de dados firebrid.
Obrigado e boa noite.