예제 #1
0
        public FileDownloadDTO ExportarRelUnidadeMedida(FormatoExportacaoArquivo formato)
        {
            if (!EhPermitidoImprimir())
            {
                messageQueue.Add(Resource.Sigim.ErrorMessages.PrivilegiosInsuficientes, TypeMessage.Error);
                return(null);
            }

            var specification = (Specification <UnidadeMedida>) new TrueSpecification <UnidadeMedida>();

            var listaUnidadeMedida  = unidadeMedidaRepository.ListarPeloFiltro(specification).OrderBy(l => l.Sigla).To <List <UnidadeMedida> >();
            relUnidadeMedida objRel = new relUnidadeMedida();

            objRel.SetDataSource(RelUnidadeMedidaToDataTable(listaUnidadeMedida));

            var         parametros  = parametrosOrdemCompraRepository.Obter();
            CentroCusto centroCusto = null;

            var caminhoImagem = PrepararIconeRelatorio(centroCusto, parametros);

            var nomeEmpresa = ObterNomeEmpresa(centroCusto, parametros);

            objRel.SetParameterValue("nomeSistema", "ORDEMCOMPRA");
            objRel.SetParameterValue("caminhoImagem", caminhoImagem);

            FileDownloadDTO arquivo = new FileDownloadDTO("Rel. Unidade medida",
                                                          objRel.ExportToStream((ExportFormatType)formato),
                                                          formato);

            if (System.IO.File.Exists(caminhoImagem))
            {
                System.IO.File.Delete(caminhoImagem);
            }
            return(arquivo);
        }
예제 #2
0
        public FileDownloadDTO Exportar(int?id, FormatoExportacaoArquivo formato)
        {
            if (!UsuarioLogado.IsInRole(Funcionalidade.RequisicaoMaterialImprimir))
            {
                messageQueue.Add(Resource.Sigim.ErrorMessages.PrivilegiosInsuficientes, TypeMessage.Error);
                return(null);
            }

            var requisicao = ObterPeloIdEUsuario(id, UsuarioLogado.Id, l => l.ListaItens.Select(o => o.Material.MaterialClasseInsumo));
            relRequisicaoMaterial objRel = new relRequisicaoMaterial();

            objRel.SetDataSource(RequisicaoToDataTable(requisicao));
            objRel.Subreports["requisicaoMaterialItem"].SetDataSource(RequisicaoItemToDataTable(requisicao.ListaItens.ToList()));

            var parametros  = parametrosOrdemCompraRepository.Obter();
            var centroCusto = centroCustoRepository.ObterPeloCodigo(requisicao.CodigoCentroCusto, l => l.ListaCentroCustoEmpresa);

            var caminhoImagem = PrepararIconeRelatorio(centroCusto, parametros);

            objRel.SetParameterValue("caminhoImagem", caminhoImagem);

            var nomeEmpresa = ObterNomeEmpresa(centroCusto, parametros);

            objRel.SetParameterValue("nomeEmpresa", nomeEmpresa);

            FileDownloadDTO arquivo = new FileDownloadDTO(
                "RequisicaoMaterial_" + id.ToString(),
                objRel.ExportToStream((ExportFormatType)formato),
                formato);

            RemoverIconeRelatorio(caminhoImagem);

            return(arquivo);
        }
예제 #3
0
        public ParametrosOrdemCompraDTO Obter()
        {
            ParametrosOrdemCompraDTO parametros = new ParametrosOrdemCompraDTO();

            parametros = parametrosRepository.Obter().To <ParametrosOrdemCompraDTO>();
            if (parametros.Cliente == null)
            {
                parametros.Cliente = new ClienteFornecedorDTO();
            }

            return(parametros);
        }
