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ão sendo mostradas)
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

Integração da Comanda Ágil com ERP

Configuração do App