Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

WagnerFilho

Atualizar saldo com receita e despesa

Recommended Posts

Tenho uma aplicação, onde existe uma opção para cadastrar uma CONTA com saldo inicial igual a zero e duas opções para cadastrar RECEITAS e DESPESAS.

Sendo que, quando cadastro uma RECEITA, o saldo da conta atualiza de acordo com o valor cadastrado na receita.

Caso seja cadastrado uma DESPESA, é subtraído o mesmo valor do saldo da conta

Cenário:
RECEITA = 80,00
SALDO DA CONTA = 80,00

DESPESA = 30,00
SALDO DA CONTA = 50,00

Até aqui, tudo bem.(funcionando corretamente) O problema é que não sei como fazer para atualizar o SALDO quando editar ou excluir uma RECEITA ou DESPESA.

Exemplo:
Quando editar o valor de uma RECEITA quero que o saldo seja atualizado.
Quando editar o valor de uma DESPESA quero que o saldo seja atualizado.
Quando excluir uma DESPESA quero que o valor da DESPESA, some ao saldo.
Quando excluir uma RECEITA quero que o valor da RECEITA, subtraia ao saldo.

Podem me ajudar com esta função e query?

A tabela onde são cadastradas a RECEITA e DESPESA tem as seguintes colunas:

CREATE TABLE IF NOT EXISTS `lancamentos` (
  `idLancamentos` INT(11) NOT NULL AUTO_INCREMENT,
  `descricao` VARCHAR(255) NULL DEFAULT NULL,
  `valor` VARCHAR(15) NOT NULL,
  `data_vencimento` DATE NOT NULL,
  `categoria_id` INT(11) NULL DEFAULT NULL,
  `conta_id` INT(11) NULL DEFAULT NULL,
  `data_pagamento` DATE NULL DEFAULT NULL,
  `baixado` TINYINT(1) NULL DEFAULT NULL,
  `cliente_fornecedor` VARCHAR(255) NULL DEFAULT NULL,
  `forma_pgto` VARCHAR(100) NULL DEFAULT NULL,
  `tipo` VARCHAR(45) NULL DEFAULT NULL,
  `anexo` VARCHAR(250) NULL,
  `clientes_id` INT(11) NULL DEFAULT NULL,
  PRIMARY KEY (`idLancamentos`),
  INDEX `fk_lancamentos_clientes1` (`clientes_id` ASC),
  CONSTRAINT `fk_lancamentos_clientes1`
    FOREIGN KEY (`clientes_id`)
    REFERENCES `clientes` (`idClientes`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;

A tabela onde são cadastradas as categorias tem as seguintes colunas:

CREATE TABLE IF NOT EXISTS `categorias` (
  `idCategoria` INT(11) NOT NULL AUTO_INCREMENT,
  `nome_categoria` VARCHAR(45) NOT NULL,
  `tipo_categoria` TINYINT(1) NOT NULL,
  `status_categoria` TINYINT(1) NOT NULL,
  `data_cadastro_categoria` DATE NULL DEFAULT NULL,
  PRIMARY KEY (`idCategoria`))
ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARACTER SET = latin1;
//1 para RECEITA
//0 para DESPESA

A tabela onde são cadastradas as contas e saldos tem as seguintes colunas:

CREATE TABLE IF NOT EXISTS 'contas' (
  'idConta' INT(11) NOT NULL AUTO_INCREMENT,
  'conta' VARCHAR(45) NOT NULL,
  'banco' VARCHAR(45) NOT NULL,
  'numero' VARCHAR(45) NOT NULL,
  'saldo' DECIMAL(10,2) NOT NULL,
  'status' TINYINT(1) NOT NULL,
  'data_cadastro' DATE NULL DEFAULT NULL,
  PRIMARY KEY (idConta))
ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARACTER SET = latin1;

Para adicionar DESPESA, estou usando a função:

function adicionarDespesa() {

    if(!$this->permission->checkPermission($this->session->userdata('permissao'),'aLancamento')){
       $this->session->set_flashdata('error','Você não tem permissão para adicionar lançamentos.');
       redirect(base_url());
    }

    $this->load->library('form_validation');
    $this->data['custom_error'] = '';
    $urlAtual = $this->input->post('urlAtual');
    if ($this->form_validation->run('despesa') == false) {
        $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false);
    } else {

        $vencimento = $this->input->post('vencimento');
        $pagamento = $this->input->post('pagamento');
        $valor = $this->input->post('valor');
        $conta = $this->input->post('conta_id');

        if($pagamento != null){
            $pagamento = explode('/', $pagamento);
            $pagamento = $pagamento[2].'-'.$pagamento[1].'-'.$pagamento[0];
        }

        if($vencimento == null){
            $vencimento = date('d/m/Y');
        }

        try {

            $vencimento = explode('/', $vencimento);
            $vencimento = $vencimento[2].'-'.$vencimento[1].'-'.$vencimento[0];

        } catch (Exception $e) {
           $vencimento = date('Y/m/d'); 
        }

        $data = array(
            'descricao' => set_value('descricao'),
            //'valor' => set_value('valor'),
            'valor' => $valor,
            'data_vencimento' => $vencimento,
            'categoria_id' => $this->input->post('categoria_id'),
            'conta_id'=> $conta,
            //'conta_id' => $this->input->post('conta_id'),
            'baixado' => $this->input->post('pago'),
            'data_pagamento' => $pagamento != null ? $pagamento : date('Y-m-d'),
            'baixado' => $this->input->post('pago'),
            'cliente_fornecedor' => set_value('fornecedor'),
            'forma_pgto' => $this->input->post('formaPgto'),
            'tipo' => set_value('tipo')
        );

        if ($this->financeiro_model->add('lancamentos',$data) == TRUE) {

            $sql = "UPDATE contas set saldo = saldo - ? WHERE idConta = ?";
            $this->db->query($sql, array($valor, $conta));
            echo json_encode(array('result'=> true));

            $this->session->set_flashdata('success','Despesa adicionada com sucesso!');
            redirect($urlAtual);
        } else {
            $this->session->set_flashdata('error','Ocorreu um erro ao tentar adicionar despesa!');
            echo json_encode(array('result'=> false));
            redirect($urlAtual);
        }
    }

    $this->session->set_flashdata('error','Ocorreu um erro ao tentar adicionar despesa.');
    redirect($urlAtual);


}

Para adicionar RECEITA, estou usando a função:

function adicionarReceita() {

    if(!$this->permission->checkPermission($this->session->userdata('permissao'),'aLancamento')){
       $this->session->set_flashdata('error','Você não tem permissão para adicionar lançamentos.');
       redirect(base_url());
    }

    $this->load->library('form_validation');
    $this->data['custom_error'] = '';
    $urlAtual = $this->input->post('urlAtual');

    if ($this->form_validation->run('receita') == false) {
        $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false);
    } else {


        $valor = $this->input->post('valor');
        $vencimento = $this->input->post('vencimento');
        $recebimento = $this->input->post('recebimento');
        $conta = $this->input->post('conta_id');

        if($recebimento != null){
            $recebimento = explode('/', $recebimento);
            $recebimento = $recebimento[2].'-'.$recebimento[1].'-'.$recebimento[0];
        }

        if($vencimento == null){
            $vencimento = date('d/m/Y');
        }

        try {

            $vencimento = explode('/', $vencimento);
            $vencimento = $vencimento[2].'-'.$vencimento[1].'-'.$vencimento[0];   

        } catch (Exception $e) {
           $vencimento = date('Y/m/d'); 
        }

        $data = array(
            'descricao' => set_value('descricao'),
            //'valor' => set_value('valor'),
            'valor' => $valor,
            'data_vencimento' => $vencimento,
            'data_pagamento' => $recebimento != null ? $recebimento : date('Y-m-d'),
            'categoria_id' => $this->input->post('categoria_id'),
            'conta_id'=> $conta,
            //'conta_id' => $this->input->post('conta_id'),
            'baixado' => $this->input->post('recebido'),
            'cliente_fornecedor' => set_value('cliente'),
            'forma_pgto' => $this->input->post('formaPgto'),
            'tipo' => set_value('tipo')
        );

        if ($this->financeiro_model->add('lancamentos',$data) == TRUE) {

            $sql = "UPDATE contas set saldo = saldo + ? WHERE idConta = ?";
            $this->db->query($sql, array($valor, $conta));
            echo json_encode(array('result'=> true));

            $this->session->set_flashdata('success','Receita adicionada com sucesso!');
            redirect($urlAtual);

        } else {
            $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>';

            echo json_encode(array('result'=> false));
        }
    }

    $this->session->set_flashdata('error','Ocorreu um erro ao tentar adicionar receita.');
    redirect($urlAtual);

}

