Ir para conteúdo

Arquivado

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

allex_carvalho

Pagar parte de uma fatura e o restante ir pra próxima parcela

Recommended Posts

Bom dia pessoal.

 

Estou gerando parcelas através do script abaixo:

 

function inserir_caixa($origem, $id_origem, $vendedor, $descricao, $tipo, $status, $data, $valor, $parcela, $forma_pagamento, $texto_historico, $usuario, $data_historico) {
    $conn = mysqli_connect(HOST, USER, PASS, DB);
    $data = explode("/", $data);
    $dia = $data[0];
    $mes = $data[1];
    $ano = $data[2];
    for ($x = 0; $x < $parcela; $x++) {
        $datas_parcelas[] = date("Y-m-d", strtotime("+" . $x . " month", mktime(0, 0, 0, $mes, $dia, $ano)));
    }
    foreach ($datas_parcelas AS $datas) {
        $sql_inserir = "INSERT INTO caixa(origem, id_origem, vendedor, descricao, tipo, status, data, valor, forma_pagamento) VALUES ('$origem', '$id_origem', '$vendedor', '$descricao', '$tipo', '$status', '$datas', '$valor', '$forma_pagamento')";
        $qr_inserir = mysqli_query($conn, $sql_inserir) or die(mysqli_error($conn));
        $sql_historico = "INSERT INTO historico (categoria, titulo, usuario, data_hora) VALUES ('Caixa - Inserir', '$texto_historico', '$usuario', '$data_historico')";
        mysqli_query($conn, $sql_historico) or die(mysqli_error($conn));
        if ($qr_inserir === false) {
            return false;
        }
    }
}

Porém, me deparei com uma situação que não estou conseguindo pensar numa forma coerente de resolver.

Ex.: Gerei 12 parcelas no valor de 200 reais referente a uma venda. No dia de um pagamento X o cliente diz que só tem 150 e gostaria de pagar o restante no próximo mês.

 

Acredito que o correto seria verificar se já tem alguma fatura em aberto, se sim, somar o valor a próxima fatura, se não, gerar outra fatura com o valor restante.

 

Porém, não estou conseguindo pensar numa forma de executar essa ideia, também nem sei se esta é a forma correta.

 

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

acredito que o funcionamento seja semelhante ao do cartão de crédito. se você pagar um valor inferior ao cobrado na fatura, o saldo devedor é lançado na próximo fatura e acumula com os restante dos gastos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim Marcos, mais então teria que ter uma tabela vendas com o total de faturas? Ai cadastrar no caso o id dessa venda em cada parcela?

Essa relação entre as faturas que não estou compreendendo bem como montar.

 

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu seguiria mais ou menos este rumo, estou postando logo, para que se algo no texto lhe ajudar a clarear a idéia, você finaliza seu problema logo :natallaugh:

 

BD - TABELA VENDEDORES
	 id 						int(11) PRIMARY_KEY,
	 nome						varchar(200),
	 sexo						char(1)
	 
EXEMPLO REGISTROS:
id		titulo				sexo
1		Joãozinho Trinta	M
2		Maria Antonieta		F

//---------------------------------------------------------------------------------	 
BD - TABELA TIPO_PAGAMENTOS	
	 id 						int(11) PRIMARY_KEY,
	 titulo						varchar(100) NOT NULL,
	 num_parcelas_permitidas 	int(3) NOT NULL

EXEMPLO REGISTROS:
id		titulo				num_parcelas_permitidas
1		Espécie				1
2		Débito				1
3		Crédito à vista		1
4		Crédito parcelado	12

//---------------------------------------------------------------------------------		 
BD - TABELA VENDAS
	 id 						int(11) PRIMARY_KEY,
	 id_tipo_pagamento			int(11) NOT NULL FOREIGN KEY(id) TIPO_PAGAMENTOS
	 valor						double NOT NULL,
	 num_parcelas				int(3) NOT NULL,
	 id_vendedor				int(11) NOT NULL FOREIGN KEY(id) VENDEDORES,
	 data_venda					date,
	 descricao					varchar(255),
	 status						char(1) '1' - aberta | '0' - fechada

EXEMPLO REGISTROS:
id		id_tipo_pagamento		valor		num_parcelas		id_vendedor		data_venda		descricao				status
1		1						50.00		1					1				02-08-2013		Pendriver 2GB Kingstom	0
2		2						300.00		1					1				04-08-2013		HD Seagate 1TB			0	
3		3						2500.00		7 					2				05-08-2013		Notebook Asus XXXX		1
//---------------------------------------------------------------------------------		

BD - TABELA PAGAMENTOS_EFETUADOS
	 id 						int(11) PRIMARY_KEY,
	 id_venda					int(11) NOT NULL FOREIGN KEY(id) VENDAS,
	 data_pagamento				date,
	 valor						double,
	 
	 
// 1 - SÓ EMITE FATURAS COM VENDAS STATUS == 1
// 2 - INCREMENTAR A PARTIR DA DATA DA VENDA, AS DATAS DAS PARCELAS
// 3 - VENDAS COM UMA PARCELAS JÁ SETA STATUS == 0
// 4 - CONTROLE O VALOR DA VENDA PELOS NÚMEROS DE PARCELAS E PAGAMENTOS EFETUADOS SE QUANTIDADE
//     DE PARCELAS FOI ATINGIDA E VALOR TAMBÉM, STATUS = 0 SENÂO STATUS = 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Raphael,

 

Acho que só não entendi isso:

 

 

 

VENDEDORES,data_venda                             date,descricao                              varchar(255),status                                 char(1) '1' - aberta | '0' - fechada// 1 - SÓ EMITE FATURAS COM VENDAS STATUS == 1

 

Você colocou status dentro de vendedores.

 

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Raphael,

 

Acho que só não entendi isso:

 

 

 

Você colocou status dentro de vendedores.

 

Obrigado pela atenção.

 

Não, o status está dentro da tabela VENDAS

 

Copia e cola o plano no notepad++ que ele pega as tabulações :natallaugh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Raphael, desenvolvendo aqui me deparei com uma coisa:

 

Essa tabela vendas seria só para entrada? Seria interessante uma outra tabela para as saídas?

 

Mais uma vez, obrigado :)

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.