Closed visaotec closed 3 years ago
Muito bom, parabéns!
Vamos lá... 1º na tabela lançamentos no BD crie quatro campos que são eles:
cpf | varchar(20) ruaLanc | varchar(70) bairroLanc | varchar(50) cidadeLanc | varchar(20)
em controllers/Financeiro.php em "adicionar receita" cole o seguinte codigo
public function adicionarReceita()
{
if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'aLancamento')) {
$this->session->set_flashdata('error', 'Você não tem permissão para adicionar lançamentos.');
redirect(base_url());
}
$this->load->library('form_validation');
$this->data['custom_error'] = '';
$urlAtual = $this->input->post('urlAtual');
if ($this->form_validation->run('receita') == false) {
$this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false);
} else {
$vencimento = $this->input->post('vencimento');
$recebimento = $this->input->post('recebimento');
if ($recebimento != null) {
$recebimento = explode('/', $recebimento);
$recebimento = $recebimento[2] . '-' . $recebimento[1] . '-' . $recebimento[0];
}
if ($vencimento == null) {
$vencimento = date('d/m/Y');
}
try {
$vencimento = explode('/', $vencimento);
$vencimento = $vencimento[2] . '-' . $vencimento[1] . '-' . $vencimento[0];
} catch (Exception $e) {
$vencimento = date('Y/m/d');
}
$valor = $this->input->post('valor');
if (!validate_money($valor)) {
$valor = str_replace([',', '.'], ['', ''], $valor);
}
$data = [
'descricao' => set_value('descricao'),
'valor' => $valor,
'data_vencimento' => $vencimento,
'data_pagamento' => $recebimento != null ? $recebimento : date('Y-m-d'),
'baixado' => $this->input->post('recebido') ?: 0,
'cliente_fornecedor' => set_value('cliente'),
'cpf' => set_value('cpf'),
'ruaLanc' => set_value('ruaLanc'),
'bairroLanc' => set_value('bairroLanc'),
'cidadeLanc' => set_value('cidadeLanc'),
'forma_pgto' => $this->input->post('formaPgto'),
'tipo' => set_value('tipo'),
];
if ($this->financeiro_model->add('lancamentos', $data) == true) {
$this->session->set_flashdata('success', 'Receita adicionada com sucesso!');
log_info('Adicionou uma receita');
redirect($urlAtual);
} else {
$this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>';
}
}
$this->session->set_flashdata('error', 'Ocorreu um erro ao tentar adicionar receita.');
redirect($urlAtual);
}
..................................................................................................................................................................................................
ainda em controllers/Financeiro.php "adicionar despesa" cole o código
public function adicionarDespesa()
{
if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'aLancamento')) {
$this->session->set_flashdata('error', 'Você não tem permissão para adicionar lançamentos.');
redirect(base_url());
}
$this->load->library('form_validation');
$this->data['custom_error'] = '';
$urlAtual = $this->input->post('urlAtual');
if ($this->form_validation->run('despesa') == 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');
if ($pagamento != null) {
$pagamento = explode('/', $pagamento);
$pagamento = $pagamento[2] . '-' . $pagamento[1] . '-' . $pagamento[0];
}
if ($vencimento == null) {
$vencimento = date('d/m/Y');
}
try {
$vencimento = explode('/', $vencimento);
$vencimento = $vencimento[2] . '-' . $vencimento[1] . '-' . $vencimento[0];
} catch (Exception $e) {
$vencimento = date('Y/m/d');
}
$valor = $this->input->post('valor');
if (!validate_money($valor)) {
$valor = str_replace([',', '.'], ['', ''], $valor);
}
$data = [
'descricao' => set_value('descricao'),
'valor' => $valor,
'data_vencimento' => $vencimento,
'data_pagamento' => $pagamento != null ? $pagamento : date('Y-m-d'),
'baixado' => $this->input->post('pago') ?: 0,
'cliente_fornecedor' => set_value('fornecedor'),
'cpf' => set_value('cpf'),
'ruaLanc' => set_value('ruaLanc'),
'bairroLanc' => set_value('bairroLanc'),
'cidadeLanc' => set_value('cidadeLanc'),
'forma_pgto' => $this->input->post('formaPgto'),
'tipo' => set_value('tipo'),
];
if ($this->financeiro_model->add('lancamentos', $data) == true) {
$this->session->set_flashdata('success', 'Despesa adicionada com sucesso!');
log_info('Adicionou uma despesa');
redirect($urlAtual);
} else {
$this->session->set_flashdata('error', 'Ocorreu um erro ao tentar adicionar despesa!');
redirect($urlAtual);
}
}
$this->session->set_flashdata('error', 'Ocorreu um erro ao tentar adicionar despesa.');
redirect($urlAtual);
}
...................................................................................................................................................................................... ainda em controllers/Financeiro.php "editar" cole o código
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');
$this->form_validation->set_rules('fornecedor', '', 'trim|required');
$this->form_validation->set_rules('valor', '', 'trim|required');
$this->form_validation->set_rules('vencimento', '', 'trim|required');
$this->form_validation->set_rules('pagamento', '', 'trim');
$this->form_validation->set_rules('cpf', '', 'trim');
$this->form_validation->set_rules('rua', '', 'trim');
$this->form_validation->set_rules('bairro', '', 'trim');
$this->form_validation->set_rules('cidade', '', 'trim');
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');
}
$data = [
'descricao' => $this->input->post('descricao'),
'valor' => $this->input->post('valor'),
'data_vencimento' => $vencimento,
'data_pagamento' => $pagamento,
'baixado' => $this->input->post('pago') ?: 0,
'cliente_fornecedor' => $this->input->post('fornecedor'),
'cpf' => $this->input->post('cpf'),
'ruaLanc' => $this->input->post('ruaLanc'),
'bairroLanc' => $this->input->post('bairroLanc'),
'cidadeLanc' => $this->input->post('cidadeLanc'),
'forma_pgto' => $this->input->post('formaPgto'),
'qtd_parcelas' => $this->input->post('qtdparcelas'),
'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!');
log_info('Alterou um lançamento no financeiro. ID' . $this->input->post('id'));
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 = [
'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'),
'cpf' => $this->input->post('cpf'),
'ruaLanc' => $this->input->post('ruaLanc'),
'bairroLanc' => $this->input->post('bairroLanc'),
'cidadeLanc' => $this->input->post('cidadeLanc'),
'forma_pgto' => $this->input->post('formaPgto'),
'tipo' => $this->input->post('tipo'),
];
print_r($data);
}
.................................................................................................................................................................................... ainda em controllers/Financeiro.php cole o código imprimir
public function imprimir()
{
if (!$this->uri->segment(3) || !is_numeric($this->uri->segment(3))) {
$this->session->set_flashdata('error', 'Item não pode ser encontrado, parâmetro não foi passado corretamente.');
redirect('mapos');
}
if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'vLancamento')) {
$this->session->set_flashdata('error', 'Você não tem permissão para imprimir recibo.');
redirect(base_url());
}
$this->data['custom_error'] = '';
$this->load->model('mapos_model');
$this->data['result'] = $this->financeiro_model->getById($this->uri->segment(3));
$this->data['emitente'] = $this->mapos_model->getEmitente();
$this->load->view('financeiro/imprimirRecibo', $this->data);
}
.............................................................................................................................................................................
Agora vamos pro arquivo models/Financeiro_model
Substitui o que tiver com esse título " public function getById($id)"
e cola esse abaixo
public function getById($id)
{
$this->db->select('lancamentos.*, clientes.*');
$this->db->from('lancamentos');
$this->db->where('idLancamentos', $id);
$this->db->join('clientes', 'clientes.idClientes = lancamentos.clientes_id', 'left');
$this->db->limit(1);
return $this->db->get()->row();
}
............................................................................................................................................................................................................... em breve a continuação do código
Quem quiser Testar o sistema segue o link e usuário e senha abaixo https://nacionalsistemas.000webhostapp.com/index.php/login usuário: convidado@gmail.com Senha: 123456 abraços
Boa tarde, olhando seu sistema achei interessante a opção de alterar status da OS sem precisar clicar em editar, poderia compartilhar esta mudança?
Nossa, muito bom! essas alterações com certeza podem ser incorporadas ao projeto oficial, tanto a do recibo como a de alterar o status da OS sem precisar abri-la. O que acha @Pr3d4dor ?
@JulianoSavino Se o @visaotec fizer a PR com as alterações elas serão aceitas.
Meu amigo @visaotec, se conseguir fazer a Pull das alterações, será incorporada na versão oficial do sistema... Muito top isso!! Se for possível, será muito útil e bem vindo as alterações que vc fez como: Recibo mencionado nesse tópico Alteração de status sem abrir as os. Nosso ilustríssimo @Pr3d4dor já avalizou as alterações \o/.
Boa noite, tem mais algum código, ou somente esse para o recibo? Obrigado
@visaotec Se você postar o código que falta (view imprimirRecibo) eu consigo fazer a PR e colocar os créditos para você. Ou se quiser também pode abrir uma PR com a funcionalidade.
@visaotec Se você postar o código que falta (view imprimirRecibo) eu consigo fazer a PR e colocar os créditos para você. Ou se quiser também pode abrir uma PR com a funcionalidade.
E aí tudo blz, eu vou terminar de postar os códigos.. só questão de tempo mesmo!
Esta issue está obsoleta porque está aberta há 30 dias sem atividade. Remova o rótulo ou esse comentário ou essa issue será fechada em 5 dias
Boa tarde, ótima melhora no sistema parabéns!!! foi abandonada a implementação?
@visaotec Se você postar o código que falta (view imprimirRecibo) eu consigo fazer a PR e colocar os créditos para você. Ou se quiser também pode abrir uma PR com a funcionalidade.
E aí tudo blz, eu vou terminar de postar os códigos.. só questão de tempo mesmo!
Olá parceiros tudo bem Em financeiro devido a necessidade de gerar um recibo tanto pra despesa ou receita, porque as vezes o cliente paga e quer o recibo... então pensando nisso estou colocando a opção de Recibo que vai imprimir em PDF pegando os dados em Lançamentos. logo logo vou deixar os códigos aqui .