Пример #1
0
        private void TransmitirSiafisico(Empenho objModel, Usuario usuario, int resource)
        {
            try
            {
                var ug = _regional.Buscar(new Regional {
                    Id = Convert.ToInt32(usuario.RegionalId)
                }).FirstOrDefault()?.Uge;
                var months = _mes.Buscar(new EmpenhoMes {
                    Id = objModel.Id
                }).Cast <IMes>().ToList();
                var items = _item.Buscar(new EmpenhoItem {
                    EmpenhoId = objModel.Id
                }).ToList();

                if ((objModel.StatusSiafisicoCT != "S" || string.IsNullOrEmpty(objModel.StatusSiafisicoCT)) && string.IsNullOrEmpty(objModel.NumeroCT))
                {
                    objModel.StatusSiafisicoCT = "E";

                    EnumAcaoSiaf acaoSiaf = EnumAcaoSiaf.Alterar;

                    if (string.IsNullOrEmpty(objModel.NumeroCT))
                    {
                        //objModel.NumeroCT = _siafem.InserirEmpenhoSiafisico(usuario.CPF, Decrypt(usuario.SenhaSiafem), objModel, months, items, ug);
                        acaoSiaf = EnumAcaoSiaf.Inserir;
                    }
                    else
                    {
                        //objModel.NumeroCT = _siafem.InserirEmpenhoSiafisicoAlteracao(usuario.CPF, Decrypt(usuario.SenhaSiafem), objModel, months, ug);
                        acaoSiaf = EnumAcaoSiaf.Alterar;
                    }

                    var senha = Decrypt(usuario.SenhaSiafem);

                    objModel.NumeroCT = base.TransmitirEmpenho(objModel, usuario, ug, months, items, acaoSiaf, senha);

                    objModel.StatusSiafisicoCT = "S";

                    base.TransmitirItens(EnumTipoServicoFazenda.Siafisico, objModel, items, usuario, ug, resource);
                }


                objModel.NumeroEmpenhoSiafisico   = _siafem.ContablizarEmpenho(usuario.CPF, Decrypt(usuario.SenhaSiafem), objModel, ug);
                objModel.TransmitidoSiafisico     = true;
                objModel.StatusSiafemSiafisico    = "S";
                objModel.DataTransmitidoSiafisico = DateTime.Now;
                objModel.MensagemSiafemSiafisico  = null;
            }
            catch (Exception ex)
            {
                objModel.StatusSiafemSiafisico   = "E";
                objModel.MensagemSiafemSiafisico = ex.Message;
                throw SaveLog(ex, (short?)EnumAcao.Transmitir, resource);
            }
            finally
            {
                Salvar(objModel, null, null, resource, (int)EnumAcao.Transmitir);
            }
        }
Пример #2
0
        private void TransmitirItem(EnumTipoServicoFazenda servico, EnumAcaoSiaf acao, TEmpenho objModel, Usuario usuario, TItem item, string ug, int resource)
        {
            try
            {
                item.StatusSiafisicoItem = "E";

                item.SequenciaItem = _siafem.TransmitirEmpenhoItem(servico, acao, usuario.CPF, Decrypt(usuario.SenhaSiafem), objModel, item, ug);

                item.StatusSiafisicoItem = "S";
            }
            finally
            {
                _item.Salvar(item, resource, (int)EnumAcao.Transmitir);
            }
        }
Пример #3
0
        protected string TransmitirEmpenho(TEmpenho objModel, Usuario usuario, string ug, List <IMes> months, IEnumerable <TItem> items, EnumAcaoSiaf acaoSiaf, string senha)
        {
            var numeroCT = _siafem.TransmitirEmpenho(EnumTipoServicoFazenda.Siafisico, acaoSiaf, usuario.CPF, senha, objModel, months, items, ug);

            return(numeroCT);
        }
