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); }
/// <summary> /// Inseri novo(a) Preco na lista /// </summary> /// <returns></returns> public override bool Inserir() { try { bool ok = preco.Inserir(); if (ok) { lista.Add(preco.Control.ID); Indice = lista.Count - 1; } return(ok); } catch (Exception ex) { throw ex; } }
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); } } } }
public void GerenciarItems(BD bd, int SerieID, List <EstruturaSerieItem> lstSerieItem) { Preco preco = new Preco(this.Control.UsuarioID); ApresentacaoSetor aps = new ApresentacaoSetor(); int apresentacaoSetorID = 0; foreach (EstruturaSerieItem item in lstSerieItem) { this.Control.ID = 0; this.EventoID.Valor = item.EventoID; this.ApresentacaoID.Valor = item.ApresentacaoID; this.SetorID.Valor = item.SetorID; this.Promocional.Valor = item.Promocional; this.QuantidadePorPromocional.Valor = item.QuantidadePorPromocional; this.SerieID.Valor = SerieID; this.PrecoID.Valor = 0; switch (item.Acao) { //Criar o preço antes e depois criar o serieitem case Enumerators.TipoAcaoPreco.AssociarECriar: apresentacaoSetorID = lstSerieItem .Where(c => c.ApresentacaoID == item.ApresentacaoID && c.SetorID == item.SetorID && c.ApresentacaoSetorID != 0) .Select(c => c.ApresentacaoSetorID).FirstOrDefault(); if (apresentacaoSetorID == 0) { apresentacaoSetorID = aps.ApresentacaoSetorID(item.ApresentacaoID, item.SetorID); } preco.ApresentacaoSetorID.Valor = item.ApresentacaoSetorID = apresentacaoSetorID; preco.Nome.Valor = item.Preco; preco.CorID.Valor = item.CorID; preco.Quantidade.Valor = 0; preco.QuantidadePorCliente.Valor = 0; preco.Valor.Valor = Convert.ToDecimal(item.Valor); preco.Impressao.Valor = Preco.IMPRESSAO_AMBOS; preco.Inserir(item.EventoID, item.SetorID, item.ApresentacaoID, true, bd); //preco.Inserir(bd); this.PrecoID.Valor = preco.Control.ID; this.Inserir(bd); break; //Não existe, precisa criar case Enumerators.TipoAcaoPreco.Associar: this.PrecoID.Valor = item.PrecoID; this.Inserir(bd); break; case Enumerators.TipoAcaoPreco.Remover: this.Excluir(item.SerieItemID); break; case Enumerators.TipoAcaoPreco.Alterar: this.Control.ID = item.SerieItemID; this.PrecoID.Valor = item.PrecoID; this.Atualizar(bd); break; case Enumerators.TipoAcaoPreco.Manter: default: break; } } }
private List <Programacao> MontarProgramacao(Sala sala, List <Filme> filmes, List <Sala> salas, List <Programacao> programacoes) { BD bd = new BD(); Apresentacao oApresentacao = new Apresentacao(); ApresentacaoSetor oApresentacaoSetor = new ApresentacaoSetor(); Preco oPreco = new Preco(); CanalPreco oCanalPreco = new CanalPreco(); foreach (var programacao in programacoes) { try { var eventoID = filmes.Where(c => c.FilmeID == programacao.IDFilme).Select(c => c.EventoID).FirstOrDefault(); var setorID = salas.Where(c => c.CodSala == programacao.CodSala).Select(c => c.SetorID).FirstOrDefault(); if (eventoID == 0) { continue; } int apresentacaoID = Convert.ToInt32(bd.ConsultaValor("SELECT ID FROM tApresentacao (NOLOCK) WHERE CodigoProgramacao = '" + programacao.IDProg + "'")); if (apresentacaoID > 0) { programacao.ApresentacaoID = apresentacaoID; continue; } bd.IniciarTransacao(); oApresentacao.Limpar(); oApresentacao.EventoID.Valor = eventoID; oApresentacao.Horario.Valor = Convert.ToDateTime(programacao.DataSessao); oApresentacao.DisponivelVenda.Valor = true; oApresentacao.DisponivelAjuste.Valor = true; oApresentacao.DisponivelRelatorio.Valor = true; oApresentacao.CodigoProgramacao.Valor = programacao.IDProg; oApresentacao.Inserir(bd); oApresentacaoSetor.Limpar(); oApresentacaoSetor.ApresentacaoID.Valor = oApresentacao.Control.ID; oApresentacaoSetor.SetorID.Valor = setorID; oApresentacaoSetor.NVendeLugar.Valor = Convert.ToBoolean(programacao.NVendLuga); oApresentacaoSetor.Inserir(bd); foreach (var preco in programacao.Ingressos) { int precoID = Convert.ToInt32(bd.ConsultaValor("SELECT ID FROM tPreco (NOLOCK) WHERE CodigoCinema = '" + preco.CodIngress + "' AND ApresentacaoSetorID = " + oApresentacaoSetor.Control.ID)); if (precoID > 0) { continue; } oPreco.Limpar(); oPreco.ApresentacaoSetorID.Valor = oApresentacaoSetor.Control.ID; oPreco.Nome.Valor = preco.CodIngress; oPreco.Valor.Valor = Convert.ToDecimal(preco.Valor); oPreco.CodigoCinema.Valor = preco.CodIngress; oPreco.CorID.Valor = 1; oPreco.Inserir(eventoID, setorID, oApresentacao.Control.ID, false, bd); preco.PrecoID = oPreco.Control.ID; //Distribuição de Preços por Canal oCanalPreco.Limpar(); oCanalPreco.CanalID.Valor = Canal.CANAL_INTERNET; oCanalPreco.PrecoID.Valor = oPreco.Control.ID; oCanalPreco.Inserir(bd, false); } bd.FinalizarTransacao(); } catch { bd.DesfazerTransacao(); } finally { bd.Fechar(); } } return(programacoes); }