Esempio n. 1
0
        private ConcorrenteIntegration ConvertConcorrente(Concorrentes concorrente)
        {
            ConcorrenteIntegration concorrenteIntegration = new ConcorrenteIntegration();

            concorrenteIntegration.codconcorrente = concorrente.id;
            concorrenteIntegration.descricao      = concorrente.descricao;

            return(concorrenteIntegration);
        }
Esempio n. 2
0
        public void SalvarStatus(StatusIntegration status)
        {
            DateTime data = JavadateToNetdate(status.data);

            logger.Info("SalvarStatus : [ telefone: " + status.telefone + " / codmensagem : " + status.codmensagem + " / idstatus: " + status.idstatus + " / data: " + data.ToString("yyyy-MM-dd HH:mm:ss") + " / ofr: " + status.ofr + " / concorrente: " + status.concorrente + "]");

            Solicitacao os;

            if (String.IsNullOrEmpty(status.telefone) || status.telefone.Equals("0"))
            {
                os = db.Solicitacao.Where(s => s.CodMensagem == status.codmensagem).OrderByDescending(i => i.DataOrigem).FirstOrDefault();
            }
            else
            {
                os = db.Solicitacao.Where(s => s.CodMensagem == status.codmensagem && s.Celular == status.telefone).OrderByDescending(i => i.DataOrigem).FirstOrDefault();
            }

            if (os != null)
            {
                bool recuperar_web = (os.RECUPERAR_WEB.HasValue ? os.RECUPERAR_WEB.Value : false);

                if (recuperar_web)
                {
                    StatusDescartadosMobile descartar = new StatusDescartadosMobile();
                    descartar.codmensagem = status.codmensagem;
                    descartar.dataStatus  = data;
                    descartar.status      = status.idstatus;
                    descartar.telefone    = status.telefone;
                    descartar.createdAt   = DateTime.Now;
                    db.AddToStatusDescartadosMobile(descartar);
                }
                else
                {
                    HistSolicitacao historico_existente = db.HistSolicitacao.FirstOrDefault(h => h.CodMensagem == status.codmensagem && h.IDStatus == status.idstatus &&
                                                                                            (h.Data.Year == data.Year && h.Data.Month == data.Month && h.Data.Day == data.Day &&
                                                                                             h.Data.Hour == data.Hour && h.Data.Minute == data.Minute && h.Data.Second == data.Second)); //Confere a data sem os milliseconds

                    if (historico_existente == null)
                    {
                        HistSolicitacao hist = new HistSolicitacao();
                        hist.IDStatus       = status.idstatus;
                        hist.CodMensagem    = status.codmensagem;
                        hist.Data           = data;
                        hist.DataOrigem     = os.DataOrigem;
                        hist.Celular        = os.Celular;
                        hist.CodSolicitacao = status.codmensagem;
                        hist.Mensagem       = os.Mensagem;
                        hist.Responsavel    = os.Responsavel;
                        hist.Tipo           = os.Tipo;
                        hist.Observacao     = "";
                        hist.Tipo           = "Pedido";
                        hist.StatusDispatch = 0;
                        hist.created_by     = "android";

                        db.AddToHistSolicitacao(hist);

                        //So altera os dados da OS caso o status seja mais novo que a data do status atual da Os
                        DateTime dataDoStatus = new DateTime(data.Year, data.Month, data.Day, data.Hour, data.Minute, 0, 0);
                        DateTime dataDaOs     = new DateTime(os.Data.Year, os.Data.Month, os.Data.Day, os.Data.Hour, os.Data.Minute, 0, 0);

                        //So altera os dados da OS caso o status seja mais novo que a data do status atual da Os
                        if (dataDoStatus >= dataDaOs)
                        {
                            //Altera o status da Solicitação
                            os.IDStatus = status.idstatus;
                            os.Data     = data;
                        }

                        //Se for transferencia
                        if (status.idstatus == STATUS_TRANSFERIR)
                        {
                            os.transferedTo = status.transferir_para;
                            os.transferido  = false;
                        }

                        if (!String.IsNullOrEmpty(status.concorrente))
                        {
                            Concorrentes concorrente = db.Concorrentes.FirstOrDefault(c => c.descricao == status.concorrente);

                            if (concorrente != null)
                            {
                                Concorrente_X_Produto cxp = new Concorrente_X_Produto();
                                cxp.idConcorrente = concorrente.id;
                                cxp.idSolicitacao = os.IDSolicitacao.ToString();
                                db.Concorrente_X_Produto.AddObject(cxp);
                            }
                        }
                    }
                }

                db.SaveChanges();
            }
        }