Skip to content

Instantly share code, notes, and snippets.

@LeandroLS
Created September 6, 2017 20:51
Show Gist options
  • Save LeandroLS/2cd6642752844832528e532711d6c5bc to your computer and use it in GitHub Desktop.
Save LeandroLS/2cd6642752844832528e532711d6c5bc to your computer and use it in GitHub Desktop.
exemplo
public function listarContasReceber( $dados = null ){
if(!empty($dados['classTipoDespesa'])){
$query[] = "cn.class_ctd_id = {$dados['classTipoDespesa']}";
}
/*
if(isset($dados['centroDeCusto'])){
if(is_array($dados['centroDeCusto'])){
$idsCentroDecusto = implode(',', $dados['centroDeCusto']);
} else {
$idsCentroDecusto = $dados['centroDeCusto'];
}
$query[] = "cn.class_ctd_id IN ({$idsCentroDecusto})";
}
*/
if(isset($dados['centroDeCusto']) && !empty($dados['centroDeCusto'])){
if(is_array($dados['centroDeCusto'])){
$idsCentroDecusto = implode(',', $dados['centroDeCusto']);
} else {
$idsCentroDecusto = $dados['centroDeCusto'];
}
$query[] = "fr.rec_ccu_id IN({$idsCentroDecusto})";
}
if(!empty($dados['duplicata_cont'])){
$query[] = "fr.duplicata_id = (SELECT fc.duplicata_id FROM finan_contas fc WHERE fc.cont_id = '{$dados['duplicata_cont']}')";
}
//filtrar por numero do documento
if(!empty($dados['rec_docto'])){
$query[] = "fr.rec_docto LIKE '%{$dados['rec_docto']}%'";
}
if(isset($dados['classificacaoConta']) && !empty($dados['classificacaoConta'])){
$idsClassificacao = implode(',', $dados['classificacaoConta']);
$query[] = "cv.class_cod_id IN ({$idsClassificacao})";
}
//filtrar pelo número do boleto
if(!empty($dados['cont_boleto'])){
$query[] = "fc.cont_boleto LIKE '%{$dados['cont_boleto']}%'";
}
/* if(!empty($dados['cli_descricao'])){
$query[] = "cc.cli_nome_fantasia LIKE '%{$dados['cli_descricao']}%'";
}*/
if(!empty($dados['un_negocio_id'])){
$query[] = "un.un_negocio_id = '{$dados['un_negocio_id']}'";
}
//filtrar por data
if(isset($dados['dt_filtro_de']) && !empty($dados['dt_filtro_de'])){
if(isset($dados['dt_filtro_ate']) && !empty($dados['dt_filtro_ate'])){
$data_ate = $dados['dt_filtro_ate'];
}else{
$data_ate = $dados['dt_filtro_de'];
}
if($dados['situacao'] == 1){
$campo = "fc.cont_dt_vencimento";
}else{
$campo = "fc.cont_dt_rec_pag";
}
$query[] = "DATE($campo) BETWEEN STR_TO_DATE('{$dados['dt_filtro_de']}', '%d/%m/%Y')
AND STR_TO_DATE('{$data_ate}', '%d/%m/%Y')";
}
//filtrar pela descricoa da receita
if(!empty($dados['rec_descricao'])){
$query[] = "rec_descricao LIKE '%{$dados['rec_descricao']}%'";
}
//filtrar pelo id da tabela finan_contas
if(!empty($dados['bordero_cartao_id'])){
$query[] = "fr.antec_id = '{$dados['bordero_cartao_id']}'";
}
if(!empty($dados['cont_id'])){
$query[] = "fc.cont_id = '{$dados['cont_id']}'";
}
if(isset($dados['situacao']) && $dados['situacao'] == 2){
$query[] = "fc.cont_status = 1";
$campo = "";
$group = "";
$order = "";
if( isset($dados['returnJson']) && $dados['returnJson'] != 2){
$campo = "COUNT(1) AS 'contador',
SUM( IF( cv.cova_tipo = 'R', cv.cova_valor,
cv.cova_valor * (-1))) AS 'cova_valor',";
$group = "GROUP BY fr.duplicata_id";
$order = "ORDER BY fc.cont_dt_rec_pag DESC";
}else if( !empty($dados['cont_id']) ){
$order = "ORDER BY cv.cova_id";
}
}else if(isset($dados['conciliacao']) && $dados['conciliacao'] == 1){
$campo = "";
$group = "";
$order = "ORDER BY cv.cova_id";
}else{
$query[] = "fc.cont_status = 0";
$campo = "";
$group = "";
$order = "ORDER BY fc.cont_dt_vencimento DESC";
}
$query[] = "fr.rec_deletado = 0";
$query[] = "fc.cont_deletado = 0";
$query = implode(" AND ", $query);
$query = " SELECT *,
$campo
fr.un_negocio_id AS un_negocio_id,
DATE_FORMAT(fc.cont_dt_vencimento, '%d/%m/%Y') AS 'cont_dt_vencimento',
DATE_FORMAT(fc.cont_dt_rec_pag, '%d/%m/%Y') AS 'cont_dt_rec_pag',
DATE_FORMAT(fr.rec_dt_emissao, '%d/%m/%Y') AS 'rec_dt_emissao'
FROM finan_tipo_operacao ft
INNER JOIN (finan_receita fr, finan_contas fc)
ON ft.duplicata_id = fr.duplicata_id AND ft.duplicata_id = fc.duplicata_id
INNER JOIN (finan_contas_valor cv, cad_unidade_negocio un)
ON cv.cont_id = fc.cont_id AND un.un_negocio_id = fr.un_negocio_id
INNER JOIN finan_classificacao_nivel4 cn ON cn.class_cod_nvl4 = class_cod_id
INNER JOIN finan_classificacao_nivel1 cn1 ON cn.class_nvl1_id = cn1.class_nvl1_id
#LEFT JOIN cad_cliente cc ON cc.cli_id = fr.cliente_id
LEFT JOIN finan_portador pf ON pf.port_id = fc.port_id
LEFT JOIN finan_forma_pagto pfp ON pfp.forma_id = fc.forma_id
LEFT JOIN finan_class_tipo_despesa AS ctd ON ctd.ctd_id = cn.class_ctd_id
LEFT JOIN cad_centro_custo AS ccc ON ccc.ccu_id = fr.rec_ccu_id
LEFT JOIN (
SELECT cli_id, cli_nome_fantasia FROM cad_cliente WHERE cli_nome_fantasia LIKE '%{$dados['cli_descricao']}%'
UNION ALL
SELECT forn_id, forn_nome_fantasia FROM cad_fornecedor WHERE forn_nome_fantasia LIKE '%{$dados['cli_descricao']}%'
) AS cp on ft.duplicata_id = cp.cli_id
WHERE $query
$group
$order
";
$return = $this->db->query($query);
return $return->result();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment