예제 #1
0
        public Boolean cadastrarSolicitacao(int codCliente,
                                            string msg,
                                            int codEngenheiroCampo,
                                            string materiais
                                            )
        {
            SolicitacaoMateriais objSolicitacao = FactoryClasses.criarSolicitacaoMateriais();

            Cliente objCliente = FactoryClasses.criarCliente();

            objCliente.Codigo      = codCliente;
            objSolicitacao.Cliente = objCliente;

            Mensagem objMsg = FactoryClasses.criarMensagem();

            objMsg.Msg = msg;
            Collection <Mensagem> objMsgColecao = new Collection <Mensagem>();

            objMsgColecao.Add(objMsg);

            objSolicitacao.Msg = objMsgColecao;

            EngenheiroCampo objEngCampo = FactoryClasses.criarEngenheiroCampo();

            objEngCampo.Codigo             = codEngenheiroCampo;
            objSolicitacao.EngenheiroCampo = objEngCampo;

            //Pega cada linha de item
            string[] arrMateriaisLinha = materiais.Split('§');

            //Faz um for em cada linha
            Collection <Materiais> objMateriaisColecao = new Collection <Materiais>();

            for (int i = 0; i < arrMateriaisLinha.Length - 1; i++)
            {
                string[] arrMateriais = arrMateriaisLinha[i].Split('|');

                //Faz um for na quantidade e adiciona quantos itens na coleçao correspondendte a quantidade
                for (int j = 1; j <= Convert.ToInt32(arrMateriais[1]); j++)
                {
                    Materiais objMateriais = FactoryClasses.criarMateriais();
                    objMateriais.Codigo = Convert.ToInt32(arrMateriais[0]);
                    objMateriaisColecao.Add(objMateriais);
                }
            }
            objSolicitacao.Materiais = objMateriaisColecao;

            SolicitacaoMateriaisStatus objSolicitacaoStatus = FactoryClasses.criarSolicitacaoMateriaisStatus();

            objSolicitacaoStatus.Codigo    = 1;
            objSolicitacaoStatus.Descricao = "Aguardando validação do gestor";
            objSolicitacao.Status          = objSolicitacaoStatus;

            objSolicitacao.DataHora = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");

            SolicitacaoMateriaisBll objSolicitacaoBll = FactoryBll.criarSolicitacaoMateriaisBll();

            return(objSolicitacaoBll.cadastrarSolicitacao(objSolicitacao));
        }
예제 #2
0
        public Boolean excluirSolicitacao(int codSolicitacao)
        {
            SolicitacaoMateriaisBll objSolicitacaoBll = FactoryBll.criarSolicitacaoMateriaisBll();
            SolicitacaoMateriais    objSolicitacao    = FactoryClasses.criarSolicitacaoMateriais();

            objSolicitacao.Codigo = codSolicitacao;
            return(objSolicitacaoBll.excluirSolicitacao(objSolicitacao));
        }
예제 #3
0
        public void cadastrarPedido(int codSolicitacao, string materiaisFornecedores)
        {
            SolicitacaoMateriais objSolicitacao = FactoryClasses.criarSolicitacaoMateriais();

            objSolicitacao.Codigo = codSolicitacao;
            PedidoBll objPedidoBll = FactoryBll.criarPedidoBll();

            objPedidoBll.cadastrarPedido(objSolicitacao, materiaisFornecedores);
        }
예제 #4
0
        public Boolean atualizarSolicitacao(SolicitacaoMateriais objSolicitacao)
        {
            SolicitacaoMateriais objSolicitacaoProt = FactoryClasses.criarSolicitacaoMateriais();

            objSolicitacaoProt.Codigo = objSolicitacao.Codigo;
            try
            {
                db = ServidorSingleton.obterServidor().OpenClient();
                IObjectSet leitor = db.QueryByExample(objSolicitacaoProt);
                if (leitor.HasNext())
                {
                    SolicitacaoMateriais objSolicitacaoCache = (SolicitacaoMateriais)leitor.Next();
                    objSolicitacaoCache.GestorObra = objSolicitacao.GestorObra;

                    int i = 0;
                    foreach (Materiais material in objSolicitacaoCache.Materiais)
                    {
                        if (material.Codigo == objSolicitacao.Codigo)
                        {
                            Fornecedor objFornecedor = FactoryClasses.criarFornecedor();
                            objFornecedor.Codigo = objSolicitacao.Materiais[i].Fornecedor.Codigo;
                            material.Fornecedor  = objFornecedor;
                        }
                        i++;
                    }

                    objSolicitacaoCache.Materiais     = objSolicitacao.Materiais;
                    objSolicitacaoCache.Status        = objSolicitacao.Status;
                    objSolicitacaoCache.DataEntrega   = objSolicitacao.DataEntrega;
                    objSolicitacaoCache.NumNotaFiscal = objSolicitacao.NumNotaFiscal;
                    objSolicitacaoCache.DataEntrega   = objSolicitacao.DataEntrega;
                    objSolicitacaoCache.Msg           = objSolicitacao.Msg;
                    db.Store(objSolicitacaoCache);
                    db.Commit();
                    db.Close();
                    db.Dispose();
                    return(true);
                }
                else
                {
                    db.Close();
                    db.Dispose();
                    return(false);
                }
            }
            catch (Exception e)
            {
                db.Rollback();
                db.Close();
                db.Dispose();
                throw new Exception("Erro atualizando a solicitação :" + e.Message);
            }
        }
