public void AtribuirHorarios(int quantidade, int horas) { BD bd = new BD(); try { string busca = @"SELECT TOP 500 vb.ID, MIN(ap.Horario) AS MenorApresentacao FROM tVendaBilheteria vb (NOLOCK) INNER JOIN tIngresso i (NOLOCK) ON i.VendaBilheteriaID = vb.ID INNER JOIN tApresentacao ap (NOLOCK) ON ap.ID = i.ApresentacaoID WHERE vb.Status = 'P' AND vb.DataVenda > '20110000000000' AND (vb.EmailSincronizado IS NULL OR vb.EmailSincronizado = 'F') GROUP BY vb.ID ORDER BY vb.ID ASC" ; bd.Consulta(busca); var data = new { VendaBilheteriaID = 0, Data = DateTime.Now, }; var lista = VendaBilheteria.ToAnonymousList(data); while (bd.Consulta().Read()) { lista.Add(new { VendaBilheteriaID = bd.LerInt("ID"), Data = bd.LerDateTime("MenorApresentacao"), }); } bd.FecharConsulta(); foreach (var venda in lista) { bd.Executar( string.Format(@"UPDATE tVendaBilheteria SET EmailSincronizado = '{0}', EmailEnviar = '{1}' WHERE ID = {2}" , "T", venda.Data.AddHours(horas).ToString("yyyyMMddHHmmss"), venda.VendaBilheteriaID)); } } finally { bd.Fechar(); } }
public void AlterarCliente(BD bd, int assinaturaClienteID, int assinanteID, int clienteIDAntigo, int clienteID) { int antigoCliente = 0; int novoCliente = 0; //Desmembrando uma assinatura já desmembrada if (clienteIDAntigo > 0 && clienteID > 0) { antigoCliente = clienteIDAntigo; novoCliente = clienteID; } //Removendo desmembramento else if (clienteIDAntigo == 0 && clienteID > 0) { antigoCliente = assinanteID; novoCliente = clienteID; } //Desmembrando assinatura normal else if (clienteIDAntigo > 0 && clienteID == 0) { antigoCliente = clienteIDAntigo; clienteID = assinanteID; } else { throw new Exception("Tentativa de desmembramento inválida."); } BD bdAux = new BD(); try { var obj = new { IngressoID = 0, BancoIngressoID = 0, ClienteID = 0, CreditoID = 0, CreditoClienteID = 0, ComprovanteID = 0, ComprovanteClienteID = 0, }; var lista = VendaBilheteria.ToAnonymousList(obj); string sql = string.Format(@"SELECT DISTINCT bi.ID, bi.IngressoID, bi.ClienteID, bc.ID AS CreditoID, bc.ClienteID AS CreditoClienteID, bic.ID AS ComprovanteID, bic.ClienteID AS ComprovanteClienteID FROM tIngresso i (NOLOCK) INNER JOIN tAssinaturaBancoIngresso bi (NOLOCK) ON bi.IngressoID = i.ID LEFT JOIN tAssinaturaBancoIngressoHistorico bh (NOLOCK) ON bh.AssinaturaBancoIngressoID = bi.ID LEFT JOIN tAssinaturaBancoIngressoCredito bc (NOLOCK) ON bh.AssinaturaBancoIngressoCreditoID = bc.ID LEFT JOIN tAssinaturaBancoIngressoComprovante bic (NOLOCK) ON bic.ID = bh.AssianturaBancoIngressoComprovanteID WHERE i.AssinaturaClienteID = {0} AND (bc.ID IS NULL OR bc.ClienteID = {1}) AND (bc.ID IS NULL OR bc.Utilizado = 'F') ", assinaturaClienteID, antigoCliente); if (!bdAux.Consulta(sql).Read()) { return; } do { lista.Add(new { IngressoID = bdAux.LerInt("IngressoID"), BancoIngressoID = bdAux.LerInt("ID"), ClienteID = bdAux.LerInt("ClienteID"), CreditoID = bdAux.LerInt("CreditoID"), CreditoClienteID = bdAux.LerInt("CreditoClienteID"), ComprovanteID = bdAux.LerInt("ComprovanteID"), ComprovanteClienteID = bdAux.LerInt("ComprovanteClienteID"), }); } while (bdAux.Consulta().Read()); bdAux.FecharConsulta(); foreach (var item in lista) { if (item.ClienteID == antigoCliente) { bd.Executar(string.Format("UPDATE tAssinaturaBancoIngresso SET ClienteID = {0} WHERE ID = {1} AND ClienteID = {2}", novoCliente, item.BancoIngressoID, antigoCliente)); } if (item.CreditoClienteID > 0 && item.CreditoClienteID == antigoCliente) { bd.Executar(string.Format("UPDATE tAssinaturaBancoIngressoCredito SET ClienteID = {0} WHERE ID = {1} AND ClienteID = {2}", novoCliente, item.CreditoClienteID, antigoCliente)); } if (item.ComprovanteID > 0 && item.ComprovanteClienteID == antigoCliente) { bd.Executar(string.Format("UPDATE tAssinaturaBancoIngressoComprovante SET ClienteID = {0} WHERE ID = {1} AND ClienteID = {2}", novoCliente, item.ComprovanteID, antigoCliente)); } } } finally { bdAux.Fechar(); } }