コード例 #1
0
        public void AutorizarOB(OBAutorizacao model, List <string> checados, object viewModel, string UGMudapah, int recursoId, short action, Usuario user)
        {
            bool executar = false;

            var dadosUsuarioSiafem = _siafem.ConsultarUsuarioHomologacaoProducao(user.CPF, user.Senha, true);

            USUARIO = dadosUsuarioSiafem.usuario;
            SENHA   = dadosUsuarioSiafem.senha;

            try
            {
                foreach (var item in model.Items)
                {
                    executar = checados.Contains(item.NumOB);

                    if (item.TransmissaoItemStatusSiafem != "S" && executar)
                    {
                        AutorizarItemOB(user, item, UGMudapah);
                    }
                }
            }
            catch (Exception ex)
            {
                throw SaveLog(ex, action, recursoId);
            }
        }
コード例 #2
0
        public int Save(OBAutorizacao entity)
        {
            var paramIdAutorizacaoOB         = new SqlParameter("@id_autorizacao_ob", entity.IdAutorizacaoOB);
            var paramIdExecucaoPD            = new SqlParameter("@id_execucao_pd", entity.IdExecucaoPD);
            var paramNumeroAgrupamento       = new SqlParameter("@nr_agrupamento", entity.NumeroAgrupamento);
            var paramUnidadeGestora          = new SqlParameter("@unidade_gestora", entity.UnidadeGestora);
            var paramAnoOB                   = new SqlParameter("@ano_ob", entity.AnoOB);
            var paramValor                   = new SqlParameter("@valor_total_autorizacao", entity.Valor);
            var paramQuantidadeAutorizacao   = new SqlParameter("@qtde_autorizacao", entity.QuantidadeAutorizacao);
            var paramTransmissaoStatusSiafem = new SqlParameter("@cd_transmissao_status_siafem", entity.TransmissaoStatusSiafem);
            var TransmissaoMensagemSiafem    = new SqlParameter("@ds_transmissao_mensagem_siafem", entity.TransmissaoMensagemSiafem);
            var paramNumeroContrato          = new SqlParameter("@nr_contrato", entity.NumeroContrato);
            var paramCodigoAplicacaoObra     = new SqlParameter("@cd_aplicacao_obra", entity.CodigoAplicacaoObra);

            var paramGestao     = new SqlParameter("@gestao", entity.GestaoPagadora);
            var paramUgPagadora = new SqlParameter("@ug_pagadora", entity.UgPagadora);

            #region Confirmacao
            var paramTipoPagamento          = new SqlParameter("@id_tipo_pagamento", entity.TipoPagamento);
            var paramEhConfirmacaoPagamento = new SqlParameter("@fl_confirmacao", entity.EhConfirmacaoPagamento);
            var paramDataConfirmacao        = new SqlParameter("@dt_confirmacao", entity.DataConfirmacao.ValidateDBNull());
            #endregion

            var dbResult = DataHelper.Get <int>("PR_AUTORIZACAO_OB_SALVAR", paramIdAutorizacaoOB, paramIdExecucaoPD, paramNumeroAgrupamento
                                                , paramUnidadeGestora, paramAnoOB, paramValor, paramQuantidadeAutorizacao, paramTransmissaoStatusSiafem, TransmissaoMensagemSiafem
                                                , paramNumeroContrato, paramCodigoAplicacaoObra, paramGestao, paramUgPagadora
                                                , paramTipoPagamento, paramEhConfirmacaoPagamento, paramDataConfirmacao);

            return(dbResult);
        }
