Pesquisa

quinta-feira, 20 de setembro de 2012


RM PLANILHA - PASSAR PARÂMETRO PARA A CONSULTA SQL



Para passar um parâmetro de uma célula da planilha para a consulta SQL utilizamos:
:PLN_$A$1_N

Caso o parâmetro (célula) que desejamos utilizar esteja em uma outra pasta utilizamos:
:PLN_FOLHA!$A$1_N

Onde :

FOLHA -> nome da pasta da planilha
_N -> define o formato da informação que pode ser:
N = numeric
S = string
D = date
I = integer

SQL - Função para valores por extenso



CREATE FUNCTION dbo.extenso
(
@valor DECIMAL(18,2)
)
RETURNS VARCHAR(8000)
AS
BEGIN

DECLARE @valorCentavos            TINYINT       --Valor dos Centavos
DECLARE @valorInt           BIGINT         --Remove os centavos
DECLARE @valorStr           VARCHAR(20)        --Valor como string
DECLARE @pedacoStr1     VARCHAR(20)        --Pedaco da str
DECLARE @pedacoStr2     VARCHAR(20)        --Pedaco da str
DECLARE @pedacoStr3     VARCHAR(20)        --Pedaco da str
DECLARE @pedacoInt1     INT    --Pedaco da INT
DECLARE @pedacoInt2     INT    --Pedaco da INT
DECLARE @pedacoInt3     INT    --Pedaco da INT
DECLARE @menorN          INT
DECLARE @retorno VARCHAR(8000)

SET @retorno = ''
SET @valorInt = Convert(bigint, @valor)
SET @valorStr = Convert(VARCHAR(20), @valorInt)
SET @valorCentavos = Convert(int, (@valor - convert(bigint, @valor)) * 100)


--Retorna Zero
IF (@valor = 0)
BEGIN
SET @retorno = 'Zero Reaiz'
RETURN @retorno
END

DECLARE @numeros TABLE (descricao varchar(50), menor int, maior int)
DECLARE @milhar TABLE (descricaoUm varchar(50), descricaoPl Varchar(50), menor int, maior int)

INSERT INTO @numeros VALUES('Um', 1, 1)
INSERT INTO @numeros VALUES('Dois', 2, 2)
INSERT INTO @numeros VALUES('Três', 3, 3)
INSERT INTO @numeros VALUES('Quatro', 4, 4)
INSERT INTO @numeros VALUES('Cinco', 5, 5)
INSERT INTO @numeros VALUES('Seis', 6, 6)
INSERT INTO @numeros VALUES('Sete', 7, 7)
INSERT INTO @numeros VALUES('Oito', 8, 8)
INSERT INTO @numeros VALUES('Nove', 9, 9)
INSERT INTO @numeros VALUES('Dez', 10, 10)
INSERT INTO @numeros VALUES('Onze', 11, 11)
INSERT INTO @numeros VALUES('Doze', 12, 12)
INSERT INTO @numeros VALUES('Treze', 13, 13)
INSERT INTO @numeros VALUES('Catorze', 14, 14)
INSERT INTO @numeros VALUES('Quinze', 15, 15)
INSERT INTO @numeros VALUES('Dezesseis', 16, 16)
INSERT INTO @numeros VALUES('Dezessete', 17, 17)
INSERT INTO @numeros VALUES('Dezoito', 18, 18)
INSERT INTO @numeros VALUES('Dezenove', 19, 19)
INSERT INTO @numeros VALUES('Vinte', 20, 20)
INSERT INTO @numeros VALUES('Vinte e', 21, 29)
INSERT INTO @numeros VALUES('Trinta', 30, 30)
INSERT INTO @numeros VALUES('Trinta e', 31, 39)
INSERT INTO @numeros VALUES('Quarenta', 40, 40)
INSERT INTO @numeros VALUES('Quarenta e', 41, 49)
INSERT INTO @numeros VALUES('Cinquenta', 50, 50)
INSERT INTO @numeros VALUES('Cinquenta e', 51, 59)
INSERT INTO @numeros VALUES('Sessenta', 60, 60)
INSERT INTO @numeros VALUES('Sessenta e', 61, 69)
INSERT INTO @numeros VALUES('Setenta', 70, 70)
INSERT INTO @numeros VALUES('Setenta e', 71, 79)
INSERT INTO @numeros VALUES('Oitenta', 80, 80)
INSERT INTO @numeros VALUES('Oitenta e', 81, 89)
INSERT INTO @numeros VALUES('Noventa', 90, 90)
INSERT INTO @numeros VALUES('Noventa e', 91, 99)
INSERT INTO @numeros VALUES('Cem', 100, 100)
INSERT INTO @numeros VALUES('Cento e', 101, 199)
INSERT INTO @numeros VALUES('Duzentos', 200, 200)
INSERT INTO @numeros VALUES('Duzentos e', 201, 299)
INSERT INTO @numeros VALUES('Trezentos', 300, 300)
INSERT INTO @numeros VALUES('Trezentos e', 301, 399)
INSERT INTO @numeros VALUES('Quatrocentos', 400, 400)
INSERT INTO @numeros VALUES('Quatrocentos e', 401, 499)
INSERT INTO @numeros VALUES('Quinhentos', 500, 500)
INSERT INTO @numeros VALUES('Quinhentos e', 501, 599)
INSERT INTO @numeros VALUES('Seiscentos', 600, 600)
INSERT INTO @numeros VALUES('Seiscentos e', 601, 699)
INSERT INTO @numeros VALUES('Setecentos', 700, 700)
INSERT INTO @numeros VALUES('Setecentos e', 701, 799)
INSERT INTO @numeros VALUES('Oitocentos', 800, 800)
INSERT INTO @numeros VALUES('Oitocentos e', 801, 899)
INSERT INTO @numeros VALUES('Novecentos', 900, 900)
INSERT INTO @numeros VALUES('Novecentos e', 901, 999)

