Pesquisa

domingo, 12 de novembro de 2023

Tabela de numeração de sequências (Sankhya)

Abaixo informações das sequências numéricas existentes no Sankhya e como criar uma utilizando uma que não esteja em uso.


Localizando:
    SELECT  * FROM USER_SEQUENCES


CRIANDO:


CREATE SEQUENCE NOMEDATABELA_seq

START WITH 100

INCREMENT BY 1

NOMAXVALUE 

NOCACHE

NOCYCLE;



COM UM INSERT


INSERT INTO NOMEDATABELA_seq

           (NUMERO,CODIGO)

       VALUES ('MC-'||AD_PROJMETALC_seq.nextval,10);





COM O UPDATE É POSSÍVEL FICAR ATUALIZANDO AUTOMATICAMENTE (PODE SER CRIADO UM BOTÃO DE AÇÃO)


UPDATE  AD_PROJMETALC SET NUMERO = ('MC-'||AD_PROJMETALC_seq.nextval) WHERE CODIGO = 10;



Acompanhamento do Portal de Vendas (Sankhya - Dashboard)

 Acompanhamento do Portal de Vendas (Sankhya - Dashboard)

BI criado para acompanhamento dos Pedidos de Venda

Funcionalidades:

- Detalhes dos pedidos de Venda

* Produtos

* Liberações

§ Identificar o liberador do pedido

§ Identificar se consta liberações pendentes

* Conferência

§ Liberador

§ Se consta solicitação de liberação

* Em dois cliques abre na Central de Vendas o pedido ou a Nota Fiscal do pedido selecionado

* É possível verificar notas de venda geradas pelo pedido selecionado

* Verificar a existência de quantidade(s) pendente(s)

* Verificar quantidade(s) entregues








sexta-feira, 10 de novembro de 2023

Fluxo de Caixa 2.0 (Sankhya - Dashboard)

 Fluxo de Caixa 2.0 (Sankhya - Dashboard)

- Acompanhamento das movimentações financeiras;

- Possibilidade de verificar as origens dos lançamentos financeiros nos Portais;

- Entradas e saídas com os seus devidos saldos de forma diária, mensal e anual;

- Acompanhamento do saldo bancário;

- Detalhamento das despesas e receitas;

- Visão gráfica;

- Possibilidade de exportar para PDF e planilha.





segunda-feira, 9 de outubro de 2023

EDI - PIX (Sankhya)

 EDI - PIX

Abaixo um exemplo de algumas personalizações para se trabalhar com PIX utilizando o processo de EDI.

Para maiores detalhes e o layout configurado para utilização no ERP Sankhya entre em contato.





domingo, 8 de outubro de 2023

Dados de boletos inseridos automaticamente - Sankhya

No intuito de tornar o trabalho com boletos mas prático e seguro, desenvolvi no Sankhya uma ferramenta que se utilizando apenas da linha digitável ou código de barras alimenta todas as informações necessárias como:

  • Data de Vencimento
  • Valor
  • Banco
  • Linha digitável
  • Código de barras
Para que as informações sejam inseridas no financeiro do Sankhya basta a pessoa digitar a linha digitável ou utilizar de um leitor de código de barras

Observe o vídeo abaixo:
ou link do Youtube: Linha Digitavel








terça-feira, 3 de outubro de 2023

Ireport - catálogo criado para o ERP Sankhya

O Background (fundo) possibilita colocar imagens no fundo, ao lado em cima etc.. do relatório

Passo a passo:

• No REPORT INSPECTOR

• Clicar na Opção BACKGROUND

• Clicar em Maximize background ou Add background





Exemplos:


Criei o catálogo abaixo para ser utilizado pelo ERP da Sankhya.










UPDATE / TGFITE (Por período/Vendedor(tabela))

 Script 1

O script abaixo faz um update com:

- Período

