Este artigo explica brevemente a dll de integração com a api do GED.
O que está contido nesse artigo:
- Parte 1: Construtor e métodos do GedApi.Api
- Parte 2: Classes de domínio(model ou DTO)
- Parte 3: Exemplos de uso da GedApi.Util.PesquisaCampos
Parte 1: Construtor e métodos do GedApi.Api
Construtor:
Construtor do objeto recebe 3 parâmetros
Java Code
string ServerUrlBase: URL base para o servidor do GED, exemplo: http://ged.hos.com.br
string AuthUser: Username referente ao http basic authentication
string AuthPassword: Password referente ao http basic authentication
Java Code
public Api(string ServerUrlBase, string AuthUser, string AuthPassword)
Métodos:
Método: SalvarVenda(Venda arg)
O método SalvarVenda pode ser usado para criar uma nova venda ou para atualizar uma venda existente. Todas as venda enviadas por esse método ficam com um status pendente e não são listadas ou contabilizadas no sistema web. Apenas depois de finalizadas essas vendas serão contabilizadas e exibidas. Com isso, caso ocorra um erro no meio do processo de envio, a venda pode ser completamente enviada novamente sem prejuízos de duplicidade.
Java Code
public Boolean SalvarVenda(Venda Venda)
Java Code
Parâmetros:
GedApi.Domain.Venda
Retorno: Boolean com true se salvou com sucesso, false se erros ocorreram
Quando esse método for útilizado para atualizar uma venda, o campo NSU (Autorização) será usado com chave (junto do código da empresa) para localizar a venda e atualizará os campos informados no objeto Venda. Os campos que não devem ser atualizados, devem ser omitidos. Por exemplo:
Venda v = new Venda();
v.Nsu = "1123554";
v.DataVenda = DateTime.Now;
v.NumeroCupom = "8854546";
v.Cliente = new Cliente()
v.Cliente.Nome = "Jonas"
v.Cliente.Documento = "123456"
api.SalvarVenda(venda)
Nesse caso os campos DataVenda, NumeroCumpo e os dados do Cliente serão atualizados.
Em caso de erro, consultar o campo ErrosApi do objeto:
Java Code
public IList ErrosApi
iterar por essa lista e consultar mensagens de erro.
Método: FinalizarVenda(String nsu)
O método FinalizarVenda é usado para marcar uma venda como finalizada. Antes disso, a venda enviada pela API fica com status pendente e, assim, não é listada ou contabilizada em nenhum relatório. Para finalização da venda é necessário informar o NSU.
Método: PesquisarVenda(VendaPesquisa arg)
Java Code
public VendaResults PesquisarVenda(VendaPesquisa VendaPesquisa)
Parâmetros:
Java Code
GedApi.Domain.VendaPesquisa
Retorno: GedApi.Domain.VendaResults
Abaixo segue exemplo de utilização dos métodos:
Exemplo de código de utilização de PesquisarVenda(arg)
Java Code
VendaPesquisa vp = new VendaPesquisa();
IList campos = new List();
VendaPesquisaCampo campo1 = new VendaPesquisaCampo();
campo1.Nome = "cliente.nome";
campo1.Valor = "jonas";
campo1.Condicao = "anywhere";
campos.Add(campo1);
vp.Campos = campos;
VendaResults results = api.PesquisarVenda(vp);
foreach (var venda in results.Results)
{
...
}
Exemplo de código de utilização de SalvarVenda(arg)
Java Code
Venda v = new Venda();
v.Nsu = "1123554";
v.DataVenda = DateTime.Now;
v.DataReceita = DateTime.Now;
v.Concluido = false;
v.NumeroCupom = "8854546";
v.Cliente = new Cliente();
v.Cliente.Nome = "João da Silva";
v.Cliente.Documento = "01316319008";
v.Medico = new Medico();
v.Medico.Numero = "55252263";
v.Medico.Conselho = "CRM"; // CRM ou CRO
v.Medico.Uf = "RS";
v.Medico.Nome = "Juca Da Silva";
String[] imagens = new String[] { "c:\\hos\imagens\\1.jpg", "c:\\hos\imagens\\2.jpg", "c:\\hos\imagens\\3.jpg" };
Documento d1 = new Documento();
Documento d2 = new Documento();
Documento d3 = new Documento();
d1.ArquivoCaminho = imagens[0];
d1.DocumentoTipo = "tipo 1";
d2.ArquivoCaminho = imagens[1];
d2.DocumentoTipo = "tipo 2";
d3.ArquivoCaminho = imagens[2];
d3.DocumentoTipo = "tipo 3";
List docs = new List();
docs.Add(d1);
docs.Add(d2);
docs.Add(d3);
v.Documentos = docs;
if (api.SalvarVenda(v))
{
System.Console.WriteLine("Venda salvo sucesso");
}
else
{
System.Console.WriteLine("Erro ao salvar venda, inspecionando erros api");
foreach (string s in api.ErrosApi)
{
System.Console.WriteLine(s);
}
}
Parte 2: Classes de domínio(model ou DTO)
GedApi.Domain.Venda
Java Code
namespace GedApi.Domain
{
public class Venda
{
public DateTime DataVenda
public DateTime DataReceita
public string NumeroCupom
public string Nsu
public bool Concluido
public Cliente Cliente
public Medico Medico
public IList Documentos
}
}
GedApi.Domain.Medico
Java Code
namespace GedApi.Domain
{
public class Medico
{
public string Nome
public string Uf
public string Crm
}
}
GedApi.Domain.Documento
Java Code
namespace GedApi.Domain
{
public class Documento
{
public string ArquivoCaminho
public string DocumentoTipo
public string AwsId
public string Url
public string AwsFolder
public string AwsKey
public string AwsBucket
}
}
GedApi.Domain.Cliente
Java Code
namespace GedApi.Domain
{
public class Cliente
{
public string Nome
public string Documento
}
}
As classes abaixo definem atributos que carregam dados para construir pesquisa e receber resultados e informações do retorno da consulta.
GedApi.Domain.VendaPesquisa
Java Code
namespace GedApi.Domain
{
public class VendaPesquisa
{
public IList Campos
public int Limit
public int Offset
public string Order
public string Sort
}
}
GedApi.Domain.VendaPesquisaCampo
Java Code
namespace GedApi.Domain
{
public class VendaPesquisaCampo
{
public string Nome
public string Tipo
public string Valor
public string Condicao
}
}
GedApi.Domain.VendaResults
Java Code
namespace GedApi.Domain
{
public class VendaResults
{
public List Results
public int TotalCount
}
}
Parte 3: Exemplos de uso da GedApi.Util.PesquisaCampos
A classes GedApi.Util.PesquisaCampos define campos que auxiliam na utilização da GedApi.Domain.VendaPesquisa. Exemplos de uso abaixo:
Java Code
VendaPesquisa vp = new VendaPesquisa();
IList campos = new List();
VendaPesquisaCampo campo1 = new VendaPesquisaCampo();
campo1.Nome = PesquisaCampos.Cliente.NOME;
campo1.Valor = "adri";
campo1.Tipo = PesquisaCampos.CondicoesTipos.OR;
campo1.Condicao = PesquisaCampos.Condicoes.ANYWHERE;
campos.Add(campo1);
VendaPesquisaCampo campo2 = new VendaPesquisaCampo();
campo2.Nome = PesquisaCampos.Cliente.NOME;
campo2.Valor = "will";
campo2.Tipo = PesquisaCampos.CondicoesTipos.OR;
campo2.Condicao = PesquisaCampos.Condicoes.ANYWHERE;
campos.Add(campo2);
vp.Order = "desc"; // desc or asc
vp.Offset = 25;
VendaResults results = api.PesquisarVenda(vp);
if(results.Results != null)
{
foreach (var venda in results.Results)
{
...
}
}
Outro exemplo:
Java Code
VendaPesquisaCampo campo3 = new VendaPesquisaCampo();
campo3.Nome = PesquisaCampos.Cliente.DOCUMENTO;
campo3.Valor = "579";
campo3.Condicao = PesquisaCampos.Condicoes.ENDSWITH;
campos.Add(campo3);
Repare nos exemplos de uso de sort e offset:
Java Code
vendaPesquisa.Order = "desc";
vendaPesquisa.Offset = 25
Em caso de dúvidas/dificuldades entre em contato com o suporte ateavés do e-mail suporte@mobilemind.com.br