Пример #1
0
        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);
        }
Пример #2
0
        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);
        }