- Escolhe vendedor na tabela (neste caso ele pega o vendedor do cabeçalho ou do item

○ Está condição foi colocado no where da seguinte forma:

(CAB.CODVEND = {CODVEND} OR ITE.CODVEND = {CODVEND})

Foi posta entre parênteses


for(var i = 0; i < linhas.length; i++)

{

        var query = getQuery();

        var linha =linhas[i];


query.setParam("CODVEND", getParam("CODVEND"));

query.setParam("DTNEG_IN", getParam("DTNEG_IN"));

query.setParam("DTNEG_TM", getParam("DTNEG_TM"));


query.update("update TGFITE set QTDNEG=(SELECT SUM(ITE.QTDNEG) FROM TGFITE ITE INNER JOIN TGFCAB CAB ON CAB.NUNOTA = ITE.NUNOTA INNER JOIN TGFTOP TOP ON CAB.CODTIPOPER = TOP.CODTIPOPER AND CAB.DHTIPOPER = TOP.DHALTER WHERE (CAB.CODVEND = {CODVEND} OR ITE.CODVEND = {CODVEND}) AND CAB.TIPMOV = 'P' AND TOP.ATUALCOM = 'C' AND CAB.STATUSNOTA = 'L' AND CAB.DTNEG BETWEEN {DTNEG_IN} AND {DTNEG_TM}) where NUNOTA = " + linha.getCampo("NUNOTA"));


    mensagem = "Observação Atualizada com o complemento do Produto";

    query.close();


}


=======================================================================

Script 2

O script abaixo faz um update com:

- Período

- Escolhe vendedor na tabela


for(var i = 0; i < linhas.length; i++)

{

        var query = getQuery();

        var linha =linhas[i];


query.setParam("CODVEND", getParam("CODVEND"));

query.setParam("DTNEG_IN", getParam("DTNEG_IN"));

query.setParam("DTNEG_TM", getParam("DTNEG_TM"));


query.update("update TGFITE set QTDNEG=(SELECT SUM(ITE.QTDNEG)-1 FROM TGFITE ITE INNER JOIN TGFCAB CAB ON CAB.NUNOTA = ITE.NUNOTA WHERE CAB.CODVEND = {CODVEND} AND CAB.DTNEG BETWEEN {DTNEG_IN} AND {DTNEG_TM}) where NUNOTA = " + linha.getCampo("NUNOTA"));


    mensagem = "Observação Atualizada com o complemento do Produto";

    query.close();


}

















terça-feira, 26 de setembro de 2023

Conciliação extrato bancário (Sankhya)

Conciliação extrato bancário
Através desta rotina é possível lançar todas as despesas contidas na conta bancária diretamente para o Sankhya.

Minhas atividades como Consultor Sankhya

 


Certificações Universidade Sankhya:

2G - (Relatório Comercial / Financeiro) - Relatórios Ireport / Sankhya On;

2BD - (Banco de Dados);

2F - Dashboard;

2U - Cotação;

2AC - EDI Financeiro (Bancário / Comercial);

2L - Controle de Serviços (Contrato / Ordem de serviço);

2P - Controle de Serviços/Projetos;

2V - Venda Consultiva;

2M - (Conhecimento técnico básico);

N1 - Completo.


Demais atividades:

Conciliação de extrato bancário (OFX);

Processamento de arquivo de retorno automático;

Integração com EDI de remessa e retorno com o Banco do Brasil;

Cartão Auttar;

Serasa (Nativo / baixa, inclusão etc.);

Portal de Importação XML;

Criação de campos adicionais;

Criação de campos calculados;

Análise de Giro;

Rotina Financeira (Contas, conciliação bancária, Movimentação Financeira, Agenda Financeira e etc.);

Régua de cobrança;

Entrada em produção;

Rotina de Vendas;

Rotina de Serviços;

Rotina de Compras;

Rotina de Movimentações Internas;

Rotina de alçada de limites;

Criação de campos adicionais;

Construtor de telas;

Documentação de Levantamento, definição de processos e etc.;

Processos, Implantação, treinamento, configuração e etc.

Fluxo de Caixa (Sankhya - Dashboard)

 Fluxo de Caixa - Dashboard

    Desenvolvido para melhor entendimento das movimentações financeiras dentro do Sankhya.

    Com ele tenha acesso:

- Despesas;
- Receitas;
- Saldo em conta;
- Gráficos;
- Valores agrupados por data;
- Pesquisa por data e conta;
- Exibição dos todos os títulos sejam de despesa e receita detalhados;
- Contém também Informações herdadas dos portais;
- Possibilidade de exportar para planilhas.



Vídeo: 





sábado, 23 de setembro de 2023

Acompanhamento de Pedidos de Requisição (Sankhya - Dashboard)

 Criei o BI conforme imagem abaixo para controlar os pedidos de requisições gerados pelo Sankhya que passam por liberações, cotação e portal de compras.

Por ele é possível em um clique abrir:
- Portal Mov. Internas
- Cotação
- Portal de Compras




Logotipo

 



É um símbolo que representa visualmente a identidade de uma determinada marca. Continue lendo o artigo e veja o quanto ele é importante para uma empresa se destacar no mercado.

Tendo como uma das principais preocupações que os empreendedores que estão iniciando seus negócios devem ter é referente ao cuidado com a criação de sua marca. Geralmente, são tantas demandas e burocracias que demandam tempo e atenção do empreendedor, que ele acaba deixando de lado algo que é primordial para que seus clientes lembrem-se instantaneamente de sua empresa, produtos e serviços, que nada mais é que – o logotipo da organização.

Comumente utilizado nas áreas de Design Gráfico, Publicidade e Propaganda, e Marketing, o termo logotipo refere-se ao símbolo, que representa visualmente a identidade de determinada marca.

sexta-feira, 24 de fevereiro de 2023

Windows - corrigindo arquivos corrompidos

Verificador dos arquivos do sistema

A ferramenta Verificador dos arquivos do sistema (SFC) está integrada no Windows e pode verificar se os arquivos do computador Windows estão corrompidos ou alterados. Se um arquivo tiver sido modificado, ele substituirá automaticamente esse arquivo pela versão correta.



Abra um Prompt de comando do administrador. No Windows 8, 8.1, 10 ou 11, clique com o botão direito no botão Windows e selecione "Prompt de comando (administrador)".

No Windows 7, também é possível pesquisar pelo Prompt de comando no menu Iniciar, clicar nele com o botão direito e selecionar Executar como administrador.



Digite o seguinte comando na janela do Prompt de comando:


sfc /scannow


Press Enter to run a full system scan:


Quando o scanner SFC for concluído, o computador deverá ser testado para verificar se o problema foi resolvido.

Se o problema persistir ou se essa etapa tiver sido ignorada, avance para a próxima etapa.


terça-feira, 21 de fevereiro de 2023

BOTÃO DE AÇÃO - UPDATE/INSERT COTAÇÃO

 

TABELA

TGFITC

 

CAMPOS ADICIONAIS CRIADOS

AD_APROVACAO_CONTAB

AD_OBSERVACAO_CONTAB

AD_DATA_CONTAB

AD_USUARIO_CONTABIL

 

 

 

 

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

 

SCRIPT 1: Aprovação Contábil - opção 3

=> A data é atualizada com a do sistema

=> Informa o usuário que fez o update

=> Com CASE WHEN

 

 

for(var i = 0; i < linhas.length; i++)

{

 

        var query = getQuery();

        var linha =linhas[i];

 

query.setParam("NUMCOTACAO", getParam("NUMCOTACAO"));

query.setParam("AD_APROVACAO_CONTAB", getParam("AD_APROVACAO_CONTAB"));

query.setParam("AD_OBSERVACAO_CONTAB", getParam("AD_OBSERVACAO_CONTAB"));

 

 

 

query.update("update TGFITC set AD_DATA_CONTAB = sysdate, AD_APROVACAO_CONTAB = {AD_APROVACAO_CONTAB}, AD_OBSERVACAO_CONTAB= (CASE WHEN AD_OBSERVACAO_CONTAB IS NOT NULL THEN CONCAT(CONCAT(AD_OBSERVACAO_CONTAB,' || '),{AD_OBSERVACAO_CONTAB}) ELSE {AD_OBSERVACAO_CONTAB} END), AD_USUARIO_CONTABIL2 = STP_GET_CODUSULOGADO where NUMCOTACAO = " + linha.getCampo("NUMCOTACAO"));

 

 

 

 

    mensagem = "Observação Atualizada com o complemento do Produto";

 

    query.close();

 

}

 

 

 

CAMPO ADICIONAL CRIADO PARA FAZER A LIGAÇÃO COM A TABELA DE USUÁRIO - TSIUSU

 

 

 

 

 

 

 

 

 

 

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


SCRIPT 1: Aprovação Contábil - opção 2

=> A data é atualizada com a do sistema

 

for(var i = 0; i < linhas.length; i++)

{

 

        var query = getQuery();

        var linha =linhas[i];

 

query.setParam("NUMCOTACAO", getParam("NUMCOTACAO"));

query.setParam("AD_APROVACAO_CONTAB", getParam("AD_APROVACAO_CONTAB"));

query.setParam("AD_OBSERVACAO_CONTAB", getParam("AD_OBSERVACAO_CONTAB"));

 

 

 

query.update("update TGFITC set AD_DATA_CONTAB = sysdate, AD_APROVACAO_CONTAB = {AD_APROVACAO_CONTAB}, AD_OBSERVACAO_CONTAB= (CASE WHEN AD_OBSERVACAO_CONTAB IS NOT NULL THEN CONCAT(CONCAT(AD_OBSERVACAO_CONTAB,' || '),{AD_OBSERVACAO_CONTAB}) ELSE {AD_OBSERVACAO_CONTAB} END) where NUMCOTACAO = " + linha.getCampo("NUMCOTACAO"));

 

 

 

 

    mensagem = "Observação Atualizada com o complemento do Produto";

 

    query.close();

 

}

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 

SCRIPT 2: Aprovação Contábil

=> Usuário que informa a data

 

for(var i = 0; i < linhas.length; i++)

{

 

        var query = getQuery();

        var linha =linhas[i];

 

query.setParam("NUMCOTACAO", getParam("NUMCOTACAO"));

query.setParam("AD_DATA_CONTAB", getParam("AD_DATA_CONTAB"));

query.setParam("AD_APROVACAO_CONTAB", getParam("AD_APROVACAO_CONTAB"));

query.setParam("AD_OBSERVACAO_CONTAB", getParam("AD_OBSERVACAO_CONTAB"));

 

 

 

query.update("update TGFITC set AD_DATA_CONTAB = {AD_DATA_CONTAB}, AD_APROVACAO_CONTAB = {AD_APROVACAO_CONTAB}, AD_OBSERVACAO_CONTAB= (CASE WHEN AD_OBSERVACAO_CONTAB IS NOT NULL THEN CONCAT(CONCAT(AD_OBSERVACAO_CONTAB,' || '),{AD_OBSERVACAO_CONTAB}) ELSE {AD_OBSERVACAO_CONTAB} END) where NUMCOTACAO = " + linha.getCampo("NUMCOTACAO"));

 

 

 

 

    mensagem = "Observação Atualizada com o complemento do Produto";

 

    query.close();

 

}

 

 

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BOTÃO DE AÇÃO - UPDATE / TGFITE (Por período/Vendedor(tabela)) 2

 

Script 1

O script abaixo faz um update com:

  • Período
  • Escolhe vendedor na tabela (neste caso ele pega o vendedor do cabeçalho ou do item
    • Está condição foi colocado no where da seguinte forma:

(CAB.CODVEND = {CODVEND} OR ITE.CODVEND = {CODVEND})

Foi posta entre parênteses

 

  • Atualiza a observação com os números dos pedidos envolvidos

 

 

for(var i = 0; i < linhas.length; i++)

{

 

        var query = getQuery();

        var linha =linhas[i];

 

query.setParam("CODVEND", getParam("CODVEND"));

query.setParam("DTNEG_IN", getParam("DTNEG_IN"));

query.setParam("DTNEG_TM", getParam("DTNEG_TM"));

query.setParam("NUNOTA", getParam("NUNOTA"));

 

query.update("update TGFITE set QTDNEG=(SELECT SUM(ITE.QTDNEG) FROM TGFITE ITE INNER JOIN TGFCAB CAB ON CAB.NUNOTA = ITE.NUNOTA INNER JOIN TGFTOP TOP ON CAB.CODTIPOPER = TOP.CODTIPOPER AND CAB.DHTIPOPER = TOP.DHALTER WHERE (CAB.CODVEND = {CODVEND} OR ITE.CODVEND = {CODVEND}) AND CAB.TIPMOV = 'P' AND TOP.ORCAMENTO is null AND CAB.STATUSNOTA = 'L' AND CAB.DTNEG BETWEEN {DTNEG_IN} AND {DTNEG_TM}) where NUNOTA = " + linha.getCampo("NUNOTA"));

 

query.update("update TGFCAB set VLRFRETE=(SELECT SUM(CAB.VLRFRETE) FROM TGFITE ITE INNER JOIN TGFCAB CAB ON CAB.NUNOTA = ITE.NUNOTA INNER JOIN TGFTOP TOP ON CAB.CODTIPOPER = TOP.CODTIPOPER AND CAB.DHTIPOPER = TOP.DHALTER WHERE (CAB.CODVEND = {CODVEND} OR ITE.CODVEND = {CODVEND}) AND CAB.TIPMOV = 'P' AND TOP.ORCAMENTO is null AND CAB.STATUSNOTA = 'L' AND CAB.DTNEG BETWEEN {DTNEG_IN} AND {DTNEG_TM}) where NUNOTA = " + linha.getCampo("NUNOTA"));

 

 

query.update("update TGFCAB set OBSERVACAO =(SELECT LISTAGG('/ Pedido n. único: '||CAB.NUNOTA) FROM TGFITE ITE INNER JOIN TGFCAB CAB ON CAB.NUNOTA = ITE.NUNOTA INNER JOIN TGFTOP TOP ON CAB.CODTIPOPER = TOP.CODTIPOPER AND CAB.DHTIPOPER = TOP.DHALTER WHERE (CAB.CODVEND = {CODVEND} OR ITE.CODVEND = {CODVEND}) AND CAB.TIPMOV = 'P' AND TOP.ORCAMENTO is null AND CAB.STATUSNOTA = 'L' AND CAB.DTNEG BETWEEN {DTNEG_IN} AND {DTNEG_TM}) where NUNOTA = " + linha.getCampo("NUNOTA"));

 

 

    mensagem = "Quantidade e valor do Frete Atualizados";

 

    query.close();

 

}

 

 

BOTÃO DE AÇÃO - UPDATE / TGFITE (Por período/Vendedor(tabela))

Script 1

O script abaixo faz um update com:

  • Período
  • Escolhe vendedor na tabela (neste caso ele pega o vendedor do cabeçalho ou do item
    • Está condição foi colocado no where da seguinte forma:

(CAB.CODVEND = {CODVEND} OR ITE.CODVEND = {CODVEND})

Foi posta entre parênteses

 

 

 

 

 

 

for(var i = 0; i < linhas.length; i++)

{

 

        var query = getQuery();

        var linha =linhas[i];

 

query.setParam("CODVEND", getParam("CODVEND"));

query.setParam("DTNEG_IN", getParam("DTNEG_IN"));

query.setParam("DTNEG_TM", getParam("DTNEG_TM"));

 

 

query.update("update TGFITE set QTDNEG=(SELECT SUM(ITE.QTDNEG) FROM TGFITE ITE INNER JOIN TGFCAB CAB ON CAB.NUNOTA = ITE.NUNOTA INNER JOIN TGFTOP TOP ON CAB.CODTIPOPER = TOP.CODTIPOPER AND CAB.DHTIPOPER = TOP.DHALTER WHERE (CAB.CODVEND = {CODVEND} OR ITE.CODVEND = {CODVEND}) AND CAB.TIPMOV = 'P' AND TOP.ATUALCOM = 'C' AND CAB.STATUSNOTA = 'L' AND CAB.DTNEG BETWEEN {DTNEG_IN} AND {DTNEG_TM}) where NUNOTA = " + linha.getCampo("NUNOTA"));

 

 

    mensagem = "Observação Atualizada com o complemento do Produto";

 

    query.close();

 

}

 

 

 

 

 

 

 

====================================================================================================

Script 2

O script abaixo faz um update com:

  • Período
  • Escolhe vendedor na tabela

 

 

for(var i = 0; i < linhas.length; i++)

{

 

        var query = getQuery();

        var linha =linhas[i];

 

query.setParam("CODVEND", getParam("CODVEND"));

query.setParam("DTNEG_IN", getParam("DTNEG_IN"));

query.setParam("DTNEG_TM", getParam("DTNEG_TM"));

 

 

query.update("update TGFITE set QTDNEG=(SELECT SUM(ITE.QTDNEG)-1 FROM TGFITE ITE INNER JOIN TGFCAB CAB ON CAB.NUNOTA = ITE.NUNOTA WHERE CAB.CODVEND = {CODVEND} AND CAB.DTNEG BETWEEN {DTNEG_IN} AND {DTNEG_TM}) where NUNOTA = " + linha.getCampo("NUNOTA"));

 

 

    mensagem = "Observação Atualizada com o complemento do Produto";

 

    query.close();

 

}