Ir para conteúdo

POWERED BY:

Arquivado

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

FreedFelipe

[Resolvido] Consulta de estoque

Recommended Posts

Boa tarde pessoal.

 

Preciso fazer uma consulta no banco, onde nessa consulta retorne o a quantidade de peças a serem utilizadas para fabricar um equipamento, e nessa consulta preencher uma lista com os materiais necessários.

 

Até ai tudo bem, o problema esta sendo criar uma outra lista que verifica em um outro SQL se as peças que estão em estoque são suficientes para a produção.

 

Segue códigos das funções que estou utilizando para a programação:

 

function calcular()
{
	$this->liststore_itens->clear();
	$this->liststore_produtos->foreach(array($this,'calcula_itens'));
	$sql = "select codigo, descricao, unidade, sum(total) as total from temp group by codigo"; // Esse funciona perfeitamente
	$resultado2 = $this->con_geral->Query($sql);
	while($i = $this->con_geral->FetchRow($resultado2))
	{

		$this->liststore_itens->append(array($i[0], $i[1], $i[2], $i[3]));
	}	

	$this->liststore_itens_faltantes->clear();

	$sql = "select codigo, descricao, unidade, (total-qtd) as qtd from temp group by codigo";// Nesse que estou tendo o problema... Acredito..!
	//echo "\n $sql";
	$resultado2 = $this->con_geral->Query($sql);
	while($i = $this->con_geral->FetchRow($resultado2))
	{
		//echo "\nI.. $i[1]";
		$this->liststore_itens_faltantes->append(array($i[0], $i[1], $i[2], $i[3]));
	}

	/*$sql = "drop table temp";
	$this->con_geral->Query($sql);*/

}

function calcula_itens($store, $path, $iter)
{
	$BancoDeDados = retorna_CONFIG("BancoDeDados");
	$this->con_geral = &new $BancoDeDados;

	$this->con_geral->Connect();
	$codigo = $store->get_value($iter,0);

	echo "\n $codigo";

	$quantidade = $store->get_value($iter,4);

	$sql="select a.cod_filho, a.descricao, b.unidade, a.qtd*$quantidade as total, b.estocado from ficha_tecnica as a inner join produtos as b on a.cod_pai=b.codigo where cod_pai='$codigo'";// ou nesse... ai que esta minha duvida!
	$resultado = $this->con_geral->Query($sql);

	$resultado2 = $this->con_geral->FetchArray($resultado);

	$restante = $resultado2["estocado"];

	/*$sql = "CREATE temporary TABLE if not exists temp (codigo INTEGER UNSIGNED NOT NULL, descricao VARCHAR(50), unidade VARCHAR(5), total float(6,2), qtd float(6,2)) engine=memory";
	$this->con_geral->Query($sql);*/

	while($i = $this->con_geral->FetchRow($resultado))
	{
		$sql="INSERT INTO temp (codigo, descricao, unidade, total, qtd) values ('$i[0]', '$i[1]', '$i[2]', '$i[3]', '$i[4]')";
		//echo "\n$sql";
		$this->con_geral->Query($sql);    
	}	



}

 

 

Desde já agradeço a atenção de todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema resolvido!

 

segue solução na sql .... caso alguem tenha interesse:

 

$sql="select a.cod_filho, a.descricao, b.unidade, a.qtd*$quantidade as total, b.estocado from ficha_tecnica as a inner join produtos as b on a.cod_filho=b.codigo where a.cod_pai='$codigo'";

 

 

Segue função:

 

function calcula_itens($store, $path, $iter)
{
	$BancoDeDados = retorna_CONFIG("BancoDeDados");
	$this->con_geral = &new $BancoDeDados;

	$this->con_geral->Connect();
	$codigo = $store->get_value($iter,0);



	$quantidade = $store->get_value($iter,4);

	$sql="select a.cod_filho, a.descricao, b.unidade, a.qtd*$quantidade as total, b.estocado from ficha_tecnica as a inner join produtos as b on a.cod_filho=b.codigo where a.cod_pai='$codigo'";

	$resultado = $this->con_geral->Query($sql);

	$sql = "CREATE temporary TABLE if not exists temp (codigo INTEGER UNSIGNED NOT NULL, descricao VARCHAR(50), unidade VARCHAR(5), total float(6,2), qtd float(6,2)) engine=memory";
	$this->con_geral->Query($sql);

	while($i = $this->con_geral->FetchRow($resultado))
	{

		$sql="INSERT INTO temp (codigo, descricao, unidade, total, qtd) values ('$i[0]', '$i[1]', '$i[2]', '$i[3]', '$i[4]')";
		//echo "\n$sql";
		$this->con_geral->Query($sql);    
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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