Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos.
desenvolvi uma pequenos de sistema de gestão e vendas, um dos clientes deseja que seja possível fazer orçamentos e depois fatura-los como venda, eis o problema:
basicamente o orçamento é salvo igual a venda, só que tem validade e não remove os produtos do estoque, em uma tabela salvo os dados do orçamento, tipo data, hora, valor e etc, ja os produtos em outra tabela, que leva a id do orçamento, a quantidade e o valor unitário.
gostaria de uma ideia de como faço, para pegar os itens do orçamento e realizar a venda.
na venda normal uso uma array na sessão, dai uso o foreach, e usando o while ou for ele lança apenas o primeiro item.
alguém tem alguma dica?
Olá Amigo Gabriel, primeiramente obrigado por me ajudar.
vamos ao problema.
quando faço a venda normalmente, utilizo uma sessão chamada venda, que cria um array com a ID e a quantidade do produto.
Array ( [1] => 4 )
com isso, quando passo para a finalização da venda, uso um foreach para salvar os itens vendidos na tabela respectiva, e removo a quantidade do estoque, assim:
foreach($_SESSION['venda'] as $InsertProd => $quantidade):
$consulta = "SELECT * FROM TABELA_PRODUTO WHERE id = '$InsertProd'";
$sqlcart = DBExecute($consulta); //FUNÇÃO QUE EXECUTA A QUERY
$resultado = mysqli_fetch_assoc($sqlcart);
$valorprod = $resultado['valor'];
$estoque = $resultado['estoque'];
$qtd = $estoque - $quantidade;
#Grava os itens vendidos
QUERY QUE GRAVA OS ITENS
mysqli_query($link, $sql) or die (mysqli_error($link));
#MUDA ESTOQUE
QUERY QUE ATUALIZA O ESTOQUE
endforeach;
*optei por omitir as consultas por segurança.
com isso ele faz a venda e leva para a tela do para impressão cupom.
o orçamento segue a mesma lógica, tendo uma tabela com dados do orçamento e outra com os itens do orçamento.
minha duvida mora na fase que, no orçamento a tabela do itens já tem o preço, e no caso o preço tem que vir dessa tabela, pois na venda uso a id do produto pra buscar o preço durante a venda.
entao, que gostaria de uma forma de pegar os dados da tabela dos itens do orçamento e criar uma array como a da venda, ou uma forma de laço para faturar todos os itens do orçamento.
-- Estrutura da tabela ds_item_orcamento
--
CREATE TABLE `ds_item_orcamento` (
`id_item` int(11) NOT NULL,
`id_orcamento` int(11) NOT NULL,
`id_produto_orcamento` int(11) NOT NULL,
`valor_prod_orcamento` varchar(15) NOT NULL,
`qtd_prod` varchar(15) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;Pode fazer um consulta na tabela "ds_item_orcamento" e gerar um array com ele (do mesmo formato da sessão), depois o fluxo é o mesmo para fazer a venda, podendo até reusar o código, mudando apenas o array, que em vez de vir da sessão, você criou usando a consulta.
Kelvim, a consulta vem dai, mas não consigo montar a array, pois quando cisogo so pega a ID e a quatidade e perde o valor.
você tem alguma dica pra montar esse array?
Deixa eu ver se entendi, você salva o produto na tabela de orçamento, mas na hora de faturar você que que vá com o preço que está hoje no produto, certo?
Se for isso mesmo, você precisa fazer um JOIN entre a tabela de orçamento (item orçamento) e a tabela do produto.
select * from ds_item_orcamento o
join produto p on o.id_produto_orcamento = p.id_produto
Nesse caso acho que nem precisa de na tabela item orçamento ter o valor, uma vez que toda vez que você buscar o item, você pode trazer o valor atualizado junto à tabela do produto.
Se eu estiver entendendo errado, favor explicar melhor.
$pegavalor = "SELECT * FROM TABELA_PRODUTO WHERE id = '$id_item'";
$sqlcart = DBExecute($pegavalor);
Depois e só fazer o fetch_assoc, observe se a valor cadastrado na tabela para ser armazenado no array
No caso Kelvim, tem que pegar o preço da tabela de orçamento, pois pode haver alteração de preço durante a validade do orçamento.
Laerte, ja tentei o fetch_assoc, mas sempre falta alguma coisa, vou revisar e ve se da certo
Bom galera, consegui resolver o problema, tudo esta no While, pois eu estava inserindo o fetch_assoc fora do laço, ai estava trazendo apenas a primeira linha.
agora consegui.
obrigado a todos
Fala camarada, bom dia!
Não vi muita dificuldade, na hora de faturar o orçamento, você puxa os dados e insere na tabela de vendas, da baixa no produto e pronto. Qual o problema ? eu não entendi direito. Na verdade você precisa da tabela de orçamentos e tabela de vendas... pelo que entendi está "unificado" em uma tabela só, é preciso separar.