\n (efirmaNumber = efirmaNumber.toUpperCase())\" class=\"w-full\" label=\"Número de serie de la Firma Electrónica Avanzada *\" name=\"efirmaNumber\"\n v-validate=\"requiredRules\" v-model.lazy=\"efirmaNumber\" :danger=\"hasError('efirmaNumber')\" :danger-text=\"errorText('efirmaNumber')\"\n :success=\"isSuccess('efirmaNumber')\" icon-pack=\"feather\" :placeholder=\"requiredPlaceholder\" />\n Consultar efirma\n\n
\n Número de serie de la Firma Electrónica Avanzada: {{ efirmaNumber }}\n
\n
\n
\n
\n
\n
\n \n \n Guardar\n
\n
\n
\n
\n\n\n\n\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!./UserTaxProfile.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!./UserTaxProfile.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserTaxProfile.vue?vue&type=template&id=6b81a6d3&\"\nimport script from \"./UserTaxProfile.vue?vue&type=script&lang=js&\"\nexport * from \"./UserTaxProfile.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserTaxProfile.vue?vue&type=style&index=0&id=6b81a6d3&prod&lang=css&\"\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","import moment from 'moment'\nexport default {\n methods: {\n constitutionDateFormat(value) {\n if(value){\n return moment(String(value)).locale(\"es\").format('LL');\n }\n },\n constitutionPaymentDateFormat(value) {\n if(value){\n return moment(String(value)).locale(\"es\").format('DD [de] MMMM');\n }\n },\n explicitDateFormat(value) {\n if(value){\n return moment(String(value)).format('DD/MM/YYYY [a las] hh:mm a')\n }\n },\n sessionFormat(value) {\n if(value){\n return moment(String(value)).format('DD/MM/YYYY h:mm a')\n }\n },\n regularDateFormat(value) {\n if(value){\n return moment(String(value)).locale(\"es\").format('DD/MM/YYYY')\n }\n },\n yearDateFormat(value) {\n if(value){\n return moment(String(value)).locale(\"es\").format('YYYY/MM/DD')\n }\n },\n midDateFormat(value) {\n if(value){\n return moment(String(value)).locale(\"es\").format('DD [de] MMMM [de] YYYY')\n }\n },\n humanDateFormat(value) {\n if(value){\n return moment(String(value)).locale(\"es\").format('D MMM YYYY')\n }\n },\n dateTimeFormat(value) {\n if(value){\n return moment(String(value)).locale(\"es\").format('DD/MM/YYYY HH:mm')\n }\n },\n dateTime12Format(value) {\n if(value){\n return moment(String(value)).locale(\"es\").format('DD/MM/YYYY h:mm a')\n }\n },\n compactDateFormat(value) {\n if(value){\n return moment(String(value)).locale(\"es\").format('DD [de] MMM [´]YY')\n }\n },\n logDateFormat(value) {\n if(value){\n return moment(String(value)).locale(\"es\").format('DD [de] MMMM [de] YYYY HH:mm')\n }\n },\n timeAgoFormat(value) {\n if(value){\n return moment(String(value)).locale(\"es\").fromNow();\n }\n },\n calculateAgeFromDate(value){\n if(value){\n return moment().diff(value, 'years');\n }\n },\n minDateForValidAge(years){\n return moment().subtract(years, 'years').format();\n },\n calculateDaysDiff(value){\n if(value){\n let m = moment(String(value));\n let n = moment();\n return n.diff(m, 'days');\n }\n },\n validatedDate(value){\n if(value){\n let m = moment(String(value));\n if(m.isValid()){\n return m.locale(\"es\").format('DD/MM/YYYY');\n }\n else {\n return \"--\";\n }\n }\n },\n getDateFromInputs(yy,mm,dd){\n let yint = parseInt(yy);\n let mint = parseInt(mm);\n mint -= 1;\n if(yint <= 20){\n // suponer que el año es entre 2000 y 2010\n yint += 2000;\n }\n else {\n // suponer que el año es menor a 2000\n yint += 1900;\n }\n\n let m = moment({ year: yint, month: mint, day: dd});\n if(m.isValid()){\n return m.format('YYYY-MM-DD');\n }\n else {\n return false;\n }\n },\n nextAccreditationDate(value){\n if(value){\n let m = moment(String(value)).add(180, 'days');\n return m.locale(\"es\").format('DD/MM/YYYY');\n }\n else {\n return \"--\"\n }\n },\n setDateToEndOfDay(value){\n let m = moment(String(value)).add(1, 'days');\n let d = m.endOf('day')\n let end = d.locale(\"es\").format('YYYY-MM-DD HH:mm:ss');\n return end;\n },\n setDateToStartOfDay(value){\n let m = moment(String(value)).add(1, 'days');\n let d = m.startOf('day');\n let start = d.locale(\"es\").format('YYYY-MM-DD HH:mm:ss');\n return start;\n },\n signatureFormatDate(value){\n if(value){\n let m = moment(String(value));\n if(m.isValid()){\n return m.locale(\"es\").format('DD/MM/YYYY HH:mm:ss');\n }\n }\n return \"No establecido\";\n },\n signatureValidityDate(value){\n if(value){\n let m = moment(String(value));\n if(m.isValid()){\n return m.locale(\"es\").format('DD/MM/YYYY');\n }\n }\n return \"No establecido\";\n },\n incomeSpecial(value){\n if(value){\n let m = moment(String(value));\n if(m.isValid()){\n return m.locale(\"es\").format('MMMM - YYYY').toUpperCase();\n }\n }\n return \"No establecido\";\n },\n timeStampFormat(value) {\n if(value){\n return moment(String(value)).locale(\"es\").format('DD-MM-YYYY-HH_mm_ss')\n }\n },\n formatDatepicker(value)\n {\n if(value){\n return moment(String(value)).locale(\"es\").format('YYYY-MM-DD')\n }\n },\n isAfter(date, maxDate, limit = 'year')\n {\n return moment(date).isAfter(maxDate, limit); \n },\n getPreviousMonth(date, format = \"MMMM\", step = 1)\n {\n return moment(date).locale(\"es\").subtract(step, 'months').format(format);\n },\n getDay(date)\n {\n return moment(date).locale(\"es\").format('DD');\n }\n }\n}","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserTaxProfile.vue?vue&type=style&index=0&id=6b81a6d3&prod&lang=css&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('big-title',[_vm._v(\"Perfil \"),_c('span',[_vm._v(\"Fiscal\")]),_vm._v(\". \")]),_c('vx-card',{staticClass:\"mb-6\",attrs:{\"title\":\"Mantén actualizada tu información.\"}},[_c('div',{staticClass:\"vx-col xxl:w-3/4 w-full\"},[_c('p',[_vm._v(\" Debido a la Reforma Fiscal 2022, para la emisión de comprobante \"),_c('b',[_vm._v(\"(CFDI)\")]),_vm._v(\" es importante que registres tus datos fiscales tal y como aparecen en tu \"),_c('b',[_vm._v(\"Constancia de Situación Fiscal\")]),_vm._v(\" la cual puedes consultar en el \"),_c('a',{staticClass:\"inline-link-primary bold\",attrs:{\"target\":\"_blank\",\"rel\":\"noopener\",\"href\":_vm.$sanitizeUrl(_vm.satUrl)}},[_vm._v(\"SAT\")]),_vm._v(\". \")])])]),_c('vx-card',[_c('user-tax-profile')],1),_c('vx-card',{staticClass:\"mt-6\"},[_c('div',{staticClass:\"vx-col xxl:w-3/4 w-full\"},[_c('li',{staticClass:\"bold\"},[_vm._v(\" Confirmo que los datos que proporciono son veraces y corresponden a mi persona, los cuales servirán para emitir los comprobantes fiscales (CFDI). \")]),_c('li',{staticClass:\"bold\"},[_vm._v(\" Acepto que, si esta información no concuerda con la que cuenta el SAT, RedGirasol emita los comprobantes sin efectos fiscales. \")])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n
\n Perfil Fiscal. \n \n
\n
\n Debido a la Reforma Fiscal 2022, para la emisión de comprobante (CFDI) es importante que \n registres tus datos fiscales tal y como aparecen en tu Constancia de Situación Fiscal \n la cual puedes consultar en el \n SAT.\n
\n
\n \n \n \n \n \n
\n
\n Confirmo que los datos que proporciono son veraces y corresponden a mi persona, los cuales servirán para emitir los comprobantes fiscales (CFDI).\n
\n
\n Acepto que, si esta información no concuerda con la que cuenta el SAT, RedGirasol emita los comprobantes sin efectos fiscales.\n
\n
\n \n
\n\n \n\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!./InvestorTaxProfile.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!./InvestorTaxProfile.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InvestorTaxProfile.vue?vue&type=template&id=658c9118&\"\nimport script from \"./InvestorTaxProfile.vue?vue&type=script&lang=js&\"\nexport * from \"./InvestorTaxProfile.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","export default {\n methods: {\n format_price(value, decimales = 0) {\n let val = (value / 1).toFixed(decimales).replace(\",\", \".\");\n return val.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n },\n costFormat(value) {\n if (!value) { return \"$0\"; }\n if (value == \"Pendiente\") { return value; }\n else {\n return \"$\" + this.format_price(value, 2);\n }\n },\n costFormatNoCents(value) {\n if (!value) { return \"$0\"; }\n if (value === \"Pendiente\") { return value; }\n else return \"$\" + this.format_price(value);\n },\n prcgFormat(value, decimales = 0) {\n if (!value) { return \"0%\"; }\n if (value == \"Pendiente\") { return value; }\n else { return value.toFixed(decimales) + \"%\"; }\n },\n decimalsFormat(value, decimales = 0) {\n if (!value) { return 0; }\n if (value == \"Pendiente\") { return 0; }\n else { return value.toFixed(decimales); }\n },\n explicitMoneyFormat(value, decimales = 2) {\n if (value == null) return \"\";\n else {\n return \"$\" + this.format_price(value, decimales);\n }\n },\n mxnFormat(value, decimales = 0) {\n if (!value) { return \"$0MXN\"; }\n else {\n return \"$\" + this.format_price(parseInt(value), decimales) + \" MXN\";\n }\n },\n moneyFormat(value) {\n if (!value) { return \"$0\"; }\n else {\n return \"$\" + this.format_price(parseInt(value), 0);\n }\n },\n decimalPercentFormat(value, decimales = 2) {\n if (!value) return \"0%\";\n else {\n return (value * 100).toFixed(decimales) + \"%\";\n }\n },\n roundedFormat(value, decimales = 2) {\n if (!value) { return 0; }\n else {\n let c = value.toFixed(decimales);\n let cd = Math.round(c);\n return cd.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n }\n },\n phoneFormat(value) {\n if (!value) return value\n else {\n return '(' + value.substr(0, 2) + ') ' + value.substr(2, 4) + '-' + value.substr(6, 4)\n }\n },\n phoneFormatV2(value) {\n if (!value) return value\n else {\n return '(' + value.substr(0, 3) + ') ' + value.substr(2, 3) + ' ' + value.substr(6, 4)\n }\n },\n visibleLastNChars(value, chars = 4) {\n if (!value) return value\n else {\n let valueString = value.toString();\n if (chars > valueString.length || chars < 0) return value\n else {\n let phoneLength = valueString.length;\n const firstChars = \"*\".repeat(phoneLength - chars);\n const last4Digits = valueString.slice(firstChars.length);\n return firstChars + last4Digits;\n }\n }\n },\n visibleOnlyLastNChars(value, chars = 4) {\n if (!value) return value\n else {\n let valueString = value.toString();\n if (chars > valueString.length || chars < 0) return value\n else {\n return valueString.slice(-4);\n }\n }\n },\n capitalizeFirstLetter(value) {\n if (!value) return value\n else {\n const arr = value.split(\" \");\n for (let i = 0; i < arr.length; i++) {\n arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);\n\n }\n\n return arr.join(\" \");\n }\n },\n //Función para validar un RFC\n isValidRfcFormat(rfc) {\n if(rfc) {\n const patternPM = \"^(([A-ZÑ&]{3})([0-9]{2})([0][13578]|[1][02])(([0][1-9]|[12][\\\\d])|[3][01])([A-Z0-9]{3}))|\" +\n \"(([A-ZÑ&]{3})([0-9]{2})([0][13456789]|[1][012])(([0][1-9]|[12][\\\\d])|[3][0])([A-Z0-9]{3}))|\" +\n \"(([A-ZÑ&]{3})([02468][048]|[13579][26])[0][2]([0][1-9]|[12][\\\\d])([A-Z0-9]{3}))|\" +\n \"(([A-ZÑ&]{3})([0-9]{2})[0][2]([0][1-9]|[1][0-9]|[2][0-8])([A-Z0-9]{3}))$\";\n const patternPF = \"^(([A-ZÑ&]{4})([0-9]{2})([0][13578]|[1][02])(([0][1-9]|[12][\\\\d])|[3][01])([A-Z0-9]{3}))|\" +\n \"(([A-ZÑ&]{4})([0-9]{2})([0][13456789]|[1][012])(([0][1-9]|[12][\\\\d])|[3][0])([A-Z0-9]{3}))|\" +\n \"(([A-ZÑ&]{4})([02468][048]|[13579][26])[0][2]([0][1-9]|[12][\\\\d])([A-Z0-9]{3}))|\" +\n \"(([A-ZÑ&]{4})([0-9]{2})[0][2]([0][1-9]|[1][0-9]|[2][0-8])([A-Z0-9]{3}))$\";\n return rfc.match(patternPM) || rfc.match(patternPF);\n } else {\n return false;\n }\n },\n //Función para validar un RFC por tipo de persona\n isValidRfcFormatByPersonType(rfc, isMoral) {\n if(rfc) {\n // Formato para PF\n let pattern = /^[A-Z]{4}(\\d{2})((0[13578]|1[02])([0-2]\\d|3[01])|(0[469]|11)([0-2]\\d|30)|(02)([0-2]\\d))([A-Z0-9]{3})$/;\n let genericRFC1 = \"XAXX010101000\";\n let genericRFC2 = \"XEXX010101000\";\n if(isMoral) {\n // Formato para PM\n pattern = /^[A-Z]{3}(\\d{2})((0[13578]|1[02])([0-2]\\d|3[01])|(0[469]|11)([0-2]\\d|30)|(02)([0-2]\\d))([A-Z0-9]{3})$/;\n }\n\n return rfc.match(pattern) && rfc != genericRFC1 && rfc != genericRFC2;\n } else {\n return false;\n }\n },\n //Función para validar una CURP\n isValidCurpFormat(curp) {\n if(curp) {\n const pattern = /^([A-Z][AEIOUX][A-Z]{2}\\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\\d|3[01])[HM](?:AS|B[CS]|C[CLMSH]|D[FG]|G[TR]|HG|JC|M[CNS]|N[ETL]|OC|PL|Q[TR]|S[PLR]|T[CSL]|VZ|YN|ZS)[B-DF-HJ-NP-TV-Z]{3}[A-Z\\d])(\\d)$/;\n let isValid = curp.match(pattern);\n if (!isValid) //Coincide con el formato general?\n return false;\n //Fuente https://consultas.curp.gob.mx/CurpSP/\n let diccionario = \"0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZ\";\n let lngSuma = 0.0;\n let lngDigito = 0.0;\n for (let i = 0; i < 17; i++) {\n lngSuma = lngSuma + diccionario.indexOf(isValid[1].charAt(i)) * (18 - i);\n }\n lngDigito = 10 - lngSuma % 10;\n let verifierDigit = (lngDigito != 10) ? lngDigito : 0;\n return isValid[2] == verifierDigit;\n } else {\n return false;\n }\n },\n anonymousFormatPhone(value){\n if (value === \"\") return value\n else {\n return value.replace(/^(?:\\D*\\d){8}/g, \"********\");\n }\n },\n genderTranslate(value) {\n return value == 1 ? \"Hombre\" : \"Mujer\";\n },\n //Función para obtener el icono del tipo de proyecto o todos con el param 'all'\n getLoanTypeIcon(loanType) {\n const loanTypeIcons = [\n {\n id: 1,\n url: \"https://cdn.redgirasol.com/nuevo_portal/icons/icon-inv-solar.png\",\n filename: \"Crédito Solar\"\n },\n {\n id: 4,\n url: \"https://cdn.redgirasol.com/nuevo_portal/icons/icon-inv-pyme.png\",\n filename: \"Crédito PyME\"\n },\n {\n id: 5,\n url: \"https://cdn.redgirasol.com/nuevo_portal/icons/icon-inv-pers.png\",\n filename: \"Crédito Personal\"\n },\n {\n id: 6,\n url: \"https://cdn.redgirasol.com/nuevo_portal/icons/icon-inv-auto.png\",\n filename: \"Crédito Automotriz\"\n }\n ];\n\n if (loanType == \"all\") {\n return loanTypeIcons;\n } else {\n let icon = loanTypeIcons.find(lt => lt.id === loanType);\n let url = \"https://cdn.redgirasol.com/nuevo_portal/icons/icon-inv-solar.png\";\n if (icon) {\n url = icon.url;\n }\n return url;\n }\n },\n getAmountWithNoCommissionTax(amount){\n if (amount <= 0) {\n return 0;\n }\n const processingAdministrationCommission = .02;\n const mexicoTaxIva = .16;\n let commissionWithTaxPercentage = processingAdministrationCommission*mexicoTaxIva;\n let percentage = (1+processingAdministrationCommission+commissionWithTaxPercentage);\n let amountNoCommision = amount/percentage;\n return amountNoCommision;\n }\n }\n}"],"sourceRoot":""}