Para editar RECEITA e DEPESA, estou usando a função:

public function editar(){   
    if(!$this->permission->checkPermission($this->session->userdata('permissao'),'eLancamento')){
       $this->session->set_flashdata('error','Você não tem permissão para editar lançamentos.');
       redirect(base_url());
    }

    $this->load->library('form_validation');
    $this->data['custom_error'] = '';
    $urlAtual = $this->input->post('urlAtual');

    $this->form_validation->set_rules('descricao', '', 'trim|required|xss_clean');
    $this->form_validation->set_rules('fornecedor', '', 'trim|required|xss_clean');
    $this->form_validation->set_rules('valor', '', 'trim|required|xss_clean');
    $this->form_validation->set_rules('vencimento', '', 'trim|required|xss_clean');
    $this->form_validation->set_rules('pagamento', '', 'trim|xss_clean');

    if ($this->form_validation->run() == false) {
        $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false);
    } else {

        $vencimento = $this->input->post('vencimento');
        $pagamento = $this->input->post('pagamento');
        $valor = $this->input->post('valor');
        $conta = $this->input->post('conta_id');

        try {

            $vencimento = explode('/', $vencimento);
            $vencimento = $vencimento[2].'-'.$vencimento[1].'-'.$vencimento[0];

            $pagamento = explode('/', $pagamento);
            $pagamento = $pagamento[2].'-'.$pagamento[1].'-'.$pagamento[0];

        } catch (Exception $e) {
           $vencimento = date('Y/m/d'); 
        }

        $data = array(
            'descricao' => $this->input->post('descricao'),
            //'valor' => $this->input->post('valor'),
            'valor' => $valor,
            'categoria_id' => $this->input->post('categoria_id'),
            'conta_id'=> $conta,
            'data_vencimento' => $vencimento,
            'data_pagamento' => $pagamento,
            'baixado' => $this->input->post('pago'),
            'cliente_fornecedor' => $this->input->post('fornecedor'),
            'forma_pgto' => $this->input->post('formaPgto'),
            'tipo' => $this->input->post('tipo')
        );

        if ($this->financeiro_model->edit('lancamentos',$data,'idLancamentos',$this->input->post('id')) == TRUE) {


            $sql = "UPDATE contas set saldo = saldo - ? WHERE idConta = ?";
            $this->db->query($sql, array($valor, $conta));
            echo json_encode(array('result'=> true));

            $this->session->set_flashdata('success','lançamento editado com sucesso!');
            redirect($urlAtual);
        } else {

            $this->session->set_flashdata('error','Ocorreu um erro ao tentar editar lançamento!');
            echo json_encode(array('result'=> false));
            redirect($urlAtual);
        }

        $sql = "UPDATE contas set saldo = saldo + ? WHERE idConta = ?";
            $this->db->query($sql, array($valor, $conta));
            echo json_encode(array('result'=> true));
    }

    $this->session->set_flashdata('error','Ocorreu um erro ao tentar editar lançamento.');
    echo json_encode(array('result'=> false));
    redirect($urlAtual);

    $data = array(
            'descricao' => $this->input->post('descricao'),
            //'valor' => $this->input->post('valor'),
            'valor' => $valor,
            'categoria_id' => $this->input->post('categoria_id'),
            'conta_id'=> $conta,
            'data_vencimento' => $this->input->post('vencimento'),
            'data_pagamento' => $this->input->post('pagamento'),
            'baixado' => $this->input->post('pago'),
            'cliente_fornecedor' => set_value('fornecedor'),
            'forma_pgto' => $this->input->post('formaPgto'),
            'tipo' => $this->input->post('tipo')
        );
    print_r($data);

}

