<?php

require_once "conexion.php";

class ModeloFacturas{

	/*=============================================
	MOSTRAR FACTURAS
	=============================================*/

	static public function mdlMostrarFacturas($tabla,$tra_fp_aseguradora,$fechai,$fechaf,$orden){
			//$tra_fp_aseguradora = 2;
			$emp_codigo = 1;
			$filter = "";

			$filtrar = "";
            if($tra_fp_aseguradora == "" || $tra_fp_aseguradora <= 0){
                $filtrar = " and a.tra_fp_aseguradora > 0 ";
            }else{
                $filtrar = " and a.tra_fp_aseguradora = $tra_fp_aseguradora ";
            }
            $stmt = Conexion::conectar()->prepare("
            	select 
                    a.tra_fp_correlativo,
                    a.tra_fp_no_consulta,  
                    a.tra_fp_no_orden,  
                    a.tra_fp_forma_pago,  
                    CONCAT('Q', a.tra_fp_monto) as tra_fp_monto,
                    a.tra_fp_monto as monto_servicio,
                    CONCAT('Q', (select sum(ot.otra_precio) as monto from tra_orden_trabajo ot where 1=1 and ot.otra_no_consulta = a.tra_fp_no_consulta  and ot.otra_no_orden = a.tra_fp_no_orden and ot.otra_estado !='E')) as importe_total_orden,
                    CONCAT('Q', (select otm.otra_total_otros as monto_otro from tra_orden_trabajo otm where 1=1 and otm.otra_no_consulta = a.tra_fp_no_consulta  and otm.otra_no_orden = a.tra_fp_no_orden and otm.otra_estado !='E' GROUP BY otm.otra_no_consulta)) as importe_otros_cobros,
                    a.tra_fp_aseguradora,  
                    ase.ase_nombre as nombre_cliente,
                    a.tra_fp_tipo_cupon,  
                    a.tra_fp_fac_correlativo,
                    fac.tra_fac_serie as tra_fp_serie,
                    fac.tra_fac_no_referencia as tra_fp_no_referencia,
                    fac.tra_fac_autorizacion as tra_fp_autorizacion,
                    date_format(fac.tra_fac_fecha_emision, '%d/%m/%Y') as tra_fp_fecha_fac, 
                    fac.tra_fac_monto as fac_monto,
                    fac.tra_fac_no_referencia as tra_fp_factura,
                    d.cat_nombre as cat_estado_nombre,
                    cat.cat_nombre as forma_pago,
                    con.tra_cm_cli_correlativo as cli_cliente,
                    cli.cli_nombre as cli_nombre_paciente,
                    obj.ocf_param_valor as plan_cliente,
                    a.tra_fp_estado,  
                    concat(b.usr_nombres,' ',b.usr_apellidos) as usuarioi,  
                    concat(c.usr_nombres,' ',c.usr_apellidos) as usuariom,  
                    a.tra_fp_fechai,  
                    date_format(a.tra_fp_fechai, '%d/%m/%Y') as fecha_registro, 
                    a.tra_fp_fecham  
                    from $tabla a
                    left outer join cfg_catalogo d on(a.tra_fp_estado= d.cat_valor and d.cat_tipo = 'CLIENTE_ESTADO' and d.cat_empresa = 1)
                    left outer join cfg_catalogo cat on(a.tra_fp_forma_pago= cat.cat_valor and cat.cat_tipo = 'FORMAS_DE_PAGO' and cat.cat_empresa = 1)
                    left outer join cfg_usuario b on (b.usr_correl = a.tra_fp_usuarioi)
                    left outer join cfg_usuario c on (c.usr_correl = a.tra_fp_usuariom)
                    left outer join tra_consulta_medica con on (con.tra_cm_correlativo = a.tra_fp_no_consulta)
                    left outer join cfg_cliente cli on (cli.cli_correlativo = con.tra_cm_cli_correlativo)
                    left outer join cfg_objeto_config obj on (obj.ocf_correlativo = (select otra_plan from tra_orden_trabajo ot where ot.otra_no_consulta = a.tra_fp_no_consulta and ot.otra_no_orden = a.tra_fp_no_orden limit 1))
                    left outer join tra_factura fac on (fac.tra_fac_correlativo = a.tra_fp_fac_correlativo and fac.tra_fac_estado !='E')
                    left outer join cfg_aseguradora ase on (ase.ase_correlativo = a.tra_fp_aseguradora) 
                    where 
                    1=1
                    and a.tra_fp_estado = 'A'
                    $filtrar 
                    and DATE_FORMAT(tra_fp_fechai, '%Y-%m-%d') BETWEEN $fechai AND $fechaf ORDER BY DATE_FORMAT($orden, '%Y-%m-%d') ASC");
		
				//$stmt -> bindParam(":".$consulta, $consulta, PDO::PARAM_INT);
				$stmt -> bindParam(":".$fechai, $fechai, PDO::PARAM_STR);
				$stmt -> bindParam(":".$fechaf, $fechaf, PDO::PARAM_STR);
				$stmt -> execute();
				return $stmt -> fetchAll();

		

		$stmt -> close();

		$stmt = null;

	}

	/*=============================================
	MOSTRAR PACIENTES
	=============================================*/

	static public function mdlMostrarPaciente($tabla,$paciente){
		$stmt = Conexion::conectar()->prepare("SELECT * FROM $tabla WHERE 1=1 AND cli_correlativo = :$paciente");
			$stmt -> bindParam(":".$paciente, $paciente, PDO::PARAM_INT);
		$stmt -> execute();
		return $stmt -> fetchAll();
		$stmt -> close();
		$stmt = null;
	}

}