INSERT INTO @milhar VALUES('Mil', 'Mil', 4, 6)
INSERT INTO @milhar VALUES('Milhão', 'Milhões', 7, 9)
INSERT INTO @milhar VALUES('Bilhão', 'Bilhões', 10, 12)
INSERT INTO @milhar VALUES('Trilhão', 'Trilhões', 13, 15)
INSERT INTO @milhar VALUES('Quadrilhão', 'Quadrilhões', 16, 18)

--Busca o número de casas (sempre em 3)
SELECT TOP 1 @menorN = menor - 1 FROM @milhar WHERE menor > len(@valorStr)

--Adiciona casas a esquerda (tratando sempre de 3 em 3 casas)
SET @valorStr = replicate('0', @menorN - len(@valorStr)) + @valorStr

--Varre Convertendo os valores para valores por extenso
WHILE (len(@valorStr) > 0)
BEGIN
--Busca os 3 primeiros carac.
SET @pedacoStr1 = left(@valorStr, 3)
SET @pedacoStr2 = right(@pedacoStr1, 2)
SET @pedacoStr3 = right(@pedacoStr2, 1)
SET @pedacoInt1 = Convert(int, @pedacoStr1)
SET @pedacoInt2 = Convert(int, @pedacoStr2)
SET @pedacoInt3 = Convert(int, @pedacoStr3)

--Busca a centena
SELECT 
@retorno = @retorno + descricao + ' ' 
FROM 
@numeros 
WHERE 
((len(@pedacoInt1) = 3) AND @pedacoStr1 BETWEEN menor AND maior) 
OR ((@pedacoInt2 <> 0 AND len(@pedacoInt2) = 2) AND @pedacoInt2 BETWEEN menor AND maior)
OR ((@pedacoInt3 <> 0 AND(@pedacoInt2 < 10 OR @pedacoInt2 > 20)) AND @pedacoInt3 BETWEEN menor AND maior) --Remove de 11 a 19
ORDER BY 
maior DESC

--Define o milhar (se foi escrito algum valor para ele)
IF (@pedacoInt1 > 0)
SELECT @retorno = @retorno + CASE WHEN @pedacoInt1 > 1 THEN descricaoPL ELSE descricaoUm END + ' ' FROM @milhar WHERE (len(@valorStr) BETWEEN menor and maior)

--Remove os pedaços efetuados
SET @valorStr = right(@valorStr, len(@valorStr) - 3)

IF (convert(int, left(@valorStr, 3)) > 0)
SET @retorno = @retorno + 'e '
ELSE
IF (convert(int, @valorStr) = 0 AND len(@valorStr) = 6) /*Somente coloca na dezena*/
SET @retorno = @retorno + 'de '    
END

