\r\n \r\n \r\n \r\n {{ $vuetify.icons.values.calendar }}\r\n \r\n Fijada {{ ffijada|shortDateTime }}\r\n \r\n \r\n \r\n {{ $vuetify.icons.values.phone }}\r\n \r\n Avisar antes de ir\r\n \r\n \r\n \r\n {{ $vuetify.icons.values.manoDeObra }}\r\n \r\n Mano de obra NO facturable\r\n \r\n \r\n \r\n {{ $vuetify.icons.values.desplazamiento }}\r\n \r\n Desplazamiento NO facturable\r\n \r\n \r\n \r\n {{ $vuetify.icons.values.motivoBloqueo }}\r\n \r\n {{ tmotivoBloqueoDescripcion }}\r\n \r\n \r\n \r\n {{ $vuetify.icons.values.materialInstalar }}\r\n \r\n Material pendiente\r\n \r\n 0\"\r\n class=\"ml-1 mt-1\"\r\n small\r\n color=\"success\"\r\n label\r\n >\r\n \r\n {{ $vuetify.icons.values.accionMaterial }}\r\n \r\n {{ cantAccionesRealizadas }} de {{ cantAccionesTotal }} acciones realizadas\r\n \r\n \r\n Devolución\r\n \r\n \r\n \r\n {{ $vuetify.icons.values.user }}\r\n \r\n {{ tecnicoPrevisto }}\r\n \r\n
\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExtraSubtitle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExtraSubtitle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ExtraSubtitle.vue?vue&type=template&id=11545890&\"\nimport script from \"./ExtraSubtitle.vue?vue&type=script&lang=js&\"\nexport * from \"./ExtraSubtitle.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VChip,VIcon})\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar String = global.String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar un$ToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return un$ToFixed(0.00008, 3) !== '0.000' ||\n un$ToFixed(0.9, 0) !== '1' ||\n un$ToFixed(1.255, 2) !== '1.25' ||\n un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n un$ToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b10-base',[_c('b10-toolbar',{attrs:{\"title\":_vm.title,\"options\":_vm.toolbarOptions},on:{\"click-option\":_vm.clickToolbarOption}}),_c('b10-page-content',[_c('b10-view-summary',{attrs:{\"item\":_vm.formattedItem,\"showing\":_vm.showingDialogs.moreInfo,\"loading-data\":_vm.loadingData,\"show-alerts\":!_vm.routeFromBrowserHistory},on:{\"update:showing\":function($event){return _vm.$set(_vm.showingDialogs, \"moreInfo\", $event)}}},[_c('template',{slot:\"extraSubtitle\"},[_c('extra-subtitle',{attrs:{\"ffijada\":_vm.formattedItem.ffijada,\"avisar-antes-ir\":_vm.formattedItem.avisar_antes_ir,\"mano-de-obra-facturable\":_vm.formattedItem.manodeobrafacturable,\"idtfacturacion-kilometros\":_vm.formattedItem.idtfacturacion_kilometros,\"cant-acciones-realizadas\":_vm.formattedItem.cant_acciones_realizadas,\"cant-acciones-total\":_vm.formattedItem.cant_acciones_pendientes + _vm.formattedItem.cant_acciones_realizadas,\"tmotivo-bloqueo-descripcion\":_vm.formattedItem.tmotivo_bloqueo_ot_descripcion,\"pendiente-devolucion\":_vm.formattedItem.pendiente_devolucion,\"tecnico-previsto\":_vm.formattedItem.tecnico_previsto_nombre,\"material-pendiente\":_vm.formattedItem.materialPendiente,\"estado-pendiente\":_vm.formattedItem.estadoPendiente}})],1)],2),_c('b10-view-details',{attrs:{\"details\":_vm.details},on:{\"click-detail\":_vm.clickDetail}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { APIFilter } from '@/utils/api'\r\nimport { TABLA } from '@/utils/consts'\r\n\r\nexport default {\r\n async selectOrdenTrabajo (Vue, idordenTrabajo) {\r\n const apiFilter = new APIFilter()\r\n apiFilter\r\n .addExact('idorden_trabajo', idordenTrabajo)\r\n .addGT('estado', 0)\r\n .addGT('idest_orden_trabajo', 0)\r\n const resp = await Vue.$api.call('ordenTrabajo.select', { filter: apiFilter })\r\n return [resp.data.result.dataset[0], resp.data.result.metadata]\r\n },\r\n async selectDetails (Vue, idordenTrabajo, esTecnico, esComercial, esVigilante) {\r\n let apiCalls = []\r\n apiCalls.push(Vue.$online.fichero.ApiCallSelectCount(idordenTrabajo, TABLA.orden_trabajo.idtabla, esTecnico, esComercial, esVigilante))\r\n const apiFilterIdorden = new APIFilter()\r\n .addExact('idorden_trabajo', idordenTrabajo)\r\n .addGT('estado', 0)\r\n apiCalls.push({\r\n name: 'selectCountLordenTrabajo',\r\n method: 'lordenTrabajo.select',\r\n params: { filter: apiFilterIdorden },\r\n })\r\n apiCalls.push({\r\n name: 'selectLordenTrabajoSubsis',\r\n method: 'lordenTrabajo.selectSubsis',\r\n params: { filter: apiFilterIdorden },\r\n })\r\n apiCalls.push({\r\n name: 'selectOrdenTrabajoMatsistSubsis',\r\n method: 'ordenTrabajoMatsist.selectSubsis',\r\n params: { filter: apiFilterIdorden },\r\n })\r\n apiCalls.push({\r\n name: 'selectParteTrabajo',\r\n method: 'parteTrabajo.select',\r\n params: { filter: apiFilterIdorden, wrapper: 'count' },\r\n })\r\n apiCalls.push({\r\n name: 'selectOperacioncrm',\r\n method: 'operacioncrm.select',\r\n params: { filter: apiFilterIdorden, wrapper: 'count' },\r\n })\r\n const apiFilterNota = Vue.$online.nota.buildApiFilterVisualizacion(idordenTrabajo, TABLA.orden_trabajo.idtabla, esTecnico, esComercial, esVigilante)\r\n apiCalls.push({\r\n name: 'selectNota',\r\n method: 'nota.select',\r\n params: { filter: apiFilterNota, wrapper: 'count' },\r\n })\r\n const apiFilterParteTrabajoTecnico = new APIFilter()\r\n .addExact('idorden_trabajo', idordenTrabajo)\r\n apiCalls.push({\r\n name: 'selectCountParteTrabajoTecnico',\r\n method: 'parteTrabajoTecnico.select',\r\n params: { filter: apiFilterParteTrabajoTecnico },\r\n })\r\n return await Vue.$api.batchCall(apiCalls)\r\n },\r\n async selectParteDeOrdenTrabajo(Vue, idordenTrabajo) {\r\n const tables = Vue.$offline.db.tables\r\n return (await Vue.$offline.db\r\n .select()\r\n .from(tables.orden_trabajo)\r\n .innerJoin(\r\n tables.parte_trabajo,\r\n tables.orden_trabajo.idorden_trabajo.eq(tables.parte_trabajo.idorden_trabajo)\r\n )\r\n .where(\r\n tables.orden_trabajo.idorden_trabajo.eq(idordenTrabajo),\r\n )\r\n .exec()\r\n )[0]\r\n },\r\n}\r\n","