public bool Atualizar(tCancelamentoLote CancelamentoLote) { #region strQuery string strQuery = @"UPDATE tCancelamentoLote SET CodigoCancelamento = @CodigoCancelamento ,EventoID = @EventoID ,CancelamentoLoteModeloMotivoID = @CancelamentoLoteModeloMotivoID ,MotivoCancelamento = @MotivoCancelamento ,UsuarioID = @UsuarioID ,DataCancelamento = @DataCancelamento ,Status = @Status ,DataMovimentacao = @DataMovimentacao WHERE ID = @ID" ; #endregion object param = new { ID = CancelamentoLote.ID, CodigoCancelamento = CancelamentoLote.CodigoCancelamento, EventoID = CancelamentoLote.EventoID, CancelamentoLoteModeloMotivoID = CancelamentoLote.CancelamentoLoteModeloMotivoID, MotivoCancelamento = CancelamentoLote.MotivoCancelamento, UsuarioID = CancelamentoLote.UsuarioID, DataCancelamento = CancelamentoLote.DataCancelamento.ToString("yyyyMMddHHmmss"), Status = CancelamentoLote.Status, DataMovimentacao = CancelamentoLote.DataMovimentacao.ToString("yyyyMMddHHmmss") }; bool result = conIngresso.Execute(strQuery, param) > 0; return(result); }
private tCancelamentoLote addResultComApresentacoes(tCancelamentoLote canc, tCancelamentoLoteApresentacao apr) { if (canc.Apresentacoes == null) { canc.Apresentacoes = new List <tCancelamentoLoteApresentacao>(); } canc.Apresentacoes.Add(apr); return(canc); }
public tCancelamentoLote ConsultarComApresentacoes(int ID) { #region strQuery string strQuery = @"SELECT cl.ID, cl.CodigoCancelamento, cl.EventoID, cl.CancelamentoLoteModeloMotivoID, cl.MotivoCancelamento, cl.UsuarioID, dbo.StringToDateTime(DataCancelamento) AS DataCancelamento, Status, dbo.StringToDateTime(DataMovimentacao) AS DataMovimentacao ,cla.ID, cla.CancelamentoLoteID, cla.ApresentacaoID, cla.Status FROM tCancelamentoLote (NOLOCK) AS cl INNER JOIN tCancelamentoLoteApresentacao (NOLOCK) AS cla ON cl.ID = cla.CancelamentoLoteID WHERE cl.ID = @ID" ; #endregion tCancelamentoLote result = conIngresso.Query <tCancelamentoLote, tCancelamentoLoteApresentacao, tCancelamentoLote>(strQuery, addResultComApresentacoes, new { ID = ID }).FirstOrDefault(); return(result); }
public tCancelamentoLote Consultar(int ID) { #region strQuery string strQuery = @"SELECT ID ,CodigoCancelamento ,EventoID ,CancelamentoLoteModeloMotivoID ,MotivoCancelamento ,UsuarioID ,dbo.StringToDateTime(DataCancelamento) AS DataCancelamento ,Status ,dbo.StringToDateTime(DataMovimentacao) AS DataMovimentacao FROM tCancelamentoLote (NOLOCK) WHERE ID = @ID" ; #endregion tCancelamentoLote result = conIngresso.Query <tCancelamentoLote>(strQuery, new { ID = ID }).FirstOrDefault(); return(result); }
public RetornoModel <string> ConfirmarCancelamento(List <int> apresentacoesID, int eventoID, int motivoID, string motivo, int usuarioID) { DateTime now = DateTime.Now; tCancelamentoLote cancelLote = new tCancelamentoLote { CancelamentoLoteModeloMotivoID = motivoID, DataCancelamento = now, DataMovimentacao = now, EventoID = eventoID, MotivoCancelamento = motivo, UsuarioID = usuarioID, CodigoCancelamento = now.ToString("yyMMddHHmmss") }; try { string codigoCancelamento = ado.GerarCancelamento(cancelLote, apresentacoesID); if (!string.IsNullOrEmpty(codigoCancelamento)) { return new RetornoModel <string> { Mensagem = "OK", Retorno = codigoCancelamento, Sucesso = true } } ; else { throw new Exception(); } } catch { return(new RetornoModel <string> { Sucesso = false, Mensagem = "Ocorreu um erro ao gerar o cancelamento", Retorno = string.Empty }); } }
public tCancelamentoLote ConsultarProximoSolicitado() { #region strQuery string strQuery = @"SELECT TOP 1 ID ,CodigoCancelamento ,EventoID ,CancelamentoLoteModeloMotivoID ,MotivoCancelamento ,UsuarioID ,dbo.StringToDateTime(DataCancelamento) AS DataCancelamento ,Status ,dbo.StringToDateTime(DataMovimentacao) AS DataMovimentacao FROM tCancelamentoLote (NOLOCK) WHERE DataCancelamento = DataMovimentacao ORDER BY ID"; #endregion tCancelamentoLote result = conIngresso.Query <tCancelamentoLote>(strQuery).FirstOrDefault(); return(result); }
public string GerarCancelamento(tCancelamentoLote cancelLote, List <int> apresentacoesID) { conIngresso.Open(); DbTransaction Transaction = conIngresso.BeginTransaction(); string query = @"INSERT INTO [dbo].[tCancelamentoLote] ([CodigoCancelamento] ,[EventoID] ,[CancelamentoLoteModeloMotivoID] ,[MotivoCancelamento] ,[UsuarioID] ,[DataCancelamento] ,[Status] ,[DataMovimentacao]) OUTPUT inserted.ID VALUES (@codigoCancelamentoTemp ,@eventoID ,@cancelamentoMotivoID ,@motivoCancelamento ,@usuarioID ,@dataCancelamento ,'S' ,@dataMovimentacao)"; try { //INSERE o CancelamentoLote usando a data de cancelamento como código temporário cancelLote.ID = conIngresso.Query <int>(query, new { codigoCancelamentoTemp = cancelLote.CodigoCancelamento, eventoID = cancelLote.EventoID, cancelamentoMotivoID = cancelLote.CancelamentoLoteModeloMotivoID, motivoCancelamento = cancelLote.MotivoCancelamento, usuarioID = cancelLote.UsuarioID, dataCancelamento = cancelLote.DataCancelamento.ToString("yyyyMMddHHmmss"), dataMovimentacao = cancelLote.DataMovimentacao.ToString("yyyyMMddHHmmss") }, transaction: Transaction).FirstOrDefault(); if (cancelLote.ID > 0) { cancelLote.CodigoCancelamento = string.Format("CM{0}", cancelLote.ID.ToString().PadLeft(10, '0')); query = @"UPDATE [dbo].[tCancelamentoLote] SET [CodigoCancelamento] = @codigoCancelamento WHERE ID = @ID"; if (conIngresso.Execute(query, new { codigoCancelamento = cancelLote.CodigoCancelamento, ID = cancelLote.ID }, transaction: Transaction) == 1) { query = @"SELECT TOP 1 EmpresaID FROM tLocal(NOLOCK) INNER JOIN tEvento(NOLOCK) ON tLocal.ID = tEvento.LocalID WHERE tEvento.ID = @eventoID"; //Pega a empresa das apresentações selecionadas int empresaID = conIngresso.Query <int>(query, new { eventoID = cancelLote.EventoID }, transaction: Transaction).FirstOrDefault(); query = ""; //Percorre as apresentacoes e insere os registros equivalentes na tCancelamentoLoteApresentacao e tCancelamentoLoteRepasse além de fazer update na tApresentacao foreach (var aprID in apresentacoesID) { query += string.Format(@"INSERT INTO [dbo].[tCancelamentoLoteApresentacao] ([CancelamentoLoteID] ,[ApresentacaoID] ,[Status]) VALUES (@cancelamentoLoteID ,{0} ,'S'); UPDATE [dbo].[tApresentacao] SET [DisponivelVenda] = 'F' ,[Cancelada] = 'T' WHERE ID = {0}; INSERT INTO [dbo].[tCancelamentoLoteRepasse] ([CancelamentoLoteID] ,[EventoID] ,[ApresentacaoID] ,[EmpresaID] ,[DataCancelamento] ,[Status]) VALUES (@cancelamentoLoteID ,@eventoID ,{0} ,@empresaID ,@dataCancelamento ,'B') ", aprID); } //Persiste os dados nas tabelas tCancelamentoLoteRepasse, tCancelamentoLoteApresentacao e tApresentacao, e ve se o número de linhas afetadas é 3 vezes (número de tabelas afetadas) o número de apresentações if (conIngresso.Execute(query, new { cancelamentoLoteID = cancelLote.ID, eventoID = cancelLote.EventoID, empresaID = empresaID, dataCancelamento = cancelLote.DataCancelamento.ToString("yyyyMMddHHmmss") }, transaction: Transaction) == (apresentacoesID.Count * 3)) { Transaction.Commit(); return(cancelLote.CodigoCancelamento); } } } Transaction.Rollback(); return(string.Empty); } catch (Exception ex) { Transaction.Rollback(); throw ex; } finally { conIngresso.Close(); } }
public bool Atualizar(tCancelamentoLote CancelamentoLote) { return(ado.Atualizar(CancelamentoLote)); }