public override void Salvar(EntidadeDominio entidade)
        {
            if (connection.State == ConnectionState.Closed)
            {
                connection.Open();
            }
            ClientePFXCC clientePFXCC = (ClientePFXCC)entidade;

            // construtor já passando conexão de cliente para cartao
            CartaoCreditoDAO ccDAO = new CartaoCreditoDAO(connection, false);

            ccDAO.Salvar(clientePFXCC.CC);

            pst.CommandText = "INSERT INTO tb_cliente_cartao(id_cliente, id_cartao) VALUES (:1, :2); ";
            parameters      = new NpgsqlParameter[]
            {
                new NpgsqlParameter("1", clientePFXCC.ID),
                new NpgsqlParameter("2", clientePFXCC.CC.ID)
            };

            pst.Parameters.Clear();
            pst.Parameters.AddRange(parameters);
            pst.Connection  = connection;
            pst.CommandType = CommandType.Text;
            pst.ExecuteNonQuery();

            if (ctrlTransaction == true)
            {
                pst.CommandText = "COMMIT WORK";
                connection.Close();
            }

            return;
        }
Пример #2
0
        public string processar(EntidadeDominio entidade)
        {
            StringBuilder sb = new StringBuilder();

            if (entidade.GetType() == typeof(ClientePFXCC))
            {
                ClientePFXCC clientePFXCC = (ClientePFXCC)entidade;

                // verifica se cliente foi selecionado
                if (clientePFXCC.ID == 0)
                {
                    sb.Append("ID CLIENTE INFORMADO INCORRETO! <br />");
                }

                // verifica se cc está vazio ou nulo
                if (clientePFXCC.CC == null)
                {
                    sb.Append("CARTÃO DE CRÉDITO É UM CAMPO OBRIGATÓRIO! <br />");
                }
                else
                {
                    ValidadorCartaoCredito valCC = new ValidadorCartaoCredito();
                    String msg = valCC.processar(clientePFXCC.CC);
                    if (msg != null)
                    {
                        sb.Append(msg);
                    }
                }
            }
            else
            {
                sb.Append("CLIENTE PESSOA FÍSICA X CARTÃO NÃO PODE SER VALIDADA, POIS ENTIDADE NÃO É CLIENTE PESSOA FÍSICA X CARTÃO! <br />");
            }

            if (sb.Length != 0)
            {
                return(sb.ToString());
            }

            return(null);
        }
        public override List <EntidadeDominio> Consultar(EntidadeDominio entidade)
        {
            if (connection.State == ConnectionState.Closed)
            {
                connection.Open();
            }
            ClientePFXCC  clientePFXCC = (ClientePFXCC)entidade;
            StringBuilder sql          = new StringBuilder();

            sql.Append("SELECT * FROM tb_cliente_cartao JOIN tb_cartao_credito ON (tb_cliente_cartao.id_cartao = tb_cartao_credito.id_cc) ");
            sql.Append("                                JOIN tb_bandeira ON (tb_cartao_credito.bandeira_cc_fk = tb_bandeira.id_bandeira) ");

            // WHERE sem efeito, usado apenas para poder diminuir o número de ifs da construção da query
            sql.Append("WHERE 1 = 1 ");

            if (clientePFXCC.ID != 0)
            {
                sql.Append("AND id_cliente = :1 ");
            }

            if (clientePFXCC.CC != null)
            {
                if (clientePFXCC.CC.ID != 0)
                {
                    sql.Append(" AND id_cartao = :2 ");
                }
            }

            sql.Append("ORDER BY tb_cliente_cartao.id_cliente,tb_cliente_cartao.id_cartao ");

            pst.CommandText = sql.ToString();
            parameters      = new NpgsqlParameter[]
            {
                new NpgsqlParameter("1", clientePFXCC.ID),
                new NpgsqlParameter("2", clientePFXCC.CC.ID)
            };

            pst.Parameters.Clear();
            pst.Parameters.AddRange(parameters);
            pst.Connection  = connection;
            pst.CommandType = CommandType.Text;

            reader = pst.ExecuteReader();

            // Lista de retorno da consulta do banco de dados, que conterá os cartões do cliente encontrados
            List <EntidadeDominio> clientePFXCCs = new List <EntidadeDominio>();

            while (reader.Read())
            {
                clientePFXCC                    = new ClientePFXCC();
                clientePFXCC.ID                 = Convert.ToInt32(reader["id_cliente"]);
                clientePFXCC.CC.ID              = Convert.ToInt32(reader["id_cc"]);
                clientePFXCC.CC.NomeImpresso    = reader["nome_impresso_cc"].ToString();
                clientePFXCC.CC.NumeroCC        = reader["numero_cc"].ToString();
                clientePFXCC.CC.Bandeira.ID     = Convert.ToInt32(reader["id_bandeira"]);
                clientePFXCC.CC.Bandeira.Nome   = reader["nome_bandeira"].ToString();
                clientePFXCC.CC.CodigoSeguranca = reader["codigo_seguranca_cc"].ToString();

                clientePFXCCs.Add(clientePFXCC);
            }
            connection.Close();
            return(clientePFXCCs);
        }