--Somente coloca se tiver algum valor.
IF (len(@retorno) > 0)
SET @retorno = @retorno + CASE WHEN @valorInt > 1 THEN 'Reais ' ELSE 'Real ' END


--Busca os centavos
SET @valorStr = Convert(varchar(2), @valorCentavos)

--Adiciona casas a esquerda
SET @valorStr = replicate('0', 2 - len(@valorStr)) + @valorStr

--Define os centavos
--Busca os 2 caracteres
SET @pedacoStr1 = @valorStr
SET @pedacoStr2 = right(@valorStr, 1)
SET @pedacoInt1 = Convert(int, @pedacoStr1)
SET @pedacoInt2 = Convert(int, @pedacoStr2)

--Define a descrição (Não coloca se não tiver reais)
IF (@pedacoInt1 > 0 AND (len(@retorno) > 0))
SET @retorno = @retorno + 'e '

--Busca a centena
SELECT 
@retorno = @retorno + descricao + ' ' 
FROM 
@numeros 
WHERE 
((@pedacoInt1 <> 0 AND len(@pedacoInt1) = 2) AND @pedacoInt1 BETWEEN menor AND maior)
OR ((@pedacoInt2 <> 0 AND (@pedacoInt1 < 10 OR @pedacoInt1 > 20)) AND @pedacoInt2 BETWEEN menor AND maior)
ORDER BY 
maior DESC

--Define a descrição
IF (@pedacoInt1 > 0)
SELECT @retorno = @retorno + 'Centavo' + CASE WHEN @pedacoInt1 > 1 THEN 's' ELSE '' END


RETURN @retorno
END

--Para teste:
SELECT dbo.extenso(282000.01) 


ORACLE - ERRO ORA-24247


     Na versão 11g ao utilizar a UTL_TCP, UTL_HTTP, UTL_SMTP e UTL_MAIL poderá ocorrer o erro ORA-24247: network access denied by access control list (ACL), por falta de permissões do usuário utilizado. Segue abaixo script para correção do erro:



begin
 DBMS_NETWORK_ACL_ADMIN.DROP_ACL('utl_mail.xml');
 commit;
end;

 begin
  dbms_network_acl_admin.create_acl( 'utl_smtp.xml', 'Permite enviar e-mail', 'RM', TRUE,'connect' );
  commit;
 end;

begin
 dbms_network_acl_admin.add_privilege (  'utl_smtp.xml', 'RM',  TRUE, 'resolve' );
 commit;
end;

begin
 dbms_network_acl_admin.assign_acl( 'utl_smtp.xml',  'smtp.bjsolucoes.info' );
 commit;
end;

RM Gerador - Erro "List index of bounds (5)"




Erro é apresentado ao gerar o relatório na versão 10.83.10(24) do RM Labore em base Oracle.

Solução:
Alterar configurações do BDE na aba "Configuration > Drivers > Native > Oracle
DLL32 = SQLORA8.DLL

domingo, 12 de agosto de 2012



ERRO 32 AO ABRIR O ARQUIVO 




      Trata-se de erro de permissão de criar o arquivo. Aponte para um caminho em uma pasta que o usuário do windows tenha permissão de criar arquivos.



terça-feira, 31 de julho de 2012

RM Gerador - Consulta SQL

Seguem abaixo algumas variáveis dinâmicas que podem ser utilizadas como parâmetros nas construções de SQL em relatórios:


$Hoje: Compara com a data de Hoje.
$NaSemana: Compara se a data está entre o início e fim desta semana.
$NoMes: Compara se a data está entre o início e fim deste mês.
$NoAno: Compara se a data está entre o início e fim deste ano.
$CHAPAFUNCIONARIO: chapa do funcionário logado.
$CODCOLIGADA: código da coligada do contexto.
$CODFILIAL: código da filial do contexto.
$CODIGOEXTERNO: código externo da filial do contexto.
$CODLOCPRT: código da localidade do portal do contexto.
$CODSISTEMA: código do sistema que o usuário está logado.
$CODTIPOCURSO: código do tipo de curso do contexto.
$CODUSUARIO: código do usuário logado.
$CODUNIDADEBIB: código da unidade bibliotecária do contexto.
$CODUSUARIOSERVICO: código do usuário rodando o serviço RM.Host.Service.exe
$EDUTIPOUSR: código do tipo de usuário do Educacional.
$EXERCICIOFISCAL: código do exercício fiscal do contexto.
$IDPRJ: ID do projeto do contexto.
$RHTIPOUSR: tipo de usuário de RH do contexto.

