public ResultadoProcessamentoBLL()
 {
     _dal = new ResultadoProcessamentoDAL();
     _bllImportacaoPlanilha = new ImportacaoPlanilhaBLL();
     _bllUsuario            = new UsuarioBLL();
     _bllStatus             = new StatusBLL();
 }
Ejemplo n.º 2
0
 public PagamentoOperadoraBLL()
 {
     _dal = new PagamentoOperadoraDAL();
     _bllImportacaoPlanilha = new ImportacaoPlanilhaBLL();
     _bllStatus             = new StatusBLL();
 }
        /// <summary>
        /// Busca todas as importacoes ja concluidas (status 1), tanto da vendas viva quanto
        /// pagamento operadora, e insere na tabela de TBN_RESULTADOPROCESSAMENTO com a data atual e status 6 NAO CONCILIADO
        /// ignora todas as conciliacoes de TBN_PAGAMENTOOPERADORA x TBN_VENDASVIVA ja realizadas, considerando apenas novas conciliacoes
        /// </summary>
        public void Conciliar()
        {
            ImportacaoPlanilhaBLL _bllImportacaoPlanilha = new ImportacaoPlanilhaBLL();
            VendasVivaBLL         _bllVendasViva         = new VendasVivaBLL();
            PagamentoOperadoraBLL _bllPagamentoOperadora = new PagamentoOperadoraBLL();
            bool isProsseguir = false;

            // 1) Busca apenas importações concluídas que tiveram planilhas de loja e operadora
            // ja importadas
            var listaImportacoesConcluidasPorLoja = _bllImportacaoPlanilha.ListaImportacoesConcluidasPorLoja();

            isProsseguir = listaImportacoesConcluidasPorLoja.Count > 0;

            // 2) Busca as lojas que ja tiveram planilhas importadas
            if (isProsseguir)
            {
                var idLojas = listaImportacoesConcluidasPorLoja.GroupBy(p => new { p.idLoja }).Select(x => x.First());
                foreach (var item in idLojas)
                {
                    // 3) Verifica se cada importação concluída possui tipo planilha 1 e 2 concluídas
                    var tipoPlanilha_1 = listaImportacoesConcluidasPorLoja.FindAll(p => p.idLoja == item.idLoja && p.idTipoPlanilha == 1);
                    var tipoPlanilha_2 = listaImportacoesConcluidasPorLoja.FindAll(p => p.idLoja == item.idLoja && p.idTipoPlanilha == 2);

                    // 4) Caso nao exista tipo planilha 1 ou 2, deve desconsiderar a loja na conciliação
                    if (tipoPlanilha_1.Count.Equals(0) || tipoPlanilha_2.Count.Equals(0))
                    {
                        // recupera a lista de lojas para excluir da conciliação, pois nao tem planilha dos 2 tipos ja importadas
                        var listaImportacaoExcluir = listaImportacoesConcluidasPorLoja.FindAll(p => p.idLoja == item.idLoja);
                        foreach (var itemExcluir in listaImportacaoExcluir)
                        {
                            listaImportacoesConcluidasPorLoja.Remove(itemExcluir);
                        }
                    }
                }
            }

            // 5) Verifica se sobrou alguma importação de loja para seguir com a conciliação
            isProsseguir = listaImportacoesConcluidasPorLoja.Count > 0;

            // 6) Reserva todas as importações com status 1 Concluído importação,
            // e trava com status 5 Em processamento
            if (isProsseguir)
            {
                foreach (var item in listaImportacoesConcluidasPorLoja)
                {
                    isProsseguir = _bllImportacaoPlanilha.AtualizarStatusImportacao(item.id, 1, 5);
                }
            }

            // 7) Cria registro de processamento para as importações com status 5
            if (isProsseguir)
            {
                isProsseguir = _dal.Conciliar();
            }

            // 8) Atualizar todos os ID`s da VendasViva processados para
            // status 7 CONCILIADO
            if (isProsseguir)
            {
                isProsseguir = _bllVendasViva.AtualizarStatus(7, "C");
            }

            // 9) Atualizar todos os ID`s da PagamentoOperadora processados
            // para status 7 CONCILIADO
            if (isProsseguir)
            {
                isProsseguir = _bllPagamentoOperadora.AtualizarStatus(7, "C");
            }

            // 10) Atualizar todos os ID`s da VendasViva em processamento mas
            // que nao puderam ser conciliados, para status 6 NAO CONCILIADO
            if (isProsseguir)
            {
                isProsseguir = _bllVendasViva.AtualizarStatus(6, "N");
            }

            // 11) Atualizar todos os ID`s da PagamentoOperadora em processamento
            // mas que nao puderam ser conciliados, para status 6 NAO CONCILIADO
            if (isProsseguir)
            {
                isProsseguir = _bllPagamentoOperadora.AtualizarStatus(6, "N");
            }

            // 12) Pega todas as importações com status 5 Em processamento
            // e libera com status 7 CONCILIADO
            if (isProsseguir)
            {
                isProsseguir = _bllImportacaoPlanilha.AtualizarStatusImportacao(5, 7);
            }
        }
Ejemplo n.º 4
0
 public VendasVivaBLL()
 {
     _dal = new VendasVivaDAL();
     _bllImportacaoPlanilha = new ImportacaoPlanilhaBLL();
     _bllStatus             = new StatusBLL();
 }