Actualizacion general

parent e3fdf377
<p>Estimado {{nombre_usuario}}, ya han pasado {{dias}} desde que inicio el cambio con el producto xxx de nutrapharm.</p>
<br>
<p>Tomese una nueva foto y comparta sus cambios haciendo click <a href="{{url_sitio}}{{seccion}}?idp={{id_usuario}}" target="_blank">aquí</a></p>
{% if app.session.flashbag.has('success') %}
<div class="alert alert-success">
<span class="close" data-dismiss="alert">×</span>
{% for flashMessage in app.session.flashbag.get('success') %}
{{ flashMessage }}<br>
{% endfor %}
</div>
{% endif %}
{% if app.session.flashbag.has('error') %}
<div class="alert alert-danger">
<span class="close" data-dismiss="alert">×</span>
{% for flashMessage in app.session.flashbag.get('error') %}
{{ flashMessage }}<br>
{% endfor %}
</div>
{% endif %}
{% if app.session.flashbag.has('info') %}
<div class="alert alert-info">
<span class="close" data-dismiss="alert">×</span>
{% for flashMessage in app.session.flashbag.get('info') %}
{{ flashMessage }}<br>
{% endfor %}
</div>
{% endif %}
{% if app.session.flashbag.has('warning') %}
<div class="alert alert-warning">
<span class="close" data-dismiss="alert">×</span>
{% for flashMessage in app.session.flashbag.get('warning') %}
{{ flashMessage }}<br>
{% endfor %}
</div>
{% endif %}
\ No newline at end of file
{% extends 'base.html.twig' %}
{% block head %}
<meta property="fb:app_id" content="{{facebookAppId}}" />
<meta property="og:url" content="{{urlSitio}}{{seccionComparacion}}?idp={{idp}}" />
<meta property="og:type" content="website" />
<meta property="og:title" content="NutraPharm - Comparación Foto" />
<meta property="og:description" content="{{comentarioFinal}}" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image" content="{{urlSitio}}uploads/users/{{idp}}_comparacion.png"/>
{% endblock %}
{% block body %}
<div class="row">
<div class="col-lg-12">
<div class="panel-body">
<label>Foto Comparación</label>
<img src="{{urlSitio}}nutrapharm/get/photo?file_name={{idp}}_comparacion.{{extComparacion}}" />
<div class="form-group">
<span>{{comentarioFinal}}</span>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="panel-body">
<button class="btn" onclick="iniciarProceso(event)">Registra tu cambio</button>
</div>
</div>
</div>
{% endblock %}
{% block javascripts %}
<script>
var urlSitio = "{{url_sitio}}";
var seccionInicial = "{{seccionInicial}}";
function iniciarProces(event) {
event.preventDefault();
window.location.assign(urlSitio + seccionInicial);
}
</script>
{% endblock %}
\ No newline at end of file
{% extends 'base.html.twig' %}
{% block head %}
<meta property="fb:app_id" content="{{facebookAppId}}" />
<meta property="og:url" content="{{urlSitio}}{{seccionError}}" />
<meta property="og:type" content="website" />
<meta property="og:title" content="NutraPharm - Error" />
<meta property="og:description" content="Ha ocurrido un error en la solicitud" />
{% endblock %}
{% block body %}
<div class="row">
{{ include('producto/includes/alert.messages.html.twig') }}
</div>
{%endblock%}
{% block javascripts %}
{%endblock%}
<?php
namespace AppBundle\Lib;
/**
* Clase para calcular Tiempos transcurridos.
*
* @author Luis Arcos
*/
class TiempoTranscurrido {
private $inicio;
public function __construct() {
$this->inicio = microtime(true);
}
/**
*
* @return Tiempo en Segundos
*/
public function getTiempoTranscurrido() {
return round(microtime(true) - $this->inicio, 4);
}
}
<?php
namespace NutrapharmBundle\Command;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use AppBundle\Lib\Utiles;
use AppBundle\Lib\TiempoTranscurrido;
use AppBundle\Model\UsuarioNutrapharm;
use AppBundle\Model\UsuarioNutrapharmQuery;
use AppBundle\Model\EnvioCorreoUsuario;
use AppBundle\Model\EnvioCorreoUsuarioQuery;
class EnviarLinkCommand extends ContainerAwareCommand {
const ENVIO_NO_APLICA = 0;
const ENVIO_NUEVO = 1;
const ENVIO_ACTUALIZAR = 2;
protected function configure() {
$this
->setName('enviar-link')
->setDescription('command que envia correo a los usuarios en los cuales haya transcurrido 30 dias')
;
}
protected function execute(InputInterface $input, OutputInterface $output) {
$log = Utiles::setLog('EnviarLinkCommand:enviar-link', 'command/enviar-link');
$log->debug('**************************INICIO***************************************');
$tt = new TiempoTranscurrido();
$diasComparacion = Utiles::getParametroConfiguracion("dias_comparacion");
$fechaActual = new \DateTime();
$dataMail = [];
$log->debug("=======Fecha Actual : " . $fechaActual->format("Y-m-d H:i:s"));
$log->debug("=======Dias a considerar : " . $diasComparacion);
$email_soporte = Utiles::getParametroConfiguracion("mail_soporte");
$usuarios = UsuarioNutrapharmQuery::create()->filterByUnuEliminado(UsuarioNutrapharm::ELIMINADO_FALSE)->filterByUnuEstado(UsuarioNutrapharm::ESTADO_FOTO_FINAL)->find();
foreach ($usuarios as $index => $usuario):
$enviarCorreo = $this->chequearFechaEnviarCorreo($fechaActual, $usuario->getCreatedAt(), $usuario->getUnuId());
if ($enviarCorreo == self::ENVIO_NUEVO):
$log->debug("enviando correo a ".$usuario->getUnuCorreo());
$correo = \Swift_Message::newInstance()
->setSubject(str_replace("#USUARIO", $usuario->getUnuNombre(), Utiles::getParametroConfiguracion("subject_mail_producto")))
->setFrom($email_soporte)
->setTo($usuario->getUnuCorreo());
$dataMail["dias"] = $diasComparacion;
$dataMail["nombre_usuario"] = $usuario->getUnuNombre();
$dataMail["id_usuario"] = $usuario->getUnuIdNutrapharm();
$dataMail["url_sitio"] = Utiles::getParametroConfiguracion("url_sitio");
$dataMail["seccion"] = Utiles::getParametroConfiguracion("seccion_formulario_comparacion");
$correo->setBody(
$this->getContainer()->get('templating')->render(
'email/aviso-mail-comparacion.html.twig', $dataMail
), 'text/html');
if ($this->getContainer()->get('mailer')->send($correo)){
$log->info('mensaje enviado correctamente a :' . $usuario->getUnuCorreo());
$traza = new EnvioCorreoUsuario();
$traza->setUsuarioNutrapharm($usuario);
$traza->setEcuEstado(EnvioCorreoUsuario::ESTADO_ENVIADO);
$traza->save();
$log->debug("se creo una traza de envio correo asociada a :". $usuario->getUnuId());
}else{
$log->info('no se pudo enviar mensaje a:' . $usuario->getUnuCorreo());
$traza = new EnvioCorreoUsuario();
$traza->setUsuarioNutrapharm($usuario);
$traza->setEcuEstado(EnvioCorreoUsuario::ESTADO_PENDIENTE);
$traza->save();
}
endif;
if($enviarCorreo == self::ENVIO_ACTUALIZAR):
$log->debug("re-intentando envio correo a ".$usuario->getUnuCorreo());
$correo = \Swift_Message::newInstance()
->setSubject(str_replace("#USUARIO", $usuario->getUnuNombre(), Utiles::getParametroConfiguracion("subject_mail_producto")))
->setFrom($email_soporte)
->setTo($usuario->getUnuCorreo());
$dataMail["dias"] = $diasComparacion;
$dataMail["nombre_usuario"] = $usuario->getUnuNombre();
$dataMail["id_usuario"] = $usuario->getUnuIdNutrapharm();
$dataMail["url_sitio"] = Utiles::getParametroConfiguracion("url_sitio");
$dataMail["seccion"] = Utiles::getParametroConfiguracion("seccion_formulario_comparacion");
$correo->setBody(
$this->getContainer()->get('templating')->render(
'email/aviso-mail-comparacion.html.twig', $dataMail
), 'text/html');
if ($this->getContainer()->get('mailer')->send($correo)){
$log->info('mensaje re-enviado correctamente a :' . $usuario->getUnuCorreo());
$traza = EnvioCorreoUsuario::obtenerTraza($usuario->getUnuId());
$traza->setEcuEstado(EnvioCorreoUsuario::ESTADO_ENVIADO);
$traza->save();
$log->debug("se actualizao la traza de envio correo asociada a :". $usuario->getUnuId());
}else{
$log->info('no se pudo re-enviar mensaje a:' . $usuario->getUnuCorreo().", se mantiene en estado pendiente...");
}
endif;
endforeach;
$output->writeln('Command ejecutado.');
$log->debug(' ');
$log->debug('*****************Fin | TIEMPO: ' . $tt->getTiempoTranscurrido() . ' Seg. ******************');
}
private function chequearFechaEnviarCorreo($fechaActual, $fechaUsuario, $id) {
$diferencia = $fechaUsuario->diff($fechaActual);
if ($diferencia->m >= 1) {
$poseeTraza = EnvioCorreoUsuarioQuery::poseeTrazaEnvio($id);
if ($poseeTraza == 1) {
$traza = EnvioCorreoUsuario::obtenerTraza($id);
if ($traza->getEcuEstado() == EnvioCorreoUsuario::ESTADO_PENDIENTE) {
return self::ENVIO_ACTUALIZAR;
} else if ($traza->getEcuEstado() == EnvioCorreoUsuario::ESTADO_ENVIADO) {
return self::ENVIO_NO_APLICA;
}
} else {
return self::ENVIO_NUEVO;
}
}
return self::ENVIO_NO_APLICA;
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment