Array
(
)

Dúvida Acionadores Mysql

PHP
Thiago Magalhães
   - 08 abr 2016

www.102celular.com/estoque
usuário admin
senha admin
Galera to montando um sistema de controle de estoque em php e mysql. acontece que quando eu dou baixa em um produto de forma individual ele subtrai no estoque a quantidade normalmente. Só que eu criei um cadastro de kit na aba produtos la você cadastra um kit com os produtos e quantidades que compõe esse kit. Na aba saída, eu tenho duas maneiras de dar saída. Tem a saída normal de produto onde ele baixa no estoque um por um.
Mas o segredo do problema tá aqui.
Na guia saída, em cadastrar a saída por kit, lá eu escolho o kit que eu quero baixar. Nessa tela ele baixa o kit como produto final ou seja eu escolho kit cama de casal e a quantidade dele ex: 3. Só que no estoque além de baixar o kit cama de casal e a quantidade dele que é 3. Quero que ao finalizar essa saída ele baixe a quantidade de produtos que ta cadastrado nesse kit na tabela kit na guia produtos/listagem de Kit/ Clica em visualizar.
Se alguém puder me ajudar a fazer essa conta fico agradecido.

Raylan
|
MVP
Pontos: 690
    08 abr 2016

Voce cria o kit com 10 itens, dá saída do kit de 10 itens e quer que no mesmo cadastro de kits esse kit que saiu passe a ter quantidade 0?

Marcio Araujo
   - 08 abr 2016

Boa tarde, Raylan, pela modelagem da base não seria mais simples de "visualizar" essa questão? Estou achando que sim.

Raylan
|
MVP
Pontos: 690
    08 abr 2016


Citação:
Boa tarde, Raylan, pela modelagem da base não seria mais simples de "visualizar" essa questão? Estou achando que sim.


Sim. Parece um problema de modelagem mesmo.

Posso ter entendido errado, mas acho que ele quer visualizar a quantidade atual do produto no estoque, lá no cadastro do kit de produtos, sendo que a quantidade do produto dentro do kit é informada no cadastro do kit...

Thiago Magalhães
   - 08 abr 2016

Pessoal deixa eu ser bem Claro vou usar o fluxo do sistema e as imagens

1ª Imagem cadastro do Kit.

Nessa imagem eu clico na aba Produtos, depois Cadastrar kit.
Irá Abrir a pagina de cadastro do kit com os campos a preencher.
1º Campo: Kit Fiscal - Aqui você coloca o numero do kit. Ex: 001
2º Campo: produto - Aqui você Seleciona o Kit Ex: Cama de Casal, que está na tabela produtos. A mesma tabela onde fica os produtos que irão compor o kit.
3º Campo: Minimo - Aqui cadastra a quantidade minima em estoque.
4º Campo: Data do Kit - Escolhe a data de cadastro do Kit.

Cadastro do Kit (Clique na imagem para abrir em uma nova janela)

Pessoal feito o cadatro vai pra próxima tela que é para adicionar os produtos que compõe o kit.
Na tela abaixo adicionei três itens no Kit Cama Bom Casal 1.38 e suas quantidades.
Não se prendam em valores o foco é os produtos que compõe os itens e a quantidade.
Depois de montado o Kit clico em finalizar cadastro. O kit está cadastrado com os produtos e quantidades que compõe ele.

Clique na imagem para abrir em uma nova janela

Agora o Segredo do problema está aqui. A imagem abaixo em cliquei em no MENU Saida/Cadastrar Saida de kit.

Seleciono o Usuário e a data da saída.

Clique na imagem para abrir em uma nova janela

Feito isso na imagem abaixo vou adicionar o Kit que eu quero da baixa, escolhi Cama Box de Casal 1.38 e a quantidade de 6 peças.

Clique na imagem para abrir em uma nova janela

Quando eu clico no Vezinho de baixar, e depois finalizar o cadastro. Ele vai no Menu estoque, pega e subtrai a quantidade de Cama Box de Casal 1.38. Lá por exemplo: tinha 41, baixamos 6 restou 35.

Aqui aqui a quantidade de produto final eu consegui fazer de boa ele subtrai tranquilo, o problema é os produtos que compõe essa Cama Box conforma a segunda tela acima. Que é Madeira, Grampo e Parafuso. Eu gostaria que quando eu desse uma saida por Kit como no exemplo acima dado. Além de baixar a quantidade do produto no exemplo usado que é 6. Ele também baixe a quantidade dos produtos que compõe ele. Madeira, grampo e parafuso. Quando finalizar o cadastro ele subtraia as quantidades que tem no estoque.