segunda-feira, 30 de julho de 2012

RM Nucleus - NF-e Rejeitada: XML não foi bem formatado.

Verificar os cadastros de cli/for e produto, não poderá ter caracteres especiais, como por exemplo: "*<>'#

sexta-feira, 29 de junho de 2012

RM Fluxus - Cancelamento de Remessa de Pagamento com Retenções


CANCELAMENTO DE REMESSA DE PAGAMENTO

              Em casos em que seja necessário o cancelamento da remessa para o banco o sistema permite efetuar a operação através do menu OPERAÇÕES | CANCELAMENTO DE REMESSA.
              Neste procedimento o sistema poderá apresentar a mensagem de ERRO  indicando que a operação não poderá ser concluída pois o lançamento tem retenções. Isto indica que este fornecedor tem outros lançamentos que fazem parte do cálculo do acúmulo de retenções (PIS, COFINS, CSLL, PCC), já remetidos ou baixados.
             
              Solução do problema:
              Para solucionar este problema, e conseguir cancelar a remessa, será necessário cancelar a remessa dos lançamentos posteriores a este que deseja cancelar.
             
              Como saber a ordenação para fazer o cancelamento?
               Normalmente o sistema ordena pela referência do lançamento financeiro (Ref. ou IDLAN). Filtre os lançamentos do fornecedor e ordene pelo Ref., comece o cancelamento pela maior referência, de forma decrescente.

Ref.
Cli/For
Valor
StatusCNAB
1234
00012
R$ 3.000,00
Remetido
2345
00012
R$ 2.000,00
Remetido
4321
00012
R$ 6.000,00
Remetido
              Comece pelo cancelamento da Ref. 4321, depois 2345 e por último o 1234.
             
              Caso ainda não consiga efetuar o cancelamento será necessário consultar a ordenação na tabela FRETENCAOACUMULADA.

              Se os lançamentos posteriores já estiverem baixados?
              A única forma de cancelar a remessa de um lançamento é cancelar a remessa ou a baixa de todos os lançamentos posteriores que também tenham retenção. Porém é necessário analisar os casos pois o lançamento que deseja cancelar a remessa pode ter sido utilizado para calcular a retenção do lançamento já baixado e pode apresentar diferença no valor retido e valor líquido, caso seja cancelada a baixa. 

terça-feira, 19 de junho de 2012

INSS DE FÉRIAS PARTIDAS 
RM LABORE


         Muitas vezes surgem dúvidas a respeito do cálculo de INSS de férias partidas principalmente quando há mudanças de faixas (alíquotas). Seguem abaixo alguns exemplos e esclarecimentos do processo.

         O cálculo do INSS é por competência, diferentemente do IRRF, que é por pagamento, por isso os cálculos deverão ser feitos conforme o mês.

Exemplo:
Funcionário mensalista, utilizando mês comercial.
Salário: R$ 1000,00
Período de gozo de férias: 02/06/2012 a 01/07/2012


Salário de contribuição (R$)Alíquota para fins de recolhimento
ao INSS (%)
até 1.174,868,00
de 1.174,87 até 1.958,109,00
de 1.958,11 até 3.916,2011,00



Pagamento das Férias
Férias - R$ 1000,00
1/3 de Férias - R$ 333,33
INSS de Férias = R$ 119,55

Composição do Cálculo

Junho                                                                                Julho
1 dia trabalhado = R$ 33,33                                              29 dias trabalhados = 966,67
29 dias de Férias = R$ 966,67                                           1 dia de férias = R$ 33,33
1/3 de Férias de 29 dias = R$ 322,22                                1/3 de férias de 1 dia = R$ 11,11
Base de INSS = R$ 1322,22                                             Base de INSS = 1011,11
Alíquota de 9%                                                                  Alíquota de 8%
INSS de Férias Mês Junho - R$ 116,00                            INSS de Férias Próximo Mês - R$ 3,55 
INSS de Folha - R$ 3,00                                                  INSS de Folha - R$ 77,33


        No envelope do funcionário do mês de Julho aparecerão os eventos de base de férias pagas no mês anterior  (férias, 1/3 de férias e INSS), quando forem finalizadas as férias do funcionário. Esses eventos de base serão levados para a SEFIP do mês de Julho.