예제 #5
0
        public Collection <SolicitacaoMateriais> listarSolicitacoes()
        {
            db = ServidorSingleton.obterServidor().OpenClient();
            SolicitacaoMateriais objSolicitacaoProt = FactoryClasses.criarSolicitacaoMateriais();
            Collection <SolicitacaoMateriais> objSolicitacaoColecao = new Collection <SolicitacaoMateriais>();
            IObjectSet leitor = db.QueryByExample(objSolicitacaoProt);

            foreach (SolicitacaoMateriais item in leitor)
            {
                objSolicitacaoColecao.Add(item);
            }
            leitor = null;
            db.Close();
            db.Dispose();
            return(objSolicitacaoColecao);
        }
예제 #6
0
        public void cadastrarPedido(SolicitacaoMateriais objSolicitacao)
        {
            //Atualiza a solicitação no db
            SolicitacaoMateriaisDAO objSolicitacaoDAO = FactoryDAO.criarSolicitacaoMateriaisDAO();

            if (objSolicitacaoDAO.atualizarSolicitacao(objSolicitacao))
            {
                SolicitacaoMateriais objSolicitacaoProt = FactoryClasses.criarSolicitacaoMateriais();
                objSolicitacaoProt.Codigo = objSolicitacao.Codigo;
                db = ServidorSingleton.obterServidor().OpenClient();
                IObjectSet leitor = db.QueryByExample(objSolicitacaoProt);
                if (leitor.HasNext())
                {
                    objSolicitacaoProt = null;
                    objSolicitacaoProt = (SolicitacaoMateriais)leitor.Next();
                }
                leitor = null;
                Collection <Pedido> objPedidoColecao = new Collection <Pedido>();

                foreach (Materiais material in objSolicitacaoProt.Materiais)
                {
                    Pedido objPedido = FactoryClasses.criarPedido();
                    objPedido.SolicitacaoMateriais = objSolicitacaoProt;
                    Collection <Materiais> objMateriaisColecao = new Collection <Materiais>();
                    objMateriaisColecao.Add(material);
                    objPedido.Materiais = objMateriaisColecao;
                    objPedido.Codigo    = obtemNovoId();
                    db = ServidorSingleton.obterServidor().OpenClient();
                    db.Store(objPedido);
                    db.Commit();
                }

                //Le os pedidos
                Pedido objPedidoProt = FactoryClasses.criarPedido();
                objPedidoProt.SolicitacaoMateriais = objSolicitacaoProt;
                db = ServidorSingleton.obterServidor().OpenClient();
                IObjectSet leitorPedidoCache = db.QueryByExample(objPedidoProt);
                int        codFornecedor     = 0;
                int        contador          = 0;
                int        codPedido         = 0;

                while (leitorPedidoCache.HasNext())
                {
                    Pedido objPedidoLer = (Pedido)leitorPedidoCache.Next();
                    if (contador == 0)
                    {
                        codFornecedor = objPedidoLer.Materiais[0].Fornecedor.Codigo;
                    }
                    else
                    {
                        if (codFornecedor == objPedidoLer.Materiais[0].Fornecedor.Codigo)
                        {
                            //Retira os itens deste pedido e coloca no anterior
                            Collection <Materiais> objMateriaisColecaoTmp = new Collection <Materiais>();
                            foreach (Materiais item in objPedidoLer.Materiais)
                            {
                                objMateriaisColecaoTmp.Add(item);
                            }
                            //exclui o pedido atual
                            db.Delete(objPedidoLer);
                            //Carrega o anterior em cache
                            Pedido p = FactoryClasses.criarPedido();
                            p.Codigo = codPedido;
                            IObjectSet leitorPedido2 = db.QueryByExample(p);
                            if (leitorPedido2.HasNext())
                            {
                                p = null;
                                p = (Pedido)leitorPedido2.Next();
                                //Atualiza o pedido anterior com os dados do pedido que foi apagado
                                foreach (Materiais item in p.Materiais)
                                {
                                    objMateriaisColecaoTmp.Add(item);
                                }
                                p.Materiais = objMateriaisColecaoTmp;
                                db.Store(p);
                                db.Commit();
                            }
                            leitorPedido2 = null;
                        }
                    }
                    codFornecedor = objPedidoLer.Materiais[0].Fornecedor.Codigo;
                    codPedido     = objPedidoLer.Codigo;
                    contador++;
                }
                leitorPedidoCache = null;
                db.Close();
                db.Dispose();
            }
        }