예제 #4
0
        public bool Aprovar(int?id, int[] itens)
        {
            ParametrosOrdemCompra parametros = parametrosOrdemCompraRepository.Obter() ?? new ParametrosOrdemCompra();

            if (!UsuarioLogado.IsInRole(Funcionalidade.PreRequisicaoMaterialAprovar))
            {
                messageQueue.Add(Resource.Sigim.ErrorMessages.PrivilegiosInsuficientes, TypeMessage.Error);
                return(false);
            }

            if (!itens.Any())
            {
                messageQueue.Add(Resource.OrdemCompra.ErrorMessages.SelecioneUmItemParaAprocacao, TypeMessage.Error);
                return(false);
            }

            var preRequisicaoMaterial = preRequisicaoMaterialRepository.ObterPeloId(id, l => l.ListaItens);

            if (preRequisicaoMaterial == null)
            {
                messageQueue.Add(Application.Resource.Sigim.ErrorMessages.NenhumRegistroEncontrado, TypeMessage.Error);
                return(false);
            }

            if (!PodeAprovarNaSituacaoAtual(preRequisicaoMaterial.Situacao))
            {
                var msg = string.Format(Resource.OrdemCompra.ErrorMessages.PreRequisicaoSituacaoInvalida, preRequisicaoMaterial.Situacao.ObterDescricao());
                messageQueue.Add(msg, TypeMessage.Error);
                return(false);
            }

            if (ItemJaAprovadoFoiSelecionado(itens, preRequisicaoMaterial))
            {
                return(false);
            }

            var listaCentroCusto = preRequisicaoMaterial.ListaItens.Where(l => itens.Contains(l.Id.Value)).Select(l => l.CodigoCentroCusto).Distinct().ToList();

            foreach (var centroCusto in listaCentroCusto)
            {
                RequisicaoMaterial requisicaoMaterial = new RequisicaoMaterial();
                int sequencial = 1;

                requisicaoMaterial = new RequisicaoMaterial();

                SituacaoRequisicaoMaterial situacao = SituacaoRequisicaoMaterial.Aprovada;
                if (parametros != null)
                {
                    if (parametros.EhGeraRequisicaoMaterialRequisitada.HasValue)
                    {
                        if (parametros.EhGeraRequisicaoMaterialRequisitada.Value)
                        {
                            situacao = SituacaoRequisicaoMaterial.Requisitada;
                        }
                    }
                }

                requisicaoMaterial.Situacao              = situacao;
                requisicaoMaterial.DataAprovacao         = DateTime.Now;
                requisicaoMaterial.LoginUsuarioAprovacao = UsuarioLogado.Login;

                requisicaoMaterial.CodigoCentroCusto = centroCusto;
                requisicaoMaterial.Data                 = preRequisicaoMaterial.Data;
                requisicaoMaterial.DataCadastro         = preRequisicaoMaterial.DataCadastro;
                requisicaoMaterial.LoginUsuarioCadastro = preRequisicaoMaterial.LoginUsuarioCadastro;
                requisicaoMaterial.Observacao           = preRequisicaoMaterial.Observacao;

                var listaItens = preRequisicaoMaterial.ListaItens.Where(l => itens.Contains(l.Id.Value) && l.CodigoCentroCusto == centroCusto).ToList();
                foreach (var item in listaItens)
                {
                    RequisicaoMaterialItem requisicaoMaterialItem = new RequisicaoMaterialItem();
                    requisicaoMaterialItem.Sequencial                  = sequencial;
                    requisicaoMaterialItem.MaterialId                  = item.MaterialId;
                    requisicaoMaterialItem.CodigoClasse                = item.CodigoClasse;
                    requisicaoMaterialItem.Complemento                 = item.Complemento;
                    requisicaoMaterialItem.UnidadeMedida               = item.UnidadeMedida;
                    requisicaoMaterialItem.Quantidade                  = item.Quantidade;
                    requisicaoMaterialItem.QuantidadeAprovada          = item.QuantidadeAprovada;
                    requisicaoMaterialItem.DataMaxima                  = item.DataMaxima;
                    requisicaoMaterialItem.DataMinima                  = item.DataMinima;
                    requisicaoMaterialItem.Situacao                    = SituacaoRequisicaoMaterialItem.Requisitado;
                    requisicaoMaterialItem.PreRequisicaoMaterialItemId = item.Id;
                    requisicaoMaterialItem.RequisicaoMaterial          = requisicaoMaterial;
                    requisicaoMaterial.ListaItens.Add(requisicaoMaterialItem);

                    item.ListaRequisicaoMaterialItem.Add(requisicaoMaterialItem);
                    item.Situacao              = SituacaoPreRequisicaoMaterialItem.Aprovado;
                    item.DataAprovacao         = DateTime.Now;
                    item.LoginUsuarioAprovacao = UsuarioLogado.Login;
                    sequencial++;
                }
                requisicaoMaterialRepository.Inserir(requisicaoMaterial);
            }

            AjustarSituacaoPreRequisicao(preRequisicaoMaterial);

            preRequisicaoMaterialRepository.Alterar(preRequisicaoMaterial);
            preRequisicaoMaterialRepository.UnitOfWork.Commit();
            messageQueue.Add(Resource.OrdemCompra.SuccessMessages.AprovacaoRealizadaComSucesso, TypeMessage.Success);
            return(true);
        }
