Jump to content
jardeldint

Alteração no MAPOs

Recommended Posts

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!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By danilo759
      Tenho uma tabelinha de programas para uma rádio... está da seguinte forma.

      titulo
      data (YYYY-MM-DD)
      hora (00:00:00)

      Minha consulta, mas não retorna o programa da hora corrente. O que eu fiz de errado?
      SELECT * FROM programas WHERE data = CURDATE() AND hora = CURTIME() LIMIT 1
    • By Ro_JnR
      Estou tentando a semanas resolver um problema, consumir uma API e verificar se o campo no banco está vazio, se estiver faz insert se não faz update.
      Até aí tudo bem, agora não consigo passar do meu select para o banco, ele da erro.
       
      Segue o código:
       
      <?php

          require_once("db.class.php");
          
          $url = "https://servicodados.ibge.gov.br/api/v1/localidades/distritos";
              $ch = curl_init($url);
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
              curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
              $resultado = json_decode(curl_exec($ch));
              foreach ($resultado as $cidades) {
                  $nome = $cidades->nome;
                  $stmt = $conn->prepare("SELECT name FROM cidades WHERE name=?");
                  $stmt->bind_Param(':name', $nome);
                  $stmt->execute();
                  $stmt->bind_result($resultSelect);
                  $stmt->fetch();
                  if(!$stmt->execute()){
                      print_r($stmt->errorInfo());
                  }
              } 

      ?>
       
      Código do banco:
       
      $conn = new PDO("mysql:host=localhost;dbname=exercicio", "root", "");
      //"sqlsrv:Database=dbphp7;server=localhost\SQLEXPRESS;ConnectionPooling=0", "sa", "root");
      $stmt = $conn->prepare("SELECT * FROM cidades ORDER BY nome");
      $stmt->execute();
      //fetchALL basicamente faço while do mysqli
      $results = $stmt->fetchALL(PDO::FETCH_ASSOC);
       
      Print do erro:

       
      Tenho um outro exercicio que fiz bem parecido, consumi a API de estados e inseri no banco de dados, esse funcionou normalmente.
      Alguém poderia me dar uma luz, não sei mais o que fazer.
      Era para ser simples rsrsrrs.
    • By asacap1000
      Galera me foi solicitado a criação de um servidor web, para disponibilizar serviços para os clientes. O que vocês recomendam?
      Tenho um servidor da DELL com windows 2016. Todo o desenvolvimento será em PHP, Javascript e companhia Ltda com conexão aos bancos de dados Mysql, SQL e ORACLE.
      Já temos um servidor que será desativado porém está utilizando uma versão muito antiga de PHP 5.4 e como base de instalação foi utilizado o WampServer. 
    • By asacap1000
      Galera me foi solicitado a criação de um servidor web, para disponibilizar serviços para os clientes. O que vocês recomendam?
      Tenho um servidor da DELL com windows 2016. Todo o desenvolvimento será em PHP, Javascript e companhia Ltda com conexão aos bancos de dados Mysql, SQL e ORACLE.
      Já temos um servidor que será desativado porém está utilizando uma versão muito antiga de PHP 5.4 e como base de instalação foi utilizado o WampServer. 
    • By dutopfave
      Boa Noite Galera, estou com dúvida em como cria um cadastra de VARIAÇÕES DE PRODUTOS.

      Ex.: Tenho um produto que é um TENIS, ai nele vou criar as VARIAÇÕES, então vou usa COR e TAMANHO.
      COR: preto, verde, azul
      TAMANHO: 39, 40, 41

      até ai blz, porém a duvida é como fazer o cadastrado de combinações de cor e tênis, tipo no banco de dados teria q fica exatamente assim....

      ID | COR | TAMANHO
      ... | preto | 39
      ... | preto | 40
      ... | preto | 41
      ... | verde | 39
      ... | verde | 40
      ... | verde | 41
      ... | azul | 39
      ... | azul | 40
      ... | azul | 41

      alguém tem alguma solução
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.