Para excluir RECEITA e DEPESA, estou usando a função:

public function excluirLancamento(){   

    if(!$this->permission->checkPermission($this->session->userdata('permissao'),'dLancamento')){
       $this->session->set_flashdata('error','Você não tem permissão para excluir lançamentos.');
       redirect(base_url());
    }

    $id = $this->input->post('id');

    if($id == null || ! is_numeric($id)){
        $json = array('result'=>  false);
        echo json_encode($json);
    }
    else{

        $result = $this->financeiro_model->delete('lancamentos','idLancamentos',$id); 
        if($result){
            $json = array('result'=>  true);
            echo json_encode($json);
        }
        else{
            $json = array('result'=>  false);
            echo json_encode($json);
        }

    }
}

MODEL FINANCEIRO

function get($table,$fields,$where='',$perpage=0,$start=0,$one=false,$array='array'){

    $this->db->select($fields);
    $this->db->from($table);
    $this->db->order_by('data_vencimento', 'asc');
    $this->db->limit($perpage,$start);
    if($where){
        $this->db->where($where);
    }

    $query = $this->db->get();

    $result =  !$one  ? $query->result() : $query->row();
    return $result;
}


function getById($id){
    $this->db->where('idClientes',$id);
    $this->db->limit(1);
    return $this->db->get('clientes')->row();
}

