Montagem de Kit no estoque

26/03/2016

0

PHP

[img]http://arquivo.devmedia.com.br/forum/imagem/482407-20160326-154850.jpg[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/482407-20160326-154924.png[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/482407-20160326-154945.jpg[/img]

Pessoal preciso muito da ajuda de vocês estou tendo dificuldades para montar um cadastro de kit. Na hora de cadastrar o kit ele deve aparecer os produtos que estão na tabela estoque, onde eu possa selecionar quais produtos irão compor o kit e a quantidade deles, e quando for da baixa em um kit ele possa baixar (diminuir a quantidade no estoque do produto que compoe o kit. Segue as imagens em anexo com o banco de dados e o codigo das paginas segue abaixo.

kit_add.php

<?php 

	echo form_open('kit/create', 'class="form-cadastro"');
	$field_array = array('Codigo', 'Nome', 'Categoria', 'Apresentacao', 'Minimo');
	$field_array = array('Produto', 'Quantidade', 'Obs');
	
	echo heading($headline, 3, 'class="form-cadastro-heading"');
	echo br();
	
	echo form_input('codigo_kit', '', 'title="Código do kit formado por 3 caracteres iniciais do tipo e 3 digitos sequenciais daquele tipo" class="input-block-level input-xlarge" placeholder="Codigo" required');
	echo br();
	
	echo form_input('nome_kit', '', 'title="Nome do kit" class="input-block-level input-xlarge" placeholder="Nome do kit" required');
	
	echo ('<select name="categoria" title="Categoria ou tipo de Kit" class="input-block-level input-xlarge" required>');
	echo ('<option value="">Categoria</option>');
	foreach($categorias->result() as $categoria):
		echo ('<option value="'.$categoria->id_categoria.'">'.$categoria->nome_categoria.'</option>');
	endforeach;
	echo ('</select>');
		
	echo ('<select name="unidade" title="Unidade de medida do kit" class="input-block-level input-xlarge" required>');
	echo ('<option value="">Unidade de medida</option>');
	foreach($unidades->result() as $unidade):
		echo ('<option value="'.$unidade->id_apresentacao.'">'.$unidade->nome_apresentacao.'</option>');
	endforeach;
	echo ('</select>');
	
	
		
	echo form_input('qtd_minima', '', 'title="Quantidade mínima do kit em estoque" class="number input-block-level input-small" placeholder="Minimo" type="number" required');
	echo br();
	echo br();
	
	
	
	echo form_submit('', 'Cadastrar', 'class="btn btn-primary"');
	echo form_close();



kit.php


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Kit extends CI_Controller {

	public function Kit() 
	{
		parent::__construct();
		$this->check_isvalidated();
	}
	
	private function check_isvalidated(){
        if(! $this->session->userdata('validated')){
            redirect('login');
        }
    }
	
	function add()
    {
        $data['title'] = "Cadastro de Kit - Controle de Estoque";
        $data['headline'] = "Cadastro de Kit";
        $data['include'] = "kit_add";
		$this->load->model('MApresentacao', '', TRUE);
		$data['unidades'] = $this->MApresentacao->listApresentacao();
		$this->load->model('MCategoria', '', TRUE);
		$data['categorias'] = $this->MCategoria->listCategoria();
        $this->load->view('template', $data);
    }
	
	function create()
    {
        $this->load->model('MKit','',TRUE);
        $this->MKit->addKit($_POST);
        redirect('kit/listing', 'refresh');
    }
	
	function edit()
	{
		$id = $this->uri->segment(3);
		$this->load->model('MKit', '', TRUE);
		$data['kit'] = $this->MKit->getKit($id)->result();
		$data['title'] = "Modificar Kit - Controle de Estoque";
		$data['headline'] = "Edição de Kit";
		$data['include'] = "kit_edit";
		$this->load->model('MApresentacao', '', TRUE);
		$data['unidades'] = $this->MApresentacao->listApresentacao();
		$this->load->model('MCategoria', '', TRUE);
		$data['categorias'] = $this->MCategoria->listCategoria();
		$this->load->view('template', $data);
	}
	
	function update()
	{
		$this->load->model('MKit','',TRUE);
		$this->MKit->updateKit($_POST['id_kit'], $_POST);
		redirect('kit/listing', 'refresh');
	}
	
	function delete()
	{
		$id = $this->uri->segment(3);
		$this->load->model('MKit','',TRUE);
		$this->MKit->deleteKit($id);
		redirect('kit/listing', 'refresh');
	}

	function listing()
	{
		$this->load->model('MKit','',TRUE);
		$qry = $this->MKit->listKit();
		$table = $this->table->generate($qry);
		$tmpl = array ( 'table_open'  => '<table id="tabela" class="table table-striped table-bordered table-hover">' );
		$this->table->set_template($tmpl);
		$this->table->set_empty(" "); 
		$this->table->set_heading('Editar', 'Codigo', 'Nome', 'Categoria', 'Unidade', 'Minimo', 'Excluir');
		$table_row = array();
		foreach ($qry->result() as $kit)
		{
			$table_row = NULL;
			$table_row[] = anchor('kit/edit/' . $kit->id_kit, '<span class="ui-icon ui-icon-pencil"></span>');
			$table_row[] = $kit->codigo_kit;
			$table_row[] = $kit->nome_kit;
			$table_row[] = $kit->nome_categoria;
			$table_row[] = $kit->nome_apresentacao;
			$table_row[] = $kit->qtd_minima;
			$table_row[] = anchor('kit/delete/' . $kit->id_kit, '<span class="ui-icon ui-icon-trash"></span>', 
							"onClick=\" return confirm('Tem certeza que deseja remover o registro?')\"");
			$this->table->add_row($table_row);
		}    
		$table = $this->table->generate();
		$data['title'] = "Listagem de Kit - Controle de Estoque";
		$data['headline'] = "Listagem de Kit";
		$data['include'] = 'kit_listing';
		$data['data_table'] = $table;
		$this->load->view('template', $data);
	}
}




mkit.php


<?php 

	class MKit extends CI_Model{

		function addKit($data)
		{
			$this->db->insert('kit', $data);
		}

		function listKit()
		{
			$this->db->join('apresentacao', 'apresentacao.id_apresentacao = kit.unidade');
			$this->db->join('categoria', 'categoria.id_categoria = kit.categoria');
			$this->db->order_by('nome_kit', 'asc');
			return $this->db->get('kit');
		}

		function getKit($id)
		{
			return $this->db->get_where('kit', array('id_kit'=> $id));
		}

		function updateKit($id, $data)
		{
			$this->db->where('id_kit', $id);
			$this->db->update('kit', $data); 
		}

		function deleteKit($id)
		{
			$this->db->where('id_kit', $id);
			$this->db->delete('kit'); 
		}

	}

Thiago Magalhães

Thiago Magalhães

Responder

Post mais votado

27/03/2016

Thiago já solicitei gentilmente para você não duplicar posts!

Pelo visto você ainda não entendeu que fóruns funcionam de maneira colaborativa e as pessoas ajudam quando podem, possuem conhecimento e disponibilidade para isso, ninguém recebe para ajudar ou dar código pronto!

Quanto a sua dúvida, me espanta muito que uma pessoa que constrói um sistema desse usando framework MVC não saiba montar um cadastro do tipo mestre-detalhe.

Vou deixar uma dica para você de como montar isso:
1 - Para cada Kit é necessário cadastrar um cabeçalho como ID e Nome do Kit
2 - Depois disso vc exibe uma tabela onde será inserido pelo usuário o produto e a quantidade que serão inseridos nesse Kit.

Existem diversas maneiras de ser feito esse cadastro em termos de fluxo de dados e layout, faça um cadastro nesse Meus Pedidos (é Gratuito) que você vai entender o que estou explicando.

Boa sorte, espero que tenha entendido sobre o fórum e a dica do caminho a ser seguido na sua dúvida!

William

William
Responder

Mais Posts

26/03/2016

Thiago Magalhães

caso alguém queira entrar no sistema para visualizar como funciona segue link com senha

http://www.102celular.com/estoque

usuario: admin
senha: admin

Link para baixar os arquivos e o banco de dados:
http://www.4shared.com/zip/9OPuOry9ce/estoque.html?


Pessoal apenas quero poder cadastrar um kit, onde nesse kit contém os produtos da tabela produtos, e a quantidade de cada produto que compõe o kit. e Na aba saida quando cadastrar uma saida do Kit, o mesmo subtraia a quantidade do produto em estoque de acordo com o que foi cadastrado no kit.

Por exemplo:


tenho 4 produtos cadastrados na aba cadastrar produtos.

Madeira
Grampo
parafuso
bucha

Na aba estoque tenho:

Produto: Quantidade:

Madeira 20
Grampo 30
parafuso 40
bucha 50


Na aba cadastrar kit (aqui que está o problema) quando for cadastrar um kit, tipo: KIT CAMA DE CASAL:. Nesse kit deve conter os seguintes produtos: madeira, grampo, parafuso e a quantidade que cada um possui e que irá baixar no estoque. Exemplo:

Kit Cama de casal

Produto: Quantidade:

Madeira 5
Grampo 3
parafuso 6
bucha 8



Na aba saida quando for dar baixa em um kit, por Exemplo KIT CAMA DE CASAL. Ele baixa a quantidade do Kit, e a quantidade dos produtos em estoque como citado acima

Depois de baixado o kit cama de casal o estoque atualiza os valores.

Produto: Quantidade:

Madeira 15
Grampo 27
parafuso 34
bucha 42



Pessoal se eu não me expressei direito podem perguntar, mais resumindo o que eu quero é que na aba cadastrar kit fosse possivel cadastrar um kit selecionando varios produtos e a quantidade que irá usar. E na aba cadastrar saída, fosse possível da baixa no kit e ele baixasse a quantidade de produtos em estoque de acordo com a quantidade cadastrada em cada kit.


Desde já agradeço muito a Ajuda.
Responder

27/03/2016

Thiago Magalhães

Esse sistemas meus pedidos não me ajudou em nada William.


no cadastro do kit

apenas quero anexar os produtos e a quantidade que irão diminuir no estoque quando der baixa nesse kit só isso que eu quero. Mais não ta batendo todas as formas que fiz deu erro.
Responder

30/03/2016

Thiago Magalhães

aqui é dificil a galera ajudar. kkk esperando ajuda ate hoje
Responder

30/03/2016

Marcos P


Pessoal se eu não me expressei direito podem perguntar, mais resumindo o que eu quero é que na aba cadastrar kit fosse possivel cadastrar um kit selecionando varios produtos e a quantidade que irá usar. E na aba cadastrar saída, fosse possível da baixa no kit e ele baixasse a quantidade de produtos em estoque de acordo com a quantidade cadastrada em cada kit.


Thiago,

Acho que você não precisa de nossa ajuda, pois AJUDA, aqui no DevMedia, são dicas ou referências de pesquisa, para que você, baseado no seu esforço, possa resolver seu problema.

Não é isso que você necessita.

Você precisa de alguém que faça isso para você, pois, claramente, você iniciou um projeto ( trivial ) que não tem condições de concluir.

O William, que respondeu seu post, o fez com a melhor das boas intenções.

Então, fazer comentários como : "Esse sistemas meus pedidos não me ajudou em nada William" ou "aqui é dificil a galera ajudar. kkk esperando ajuda ate hoje", não agregam em absolutamente nada.

Se você quiser participar, contribuindo com nossa comunidade, será muito bem-vindo !

Mas, se acha que nós temos obrigação em resolver seus problemas, está muito enganado !
Responder

06/04/2016

Leonardo Xavier

Desenvolvi recentemente uma solução parecida com o que você quer, vou baixar o seu fonte e tentar lhe ajudar com isso. Mas meu sistema não utilizava ingniter.....fiz estrutural mesmo. Não serve para seu projeto.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar