122 lines
5.9 KiB
PHP
122 lines
5.9 KiB
PHP
<?php
|
|
|
|
namespace App\Mail;
|
|
|
|
use const App\Http\Controllers\DOMESTICO;
|
|
use App\Models\ServicioDet;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Bus\Queueable;
|
|
use Illuminate\Mail\Mailable;
|
|
use Illuminate\Queue\SerializesModels;
|
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
use DB;
|
|
|
|
class SolicitudServicio extends Mailable
|
|
{
|
|
use Queueable, SerializesModels;
|
|
|
|
/**
|
|
* Create a new message instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct($servicio_det_id)
|
|
{
|
|
$this->servicio_det_id = $servicio_det_id;
|
|
}
|
|
|
|
/**
|
|
* Build the message.
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function build()
|
|
{
|
|
$campos = [
|
|
'fecha_solicitud',
|
|
'nombre_responsable_sucursal as responsable',
|
|
'calle',
|
|
'num_ext',
|
|
'num_int',
|
|
'colonia',
|
|
'ciudad',
|
|
'cp',
|
|
'servicio_enc_id',
|
|
'cat_servicios.nombre as servicio_nombre',
|
|
'cat_tipos_servicios.id as tipo_servicio',
|
|
DB::raw("CONCAT(asesor.nombre,' ',asesor.apellido_paterno,' ',asesor.apellido_materno) as asesor_nombre"),
|
|
'asesor.telefono as asesor_telefono',
|
|
'cat_tipos_vehiculos.nombre as tipo_vehiculo',
|
|
'cat_vehiculos.num_economico as vehiculo_num_economico',
|
|
DB::raw("CONCAT(atencion_cliente.nombre,' ',atencion_cliente.apellido_paterno,' ',atencion_cliente.apellido_materno) as atencion_cliente_nombre")
|
|
];
|
|
|
|
$solicitud = ServicioDet::select($campos)
|
|
->join('servicios_enc', 'servicios_det.servicio_enc_id', '=', 'servicios_enc.id')
|
|
->join('clientes_domicilios', 'servicios_enc.cliente_domicilio_id', '=', 'clientes_domicilios.id')
|
|
->join('cat_servicios', 'servicios_det.servicio_id', '=', 'cat_servicios.id')
|
|
->join('users as asesor', 'servicios_det.operador_id', '=', 'asesor.id')
|
|
->join('users as atencion_cliente', 'servicios_enc.usuario_agenda_id', '=', 'atencion_cliente.id')
|
|
->join('cat_vehiculos', 'servicios_det.vehiculo_id', '=', 'cat_vehiculos.id')
|
|
->join('cat_tipos_vehiculos', 'cat_vehiculos.tipo_vehiculo_id', '=', 'cat_tipos_vehiculos.id')
|
|
->join('cat_tipos_servicios', 'servicios_det.tipo_servicio_id', '=', 'cat_tipos_servicios.id')
|
|
->where('servicios_det.id', $this->servicio_det_id)
|
|
->first();
|
|
|
|
$solicitud->domicilio = $solicitud->calle.' Int. '.$solicitud->num_int.(($solicitud->num_ext)? ' Ext. '.$solicitud->num_ext : '').', '.$solicitud->colonia.', '.$solicitud->ciudad;
|
|
|
|
$dias = array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sábado");
|
|
$meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
|
|
|
|
list($f, $h) = explode(" ", $solicitud->fecha_solicitud);
|
|
list($y,$m,$d) = explode("-", $f);
|
|
|
|
$date = Carbon::createFromDate($y,$m,$d, null);
|
|
|
|
$solicitud->fecha_solicitud = $dias[$date->format('w')]." ".$date->format('d')." de ".$meses[$date->format('n')-1]. " del ".$date->format('Y')." a las $h hrs";
|
|
$solicitud->asesor_telefono = $this->phone_number_format($solicitud->asesor_telefono);
|
|
|
|
if($solicitud->tipo_servicio == DOMESTICO){
|
|
$solicitud->mensaje = array(
|
|
"- Será necesario entrar al domicilio y revisar las instalaciones antes y durante la operación del servicio.",
|
|
"- Evitar estar cerca de los registros durante la operación del servicio, ya que esto puede provocar un accidente.",
|
|
"- Si cuenta con mascotas, evitar que estén cerca de la operación.",
|
|
"- Evitar cruzar por pisos mojados, caminar por encima de la manguera y cruzar por registros.",
|
|
"- No se realizará ningún servicio sin la supervisión de un adulto.",
|
|
"- Se entregará un recibo de servicio por cada servicio que realicemos, mismo que será firmado con nombre y firma por supervisor.",
|
|
"- Si el servicio es negativo se cobrará un costo por visita de $350.00.",
|
|
"- El tiempo de maniobra de un servicio negativo es de hasta 30 minutos (De autorizar más tiempo de maniobra por parte del cliente, el costo se genera por hora de servicio).",
|
|
"- Los costos de los servicios se confirmarán antes de iniciar la operación del servicio."
|
|
);
|
|
}else{
|
|
$solicitud->mensaje = array(
|
|
"- Todos los servicios que realizamos deberán ser supervisados por las áreas correspondientes de la empresa y ésta misma persona tenga el conocimiento de los servicios a realizar.",
|
|
"- Evitar estar cerca de los registros durante la operación del servicio, ya que esto puede provocar un accidente.",
|
|
"- Evitar cruzar por pisos mojados, caminar por encima de la manguera y cruzar por registros.",
|
|
"- Se entregará un recibo de servicio por cada servicio que realicemos, mismo que será firmado con nombre y firma por supervisor.",
|
|
"- Si el servicio es negativo se cobrará un costo por visita de $350.00.",
|
|
"- El tiempo de maniobra de un servicio negativo es de hasta 30 minutos (De autorizar más tiempo de maniobra por parte del cliente, el costo se genera por hora de servicio).",
|
|
"- Los costos de los servicios se confirmaran antes de iniciar la operación del servicio."
|
|
);
|
|
};
|
|
|
|
return $this->view('email.emailSolicitudServicio', compact('solicitud'))->subject('Servicio agendado.');
|
|
}
|
|
|
|
function phone_number_format($number) {
|
|
// Allow only Digits, remove all other characters.
|
|
$number = preg_replace("/[^\d]/","",$number);
|
|
|
|
// get number length.
|
|
$length = strlen($number);
|
|
|
|
// if number = 10
|
|
if($length == 10) {
|
|
$number = preg_replace("/^1?(\d{3})(\d{3})(\d{4})$/", "($1) $2 $3", $number);
|
|
}
|
|
|
|
return $number;
|
|
|
|
}
|
|
}
|