Mudanças entre as edições de "Integração Comanda Ágil"

De Demander
Ir para: navegação, pesquisa
(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...')
 
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 1: Linha 1:
'''Integração da Comanda Ágil com ERP do Cliente'''
+
[https://docs.google.com/document/d/1Z-WVFkE5uX8Yiz7TFEDUNfuKqOgMthgT4_Vi4zZb6hw/edit?usp=sharing Integração da Comanda Ágil com ERP]
  
Apresentação
+
[https://docs.google.com/document/d/1rEBuZc2W5hdeusYrgrM5HPfoExwMmbZAEQQ2PVoe-Ic/edit?usp=sharing Configuração do App]
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
 

Edição atual tal como às 19h12min de 12 de junho de 2019