public Rota DefinirPropriedades(Intelbras.Message.Helper.MSG0054 xml) { var crm = new Rota(this.Organizacao, this.IsOffline); #region Propriedades Crm->Xml crm.CodigoRota = xml.CodigoRota; crm.Nome = xml.Nome; if (!string.IsNullOrEmpty(xml.Roteiro)) { crm.Roteiro = xml.Roteiro; } else { crm.AddNullProperty("Roteiro"); } crm.State = xml.Situacao; crm.IntegradoEm = DateTime.Now; crm.IntegradoPor = usuarioIntegracao.NomeCompleto; crm.UsuarioIntegracao = xml.LoginUsuario; #endregion return(crm); }
public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { //Trace.Add("Mensagem " + numeroMensagem + " XML: {0}", mensagem); usuarioIntegracao = usuario; Rota objeto = this.DefinirPropriedades(this.CarregarMensagem <Pollux.MSG0054>(mensagem)); if (!resultadoPersistencia.Sucesso) { retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0054R1>(numeroMensagem, retorno)); } objeto = new Intelbras.CRM2013.Domain.Servicos.RotaService(this.Organizacao, this.IsOffline).Persistir(objeto); if (objeto == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Registro não encontrado!"; } else { resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso"; } retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0054R1>(numeroMensagem, retorno)); }
public Rota Consultar_Rota(int id) { Rota rot = new Rota(); try { using (cmd = new MySqlCommand("SP_Consultar_Rota", Conexao.conexao)) { conn.abrirConexao(); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@id", id); dr = cmd.ExecuteReader(); while (dr.Read()) { rot.origem_Rota = dr["origem_Rota"].ToString(); rot.destino_Rota = dr["destino_Rota"].ToString(); rot.distancia_Rota = dr["distancia_Rota"].ToString(); } rot.id_Rota = id; dr.Close(); } return(rot); } catch (Exception) { throw; } }
public string PostarLocalizacao() { RespostaHttp resp = new RespostaHttp(); try { Guid VeiculoID = _requestBody.GetValueAs <Guid>("VeiculoId"); List <string> Tags = _requestBody.GetValueAs <List <string> >("Tags"); double lat = _requestBody.GetValueAs <double>("Latitude"); double lng = _requestBody.GetValueAs <double>("Longitude"); var veiculo = _veiculoService.ObterPorId(VeiculoID); Rota rota = _rotaService.ObterPorId(veiculo.RotaAtual); resp = LogicaPost(Tags, lat, lng, rota); if (resp == null) { throw new Exception(); } } catch (Exception) { resp = new RespostaHttp(); resp.Ok = false; resp.Mensagem = "Ocorreu um erro ao processar a requisição. (500)"; } return(Serialize(resp)); }
/// <summary> /// Mover elevador /// </summary> private void Mover() { Destino proxDestino = Rota.FirstOrDefault(); if (AndarAtual < proxDestino.Andar) { StatusAtualElevador = StatusElevador.Subindo; } else { StatusAtualElevador = StatusElevador.Descendo; } while (AndarAtual != proxDestino.Andar) { if (StatusAtualElevador == StatusElevador.Subindo) { AndarAtual++; } else { AndarAtual--; } Console.WriteLine(string.Format("Estamos no {0}º andar", AndarAtual)); } AbirPorta(); }
public string PostarLocalizacao() { RespostaHttp resp = new RespostaHttp(); try { Guid VeiculoID = _requestBody.GetValueAs <Guid>("VeiculoId"); var veiculo = _veiculoService.ObterPorId(VeiculoID); Rota rota = _rotaService.ObterPorId(veiculo.RotaAtual); var localizacao = new Localizacao { HorarioAmostra = DateTime.UtcNow, Latitude = _requestBody.GetValueAs <double>("Latitude"), Longitude = _requestBody.GetValueAs <double>("Longitude"), Rota = rota }; _localizacaoService.SalvarLocalizacao(localizacao); resp.Ok = true; resp.Mensagem = "Localização salva com sucesso."; } catch (Exception) { resp.Ok = false; resp.Mensagem = "Ocorreu um erro ao processar a requisição. (500)"; } return(Serialize(resp)); }
public static DivergenciaKm Processar(Rota rota, IEnumerable <Infra.Ocorrencia> ocorrencias, IEnumerable <Deslocamento> deslocamentosAlmoco, IEnumerable <Deslocamento> deslocamentosAbastecimento, IEnumerable <Deslocamento> deslocamentosPernoite, ParadaTratadaAnalitico parada, decimal vlMetaAderencia) { List <bool> subIndicadoresDivergenciaKm = new List <bool>(); _divergenciaKm = new DivergenciaKm(); subIndicadoresDivergenciaKm.Add(AderenciaRaioKPI(rota.Entregas, vlMetaAderencia)); subIndicadoresDivergenciaKm.Add(InicioOuFimNoRaio(ocorrencias)); subIndicadoresDivergenciaKm.Add(MotoristaOuSistemaFinalizouRota(rota)); subIndicadoresDivergenciaKm.Add(DeslocamentosAlmocoPernoiteAbastecimento(rota, deslocamentosAlmoco, deslocamentosAbastecimento, deslocamentosPernoite)); subIndicadoresDivergenciaKm.Add(AvaliarSombraCelularOuCelularDesligado(ocorrencias.ToList())); subIndicadoresDivergenciaKm.Add(AvaliarPNPRota(parada)); _divergenciaKm.KMPrevisto = rota.VlDistanciaTotalPrevista; _divergenciaKm.KMRealizado = rota.VlDistanciaTotalRealizada; // Se todas os sub indicadores forem verdadeiros significa que houve divergência no Km bool houveDivergencia = subIndicadoresDivergenciaKm.Count(indicador => indicador) == subIndicadoresDivergenciaKm.Count; _divergenciaKm.HouveDivergencia = houveDivergencia; if (!houveDivergencia) { _divergenciaKm.SetExibirOcorrenciaNoXml(false); } return(_divergenciaKm); }
public static DivergenciaDiaria Processar(Rota rota) { DivergenciaDiaria divergenciaDiaria = new DivergenciaDiaria(); TimeSpan timeRealizados = rota.DtChegadaRealizada.Date - rota.DtPartidaRealizada.Date; TimeSpan timePrevistos = rota.DtChegadaPrevista.Date - rota.DtPartidaPrevista.Date; // Contabiliza o dia em que ele saiu int diasRealizados = timeRealizados.Days + 1; int diasPrevistos = timePrevistos.Days + 1; if (rota.DtChegadaRealizada.Hour < 9) { diasRealizados--; } if (rota.DtChegadaPrevista.Hour < 9) { diasPrevistos--; } // Não envia o indicador ao WS quando os dias realizados estiverem dentro do previsto if (diasRealizados <= diasPrevistos) { divergenciaDiaria.SetExibirOcorrenciaNoXml(false); } divergenciaDiaria.QuantidadeDiariaRealizada = diasRealizados < 0 ? 0 : diasRealizados; divergenciaDiaria.QuantidadeDiariaPrevista = diasPrevistos < 0 ? 0 : diasPrevistos; return(divergenciaDiaria); }
public Mensalidade(int pId, string pDias, float pCusto, Rota pRota) { id = pId; dias = pDias; custo = pCusto; rota = pRota; }
public IActionResult Index() { Rota rota = new Rota(); List <Produto> ListaProdutos = rota.PegaProdutos().ToList(); return(View("Lista", ListaProdutos)); }
public IActionResult CompraProduto(int id) { Rota rota = new Rota(); Produto produto = rota.PegaProdutos().Single(item => item.IDProduto == id); return(View(produto)); }
public void Nao_Deve_Existir_Trecho_Com_Km_Zero() { var rota = new Rota(1); var veiculo = new Veiculo(1, 7); rota.AdicionarTrecho(veiculo, "A", 0); }
public static Rota Create(Property p, Quaternion o, QuaternionCallback c) { Rota r = null; if (p.rdp.Count > 0) { r = p.rdp.Dequeue(); r.gameObject.SetActive(true); r.transform.rotation = o; } else { r = new GameObject("Rotation Handle").AddComponent <Rota>(); r.transform.rotation = o; r.transform.SetParent(Parent); QuaternionCallback _c = (v) => { r.transform.rotation = v; if (r.callback != null) { r.callback(v); } }; for (int i = 0; i < 3; i++) { RotaSingle s = RotaSingle.Create(p, o, (Axis3)i, null); s.transform.SetParent(r.transform, false); s.DragEvent += _c; } } r.callback = c; r.property = p; p.rep.Add(r); return(r); }
public FConsultaRota2(int cod_rota) { InitializeComponent(); _Rota = new RotaDAO().Find(r => r.COD_ROTA == cod_rota).First <Rota>(); rotaBO = new RotaBO(_Rota); bindIformacoesRota(); }
public void ObterDistanciaRotaInexistente() { Rota rota = new Rota(); var iDistancia = _rota.ObterDistancia("A-E-D"); Assert.AreEqual(iDistancia, -1); }
public RotaModel(Rota rota) { this.Latitude = rota.Latitude; this.Longitude = rota.Longitude; this.Codigo = rota.Codigo; this.Id = rota.Id; }
static void Main(string[] args) { var sRota = ""; var iDistancia = 0; Rota rota = new Rota(); rota.AddRota("AB", 5); rota.AddRota("BC", 4); rota.AddRota("CD", 8); rota.AddRota("DC", 8); rota.AddRota("DE", 6); rota.AddRota("AD", 5); rota.AddRota("CE", 2); rota.AddRota("EB", 3); rota.AddRota("AE", 7); Console.WriteLine("Informe a rota desejada: "); sRota = Console.ReadLine().ToUpper(); iDistancia = rota.ObterDistancia(sRota); if (iDistancia == -1) { Console.WriteLine("NAO EXISTE ROTA"); } else { Console.WriteLine(iDistancia); } }
public CommandResult Criar(CriarRotaCommand command) { try { command.Validate(); if (command.Invalid) { return(CommandResult.Invalid(command.Notifications.ToNotificationsString())); } Rota rota = Rota.Criar( DataString.FromString(command.Nome), DataString.FromNullableString(command.Composicao_Rota), DataString.FromNullableString(command.Observacao), command.Flag_Ativo); dataContext.Add(rota); dataContext.SaveChanges(); return(CommandResult.Valid()); } catch (Exception ex) { return(CommandResult.Invalid(ex.Message)); } }
public CommandResult Remover(int cod_Rota) { string entityName = "Rota"; string commandName = $"Removendo {entityName}"; try { Rota rota = dataContext.Rota.FirstOrDefault(x => x.Cod_Rota == cod_Rota); if (rota is null) { return(CommandResult.Invalid(Logs.EntidadeNaoEncontrada(entityName, cod_Rota))); } dataContext.Remove(rota); dataContext.SaveChanges(); return(CommandResult.Valid()); } catch (Exception ex) { return(CommandResult.Invalid(ex.Message)); } }
protected virtual Rota LoadFromControls() { Rota rota = new Rota(); if (!string.IsNullOrEmpty(txtId.Text)) { rota.id = Convert.ToInt64(txtId.Text); } rota.id_transportadora = Convert.ToInt64(cbTransportadora.SelectedValue); rota.id_cidade = Convert.ToInt32(cbCidade.SelectedValue); rotaBLL = new RotaBLL(); List <Rota> RotaList = rotaBLL.getRota(p => p.id_transportadora == rota.id_transportadora & p.id_cidade == rota.id_cidade); if (RotaList.Count > 0) { rota = RotaList.First(); rota.id_cidade = Convert.ToInt64(cbCidade.SelectedValue); rota.id_transportadora = Convert.ToInt64(cbTransportadora.SelectedValue); Id = rota.id; } return(rota); }
public void ObterDistanciaRota_ABC() { Rota rota = new Rota(); var iDistancia = _rota.ObterDistancia("A-B-C"); Assert.AreEqual(iDistancia, 9); }
public Rota Persistir(Rota objRota) { Rota TmpRota = null; if (!String.IsNullOrEmpty(objRota.CodigoRota)) { TmpRota = RepositoryService.Rota.ObterPor(objRota.CodigoRota); if (TmpRota != null) { objRota.ID = TmpRota.ID; RepositoryService.Rota.Update(objRota); if (!TmpRota.State.Equals(objRota.State) && objRota.State != null) { this.MudarStatus(TmpRota.ID.Value, objRota.State.Value); } return(TmpRota); } else { objRota.ID = RepositoryService.Rota.Create(objRota); return(objRota); } } else { return(null); } }
public void ObterDistanciaRota_AEBCD() { Rota rota = new Rota(); var iDistancia = _rota.ObterDistancia("A-E-B-C-D"); Assert.AreEqual(iDistancia, 22); }
public AdicionarRotaResponse Adicionar(AdicionarRotaRequest adicionarRotaRequest) { var veiculo = this.veiculoDao.Obter(adicionarRotaRequest.VeiculoId); if (veiculo == null) { throw new Exception("Nenhum Veiculo econtrado com esse id"); } var empresa = this.empresaDao.Obter(adicionarRotaRequest.EmpresaId); if (empresa == null) { throw new Exception("Nenhuma empresa econtrada com esse id"); } var rota = new Rota() { Nome = adicionarRotaRequest.Nome, Empresa = empresa, Veiculo = veiculo }; this.rotaDao.Salvar(rota); return(new AdicionarRotaResponse(rota.Id)); }
public IActionResult Atualizar(Rota rota) { _rotRepository.Update(rota); _rotRepository.Save(); TempData["mensagem"] = "Atualizado com Sucesso!!"; return(RedirectToAction("Listar")); }
public List <Rota> ProcurarPorOrigem(string origem) { List <Rota> listaRota = new List <Rota>(); try { using (cmd = new MySqlCommand("Select * from Rota where origem_Rota = @origem", Conexao.conexao)) { conn.abrirConexao(); cmd.Parameters.AddWithValue("@origem", origem); dr = cmd.ExecuteReader(); while (dr.Read()) { Rota rot = new Rota(); rot.id_Rota = Convert.ToInt32(dr["id_Rota"].ToString()); rot.origem_Rota = dr["origem_Rota"].ToString(); rot.destino_Rota = dr["destino_Rota"].ToString(); rot.distancia_Rota = dr["distancia_Rota"].ToString(); listaRota.Add(rot); } dr.Close(); return(listaRota); } } catch (Exception) { throw; } }
public static DiariaCliente Processar(Rota rota, TipoVeiculo tipoVeiculo) { List <Entrega> entregas = rota.Entregas; DiariaCliente diariaCliente = null; entregas.ForEach(entrega => { if (entrega.DtChegadaRealizada != null && entrega.DtPartidaRealizada != null && entrega.UnidadeNegocio != null) { TimeSpan datPercorrido = (entrega.DtPartidaRealizada - entrega.DtChegadaRealizada); //Comparação feita em dias if (datPercorrido.TotalSeconds > (entrega.UnidadeNegocio.QtHoraMaxPermanenciaCarreta * 3600) && tipoVeiculo.DsTipo.Contains("CTA")) { if (diariaCliente == null) { diariaCliente = new DiariaCliente(); } int qtdDiarias = ((int)datPercorrido.TotalDays) + 1; diariaCliente.AdicionarItem(entrega.Cliente.CdClienteNegocio, qtdDiarias); } } }); return(diariaCliente); }
public static bool DeslocamentosAlmocoPernoiteAbastecimento(Rota rota, IEnumerable <Deslocamento> deslocamentosAlmoco, IEnumerable <Deslocamento> deslocamentosAbastecimento, IEnumerable <Deslocamento> deslocamentosPernoite) { // Se algum deslocamento for nulo, significa que a estrutura correspondente é inconsistente if (deslocamentosAlmoco == null || deslocamentosAbastecimento == null || deslocamentosPernoite == null) { return(false); } List <IEnumerable <Deslocamento> > lstDeslocamentos = new List <IEnumerable <Deslocamento> >(); lstDeslocamentos.Add(deslocamentosAlmoco); lstDeslocamentos.Add(deslocamentosAbastecimento); lstDeslocamentos.Add(deslocamentosPernoite); for (int index = 0; index < 3; index++) { foreach (var deslocamento in lstDeslocamentos[index]) { bool deslocamentoValido; deslocamentoValido = IsDeslocamentoValido(rota, deslocamento); if (!deslocamentoValido) { return(false); } } } return(true); }
public IEnumerable <BaldeioEntrega> GetBaldeiosMultiTransporteByRotaDestino(long cdRotaBaldeada) { using (var dapperConnection = AbreConexao()) { PersistenceDataContext persistence = new PersistenceDataContext(); dapperConnection.Open(); var baldeiosRota = dapperConnection .Query <BaldeioEntrega>(@"SELECT BaldeioEntrega.*, RotaOrigem.* FROM OPMDM.TB_BALDEIO_ENTREGA BaldeioEntrega INNER JOIN OPMDM.TB_ROTA RotaOrigem ON BaldeioEntrega.CdRotaOrigem = RotaOrigem.CdRota WHERE BaldeioEntrega.CdRotaDestino = @CdRotaBaldeada", new[] { typeof(BaldeioEntrega), typeof(Rota) }, objects => { BaldeioEntrega BaldeioEntrega = objects[0] as BaldeioEntrega; Rota Rota = objects[1] as Rota; if (BaldeioEntrega != null) { BaldeioEntrega.RotaOrigem = Rota; } return(BaldeioEntrega); }, splitOn: "CdRotaNegocio", param: new { CdRotaBaldeada = cdRotaBaldeada }).AsList(); return(baldeiosRota); } }
public IEnumerable <Rota> Consultar_Rotas() { List <Rota> rotaList = new List <Rota>(); try { using (cmd = new MySqlCommand("Select * from Consultar_Rotas", Conexao.conexao)) { conn.abrirConexao(); dr = cmd.ExecuteReader(); while (dr.Read()) { Rota rot = new Rota(); rot.id_Rota = Convert.ToInt32(dr["id_Rota"].ToString()); rot.origem_Rota = dr["origem_Rota"].ToString(); rot.destino_Rota = dr["destino_Rota"].ToString(); rot.distancia_Rota = dr["distancia_Rota"].ToString(); rotaList.Add(rot); } dr.Close(); return(rotaList); } }catch (Exception) { throw; } }
public IActionResult ExcluiProduto(Produto produto) { Rota rota = new Rota(); rota.ExcluiProduto(produto.IDProduto); return(RedirectToAction("Index")); }
public FrmRotaProcessa() : base(false) { InitializeComponent(); RowBackColorMap = new Hashtable(); RowForeColorMap = new Hashtable(); rota = new Rota(); }
public static void Main() { Endereco e1 = new Endereco(); e1.NomeRuaAvenida = "Avenida Paulista"; e1.Numero = 1000; e1.Cidade = "São Paulo"; e1.Estado = "SP"; Endereco e2 = new Endereco(); e2.NomeRuaAvenida = "Rua coimbra"; e2.Numero = 705; e2.Cidade = "Diadema"; e2.Estado = "SP"; IRota r = new Rota(); var maisrapida = r.MaisRapida(e1, e2); var evitatransito = r.EvitandoTransito(e1, e2); //add breakpoint Rota debug1 = maisrapida; Rota debug2 = evitatransito; }
private void mnuMarcarVisitaPendente_Click(object sender, EventArgs e) { SqlCeTransaction trans = null; Rota r = new Rota(); try { if (D.Cliente == null) throw new Exception("Nenhum cliente carregado!"); if (D.Funcionario == null) throw new Exception("Nenhum funcionário carregado!"); int IdCliente = D.Cliente.IdStore; if (IdCliente <= 0) throw new Exception("Somente cliente cadastrados no NeoStore podem ter visitação agendada!"); int IdFuncionario = D.Funcionario.Id; int Status = (int)Rota.StatusEnum.Pendente; DateTime DtVisita = DateTime.Now; int rowsAffected = -1; using (trans = D.Bd.Con.BeginTransaction()) { using (SqlCeCommand cmd = new SqlCeCommand(String.Empty, D.Bd.Con)) { // Verificar se existe alguma visita agendada para aquele cliente no periodo de validade e que já não esteja pendente! cmd.CommandText = "SELECT COUNT(*) as Total FROM visita WHERE id_cliente=@id_cliente and (data_visita >= @data_visita_ini and data_visita <= @data_visita_end)"; cmd.Parameters.Add("@id_cliente", SqlDbType.Int).Value = IdCliente; cmd.Parameters.Add("@data_visita_ini", SqlDbType.DateTime).Value = r.ValidadeInicio; cmd.Parameters.Add("@data_visita_end", SqlDbType.DateTime).Value = r.ValidadeFim; Int32 total = 0; try { total = Int32.Parse(cmd.ExecuteScalar().ToString()); } catch { } cmd.Parameters.Clear(); StringBuilder builder = new StringBuilder(); if (total == 0) { builder.AppendLine("INSERT INTO visita (id_cliente, id_funcionario, status, data_visita)"); builder.AppendLine("VALUES"); builder.AppendLine("(@id_cliente, @id_funcionario, @status, @data_visita)"); cmd.Parameters.Add("@id_funcionario", SqlDbType.Int).Value = IdFuncionario; cmd.Parameters.Add("@data_visita", SqlDbType.DateTime).Value = DtVisita; } else { // Partindo do pre suposto que so deixe cadastrar uma unica visita para o cliente no determinado periodo builder.AppendLine("UPDATE visita SET status=@status WHERE id_cliente=@id_cliente and (data_visita >= @data_visita_ini and data_visita <= @data_visita_end)"); cmd.Parameters.Add("@data_visita_ini", SqlDbType.DateTime).Value = r.ValidadeInicio; cmd.Parameters.Add("@data_visita_end", SqlDbType.DateTime).Value = r.ValidadeFim; } cmd.CommandText = builder.ToString(); cmd.Parameters.Add("@id_cliente", SqlDbType.Int).Value = IdCliente; cmd.Parameters.Add("@status", SqlDbType.Int).Value = Status; // Executa o comando rowsAffected = cmd.ExecuteNonQuery(); trans.Commit(); MessageBox.Show("Cliente marcado como pendente"); } } } catch (Exception ex) { trans.Rollback(); MessageBox.Show(ex.Message); } }
private void JSONSerialize(Rota rotaAtual) { MemoryStream stream = new MemoryStream(); DataContractJsonSerializer jsonSer = new DataContractJsonSerializer(typeof(Rota)); jsonSer.WriteObject(stream, rotaAtual); stream.Position = 0; StreamReader sr = new StreamReader(stream); File.WriteAllText(string.Format("D:/rota/{1} - {0}.json", rotaAtual.Nome, DateTime.Now.ToString("yyyy_MM_dd_HHmmss")), sr.ReadToEnd(), Encoding.UTF8); }
//da public bool ExecutarTarefasNoBd() { //Iniciar transação SqlCeTransaction dbTrans = null; dbTrans = D.Bd.Con.BeginTransaction(); if (D.Acao == D.AcaoEnum.PedidoCadastro) { if (!inserirTabelaPedido(dbTrans)) return false; foreach (Produto p in LstItem) { if (p.QuantidadeRequerida > 0) { if (p.AcaoProduto == Produto.EnumAcaoProduto.ItemAdicionar || p.AcaoProduto == Produto.EnumAcaoProduto.ItemAlterar) if (!inserirItemPedido(dbTrans, p)) return false; } } } else { if (D.Acao == D.AcaoEnum.PedidoEdicao) { if (!atualizaTabelaPedido(dbTrans)) return false; foreach (Produto p in LstItem) { string sqlChecaItemNoBd = @" SELECT pedido.id_pedido, item_pedido.id_produto FROM pedido INNER JOIN item_pedido ON pedido.id_pedido = item_pedido.id_pedido WHERE (pedido.id_pedido = '" + D.Pedido.Id + "') AND (item_pedido.id_produto = " + p.Id + ")"; IntN testeExistencia; SqlCeDataReader rdCarga = D.Bd.Linha(sqlChecaItemNoBd); testeExistencia = Bd.IntN(rdCarga, "id_produto"); if (testeExistencia.Iniciada) { if (p.AcaoProduto != Produto.EnumAcaoProduto.ItemExcluir) p.AcaoProduto = Produto.EnumAcaoProduto.ItemAlterar; else // Else Não faz nada mas deixa isso bem claro que é para Excluir p.AcaoProduto = Produto.EnumAcaoProduto.ItemExcluir; } else { if (p.AcaoProduto != Produto.EnumAcaoProduto.ItemExcluir) p.AcaoProduto = Produto.EnumAcaoProduto.ItemAdicionar; //Caso contrário um item foi deletado da lista antes de ser inserido no //banco de dados, então nada precisa ser feito } switch (p.AcaoProduto) { case Produto.EnumAcaoProduto.ItemAdicionar: if (!inserirItemPedido(dbTrans, p)) return false; break; case Produto.EnumAcaoProduto.ItemAlterar: if (!atualizaTabelaItemPedido(dbTrans, p)) return false; break; case Produto.EnumAcaoProduto.ItemExcluir: if (!ItensExcluir(dbTrans, p)) return false; break; default: FE.Show("Nenhuma ação foi definida para esse produto executar no banco de dados.", "Neo"); break; } } } } Rota r = new Rota(); Int32 Status = (int)Rota.StatusEnum.Visitado; // Cria uma visita para o cliente nao exista using (SqlCeCommand cmd = new SqlCeCommand(String.Empty, D.Bd.Con)) { // Verificar se existe alguma visita agendada para aquele cliente no periodo de validade e que já não esteja pendente! cmd.CommandText = "SELECT COUNT(*) as Total FROM visita WHERE id_cliente=@id_cliente and (data_visita >= @data_visita_ini and data_visita <= @data_visita_end)"; cmd.Parameters.Add("@id_cliente", SqlDbType.Int).Value = D.Cliente.IdStore; cmd.Parameters.Add("@data_visita_ini", SqlDbType.DateTime).Value = r.ValidadeInicio; cmd.Parameters.Add("@data_visita_end", SqlDbType.DateTime).Value = r.ValidadeFim; Int32 total = 0; try { total = Int32.Parse(cmd.ExecuteScalar().ToString()); } catch { } cmd.Parameters.Clear(); StringBuilder builder = new StringBuilder(); if (total == 0) { builder.AppendLine("INSERT INTO visita (id_cliente, id_funcionario, status, data_visita)"); builder.AppendLine("VALUES"); builder.AppendLine("(@id_cliente, @id_funcionario, @status, @data_visita)"); cmd.Parameters.Add("@id_funcionario", SqlDbType.Int).Value = D.Funcionario.Id; cmd.Parameters.Add("@data_visita", SqlDbType.DateTime).Value = DateTime.Now; } else { // Partindo do pre suposto que so deixe cadastrar uma unica visita para o cliente no determinado periodo builder.AppendLine("UPDATE visita SET status=@status WHERE id_cliente=@id_cliente and (data_visita >= @data_visita_ini and data_visita <= @data_visita_end)"); cmd.Parameters.Add("@data_visita_ini", SqlDbType.DateTime).Value = r.ValidadeInicio; cmd.Parameters.Add("@data_visita_end", SqlDbType.DateTime).Value = r.ValidadeFim; } cmd.CommandText = builder.ToString(); cmd.Parameters.Add("@id_cliente", SqlDbType.Int).Value = D.Cliente.IdStore; cmd.Parameters.Add("@status", SqlDbType.Int).Value = Status; // Executa o comando cmd.ExecuteNonQuery(); } dbTrans.Commit(); return true; }