Estoque geral (Clique na imagem para abrir em uma nova janela)

Thiago Magalhães
   - 08 abr 2016

Marcio dá uma olhadinha ai vê se pode me ajudar por gentileza.

Thiago Magalhães
   - 08 abr 2016

Rayan dá uma olhadinha ai vê se pode me ajudar por gentileza.

Raylan
|
MVP
Pontos: 690
    08 abr 2016

Se voce fizer um join de kits com produtos e subprodutos, baseado no codigo do kit que deu saida, voce vai ter os codigos dos subprodutos e suas respectivas quantidades naquele kit. Daí é só dar baixa neles da mesma forma como fez no produto. Dá pra fazer tudo numa mesma trigger, por exemplo.

Thiago Magalhães
   - 08 abr 2016

Raylan

vou te mostrar a trigger que eu faço pra fazer a conta atual; Poderia me mostrar mais ou menos como ficaria a trigger.

Clique na imagem para abrir em uma nova janela

Thiago Magalhães
   - 08 abr 2016

segue o codigo da saida pra facilitar, se alguém puder ajudar modificando o codigo. Lembrando que o kit é cadastrado na tabela chamada 'kit' e os item que são os produtos que compõe o kit estão vinculado a ele na tabela 'item_kit'

#Código

<?php 

	echo form_open('itemsaida/createItens', 'class="form"');
	
	echo ('<div class="row-fluid">');
	echo ('<div class="span6">');
	echo heading('Dados da Saida', 3, 'class="form-cadastro-heading"');
	
	$field_array1 = array('Número', 'Usuario', 'Data do Saida');
	
	echo form_hidden('cod_saida', $saida[0]->cod_saida);
	
	echo form_input('cod_saida', $saida[0]->cod_saida, 'disabled="disabled" class="input-block-level input-large"');
	echo br();
	
	echo ('<select name="id_usuario" disabled="disabled" class="input-block-level input-large">');
	echo ('<option value=""></option>');
	foreach($usuarios->result() as $usuario):
		echo ('<option value="'.$usuario->id_usuario.'"'); 
			if($usuario->id_usuario == $saida[0]->id_usuario) 
				echo ('selected="selected"');
		echo ('>'.$usuario->login.'</option>');
	endforeach;
	echo ('</select>');
	
	echo form_input('data_saida', mysql_to_pt($saida[0]->data_saida), 'id="data_saida" disabled="disabled" class="input-block-level input-large"');
	
	echo br();
	echo ('</div>');
	
	$field_array = array('Produto', 'Quantidade');

	echo ('<div class="span6">');
	echo heading('Item da Saida', 3, 'class="form-cadastro-heading"');	
	
	echo ('<select name="cod_produto" title="Produto" class="input-block-level input-large" required>');
	echo ('<option value="">Produto</option>');
	foreach($produtos->result() as $produto):
		echo ('<option value="'.$produto->id_produto.'">'.$produto->nome_produto.'</option>');
	endforeach;
	echo ('</select>');

	echo form_input('quantidade', '', 'title="Quantidade de Itens" size="10" class="input-block-level input-large" placeholder="Quantidade" required');
	echo br();
	
	
	echo form_submit('', 'Cadastrar', 'class="btn btn-primary"');
	echo form_close();
	echo br();
	echo ('</div>');
	echo ('</div>');
	
	echo br();
	echo br();
	
	if($msg == 1) {
		echo '<div class="alert alert-error"> <button type="button" class="close" data-dismiss="alert">×</button> A quantidade do produto em estoque não é suficiente para realizar o saida. </div>';
	}
	elseif($msg == 2) {
		echo '<div class="alert alert-error"> <button type="button" class="close" data-dismiss="alert">×</button> Não é possível fechar um saida com itens em aberto. </div>';
	}
	
	echo $data_table;
	echo br();
	echo br();
	
	echo anchor('saida/fechar/'.$saida[0]->cod_saida, form_button('Finalizar', 'Finalizar Cadastro', 'class="btn btn-primary"'));

/* End of file item_saida_add.php */
/* Location: ./system/application/views/item_saida_add.php */