Пример #4
0
        public static SFCODOC GerarSiafisicoCtDescricao(Documento document, EnumAcaoSiaf acao, EnumTipoOperacaoEmpenho operacaoEmpenho)
        {
            var siafdoc = new SFCODOC();

            string mensagem = string.Empty;

            var qtdConvertida = document.EmpenhoItem.QuantidadeMaterialServico.ConverterQuantidade();

            string vlrDesc;
            string vlrInt;
            //if (document.EmpenhoItem.ValorUnitario.ToString().Length < 3)
            //{
            //    vlrDesc = int.Parse(document.EmpenhoItem.ValorUnitario.ToString()).ToString("D2");
            //    vlrInt = "0";
            //}
            //else
            //{
            //    vlrDesc = document.EmpenhoItem.ValorUnitario.ToString().Substring(document.EmpenhoItem.ValorUnitario.ToString().Length - 2, 2);
            //    vlrInt = document.EmpenhoItem.ValorUnitario.ToString().Substring(0, document.EmpenhoItem.ValorUnitario.ToString().Length - 2);
            //}
            var arrVlr = document.EmpenhoItem.ValorUnitario.ToString(new CultureInfo("pt-BR")).Split(',');

            vlrInt  = arrVlr[0] ?? "0";
            vlrDesc = arrVlr.Length == 1 ? "0" : arrVlr[1] ?? "0";

            string numeroCt      = string.Empty;
            string ug            = string.Empty;
            string gestao        = string.Empty;
            int    dist          = 0;
            string valorUnitario = string.Empty;

            switch (operacaoEmpenho)
            {
            case EnumTipoOperacaoEmpenho.Cancelamento:
                numeroCt = document.EmpenhoCancelamento.NumeroCT ?? string.Empty;
                ug       = document.EmpenhoCancelamento.CodigoUnidadeGestora;
                gestao   = document.EmpenhoCancelamento.CodigoGestao;
                dist     = 70;
                break;

            case EnumTipoOperacaoEmpenho.Reforco:
            case EnumTipoOperacaoEmpenho.Empenho:
            default:
                numeroCt = document.Empenho.NumeroCT ?? string.Empty;
                ug       = document.Empenho.CodigoUnidadeGestora;
                gestao   = document.Empenho.CodigoGestao;
                dist     = 50;
                break;
            }

            var doc = new documento
            {
                UG                  = ug,
                Gestao              = gestao,
                NumeroCT            = numeroCt,
                Item                = document.EmpenhoItem.CodigoItemServico,
                Quantidade          = qtdConvertida.Key,
                QuantidadeDec       = qtdConvertida.Value,
                JustificativaPreco1 = acao == EnumAcaoSiaf.Alterar ? document.EmpenhoItem.DescricaoJustificativaPreco : ListaString(dist, document.EmpenhoItem.DescricaoJustificativaPreco, 2)[0],
                JustificativaPreco2 = acao == EnumAcaoSiaf.Alterar ? document.EmpenhoItem.DescricaoJustificativaPreco : ListaString(dist, document.EmpenhoItem.DescricaoJustificativaPreco, 2)[1],
            };

            switch (acao)
            {
            case EnumAcaoSiaf.Alterar:
                doc.Seq                  = document.EmpenhoItem.SequenciaItem.ToString();
                doc.ConfirmaPreco        = "S";
                doc.JustificativaItemNao = document.EmpenhoItem.DescricaoItemSiafem;
                doc.UnidadeFornecimento  = document.EmpenhoItem.CodigoUnidadeFornecimentoItem;
                doc.ValorParteInteira    = vlrInt.Replace(",", "");
                doc.ValorParteDecimal    = vlrDesc;

                siafdoc.SiafisicoDocAltDescCT = new SiafisicoDocAltDescCT();
                siafdoc.cdMsg = "SFCODocAltDescCT";
                siafdoc.SiafisicoDocAltDescCT.documento = doc;
                break;

            case EnumAcaoSiaf.Inserir:
            default:
                doc.UnidadeForn      = document.EmpenhoItem.CodigoUnidadeFornecimentoItem;
                doc.ValorUnitario    = vlrInt.Replace(",", "");
                doc.ValorUnitarioDec = vlrDesc;
                doc.Validademinimadoprodutonaentregade50porcento = "x";
                doc.Validademinimadoprodutonaentregade60porcento = " ";
                doc.Validademinimadoprodutonaentregade75porcento = " ";
                doc.Validademinimadoprodutonaentregade80porcento = " ";
                doc.Validademinimadoprodutonaentregavideedital   = " ";
                doc.Validademinimadoprodutonaentregaconformelegislacaovigentemedicamentomanipulado = " ";
                doc.JustificativaValorLancado1 = ListaString(dist, document.EmpenhoItem.DescricaoJustificativaPreco, 2)[0];
                doc.JustificativaValorLancado2 = ListaString(dist, document.EmpenhoItem.DescricaoJustificativaPreco, 2)[1];

                siafdoc.SiafisicoDocDescCT = new SiafisicoDocDescCT();
                siafdoc.cdMsg = "SFCOCTDESC001";
                siafdoc.SiafisicoDocDescCT.documento = doc;
                break;
            }

            return(siafdoc);
        }