Integração Comanda Ágil

De Demander
Revisão de 19h07min de 12 de junho de 2019 por Gabriel.pretto (discussão | contribs) (Criou página com ''''Integração da Comanda Ágil com ERP do Cliente''' Apresentação A Comanda Ágil é um produto da RETTA TI, que visa facilitar a vida de clientes que possuem restaurant...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

Integração da Comanda Ágil com ERP do Cliente

Apresentação A Comanda Ágil é um produto da RETTA TI, que visa facilitar a vida de clientes que possuem restaurante(s), bar(es) e/ou pub(s). Por meio de uma aplicativo Android e sistema Web (compatível atualmente com banco de dados SQL Server e MySQL), possibilita ao usuário realizar a abertura de um pedido, de acordo com as necessidades do cliente e enviá-lo para o setor (cozinha, bar) responsável pela produção do alimento ou da bebida. Como integrar com a Comanda Ágil O sistema da Comanda Ágil conecta diretamente no seu banco de dados. Sendo assim consultamos as informações de produtos e pedidos diretamente em visões (Views) do seu banco de dados. Conforme o garçom vai adicionando itens ao pedido o comanda ágil chama Stored Procedures do seu banco para atualizar as informações. Observações: Para realizar a conexão com a base de dados que será utilizada, é necessário um host e uma porta, pela qual será feita a comunicação. Essas informações serão preenchidas na tela de configurações do app (talvez aqui conste um link de acesso para essa documentação). As visões e stored procedures que você precisa criar estão listadas abaixo. O detalhamento delas é apresentado mais adiante.

Visões que precisam ser criadas: VW_CA_USUARIO VW_CA_GRUPO_PRODUTO VW_CA_PRODUTO VW_CA_PRODUTO_TIPO_OPCIONAL VW_CA_PRODUTO_OPCIONAL VW_CA_PEDIDO VW_CA_ITEM_PEDIDO

Stored procedures que precisam ser criadas: PROC_CA_CANCELAR_PEDIDO PROC_CA_ATUALIZAR_NUM_MESA PROC_CA_ATUALIZAR_ITEM_PEDIDO PROC_CA_INSERIR_ITEM_PEDIDO PROC_CA_EXCLUIR_ITEM_PEDIDO PROC_CA_MARCAR_COMO_IMPRESSO

Visões View dos grupos de produtos A view abaixo tem por objetivo retornar os grupos de produtos existentes (código e descrição do grupo). Você pode criar esta view baseado no exemplo abaixo:

CREATE VIEW VW_CA_GRUPO_PRODUTO AS

   SELECT CODIGO AS "CODIGO",
                 DESCRICAO AS "DESCRICAO"
   FROM [Sua tabela de Produtos]
   WHERE [Sua condição]

Exemplo de retorno para um select nesta view:

View dos opcionais de cada produto A view abaixo tem por objetivo retornar os opcionais que estão vinculados a cada produto. Você pode criar esta view baseado no exemplo abaixo:

CREATE VIEW VW_CA_PRODUTO_OPCIONAL AS SELECT CODIGO as "CODIGO",

          COD_PRODUTO as "COD_PRODUTO",
          COD_OPCIONAL as "COD_OPCIONAL"

FROM [Sua tabela de Opcionais dos Produtos]

Exemplo de retorno para um select nesta view:



View dos usuários A view abaixo tem por objetivo retornar os usuários que estão cadastrados para utilização do App Comanda Ágil. Você pode criar esta view baseado no exemplo abaixo:

CREATE VIEW VW_CA_USUARIO AS

   SELECT ID as "ID",
          CODIGO as "CODIGO",
          NOME as "NOME",
          SENHA as "SENHA",
          ATIVO as "ATIVO"
   FROM [Sua tabela de Usuários]
   WHERE ATIVO = 1

Exemplo de retorno para um select nesta view:

View dos produtos A view abaixo tem por objetivo retornar os produtos que estão cadastrados na sua base de dados. Você pode criar esta view baseado no exemplo abaixo:

CREATE VIEW VW_CA_PRODUTO AS

   SELECT PROD.CODIGO as "CODIGO",
          PROD.DESCRICAO as "DESCRICAO",
          PROD.PRECO as "PRECO",
          GRUP.CODIGO as "COD_GRUPO",
          GRUP.DESCRICAO as "DESCRICAO_GRUPO",
          PROD.UNIDADE_MEDIDA as "UNIDADE_MEDIDA",
          PROD.PERMITE_VENDA_FRACIONADA as "VENDA_FRACIONADA",
          PROD.QTDE_MINIMA_OPCIONAIS as "QTDE_MINIMA_OPCIONAIS",
          PROD.QTDE_MAXIMA_OPCIONAIS as "QTDE_MAXIMA_OPCIONAIS"
   FROM [Sua tabela de Produtos] PROD
   INNER JOIN [Sua tabela de Grupos de Produto] GRUP
   ON PROD.COD_GRUPO = GRUP.CODIGO

Exemplo de retorno para um select nesta view:


View dos tipos de opcionais/sabores A view abaixo tem por objetivo retornar os opcionais/sabores que você possui na sua base de dados. Você pode criar esta view baseado no exemplo abaixo:

CREATE VIEW VW_CA_PRODUTO_TIPO_OPCIONAL AS

   SELECT CODIGO as "CODIGO",
          DESCRICAO as "DESCRICAO"
   FROM [Sua tabela de Opcionais/Sabores]

Exemplo de retorno para um select nesta view:

View dos pedidos A view abaixo tem por objetivo retornar os pedidos que você emitiu durante o atendimento aos clientes. Você pode criar esta view baseado no exemplo abaixo:

CREATE VIEW VW_CA_PEDIDO AS

   SELECT PED.COD_FILIAL AS "FILIAL",
          PED.NUM_COMANDA AS "NUM_COMANDA",
          US.ID AS "COD_VENDEDOR",
          US.NOME AS "VENDEDOR",
          PED.DATA_EMISSAO AS "DATA_EMISSAO",
          PED.VALOR_TOTAL AS "VALOR_TOTAL",
          PED.HORA AS "HORA",
          PED.NUM_MESA AS "NUM_MESA"
   FROM [Sua tabela de Pedidos] PED
   INNER JOIN [Sua tabela de Usuários] US
   ON PED.ID_VENDEDOR = US.ID

Exemplo de retorno para um select nesta view:

View dos itens do pedido A view abaixo tem por objetivo retornar os itens de cada pedido que você emitiu durante o atendimento aos clientes. Você pode criar esta view baseado no exemplo abaixo:

CREATE VIEW VW_CA_ITEM_PEDIDO AS

   SELECT IP.NUM_COMANDA AS "NUM_COMANDA",
          IP.COD_FILIAL AS "COD_FILIAL",
          IP.COD_PRODUTO AS "COD_PRODUTO",
          P.DESCRICAO AS "DESCRICAO",
          IP.NUM_ITEM AS "NUM_ITEM",
          IP.QTDE AS "QTDE",
          IP.VALOR_UNITARIO AS "VALOR_UNITARIO",
          IP.UNIDADE_MEDIDA AS "UNIDADE_MEDIDA",
          IP.FOI_IMPRESSO AS "FOI_IMPRESSO"
   FROM [Sua tabela de Itens do Pedido] IP
   INNER JOIN [Sua tabela de Produtos] P
   ON IP.COD_PRODUTO = P.CODIGO

Exemplo de retorno para um select nesta view:


Stored Procedures Observações: Os termos “PROCINT”, “FUNCINT” e as variáveis iniciadas com “@”, se referem a chamadas internas do sistema, ou seja, a sua nomenclatura não deve ser alterada, pois ela precisa ser executada naquele momento. Procedure para inserir item no pedido Esta procedure tem por objetivo inserir os itens selecionados de cada pedido que será emitido, na sua tabela de pedidos. Ela verifica os itens escolhidos Você pode criar esta procedure baseado no exemplo abaixo.

CREATE PROCEDURE PROC_CA_INSERIR_ITEM_PEDIDO

 @COD_FILIAL VARCHAR (2),
 @NUM_COMANDA VARCHAR (6),
 @COD_PRODUTO VARCHAR (15),
 @QUANTIDADE FLOAT,
 @COD_VENDEDOR VARCHAR(6),
 @COD_OPCIONAIS VARCHAR(240)

AS BEGIN

 EXEC PROCINT_CA_CRIAR_CABECALHO @COD_FILIAL, @NUM_COMANDA, @COD_VENDEDOR;
 declare @ID_ITEM varchar(2);
 exec @ID_ITEM = FUNCINT_CA_PROXIMO_ID_ITEM
                 @COD_FILIAL,
                 @NUM_COMANDA;
 INSERT INTO [Sua tabela de Pedidos]
 (
   COD_FILIAL,
   NUM_COMANDA,
   COD_PRODUTO,
   NUM_ITEM,
   DESCRICAO_PRODUTO,
   QTDE,
   VALOR_UNITARIO,
   UNIDADE_MEDIDA,
   FOI_IMPRESSO,
   HORA_EMISSAO,
   COD_OPCIONAIS
 )
 VALUES
 (
   @COD_FILIAL,
   @NUM_COMANDA,
   @COD_PRODUTO,
   @ID_ITEM,
   (SELECT DESCRICAO FROM [Sua tabela de Produtos] WHERE CODIGO = @COD_PRODUTO),
   @QUANTIDADE,
   (SELECT PRECO FROM [Sua tabela de Produtos] WHERE CODIGO = @COD_PRODUTO),
   ,
   '0',
   FORMAT(GETDATE(),'HH:mm'),
   @COD_OPCIONAIS
 )
 EXEC PROCINT_CA_ATUALIZAR_TOTAIS_PEDIDO  @COD_FILIAL, @NUM_COMANDA;

END go Procedure para excluir item do pedido Esta procedure tem por objetivo excluir itens do pedido que será emitido, na sua tabela de itens do pedido. Você pode criar esta procedure baseado no exemplo abaixo.

CREATE PROCEDURE PROC_CA_EXCLUIR_ITEM_PEDIDO

   @COD_FILIAL varchar (2),
   @NUM_COMANDA VARCHAR (6),
   @ID_ITEM VARCHAR (2)

AS BEGIN

   DELETE FROM [Sua tabela de Itens do Pedido] WHERE
                         COD_FILIAL = @COD_FILIAL AND
                         NUM_COMANDA = @NUM_COMANDA AND
                         NUM_ITEM = @ID_ITEM

END go Procedure para cancelar o pedido Esta procedure tem por objetivo cancelar o pedido na sua tabela de pedidos e de itens do pedido. Você pode criar esta procedure baseado no exemplo abaixo.

CREATE PROCEDURE PROC_CA_CANCELAR_PEDIDO

   @COD_FILIAL varchar (2),
   @NUM_COMANDA VARCHAR (6)

AS BEGIN

   DELETE FROM [Sua tabela de Itens do Pedido] WHERE
                         COD_FILIAL = @COD_FILIAL AND
                         NUM_COMANDA = @NUM_COMANDA
   DELETE FROM [Sua tabela de Pedidos] WHERE
                         COD_FILIAL = @COD_FILIAL AND
                         NUM_COMANDA = @NUM_COMANDA

END go Procedure para atualizar os itens do pedido Esta procedure tem por objetivo atualizar os itens do pedido na sua tabela de itens do pedido. Você pode criar esta procedure baseado no exemplo abaixo.

CREATE PROCEDURE PROC_CA_ATUALIZAR_ITEM_PEDIDO

   @COD_FILIAL varchar (2),
   @NUM_COMANDA VARCHAR (6),
   @COD_ITEM VARCHAR(6),
   @QUANTIDADE FLOAT,
   @COD_OPCIONAIS VARCHAR (240)

AS BEGIN

   UPDATE [Sua tabela de itens do pedido] SET
           QTDE = @QUANTIDADE
   WHERE
         COD_FILIAL = @COD_FILIAL
     AND
         NUM_COMANDA = @NUM_COMANDA
     AND
         NUM_ITEM = @COD_ITEM;

EXEC PROCINT_CA_ATUALIZAR_TOTAIS_PEDIDO @COD_FILIAL, @NUM_COMANDA; END Procedure para atualizar número da mesa Esta procedure tem por objetivo atualizar o número da mesa no pedido na sua tabela de itens do pedido. Você pode criar esta procedure baseado no exemplo abaixo.

CREATE PROCEDURE PROC_CA_ATUALIZAR_NUM_MESA

   @COD_FILIAL varchar (2),
   @NUM_COMANDA VARCHAR (6),
   @NUM_MESA VARCHAR (2)

AS BEGIN

   UPDATE [Sua tabela de Pedidos] SET
       NUM_MESA = @NUM_MESA
   WHERE
       COD_FILIAL = @COD_FILIAL
   AND
       NUM_COMANDA = @NUM_COMANDA;

END go Procedure para marcar pedido como impresso Esta procedure tem por objetivo marcar o pedido como se ele já foi impresso (registrar valor 1 no campo FOI_IMPRESSO, na mesma comanda daquela filial pela qual o pedido foi emitido). Você pode criar esta procedure baseado no exemplo abaixo.

CREATE PROCEDURE PROC_CA_MARCAR_COMO_IMPRESSO

   @COD_FILIAL VARCHAR (2),
   @NUM_COMANDA VARCHAR (6)

AS BEGIN

   UPDATE [Sua tabela de Itens do Pedido] SET
           FOI_IMPRESSO = 1
   WHERE
         COD_FILIAL = @COD_FILIAL
     AND
         NUM_COMANDA = @NUM_COMANDA;

END go