PHP - como enviar archivos PDF a correos

 
Vista:

como enviar archivos PDF a correos

Publicado por zendi (117 intervenciones) el 04/04/2018 00:11:34
Que tal a todos, he creado un codigo para un reporte con PDF, el reporte imprime varios recibos para un control de condominio los cuales deben ser enviados a cada propietario. Pero no hallo la forma de como crear un proceso para que el proceso envie el recibo o factura respectiva a cada propietario respectivo y no todo el reporte a todos los propietarios. La idea seria discriminar por cada propietario.

Envio el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<?php
$conexion = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
require('WriteTag.php');
$recibos = "SELECT * FROM vrecibo3";
// $totEdifi = "SELECT vrecibo3.monto FROM vrecibo3";
$reserva = "SELECT SUM(vreserva.monto) AS totalreserva FROM vreserva";
class PDF extends PDF_WriteTag
{
//Cabecera de página
function Header()
{
     $this->SetFont('Arial','B',8);
     $this->Cell(90, 5, 'Residencias XXXXX', 0, 0, 'L');
     $this->Ln(6);
     $this->Cell(95, 5, 'Fecha: '.date('d/m/Y'), 0, 1, 'L');
//150 = Indica el margen derecho
//    ('./imagenes/logo.JPG',180=Margen derecho,5= Margen Izquierdo,30,25);
//    $this->Image('./img/edificio.JPG',180,5,30,25);
    //Select Arial bold 15
    $this->SetFont('Arial','B',15);
    $this->Ln(25);
    //Move to the right
    $this->Cell(80);
    //Framed title
    $this->Cell(30,10,'Recibo de Pago',0,0,'C');
    $this->SetFont('Arial','B',8);
//    $this->Cell(95, 5, 'Fecha: '.date('d/m/Y'), 0, 0, 'R');
    //Line break
    $this->Ln(8);
    $this->SetFont('Arial','B',8);
}
//Pie de página
function Footer()
{
    //Posición: a 1,5 cm del final
    $this->SetY(-12);
    //Arial italic 8
    $this->SetFont('Arial','I',8);
    //Número de página
    $this->Cell(0,10,'Pag '.$this->PageNo(),0,0,'C');
}
}//--Fin de la Clase
//Creación del objeto de la clase heredada
$pdf=new PDF('P','mm','Letter');
//$pdf->Ln(20);
/*$dia6 = '2013-09-30 00:00:00';
$dia5 = $dia6;
$dia4 = $dia5;
$dia3 = $dia4;
$dia2 = $dia3;
$dia1 = $dia2;
*/$nroapto = '';
$tdeuda = $tot = $total = $totalmonto = 0;
//////////////////
//if (time() >= strtotime($dia1)){
////    unlink("sumreg.php");
////    unlink("menu.html.php");
//    unlink("prueba.html");
//  }
/*alternar('2012-12-01 00:00:00');
*/
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
$seleccionados = @pg_query($conexion,$recibos);
while($select2 = @pg_fetch_array($seleccionados)){
            $nombres = $select2['nombres'];
            $apellidos = $select2['apellidos'];
		 	      $monto = $select2['monto'];
			      $alicuota  = $select2['alicuota'];
			      $descr = $select2['descripcion'];
            if ($select2['nroapto']!=$nroapto)
      			   {
                      	$pdf->Line($pdf->GetX(), $pdf->GetY(), 205, $pdf->GetY());
                  	    $pdf->Ln(3);
               	        $pdf->Cell(45,1,"Total Apartamento--->",0,0);
                  			$pdf->Cell(49,4,number_format($montot,2,',','.'),0,1,'C');
                              $calreser = $montot * .10;
                        $pdf->Cell(45,1,"Apartado Reserva 10%--->",0,0);
                        $pdf->Cell(49,4,number_format($calreser,2,',','.'),0,1,'C');
                              $totaldistr = $montot + $calreser;
                        $pdf->Cell(45,1,"Total a Distribuir--->",0,0);
                        $pdf->Cell(49,4,number_format($totaldistr,2,',','.'),0,1,'C');
                        $pdf->Cell(45,1,"Alicuota--->",0,0);
                        $pdf->Cell(29,4,number_format($TotAlicuota,2,',','.'),0,1,'R');
                              $TotalApto = 0;
                				$pdf->AddPage();
                              $pdf->SetFont('Arial','B',6);
                				// $pdf->Cell(20,4,'Cédula:');
                				// $pdf->Cell(26,4,$select2['cedula'],0,1,'R');
              	   			$pdf->Cell(20,4,'Nombres:',0);
                        $pdf->Cell(26,4,$nombres,0,1,'L');
              		  		$pdf->Cell(20,4,'Apellidos:',0);
                        $pdf->Cell(26,4,$apellidos,0,1,'L');
              			   	$pdf->Cell(20,4,'Nro Apto:',0);
                        $pdf->Cell(26,4,$select2['nroapto'],0,1,'L');
              			   	$pdf->Cell(20,4,'Alicuota:',0);
                        $pdf->Cell(26,4,$alicuota,0,1,'L');
        ///////rutina que permite sumar para obtener la deuda por Nro de Apartamento			  
         			          $deuda  = $select2['total'];
                    	  $deuda3 += $deuda;
        			  	      $pdf->Cell(20,4,'Deuda:',0);
            			      $pdf->Cell(26,4,number_format($deuda3,2,',','.'),0,1,'L');
           			        $deuda3 = 0;
        //////////totaliza por nro de Apartamento y del Edificio
                        $listbina = @pg_query($conexion,$totEdifi);
                           while($select3 = @pg_fetch_array($listbina)){
        				                 $TotalEdificio = $select3['totaledificio'];
                    	         //  $pdf->Cell(20,4,"Total Edificio:",0,0);
                               //  $pdf->Cell(40,4,number_format($TotalEdificio,2,',','.'),0,1,'C');
                                }
                                  $reserva1 = @pg_query($conexion,$reserva);
                                     while($select4 = @pg_fetch_array($reserva1)){
                                           $Totalreserva = $select4['totalreserva'];
                                           $pdf->Cell(20,4,"Reserva:",0,0);
                                           $pdf->Cell(40,4,number_format($Totalreserva,2,',','.'),0,1,'L');
                                     }
                     	  $pdf->Line($pdf->GetX(), $pdf->GetY(), 205, $pdf->GetY());
                  	    $pdf->Ln(6);
                        $pdf->Cell(45,4,'Gasto',0,'C');
                        $pdf->Cell(30,4,'Monto',0,1,'R');
                     	  $pdf->Line($pdf->GetX(), $pdf->GetY(), 205, $pdf->GetY());
                  	    $pdf->Ln(6);
                }
                     $monto = $select2['monto'];
                     //Calculo de la alicuota//////////////////////////////////////
                           if ($alicuota != 0.85 || $alicuota != 1.11){
      	       			           $TotAlicuota = $montot*$alicuota;
              	           }
                     $TotalEdificio  +=$monto;
					           $TotalApto +=$monto;
                     $montot = round($TotalApto/11);
  	  		           $nroapto = $select2['nroapto'];
                $pdf->SetFont('Arial','I',6);
                $pdf->Cell(45,4,$select2['descripcion'],0,0,'L');
			    	    // $pdf->Cell(40,4,number_format($TotAlicuota,2,',','.'),0,0,'R');
                $pdf->Cell(30,4,number_format($monto,2,',','.'),0,1,'R');
          	    $pdf->Ln(2);
}
               	$pdf->Line($pdf->GetX(), $pdf->GetY(), 205, $pdf->GetY());
          	    $pdf->Ln(3);
      	        $pdf->Cell(45,1,"Total Apartamento--->",0,0);
    		      	$pdf->Cell(49,4,number_format($montot,2,',','.'),0,1,'C');
                      $calreser = $montot * .10;
                $pdf->Cell(45,1,"Apartado Reserva 10%--->",0,0);
                $pdf->Cell(49,4,number_format($calreser,2,',','.'),0,1,'C');
                      $totaldistr = $montot + $calreser;
                $pdf->Cell(45,1,"Total a Distribuir--->",0,0);
                $pdf->Cell(49,4,number_format($totaldistr,2,',','.'),0,1,'C');
                $pdf->Cell(40,1,"Alicuota--->",0,0);
                $pdf->Cell(34,4,number_format($TotAlicuota,2,',','.'),0,1,'R');
