Ir para conteúdo
violin101

PHP - Update MySql - bloquear duplicidade

Recommended Posts

Caros amigos, saudações.

 

Estou com uma dúvida e não estou conseguindo resolver.

 

Tenho uma tabela onde o usuário lança a Entrada de Produtos <=== até aqui tudo bem.

O problema que estou encontrando é: 
- após lançar os itens e se por alguma necessidade precisar fazer devolução, gostaria de alterar o STATUS do lançamento do PRODUTO de 1 para 2, ou seja:
 

lançou:

101 - Caneta ------- 10 x 1.50 = 15,00 status = 1

102 - Lápis --------- 10 x 1.50 = 15,00 status = 1

103 - Borracha ---- 10 x 1.50 = 15,00 status = 1

104 - Apontador - 10 x 1.50 = 15,00 status = 1

 

Se precisar DEVOLVER os itens 102 e 103 o Status de 1 passa para 2, ou seja:

101 - Caneta ------- 10 x 1.50 = 15,00 status = 1

102 - Lápis --------- 10 x 1.50 = 15,00 status = 2

103 - Borracha ---- 10 x 1.50 = 15,00 status = 2

104 - Apontador - 10 x 1.50 = 15,00 status = 1

 

Obs.: como consigo filtrar o CódigoProduto + NúmeroLançamento, para não ocorrer o erro de alterar todos.

 

O problema que estou enfrentando, quando dou o Comando para Alterar, o Sistema Altera todos os produtos lançados que estiver na base de dados, ou seja, onde tiver 102 e 103, o sistema altera.

 

o meu código:

CONTROLLER

        /*Salva o Detalhe do Lançamento*/
        protected function save_detalhe($prods,$qtde,$vlrunit,$vlrtotal,$notaLct,$numlcto,$codslct){
            for ($i=0; $i < count($prods); $i++) { 
                $data  = array(
                    'cod_prod' => $prods[$i], 
                    'qtd_prod' => $qtde[$i],
                    'vlr_unit' => $vlrunit[$i],
                    'vlr_total' => $vlrtotal[$i],
                    'status' => 2,
                    'devitens' => 2,
                    'n_nf' => $notaLct,
                    'lancamentos_idlcto'=> $numlcto,                
                );
                //Função para Salvar os Detalhes do lançamento
                $this->devolucao_model->save_detalhe($data);
              
                //Função para Atualizar a Quantidade de Produto no Estoque                
                $this->update_produto($prods[$i],$qtde[$i],$vlrunit[$i],$vlrtotal[$i]);
              
                //Função para Alterar Devolução do Item   
                $this->upd_itens($prods[$i],$notaLct[$i],$codslct[$i]);
            }
        } /*<=== até aqui tudo certo, como deve ser feito*/


        /*
        * O Problema está aqui
        * para não ocorrer duplicidade de Lançamento,
        * o sistema altera o Status do 1º. lançamento
        */
        protected function upd_itens($idprds,$notaLct,$codslct){        
            $data = array(             
                'devitens' => 2,  
            );
            $this->devolucao_model->update_itens($idprds,$data);
        }   

 

MODEL:

    //Altera o Campo Devolução do Item Lançado
    //Altera todos os código de produto que encontrar
    public function update_itens($idprds,$data){
        $this->db->where("cod_prod",$idprds);       
        return $this->db->update("lctos_itens",$data);
    }    

 

Grato,

 

Cesar






 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Estou com uma dúvida e não consigo entender, fiz várias pesquisas e tentativas antes de recorrer aos amigos.

      Tenho uma CLASS e quando chamo dentro de um CONTROLLER o sistema acusa que não acha o caminho da CLASS.
      Como consigo fazer para o sistema localizar/chamar a CLASS dentro do Controller ?

      a classe está assim:
       
      <?php namespace Servicos; use NFePHP\NFe\Make; use NFePHP\NFe\Tools; error_reporting(E_ALL); ini_set('display_errors', 'On'); class NFeServicos{ public function __construct($config, $empresas){ //codes... } }  
      Controller:
       
      <?php defined('BASEPATH') OR exit('No direct script access allowed'); use NFePHP\Common\Certificate; use NFePHP\DA\NFe\Danfe; use Servicos\NFeServico; //chamo a class class NotaFiscal extends CI_Controller { public function gerarXml() { $id = $this->input->post('idLct'); $this->load->model('estoque/lancamentos_model', '', true); $venda = $this->lancamentos_model->getById($id); $nfe = new NFeServico(); //<o erro acontece aqui, não localiza. } }  
       
      Grato,
       
      Cesar
    • Por belann
      Olá!
       
      Não estou conseguindo criar um projeto laravel está dando o seguinte erro: 
      In Factory.php line 654:
        The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl ex
        tension, you can disable this error, at your own risk, by setting the 'disable-tls' option to true.
       
      Já baixei a versão openssl 3.3.1 e instalei no diretório ext do php, mas não sei se tem que configurar alguma coisa no php.ini.
       
    • Por violin101
      Caros amigos,  saudações. 
       
      Primeiramente agradeço ao auxílio e ajuda que os amigos têm me dado. 
       
      Minha dúvida:
      - para emissão de nota fiscal eletrônica precisa de um CERTIFICADO e SENHA.
      Como ou onde consigo esses dois itens, para fazer teste de emissão de nota fiscal  ?
       
      Grato, 
       
      Cesar
    • Por violin101
      Caros amigos,  saudações. 
       
      Primeiramente agradeço ao auxílio e ajuda que os amigos têm me dado. 
       
      Minha dúvida:
      - para emissão de nota fiscal eletrônica precisa de um CERTIFICADO e SENHA.
      Como ou onde consigo esses dois itens, para fazer teste de emissão de nota fiscal  ?
       
      Grato, 
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Estou com uma pequena dúvida.
       
      Estou escrevendo um Sistema que tem vários Módulos.
       
      O módulo principal tem:
      Estoque | Compras | Expedição | Vendas

      Minha dúvida:
      como faço após Acessar o Módulo Principal e Escolher o Módulo que quero trabalhar,
      eu possa fechar o Módulo aberto por exemplo: Estoque, sem alterar o Módulo principal e outros se estiver aberto ?


      Grato,
       
      Cesar
×

Informação importante

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