Olá parceiros Daruma Developers Community,
No Escovando Bits de hoje conheceremos no bit como ler e cadastrar alíquotas na DarumaFramework.dll.

Alíquota de ICMS
O ICMS é o imposto sobre operações relativas à circulação de mercadorias e sobre prestações de serviços de transporte interestadual, intermunicipal e de comunicação.

Alíquota de ISS ou ISSQN
É o Imposto sobre serviços de qualquer natureza, de competência dos municípios e do Distrito Federal, tem como fato gerador a prestação de serviços constantes da lista anexa à Lei Complementar 116/2003, ainda que esses não se constituam como atividade preponderante do prestador.

Observação: Para o contribuinte que necessite trabalhar com alíquotas de serviço(ISS) é necessário verificar se o ECF possui inscrição municipal carregada.

Para conferir basta emitir qualquer documento no ECF e conferir no cabeçalho, conforme abaixo.


É possível também verificar através de comando!

Para isto utilize a função: rRetornarInformação_ECF_Daruma.

Índice: 92

Tamanho: 20

E caso existe Inscrição Municipal no ECF será retornada.


Cadastrando Alíquotas na Impressora Fiscal

Para o cadastro das alíquotas no ECF utilizaremos a função: confCadastrar_ECF_Daruma.
Este método nos permite a configuração de Alíquotas, Totalizadores Não-Fiscais, Relatórios Gerenciais e Formas de Pagamento.

Parâmetros
pszCadastrar Tipo: ALIQUOTA,
TNF,
RG,
FPGTO.
pszValor Descrição a ser cadastrada.
pszSeparador Separador utilizado para separar a descrição.

Neste caso no parâmetro pszCadastrar utilizaremos apenas “ALIQUOTA”.

Tipo da Alíquota

Para cadastrar uma alíquota de ICMS, o comando deve ser chamado passando direto o valor da alíquota desejada.

Exemplo:
confCadastrar_ECF_Daruma("ALIQUOTA", "1500", "|"), onde "1500" é o valor da alíquota de ICMS que desejamos cadastrar.

Para cadastrar uma alíquota de ISS o comando deve ser chamado passando a letra "S" + o valor da alíquota.

Exemplo:
confCadastrar_ECF_Daruma("ALIQUOTA", "S1500", "|"), onde "S" indica que será cadastrada uma alíquota de ISS e 1500 é o valor desta alíquota.

Na prática:

C(Sharp)

[DllImport("DarumaFrameWork.dll")]
        public static extern int confCadastrar_ECF_Daruma(string pszCadastrar, string pszValor, string pszSeparador);

private void BT_Enviar_Click(object sender, EventArgs e)
        {          
            Declaracoes.iRetorno = Declaracoes.confCadastrar_ECF_Daruma("ALIQUOTA", "1300|S2100","|");                  
        }

VB6

Public Declare Function confCadastrar_ECF_Daruma Lib "DarumaFramework.dll" (ByVal pszCadastrar As String, ByVal pszValor As String, ByVal pszSeparador As String) As Integer
Private Sub Enviar_Click()
        iRetorno = confCadastrar_ECF_Daruma("ALIQUOTA", "1300|S2100","|")
End Sub

Delphi

function confCadastrar_ECF_Daruma(pszCadastrar:string;pszValor:string;pszSeparador:string): Integer; StdCall; External 'DarumaFramework.dll'

procedure TFR_FISCAL_confCadastrar_ECF_Daruma.BT_ENVIARClick(
  Sender: TObject);

begin
      
        Int_Retorno:= confCadastrar_ECF_Daruma(‘ALIQUOTA’, ’1300|S2100’,’|’);       

end;

Leitura das Alíquotas na Impressora Fiscal

Para lermos as alíquotas cadastradas na impressora utilizaremos o método: rLerAliquotas_ECF_Daruma.
 
Parâmetros:

cAliquotas  :  Variável por referência  que retorna as alíquotas cadastradas na impressora fiscal.
Será devolvidas todas alíquotas cadastradas na impressora na variável por referência.
      
Quando o prefixo iniciar com a letra T refere-se a uma alíquota de ICMS.
Ex: T1300;   
Quando o prefixo iniciar com a letra S refere-se a uma alíquota ISS.
Ex: S2100;

O método devolve as 16 posições de alíquotas cadastradas e as alíquotas de substituição tributarias, onde as mesmas tem valor de impostos já diluído no valor do produto, variando de estabelecimento para estabelecimento, como é o caso dos postos de combustível.

Veja como são retornadas as alíquotas de Substituição Tributária.

ICMS:
TF1;
TF2;
TI1;
TI2;
TN1;
TN2;

ISSQN:
SFS1;
SFS2;
SIS1;
SIS2;
SNS1;
SNS2

Para conferir mais sobre alíquotas e outros campos da Leitura X acesse o STK Mapa da Leitura X:

http://www.desenvolvedoresdaruma.com.br/home/downloads/Site_2011/STKs/Mapa_da_Leitura_X.pdf

Na prática:

C(Sharp)

[DllImport("DarumaFrameWork.dll")]
        public static extern int rLerAliquotas_ECF_Daruma(StringBuilder cAliquotas);

private void métodoRLerAliquotasECFDarumaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            StringBuilder Str_Aliquotas = new StringBuilder(300);
           
            Declaracoes.iRetorno = Declaracoes.rLerAliquotas_ECF_Daruma(Str_Aliquotas);
            MessageBox.Show(Convert.ToString(Str_Aliquotas));

        }

Podemos observar que os totalizadores cadastrados na impressora foram devolvidos conforme na Leitura X abaixo.


VB6

Public Declare Function rLerAliquotas_ECF_Daruma Lib "DarumaFramework.dll" (ByVal cAliquotas As String) As Integer

Private Sub mnurLerAliquotas_ECF_Daruma_Click()
 Dim Str_Aliquotas As String
        Str_Aliquotas = Space(150)

        iRetorno = rLerAliquotas_ECF_Daruma(Str_Aliquotas)
        MsgBox (Str_Aliquotas)
       
End Sub

Delphi

function rLerAliquotas_ECF_Daruma(cAliquotas:string): Integer; StdCall; External 'DarumaFramework.dll';

procedure BTEnviarClick(
  Sender: TObject);
var
    Str_Informacao: String;
begin
                 SetLength (Str_Informacao,150);
   Int_Retorno := rLerAliquotas_ECF_Daruma(Str_Informacao);
   ShowMessage(Str_Informacao);
   end;
   
Viu só como é simples trabalhar com alíquotas na DarumaFramework.dll? Este é mais um recurso alto-nível para facilitar e acelerar o processo de desenvolvimento de sua aplicação.

Um abraço e até o próximo Escovando Bits,
E-mails:
ddc.suporte@daruma.com.br
suporte.ddc@daruma.com.br
desenvolvedores.suporte@daruma.com.br
suporte.desenvolvedores@daruma.com.br
desenvolvedores.daruma@daruma.com.br
suporte@daruma.com.br
suporte.alexandre@daruma.com.br
claudenir@daruma.com.br
Skypes:
ddc_suporte_daruma
suporte_ddc_daruma
desenvolvedores_suporte_daruma
suporte_desenvolvedores_daruma
desenvolvedores_daruma
suporte_daruma
suporte_alexandre_daruma
claudenir_andrade
 
Twitter facebook Linkedln Youtube Google+