** Operação de entrada e saida de terminal
    Comando:   Acao = G_TERMINAL
	
	-- Para abrir sessao do terminal e obter a chave de identificação da sessao
	  Comando: PmAcao = {"ENTRAR":"(Codigo ID do dispositivo sem traços)",
	                     "FUN_CODIGO":(Codigo interno do funcionario),
						 "FUN_SENGAR":"(Senha do funcionario no garcom express)"
						}
	  Exemplo abaixo como uma ID de Android (3494342B-6E05-4617-B2BD-B2245D002D4A)
	       Ex: {"ENTRAR":"3494342B6E054617B2BDB2245D002D4A","FUN_CODIGO":6,"FUN_SENGAR":"1234"}
	  Retorno: {"ENTRADA_OK":"(Data e hora)"},
	            "RGA_CHAVELIVRE":"(Chave de identificação da sessao)",
				"RGA_NUMERO_TRM":(Numero do terminal),
				"TERMINAL_E_MAC":(Endereço MAC do terminal autorizado)
				"RGA_DATAHR_ULT":(Caso a sessão já estava aberta irá retornar a data e hora da ultima atividade na sessão)
	       Ex: {"ENTRADA_OK":"2016-09-16 13:20:35","RGA_CHAVELIVRE":"ok0WKQ134IdO6ZoVRftiJLdrxuq2tk","RGA_NUMERO_TRM":1,"TERMINAL_E_MAC":"051F35A50E13","RGA_DATAHR_ULT":"2016-09-16 13:20:32"}

    -- Para encerrar sessao do terminal
	  Comando: PmAcao = {"SAIR":"(Chave de identificação da sessao)"}
	       Ex: {"SAIR":"ok0WKQ134IdO6ZoVRftiJLdrxuq2tk"}
	  Retorno: {"SAIDA_OK":"(Data e hora)"}
	       Ex: {"SAIDA_OK":"2016-09-16 18:10:16"}



