<?php 
//incluir la conexion de base de datos
require "../config/Conexion.php";


class Mensaje{


	//implementamos nuestro constructor
public function __construct(){

}


public function listarclientedeuda(){
	$sql="SELECT 
    p.idvendedor,
    ve.nombre AS vendedor,
    v.idventa,
    p.idpersona,
    p.nombre AS cliente,
    COUNT(v.num_comprobante1) AS nrocxc,
    DATE_FORMAT(v.fecha_hora, '%d-%m-%Y') AS fechafaturacion,
    REPLACE(REPLACE(REPLACE(FORMAT(SUM(v.total_ventaimpuestod - v.montocxc - v.montodev), 2), '.', ';'), ',', '.'), ';', ',') AS monto,
    REPLACE(REPLACE(REPLACE(FORMAT(
        SUM(
            CASE 
                WHEN v.estado = 'Pagada' THEN (v.total_ventaimpuestod - v.montocxc - v.montodev)
                WHEN v.estado = 'Pendiente' THEN 0
                ELSE (v.total_ventaimpuestod - v.montocxc - v.montodev) - (v.montopendiente / v.tasa_dollar)
            END
        ), 2
    ), '.', ';'), ',', '.'), ';', ',') AS cobrado,
    REPLACE(REPLACE(REPLACE(FORMAT(
        SUM(
            CASE 
                WHEN v.estado = 'Pagada' THEN 0
                WHEN v.estado = 'Pendiente' THEN (v.total_ventaimpuestod - v.montocxc - v.montodev)
                ELSE v.montopendiente / v.tasa_dollar
            END
        ), 2
    ), '.', ';'), ',', '.'), ';', ',') AS saldo,
    DATEDIFF(
					DATE_ADD(IF(v.fechadespacho = '0000-00-00', v.fecha_hora, v.fechadespacho), INTERVAL v.nrodias DAY),
					CURDATE()
				) AS diascalle,
    GROUP_CONCAT(v.num_comprobante1 ORDER BY v.num_comprobante1 ASC SEPARATOR '- ') AS comprobantes,
    v.estado,
    cf.personacontacto,
    cf.personacontactotelefono,
    CONCAT(
        'Estimado cliente, somos Tierra Origen. ', 
        'Le escribimos para recordarle que tiene una deuda vencida de: ',
        REPLACE(REPLACE(REPLACE(FORMAT(
            SUM(
                CASE 
                    WHEN v.estado = 'Pagada' THEN 0
                    WHEN v.estado = 'Pendiente' THEN (v.total_ventaimpuestod - v.montocxc - v.montodev)
                    ELSE v.montopendiente / v.tasa_dollar
                END
            ), 2
        ), '.', ';'), ',', '.'), ';', ','),
        ' $, correspondiente a los documentos: ',
        GROUP_CONCAT(IF(v.tipo_comprobante='Factura',v.num_comprobante,v.num_comprobante1) ORDER BY v.num_comprobante1 ASC SEPARATOR '- ')
    )    
    AS mensaje,
    IFNULL(me.numeromensaje,0) AS numerodemensaje,
    IF(me.ultimafecha IS null,'',DATE_FORMAT(me.ultimafecha, '%d-%m-%Y')) AS ultimafechamensaje
FROM 
    venta v 
INNER JOIN 
    persona p ON p.idpersona = v.idcliente 
LEFT JOIN 
    vendedor ve ON ve.idvendedor = p.idvendedor
LEFT JOIN 
    clientedatosfinanciero cf ON cf.idpersona = p.idpersona
LEFT JOIN 
	(SELECT 
        m.idcliente, 
        COUNT(m.idmensaje) AS numeromensaje, 
        MAX(m.fecha) AS ultimafecha
    FROM 
        mensajesenviados m
    WHERE 
        m.tipomensaje = 'DeudaPendiente'
    GROUP BY 
        m.idcliente) me ON me.idcliente = p.idpersona
WHERE 
    v.estado IN ('Pendiente', 'Parcial') 
    AND v.tipo_comprobante <> 'Regalo' 
    AND v.estado <> 'Anulado'
    AND DATEDIFF(
					DATE_ADD(IF(v.fechadespacho = '0000-00-00', v.fecha_hora, v.fechadespacho), INTERVAL v.nrodias DAY),
					CURDATE()
				) <= 0
GROUP BY 
    p.idpersona";
	
	return ejecutarConsulta($sql);
}



}

 ?>
