-
Conteúdo Similar
-
Por jardeldint
Olá pessoal!
Acredito que alguns daqui do grupo conhece o sistema de Ordens de Serviço MAPOS, que foi desenvolvido em CodeIgniter.
Estou fazendo uma alteração nele, para que quando o usuário for receber uma parte de um pagamento do cliente, o restante apareça no cadastro de cliente. Por exemplo: O Cliente X tinha um débito de R$ 500,00. Más no dia Y ele pagou R$ 100,00, restando então R$ 400,00.
No Models do Financeiro, fiz essa alteração abaixo na linha do "function edit":
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Financeiro_model extends CI_Model {
function __construct() {
parent::__construct();
}
function get($table,$fields,$where='',$perpage=0,$start=0,$one=false,$array='array'){
$this->db->select($fields);
$this->db->from($table);
$this->db->order_by('data_vencimento', 'asc');
$this->db->limit($perpage,$start);
if($where){
$this->db->where($where);
}
$query = $this->db->get();
$result = !$one ? $query->result() : $query->row();
return $result;
}
function getById($id){
$this->db->where('idClientes',$id);
$this->db->limit(1);
return $this->db->get('clientes')->row();
}
function add($table,$data){
$this->db->insert($table, $data);
if ($this->db->affected_rows() == '1')
{
return TRUE;
}
return FALSE;
}
function edit($table,$data,$fieldID,$ID){
$this->db->select('clientes.saldoDevedor, lancamentos.clientes_id, lancamentos.valor, lancamentos.idLancamentos');
$this->db->from('lancamentos,clientes');
$this->db->where($fieldID,$ID);
$this->db->update($table, $data);
if ($this->db->affected_rows() >= 0)
{
return TRUE;
}
return FALSE;
}
function delete($table,$fieldID,$ID){
$this->db->where($fieldID,$ID);
$this->db->delete($table);
if ($this->db->affected_rows() == '1')
{
return TRUE;
}
return FALSE;
}
function count($table) {
return $this->db->count_all($table);
}
}
E no Views do lançamento criei esse campo, dentro do Modal de Editar Lançamento:
<div class="span4" style="margin-left: 0">
<label for="valor-pagar">Valor a Receber/Pagar</label>
<input type="text" name="tipoPagar" value="" />
<input type="hidden" id="Pagar" name="idPagar" value="" />
</div>
E no Controlers na função Editar, alterei com essas informações:
Eu so inseri esses comandos que vocês odem olhar no codigo abaixo:
public function editar(){
if(!$this->permission->
checkPermission($this->session->userdata('permissao'),'eLancamento')){
$this->session->set_flashdata('error','Você não tem permissão para editar lançamentos.');
redirect(base_url());
}
$this->load->library('form_validation');
$this->data['custom_error'] = '';
$urlAtual = $this->input->post('urlAtual');
$this->form_validation->set_rules('descricao', '', 'trim|required|xss_clean');
$this->form_validation->set_rules('fornecedor', '', 'trim|required|xss_clean');
$this->form_validation->set_rules('valor', '', 'trim|required|xss_clean');
$this->form_validation->set_rules('vencimento', '', 'trim|required|xss_clean');
$this->form_validation->set_rules('pagamento', '', 'trim|xss_clean');
if ($this->form_validation->run() == false) {
$this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false);
} else {
$vencimento = $this->input->post('vencimento');
$pagamento = $this->input->post('pagamento');
try {
$vencimento = explode('/', $vencimento);
$vencimento = $vencimento[2].'-'.$vencimento[1].'-'.$vencimento[0];
$pagamento = explode('/', $pagamento);
$pagamento = $pagamento[2].'-'.$pagamento[1].'-'.$pagamento[0];
} catch (Exception $e) {
$vencimento = date('Y/m/d');
}
$capturaValorTotal = $this->input->post('valor');
$capturaValorPagar = $this->input->post('valor-pagar');
$valorDevido = $capturaValorTotal - $capturaValorPagar;
$inserindoBanco = "INSERT INTO `clientes` set `saldoDevedor`='".$valorDevido."'";
$executandoQuery = mysql_query($inserindoBanco);
$data = array(
'descricao' => $this->input->post('descricao'),
'valor' => $this->input->post('valor'),
'valor-pagar' => $this->input->post('valor-pagar'),
'data_vencimento' => $vencimento,
'data_pagamento' => $pagamento,
'baixado' => $this->input->post('pago'),
'cliente_fornecedor' => $this->input->post('fornecedor'),
'forma_pgto' => $this->input->post('formaPgto'),
'numCheque' => $this->input->post('numCheque'),
'numCartao' => $this->input->post('numCartao'),
'valCartao' => $this->input->post('valCartao'),
'tipo' => $this->input->post('tipo')
);
if ($this->financeiro_model->edit('lancamentos',$data,'idLancamentos',$this->input->post('id')) == TRUE) {
$this->session->set_flashdata('success','lançamento editado com sucesso!');
redirect($urlAtual);
} else {
$this->session->set_flashdata('error','Ocorreu um erro ao tentar editar lançamento!');
redirect($urlAtual);
}
}
$this->session->set_flashdata('error','Ocorreu um erro ao tentar editar lançamento.');
redirect($urlAtual);
$data = array(
'descricao' => $this->input->post('descricao'),
'valor' => $this->input->post('valor'),
'data_vencimento' => $this->input->post('vencimento'),
'data_pagamento' => $this->input->post('pagamento'),
'baixado' => $this->input->post('pago'),
'cliente_fornecedor' => set_value('fornecedor'),
'forma_pgto' => $this->input->post('formaPgto'),
'tipo' => $this->input->post('tipo')
);
print_r($data);
}
public function editar(){
if(!$this->permission->checkPermission($this->session->userdata('permissao'),'eLancamento')){
$this->session->set_flashdata('error','Você não tem permissão para editar lançamentos.');
redirect(base_url());
}
$this->load->library('form_validation');
$this->data['custom_error'] = '';
$urlAtual = $this->input->post('urlAtual');
$this->form_validation->set_rules('descricao', '', 'trim|required|xss_clean');
$this->form_validation->set_rules('fornecedor', '', 'trim|required|xss_clean');
$this->form_validation->set_rules('valor', '', 'trim|required|xss_clean');
$this->form_validation->set_rules('vencimento', '', 'trim|required|xss_clean');
$this->form_validation->set_rules('pagamento', '', 'trim|xss_clean');
if ($this->form_validation->run() == false) {
$this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false);
} else {
$vencimento = $this->input->post('vencimento');
$pagamento = $this->input->post('pagamento');
try {
$vencimento = explode('/', $vencimento);
$vencimento = $vencimento[2].'-'.$vencimento[1].'-'.$vencimento[0];
$pagamento = explode('/', $pagamento);
$pagamento = $pagamento[2].'-'.$pagamento[1].'-'.$pagamento[0];
} catch (Exception $e) {
$vencimento = date('Y/m/d');
}
$capturaValorTotal = $this->input->post('valor');
$capturaValorPagar = $this->input->post('valor-pagar');
$valorDevido = $capturaValorTotal - $capturaValorPagar;
$inserindoBanco = "INSERT INTO `clientes` set `saldoDevedor`='".$valorDevido."'";
$executandoQuery = mysql_query($inserindoBanco);
$data = array(
'descricao' => $this->input->post('descricao'),
'valor' => $this->input->post('valor'),
'valor-pagar' => $this->input->post('valor-pagar'),
'data_vencimento' => $vencimento,
'data_pagamento' => $pagamento,
'baixado' => $this->input->post('pago'),
'cliente_fornecedor' => $this->input->post('fornecedor'),
'forma_pgto' => $this->input->post('formaPgto'),
'numCheque' => $this->input->post('numCheque'),
'numCartao' => $this->input->post('numCartao'),
'valCartao' => $this->input->post('valCartao'),
'tipo' => $this->input->post('tipo')
);
if ($this->financeiro_model->edit('lancamentos',$data,'idLancamentos',$this->input->post('id')) == TRUE) {
$this->session->set_flashdata('success','lançamento editado com sucesso!');
redirect($urlAtual);
} else {
$this->session->set_flashdata('error','Ocorreu um erro ao tentar editar lançamento!');
redirect($urlAtual);
}
}
$this->session->set_flashdata('error','Ocorreu um erro ao tentar editar lançamento.');
redirect($urlAtual);
$data = array(
'descricao' => $this->input->post('descricao'),
'valor' => $this->input->post('valor'),
'data_vencimento' => $this->input->post('vencimento'),
'data_pagamento' => $this->input->post('pagamento'),
'baixado' => $this->input->post('pago'),
'cliente_fornecedor' => set_value('fornecedor'),
'forma_pgto' => $this->input->post('formaPgto'),
'tipo' => $this->input->post('tipo')
);
print_r($data);
} O que eu não estou entendendo é onde esta ou onde estão os meus erros, pois não grava nada no Banco de Dados, sendo q eu criei na tablea clienes o campo saldoDevedor. E ainda por cima, quando faço o teste, utilizando o debito de cliente já existente, informo o valor que foi pago, e diz que foi alterando com sucesso, más na realidade nada acontece.
Fico no aguardo se alguém puder me ajudar!
-
olá galera, seguinte eu estou fazendo um controle financeiro em PHP e quero fazer um fechamento de mes EX: fevereiro fechou no valor TAL, e março inicia com o valor de 0,00 ai começar a contar o valor ainda.
se alguem puder me ajudar ficarie grato.
Compartilhar este post
Link para o post
Compartilhar em outros sites