| 
<?php/**
 * Created by PhpStorm.
 * User: Sinerconsult
 * Date: 08-04-2016
 * Time: 11:42 AM
 */
 
 foreach ([
 "USER" =>"postgres",
 "PASS" =>"123",
 "SCHEMA" =>"gestiondelcorredor",
 "DSN" =>"pgsql:port=5432;host=localhost;user=postgres;dbname=sitiotes_gdc",
 ] as $key => $value
 ) { define(strtoupper($key),$value); }
 
 require("Daniia.php");
 
 use Daniia\Daniia;
 
 function met_registrosJoin_Asg_Cli_Gen_Pol_Com_Rec_Gen($cedrif, $cirif, $fecha, $nombrecliente, $rif, $discriminante, $tipovencimiento, $idpoliza=null, $mylim=null, $myoffset=null) {
 
 $daniia = new Daniia();
 $daniia->from(function(Daniia $daniia){
 $daniia->table('ASEGURA');
 $daniia->select(
 'ASEGURA.cedrif'
 ,'NULL AS rif'
 ,'CLIENTENATURAL.cirif AS cirif'
 ,'CLIENTENATURAL.nombre AS nombre'
 ,'CLIENTENATURAL.apellido AS apellido'
 ,'ASEGURA.idpoliza AS idpoliza'
 ,'POLIZA.discriminante AS discriminante'
 ,'COMPANIA.razon AS razon'
 ,'GENERA.idrecibo AS idrecibo'
 ,"to_char(RECIBO.fvigini, 'DD/MM/YYYY') AS fvigini"
 ,"to_char(RECIBO.fvigfin, 'DD/MM/YYYY') AS fvigfin"
 ,"to_char(RECIBO.fvigcobro, 'DD/MM/YYYY') AS fvigcobro"
 ,'RECIBO.prima AS prima');
 $daniia->join('CLIENTENATURAL','ASEGURA.cirif','CLIENTENATURAL.cirif');
 $daniia->join('GENERA','ASEGURA.idpoliza','GENERA.idpoliza');
 $daniia->join('COMPANIA','GENERA.rif','COMPANIA.rif');
 $daniia->join('POLIZA','GENERA.idpoliza','POLIZA.idpoliza');
 $daniia->join('RECIBO','GENERA.idrecibo','RECIBO.idrecibo');
 $daniia->andWhere('RECIBO.nuevo');
 
 $daniia->union(function(Daniia $daniia) {
 $daniia->table('ASEGURA');
 $daniia->select(
 'ASEGURA.cedrif'
 ,'COMPANIA.rif'
 ,'CLIENTENONATURAL.cirif AS cirif'
 ,'CLIENTENONATURAL.razonsocial AS nombre'
 ,'NULL AS apellido'
 ,'ASEGURA.idpoliza AS idpoliza'
 ,'POLIZA.discriminante AS discriminante'
 ,'COMPANIA.razon AS razon'
 ,'GENERA.idrecibo AS idrecibo'
 ,"to_char(RECIBO.fvigini, 'DD/MM/YYYY') AS fvigini"
 ,"to_char(RECIBO.fvigfin, 'DD/MM/YYYY') AS fvigfin"
 ,"to_char(RECIBO.fvigcobro, 'DD/MM/YYYY') AS fvigcobro"
 ,'RECIBO.prima AS prima');
 $daniia->join('CLIENTENONATURAL','ASEGURA.cirif','CLIENTENONATURAL.cirif');
 $daniia->join('GENERA','ASEGURA.idpoliza','GENERA.idpoliza');
 $daniia->join('COMPANIA','GENERA.rif','COMPANIA.rif');
 $daniia->join('POLIZA','GENERA.idpoliza','POLIZA.idpoliza');
 $daniia->join('RECIBO','GENERA.idrecibo','RECIBO.idrecibo');
 $daniia->andWhere('RECIBO.nuevo');
 });
 });
 
 $daniia->where('cedrif',$cedrif);
 if ($cirif) $daniia->andWhere('cirif','ILIKE','%'.$cirif.'%');
 if ($nombrecliente) $daniia->andWhere(function(Daniia $daniia)use($nombrecliente) {
 $daniia->where('nombre','ILIKE',"%{$nombrecliente}%");
 $daniia->orWhere('apellido','ILIKE',"%{$nombrecliente}%");
 });
 if ($rif) $daniia->andWhere('rif',$rif);
 if ($discriminante) $daniia->andWhere('discriminante',$discriminante);
 if ($tipovencimiento == 1 && !$fecha) $daniia->andWhere('TRUE');
 if ($tipovencimiento == 2 && !$fecha) $daniia->andWhere('fvigfin < CURRENT_DATE');
 if ($tipovencimiento == 3 && !$fecha) $daniia->andWhere('fvigcobro IS NULL');
 if ($tipovencimiento == 1 &&  $fecha) $daniia->andWhere(function(Daniia $daniia)use($fecha){
 $daniia->where('Extract(month from fvigfin)',"Extract(month from to_date(".$daniia->quote($fecha).",'YYYY-MM-DD'))",false);
 $daniia->andWhere('Extract(year from fvigfin)',"Extract(year from to_date(".$daniia->quote($fecha).",'YYYY-MM-DD'))",false);
 });
 if ($tipovencimiento == 2 &&  $fecha) $daniia->andWhere(function(Daniia $daniia)use($fecha){
 $daniia->where('fvigfin < CURRENT_DATE');
 $daniia->andWhere('Extract(month from fvigfin)',"Extract(month from to_date(".$daniia->quote($fecha).",'YYYY-MM-DD'))",false);
 $daniia->andWhere('Extract(year from fvigfin)',"Extract(year from to_date(".$daniia->quote($fecha).",'YYYY-MM-DD'))",false);
 });
 if ($tipovencimiento == 3 &&  $fecha) $daniia->andWhere('fvigcobro IS NULL');
 if ($idpoliza) $daniia->andWhere('idpoliza',$idpoliza);
 if ($mylim!==null) $daniia->limit($mylim,$myoffset);
 
 $data  = $daniia->get();
 echo $daniia->last_sql.'<br><br>';
 //$error = $daniia->error();
 //echo utf8_decode($error[2]).'<br><br>';
 
 return $data;
 }
 
 
 $r = met_registrosJoin_Asg_Cli_Gen_Pol_Com_Rec_Gen(
 'v-11223344'
 ,$cirif=null
 ,$fecha=null
 ,$nombrecliente=null
 ,$rif=null
 ,$discriminante=null
 ,$tipovencimiento=null
 ,$idpoliza=null
 ,$mylim=null
 ,$myoffset=null
 );
 
 var_dump($r);
 |