public void RemoverSolicitacaoTransporte(long _idSolicitacao) { using (var dbs = new dabbawalaContext()) { SolicitacaoTransporte solicitacao = dbs.SolicitacaoTransporte.Find(_idSolicitacao); List <ItensSolicitacao> items = dbs.ItensSolicitacao.Where(i => i.IdSolicitacao == solicitacao.IdSolicitacao).ToList(); List <Expedicao> expedicoes = dbs.Expedicao.Where(e => e.IdSolicitacao == solicitacao.IdSolicitacao).ToList(); using (var trans = dbs.Database.BeginTransaction()) { //solicitacao.ItensSolicitacao = null; dbs.RemoveRange(items); dbs.RemoveRange(expedicoes); dbs.Remove(solicitacao); dbs.SaveChanges(); trans.Commit(); } } }
public Expedicao CriarNovaExpedicao(long _idSolicitacao) { using (var dbs = new dabbawalaContext()) { // Busca a solicitação SolicitacaoTransporte solicitacao = new SolicitacaoTransporteDAL().Obter(_idSolicitacao); if (solicitacao == null) { throw new Exception("Não foi encontrado solicitação de transporte com ID [" + _idSolicitacao.ToString() + "]"); } using (var trans = dbs.Database.BeginTransaction()) { // Gera uma data de previsão (aleatória) DateTime dataPrevisao = DateTime.Now; Random random = new Random(); dataPrevisao = dataPrevisao.AddDays(random.Next(0, 3)); dataPrevisao = dataPrevisao.AddHours(random.Next(1, 23)); dataPrevisao = dataPrevisao.AddMinutes(random.Next(1, 59)); dataPrevisao = dataPrevisao.AddSeconds(random.Next(1, 59)); // Cria a nova expedição var expedicao = new Expedicao { IdSolicitacao = solicitacao.IdSolicitacao, PrevisaoEntrega = dataPrevisao, Status = "1" }; // Salva e commita as alterações dbs.Expedicao.Add(expedicao); dbs.SaveChanges(); trans.Commit(); return(expedicao); } } }
public SolicitacaoTransporte CriarSolicitacaoTransporte(InformacoesColetaDTO _infoColeta) { using (var dbs = new dabbawalaContext()) { // Busca o cliente Cliente cliente = new ClienteDAL().GetByCNPJ(_infoColeta.CNPJCliente); if (cliente == null) { throw new Exception("Não foi encontrado cliente com o CNPJ informado"); } // Busca o destinatário PessoaJuridica destinatario = new PessoaJuridicaDAL().GetByCNPJ(_infoColeta.CNPJDestinatario); if (destinatario == null) { throw new Exception("Não foi encontrado destinatário com o CNPJ informado"); } // Busca o local de coleta; Endereco enderecoColeta = new EnderecoDAL().GetEndereco(_infoColeta.LocalColeta.Logradouro, _infoColeta.LocalColeta.Numero, _infoColeta.LocalColeta.Bairro, _infoColeta.LocalColeta.Municipio, _infoColeta.LocalColeta.UF); if (enderecoColeta == null) { throw new Exception("Não foi encontrado o endereco de coleta informado"); } // Busca o local de coleta; Endereco enderecoEntrega = new EnderecoDAL().GetEndereco(_infoColeta.LocalEntrega.Logradouro, _infoColeta.LocalEntrega.Numero, _infoColeta.LocalEntrega.Bairro, _infoColeta.LocalEntrega.Municipio, _infoColeta.LocalEntrega.UF); if (enderecoEntrega == null) { throw new Exception("Não foi encontrado o endereco de coleta informado"); } using (var trans = dbs.Database.BeginTransaction()) { var solicitacao = new SolicitacaoTransporte { // IdSolicitacao = dbs.SolicitacaoTransporte.Select(s => s.IdSolicitacao).DefaultIfEmpty(0).Max(), IdCliente = cliente.IdPessoa, IdLocalColeta = enderecoColeta.IdEndereco, IdDestinatario = destinatario.IdPessoa, IdLocalEntrega = enderecoEntrega.IdEndereco, IdTransportador = null, Observacoes = _infoColeta.Observacoes }; if (_infoColeta.Itens != null) { foreach (InformacoesItemsDTO infoItemDTO in _infoColeta.Itens) { // Busca o produto; Produto produto = new ProdutoDAL().GetProduto(infoItemDTO.Produto); if (produto == null) { throw new Exception("Não foi encontrado o produto informado"); } // Busca a unidade; Unidade unidade = new UnidadeDAL().GetUnidade(infoItemDTO.Unidade); if (unidade == null) { throw new Exception("Não foi encontrada a unidade informada"); } int qtde = 0; Int32.TryParse(infoItemDTO.Quantidade, out qtde); var item = new ItensSolicitacao { IdProduto = produto.IdProduto, IdUnidade = unidade.IdUnidade, Quantidade = qtde, IdSolicitacaoNavigation = solicitacao }; solicitacao.ItensSolicitacao.Add(item); } } dbs.SolicitacaoTransporte.Add(solicitacao); dbs.SaveChanges(); trans.Commit(); return(solicitacao); } } }
public void EditarSolicitacaoTransporte(InformacoesColetaDTO _infoColeta) { using (var dbs = new dabbawalaContext()) { // Busca o cliente Cliente cliente = new ClienteDAL().GetByCNPJ(_infoColeta.CNPJCliente); if (cliente == null) { throw new Exception("Não foi encontrado cliente com o CNPJ informado"); } // Busca o destinatário PessoaJuridica destinatario = new PessoaJuridicaDAL().GetByCNPJ(_infoColeta.CNPJDestinatario); if (destinatario == null) { throw new Exception("Não foi encontrado destinatário com o CNPJ informado"); } // Busca o local de coleta; Endereco enderecoColeta = new EnderecoDAL().GetEndereco(_infoColeta.LocalColeta.Logradouro, _infoColeta.LocalColeta.Numero, _infoColeta.LocalColeta.Bairro, _infoColeta.LocalColeta.Municipio, _infoColeta.LocalColeta.UF); if (enderecoColeta == null) { throw new Exception("Não foi encontrado o endereco de coleta informado"); } // Busca o local de coleta; Endereco enderecoEntrega = new EnderecoDAL().GetEndereco(_infoColeta.LocalEntrega.Logradouro, _infoColeta.LocalEntrega.Numero, _infoColeta.LocalEntrega.Bairro, _infoColeta.LocalEntrega.Municipio, _infoColeta.LocalEntrega.UF); if (enderecoEntrega == null) { throw new Exception("Não foi encontrado o endereco de coleta informado"); } using (var trans = dbs.Database.BeginTransaction()) { SolicitacaoTransporte solicitacao = dbs.SolicitacaoTransporte.Find(_infoColeta.ID); solicitacao.IdCliente = cliente.IdPessoa; solicitacao.IdLocalColeta = enderecoColeta.IdEndereco; solicitacao.IdDestinatario = destinatario.IdPessoa; solicitacao.IdLocalEntrega = enderecoEntrega.IdEndereco; solicitacao.IdTransportador = null; solicitacao.Observacoes = _infoColeta.Observacoes; // Remove todos os itenr atuais //solicitacao.ItensSolicitacao.Clear(); if (_infoColeta.Itens != null) { foreach (InformacoesItemsDTO infoItemDTO in _infoColeta.Itens) { // Busca o produto; Produto produto = new ProdutoDAL().GetProduto(infoItemDTO.Produto); if (produto == null) { throw new Exception("Não foi encontrado o produto informado"); } // Busca a unidade; Unidade unidade = new UnidadeDAL().GetUnidade(infoItemDTO.Unidade); if (unidade == null) { throw new Exception("Não foi encontrada a unidade informada"); } int qtde = 0; Int32.TryParse(infoItemDTO.Quantidade, out qtde); // Busca o item atual //ItensSolicitacao item = solicitacao.ItensSolicitacao.Where<ItensSolicitacao>(i => i.IdItemSolicitacao == infoItemDTO.ID).First(); ItensSolicitacao item = dbs.ItensSolicitacao.Find(infoItemDTO.ID); // Altera os valores do item atual item.IdProduto = produto.IdProduto; item.IdUnidade = unidade.IdUnidade; item.Quantidade = qtde; item.IdSolicitacaoNavigation = solicitacao; } } //dbs.SolicitacaoTransporte.Attach(solicitacao); dbs.SaveChanges(); trans.Commit(); } } }
private void SaveChanges() { VerificarContexto(); Contexto.SaveChanges(); }