function crearSolicitudTarea($tipo, $id, $fecha_inicio, $fecha_fin, $titulo, $descripcion, $encargado, $prioridad, $proyeccion, $url) { LogController::logWebServiceIn('Llamada a web service: ' . __FILE__ . ' - ' . __FUNCTION__, compact('tipo', 'id', 'fecha_inicio', 'fecha_fin', 'titulo', 'descripcion', 'encargado', 'prioridad', 'proyeccion', 'url')); $returnMessage = ""; $handlerAttachmentCore = new AttachmentCore(); $handlerRequestCore = new RequestCore(); $handlerUserCore = new UserCore(); $handlerFlowSettingsCore = new FlowSettingsCore(); // Tomar datos de aprobador $flow = Flow::find(FLOW_TAREAS); $creador = User::find($encargado); if ($creador) { $jefe = User::find($creador->user_reports_to); if (!$jefe) { $jefe = User::find($flow->flow_administrator); } // Crear solicitud $request_flow = $flow->flow_id; $request_id = $handlerRequestCore->getLastGeneralRequestId() + 1; $inner_request_id = $handlerRequestCore->getLastGeneralRequestId($request_flow) + 1; $request_name = "Aprobación: " . $titulo; $request_description = "Aprobación de tarea: " . $descripcion; $request_createdby = $creador->user_id; $request_assignedto = $jefe->user_id; $handlerRequestCore->createNewRequest($request_id, $inner_request_id, $request_flow, $request_name, $request_description, $request_createdby, $request_assignedto); Tarea::create(["ef_id" => $request_id, "ext_id" => $id, "tipo" => $tipo, "titulo" => $titulo, "descripcion" => $descripcion, "encargado" => $request_createdby, "aprobador_1" => $request_assignedto, "aprobador_2" => "", "fecha_inicio" => $fecha_inicio, "fecha_fin" => $fecha_fin, "prioridad" => $prioridad, "proyeccion" => $proyeccion]); RequestMetadataCore::set($request_id, "APR-DOBLE-APROBACION", "No"); RequestMetadataCore::set($request_id, "APR-APROBADO", "No"); RequestMetadataCore::set($request_id, "APR-COMENTARIO", ""); //Tomar archivo de campo url y adjuntar if ($url != '') { $tmpFileName = basename($url); file_put_contents($tmpFileName, fopen($url, 'r')); $filetype = FlowSettingsCore::get($request_flow, "APR_FILE_ADJUNTO"); $handlerAttachmentCore->addAttachmentToRequest($request_id, $filetype, dirname(__FILE__) . "/" . $tmpFileName, $_SESSION["environment_path"], "admin", "Adjunto de tarea"); } } else { $returnMessage = "ERROR: Usuario " . $encargado . " no existe en BPM. Imposible continuar"; } return $returnMessage; }
public function seleccionarCotizacionAjax() { $input = Request::createFromGlobals(); // Poner la seleccionada en estado 'Recibido' $seleccionada = Cotizacion::with('lineas')->whereIdOrdencompra($input->id_ordencompra)->whereEstado('S')->first(); if ($seleccionada) { if ($seleccionada->id != $input->id) { $seleccionada->estado = 'R'; $seleccionada->save(); } } // Seleccionar la línea nueva $cotizacion = Cotizacion::with('ordencompra.clase', 'lineas')->find($input->id); $cotizacion->estado = $cotizacion->estado == 'R' ? 'S' : 'R'; $cotizacion->save(); // Seleccionar aprobador $valor = $cotizacion->lineas->max('valor_con_descuento'); // Colocar primer aprobador como default $reglas_aprobacion = explode(',', $cotizacion->ordencompra->clase->aprobador_ordencompra); $aprobador_array = explode('|', $reglas_aprobacion[0]); $aprobador = $aprobador_array[1]; foreach ($reglas_aprobacion as $regla_aprobacion) { $regla_array = explode('|', $regla_aprobacion); if ($valor > $regla_array[0]) { $aprobador = $regla_array[1]; } } // Setear metadato RequestMetadataCore::set($input->ef_id, 'ADQ-APROBADOR-ORDENCOMPRA', $aprobador); }
/** * Actualiza los datos de la requisición * @return type */ public function actualizarRequisicion() { $input = Request::createFromGlobals(); $aprobado = 'No'; foreach ($input->lineas as $linea) { RequisicionLinea::find($linea['id'])->update(['cantidad' => $linea['cantidad'], 'observacion_aprobador' => $linea['observacion_aprobador'], 'estado' => $linea['estado']]); if ($linea['estado'] == 'A') { $aprobado = 'Si'; } } \RequestMetadataCore::set($input->ef_id, "ADQ-REQ-APROBADA", $aprobado); }
public function updateReclamo() { $input = Request::createFromGlobals(); $flow = Flow::find(FLOW_RECLAMOS); $reclamo = Reclamo::find($input->id); $reclamo->update(['reclamo_clase' => $input->reclamo_clase, 'reclamo_region' => $input->reclamo_region, 'reclamo_descripcion' => $input->reclamo_descripcion, 'contacto_nombre' => $input->contacto_nombre, 'contacto_telefono' => $input->contacto_telefono, 'contacto_email' => $input->contacto_email, 'visita_requiere' => $input->visita_requiere, 'visita_descripcion' => $input->visita_descripcion, 'visita_responsable' => $input->visita_responsable, 'visita_fecha' => $input->visita_fecha, 'analisis_descripcion' => $input->analisis_descripcion, 'analisis_responsable' => $input->analisis_responsable, 'analisis_fecha' => $input->analisis_fecha, 'decision_decision' => $input->decision_decision, 'decision_monto' => $input->decision_monto, 'decision_descripcion' => $input->decision_descripcion, 'decision_responsable' => $input->decision_responsable, 'decision_fecha' => $input->decision_fecha, 'nc_descripcion' => $input->nc_descripcion, 'nc_responsable' => $input->nc_responsable, 'nc_fecha' => $input->nc_fecha]); // Actualizar cantidad y lote de líneas foreach ($input->lineas as $linea) { ReclamoDetalle::find($linea['id'])->update(['cantidad_reclamo' => $linea['cantidad_reclamo'], 'lote_reclamo' => $linea['lote_reclamo']]); } // Traer usuario responsable $responsable_id = $flow->flow_administrator; $rules = json_decode(\FlowSettingsCore::get(FLOW_RECLAMOS, "REC_PRO_REGLAS_RESPONSABLE")); foreach ($rules as $clase) { if ($clase->clase == $reclamo->reclamo_clase) { foreach ($clase->responsables as $responsable) { if ($responsable->region == $reclamo->reclamo_region) { $responsable_id = $responsable->responsable; break; } } } } // Traer usuario aprobador $aprobador_id = $flow->flow_administrator; $monto = !empty($reclamo->decision_monto) ? $reclamo->decision_monto : 0; $rules = json_decode(\FlowSettingsCore::get(FLOW_RECLAMOS, "REC_PRO_REGLAS_MONTOS")); foreach ($rules as $clase) { if ($clase->clase == $reclamo->reclamo_clase) { foreach ($clase->regiones as $region) { if ($region->region == $reclamo->reclamo_region) { foreach ($region->aprobadores as $aprobador) { if ($monto >= $aprobador->monto) { $aprobador_id = $aprobador->aprobador; } } } } } } \RequestMetadataCore::set($reclamo->ef_id, "REC-USUARIO-SEGUIMIENTO", $responsable_id); \RequestMetadataCore::set($reclamo->ef_id, "REC-USUARIO-APROBACION", $aprobador_id); }