function agregarNotaCreditoReclamo($reclamo_id, $tipo, $numero, $fecha, $monto, $concepto, $rma, $pedido, $url) { LogController::logWebServiceIn('Llamada a web service: ' . __FILE__ . ' - ' . __FUNCTION__, compact('reclamo_id', 'tipo', 'numero', 'fecha', 'monto', 'concepto', 'rma', 'pedido', 'url')); try { $reclamo = Reclamo::find($reclamo_id); $nc = NotaCredito::create(['reclamo_id' => $reclamo_id, 'tipo' => $tipo, 'numero' => $numero, 'fecha' => $fecha, 'monto' => $monto, 'concepto' => $concepto, 'rma' => $rma, 'pedido' => $pedido]); if ($url) { $urlArray = explode('.', $url); $filename = APP_TMPPATH . "tmpdoc." . end($urlArray); $url_file = fopen($url, 'r'); if ($url_file) { file_put_contents($filename, $url_file); $descripcion = $tipo == 'nc' ? 'Nota de Crédito - ' . $numero : 'Nota de Débito - ' . $numero; (new \AttachmentCore())->addAttachmentToRequest($reclamo->ef_id, \FlowSettingsCore::get(FLOW_RECLAMOS, 'REC_ATT_ARCHIVO_NC'), $filename, APP_ENVPATH, 'admin', 'Nota de crédito / débito subida desde el módulo externo'); } } } catch (Exception $e) { LogController::logWebServiceIn('Error de webservice: ' . $e->getMessage()); return 'Error: ' . $e->getMessage(); } return ''; }
public function removeAccion($id_reclamo, $id_accion) { $reclamo = Reclamo::find($id_reclamo); $reclamo->reclamo_acciones()->detach($id_accion); return new AjaxResponse('success', ''); }
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); }