function add($table,$data){
    $this->db->insert($table, $data);         
    if ($this->db->affected_rows() == '1')
    {
        return TRUE;
    }

    return FALSE;       
}

function edit($table,$data,$fieldID,$ID){
    $this->db->where($fieldID,$ID);
    $this->db->update($table, $data);

    if ($this->db->affected_rows() >= 0)
    {
        return TRUE;
    }

    return FALSE;       
}

function delete($table,$fieldID,$ID){
    $this->db->where($fieldID,$ID);
    $this->db->delete($table);
    if ($this->db->affected_rows() == '1')
    {
        return TRUE;
    }

    return FALSE;        
}

function count($table, $where) {

    $this->db->from($table);
    if($where){
        $this->db->where($where);
    }
    return $this->db->count_all_results();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, isso é questão de lógica apenas.

oq eu recomendo é você criar uma função para mexer com o saldo, e toda vez que você realizar alguma alteração você chama essa função.

exemplo

  • function saldo($valor) {

query que recupera o valor atual do saldo

faz a soma do saldo com a variavel valor

query para atualizar o saldo

obs: não esquecer de que quando for salvo negativo passar com o sinal de menos

  • }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia!

Ou seja, eu teria que excluir esta parte do código:

  1. $sql = "UPDATE contas set saldo = saldo + ? WHERE idConta = ?";
    $this->db->query($sql, array($valor, $conta));
    echo json_encode(array('result'=> true));
     

    Embora tenha descrito como fazer, pode me ajudar em como ficaria cada query? Um exemplo basico mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce iria substituir essa parte do código pela função

e dentro da função voce teria o código para alterar o saldo

exemplo:

function atualizaSaldo($valor,$conta) {

$atual = "SELECT saldo from contas where idConta=?";

$this->db->query($atual , array($conta));

$novo = $atual + $valor;

$sql = "UPDATE contas set saldo = saldo + ? WHERE idConta = ?";

$this->db->query($sql, array($novo , $conta));

}

agora é só chamar a função sempre que voce precisar atualizar o saldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu certo.

Chamei a função atualizaSaldo, através da função adicionarReceita

Ficou assim:

            if ($this->financeiro_model->add('lancamentos',$data) == TRUE) {

                $this->atualizaSaldo();

                $this->session->set_flashdata('success','Receita adicionada com sucesso!');
                redirect($urlAtual);

            } else {
                $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>';
            }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora sim, deu certo.

Não tinha atribuído valores as variáveis $valor,$conta

function atualizaSaldo($valor,$conta) {
        $valor = $this->input->post('valor');
        $conta = $this->input->post('conta_id');
        
        $atual = "SELECT saldo from contas where idConta=?";
        $this->db->query($atual , array($conta));
        $novo = $atual + $valor;
        $sql = "UPDATE contas set saldo = saldo + ? WHERE idConta = ?";
        $this->db->query($sql, array($novo , $conta));
    }

Mas no final das contas, esta fazendo o que já fazia.
Adiciona e Subtrai o Saldo da conta.

Queria que funcionasse Quando editar e excluir(isto não sei fazer)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se é pra fins de estudo, mas senão for, essas funções tem tantas responsabilidades, se alguém for da manutenção no futuro além de você, sera mais fácil reconstruir o sistema do zero e dentro dos padrões.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Williams,

Não sei se é pra fins de estudo, mas senão for, essas funções tem tantas responsabilidades, se alguém for da manutenção no futuro além de você, sera mais fácil reconstruir o sistema do zero e dentro dos padrões.

O que seria dentro dos padrões para você?

Este é um projeto construído em codeigniter para o fim em que se destina(vide *Finalidade), não vejo muitos outros meios para se fazer, até porque segue a documentação do próprio codeigniter.

É meio óbvio que construir um projeto juntamente com uma equipe, se torna muito mais eficiente e talvez mais simples do que fazê-lo sozinho.

*Finalidade: Não é para fim de estudo, isto faz parte de um CRM para registro de vendas, cobrança, importação, exportação, relatórios e estou somente acrescentado funcionalidades.

Como disse, não vejo muitos outros meios de se fazer, mas caso tenha algum meio mais fácil e menos complexo.

Gostaria de saber, pode informa-los?

Compartilhar este post


Link para o post
Compartilhar em outros sites
codeigniter.

Reparei, este é o framework diga-se de passagem o mais tosco de todos, geralmente usado para quem esta começando a estudar frameworks, mas pra quem entende um pouco de OOP e Design Pattern, sabe que o "codeigniter" embrulha o estomago quando se olha as classes e funções dentro do seu núcleo de tão feio que é, por isso são poucos os que tem coragem em desenvolver algo que vá para produção e escalavel em cima dele. Mas vamos ao seu problema.

Siga o padrão GOF e outros saberão o que seu código faz independente de Frameworks!

De uma olhada também em principios SOLID e programe para interface, ta cheio de exemplos e tutorias no youtube e outros.

Segue:

E não leve a mal quando um código é criticado, estamos todos aprendendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Reparei, este é o framework diga-se de passagem o mais tosco de todos, geralmente usado para quem esta começando a estudar frameworks, mas pra quem entende um pouco de OOP e Design Pattern, sabe que o "codeigniter" embrulha o estomago quando se olha as classes e funções dentro do seu núcleo de tão feio que é, por isso são poucos os que tem coragem em desenvolver algo que vá para produção e escalavel em cima dele. Mas vamos ao seu problema.

Siga o padrão GOF e outros saberão o que seu código faz independente de Frameworks!

De uma olhada também em principios SOLID e programe para interface, ta cheio de exemplos e tutorias no youtube e outros.

Segue:

E não leve a mal quando um código é criticado, estamos todos aprendendo.

Ok!

Vou estudar sobre isto,muito obrigado aos envolvidos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por ILR master
      Fala galera, tudo certo?
       
      Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
      Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
      Segue código:
       
      $host = 'servidor B';
      $user = 'user';
      $pass = '********';
      $db   = 'banco';
       
      // conexão e seleção do banco de dados
      $conexao = mysqlI_connect($host, $user, $pass, $db);
      mysqlI_set_charset($conexao,"utf8");
      //print "Conexão rodando e OK!"; 
      //mysqlI_close($conexao);
       
      Alguém pode me ajudar?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.