예제 #1
0
        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();
                }
            }
        }
예제 #2
0
        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);
                }
            }
        }
예제 #3
0
        public InformacoesColetaDTO ObterSolicitacaoTransporte(long _id)
        {
            InformacoesColetaDTO  informacoesColeta = new InformacoesColetaDTO();
            SolicitacaoTransporte solicitacao       = new SolicitacaoTransporteDAL().Obter(_id);

            if (solicitacao == null)
            {
                return(null);
            }

            informacoesColeta.ID               = solicitacao.IdSolicitacao;
            informacoesColeta.CNPJCliente      = new PessoaJuridicaDAL().Obter(new ClienteDAL().Obter(solicitacao.IdCliente).IdPessoa).Cnpj.ToString();
            informacoesColeta.CNPJDestinatario = new PessoaJuridicaDAL().Obter(solicitacao.IdDestinatario).Cnpj.ToString();
            if (solicitacao.IdTransportador != null)
            {
                Fornecedor fornecedor = new FornecedorDAL().Obter(solicitacao.IdTransportador);
                if (fornecedor != null)
                {
                    informacoesColeta.CNPJTransportador = new PessoaJuridicaDAL().Obter(fornecedor.IdPessoa).Cnpj.ToString();
                }
            }
            informacoesColeta.Observacoes = solicitacao.Observacoes;


            EnderecoColetaDTO enderecoColetaDTO = new EnderecoColetaDTO();
            Endereco          enderecoColeta    = new EnderecoDAL().Obter(solicitacao.IdLocalColeta);

            enderecoColetaDTO.ID         = enderecoColeta.IdEndereco;
            enderecoColetaDTO.Logradouro = enderecoColeta.Logradouro;
            enderecoColetaDTO.Numero     = enderecoColeta.Numero;
            Bairro bairro = new DALControl <Bairro>().Obter(enderecoColeta.IdBairro);

            enderecoColetaDTO.Bairro = bairro.Nome;
            Municipio municipio = new DALControl <Municipio>().Obter(bairro.IdMunicipio);

            enderecoColetaDTO.Municipio = municipio.Nome;
            Estado uf = new DALControl <Estado>().Obter(municipio.IdEstado);

            enderecoColetaDTO.UF          = uf.Sigla;
            informacoesColeta.LocalColeta = enderecoColetaDTO;

            EnderecoColetaDTO enderecoEntregaDTO = new EnderecoColetaDTO();
            Endereco          enderecoEntrega    = new EnderecoDAL().Obter(solicitacao.IdLocalEntrega);

            enderecoEntregaDTO.ID         = enderecoEntrega.IdEndereco;
            enderecoEntregaDTO.Logradouro = enderecoEntrega.Logradouro;
            enderecoEntregaDTO.Numero     = enderecoEntrega.Numero;
            Bairro bairroEnt = new DALControl <Bairro>().Obter(enderecoEntrega.IdBairro);

            enderecoEntregaDTO.Bairro = bairroEnt.Nome;
            Municipio municipioEnt = new DALControl <Municipio>().Obter(bairroEnt.IdMunicipio);

            enderecoEntregaDTO.Municipio = municipioEnt.Nome;
            Estado ufEnt = new DALControl <Estado>().Obter(municipioEnt.IdEstado);

            enderecoEntregaDTO.UF          = ufEnt.Sigla;
            informacoesColeta.LocalEntrega = enderecoEntregaDTO;

            informacoesColeta.Itens = new ItensSolicitacaoDAL().GetInformacoesItensSolicitacao(solicitacao.IdSolicitacao);

            return(informacoesColeta);
        }