JP
sobre o estoque
Boa Tarde estimados Programadores do adianti e outros.
Venho por esta mensagem pedir um help sobre com relação ao fazer a gestão do estoque num projecto de compra e venda.
Exemplo: quando cadastro um producto então vou a tabela estoque para adicionar as quantidades, logo,quando eu vendo deve diminuar a quantidade no estoque do produto vendido.
Alguém aí pode por favor me enviar qual é a função ou procedimento para fazer isto?
desde já aguardo a resposta pelo meu email: jose.afonso.paulino@gma
Em sua tabela de estoque o campo quantidade não deve existir (ele deve ser calculado) de outra tabela ex: "tabela_movimento" deve funcionar igual extrato de banco ex:
tabela_movimento
Produto_id
1
DataMovimento
19/02/2019 12:32
TipoMovimento
Entrada
Quantidade
2
Produto_id
1
DataMovimento
20/02/2019 12:32
TipoMovimento
Saida
Quantidade
2
Depois o campo quantidade do estoque deve ser a "matemática", que seria a soma com agrupamentos do "produto_id" por tipo de movimento.
Espero ter ajudado.
Cortez, fiz dessa forma, criei uma tabela para cadastrar o produto no estoque e outra para movimentar o produto no estoque (entrada/saída). Como faço para somar todos os produtos por tipo de movimento e realizar a matemática na coluna do datagrid?
</your></your>
Usa uma view com a função sum e group by assim vc deixa o trabalho pesado para o banco de dados.
Sim, minha ideia é essa mesmo, colocar o datagrid na listagem de produtos e informar a quantidade do estoque. Mas como eu faço para buscar os valores na tabela movimento?
Então vc cria uma view no banco de dados e cria a model e a listagem a partir dela.
no banco se vc fizer algo parecido com isso:
Select tbl_material.nome_material, sum(tbl_movimento.quantidade) from tbl_material, tbl_movimento group by tbl_movimento.tipo
Tenta ai
Criei duas funções, soma entrada e soma saída, utilizando um exemplo do tutor, fiz certo?
public static function getValorEntrada( $params )
{
if( !empty($params['id']) )
{
parent::__construct();
try
{
TTransaction::open('projeto'); // open transaction
$conn = TTransaction::get(); // get PDO connection
// run query
$resultEntreda = $conn->query('SELECT SUM (qtd_movimento) FROM estoque_movimento WHERE tipo_movimento="E"');
TTransaction::close(); // close transaction
}
catch (Exception $e)
{
new TMessage('error', $e->getMessage());
}
}
}?>
public static function getValorSaida( $params )
{
if( !empty($params['id']) )
{
parent::__construct();
try
{
TTransaction::open('projeto'); // open transaction
$conn = TTransaction::get(); // get PDO connection
// run query
$resultSaida = $conn->query('SELECT SUM (qtd_movimento) FROM estoque_movimento WHERE tipo_movimento="S"');
TTransaction::close(); // close transaction
}
catch (Exception $e)
{
new TMessage('error', $e->getMessage());
}
}
}?>
Foi sem formatação...
Rafael
Você está tendo muito trabalho sem necessidade todo o calculo matemático pode ser feito pelo banco (e deve) assim vc economiza seu servidor salva sua "query" com sua matemática depois usa ela como se fosse uma tabela normal, entendeu?
Entendi, mas estou procurando por exemplos e não acho, como sou novo no framework fico um pouco perdido sem uma orientação, nos exemplos que tem disponível os cálculos são feitos de forma mais simples, até tenho um datagrid com subtotal e total geral (fiz pelo exemplo do Pablo), mas dessa forma agora não achei nada... :(
Felipe, criei no model duas funções, abaixo. Depois criei dois critérios, abaixo. Como faço agora para pegar essas duas funções e gerar o resultado final do estoque?
$criteria_Entrada = new TCriteria;
$criteria_Entrada->add(new TFilter('detail_tipo_movimento', '=', 'Entrada'));
$criteria_Saida = new TCriteria;
$criteria_Saida->add(new TFilter('detail_tipo_movimento', '=', 'Saída'));
Olá Rafael ainda brigando com seu estoque?
Você criou a tabela movimento e vc quer consultar seu estoque certo?
Pode me enviar como está sua tabela por e-mail para eu montar um exemplo para vc.
felipecortez.fgc@gmail.com
Abraços
Felipe, amanhã logo cedo lhe envio. Creio que seja uma coisa bem simples de fazer, mas voltei para esse tópico em meu projeto e não achei nada no fórum sobre isso mais detalhado, somente algumas postagens que não me ajudou muito. Acho que aprendendo a fazer isso devo ter mais conhecimento para outras atividades dentro do projeto, porque as coisas são bem parecidas. Muito obrigado pela ajuda.
Prezados,
estou com a mesma dificuldade, como ficou o final?
Poderiam colocar aqui o exemplo?