// passar o Usuario logado no sistema public CanalValeIngressoLista_B(int usuarioIDLogado) { canalValeIngresso = new CanalValeIngresso(usuarioIDLogado); }
public bool SalvarValeIngresso(EstruturaValeIngressoWizard dadosSalvar) { ValeIngresso valeIngresso; CanalValeIngresso canalValeIngresso; bool novoVirTipo = false; BD bdDelete = new BD(); try { //td deve estar dentro de transaction bd.IniciarTransacao(); bdDelete.IniciarTransacao(); novoVirTipo = dadosSalvar.ValeIngressoTipo.ID == 0; //TODO: Fazer a validação dos dados. Inclusive usuarioID //Popula o objeto para salvar no banco this.Nome.Valor = dadosSalvar.ValeIngressoTipo.Nome; this.Valor.Valor = dadosSalvar.ValeIngressoTipo.Valor; this.ValidadeDiasImpressao.Valor = dadosSalvar.ValeIngressoTipo.ValidadeDiasImpressao; if (this.ValidadeDiasImpressao.Valor == 0) { this.ValidadeData.Valor = dadosSalvar.ValeIngressoTipo.ValidadeData; } this.CodigoTrocaFixo.Valor = dadosSalvar.ValeIngressoTipo.CodigoTrocaFixo; this.ClienteTipo.Valor = ((char)dadosSalvar.ValeIngressoTipo.ClienteTipo).ToString(); this.ProcedimentoTroca.Valor = dadosSalvar.ValeIngressoTipo.ProcedimentoTroca; this.SaudacaoPadrao.Valor = dadosSalvar.ValeIngressoTipo.SaudacaoPadrao; this.SaudacaoNominal.Valor = dadosSalvar.ValeIngressoTipo.SaudacaoNominal; this.QuantidadeLimitada.Valor = dadosSalvar.ValeIngressoTipo.QuantidadeLimitada; this.EmpresaID.Valor = dadosSalvar.ValeIngressoTipo.EmpresaID; this.Acumulativo.Valor = dadosSalvar.ValeIngressoTipo.Acumulativo; this.PublicarInternet.Valor = dadosSalvar.ValeIngressoTipo.PublicarInternet; this.ReleaseInternet.Valor = dadosSalvar.ValeIngressoTipo.ReleaseInternet; this.TrocaConveniencia.Valor = dadosSalvar.ValeIngressoTipo.TrocaConveniencia; this.TrocaIngresso.Valor = dadosSalvar.ValeIngressoTipo.TrocaIngresso; this.TrocaEntrega.Valor = dadosSalvar.ValeIngressoTipo.TrocaEntrega; this.ValorTipo.Valor = ((char)dadosSalvar.ValeIngressoTipo.ValorTipo).ToString(); this.ValorPagamento.Valor = dadosSalvar.ValeIngressoTipo.ValorPagamento; if (novoVirTipo) {//Inserir this.Inserir(bd); //Insere na tValeIngressoTipo } else {//Atualizar this.Control.ID = dadosSalvar.ValeIngressoTipo.ID; this.Atualizar(bd); } //Verifica a necessidade de inserir registros na tValeIngresso if (dadosSalvar.ValeIngressoTipo.QuantidadeLimitada) { //Inserir na tValeIngresso for (int i = 0; i < dadosSalvar.AdicionarQuantidade; i++) { try { valeIngresso = new ValeIngresso(); valeIngresso.ValeIngressoTipoID.Valor = this.Control.ID; valeIngresso.DataCriacao.Valor = DateTime.Now; valeIngresso.Status.Valor = ((char)ValeIngresso.enumStatus.Disponivel).ToString(); if (dadosSalvar.ValeIngressoTipo.CodigoTrocaFixo != String.Empty) { //Codigo fixo. Todos devem ter todos os códigos valeIngresso.CodigoTroca.Valor = dadosSalvar.ValeIngressoTipo.CodigoTrocaFixo; } else { valeIngresso.CodigoTroca.Valor = string.Empty; } valeIngresso.Inserir(bd); } catch { throw; } } } int canalInternet = Canal.CANAL_INTERNET; int canalCC = Canal.CANAL_CALL_CENTER; //Atualiza os canais string sql = string.Empty; if (!novoVirTipo) { //Verifica se deve remover ou inserir os canais ir (tirando call center e internet) if (dadosSalvar.acaoCanaisIR == EnumAcaoCanais.Distribuir) { //Inserre todos os canais IR. Tirando Call Center e Internet sql = "INSERT INTO tCanalValeIngresso (CanalID,ValeIngressoTipoID) " + " SELECT c.ID, " + this.Control.ID + " FROM tCanal c (NOLOCK) " + " LEFT JOIN tCanalValeIngresso vi (NOLOCK) ON vi.CanalID = c.ID AND vi.ValeIngressoTipoID =" + this.Control.ID + " INNER JOIN tEmpresa e (NOLOCK) ON e.ID = c.EmpresaID " + " WHERE (e.EmpresaVende = 'T' AND e.EmpresaPromove = 'F') AND vi.ID IS NULL AND c.ID NOT IN (" + canalInternet + "," + canalCC + ")"; } else if (dadosSalvar.acaoCanaisIR == EnumAcaoCanais.Remover) // Remove somente os canais que não forem IR { sql = "DELETE cvir FROM tCanalValeIngresso AS cvir " + "LEFT JOIN tCanal ON tCanal.ID = cvir.CanalID " + "INNER JOIN tEmpresa ON tCanal.EmpresaID = tEmpresa.ID AND (tEmpresa.EmpresaVende = 'T' AND tEmpresa.EmpresaPromove = 'F') " + "WHERE ValeIngressoTipoID = " + dadosSalvar.ValeIngressoTipo.ID + " AND tCanal.ID NOT IN (" + canalInternet + "," + canalCC + ")"; } if (dadosSalvar.acaoCanaisIR != EnumAcaoCanais.Manter) { bd.Executar(sql); } } //Distribui os canais próprios + Call Center e Internet foreach (EstruturaCanalValeIngresso canal in dadosSalvar.Canais) { if (canal.acao == CanalValeIngresso.EnumAcaoCanal.Inserir) { canalValeIngresso = new CanalValeIngresso(usuarioIDLogado); canalValeIngresso.CanalID.Valor = canal.CanalID; canalValeIngresso.ValeIngressoTipoID.Valor = this.Control.ID; canalValeIngresso.Inserir(bd); } else if (canal.acao == CanalValeIngresso.EnumAcaoCanal.Remover) { canalValeIngresso = new CanalValeIngresso(usuarioIDLogado); canalValeIngresso.Control.ID = canal.CanalValeIngressoID; canalValeIngresso.CanalID.Valor = canal.CanalID; canalValeIngresso.ValeIngressoTipoID.Valor = canal.ValeIngressoTipoID; //Call Center e Internet if (canal.CanalValeIngressoID == 0 && (canal.CanalID == canalInternet || canal.CanalID == canalCC)) { canalValeIngresso.Excluir(canal.CanalID, canal.ValeIngressoTipoID, bd); } else { canalValeIngresso.Excluir(canalValeIngresso.Control.ID, bd); } } } bd.FinalizarTransacao(); bdDelete.FinalizarTransacao(); return(true); } catch (Exception) { bdDelete.DesfazerTransacao(); bd.DesfazerTransacao(); throw; } finally { bd.Fechar(); } }
// passar o Usuario logado no sistema public CanalValeIngressoLista_B() { canalValeIngresso = new CanalValeIngresso(); }