public HttpResponseMessage ConsultaUnidadeAtendimento(TB_DADOS_API consultaAtendimento) { try { //envia todos os dados para validação var tTabela = new ConsultaUnidadeEstoque(); var listar = tTabela.SelecionaUnidadeAtendimento(consultaAtendimento); return(Request.CreateResponse(HttpStatusCode.OK, new { dados = listar.ToArray() })); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message)); } }
public List <TB_UNIDADE> SelecionaUnidadeAtendimento(TB_DADOS_API dados) { bool TemProdutoParaAtendimento = false; var retorno = 0; var strQuery = ""; strQuery += " select a.*from tb_unidade a "; strQuery += " inner join tb_faixa_atendimento b on a.idcdm = b.unidade_idcdm "; strQuery += string.Format(" where '{0}' between b.faixa_cep_inicial and b.faixa_cep_final ", dados.Cep); strQuery += " and a.ativo = 't' "; strQuery += " and a.atende_pedido_especial = 'f' LIMIT 1 "; //verifica se encontrou alguem using (contexto = new Contexto()) { //encontra um cdm para atendimento var reader = contexto.ExecutaComandoComRetorno(strQuery); while (reader.Read()) { retorno = Convert.ToInt32(reader["idcdm"]); } reader.Close(); } //se encontrou, então vai ser maior que zero, vai consultar o estoque if (retorno > 0) { foreach (var item in dados.Itens) { var retornoProduto = 0; var strQueryProduto = ""; strQueryProduto += " select a.* , b.* "; strQueryProduto += " from tb_estoque_cdm a "; strQueryProduto += " inner join produto b on a.produto_id = b.id "; strQueryProduto += string.Format(" where a.qtdestoquefisico >= '{0}' ", item.Qtd); strQueryProduto += string.Format(" and a.unidade_idcdm = '{0}' ", retorno); strQueryProduto += string.Format(" and b.codigo = '{0}' ", item.Codigo); using (contexto = new Contexto()) { //verifica cada produto var reader = contexto.ExecutaComandoComRetorno(strQueryProduto); while (reader.Read()) { retornoProduto = Convert.ToInt32(reader["idestoque"]); } reader.Close(); } //valida se tem estoque if (retornoProduto > 0) { TemProdutoParaAtendimento = true; } else { TemProdutoParaAtendimento = false; //se não encontrou, vai retornar a fábrica, não consulta produto strQuery = ""; strQuery += " select a.* from tb_unidade a where a.atende_pedido_especial = 't' LIMIT 1 "; break; } } } else { //se não encontrou, vai retornar a fábrica, não consulta produto strQuery = ""; strQuery += " select a.* from tb_unidade a where a.atende_pedido_especial = 't' LIMIT 1 "; } using (contexto = new Contexto()) { var retornoDataReader = contexto.ExecutaComandoComRetorno(strQuery); return(TransformaReaderEmListaObjetos(retornoDataReader)); } }