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); }
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); } }
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); } }
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); } } } }