quarta-feira, 23 de maio de 2012

ERRO MAXFILEHANDLE



                    Esse erro poderá aparecer em várias rotinas dos sistemas RM. 
                    Existem muitos arquivos abertos e será necessário incrementar o MAXFILEHANDLE.
            Acesse o BDE Configuration | System | INIT . O valor ideal para o MAXFILEHANDLE dependerá da máquina e dos processos que serão executados, por isso será necessário verificar qual será mais adequado. 


             Obs.: Valores muito altos também prejudicam o processamento e poderá ocorrer outros erros.

sexta-feira, 18 de maio de 2012

ERRO ALTERAÇÃO DE LANÇAMENTO 
TOTVS GESTÃO FINANCEIRA (RM Fluxus)


           Ao tentar baixar ou alterar o lançamento financeiro aparece este erro?



           Verifique os tributos utilizados neste lançamento IR, PIS/COFINS/CSLL e se seus códigos de receitas estão cadastrados corretamente em Cadastros | Dados Fiscais | Códigos de Receita.

quinta-feira, 17 de maio de 2012

ERRO NO CÁLCULO DE INSS - PROCESSO DE FÉRIAS

INSS de Férias com cálculo incorreto em férias partidas. Sistema considerando valor de salário de 30 dias, sem proporcionalizar, aumentando a base.

Problema identificado na versão: Totvs Folha de Pagamento - RM Labore (11.20.45(12)) e Biblioteca (11.20.45.164)

Atualizada versão (aplicação e biblioteca) o erro foi corrigido.

terça-feira, 8 de maio de 2012




DIASTRAB

 (TOTVS GESTÃO DE PONTO ELETRÔNICO - RM CHRONUS)


DIASTRAB(DATAINICIO, DATAFIM, MINUTOS1(INT), MINUTOS2(INT), SITUACAO(STRING), PARAMGERAIS(STRING))

Retorna a quantidade de dias dentro de uma carga hora diária que o funcionário trabalha em uma determinada situação.

O sistema verifica o histórico de horário e de seção do funcionário, caso não exista nenhum histórico é utilizado do cadastro do funcionário.

DATAINICIO e DATAFIM: Informar o período que o sistema deve considerar para calcular a quantidade de dias.


SITUAÇÃO: Informar qual situação o sistema deve considerar, conforme valores abaixo:

T = Trabalhadas

F = Férias

AT = Atestado Médico

AF = Afastado (todos os tipos)

AF_X = Afastado do tipo específico. Exemplo ‘P’


PARAMGERAIS: Atualmente contém dois parâmetros, sendo eles:

Considera feriado

Informe ‘S’ para que o sistema considere os feriados do calendário da seção do funcionário. Caso contrário informe ‘N’ para que os feriados não sejam considerados.


Observação I: 

Quando no RM Chronus o funcionário utilizar cartão de ponto, este parâmetro somente tem efeito caso esteja parametrizado no funcionário para considerar feriados.

segunda-feira, 7 de maio de 2012


ALGUNS CONCEITOS PARA CONTABILIZAÇÃO 
TOTVS FOLHA DE PAGAMENTO (RM LABORE)


                Na contabilização da folha enviamos à Contabilidade as informações dos eventos da folha (ficha financeira: salário, assistência médica, INSS, IRRF, etc), bem como os encargos (INSS parte empresa, provisões de férias e 13º, etc).
                A empresa poderá ter a contabilização com partida simples ou partida dupla.
               A partida simples o evento é configurado somente com a conta crédito ou com a conta débito, e deverá estar marcado o parâmetro do evento "contabilização parcial". Como os valores totais enviados para a contabilidade devem ser iguais de crédito e débito, o valor correspondente será contabilizado num evento de líquido salarial ou no encargo de líquido salarial.
            A partida dupla o evento é configurado com a conta débito e a conta crédito correspondente, neste caso não há a contabilização do líquido salarial.
            As provisões de férias e 13º referem-se a valores que são direito adquirido do funcionário até aquele momento e que constituem despesas da empresa. Servem de forma gerencial para visualizar o custo de uma demissão, por exemplo. Servem de forma fiscal, por exemplo, dependendo da empresa, para cálculo do lucro da empresa e apuração do IR da empresa. Nas provisões de férias e décimo terceiro a empresa poderá ter uma contabilização mensal ou acumulada.
               Mensal: na contabilização de provisões mensal a contabilidade recebe o valor referente ao avo do mês.

