/** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function destroy($id) { $record = ReclamoDetalle::find($id)->delete(); return new AjaxResponse('success', ''); }
public function insertReclamo() { $input = Request::createFromGlobals(); $handlerRequestCore = new \RequestCore(); $handlerAttachmentCore = new \AttachmentCore(); $clase = Clase::find($input->reclamo['clase']); // Asignar creador $creador = $asignado_a = FlowSettingsCore::get(FLOW_RECLAMOS, "REC_PRO_USUARIO_VL"); if (FlowSettingsCore::get(FLOW_RECLAMOS, "REC_PRO_REGION_EXT") == $input->reclamo['region']) { $creador = $asignado_a = FlowSettingsCore::get(FLOW_RECLAMOS, "REC_PRO_USUARIO_EXP"); } $extemporaneo = false; $customStep = ""; foreach ($input->facturas as $factura) { if ($factura['infoFactura']['extemporaneo'] == true) { $customStep = FlowSettingsCore::get(FLOW_RECLAMOS, "REC_STEP_EXTEMPORANEAS"); $asignado_a = FlowSettingsCore::get(FLOW_RECLAMOS, "REC_USER_EXTEMPORANEAS"); $extemporaneo = true; break; } } $request_id = $handlerRequestCore->createNewRequest(0, 0, FLOW_RECLAMOS, "Reclamo - " . date("Y-m-d") . " - " . $input->cliente['nombre'], "Reclamo - " . date("Y-m-d") . " - " . $input->cliente['nombre'], $creador, $asignado_a, $customStep); $reclamo = Reclamo::create(['ef_id' => $request_id, 'cliente_codigo' => $input->cliente['codigo'], 'cliente_nombre' => $input->cliente['nombre'], 'cliente_identificacion' => $input->cliente['identificacion'], 'cliente_direccion' => $input->cliente['direccion'], 'contacto_nombre' => $input->contacto['nombre'], 'contacto_telefono' => $input->contacto['telefono'], 'contacto_email' => $input->contacto['email'], 'reclamo_descripcion' => $input->reclamo['descripcion'], 'reclamo_fecha_inicio' => date('Y-m-d H:i:s'), 'reclamo_clase' => $input->reclamo['clase'], 'reclamo_region' => $input->reclamo['region'], 'reclamo_extemporaneo' => $extemporaneo ? 1 : 0, 'reclamo_num_interno' => $input->reclamo['num_interno'], 'reclamo_monto' => $input->reclamo['total_reclamo'], 'visita_requiere' => 0]); $listaFacturas = array(); foreach ($input->facturas as $factura) { foreach ($factura['detalles'] as $detalle) { if ($detalle['cantidad_reclamo'] > 0 || $detalle['cantidad_no_facturado'] > 0) { if ($detalle['cantidad_no_facturado'] > 0) { $cantidad = $detalle['cantidad_no_facturado']; $valor = $detalle['valor_no_facturado']; $lote = $detalle['lote_no_facturado']; } else { $cantidad = $detalle['cantidad_reclamo']; $valor = $detalle['cantidad_reclamo'] * $detalle['precioUnitario']; $lote = $detalle['lote']; } ReclamoDetalle::create(['reclamo_id' => $reclamo->id, 'factura' => $factura['infoFactura']['numero_factura'], 'factura_fecha' => $factura['infoFactura']['fechaEmision'], 'producto_comercial' => $detalle['clase'], 'codigo_item' => $detalle['codigoPrincipal'], 'descripcion_item' => $detalle['descripcion'], 'precio_unitario' => $detalle['precioUnitario'], 'cantidad_original' => $detalle['cantidad'], 'cantidad_reclamo' => $cantidad, 'valor_reclamo' => $valor, 'lote_reclamo' => $lote]); $listaFacturas[] = $factura['infoFactura']['numero_factura']; } } } $listaFacturas = array_unique($listaFacturas); foreach ($input->adjuntos as $adjunto) { $handlerAttachmentCore->addAttachmentToRequest($request_id, $adjunto['filetype']['filetype_id'], $adjunto['filename'], APP_ENVPATH, 'admin', 'Adjunto del cliente'); } RequestMetadataCore::set($request_id, 'REC-CODIGO-CLIENTE', $input->cliente['codigo']); RequestMetadataCore::set($request_id, 'REC-NOMBRE-CLIENTE', $input->cliente['nombre']); RequestMetadataCore::set($request_id, 'REC-IDENTIFICACION-CLIENTE', $input->cliente['identificacion']); RequestMetadataCore::set($request_id, 'REC-EMAIL-CLIENTE', $input->cliente['email']); RequestMetadataCore::set($request_id, 'REC-EMAIL-CONTACTO', $input->contacto['email']); RequestMetadataCore::set($request_id, 'REC-CLASE', $clase->nombre); RequestMetadataCore::set($request_id, 'REC-NUMERO-FACTURA', implode(',', $listaFacturas)); RequestMetadataCore::set($request_id, 'REC-NUMERO-REC-CLIENTE', $input->reclamo['num_interno']); RequestMetadataCore::set($request_id, 'REC-DESCRIPCION', $input->reclamo['descripcion']); RequestMetadataCore::set($request_id, 'REC-MONTO-DECISION', $input->reclamo['total_reclamo']); $request = EFRequest::find($request_id); echo $request->request_inner_id; }
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); }