Пример #1
0
        public EventoResultado CriarPreco(List <ApresentacaoSetorPrecoModel> precos, int EventoID, int LocalID)
        {
            if (precos == null || precos.Count == 0 || EventoID == 0 || LocalID == 0)
            {
                this.Resultado.FluxoCriacao.Precos.Erro("Parâmetros inválidos");
                return(this.Resultado);
            }

            Evento evento = new Evento();

            evento.Control.ID    = EventoID;
            evento.LocalID.Valor = LocalID;

            this.Resultado.Evento = evento;



            Task.Run(() => GerenciaFilaDistribuicaoPreco(precos));

            using (BD bd = new BD())
            {
                this.empresaID = Local.getEmpresaID(evento.LocalID.Valor, bd);

                int corID   = Configuracao.GetInt(Configuracao.Keys.PrecoCorID, ConfigurationManager.AppSettings["ConfigVersion"]);
                var precoBD = new Preco(this.UsuarioID);

                foreach (var precoCriar in precos)
                {
                    precoBD.ApresentacaoSetorID.Valor = precoCriar.ApresentacaoSetorID;
                    precoBD.Valor.Valor                = precoCriar.Valor;
                    precoBD.Nome.Valor                 = precoCriar.PrecoNome;
                    precoBD.CorID.Valor                = corID;
                    precoBD.Impressao.Valor            = Utils.Enums.GetChar(precoCriar.Impressao).ToString();
                    precoBD.Quantidade.Valor           = 0;
                    precoBD.QuantidadePorCliente.Valor = 0;
                    precoBD.IRVende = false;

                    try
                    {
                        precoBD.Inserir(this.Resultado.Evento.Control.ID, precoCriar.SetorID, precoCriar.ApresentacaoID, true, bd);

                        precoCriar.PrecoID = precoBD.Control.ID;
                        precoCriar.Status.OK();

                        var precoDistribuicao = new PrecoDistribuicao(precoBD.Control.ID, precoCriar.VendeIR, precoCriar.VendeCanaisProprios);
                        this.Precos.Add(precoDistribuicao);
                        this.filaPreco.Enqueue(precoDistribuicao);
                    }
                    catch (Exception ex)
                    {
                        precoCriar.Status.Erro(ex.Message);
                    }
                }
            }
            if (precos.All(t => t.Status.Status == StatusCriacao.enumStatus.Erro))
            {
                this.Resultado.FluxoCriacao.Precos.Erro(precos[0].Status.MsgErro);
            }
            return(this.Resultado);
        }
Пример #2
0
        private void DistribuirPrecoCanaisProprios(BD bd, PrecoDistribuicao preco)
        {
            try
            {
                if (preco.CanaisProprios)
                {
                    Preco.DistribuirParaCanaisProprios(bd, preco.PrecoID, empresaID);
                }

                preco.StatusDistribuicaoPropria.OK();
            }
            catch (Exception ex)
            {
                preco.StatusDistribuicaoPropria.Erro(ex.Message);
            }
        }
Пример #3
0
        private void DistribuirPrecoCanalIR(BD bd, PrecoDistribuicao preco)
        {
            try
            {
                if (preco.IR)
                {
                    Preco.DistribuirParaCanaisIR(bd, preco.PrecoID);
                }

                preco.StatusDistribuicaoIR.OK();
            }
            catch (Exception ex)
            {
                preco.StatusDistribuicaoIR.Erro(ex.Message);
            }
        }
Пример #4
0
        private void CriaPrecoSetor(BD bd, PrecoVendaModel precoInfo)
        {
            int corID               = Configuracao.GetInt(Configuracao.Keys.PrecoCorID, ConfigurationManager.AppSettings["ConfigVersion"]);
            var precoBD             = new Preco(this.UsuarioID);
            var apresentacaoSetorBD = new ApresentacaoSetor();

            foreach (var precoCriar in precoInfo.SetorValores)
            {
                foreach (var apresentacaoSetor in this.Resultado.Setores.Where(c => c.SetorID.Equals(precoCriar.SetorID)).ToList())
                {
                    precoBD.ApresentacaoSetorID.Valor = apresentacaoSetor.ApresentacaoSetorID;
                    precoBD.Valor.Valor                = precoCriar.Valor.Value;
                    precoBD.Nome.Valor                 = precoInfo.Descricao;
                    precoBD.CorID.Valor                = corID;
                    precoBD.Impressao.Valor            = Utils.Enums.GetChar(precoInfo.Impressao).ToString();
                    precoBD.Quantidade.Valor           = 0;
                    precoBD.QuantidadePorCliente.Valor = 0;
                    precoBD.IRVende = false;

                    try
                    {
                        precoBD.Inserir(this.Resultado.Evento.Control.ID, apresentacaoSetor.SetorID, apresentacaoSetor.ApresentacaoID, true, bd);

                        if (precoInfo.Principal)
                        {
                            apresentacaoSetorBD.Control.ID = apresentacaoSetor.ApresentacaoSetorID;
                            apresentacaoSetorBD.AtualizarPrecoPrincipal(bd, precoBD.Control.ID);
                        }


                        precoCriar.PrecoID = precoBD.Control.ID;
                        precoCriar.Status.OK();

                        var precoDistribuicao = new PrecoDistribuicao(precoBD.Control.ID, precoInfo.VendeIR, precoInfo.VendeCanaisProprios);
                        this.Precos.Add(precoDistribuicao);
                        this.filaPreco.Enqueue(precoDistribuicao);
                    }
                    catch (Exception ex)
                    {
                        precoCriar.Status.Erro(ex.Message);
                    }
                }
            }
        }