Funcionário
Data Admissão
13º em 04/2012
Salário
Contabilização (1 avo)
00001
02/01/2012
4
R$ 1000,00
R$ 83,33

           Acumulada: nesta contabilização haverá o estorno dos valores enviados no mês anterior (de provisões) e será contabilizado o valor total da provisão do funcionário.

Funcionário
Data Admissão
13º em 04/2012
Salário
Contabilização Estorno
(3 avos)
Contabilização
(4 avos)
00001
02/01/2012
4
R$ 1000,00
R$ 250,00
R$ 333,33

  
Obs.: Indicamos as empresas trabalharem com a provisão acumulada para evitar diferenças nos meses em que o funcionário tiver aumento salarial pois numa contabilização mensal o valor no mês de aumento não será 1/12 do salário, mas o valor de toda a diferença. Exemplo:

Funcionário
Data Admissão
13º em 04/2012
Salário até 31/03
Salário em
01/04
Contabilização (1 avo + diferença)
00001
02/01/2012
4
R$ 1000,00
R$ 1200,00
R$ 150,00

                Seguem abaixo os tipos de contabilização do Totvs Folha de Pagamento (RM Labore):

1. Contabilização por Funcionário
                A Contabilização por Funcionário é necessária quando o nível de detalhamento do plano de contas da contabilidade exige uma distribuição dos valores que não pode serem determinadas pela seção e também quando a empresa não usa a distribuição em centros de custo (é possível, mas não é recomendável). Para contabilizar por funcionário é necessário ativar o campo "Tem integração por funcionários" no cadastro de eventos e de encargos, somente dos eventos e encargos desejados.

2. Contabilização por Seção
                A contabilização por seção é a mais comum. A condição de que o nível de detalhamento do plano de contas da contabilidade é aplicável a todos os funcionários de uma mesma seção tem que ser obedecida. Pode ser usada mesmo quando a empresa usa a distribuição em centros de custo, desde que obedecida a condição acima, ou seja, todos os funcionários de uma seção pertencem ao mesmo centro de custo. Para contabilizar por seção é necessário ativar o campo "Tem integração contábil" no cadastro de eventos e de encargos, somente dos eventos e encargos desejados. Também é necessário que o parâmetro do RM Labore "Utiliza Cálculo por centro de custo" esteja desmarcado. Pode ser usado em conjunto com integração por funcionário.

3. Contabilização por Centro de custo
                A contabilização por centro de custo é utilizada principalmente quando existe rateio dos valores de um funcionário para mais de um centro de custo. Para contabilizar por centro de custo é necessário ativar o campo "Tem integração contábil" no cadastro de eventos e de encargos, somente dos eventos e encargos desejados. Também é necessário que o parâmetro do RM Labore "Utiliza cálculo por centro de custo" esteja marcado.
                É necessário indicar na pasta rateio fixo da base de cálculo na ficha individual de cada funcionário o percentual de rateio para cada centro de custo, mesmo sendo 100% a um só centro de custo. É Recomendável usar somente contabilização por centro de custo quando houver distribuição de valores de eventos de funcionários para mais de um centro de custo.

GERADOR .NET (TOTVS - LINHA RM)


GERADOR .NET (TOTVS - LINHA RM)



1. Adicionar Tabela



2. Criar uma consulta ou selecionar uma já existente.

.


Adicionar a SQL.



 A SQL será listada em "Lista de Campos".

Arrastar a SQL para a linha de detalhe desejada.
Em Data | Tabela deverá constar a tabela cujos campos são parâmetros da SQL.



OBS.: Os parâmetros da SQL não precisarão estar na linha de detalhe, somente é necessário que sejam campos da tabela que está configurada em Data | Tabela.