コード例 #3
0
        public void RelacionarAutorizacaoComPagamentoDesdobrado(OBAutorizacao entity, IEnumerable <OBAutorizacaoItem> entityItem, List <string> checados)
        {
            try
            {
                int    contador    = 0;
                string itemChecado = string.Empty;

                foreach (var item in entityItem)
                {
                    if (contador < checados.Count)
                    {
                        if (item.NumOB == checados[contador])
                        {
                            itemChecado = checados[contador];
                            contador++;
                        }
                    }

                    if (itemChecado != string.Empty)
                    {
                        _confirmacaoPgtoItemRepository.RelacionarExecucaoComPagamentoDesdobrado(item);
                        itemChecado = string.Empty;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #4
0
        public int Salvar(ref OBAutorizacao entity, List <string> checados, int recursoId, short action)
        {
            try
            {
                var id = _repository.Save(entity);
                entity.IdAutorizacaoOB = id;

                //int numeroAgrupamentoOb = action == (int)EnumAcao.Inserir ? _repository.GetNumeroAgrupamento() : 0;

                foreach (var item in entity.Items)
                {
                    //if (action == 1)
                    //{
                    //    item.AgrupamentoItemOB = numeroAgrupamentoOb;
                    //}

                    item.IdAutorizacaoOB   = id;
                    item.AgrupamentoItemOB = item.Codigo.HasValue && item.Codigo != 0 ? 0 : item.AgrupamentoItemOB;
                    var iditem = SalvarItem(item);
                    item.Codigo = iditem;
                    item.IdAutorizacaoOBItem = iditem;
                }

                return(id);
            }
            catch (Exception ex)
            {
                throw SaveLog(ex, action, recursoId);
            }
        }
コード例 #5
0
        public DadoAutorizacaoDeOBViewModel(OBAutorizacao entity)
        {
            Items = new List <DadoAutorizacaoDeOBItemViewModel>();
            ItemsConfirmacaoPagamento = new List <DadoAutorizacaoDeOBItemViewModel>();
            filtroListaOB             = new FiltroListaOB();

            Codigo          = entity.IdAutorizacaoOB;
            IdAutorizacaoOB = entity.IdAutorizacaoOB;
            IdExecucaoPD    = entity.IdExecucaoPD;

            filtroListaOB.IdAutorizacaoOB = entity.IdAutorizacaoOB;
            AgrupamentoOB  = entity.IdAutorizacaoOB;
            TipoExecucao   = entity.TipoExecucao;
            GestaoPagadora = entity.Gestao;
            UGPagadora     = entity.UnidadeGestora;

            AnoOB = entity.AnoOB;

            Valor = entity.Valor.HasValue ? entity.Valor.ToString(): "0";
            TransmissaoTransmitidoSiafem = entity.TransmissaoTransmitidoSiafem;
            TransmissaoMensagemSiafem    = entity.TransmissaoMensagemSiafem;
            TransmisaoStatusSiafem       = entity.TransmissaoStatusSiafem;
            TransmissaoDataSiafem        = entity.TransmissaoDataSiafem;
            NumeroContrato      = entity.NumeroContrato;
            CodigoAplicacaoObra = entity.CodigoAplicacaoObra;

            UGPagadora       = entity.UgPagadora;
            UGLiquidante     = entity.UgLiquidante;
            GestaoPagadora   = entity.Gestao;
            GestaoLiquidante = entity.GestaoLiquidante;

            filtroListaOB.NumOB          = entity.NumOB;
            filtroListaOB.Agrupamento    = Convert.ToInt32(entity.NumOB);
            filtroListaOB.GestaoPagadora = entity.Gestao;
            filtroListaOB.UGPagadora     = entity.UgPagadora;

            filtroListaOB.TipoPagamento = entity.TipoPagamento;

            foreach (var item in entity.Items)
            {
                this.Items.Add(new DadoAutorizacaoDeOBItemViewModel(item));
            }

            //foreach (var itemConfirmacao in entity.Items)
            //{
            //    this.ItemsConfirmacaoPagamento.Add(new DadoAutorizacaoDeOBItemViewModel(itemConfirmacao));
            //}

            IdExecucaoPD           = entity.IdExecucaoPD;
            IdConfirmacaoPagamento = entity.IdConfirmacaoPagamento;
            confirmacaoPagamento   = entity.Confirmacao;


            this.confirmacaoPagamento   = entity.Confirmacao;
            this.TipoPagamento          = entity.TipoPagamento;
            this.EhConfirmacaoPagamento = entity.EhConfirmacaoPagamento ? SimNao.Sim : SimNao.Nao;
            this.DataConfirmacao        = entity.DataConfirmacao;
        }
コード例 #6
0
 public void RelacionarAutorizacaoComPagamentoDesdobrado(OBAutorizacao entity, IEnumerable <OBAutorizacaoItem> entityItem, List <string> checados)
 {
     try
     {
         App.ConfirmacaoPagamentoService.RelacionarAutorizacaoComPagamentoDesdobrado(entity, entity.Items, checados);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #7
0
        public void RemoverItensNaoPertencentesOb(OBAutorizacao entity)
        {
            foreach (var item in entity.Items)
            {
                var agrupado = item.AgrupamentoItemOB == 0;

                if (!agrupado)
                {
                    _repositoryAutorizacaoObItem.Remove(item.Codigo.GetValueOrDefault());
                }
            }
        }
コード例 #8
0
 public int Add(OBAutorizacao entity)
 {
     return(DataHelper.Get <int>("PR_CONFIRMACAO_PAGAMENTO_INCLUIR",
                                 new SqlParameter("@id_tipo_documento", entity.DocumentoTipoId),
                                 new SqlParameter("@ano_referencia", entity.AnoOB),
                                 new SqlParameter("@nr_documento", entity.NumeroDocumento),
                                 new SqlParameter("@id_tipo_pagamento", entity.TipoPagamento),
                                 new SqlParameter("@dt_confirmacao", entity.DataConfirmacaoCombo.ValidateDBNull()),
                                 new SqlParameter("@dt_cadastro", entity.DataCadastro),
                                 new SqlParameter("@cd_transmissao_status_prodesp", entity.StatusProdesp),
                                 new SqlParameter("@fl_transmissao_transmitido_prodesp", entity.TransmitidoProdesp),
                                 new SqlParameter("@dt_transmissao_transmitido_prodesp", entity.DataTransmitidoProdesp.ValidateDBNull()),
                                 new SqlParameter("@ds_transmissao_mensagem_prodesp", entity.MensagemServicoProdesp)));
 }
コード例 #9
0
 public void DeletarNaoAgrupados(OBAutorizacao entity)
 {
     try
     {
         foreach (var item in entity.Items)
         {
             DeletarNaoAgrupados(item.IdAutorizacaoOB.ToString());
             break;
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #10
0
 public IEnumerable <OBAutorizacao> FetchForGrid(OBAutorizacao entity, DateTime?since, DateTime?until)
 {
     return(DataHelper.List <OBAutorizacao>("[dbo].[PR_AUTORIZACAO_DE_OB_ITEM_GRID]",
                                            new SqlParameter("@ug_pagadora", entity.UgPagadora),
                                            new SqlParameter("@gestao_pagadora", entity.GestaoPagadora),
                                            new SqlParameter("@ds_numob", entity.NumOB),
                                            new SqlParameter("@favorecidoDesc", entity.FavorecidoDesc),
                                            new SqlParameter("@cd_despesa", entity.CodigoDespesa),
                                            new SqlParameter("@valor", entity.Valor),
                                            new SqlParameter("@cd_transmissao_status_siafem", entity.TransmissaoStatusSiafem),
                                            new SqlParameter("@de", since),
                                            new SqlParameter("@ate", until),
                                            new SqlParameter("@cd_aplicacao_obra", entity.CodigoAplicacaoObra),
                                            new SqlParameter("@nr_contrato", entity.NumeroContrato)
                                            ));
 }
コード例 #11
0
 public FiltroViewModel CreateInstance(OBAutorizacao objModel, DateTime de, DateTime ate)
 {
     return(new FiltroViewModel()
     {
         StatusSiafem = Convert.ToString(objModel.TransmissaoStatusSiafem == "S").ToLower(),
         StatusSiafemListItems = new SelectListItem[] {
             new SelectListItem {
                 Text = "Sucesso", Value = "S"
             },
             new SelectListItem {
                 Text = "Erro", Value = "E"
             },
             new SelectListItem {
                 Text = "Não transmitido", Value = "N"
             }
         },
     });
 }
コード例 #12
0
        public FiltroGridViewModel CreateInstance(OBAutorizacao entity)
        {
            FiltroGridViewModel filtro = new Models.FiltroGridViewModel();

            filtro.Id         = entity.IdAutorizacaoOB.ToString();
            filtro.ValorTotal = entity.Valor;

            filtro.StatusSiafem    = entity.TransmissaoStatusSiafem;
            filtro.MensagemSiafem  = entity.TransmissaoMensagemSiafem;
            filtro.StatusProdesp   = entity.StatusProdesp;
            filtro.MensagemProdesp = entity.MensagemServicoProdesp;

            filtro.GestaoLiquidante = entity.GestaoLiquidante;
            filtro.UnidadeGestora   = entity.UnidadeGestora;
            filtro.Gestao           = entity.Gestao;
            filtro.UGPagadora       = entity.UgPagadora;
            filtro.GestaoPagadora   = entity.GestaoPagadora;
            filtro.Data             = entity.DataCadastro.ToShortDateString();
            return(filtro);
        }
コード例 #13
0
        public ActionResult Retransmitir(int[] ListaDeOB, string filtroMudapah)
        {
            try
            {
                var entity          = new OBAutorizacao();
                var entityItensDaOB = new OBAutorizacaoItem();

                foreach (var itemDaLista in ListaDeOB)
                {
                    entityItensDaOB.ItensSelecionados = App.AutorizacaoDeOBService.ConsultarItensDaOB(itemDaLista);

                    foreach (var item in entityItensDaOB.ItensSelecionados)
                    {
                        App.AutorizacaoDeOBService.AutorizarItemOB(_userLoggedIn, item, filtroMudapah);
                    }
                }
                return(Json(new { Status = "Sucesso" }));
            }
            catch (Exception ex)
            {
                return(Json(new { Status = "Falha", Msg = ex.Message }));
            }
        }
コード例 #14
0
        private void SalvarItem(OBAutorizacao entity, OBAutorizacaoItem item)
        {
            var confirmacaoPagamento = new ConfirmacaoPagamento();

            confirmacaoPagamento.IdTipoDocumento      = item.DocumentoTipoId;
            confirmacaoPagamento.AnoReferencia        = Convert.ToInt32(item.AnoAserpaga);
            confirmacaoPagamento.DataConfirmacao      = item.DataConfirmacaoItem;
            confirmacaoPagamento.TipoPagamento        = item.TipoPagamento;
            confirmacaoPagamento.IdAutorizacaoOB      = item.IdAutorizacaoOB;
            confirmacaoPagamento.IdExecucaoPD         = item.IdExecucaoPD;
            confirmacaoPagamento.IdAutorizacaoOB      = item.IdAutorizacaoOB;
            confirmacaoPagamento.ValorTotalConfirmado = Convert.ToDecimal(item.ValorItem);

            if (entity.IdConfirmacaoPagamento == 0)
            {
                entity.IdConfirmacaoPagamento = _confirmacaoPgtoRepository.Add(confirmacaoPagamento);
            }
            else
            {
                confirmacaoPagamento.Id            = entity.IdConfirmacaoPagamento;
                confirmacaoPagamento.StatusProdesp = item.TransmissaoItemStatusProdesp;
                _confirmacaoPgtoRepository.Edit(confirmacaoPagamento);
            }

            item.id_confirmacao_pagamento = entity.IdConfirmacaoPagamento;

            //var items = this._confirmacaoPgtoItemRepository.Fetch(new ConfirmacaoPagamentoItem() { IdAutorizacaoOBItem = item.IdAutorizacaoOBItem });

            //if (items.Any())
            //{
            //    _confirmacaoPgtoItemRepository.Edit(item);
            //}
            //else
            //{
            _confirmacaoPgtoItemRepository.Add(item);
            //}
        }
コード例 #15
0
        public void TransmitirProdesp(OBAutorizacao entity, List <string> marcados, DateTime?dataConfirmacao, int?tipoPagamento, bool primeiraVez, int recursoId)
        {
            try
            {
                bool          jaConfirmado     = false;
                List <string> opsJaConfirmadas = new List <string>();

                foreach (var item in entity.Items)
                {
                    if (!string.IsNullOrWhiteSpace(item.NumOP))
                    {
                        var op = item.NumOP.Substring(5, 6);

                        jaConfirmado = opsJaConfirmadas.Contains(op);
                        var foiExecutado = marcados.Contains(item.NumOB);

                        if (item.Executar || (item.IsDesdobramento && jaConfirmado))
                        {
                            TransmitirConfirmacaoPagamentoItem(recursoId, entity, item, dataConfirmacao, tipoPagamento, (item.Executar && !jaConfirmado), foiExecutado);

                            if (!opsJaConfirmadas.Contains(op))
                            {
                                opsJaConfirmadas.Add(op);
                            }
                        }
                    }
                }

                RemoverItensNaoPertencentesOb(entity, primeiraVez);
            }
            catch (Exception ex)
            {
                entity.StatusProdesp          = "E";
                entity.MensagemServicoProdesp = ex.Message;
            }
        }
コード例 #16
0
 public IEnumerable <OBAutorizacao> FetchForGrid(OBAutorizacao entity, DateTime since, DateTime until)
 {
     throw new NotImplementedException();
 }
コード例 #17
0
 public IEnumerable <OBAutorizacao> Fetch(OBAutorizacao entity)
 {
     throw new NotImplementedException();
 }
コード例 #18
0
        private void Salvar(ref OBAutorizacao model, List <string> checados)
        {
            var acao = model.IdAutorizacaoOB > 0 ? EnumAcao.Alterar : EnumAcao.Inserir;

            App.AutorizacaoDeOBService.Salvar(ref model, checados, Convert.ToInt32(_funcId), Convert.ToInt16(acao));
        }
コード例 #19
0
        public void TransmitirConfirmacaoPagamentoItem(int recursoId, OBAutorizacao ob, OBAutorizacaoItem item, DateTime?dataConfirmacao, int?tipoPagamento, bool transmitir, bool foiExecutado)
        {
            var cicsmo = new ChaveCicsmo();

            try
            {
                cicsmo = _chave.ObterChave(recursoId);

                item.AnoAserpaga         = dataConfirmacao.ToString().Substring(6, 4);
                item.DataConfirmacaoItem = dataConfirmacao;
                item.DocumentoTipoId     = item.IdTipoDocumento;
                item.NumeroDocumento     = item?.NumeroDocumento;
                item.TipoPagamento       = tipoPagamento;
                item.DataCadastro        = DateTime.Now;

                if (transmitir)
                {
                    _prodespContaUnica.Inserir_ConfirmacaoPagamento(cicsmo.Chave, cicsmo.Senha, ref item);
                }

                item.DataConfirmacaoItem = dataConfirmacao;
                item.TransmissaoItemTransmitidoProdesp = true;
                item.TransmissaoItemStatusProdesp      = "S";
                item.TransmissaoItemDataProdesp        = DateTime.Now;
                item.TransmissaoItemMensagemProdesp    = null;
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("FCFG404 - PAGAMENTO CONFIRMADO EM"))
                {
                    var dataTexto = new Regex(@".+\s(\d{2}\/\d{2}\/\d{2,4})").Match(ex.Message);
                    if (dataTexto.Success)
                    {
                        var grupo = dataTexto.Groups[1];
                        var data  = DateTime.Parse(grupo.Value);

                        item.DataConfirmacaoItem = data;
                        item.TransmissaoItemTransmitidoProdesp = true;
                        item.TransmissaoItemStatusProdesp      = "S";
                        item.TransmissaoItemDataProdesp        = DateTime.Now;
                        item.TransmissaoItemMensagemProdesp    = null;
                    }
                }
                else
                {
                    item.DataConfirmacaoItem = null;
                    item.TransmissaoItemTransmitidoProdesp = false;
                    item.TransmissaoItemStatusProdesp      = "E";
                    item.TransmissaoItemDataProdesp        = DateTime.Now;
                    item.TransmissaoItemMensagemProdesp    = ex.Message;
                }
            }
            finally
            {
                _chave.LiberarChave(cicsmo.Codigo);

                var codigoEpdi = item.Codigo;
                if (!foiExecutado)
                {
                    item.Codigo = null;
                }
                SalvarItem(ob, item);
                item.Codigo = codigoEpdi;
            }
        }
コード例 #20
0
 public IEnumerable <OBAutorizacao> ConsultarItensAgrupadosPorOB(OBAutorizacao entity, DateTime?De, DateTime?Ate)
 {
     return(_repository.FetchForGrid(entity, De, Ate));
 }
コード例 #21
0
        public OBAutorizacao ToEntity()
        {
            OBAutorizacao retorno = new OBAutorizacao();

            //retorno.IdAutorizacaoOB = Codigo;
            retorno.IdAutorizacaoOB        = IdAutorizacaoOB;
            retorno.IdConfirmacaoPagamento = IdConfirmacaoPagamento;
            //retorno.IdAutorizacaoOB = filtroListaOB.IdAutorizacaoOB;
            retorno.TipoPagamento     = TipoPagamento;
            retorno.NumeroAgrupamento = Codigo; //AgrupamentoOB;
            retorno.TipoExecucao      = TipoExecucao;

            retorno.NumOB             = filtroListaOB.NumOB;
            retorno.NumeroAgrupamento = filtroListaOB.Agrupamento;
            //retorno.UnidadeGestora = this.uni.UGPagadora;
            //retorno.Gestao = this.Gestao;
            retorno.UgPagadora     = this.UGPagadora;
            retorno.GestaoPagadora = this.GestaoPagadora;

            decimal outvalue = 0;

            Decimal.TryParse(Valor, out outvalue);
            retorno.Valor = outvalue;

            retorno.AnoOB = AnoOB;
            retorno.QuantidadeAutorizacao = Items.Count;

            retorno.TransmissaoStatusSiafem      = TransmisaoStatusSiafem;
            retorno.TransmissaoMensagemSiafem    = TransmissaoMensagemSiafem;
            retorno.TransmissaoTransmitidoSiafem = TransmissaoTransmitidoSiafem;
            retorno.TransmissaoDataSiafem        = TransmissaoDataSiafem;

            retorno.NumeroContrato      = NumeroContrato;
            retorno.CodigoAplicacaoObra = CodigoAplicacaoObra;

            var lista = new List <OBAutorizacaoItem>();

            foreach (var item in Items)
            {
                var itemCorreto = item.ToEntity();
                itemCorreto.GestaoPagadora = this.GestaoPagadora;
                itemCorreto.UGPagadora     = this.UGPagadora;
                lista.Add(itemCorreto);
            }
            retorno.Items = lista.AsEnumerable();

            var listaConfirmacaoPagamentoItens = new List <OBAutorizacaoItem>();

            foreach (var itemConfirmacaoPagamento in Items)
            {
                var itemConfirmacaoPagamentoCorreto = itemConfirmacaoPagamento.ToEntity();
                itemConfirmacaoPagamentoCorreto.GestaoPagadora = this.GestaoPagadora;
                itemConfirmacaoPagamentoCorreto.UGPagadora     = this.UGPagadora;

                listaConfirmacaoPagamentoItens.Add(itemConfirmacaoPagamentoCorreto);
            }
            retorno.ItemsConfirmacaoPagamento = listaConfirmacaoPagamentoItens.AsEnumerable();

            //retorno.IdExecucaoPD = Items.Select(x => x.IdExecucaoPD).FirstOrDefault();


            #region Confirmacao
            retorno.EhConfirmacaoPagamento = this.EhConfirmacaoPagamento == SimNao.Sim;
            retorno.TipoPagamento          = this.TipoPagamento;
            retorno.DataConfirmacao        = Convert.ToDateTime(this.DataConfirmacao);
            #endregion

            return(retorno);
        }