Exemplo n.º 1
0
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);
 }
Exemplo n.º 4
0
 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);
 }