Correcciones en controladores de postulaciones y contratos

- Corregir método distance() a withinDistanceTo() para consultas espaciales
- Corregir parsing de fecha/hora con timezone America/Tijuana
- Comentar código de WhatsApp no configurado

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-27 04:08:12 +00:00
parent 09a37c08a3
commit f571caa204
3 changed files with 84 additions and 74 deletions

View File

@@ -110,7 +110,7 @@ class PostulationController extends Controller
$category = Categories::where('name', strip_tags($request->category))->orwhere('en_name', strip_tags($request->category))->first();
$distance = 0.5;
$suppliers = Suppliers::distance('location', $geometry, $distance)->get();
$suppliers = Suppliers::withinDistanceTo('location', $geometry, $distance)->get();
if ($suppliers != '[]') {
@@ -121,8 +121,10 @@ class PostulationController extends Controller
$postulation->location = $geometry;
$postulation->int_number = $request->int_number;
$postulation->references = preg_replace('/\d+/', '', strip_tags($request->references));
$timeoffset = str_replace("0", "", substr(substr(strip_tags($request->sethour), 23), 0, 3));
$postulation->appointment = Carbon::createFromFormat('Y-m-d H:i:s', (substr(strip_tags($request->setdate), 0, 10) . ' ' . substr(substr(strip_tags($request->sethour), 11), 0, 8)), $timeoffset)->tz('UTC');
// Parsear fecha y hora del formato ISO que envía el frontend
$dateStr = substr(strip_tags($request->setdate), 0, 10); // "2026-01-28"
$timeStr = substr(strip_tags($request->sethour), 11, 8); // "19:47:00"
$postulation->appointment = Carbon::createFromFormat('Y-m-d H:i:s', $dateStr . ' ' . $timeStr, 'America/Tijuana')->tz('UTC');
$postulation->amount = 5000;
$postulation->details = preg_replace('/\d+/', '', strip_tags($request->details));
$postulation->save();
@@ -141,7 +143,7 @@ class PostulationController extends Controller
foreach ($suppliers as $supplier) {
if (in_array($category->id, $supplier->categories->pluck('id')->toArray())) {
/*OneSignal::sendNotificationUsingTags(
OneSignal::sendNotificationUsingTags(
"Dirígete a la sección de postulaciones en la app para ver más detalles",
array(
["field" => "tag", "key" => "iChamba_ID", "relation" => "=", "value" => $supplier->user_id]
@@ -151,14 +153,15 @@ class PostulationController extends Controller
$buttons = null,
$schedule = null,
$headings = "Proveedor: hay nueva postulación"
);*/
);
Whatsapp::send($supplier->user->phone, Messages\TemplateMessage::create()
->name('suppplier_new_postulation')
->language('es_US')
->body(Messages\Components\Body::create([
Messages\Components\Parameters\Text::create('Proveedor hay nueva postulación: dirígete a la sección de postulaciones en JobHero para ver más detalles'),
])));
// TODO: Configurar WhatsApp cuando esté disponible
// Whatsapp::send($supplier->user->phone, Messages\TemplateMessage::create()
// ->name('suppplier_new_postulation')
// ->language('es_US')
// ->body(Messages\Components\Body::create([
// Messages\Components\Parameters\Text::create('Proveedor hay nueva postulación: dirígete a la sección de postulaciones en JobHero para ver más detalles'),
// ])));
}
}
@@ -178,7 +181,7 @@ class PostulationController extends Controller
$delay_UTC = Carbon::now()->addMinutes(15)->toString();
/*OneSignal::sendNotificationUsingTags(
OneSignal::sendNotificationUsingTags(
"Dirígete a la sección de contratos en la app para ver más detalles",
array(
["field" => "tag", "key" => "iChamba_ID", "relation" => "=", "value" => $user->id]
@@ -188,7 +191,7 @@ class PostulationController extends Controller
$buttons = null,
$schedule = $delay_UTC,
$headings = "Búsqueda Finalizada"
);*/
);
return response()->json([
'message' => 'Servicio solicitado, espere a que un proveedor se postule'
@@ -227,7 +230,7 @@ class PostulationController extends Controller
if ($time_limit > 0) {
if (in_array($postulation->category_id, $supplier->categories->pluck('id')->toArray())) {
/*if($supplier->membership == 1) {
if($supplier->membership == 1) {
OneSignal::sendNotificationUsingTags(
"Dirígete a la sección de contratos en la app para ver más detalles",
array(
@@ -239,13 +242,14 @@ class PostulationController extends Controller
$schedule = null,
$headings = "Un proveedor certificado se ha postulado"
);
}*/
Whatsapp::send($postulation->user->phone, Messages\TemplateMessage::create()
->name('suppplier_postulated')
->language('es_US')
->body(Messages\Components\Body::create([
Messages\Components\Parameters\Text::create('Un proveedor certificado se ha postulado: dirígete a la sección de contratos en JobHero para ver más detalles'),
])));
}
// TODO: Configurar WhatsApp cuando esté disponible
// Whatsapp::send($postulation->user->phone, Messages\TemplateMessage::create()
// ->name('suppplier_postulated')
// ->language('es_US')
// ->body(Messages\Components\Body::create([
// Messages\Components\Parameters\Text::create('Un proveedor certificado se ha postulado: dirígete a la sección de contratos en JobHero para ver más detalles'),
// ])));
$supplier->postulations()->attach($request->postulation_id);
$supplier->save();