/*       	        $pdf->Cell(45,1,"Total Edificio--->",0,0);
                $pdf->Cell(163,4,number_format($TotalEdificio,2,',','.'),0,1,'C');
			    $TotalEdificio = 0;
///////////////////////////////////////////////////////////////////////////////////////
*/
 
$pdf->Output();
$pdf->Close();
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de santi
Val: 588
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

como enviar archivos PDF a correos

Publicado por santi (204 intervenciones) el 05/04/2018 00:28:22
Hola,

la verdad que no me he leído el código del todo pero por lo que veo, ¿guardas el reporte en una base de datos?

Si es el caso podrías crear un campo en la tabla de "reportes" con el id o email del usuario y enviarlo el reporte a sus respectivos.. En el caso de que no exista tal campo claro..

Si no es eso me lo miro con más detenimiento ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

como enviar archivos PDF a correos

Publicado por zendi (1056 intervenciones) el 05/04/2018 22:54:39
Hola Gracias por tu atencion, la verdad no lo tengo en BBDD. Ahora mi pregunta como podria enviarlo a la base de datos?
Dame una idea, para ponerme a trabajar en ello.
El asunto es que el codigo debe enviar los recibos inmediatamente, creando el PDF y enviandolos rapidamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

como enviar archivos PDF a correos

Publicado por zendi (1056 intervenciones) el 10/04/2018 23:12:26
Bueno vere como hago con este problema. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar