예제 #1
0
 // passar o Usuario logado no sistema
 public CanalPrecoLista_B()
 {
     canalPreco = new CanalPreco();
 }
예제 #2
0
 // passar o Usuario logado no sistema
 public CanalPrecoLista_B(int usuarioIDLogado)
 {
     canalPreco = new CanalPreco(usuarioIDLogado);
 }
예제 #3
0
        public int[] AdicionarMulti(int eventoID, int apresentacaoID, int setorID, int precoID, int todosID, string precoNome)
        {
            try
            {
                DataTable tabelaPrecosAlteraveis = precosAlteraveis(eventoID, apresentacaoID, setorID, precoID, todosID, precoNome);

                //verificar quais ainda nao existem na tabela
                Array precosIDs = Array.CreateInstance(typeof(DataRow), tabelaPrecosAlteraveis.Rows.Count);
                tabelaPrecosAlteraveis.Rows.CopyTo(precosIDs, 0);
                string precos = Utilitario.ArrayToString(precosIDs);

                string sqlPrecos = "SELECT tPreco.ID AS PrecoID, tCanalPreco.CanalID " +
                                   "FROM tPreco (NOLOCK) " +
                                   "LEFT JOIN tCanalPreco (NOLOCK) ON tCanalPreco.PrecoID=tPreco.ID AND tCanalPreco.CanalID=" + this.CanalID.Valor + " " +
                                   "WHERE tPreco.ID in (" + precos + ")";

                bd.Consulta(sqlPrecos);

                DataTable tabela = new DataTable("Canais");
                tabela.Columns.Add("PrecoID", typeof(int));
                tabela.Columns.Add("CanalID", typeof(int));

                while (bd.Consulta().Read())
                {
                    DataRow linha = tabela.NewRow();
                    linha["PrecoID"] = bd.LerInt("PrecoID");
                    linha["CanalID"] = bd.LerInt("CanalID");
                    tabela.Rows.Add(linha);
                }
                bd.Consulta().Close();

                CanalPreco canalPreco = new CanalPreco(this.Control.UsuarioID);
                canalPreco.Limpar();
                canalPreco.CanalID.Valor    = this.CanalID.Valor;
                canalPreco.DataInicio.Valor = this.DataInicio.Valor;
                canalPreco.DataFim.Valor    = this.DataFim.Valor;
                canalPreco.Quantidade.Valor = this.Quantidade.Valor;

                bd.IniciarTransacao();

                int countInseridos = 0;

                foreach (DataRow linha in tabela.Rows)
                {
                    int pID = (int)linha["PrecoID"];
                    int cID = (int)linha["CanalID"];

                    if (cID == 0)
                    { //null, pode incluir
                        canalPreco.PrecoID.Valor = pID;
                        canalPreco.Inserir(bd, true);

                        countInseridos++;
                    }
                }//while (bd.Consulta().Read())

                bd.FinalizarTransacao();
                int[] retorno = new int[2];
                retorno[0] = tabela.Rows.Count;
                retorno[1] = countInseridos;
                return(retorno);
            }
            catch (Exception ex)
            {
                bd.DesfazerTransacao();
                throw ex;
                //} finally {
                //    bd.Fechar();
                //    bd.Cnn.Dispose();
            }
        }