예제 #5
0
        public FileDownloadDTO ExportarRelOCItensOrdemCompra(RelOcItensOrdemCompraFiltro filtro,
                                                             int?usuarioId,
                                                             FormatoExportacaoArquivo formato)
        {
            if (!UsuarioLogado.IsInRole(Funcionalidade.RelatorioItensOrdemCompraImprimir))
            {
                messageQueue.Add(Resource.Sigim.ErrorMessages.PrivilegiosInsuficientes, TypeMessage.Error);
                return(null);
            }

            var specification = MontarSpecificationRelOCItensOrdemCompra(filtro, usuarioId);

            var listaOrdemCompraItem =
                ordemCompraItemRepository.ListarPeloFiltro(specification,
                                                           l => l.Classe,
                                                           l => l.OrdemCompra.CentroCusto,
                                                           l => l.OrdemCompra.ClienteFornecedor,
                                                           l => l.Material.MaterialClasseInsumo).To <List <OrdemCompraItem> >();

            relOrdemCompraItem objRel = new relOrdemCompraItem();

            objRel.SetDataSource(RelItensOrdemCompraToDataTable(listaOrdemCompraItem));

            string periodo = " Período de: " + filtro.DataInicial.Value.ToString("dd/MM/yyyy") + " até " + filtro.DataFinal.Value.ToString("dd/MM/yyyy");

            string parametroInsumo = "Insumo: ";

            if (filtro.Material.Id.HasValue)
            {
                parametroInsumo += filtro.Material.Id.ToString() + " - " + filtro.Material.Descricao;
            }
            else
            {
                parametroInsumo += "Todos";
            }

            var    parametros           = parametrosOrdemCompraRepository.Obter();
            var    centroCusto          = centroCustoRepository.ObterPeloCodigo(filtro.CentroCusto.Codigo, l => l.ListaCentroCustoEmpresa);
            string parametroCentroCusto = "Centro de Custo: ";

            if (centroCusto != null)
            {
                parametroCentroCusto += centroCusto.Codigo + " - " + centroCusto.Descricao;
            }
            else
            {
                parametroCentroCusto += "Todos";
            }

            var caminhoImagem = PrepararIconeRelatorio(centroCusto, parametros);

            var nomeEmpresa = ObterNomeEmpresa(centroCusto, parametros);

            objRel.SetParameterValue("nomeEmpresa", nomeEmpresa);
            objRel.SetParameterValue("parCentroCusto", parametroCentroCusto);
            objRel.SetParameterValue("parPeriodo", periodo);
            objRel.SetParameterValue("parInsumo", parametroInsumo);
            objRel.SetParameterValue("caminhoImagem", caminhoImagem);

            FileDownloadDTO arquivo = new FileDownloadDTO(
                "Rel. Itens ordem de compra",
                objRel.ExportToStream((ExportFormatType)formato),
                formato);

            if (System.IO.File.Exists(caminhoImagem))
            {
                System.IO.File.Delete(caminhoImagem);
            }
            return(arquivo);
        }