** Puxar locais (mesas) ocupadas, aguardando recebimento, inutilizadas
    Comando:   Acao = P_LISTA_LOCAIS
	         PmAcao = {"SESSAO_ID_CHAVE":"(Chave de identificação da sessao)"}
	Retorno:   {"LISTA_LOCAIS":{ "(Numero do local)":
                  { "CODIGO_INTERNO": (Codigo interno (FAT_CODIGOI) na tabela Fat_Geral),
                    "CODIGO_ESTADO_": (Codigo do estado: 1=Ocupado, 2=Aguardando recebimento, 3=Local inutilizável),
                    "VALOR_TOTAL_RC": Valor total calculado,
				  }
			   }
	Exemplo de retorno:
	   {"LISTA_LOCAIS":
	      {"14":{"CODIGO_INTERNO":"43121","CODIGO_ESTADO":2,"VALOR_TOTAL_RC":"13.20"},
		   "24":{"CODIGO_INTERNO":"43122","CODIGO_ESTADO":1,"VALOR_TOTAL_RC":"69.00"}
		  }
	   }



** Puxar dados do local (mesa) e seus itens (produtos) já registrados (pedidos)
    Comando:   Acao = P_LOCAL
	     Ex: PmAcao = { "FAT_NUM_MES":53 ou "FAT_CODIGOI":20304 }
    Retorno:   ['GERAL'] = Matriz com dados no conteudo e o nome dos campos no indice
	           ['ITENS'] = Matriz com submatriz com dados do conteudo e o nome dos campos no indice
	
	RETORNO FAT_PRE_TIP PARA O APLICATIVO = 1 2 3 4 N M (I - Quando for porção)
	Exemplo de retorno:
	   "GERAL":{"FAT_CODIGOI":"43122","FAT_NUM_MES":"24","FAT_SQCOMAN":"2","FAT_NOMCLIE":"","FAT_OBSERV1":"","FAT_OBSERV2":"","FAT_QTD_PES":"0","FAT_TOT_REC":"69.00","FAT_TOT_VAL":"62.10","FAT_TAXASVR":"6.90","FAT_TAXACVR":"0","FAT_PERTAXASVR","10.00"}
	   "ITENS":{"202821":{"FAT_CODIGOI":"202821","FAT_DAT_HOR":"2016-09-14 12:11:36","FAT_CODITE1":"184","FAT_CODITE2":"0","FAT_CODITE3":"0","FAT_CODITE4":"0","FAT_QTD_ITE":"1.000","FAT_PRE_TOT":"4.00","FAT_PRE_OPC":"0.00","FAT_OPCINAL":"","FAT_PRE_TIP":"N","FAT_CANITEM":"","FAT_OBSERV1":"","FAT_OBSERV2":""}



** Travar o local (mesa) mesa com o terminal
    Comando:   Acao = G_LOCAL_TRV
	         PmAcao = {"SESSAO_ID_CHAVE":"(Chave de identificação da sessao)",
			           "TRAVAR":(1=Para travar ou 0=Para destravar),
			           "FAT_NUM_MES":(Numero do local (mesa))
					  }
	Retorno: {"TRAVAR_OK":"(Data e hora)"}
	-- Se já estiver travada por outro terminal:
	Retorno: {"ERRO_TRAVADO":"(Numero do terminal)"}
	-- Se o local estiver aguardando recebimento
	Retorno: {"ERRO_LOCAL_PENDENTE":(Codigo do estado: 1=Ocupado, 2=Aguardando recebimento, 3=Local inutilizável)}
    -- Identificação Obrigatoria na Comanda:
	Retorno: {"ERRO_IDENTIFICACAO_OBRIGATORIA":"Codigo do estado:4=Identificação obrigatória na comanda"}


** Gravar pedido, cancelar e descancelar itens no local (mesa)
    Comando:   Acao = G_LOCAL_I
	         PmAcao = {"SESSAO_ID_CHAVE":"(Chave de identificação da sessao)",
			           "FAT_NUM_MES":(Numero do local (mesa).) ou "FAT_CODIGOI":(Codigo interno na tabela Fat_Geral),
					   "MANTER_TRAVA":(0=Destravar , 1=Se caso foi travado manter travado),       ** Este parâmetro é opcional **
					   "CANCELAR_ITENS":{    * Para cancelar itens *
					      "0":(Codigo interno do registro gravado na tabela Fat_Itens),"1":555,"2":666,...
					   },
					   "DESCAN_ITENS":{    * Para descancelar itens *
					      "0":(Codigo interno do registro gravado na tabela Fat_Itens),"1":555,"2":666,...
					   },
			           "ITENS":
			            { "0":{"FAT_CODITE1":(Codigo interno do produto),
			                   "FAT_CODITE2":(Codigo interno do produto),
			                   "FAT_CODITE3":(Codigo interno do produto),
			                   "FAT_CODITE4":(Codigo interno do produto),
							   "FAT_PRE_TIP":"(Tipo do preço: 1,2,4,5,N ou M)",
			                   "FAT_QTD_ITE":(Quantidade do produto),
							   "FAT_OPCINAL":"(Quantidades e codigos dos opcionais)",
							   "FAT_PRE_OPC":(Valor total dos opcionais),         ** Este parâmetro é opcional **
							   "FAT_PRE_TOT":(Valor total do item),               ** Este parâmetro é opcional **
							   "FAT_OBSERV1":"(Observações 1)",                   ** Este parâmetro é opcional **
							   "FAT_OBSERV2":"(Observações 2)"                    ** Este parâmetro é opcional **
						      },
					      "1":{ (Igual a matriz acima...) }
					    }
					  }
	Retorno: {"GRAVADO_OK":"(Data e hora)",
	          "ITENS_CANCELADOS":{
			     "(Codigo interno do registro gravado na tabela Fat_Itens)":1,...  ** Este valor: 1=Sucesso, 0=Não foi alterado
			  },
	          "ITENS_DESCAN":{
			     "(Codigo interno do registro gravado na tabela Fat_Itens)":1,...  ** Este valor: 1=Sucesso, 0=Não foi alterado
			  },
	          "ITENS":
			   { "0":{"FAT_CODIGOI":(Codigo interno do registro gravado na tabela Fat_Itens),
			          "FAT_PRE_OPC":(Valor dos opcionais),
			          "FAT_PRE_TOT":(Valor total do registro)
			         },
			     "1":{ (Igual a matriz acima...) }
			   }
	         }



** Fechar a conta do local (mesa) para ficar aguardando recebimento no caixa
    Comando:   Acao = G_LOCAL_F
	         PmAcao = {"SESSAO_ID_CHAVE":"(Chave de identificação da sessao)",
			           "FAT_NUM_MES":(Numero do local (mesa)),
					   "MANTER_TRAVA":(0=Destravar , 1=Se caso foi travado manter travado)        ** Este parâmetro é opcional **
					  }
	Retorno: {"ENCERRADO_OK":(Numero do local (mesa)),
	          "FAT_CODIGOI":(Codigo interno no Fat_Geral),
	          "IMPRIMIR_CM":(0=Nao houve impressao, 1=Impressao com sucesso),
	          "COMANDA_TXT":"(Todo o texto da comanda)"
			 }
	-- Se já estiver travada por outro terminal:
	Retorno: {"ERRO_TRAVADO":"(Numero do terminal)"}
	-- Se o local estiver aguardando recebimento
	Retorno: {"ERRO_LOCAL_PENDENTE":(Codigo do estado, 2=Aguardando recebimento, 3=Local inutilizável)}




** Imprimir ou capturar texto da conta do local (mesa)
    Comando:   Acao = G_LOCAL_IMP
	         PmAcao = {"SESSAO_ID_CHAVE":"(Chave de identificação da sessao)",
			           "FAT_CODIGOI":(Codigo interno no Fat_Geral),
					   "IMPRIMIR_CM":(0=Nao, 1=Sim)
					  }
	Retorno: {"IMPRIMIR_CM":(0=Nao imprimiu, 1=Impressao com sucesso),
	          "COMANDA_TXT":"(Todo o texto da comanda)"
			 }




** Transferir itens de um local para outro local (mesa)
    Comando:   Acao = G_LOCAL_TRANS
	         PmAcao = {"SESSAO_ID_CHAVE":"(Chave de identificação da sessao)",
					   "ITENS":{    * Itens a serem transferidos *
					      "0":(Codigo interno do registro gravado na tabela Fat_Itens),"1":555,"2":666,...
					   },
			           "FAT_CODIGOI_ORG":(Codigo interno no Fat_Geral de origem),     ** Este parâmetro é opcional **
			           "FAT_NUM_MES_DST":(Numero do local (mesa) de destino)
					  }
	** Se este parametro "FAT_CODIGOI_ORG" for especificado irá transferir todos os item do local para outro, como uma união de mesas. **
	Retorno: {"TRANSFERIDO_OK":"(Data e hora)",
	          "ITENS":{
			     "(Codigo interno do registro gravado na tabela Fat_Itens)":1,...  ** Este valor: 1=Sucesso, 0=Não foi alterado
			  },
			  "FAT_CODIGOI_DST":(Codigo interno no Fat_Geral de destino)
			 }
	-- Se já estiver travada por outro terminal:
	Retorno: {"ERRO_TRAVADO":"(Numero do terminal)"}
	-- Se o local estiver aguardando recebimento
	Retorno: {"ERRO_LOCAL_PENDENTE":(Codigo do estado, 2=Aguardando recebimento, 3=Local inutilizável)}
