public List <OrdemServicoIntegration> ListarOrdensPendentes(String phone, long lastpackage, long newpackage, String securitykey) { var listaRetorno = new List <OrdemServicoIntegration>(); ParserHelper parser = new ParserHelper(); DateTime data_atual = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59); DateTime data_corte = data_atual.AddDays(-1); //Retona as OSs pendentes de sincronização com o device var listaOS = db.Solicitacao.Where(s => s.Celular == phone && (s.IDStatus == 1001 || s.IDStatus == 1002 || s.IDStatus == 1004) && (s.LastPackageSent < lastpackage || s.LastPackageSent == null || s.LastPackageSent == 0) && (s.DataOrigem > data_corte) && (s.RECUPERAR_WEB == false || !s.RECUPERAR_WEB.HasValue)).ToList(); //Atualiza o lastpackagesent foreach (var os in listaOS) { try { List <Produtos> listaProdutos = db.Produtos.Where(p => p.idSolicitacao == os.IDSolicitacao).OrderBy(o => o.indice).ToList(); //Convertendo pro objeto usado na integracao com o device OrdemServicoIntegration order = ConvertSolicitacao(os); order.produtos = new List <ProdutoIntegration>(); order.produtos = parser.ParseProducts(os.CodMensagem, listaProdutos); Entregador entregador = db.Entregador.FirstOrDefault(e => e.codigo == phone); if (entregador != null) { order.concorrencia = (entregador.concorrencia.HasValue ? entregador.concorrencia.Value : false); order.is_vip = entregador.isVip.HasValue ? entregador.isVip.Value : false; } listaRetorno.Add(order); } catch (Exception ex) { logger.Error("Repository.ListarOrdensPendentes : *** ERR [ codmensagem : " + os.CodMensagem + " / erro: " + ex.Message + " / " + ex.StackTrace + " ]"); } os.SecurityKeyMobile = securitykey; os.LastPackageSent = newpackage; } //Se houver atualização efetua as alterações na base if (listaOS.Count > 0) { db.SaveChanges(); } return(listaRetorno); }
private OrdemServicoIntegration ConvertSolicitacao(Solicitacao solicitacao) { OrdemServicoIntegration os = new OrdemServicoIntegration(); os.codmensagem = solicitacao.CodMensagem; os.mensagem = solicitacao.Mensagem; os.data = solicitacao.DataOrigem.HasValue ? NetdateToJavadate(solicitacao.DataOrigem.Value) : NetdateToJavadate(new DateTime()); os.editar_produtos = solicitacao.editarQtdes.HasValue ? solicitacao.editarQtdes.Value : false; os.cliente = solicitacao.CLIENTE; os.cod_cliente = solicitacao.CODCLIENTE; os.logradouro = solicitacao.LOGRADOURO; os.numero = solicitacao.NUMERO.ToString(); os.complemento = solicitacao.COMPLEMENTO; os.bairro = solicitacao.BAIRRO; os.cidade = solicitacao.CIDADE; os.referencia = solicitacao.REFERENCIA; os.data_entrega = solicitacao.DATAENTREGA.Value.ToString("dd/MM/yyyy HH:mm"); os.forma_pgto = solicitacao.FORMAPGTO; os.troco = solicitacao.TROCO.ToString(); os.valor_total = solicitacao.VALORTOTAL.ToString(); os.telefone = solicitacao.TELEFONE; os.obs = solicitacao.Observacao; return(os); }