ravcredit-lib 0.0.69 → 0.0.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, runInInjectionContext, inject } from '@angular/core';
3
- import { cScore, eClientStatus, cContract, cBusinessInfo, cAddress, cDaySchedule, cBusinessConfig, cIDCCustomer, cClient, cUserReference, cDevice, cFinancial, eProvider, eOrderType, cNotification, dbName, dbVersion, keyUserID, dbAuthStore, dbClientsStore, keyPathId, dbContractsStore, dbConektaClientsStore, dbConektaReferencesStore, dbPassportReferencesStore, dbDynamicReferencesStore, dbBusinessInfo, dbBusinessConfig, dbNotificationsStore, dateFormat, expiredPayment, timeFormat, dateCompleteFormat, ePassportTypes } from 'ravcredit-core';
3
+ import { cScore, eClientStatus, cContract, cBusinessInfo, cAddress, cDaySchedule, cBusinessConfig, cIDCCustomer, cClient, cUserReference, cDevice, cFinancial, eProvider, eOrderType, cNotification, dbName, dbVersion, keyUserID, dbAuthStore, keyPathId, dbClientsStore, dbContractsStore, dbConektaClientsStore, dbConektaReferencesStore, dbPassportReferencesStore, dbDynamicReferencesStore, dbBusinessInfo, dbBusinessConfig, dbNotificationsStore, dateFormat, expiredPayment, timeFormat, dateCompleteFormat, ePassportTypes } from 'ravcredit-core';
4
4
  import { UntypedFormControl, Validators, UntypedFormArray } from '@angular/forms';
5
5
  import { add, getDate, format } from 'date-fns';
6
6
  import { es } from 'date-fns/locale/es';
@@ -1132,7 +1132,7 @@ class IndexedDbService {
1132
1132
  const db = await openDB(dbName, dbVersion);
1133
1133
  const res = await db.get(store, id);
1134
1134
  if (res != undefined)
1135
- await this.removeObject(dbClientsStore, id);
1135
+ await this.removeObject(store, id);
1136
1136
  return await this.addObject(store, data);
1137
1137
  }
1138
1138
  catch (e) {
@@ -1517,6 +1517,52 @@ class UtilGeneral {
1517
1517
  }
1518
1518
  }
1519
1519
 
1520
+ const snackBarConfigAction = {
1521
+ horizontalPosition: "start"
1522
+ };
1523
+ const snackBarConfigNoAction = {
1524
+ duration: 4000,
1525
+ horizontalPosition: "start"
1526
+ };
1527
+ const snackBarConfigNoActionLong = {
1528
+ duration: 8000,
1529
+ horizontalPosition: "start"
1530
+ };
1531
+
1532
+ const ErrorMessages = {
1533
+ NotFound: "Recurso no encontrado",
1534
+ Unauthorized: "Request without(or not valid) token",
1535
+ RandomError: "Something goes wrong, try again -> ",
1536
+ RandomErrorFirestore: "Something goes wrong in firestore",
1537
+ CreateUser: "Error: Something goes wrong",
1538
+ CreateFoundedUser: "Error: User already exists try with another username",
1539
+ FindAllNotFound: "Not users found",
1540
+ UserFindOne: "User with given ID not found",
1541
+ UserFindOneError: "Error getting user by ID",
1542
+ UserUpdate: "Error updating user by ID",
1543
+ DeleteUser: "Error deleting user",
1544
+ UsernameNotFound: "User with given username not found",
1545
+ IncorrectPassword: "Incorrect or not valid password",
1546
+ LastLogIn: "Last LogIn date not updated",
1547
+ authError: "Username or password incorrect",
1548
+ tokenRequired: "Token required",
1549
+ ClientDefined: "This user already registered: Update user's contracts instead",
1550
+ ClientsNotFound: "List of clients is empty",
1551
+ ClientNotFound: "Client with given ID, not found",
1552
+ ClientNotUpdated: "Client with given ID, not updated",
1553
+ DeleteClient: "Error deleting client",
1554
+ UsernameClientNotFound: "Client with given username not found",
1555
+ ContractsAllEmpty: "Contract list empty",
1556
+ ContractNotFound: "Contract not found",
1557
+ ContractUpdateError: "Something goes wrong updating contract, try again",
1558
+ ContractDeleteError: "Something goes wrong deleting contract, try again",
1559
+ cNotUserFound: "Usuario no encontrado",
1560
+ cIncorrectPassword: "Contraseña incorrecta",
1561
+ dbUsernameNotFound: "User with given username not found",
1562
+ dbIncorrectPassword: "Incorrect or not valid password",
1563
+ dbUsernameClientNotFound: "Client with given username not found",
1564
+ };
1565
+
1520
1566
  /*
1521
1567
  * Public API Surface of ravcredit-lib
1522
1568
  */
@@ -1525,5 +1571,5 @@ class UtilGeneral {
1525
1571
  * Generated bundle index. Do not edit.
1526
1572
  */
1527
1573
 
1528
- export { FactoryBusiness, FactoryClient, FactoryConekta, FactoryContract, FactoryDynamiCore, FactoryNotification, FactoryPassport, FactoryPayment, IndexedDbService, ROUTE_GLOBAL_REFERENCE2, ROUTE_NOTIFICATIONS, RavcreditLibComponent, RavcreditLibService, UtilGeneral, UtilTime, eContractStatus, ravCreditFunctions };
1574
+ export { ErrorMessages, FactoryBusiness, FactoryClient, FactoryConekta, FactoryContract, FactoryDynamiCore, FactoryNotification, FactoryPassport, FactoryPayment, IndexedDbService, ROUTE_GLOBAL_REFERENCE2, ROUTE_NOTIFICATIONS, RavcreditLibComponent, RavcreditLibService, UtilGeneral, UtilTime, eContractStatus, ravCreditFunctions, snackBarConfigAction, snackBarConfigNoAction, snackBarConfigNoActionLong };
1529
1575
  //# sourceMappingURL=ravcredit-lib.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ravcredit-lib.mjs","sources":["../../../projects/ravcredit-lib/src/lib/ravcredit-lib.service.ts","../../../projects/ravcredit-lib/src/lib/ravcredit-lib.component.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilClient.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilBusiness.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilDynamiCore.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilContract.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilConekta.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilNotification.ts","../../../projects/ravcredit-lib/src/lib/v1/idb/indexed-db.service.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilTime.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilPassport.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilPayment.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilGeneral.ts","../../../projects/ravcredit-lib/src/public-api.ts","../../../projects/ravcredit-lib/src/ravcredit-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RavcreditLibService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-ravcredit-lib',\r\n standalone: true,\r\n imports: [],\r\n template: `\r\n <p>\r\n ravcredit-lib works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class RavcreditLibComponent {\r\n\r\n}\r\n","import {\n cContract,\n cScore,\n eClientStatus,\n iClientContract,\n iConektaRecurrent,\n iConektaSources, IDCAccount, IDCClient,\n oClient, oContract, oFinancial, tyClientContract\n} from 'ravcredit-core';\n\nexport class FactoryClient {\n\n public static CreateClientToConektaObj(data: oClient) {\n const o: any = {}\n if (data.name && data.name.length > 0) o.name = data.name;\n if (data.username && data.name.length > 0) o.username = data.username;\n if (data.email && data.email.length > 0) o.email = data.email;\n if (data.phone && data.phone.length > 0) o.phone = String(data.phone);\n if (data.curp && data.curp.length > 0) o.curp = data.curp;\n if (data.userReferences && data.userReferences.length > 0) o.userReferences = data.userReferences;\n if (data.contract) o.contract = data.contract;\n if (data.createdAt) o.createdAt = data.createdAt;\n if (data.lastLogin) o.lastLogin = data.lastLogin;\n if (data.conekta_id) o.conekta_id = data.conekta_id;\n\n return o\n }\n\n public static CreateClientFromFormObj(data: any, client?: oClient): oClient {\n const o: oClient = {\n id: \"\",\n name: data[\"client\"][0].name,\n username: data[\"auth\"][0].username,\n password: data[\"auth\"][0].password,\n email: data[\"client\"][0].email,\n phone: String(data[\"client\"][0].phone),\n curp: data[\"client\"][0].curp,\n userReferences: data[\"client\"][0].userReferences,\n status: eClientStatus.ACTIVE,\n score: cScore,\n }\n\n if (client != undefined) {\n if (client.dynamic_id) o.dynamic_id = client.dynamic_id;\n if (client.dynamic_account) o.dynamic_account = client.dynamic_account;\n if (client.conekta_id) o.conekta_id = client.conekta_id;\n }\n\n return o\n }\n\n public static CreateClientConektaObj(data: oClient, finalDate: number) {\n const sources: iConektaSources = {\n type: \"oxxo_recurrent\",\n expires_at: finalDate\n }\n return {\n name: data.name,\n email: data.email,\n phone: data.phone,\n contract: data.contract_temporary,\n client_id: data.id,\n payment_sources: [sources]\n }\n }\n\n public static MapperConektaClient(\n client: oClient,\n conekta: iConektaRecurrent,\n ): iClientContract {\n const o: oClient = client\n\n o.name = conekta.name\n o.email = conekta.email\n o.phone = conekta.phone\n o.conekta_id = conekta.id\n\n return {\n client: o,\n contract: cContract\n }\n }\n\n public static MapperTypeContCli_Client(_client: tyClientContract): oClient {\n const client: oClient = {\n score: cScore,\n id: _client.id,\n name: _client.name,\n username: _client.username,\n email: _client.email,\n phone: _client.phone,\n curp: _client.curp,\n userReferences: _client.userReferences,\n status: _client.status,\n contract: _client.contract,\n reference: _client.reference,\n references: _client.references,\n conekta_id: _client.conekta_id,\n dynamic_account: _client.dynamic_account,\n token: _client.token,\n contract_temporary: _client.contract_temporary,\n lastLogin: _client.lastLogin,\n dynamic_id: _client.dynamic_id,\n createdAt: _client.createdAt,\n payments: _client.payments,\n password: _client.password,\n contractUrl: _client.contractUrl,\n dynamic_ref: _client.dynamic_ref,\n exists: _client.exists,\n passport_id: _client.passport_id\n }\n\n return client\n }\n\n public static MapperDynamicClient(\n dynamic: IDCClient,\n client: oClient,\n contract: oContract,\n clientDyn?: IDCClient,\n account?: IDCAccount,\n ): iClientContract {\n // constant o: tyClientContract = cTyClientContract\n\n /* Client ------------------------------------------------------ */\n client.username = `${dynamic.pii.name} ${dynamic.pii.motherlastname} ${dynamic.pii.lastname}`\n client.phone = dynamic.pii.phone as string\n client.dynamic_id = dynamic.id\n client.curp = dynamic.pii.curp\n client.email = dynamic.pii.email\n\n if (account)\n client.dynamic_account = account.id\n\n /* Auth ---------------------------------------------------------- */\n\n\n /* Device -------------------------------------------------------- */\n contract.device.IMEI = clientDyn!.pii.imei\n contract.device.device = clientDyn!.pii.model\n\n /* Contract ------------------------------------------------------ */\n contract.by = clientDyn!.pii.seller_name\n\n if (clientDyn!.pii.fotografia_del_cliente_con_el_equipo != undefined) {\n const oPhoto = clientDyn!.pii.fotografia_del_cliente_con_el_equipo!\n if (oPhoto != \"\") {\n const _photo = JSON.parse(oPhoto)\n if (_photo)\n contract.photo = _photo[0].url\n }\n }\n\n contract.address.state = dynamic.pii.state\n contract.address.city = dynamic.pii.city\n contract.address.street = dynamic.pii.street\n contract.address.ext = dynamic.pii.num_ext as string\n contract.address.zip = dynamic.pii.zipcode as string\n contract.address.neighbor = dynamic.pii.colony\n\n /* Financial ------------------------------------------------------ */\n contract.dynamicAccount = Number(account?.id)\n\n if (account?.config.installments) {\n contract.financial.deadlines = {\n weeks: account.config.installments,\n interest: 0\n }\n }\n\n if (account?.properties.expected_disbursed)\n contract.financial.total = account?.properties.expected_disbursed\n\n if (account?.properties.principal_disbursed)\n contract.financial.financed = account?.properties.principal_disbursed\n\n if (account?.properties.amount_commission_opening) {\n contract.financial.initial = account?.properties.amount_commission_opening\n contract.financial.amount_commission_opening = account?.properties.amount_commission_opening\n }\n\n contract.financial.interest_rate = Number(clientDyn!.pii.interest_rate)\n contract.financial.interest_arrears = account?.config.interest_arrears\n contract.financial.commission_opening = account?.config.commission_opening\n contract.financial.credit_type = account?.config.credit_type\n\n contract.financial.principal_disbursed = account?.properties.principal_disbursed\n contract.financial.expected_disbursed = account?.properties.expected_disbursed\n\n contract.financial.weeklyPayment = Number(clientDyn!.pii.amount_by_period)\n\n return {\n client: client,\n contract: contract,\n }\n }\n\n public static MapperFinancialContract(\n contract: oContract,\n account: IDCAccount,\n ): oFinancial {\n\n contract.dynamicAccount = Number(account.id)\n\n if (account.config.installments) {\n contract.financial.deadlines = {\n weeks: account.config.installments,\n interest: 0\n }\n }\n\n const total =\n account.config.financed_amount != undefined ? account.config.financed_amount : 0\n\n if (total > 0)\n contract.financial.total = total\n\n // if (account.properties.expected_disbursed)\n const expected_disbursed =\n account.properties.expected_disbursed != undefined ? account.properties.expected_disbursed : 0\n\n if (expected_disbursed > 0) contract.financial.total = expected_disbursed\n contract.financial.expected_disbursed = expected_disbursed\n\n contract.financial.interest_rate = account.config.interest_rate\n contract.financial.interest_arrears = account.config.interest_arrears\n\n // if (account.properties.principal_disbursed)\n if (account.properties.principal_disbursed > 0)\n contract.financial.financed = account.properties.principal_disbursed\n\n contract.financial.principal_disbursed = account.properties.principal_disbursed\n\n const amount_commission_opening =\n account.properties.amount_commission_opening != undefined ? account.properties.amount_commission_opening : 0\n\n if (amount_commission_opening > 0)\n contract.financial.initial = amount_commission_opening\n\n contract.financial.amount_commission_opening = amount_commission_opening\n\n contract.financial.interest_arrears = account.config.interest_arrears\n contract.financial.commission_opening = account.config.commission_opening\n contract.financial.credit_type = account.config.credit_type\n\n contract.financial.clabe = String(account.properties.clabe!)\n\n return contract.financial\n }\n\n public static CheckEmail =\n (email: string): boolean => email.includes(\"@\") && email.endsWith(\".com\")\n}\n","import {UntypedFormArray, UntypedFormControl, Validators} from \"@angular/forms\";\nimport {\n cAddress, cBusinessConfig,\n cBusinessInfo,\n cDaySchedule,\n oAddress, oBusinessConfig, oBusinessDeadlines,\n oBusinessInfo,\n oTmpBusinessConfig,\n oWeekSchedule\n} from 'ravcredit-core';\n\nexport class FactoryBusiness {\n\n public static FormBusinessInfo(info?: oBusinessInfo) {\n let data = cBusinessInfo\n\n if (info) data = info\n\n if (!info?.address) data.address = cAddress\n\n return {\n name: new UntypedFormControl(data.name, Validators.required),\n email: new UntypedFormControl(data.email, [Validators.required, Validators.email]),\n desc: new UntypedFormControl(data.desc, [Validators.required, Validators.email]),\n street: new UntypedFormControl(data.address.street, Validators.required),\n neighbor: new UntypedFormControl(data.address.neighbor, Validators.required),\n cp: new UntypedFormControl(data.address.zip, Validators.required),\n ext: new UntypedFormControl(data.address.ext, Validators.required),\n int: new UntypedFormControl(data.address.int),\n city: new UntypedFormControl(data.address.city, Validators.required),\n state: new UntypedFormControl(data.address.state, Validators.required),\n phones: new UntypedFormControl(data.phones),\n mondayOpen: new UntypedFormControl(data.schedule?.monday.open),\n mondayClose: new UntypedFormControl(data.schedule?.monday.close),\n tuesdayOpen: new UntypedFormControl(data.schedule?.tuesday.open),\n tuesdayClose: new UntypedFormControl(data.schedule?.tuesday.close),\n wednesdayOpen: new UntypedFormControl(data.schedule?.wednesday.open),\n wednesdayClose: new UntypedFormControl(data.schedule?.wednesday.close),\n thursdayOpen: new UntypedFormControl(data.schedule?.thursday.open),\n thursdayClose: new UntypedFormControl(data.schedule?.thursday.close),\n fridayOpen: new UntypedFormControl(data.schedule?.friday.open),\n fridayClose: new UntypedFormControl(data.schedule?.friday.close),\n saturdayOpen: new UntypedFormControl(data.schedule?.saturday.open),\n saturdayClose: new UntypedFormControl(data.schedule?.saturday.close),\n sundayOpen: new UntypedFormControl(data.schedule?.sunday.open),\n sundayClose: new UntypedFormControl(data.schedule?.sunday.close),\n }\n\n }\n\n public static CreateBusinessInfoObj(data: oTmpBusinessConfig) {\n const address: oAddress = cAddress\n\n const schedule: oWeekSchedule = {\n monday: cDaySchedule,\n tuesday: cDaySchedule,\n wednesday: cDaySchedule,\n thursday: cDaySchedule,\n friday: cDaySchedule,\n saturday: cDaySchedule,\n sunday: cDaySchedule\n }\n\n if (data.street) address.street = data.street\n if (data.state) address.state = data.state\n if (data.neighbor) address.neighbor = data.neighbor\n if (data.city) address.city = data.city\n if (data.ext) address.ext = data.ext\n if (data.int) address.int = data.int\n if (data.cp) address.zip = data.cp\n\n if (data.mondayOpen) schedule.monday.open = Number(data.mondayOpen)\n if (data.mondayClose) schedule.monday.close = Number(data.mondayClose)\n\n if (data.tuesdayOpen) schedule.tuesday.open = Number(data.tuesdayOpen)\n if (data.tuesdayClose) schedule.tuesday.close = Number(data.tuesdayClose)\n\n if (data.wednesdayOpen) schedule.wednesday.open = Number(data.wednesdayOpen)\n if (data.wednesdayClose) schedule.wednesday.close = Number(data.wednesdayClose)\n\n if (data.thursdayOpen) schedule.thursday.open = Number(data.thursdayOpen)\n if (data.thursdayClose) schedule.thursday.close = Number(data.thursdayClose)\n\n if (data.fridayOpen) schedule.friday.open = Number(data.fridayOpen)\n if (data.fridayClose) schedule.friday.close = Number(data.fridayClose)\n\n if (data.saturdayOpen) schedule.saturday.open = Number(data.saturdayOpen)\n if (data.saturdayClose) schedule.saturday.close = Number(data.saturdayClose)\n\n if (data.sundayOpen) schedule.sunday.open = Number(data.sundayOpen)\n if (data.sundayClose) schedule.sunday.close = Number(data.sundayClose)\n\n const info: oBusinessInfo = {\n version: \"v2024\",\n name: data.name ? data.name : \"\",\n address: address,\n phones: data.phones ? data.phones : [],\n email: data.email ? data.email : \"\",\n schedule: schedule,\n desc: data.desc ? data.desc : \"\"\n }\n\n return info\n }\n\n public static FormDeadlineConfig(data: oBusinessDeadlines) {\n // if (!data) data = cBusinessDeadlines\n\n return {\n weeks: new UntypedFormControl(data.weeks),\n interest: new UntypedFormControl(data.interest),\n }\n }\n\n public static FormBusinessConfig(config?: oBusinessConfig) {\n let data = cBusinessConfig\n if (config) data = config\n\n return {\n downloadsClient: new UntypedFormControl(data.downloadsClient),\n passportPaymentReference: new UntypedFormControl(data.passportPaymentReference),\n conektaPaymentReference: new UntypedFormControl(data.conektaPaymentReference),\n conektaPaymentLink: new UntypedFormControl(data.conektaPaymentLink),\n dynamicPaymentReference: new UntypedFormControl(data.dynamicPaymentReference),\n deadlines: new UntypedFormArray([])\n }\n }\n\n public static testBusiness(message: string) {\n return `Message ${message}`\n }\n}\n","import {UntypedFormControl, Validators} from \"@angular/forms\";\r\nimport {\r\n cIDCCustomer, IDCAccount, IDCClient, IDCCredit, IDCCreditConfig, IDCCreditProperties,\r\n IDCNewReference, IDCPayment,\r\n IDCRefCustInfo,\r\n IDCRefItems,\r\n IDCRefPymtMethod,\r\n oClientBase,\r\n oContract,\r\n partialIDCData\r\n} from 'ravcredit-core';\r\n\r\n/**\r\n * Common Factory Dynamic\r\n * */\r\nexport class FactoryDynamiCore {\r\n\r\n public static CreateReferenceBody(\r\n client: oClientBase,\r\n contract: oContract,\r\n dateTime?: number\r\n ): IDCNewReference | null {\r\n\r\n const customerInfo: IDCRefCustInfo = {\r\n name: client.name,\r\n email: client.email,\r\n phone: client.phone,\r\n }\r\n\r\n const customerItems: IDCRefItems = {\r\n name: \"Referencia Oxxo\",\r\n unit_price: contract.financial.weeklyPayment,\r\n quantity: 1\r\n }\r\n\r\n const paymentMethod: IDCRefPymtMethod = {\r\n type: \"oxxo_cash\"\r\n }\r\n\r\n if (!client.dynamic_account) return null\r\n\r\n const body: IDCNewReference = {\r\n id: client.id,\r\n data: {\r\n account: Number(client.dynamic_account),\r\n operation: 98,\r\n customer_info: customerInfo,\r\n items: customerItems,\r\n payment_method: paymentMethod\r\n }\r\n }\r\n\r\n if (dateTime != undefined) body.date = dateTime\r\n\r\n return body\r\n }\r\n\r\n public static CreateEmptyCustomer(): partialIDCData {\r\n return cIDCCustomer\r\n }\r\n\r\n public static CreateCustomerFromOClient(client: oClientBase, contract: oContract): partialIDCData {\r\n const o: partialIDCData = cIDCCustomer\r\n\r\n o.pii.email = client.email\r\n o.pii.name = client.name\r\n o.pii.curp = client.curp\r\n o.pii.phone = client.phone\r\n o.pii.amount = String(contract.financial.total)\r\n o.pii.financed = String(contract.financial.financed)\r\n o.pii.amount_by_period = String(contract.financial.weeklyPayment)\r\n\r\n o.pii.zipcode = contract.address.zip\r\n o.pii.street = contract.address.street\r\n o.pii.city = contract.address.city\r\n o.pii.state = contract.address.state\r\n o.pii.colony = contract.address.neighbor\r\n o.pii.num_ext = contract.address.ext\r\n\r\n return o\r\n }\r\n\r\n public static CreateDynamicCredit(\r\n client: oClientBase,\r\n contract: oContract,\r\n clientDynamic: IDCClient,\r\n ): Partial<IDCCredit> | null {\r\n const properties: IDCCreditProperties = {\r\n start_date: \"\",\r\n principal_disbursed: 0,\r\n expected_disbursed: 0,\r\n amount_commission_opening: 0\r\n }\r\n\r\n const config: IDCCreditConfig = {\r\n contract: `FP-${client.name}`,\r\n credit_type: \"Arrendamiento\",\r\n interest_rate: 528,\r\n installments: 0,\r\n periodicity: \"WEEK\",\r\n interest_base: \"ACT/ACT\",\r\n commission_opening: 40,\r\n financed_amount: contract.financial.financed,\r\n interest_arrears: 0\r\n }\r\n\r\n if (!client.dynamic_account) return null\r\n\r\n return {\r\n id: Number(client.dynamic_account),\r\n group: clientDynamic.group,\r\n company: clientDynamic.company,\r\n client: clientDynamic.id,\r\n created_at: \"\",\r\n currency: \"484\",\r\n status: \"pending\",\r\n properties: properties,\r\n product: 1756,\r\n enabled: \"1\",\r\n config: config,\r\n amount: 0,\r\n type: \"liabilities\",\r\n identifier: null,\r\n start_at: null\r\n }\r\n }\r\n\r\n public static CreatePayment(\r\n contract: oContract,\r\n clientDynamic: IDCAccount,\r\n ): IDCPayment {\r\n return {\r\n account: String(clientDynamic.id),\r\n amount: contract.financial.weeklyPayment,\r\n date: \"\",\r\n dst_account: String(clientDynamic.id),\r\n external_id: \"\",\r\n extras: {},\r\n operation: 98,\r\n reference: \"\"\r\n }\r\n }\r\n\r\n public static getNextDateTime(): string {\r\n const now = new Date();\r\n const nextDateTime = new Date(now.getTime() + 1000); // Add 1 second as an example\r\n\r\n const year = nextDateTime.getFullYear();\r\n const month = String(nextDateTime.getMonth() + 1).padStart(2, '0');\r\n const day = String(nextDateTime.getDate()).padStart(2, '0');\r\n const hours = String(nextDateTime.getHours()).padStart(2, '0');\r\n const minutes = String(nextDateTime.getMinutes()).padStart(2, '0');\r\n const seconds = String(nextDateTime.getSeconds()).padStart(2, '0');\r\n\r\n return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`;\r\n }\r\n\r\n public static getIsoDate(): string {\r\n const now = new Date();\r\n return now.toISOString();\r\n }\r\n\r\n public static FormPayment(\r\n contract: oContract,\r\n account: IDCAccount) {\r\n\r\n let data = FactoryDynamiCore.CreatePayment(contract, account)\r\n\r\n return {\r\n amount: new UntypedFormControl(data.amount, [Validators.required, Validators.min(0)]),\r\n }\r\n }\r\n}\r\n","import {UntypedFormArray, UntypedFormControl, Validators} from \"@angular/forms\";\nimport {\n cAddress,\n cClient,\n cDevice, cFinancial,\n cUserReference, eProvider, IDCAccount,\n oAddress, oAsset, oAssetBrand, oAssetCategory, oCatalog,\n oClient, oContract,\n oDevice, oFinancial, oScoreReference,\n oUserReferenceBase, tyClientContract\n} from 'ravcredit-core';\n\nexport class FactoryContract {\n\n public static FormClient(client?: oClient) {\n let data = cClient\n\n if (client) data = client\n\n return {\n name: new UntypedFormControl(data.name, [Validators.required, Validators.minLength(10)]),\n email: new UntypedFormControl(data.username, [Validators.required, Validators.email]),\n phone: new UntypedFormControl(data.phone, [Validators.required, Validators.min(10)]),\n curp: new UntypedFormControl(data.curp, [Validators.required, Validators.minLength(16)]),\n userReferences: new UntypedFormArray([])\n }\n }\n\n public static CreateUserReferenceFormObj(user: oUserReferenceBase) {\n let data = cUserReference\n\n if (user.name != \"\") data = user\n\n return {\n name: new UntypedFormControl(data.name, [Validators.required, Validators.minLength(10)]),\n phone: new UntypedFormControl(data.phone, [Validators.required]),\n relationship: new UntypedFormControl(data.relationship, [Validators.required]),\n }\n }\n\n public static FormAddress(address?: oAddress) {\n let data = cAddress\n\n if (address) data = address\n\n return {\n street: new UntypedFormControl(data.street, Validators.required),\n neighbor: new UntypedFormControl(data.neighbor, Validators.required),\n cp: new UntypedFormControl(data.zip, Validators.required),\n ext: new UntypedFormControl(data.ext, Validators.required),\n int: new UntypedFormControl(data.int),\n city: new UntypedFormControl(data.city, Validators.required),\n state: new UntypedFormControl(data.state, Validators.required),\n }\n }\n\n public static FormDevice(device?: oDevice) {\n let data = cDevice\n\n if (device) data = device\n\n return {\n model: new UntypedFormControl(data.device, Validators.required),\n IMEI: new UntypedFormControl(data.IMEI, Validators.required),\n ID: new UntypedFormControl(data.id),\n }\n }\n\n public static FormFinancial(financial?: oFinancial) {\n let data = cFinancial\n\n if (financial) data = financial\n\n data.credit_type = \"Arrendamiento\"\n // data.deadlines.weeks = cBusinessDeadlines\n\n return {\n total: new UntypedFormControl(data.total, [Validators.required, Validators.min(1)]),\n initial: new UntypedFormControl(data.initial, [Validators.required]),\n financed: new UntypedFormControl(data.financed, Validators.min(1)),\n weeklyPayment: new UntypedFormControl(data.weeklyPayment, [Validators.required, Validators.min(1)]),\n deadlines: new UntypedFormControl(data.deadlines, [Validators.required]),\n initDate: new UntypedFormControl(data.initDate),\n provider: new UntypedFormControl(data.provider),\n\n credit_type: new UntypedFormControl(data.credit_type ? data.credit_type : 0),\n interest_rate: new UntypedFormControl(data.interest_rate ? data.interest_rate : 0), // interes credit dynamic\n commission_opening: new UntypedFormControl(data.commission_opening ? data.commission_opening : 0),\n interest_arrears: new UntypedFormControl(data.interest_arrears ? data.interest_arrears : 0), // intereses moratorios dynamic\n\n amount_commission_opening: new UntypedFormControl(data.amount_commission_opening), // comision por apertura dynamic\n principal_disbursed: new UntypedFormControl(data.principal_disbursed),\n expected_disbursed: new UntypedFormControl(data.expected_disbursed)\n }\n }\n\n public static CreateContractFromFormObj(data: any, finalPay: number) {\n const date = new Date()\n\n const device: oDevice = {\n device: data[\"device\"][0].model,\n id: data[\"device\"][0].ID,\n IMEI: data[\"device\"][0].IMEI\n }\n const address: oAddress = {\n street: data[\"address\"][0].street,\n city: data[\"address\"][0].city,\n neighbor: data[\"address\"][0].neighbor,\n zip: data[\"address\"][0].cp,\n ext: data[\"address\"][0].ext,\n int: data[\"address\"][0].int,\n state: data[\"address\"][0].state\n }\n\n const financial: oFinancial = {\n total: Number(data[\"financial\"][0].total),\n initial: data[\"financial\"][0].initial,\n deadlines: data[\"financial\"][0].deadlines,\n progress: [],\n pendingOf: [],\n weeklyPayment: data[\"financial\"][0].weeklyPayment,\n interest: data[\"financial\"][0].interest_rate,\n finalDate: date.getTime() + (data[\"financial\"][0].deadlines.weeks * (604800 * 1000)),\n initDate: date.getDate(),\n dayCut: date.getDate(),\n provider: data[\"financial\"][0].provider,\n finalPayment: finalPay,\n financed: data[\"financial\"][0].financed,\n nextPayment: data[\"financial\"][0].nextPayment\n }\n if (data[\"financial\"][0].provider == eProvider.DynamiCore) {\n financial.initial = data[\"financial\"][0].amount_commission_opening ? Number(data[\"financial\"][0].amount_commission_opening) : 0\n financial.expected_disbursed = data[\"financial\"][0].expected_disbursed ? Number(data[\"financial\"][0].expected_disbursed) : 0\n financial.principal_disbursed = data[\"financial\"][0].principal_disbursed ? Number(data[\"financial\"][0].principal_disbursed) : 0\n financial.interest_arrears = data[\"financial\"][0].interest_rate ? Number(data[\"financial\"][0].interest_rate) : 0\n financial.commission_opening = data[\"financial\"][0].commission_opening ? Number(data[\"financial\"][0].commission_opening) : 0\n financial.credit_type = data[\"financial\"][0].credit_type ? data[\"financial\"][0].credit_type : \"\"\n financial.clabe = data[\"financial\"][0].clabe ? data[\"financial\"][0].clabe : \"\"\n }\n\n if (data[\"financial\"][0].amount_commission_opening != undefined) {\n if (Number(data[\"financial\"][0].amount_commission_opening) > 0)\n financial.initial = Number(data[\"financial\"][0].amount_commission_opening)\n else\n financial.initial = Number(data[\"financial\"][0].initial)\n }\n\n if (Number(data[\"financial\"][0].amount_commission_opening) > 0)\n financial.amount_commission_opening = Number(data[\"financial\"][0].amount_commission_opening)\n else\n financial.amount_commission_opening = financial.initial\n\n if (financial.nextPayment == undefined) financial.nextPayment = 0\n\n const contract: oContract = {\n id: \"\",\n client: \"\",\n address: address,\n device: device,\n financial: financial,\n by: \"\",\n active: true,\n lastPayment: date.getTime(),\n createdAt: date.getTime()\n }\n return contract\n }\n\n public static CreateContractToConektaObj(data: oContract, monthlyPay: number, finalPay: number) {\n const o: any = {}\n const score: oScoreReference = {\n name: \"\",\n score: 0\n }\n const catalog: oCatalog = {\n name: \"\",\n description: \"\",\n id: \"\",\n createdAt: 0\n }\n const brand : oAssetBrand = {\n name: \"\",\n id: \"\",\n description: \"\"\n }\n const category : oAssetCategory = {\n name: \"\",\n id: \"\",\n createAt: 0\n }\n const deviceV2: oAsset = {\n name: \"\",\n id: \"\",\n createAt: new Date().getTime(),\n category: category,\n brand: brand,\n price: 0,\n model: \"\",\n imageUrl: [],\n paymentOption: [],\n catalog: catalog,\n offers: [],\n score: score,\n IMEI: \"\"\n }\n\n const device: oDevice = {\n device: data.device.device,\n id: data.device.id,\n IMEI: data.device.IMEI\n }\n const address: oAddress = {\n street: data.address.street,\n city: data.address.city,\n neighbor: data.address.neighbor,\n zip: data.address.zip,\n ext: data.address.ext,\n int: data.address.int,\n state: data.address.state\n }\n const financial: oFinancial = {\n total: data.financial.total,\n initial: data.financial.initial,\n deadlines: data.financial.deadlines,\n progress: data.financial.progress,\n pendingOf: data.financial.pendingOf,\n weeklyPayment: data.financial.weeklyPayment,\n interest: data.financial.interest,\n finalDate: data.financial.finalDate,\n initDate: data.financial.initDate,\n dayCut: data.financial.dayCut,\n provider: data.financial.provider,\n finalPayment: data.financial.finalPayment,\n financed: data.financial.financed,\n nextPayment: data.financial.nextPayment\n }\n const contract: oContract = {\n id: \"\",\n client: \"\",\n address: address,\n device: device,\n financial: financial,\n by: \"\",\n active: true\n }\n return contract\n }\n\n public static CreateAuthForm(username: string, curp: string) {\n const password: string = this.createPassword(curp)\n return {\n username: new UntypedFormControl(username, Validators.required),\n password: new UntypedFormControl(password, Validators.required),\n }\n }\n\n public static createPassword(curp: string): string {\n const _curp = curp.split(\"\")\n let password = \"\"\n const limit = 7\n\n if (_curp.length < 16) return \"\"\n\n password += _curp[0].toLowerCase()\n\n for (let i = 1; i <= limit; i++)\n password += _curp[i].toUpperCase()\n\n password += `*`\n return password\n }\n\n public static MapperTypeContCli_Contract(_contract: tyClientContract): oContract {\n const contract: oContract = {\n id: _contract.contract!,\n client: _contract.client,\n address: _contract.address,\n device: _contract.device,\n financial: _contract.financial,\n by: _contract.by,\n active: _contract.active,\n lastPayment: _contract.lastPayment,\n createdAt: _contract.createdAt,\n dynamicAccount: _contract.dynamicAccount,\n }\n\n return contract\n }\n\n public static MapperSyncContractDynamic(base: oContract, account: IDCAccount): oContract {\n let nContract = base\n let _financial = base.financial\n let _device = base.device\n\n\n const financial: oFinancial = {\n total: _financial.total,\n initial: account.properties.amount_commission_opening ? account.properties.amount_commission_opening : _financial.initial,\n deadlines: _financial.deadlines,\n progress: _financial.progress ? _financial.progress : [],\n pendingOf: _financial.pendingOf ? _financial.pendingOf : [],\n weeklyPayment: _financial.weeklyPayment,\n interest: _financial.interest,\n finalDate: _financial.finalDate,\n initDate: _financial.initDate,\n dayCut: _financial.dayCut,\n provider: _financial.provider,\n finalPayment: _financial.finalPayment,\n financed: _financial.financed,\n nextPayment: _financial.nextPayment ? _financial.nextPayment : 0,\n\n amount_commission_opening:\n account.properties.amount_commission_opening,\n\n expected_disbursed:\n account.properties.expected_disbursed ?\n Number(account.properties.expected_disbursed) :\n Number(_financial.expected_disbursed),\n\n principal_disbursed:\n account.properties.principal_disbursed ?\n account.properties.principal_disbursed :\n _financial.principal_disbursed,\n\n commission_opening:\n account.config.commission_opening ?\n Number(account.config.commission_opening) :\n Number(_financial.commission_opening),\n\n credit_type:\n account.config.credit_type ? account.config.credit_type : _financial.credit_type,\n\n clabe:\n String(account.properties.clabe ? account.properties.clabe : _financial.clabe)\n }\n\n const interestArrears = account.config.interest_arrears\n const prevInterestArrears = _financial.interest_arrears\n if (interestArrears != undefined) {\n financial.interest_arrears = interestArrears\n } else if (prevInterestArrears != undefined) {\n financial.interest_arrears = prevInterestArrears\n } else {\n financial.interest_arrears = 0\n }\n\n const interest = account.config.interest_rate\n const prevInterest = _financial.interest\n if (interest != undefined) {\n financial.interest = interest\n } else if (prevInterest != undefined) {\n financial.interest = prevInterest\n } else {\n financial.interest = 0\n }\n\n if (account.properties.amount_commission_opening != undefined) {\n if (Number(account.properties.amount_commission_opening) > 0) {\n financial.initial = Number(account.properties.amount_commission_opening)\n financial.amount_commission_opening = Number(account.properties.amount_commission_opening)\n } else {\n financial.initial = Number(_financial.initial)\n financial.amount_commission_opening = financial.initial\n }\n }\n\n const seller: string | undefined = account.properties.seller_name\n nContract.by = seller != null ? seller : \"\"\n\n nContract.device.id = _device.id ? _device.id : \"\"\n\n nContract.financial = financial\n return nContract\n }\n}\n\nexport enum eContractStatus {\n APPROVED = 'APPROVED',\n DENIED = 'DENIED',\n CANCELED = 'CANCELED',\n PENDING = 'PENDING',\n CHECKING = 'CHECKING',\n}\n","import {\r\n eOrderType,\r\n oClient,\r\n oClientBase,\r\n oConektaNewOrder, oConektaNewOrderAntifraudInfo, oConektaNewOrderCharge,\r\n oConektaNewOrderCustomerInfo, oConektaNewOrderLineItem,\r\n oConektaNewOrderPymMethod, oConektaOrderCreate, oConektaOrderSpei,\r\n oContract\r\n} from 'ravcredit-core';\r\n\r\nexport class FactoryConekta {\r\n public static createOrder(\r\n client: oClientBase,\r\n contract: oContract,\r\n dateTime?: number\r\n ): oConektaNewOrder {\r\n\r\n if (client.conekta_id == undefined) return {\r\n data: {\r\n charges: [],\r\n currency: \"\",\r\n customer_info: {customer_id: \"\"},\r\n line_items: []\r\n },\r\n id: \"\"\r\n }\r\n\r\n const customer_info: oConektaNewOrderCustomerInfo = {\r\n customer_id: client.conekta_id\r\n }\r\n const week = ((3600 * 24) * 30) * 1000\r\n let next = new Date().getTime() + week\r\n next = Math.floor(next / 1000)\r\n\r\n const method: oConektaNewOrderPymMethod = {\r\n type: \"cash\",\r\n expires_at: next,\r\n }\r\n const charge: oConektaNewOrderCharge = {\r\n amount: contract.financial.weeklyPayment * 100,\r\n payment_method: method\r\n }\r\n const charges = [charge]\r\n\r\n const antifraud_info: oConektaNewOrderAntifraudInfo = {\r\n newKey: \"Key\"\r\n }\r\n\r\n const lineItem: oConektaNewOrderLineItem = {\r\n antifraud_info: antifraud_info,\r\n name: `Referencia credito ${client.name}`,\r\n quantity: 1,\r\n unit_price: contract.financial.weeklyPayment * 100,\r\n }\r\n\r\n const lineItems: oConektaNewOrderLineItem[] = [lineItem]\r\n\r\n const orderData: oConektaOrderCreate = {\r\n customer_info: customer_info,\r\n charges: charges,\r\n currency: \"MXN\",\r\n line_items: lineItems\r\n }\r\n\r\n const order: oConektaNewOrder = {\r\n data: orderData,\r\n id: client.id\r\n }\r\n\r\n if (dateTime != undefined) order.date = dateTime\r\n\r\n return order\r\n }\r\n\r\n public static _createOrder(\r\n client: oClient,\r\n contract: oContract,\r\n dateTime?: number,\r\n type?: string\r\n ): oConektaOrderCreate {\r\n\r\n console.log(\"CONEKTAID\", client)\r\n\r\n if (client.conekta_id == undefined) return {\r\n charges: [], currency: '', customer_info: {}, line_items: []\r\n }\r\n\r\n let typeDef = \"cash\"\r\n\r\n const customer_info: oConektaNewOrderCustomerInfo = {}\r\n\r\n if (type == eOrderType.CONEKTA_SPEI) {\r\n typeDef = \"spei\"\r\n customer_info.name = client.name\r\n customer_info.email = client.email\r\n customer_info.phone = client.phone\r\n } else {\r\n customer_info.customer_id = client.conekta_id\r\n }\r\n\r\n const week = ((3600 * 24) * 30) * 1000\r\n let next = new Date().getTime() + week\r\n next = Math.floor(next / 1000)\r\n\r\n const method: oConektaNewOrderPymMethod = {\r\n type: typeDef,\r\n expires_at: next,\r\n }\r\n const charge: oConektaNewOrderCharge = {\r\n amount: contract.financial.weeklyPayment * 100,\r\n payment_method: method\r\n }\r\n const charges = [charge]\r\n\r\n const antifraud_info: oConektaNewOrderAntifraudInfo = {\r\n newKey: \"Key\"\r\n }\r\n\r\n const lineItem: oConektaNewOrderLineItem = {\r\n antifraud_info: antifraud_info,\r\n name: `Referencia credito ${client.name}`,\r\n quantity: 1,\r\n unit_price: contract.financial.weeklyPayment * 100,\r\n }\r\n\r\n const lineItems: oConektaNewOrderLineItem[] = [lineItem]\r\n\r\n const orderData: oConektaOrderCreate = {\r\n customer_info: customer_info,\r\n charges: charges,\r\n currency: \"MXN\",\r\n line_items: lineItems\r\n }\r\n\r\n return orderData\r\n }\r\n\r\n\r\n public static defineObject(\r\n client: oClient,\r\n type: eOrderType,\r\n order: oConektaOrderCreate,\r\n dateTime?: number\r\n ): oConektaNewOrder | oConektaOrderSpei {\r\n\r\n let o: oConektaNewOrder | oConektaOrderSpei\r\n if (type == eOrderType.CONEKTA_SPEI) {\r\n\r\n o = {\r\n data: order,\r\n client: client\r\n }\r\n } else {\r\n o = {\r\n data: order,\r\n id: client.id\r\n }\r\n }\r\n\r\n if (dateTime != undefined) o.date = dateTime\r\n\r\n return o\r\n }\r\n}\r\n\r\n// '\r\n// {\r\n// \"customer_info\": {\r\n// \"name\": \"DevTest\",\r\n// \"email\": \"test@femsa.com\",\r\n// \"phone\": \"5522997233\"\r\n// },\r\n// \"currency\": \"MXN\",\r\n// \"line_items\": [\r\n// {\r\n// \"name\": \"Box of Cohiba S1s\",\r\n// \"quantity\": 1,\r\n// \"unit_price\": 20000\r\n// }\r\n// ]\r\n// }\r\n// '\r\n","import {UntypedFormControl, Validators} from '@angular/forms';\r\nimport {cNotification, oNotification} from 'ravcredit-core';\r\n\r\nexport const ROUTE_NOTIFICATIONS = \"notifications\"\r\nexport const ROUTE_GLOBAL_REFERENCE2 = \"/contract-reference\"\r\n\r\nconst prodFunction = \"https://us-central1-ravcredit-2b079.cloudfunctions.net/CustomerNotification\"\r\nconst prodFunction2 = \"https://customernotification-2imgfxveka-uc.a.run.app\"\r\nconst localTest = \"http://127.0.0.1:5001/ravcredit-2b079/us-central1/CustomerNotification\"\r\nexport const ravCreditFunctions = prodFunction\r\n\r\nexport class FactoryNotification {\r\n\r\n public static FormNotification(notification?: oNotification) {\r\n let data = cNotification\r\n\r\n if (notification) data = notification\r\n\r\n return {\r\n title: new UntypedFormControl(data.notification.title, [Validators.required, Validators.min(1)]),\r\n body: new UntypedFormControl(data.notification.body, [Validators.required, Validators.min(1)]),\r\n }\r\n }\r\n\r\n public static CreateGlobalNotificationObj(data: oNotification) {\r\n const o: any = {}\r\n\r\n if (data.notification) {\r\n const not: any = {}\r\n if (data.notification.body) not[\"body\"] = data.notification.body\r\n if (data.notification.title) not[\"title\"] = data.notification.title\r\n\r\n if (data.ids) not[\"ids\"] = data.ids\r\n\r\n if (data.tokens) not[\"tokens\"] = data.tokens\r\n\r\n if (data.type) not[\"type\"] = data.type\r\n\r\n if (data.data) if (data.data.route) not[\"route\"] = data.data.route\r\n\r\n o[\"data\"] = not\r\n }\r\n return o\r\n }\r\n\r\n}\r\n","import {IDBPDatabase, openDB} from 'idb';\r\nimport {Injectable} from '@angular/core';\r\nimport {\r\n dbAuthStore, dbBusinessConfig, dbBusinessInfo,\r\n dbClientsStore, dbConektaClientsStore, dbConektaReferencesStore, dbContractsStore, dbDynamicReferencesStore,\r\n dbName, dbNotificationsStore, dbPassportReferencesStore,\r\n dbVersion, eProvider,\r\n keyPathId,\r\n keyUserID, oBusinessConfig, oBusinessInfo, oClient,\r\n oClientBase,\r\n oContract, oNotification,\r\n oUser, tyClientContract\r\n} from 'ravcredit-core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IndexedDbService {\r\n\r\n indexDbStatus = false\r\n iDb!: IDBPDatabase<unknown>\r\n\r\n constructor() {\r\n }\r\n\r\n // async dbAuthorization() {\r\n // // constant k = this.getLocalUser()\r\n // // if (k == null) return false\r\n // //\r\n // // constant db = await openDB(dbName, dbVersion)\r\n // // // utils store = db.transaction(dbUsersStore).objectStore(dbUsersStore)\r\n // // constant auth = await db.get(dbAuthStore, k)\r\n // // // utils auth = await store.get(k)\r\n // // db.close()\r\n //\r\n // let auth: any = null\r\n // return auth;\r\n //\r\n // }\r\n\r\n /****************** SIMPLE Transactional - CRUD *************************************/\r\n\r\n async dbGetObject<T>(store: string, data: any): Promise<T> {\r\n if (!data) return data\r\n const db = await openDB(dbName, dbVersion)\r\n return await db.get(store, data) as T\r\n }\r\n\r\n async dbGetAllByStore<T>(store: string, index?: string) {\r\n const db = await openDB(dbName, dbVersion)\r\n return await db.getAll(store) as T\r\n }\r\n\r\n async dbAddObject<T>(store: string, data: any): Promise<boolean> {\r\n try {\r\n const db = await openDB(dbName, dbVersion)\r\n await db.put(store, data)\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n\r\n async dbRemoveObject<T>(store: string, data: any): Promise<T> {\r\n const db = await openDB(dbName, dbVersion)\r\n return await db.delete(store, data) as T\r\n }\r\n\r\n /************************************* AUTH **************************************/\r\n\r\n async dbSignIn(store: string, data: any) {\r\n await this.iDb.put(store, data)\r\n const _data = data as oUser\r\n this.setLocalStorage(keyUserID, _data.id)\r\n }\r\n\r\n async dbSignOut() {\r\n\r\n const k = this.getLocalUser()\r\n if (!k) return\r\n\r\n await this.iDb.delete(dbAuthStore, k)\r\n this.removeLocalStorage(keyUserID)\r\n }\r\n\r\n async dbAuthorization() {\r\n const k = this.getLocalUser()\r\n if (k == null) return false\r\n\r\n const db = await openDB(dbName, dbVersion)\r\n // utils store = db.transaction(dbUsersStore).objectStore(dbUsersStore)\r\n const auth = await db.get(dbAuthStore, k)\r\n // utils auth = await store.get(k)\r\n db.close()\r\n\r\n if (!auth) return false\r\n else return true\r\n }\r\n\r\n async dbGetToken() {\r\n const k = this.getLocalUser()\r\n if (k == null) return \"\"\r\n\r\n const db = await openDB(dbName, dbVersion)\r\n // utils store = db.transaction(dbUsersStore).objectStore(dbUsersStore)\r\n const auth = await db.get(dbAuthStore, k) as oUser\r\n // utils auth = await store.get(k)\r\n\r\n db.close()\r\n return auth.access_token != \"\" ? auth.access_token : \"\"\r\n }\r\n\r\n /******************************** Local Storage *************************************/\r\n\r\n setLocalStorage(k: string, v: string) {\r\n localStorage.setItem(k, v)\r\n }\r\n\r\n getLocalStorage<T>(k: string) {\r\n return localStorage.getItem(k) as T\r\n }\r\n\r\n removeLocalStorage(k: string) {\r\n return localStorage.removeItem(k)\r\n }\r\n\r\n getLocalUser(): string | null {\r\n const k = localStorage.getItem(keyUserID)\r\n return (k)\r\n }\r\n\r\n /********************************************************************************* **/\r\n\r\n async getPlatformUser() {\r\n const k = this.getLocalStorage<string>(keyUserID) as string\r\n if (k == null) return \"\"\r\n\r\n const db = await openDB(dbName, dbVersion)\r\n // utils store = db.transaction(dbUsersStore).objectStore(dbUsersStore)\r\n const auth = await db.get(dbAuthStore, k) as oUser\r\n // utils auth = await store.get(k)\r\n\r\n db.close()\r\n return auth.name != \"\" ? auth.name : \"\"\r\n }\r\n\r\n async getToken() {\r\n const k = this.getLocalUser()\r\n if (k == null) return \"\"\r\n\r\n const db = await openDB(dbName, dbVersion)\r\n // utils store = db.transaction(dbUsersStore).objectStore(dbUsersStore)\r\n const auth = await db.get(dbAuthStore, k) as oUser\r\n // utils auth = await store.get(k)\r\n\r\n db.close()\r\n return auth.access_token != \"\" ? auth.access_token : \"\"\r\n }\r\n\r\n async addObject<T>(store: string, data: any): Promise<boolean> {\r\n try {\r\n const db = await openDB(dbName, dbVersion)\r\n await db.put(store, data)\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n\r\n async patchObject<T>(store: string, data: any): Promise<T> {\r\n try {\r\n const db = await openDB(dbName, dbVersion)\r\n const txn = db.transaction(store, \"readwrite\")\r\n const obj = txn.objectStore(store)\r\n // constant index = obj.index(keyPathCurp)\r\n await obj.put(data)\r\n return data as T\r\n } catch (e) {\r\n console.error(e)\r\n return {} as T\r\n }\r\n }\r\n\r\n async updateObjectByID<T>(store: string, id: string, data: T): Promise<boolean> {\r\n try {\r\n\r\n const db = await openDB(dbName, dbVersion)\r\n const res = await db.get(store, id) as oClientBase\r\n\r\n if (res != undefined) await this.removeObject(dbClientsStore, id)\r\n\r\n return await this.addObject(store, data)\r\n\r\n } catch (e) {\r\n console.error(\"updateObjectByID Catch Error:\", e)\r\n return false\r\n }\r\n }\r\n\r\n async upsertObjectById<T>(store: string, id: string, data: T) {\r\n\r\n const db = await openDB(dbName, dbVersion)\r\n const res = await db.get(store, id)\r\n\r\n if (res) await this.removeObject<T>(store, id)\r\n\r\n return await db.add(store, data)\r\n }\r\n\r\n async removeObject<T>(store: string, data: any): Promise<T> {\r\n const db = await openDB(dbName, dbVersion)\r\n return await db.delete(store, data) as T\r\n }\r\n\r\n async deleteObjectByID<T>(store: string, id: string) {\r\n try {\r\n const db = await openDB(dbName, dbVersion)\r\n const txn = db.transaction(store, \"readwrite\")\r\n const obj = txn.objectStore(store)\r\n const index = obj.index(keyPathId)\r\n const va2 = index.openCursor(id)\r\n va2.then(async cursor => {\r\n while (cursor) {\r\n cursor.delete();\r\n cursor = await cursor.continue();\r\n }\r\n })\r\n return va2\r\n } catch (e) {\r\n console.error(e)\r\n return {} as T\r\n }\r\n }\r\n\r\n async cleanAll<T>(store: string) {\r\n const db = await openDB(dbName, dbVersion)\r\n return await db.clear(store)\r\n }\r\n\r\n async getObject<T>(store: string, data: any): Promise<T> {\r\n if (!data) return data\r\n const db = await openDB(dbName, dbVersion)\r\n return await db.get(store, data) as T\r\n }\r\n\r\n async addBuildByStore(store: string, data: any[]) {\r\n for (const o of data) {\r\n const exists = await this.getObject(store, o[\"id\"])\r\n if (!exists) await this.addObject(store, o)\r\n else await this.updateObject(store, o)\r\n }\r\n }\r\n\r\n async updateObject<T>(store: string, data: any) {\r\n const db = await openDB(dbName, dbVersion)\r\n await db.put(store, data)\r\n }\r\n\r\n async getAllByStore<T>(store: string, index?: string) {\r\n const db = await openDB(dbName, dbVersion)\r\n return await db.getAll(store) as T\r\n }\r\n\r\n async getAuthUser() {\r\n const data = await this.getAllByStore<oUser[]>(dbAuthStore)\r\n return data[0]\r\n }\r\n\r\n async getAuthName() {\r\n const data = await this.getAuthUser()\r\n return data.name\r\n }\r\n\r\n async getAuthUsername() {\r\n const data = await this.getAuthUser()\r\n return data.username\r\n }\r\n\r\n async saveDataLocally<T>(\r\n contract: oContract,\r\n client: oClientBase,\r\n providerData: T,\r\n ): Promise<boolean> {\r\n try {\r\n await this.addObject(dbClientsStore, client)\r\n await this.addObject(dbContractsStore, contract)\r\n\r\n if (!providerData) return false\r\n\r\n if (contract.financial.provider === eProvider.Conekta) {\r\n await this.addObject(dbConektaClientsStore, providerData)\r\n await this.addObject(dbConektaReferencesStore, providerData)\r\n } else if (contract.financial.provider === eProvider.Passport) {\r\n await this.addObject(dbPassportReferencesStore, providerData)\r\n } else if (contract.financial.provider === eProvider.DynamiCore) {\r\n await this.addObject(dbDynamicReferencesStore, providerData)\r\n }\r\n return true\r\n } catch (e) {\r\n console.error(e)\r\n return false\r\n }\r\n }\r\n\r\n /******************** MERGE **************************************/\r\n async getAllClientContracts(): Promise<tyClientContract[]> {\r\n const clientContract: tyClientContract[] = []\r\n const clients = await this.getAllByStore<oClient[]>(dbClientsStore)\r\n if (clients.length == 0) return []\r\n\r\n for (let client of clients) {\r\n const contract = await this.getObject<oContract>(dbContractsStore, client.contract)\r\n const e = {...client, ...contract}\r\n // preserve the id value over concat models\r\n e.id = client.id\r\n e.status = client.status\r\n clientContract.push(e)\r\n }\r\n return clientContract\r\n }\r\n\r\n /******************** MERGE **************************************/\r\n\r\n async dbGetAllClientContracts(): Promise<tyClientContract[]> {\r\n const clientContract: tyClientContract[] = []\r\n const clients = await this.dbGetAllByStore<oClient[]>(dbClientsStore)\r\n if (clients.length == 0) return []\r\n\r\n for (let client of clients) {\r\n const contract = await this.dbGetObject<oContract>(dbContractsStore, client.contract)\r\n const e = {...client, ...contract}\r\n // preserve the id value over concat models\r\n e.id = client.id\r\n e.status = client.status\r\n clientContract.push(e)\r\n }\r\n return clientContract\r\n }\r\n\r\n /****************** BUSINESS INFO *************************************/\r\n\r\n async getBusinessInfo(): Promise<oBusinessInfo | null> {\r\n const config: oBusinessInfo[] = await this.dbGetAllByStore<oBusinessInfo[]>(dbBusinessInfo)\r\n\r\n if (!config) return null\r\n\r\n return config[0]\r\n }\r\n\r\n /****************** BUSINESS CONFIG ************************************/\r\n\r\n async getBusinessConfig(): Promise<oBusinessConfig | null> {\r\n const config: oBusinessConfig[] = await this.dbGetAllByStore<oBusinessConfig[]>(dbBusinessConfig)\r\n\r\n if (!config) return null\r\n\r\n return config[0]\r\n }\r\n\r\n async updateBusinessConfig(config: oBusinessConfig) {\r\n\r\n // config.version = \"1.0\"\r\n await this.dbRemoveObject(dbBusinessConfig, \"1.0\")\r\n await this.dbAddObject(dbBusinessConfig, config)\r\n }\r\n\r\n async updateBusinessInfo(config: oBusinessInfo) {\r\n\r\n config.version = \"v2024\"\r\n await this.dbRemoveObject(dbBusinessInfo, \"v2024\")\r\n await this.dbAddObject(dbBusinessInfo, config)\r\n }\r\n\r\n /**************** NOTIFICATIONS *********************************/\r\n\r\n async getLocalNotifications(): Promise<oNotification[] | null> {\r\n const notifications: oNotification[] = await this.dbGetAllByStore<oNotification[]>(dbNotificationsStore)\r\n if (!notifications) return null\r\n return notifications\r\n }\r\n\r\n async updateNotifications(notifications: oNotification[]) {\r\n for (const o of notifications) {\r\n const exists = await this.dbGetObject(dbNotificationsStore, o.notification_id)\r\n if (!exists) {\r\n await this.dbAddObject(dbNotificationsStore, o)\r\n }\r\n }\r\n }\r\n}\r\n","import {add, format, getDate} from \"date-fns\";\r\nimport {es} from 'date-fns/locale/es';\r\nimport {inject, Injector, runInInjectionContext} from '@angular/core';\r\nimport {IndexedDbService} from '../idb/indexed-db.service';\r\nimport {\r\n dateCompleteFormat,\r\n dateFormat,\r\n eProvider,\r\n expiredPayment,\r\n IDCTxnRow, oConektaOrder,\r\n oPaymentDates,\r\n timeFormat\r\n} from 'ravcredit-core';\r\n\r\nexport class UtilTime {\r\n private localeFns = es\r\n\r\n public static IsExpired(time: number): boolean {\r\n const dateInit = new Date(time)\r\n const dayInit = dateInit.getDate()\r\n const monthInit = dateInit.getMonth() + 1\r\n\r\n const dateActual = new Date()\r\n const dayActual = dateActual.getDate()\r\n const monthActual = dateActual.getMonth() + 1\r\n\r\n if (monthActual > monthInit) return true\r\n\r\n return dayActual > dayInit;\r\n }\r\n\r\n public static getDates(initial: number, weeks: number): oPaymentDates[] {\r\n const dates: oPaymentDates[] = []\r\n let prev = initial\r\n for (let i = 0; i < weeks; i++) {\r\n const date = add(prev, {weeks: 1})\r\n dates.push(\r\n {\r\n week: i + 1,\r\n date: date.getTime()\r\n }\r\n )\r\n prev = date.getTime()\r\n }\r\n return dates\r\n }\r\n\r\n public static getPreviousWeek() {\r\n const today = new Date().getTime()\r\n const week = ((3600 * 24) * 7) * 1000\r\n return today - week\r\n }\r\n\r\n public static getDayNum(date: Date | number): number {\r\n return getDate(date)\r\n }\r\n\r\n public static getDayName(date: Date | number): string {\r\n return format(date, \"EEEE\", {locale: es})\r\n }\r\n\r\n public static getMonthName(date: Date | number): string {\r\n return format(date, \"MMMM\", {locale: es}).toUpperCase();\r\n }\r\n\r\n public static getYear(date: Date | number): string {\r\n return format(date, \"yyyy\")\r\n }\r\n\r\n public static GetNextPayment(time: number, provider: string) {\r\n let week = 0\r\n if (provider == eProvider.Conekta) {\r\n week = (((3600 * 24) * 7))\r\n } else if (provider == eProvider.DynamiCore) {\r\n week = (((3600 * 24) * 7) * 1000)\r\n }\r\n return this.getLocalTimeFromLong(time + week, provider)\r\n }\r\n\r\n public static getLocalTimeFromLong(time: number, provider: string) {\r\n if (time <= 0) return \"\"\r\n let factor = this.GetFactor(provider)\r\n let dateTime = time * factor\r\n let parsedDate = format(new Date(dateTime), dateFormat, {\r\n locale: es\r\n })\r\n return parsedDate\r\n }\r\n\r\n public static DelayPaymentLast(\r\n lastPayment: number, provider: string, injector: Injector\r\n ): boolean {\r\n let factor = this.GetFactor(provider)\r\n let now = new Date().getTime()\r\n let last = 0\r\n\r\n if (provider == eProvider.Conekta)\r\n last = ((((3600 * 24) * 7)) + lastPayment) * factor\r\n else if (provider == eProvider.DynamiCore)\r\n last = ((((3600 * 24) * 7) * 1000) + lastPayment) * factor\r\n\r\n runInInjectionContext(injector, () => {\r\n const idb = inject(IndexedDbService)\r\n // constant observable = inject(ObservablesService)\r\n idb.setLocalStorage(expiredPayment, String(now > last))\r\n // observable.isLate.next(now > last)\r\n })\r\n return now > last\r\n }\r\n\r\n public static GetFactor(provider: string) {\r\n let factor = 1\r\n if (provider == eProvider.Conekta)\r\n factor = 1000\r\n return factor\r\n }\r\n\r\n public static GetEpochFromFormatedDate(date: string): number {\r\n if (date == \"\") return 0\r\n\r\n const _date = new Date(date)\r\n if (isNaN(_date.getTime())) return 0\r\n return _date.getTime()\r\n }\r\n\r\n public static GetTimeFromString(date: string) {\r\n return format(new Date(date), timeFormat, {\r\n locale: es\r\n })\r\n }\r\n\r\n public static GetDateFromString(date: string) {\r\n return format(new Date(date), dateCompleteFormat, {\r\n locale: es\r\n })\r\n }\r\n\r\n // Quick sort\r\n public static SortingByTime(payments: IDCTxnRow[]): IDCTxnRow[] {\r\n if (payments.length <= 1) return payments\r\n\r\n const pivot = payments[payments.length - 1]\r\n const pivotDate = new Date(pivot.created).getTime()\r\n const left: IDCTxnRow[] = []\r\n const right: IDCTxnRow[] = []\r\n\r\n for (let i = 0; i < payments.length - 1; i++) {\r\n const actualDate = new Date(payments[i].created).getTime()\r\n if (actualDate > pivotDate) left.push(payments[i])\r\n else right.push(payments[i])\r\n }\r\n\r\n return [...this.SortingByTime(left), pivot, ...this.SortingByTime(right)]\r\n }\r\n\r\n public static SortingByTimeConekta(payments: oConektaOrder []): oConektaOrder[] {\r\n if (payments.length <= 1) return payments;\r\n\r\n const pivot = payments[payments.length - 1]\r\n let pivotDate = 0;\r\n if (pivot.charges.data == undefined) return payments\r\n\r\n if (pivot.charges.data[0].paid_at != undefined) {\r\n pivotDate = pivot.charges.data[0].paid_at\r\n } else {\r\n pivot.charges.data[0].created_at\r\n }\r\n\r\n if (pivotDate <= 0) return payments;\r\n\r\n const left: oConektaOrder[] = []\r\n const right: oConektaOrder [] = []\r\n\r\n for (let i = 0; i < payments.length - 1; i++) {\r\n const actual = payments[i].charges.data[0].paid_at;\r\n if (actual <= 0) continue\r\n if (actual > pivotDate) left.push(payments[i])\r\n else right.push(payments[i])\r\n }\r\n\r\n return [...this.SortingByTimeConekta(left), pivot, ...this.SortingByTimeConekta(right)]\r\n }\r\n}\r\n","import {ePassportTypes, iGlobalPassport, oClientBase, oContract} from 'ravcredit-core';\r\n\r\nexport class FactoryPassport {\r\n public static CreatePassportReference(\r\n client: oClientBase,\r\n contract: oContract,\r\n dateTime?: number\r\n ): iGlobalPassport {\r\n const o = {\r\n passport: {\r\n type: ePassportTypes.CREATE,\r\n data: {\r\n name: client.name,\r\n email: client.email,\r\n amount: contract.financial.weeklyPayment,\r\n expirationDate: \"\",\r\n additional: {\r\n client: client.name,\r\n clientID: client.id,\r\n credit: client.status\r\n }\r\n }\r\n },\r\n contract: contract,\r\n date: dateTime\r\n }\r\n if (dateTime != undefined) o.date = dateTime\r\n return o\r\n }\r\n}\r\n","import {eProvider, IDCTxnRow, oConektaRes} from 'ravcredit-core';\r\n\r\nexport interface oPaymentGlobal {\r\n conektaPayment?: oConektaRes,\r\n dynamicPayment?: IDCTxnRow[],\r\n}\r\n\r\nexport class FactoryPayment {\r\n public static CreatePayment(data: oConektaRes | IDCTxnRow[], provider: eProvider): oPaymentGlobal {\r\n const o: oPaymentGlobal = {}\r\n\r\n if (provider == eProvider.DynamiCore)\r\n o.dynamicPayment = data as IDCTxnRow[];\r\n\r\n if (provider == eProvider.Conekta)\r\n o.conektaPayment = data as oConektaRes\r\n\r\n return o\r\n }\r\n}\r\n","export class UtilGeneral {\r\n\r\n public static cleanUsername(password: string): string {\r\n if (password.includes(\"+\") || password.length > 10) {\r\n let len = 10 // standard Mexico phone length\r\n let pLen = password.length - 1\r\n let _password: string[] = []\r\n\r\n for (let i = len; i > 0; i--) {\r\n _password.push(password[pLen])\r\n pLen--\r\n }\r\n\r\n return _password.reverse().join(\"\")\r\n }\r\n\r\n return password\r\n }\r\n\r\n}\r\n","/*\r\n * Public API Surface of ravcredit-lib\r\n */\r\n\r\nexport * from './lib/ravcredit-lib.service';\r\nexport * from './lib/ravcredit-lib.component';\r\n\r\nexport * from './lib/v1/util/UtilClient';\r\nexport * from './lib/v1/util/UtilBusiness';\r\nexport * from './lib/v1/util/UtilDynamiCore';\r\nexport * from './lib/v1/util/UtilContract';\r\nexport * from './lib/v1/util/UtilConekta';\r\nexport * from './lib/v1/util/UtilNotification';\r\nexport * from './lib/v1/util/UtilTime';\r\nexport * from './lib/v1/util/UtilPassport';\r\nexport * from './lib/v1/util/UtilPayment';\r\nexport * from './lib/v1/util/UtilGeneral';\r\n\r\nexport * from './lib/v1/idb/indexed-db.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ravcredit-lib.mjs","sources":["../../../projects/ravcredit-lib/src/lib/ravcredit-lib.service.ts","../../../projects/ravcredit-lib/src/lib/ravcredit-lib.component.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilClient.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilBusiness.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilDynamiCore.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilContract.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilConekta.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilNotification.ts","../../../projects/ravcredit-lib/src/lib/v1/idb/indexed-db.service.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilTime.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilPassport.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilPayment.ts","../../../projects/ravcredit-lib/src/lib/v1/util/UtilGeneral.ts","../../../projects/ravcredit-lib/src/lib/v2/constant/constants.ts","../../../projects/ravcredit-lib/src/lib/v2/constant/messages.ts","../../../projects/ravcredit-lib/src/public-api.ts","../../../projects/ravcredit-lib/src/ravcredit-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RavcreditLibService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-ravcredit-lib',\r\n standalone: true,\r\n imports: [],\r\n template: `\r\n <p>\r\n ravcredit-lib works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class RavcreditLibComponent {\r\n\r\n}\r\n","import {\n cContract,\n cScore,\n eClientStatus,\n iClientContract,\n iConektaRecurrent,\n iConektaSources, IDCAccount, IDCClient,\n oClient, oContract, oFinancial, tyClientContract\n} from 'ravcredit-core';\n\nexport class FactoryClient {\n\n public static CreateClientToConektaObj(data: oClient) {\n const o: any = {}\n if (data.name && data.name.length > 0) o.name = data.name;\n if (data.username && data.name.length > 0) o.username = data.username;\n if (data.email && data.email.length > 0) o.email = data.email;\n if (data.phone && data.phone.length > 0) o.phone = String(data.phone);\n if (data.curp && data.curp.length > 0) o.curp = data.curp;\n if (data.userReferences && data.userReferences.length > 0) o.userReferences = data.userReferences;\n if (data.contract) o.contract = data.contract;\n if (data.createdAt) o.createdAt = data.createdAt;\n if (data.lastLogin) o.lastLogin = data.lastLogin;\n if (data.conekta_id) o.conekta_id = data.conekta_id;\n\n return o\n }\n\n public static CreateClientFromFormObj(data: any, client?: oClient): oClient {\n const o: oClient = {\n id: \"\",\n name: data[\"client\"][0].name,\n username: data[\"auth\"][0].username,\n password: data[\"auth\"][0].password,\n email: data[\"client\"][0].email,\n phone: String(data[\"client\"][0].phone),\n curp: data[\"client\"][0].curp,\n userReferences: data[\"client\"][0].userReferences,\n status: eClientStatus.ACTIVE,\n score: cScore,\n }\n\n if (client != undefined) {\n if (client.dynamic_id) o.dynamic_id = client.dynamic_id;\n if (client.dynamic_account) o.dynamic_account = client.dynamic_account;\n if (client.conekta_id) o.conekta_id = client.conekta_id;\n }\n\n return o\n }\n\n public static CreateClientConektaObj(data: oClient, finalDate: number) {\n const sources: iConektaSources = {\n type: \"oxxo_recurrent\",\n expires_at: finalDate\n }\n return {\n name: data.name,\n email: data.email,\n phone: data.phone,\n contract: data.contract_temporary,\n client_id: data.id,\n payment_sources: [sources]\n }\n }\n\n public static MapperConektaClient(\n client: oClient,\n conekta: iConektaRecurrent,\n ): iClientContract {\n const o: oClient = client\n\n o.name = conekta.name\n o.email = conekta.email\n o.phone = conekta.phone\n o.conekta_id = conekta.id\n\n return {\n client: o,\n contract: cContract\n }\n }\n\n public static MapperTypeContCli_Client(_client: tyClientContract): oClient {\n const client: oClient = {\n score: cScore,\n id: _client.id,\n name: _client.name,\n username: _client.username,\n email: _client.email,\n phone: _client.phone,\n curp: _client.curp,\n userReferences: _client.userReferences,\n status: _client.status,\n contract: _client.contract,\n reference: _client.reference,\n references: _client.references,\n conekta_id: _client.conekta_id,\n dynamic_account: _client.dynamic_account,\n token: _client.token,\n contract_temporary: _client.contract_temporary,\n lastLogin: _client.lastLogin,\n dynamic_id: _client.dynamic_id,\n createdAt: _client.createdAt,\n payments: _client.payments,\n password: _client.password,\n contractUrl: _client.contractUrl,\n dynamic_ref: _client.dynamic_ref,\n exists: _client.exists,\n passport_id: _client.passport_id\n }\n\n return client\n }\n\n public static MapperDynamicClient(\n dynamic: IDCClient,\n client: oClient,\n contract: oContract,\n clientDyn?: IDCClient,\n account?: IDCAccount,\n ): iClientContract {\n // constant o: tyClientContract = cTyClientContract\n\n /* Client ------------------------------------------------------ */\n client.username = `${dynamic.pii.name} ${dynamic.pii.motherlastname} ${dynamic.pii.lastname}`\n client.phone = dynamic.pii.phone as string\n client.dynamic_id = dynamic.id\n client.curp = dynamic.pii.curp\n client.email = dynamic.pii.email\n\n if (account)\n client.dynamic_account = account.id\n\n /* Auth ---------------------------------------------------------- */\n\n\n /* Device -------------------------------------------------------- */\n contract.device.IMEI = clientDyn!.pii.imei\n contract.device.device = clientDyn!.pii.model\n\n /* Contract ------------------------------------------------------ */\n contract.by = clientDyn!.pii.seller_name\n\n if (clientDyn!.pii.fotografia_del_cliente_con_el_equipo != undefined) {\n const oPhoto = clientDyn!.pii.fotografia_del_cliente_con_el_equipo!\n if (oPhoto != \"\") {\n const _photo = JSON.parse(oPhoto)\n if (_photo)\n contract.photo = _photo[0].url\n }\n }\n\n contract.address.state = dynamic.pii.state\n contract.address.city = dynamic.pii.city\n contract.address.street = dynamic.pii.street\n contract.address.ext = dynamic.pii.num_ext as string\n contract.address.zip = dynamic.pii.zipcode as string\n contract.address.neighbor = dynamic.pii.colony\n\n /* Financial ------------------------------------------------------ */\n contract.dynamicAccount = Number(account?.id)\n\n if (account?.config.installments) {\n contract.financial.deadlines = {\n weeks: account.config.installments,\n interest: 0\n }\n }\n\n if (account?.properties.expected_disbursed)\n contract.financial.total = account?.properties.expected_disbursed\n\n if (account?.properties.principal_disbursed)\n contract.financial.financed = account?.properties.principal_disbursed\n\n if (account?.properties.amount_commission_opening) {\n contract.financial.initial = account?.properties.amount_commission_opening\n contract.financial.amount_commission_opening = account?.properties.amount_commission_opening\n }\n\n contract.financial.interest_rate = Number(clientDyn!.pii.interest_rate)\n contract.financial.interest_arrears = account?.config.interest_arrears\n contract.financial.commission_opening = account?.config.commission_opening\n contract.financial.credit_type = account?.config.credit_type\n\n contract.financial.principal_disbursed = account?.properties.principal_disbursed\n contract.financial.expected_disbursed = account?.properties.expected_disbursed\n\n contract.financial.weeklyPayment = Number(clientDyn!.pii.amount_by_period)\n\n return {\n client: client,\n contract: contract,\n }\n }\n\n public static MapperFinancialContract(\n contract: oContract,\n account: IDCAccount,\n ): oFinancial {\n\n contract.dynamicAccount = Number(account.id)\n\n if (account.config.installments) {\n contract.financial.deadlines = {\n weeks: account.config.installments,\n interest: 0\n }\n }\n\n const total =\n account.config.financed_amount != undefined ? account.config.financed_amount : 0\n\n if (total > 0)\n contract.financial.total = total\n\n // if (account.properties.expected_disbursed)\n const expected_disbursed =\n account.properties.expected_disbursed != undefined ? account.properties.expected_disbursed : 0\n\n if (expected_disbursed > 0) contract.financial.total = expected_disbursed\n contract.financial.expected_disbursed = expected_disbursed\n\n contract.financial.interest_rate = account.config.interest_rate\n contract.financial.interest_arrears = account.config.interest_arrears\n\n // if (account.properties.principal_disbursed)\n if (account.properties.principal_disbursed > 0)\n contract.financial.financed = account.properties.principal_disbursed\n\n contract.financial.principal_disbursed = account.properties.principal_disbursed\n\n const amount_commission_opening =\n account.properties.amount_commission_opening != undefined ? account.properties.amount_commission_opening : 0\n\n if (amount_commission_opening > 0)\n contract.financial.initial = amount_commission_opening\n\n contract.financial.amount_commission_opening = amount_commission_opening\n\n contract.financial.interest_arrears = account.config.interest_arrears\n contract.financial.commission_opening = account.config.commission_opening\n contract.financial.credit_type = account.config.credit_type\n\n contract.financial.clabe = String(account.properties.clabe!)\n\n return contract.financial\n }\n\n public static CheckEmail =\n (email: string): boolean => email.includes(\"@\") && email.endsWith(\".com\")\n}\n","import {UntypedFormArray, UntypedFormControl, Validators} from \"@angular/forms\";\nimport {\n cAddress, cBusinessConfig,\n cBusinessInfo,\n cDaySchedule,\n oAddress, oBusinessConfig, oBusinessDeadlines,\n oBusinessInfo,\n oTmpBusinessConfig,\n oWeekSchedule\n} from 'ravcredit-core';\n\nexport class FactoryBusiness {\n\n public static FormBusinessInfo(info?: oBusinessInfo) {\n let data = cBusinessInfo\n\n if (info) data = info\n\n if (!info?.address) data.address = cAddress\n\n return {\n name: new UntypedFormControl(data.name, Validators.required),\n email: new UntypedFormControl(data.email, [Validators.required, Validators.email]),\n desc: new UntypedFormControl(data.desc, [Validators.required, Validators.email]),\n street: new UntypedFormControl(data.address.street, Validators.required),\n neighbor: new UntypedFormControl(data.address.neighbor, Validators.required),\n cp: new UntypedFormControl(data.address.zip, Validators.required),\n ext: new UntypedFormControl(data.address.ext, Validators.required),\n int: new UntypedFormControl(data.address.int),\n city: new UntypedFormControl(data.address.city, Validators.required),\n state: new UntypedFormControl(data.address.state, Validators.required),\n phones: new UntypedFormControl(data.phones),\n mondayOpen: new UntypedFormControl(data.schedule?.monday.open),\n mondayClose: new UntypedFormControl(data.schedule?.monday.close),\n tuesdayOpen: new UntypedFormControl(data.schedule?.tuesday.open),\n tuesdayClose: new UntypedFormControl(data.schedule?.tuesday.close),\n wednesdayOpen: new UntypedFormControl(data.schedule?.wednesday.open),\n wednesdayClose: new UntypedFormControl(data.schedule?.wednesday.close),\n thursdayOpen: new UntypedFormControl(data.schedule?.thursday.open),\n thursdayClose: new UntypedFormControl(data.schedule?.thursday.close),\n fridayOpen: new UntypedFormControl(data.schedule?.friday.open),\n fridayClose: new UntypedFormControl(data.schedule?.friday.close),\n saturdayOpen: new UntypedFormControl(data.schedule?.saturday.open),\n saturdayClose: new UntypedFormControl(data.schedule?.saturday.close),\n sundayOpen: new UntypedFormControl(data.schedule?.sunday.open),\n sundayClose: new UntypedFormControl(data.schedule?.sunday.close),\n }\n\n }\n\n public static CreateBusinessInfoObj(data: oTmpBusinessConfig) {\n const address: oAddress = cAddress\n\n const schedule: oWeekSchedule = {\n monday: cDaySchedule,\n tuesday: cDaySchedule,\n wednesday: cDaySchedule,\n thursday: cDaySchedule,\n friday: cDaySchedule,\n saturday: cDaySchedule,\n sunday: cDaySchedule\n }\n\n if (data.street) address.street = data.street\n if (data.state) address.state = data.state\n if (data.neighbor) address.neighbor = data.neighbor\n if (data.city) address.city = data.city\n if (data.ext) address.ext = data.ext\n if (data.int) address.int = data.int\n if (data.cp) address.zip = data.cp\n\n if (data.mondayOpen) schedule.monday.open = Number(data.mondayOpen)\n if (data.mondayClose) schedule.monday.close = Number(data.mondayClose)\n\n if (data.tuesdayOpen) schedule.tuesday.open = Number(data.tuesdayOpen)\n if (data.tuesdayClose) schedule.tuesday.close = Number(data.tuesdayClose)\n\n if (data.wednesdayOpen) schedule.wednesday.open = Number(data.wednesdayOpen)\n if (data.wednesdayClose) schedule.wednesday.close = Number(data.wednesdayClose)\n\n if (data.thursdayOpen) schedule.thursday.open = Number(data.thursdayOpen)\n if (data.thursdayClose) schedule.thursday.close = Number(data.thursdayClose)\n\n if (data.fridayOpen) schedule.friday.open = Number(data.fridayOpen)\n if (data.fridayClose) schedule.friday.close = Number(data.fridayClose)\n\n if (data.saturdayOpen) schedule.saturday.open = Number(data.saturdayOpen)\n if (data.saturdayClose) schedule.saturday.close = Number(data.saturdayClose)\n\n if (data.sundayOpen) schedule.sunday.open = Number(data.sundayOpen)\n if (data.sundayClose) schedule.sunday.close = Number(data.sundayClose)\n\n const info: oBusinessInfo = {\n version: \"v2024\",\n name: data.name ? data.name : \"\",\n address: address,\n phones: data.phones ? data.phones : [],\n email: data.email ? data.email : \"\",\n schedule: schedule,\n desc: data.desc ? data.desc : \"\"\n }\n\n return info\n }\n\n public static FormDeadlineConfig(data: oBusinessDeadlines) {\n // if (!data) data = cBusinessDeadlines\n\n return {\n weeks: new UntypedFormControl(data.weeks),\n interest: new UntypedFormControl(data.interest),\n }\n }\n\n public static FormBusinessConfig(config?: oBusinessConfig) {\n let data = cBusinessConfig\n if (config) data = config\n\n return {\n downloadsClient: new UntypedFormControl(data.downloadsClient),\n passportPaymentReference: new UntypedFormControl(data.passportPaymentReference),\n conektaPaymentReference: new UntypedFormControl(data.conektaPaymentReference),\n conektaPaymentLink: new UntypedFormControl(data.conektaPaymentLink),\n dynamicPaymentReference: new UntypedFormControl(data.dynamicPaymentReference),\n deadlines: new UntypedFormArray([])\n }\n }\n\n public static testBusiness(message: string) {\n return `Message ${message}`\n }\n}\n","import {UntypedFormControl, Validators} from \"@angular/forms\";\r\nimport {\r\n cIDCCustomer, IDCAccount, IDCClient, IDCCredit, IDCCreditConfig, IDCCreditProperties,\r\n IDCNewReference, IDCPayment,\r\n IDCRefCustInfo,\r\n IDCRefItems,\r\n IDCRefPymtMethod,\r\n oClientBase,\r\n oContract,\r\n partialIDCData\r\n} from 'ravcredit-core';\r\n\r\n/**\r\n * Common Factory Dynamic\r\n * */\r\nexport class FactoryDynamiCore {\r\n\r\n public static CreateReferenceBody(\r\n client: oClientBase,\r\n contract: oContract,\r\n dateTime?: number\r\n ): IDCNewReference | null {\r\n\r\n const customerInfo: IDCRefCustInfo = {\r\n name: client.name,\r\n email: client.email,\r\n phone: client.phone,\r\n }\r\n\r\n const customerItems: IDCRefItems = {\r\n name: \"Referencia Oxxo\",\r\n unit_price: contract.financial.weeklyPayment,\r\n quantity: 1\r\n }\r\n\r\n const paymentMethod: IDCRefPymtMethod = {\r\n type: \"oxxo_cash\"\r\n }\r\n\r\n if (!client.dynamic_account) return null\r\n\r\n const body: IDCNewReference = {\r\n id: client.id,\r\n data: {\r\n account: Number(client.dynamic_account),\r\n operation: 98,\r\n customer_info: customerInfo,\r\n items: customerItems,\r\n payment_method: paymentMethod\r\n }\r\n }\r\n\r\n if (dateTime != undefined) body.date = dateTime\r\n\r\n return body\r\n }\r\n\r\n public static CreateEmptyCustomer(): partialIDCData {\r\n return cIDCCustomer\r\n }\r\n\r\n public static CreateCustomerFromOClient(client: oClientBase, contract: oContract): partialIDCData {\r\n const o: partialIDCData = cIDCCustomer\r\n\r\n o.pii.email = client.email\r\n o.pii.name = client.name\r\n o.pii.curp = client.curp\r\n o.pii.phone = client.phone\r\n o.pii.amount = String(contract.financial.total)\r\n o.pii.financed = String(contract.financial.financed)\r\n o.pii.amount_by_period = String(contract.financial.weeklyPayment)\r\n\r\n o.pii.zipcode = contract.address.zip\r\n o.pii.street = contract.address.street\r\n o.pii.city = contract.address.city\r\n o.pii.state = contract.address.state\r\n o.pii.colony = contract.address.neighbor\r\n o.pii.num_ext = contract.address.ext\r\n\r\n return o\r\n }\r\n\r\n public static CreateDynamicCredit(\r\n client: oClientBase,\r\n contract: oContract,\r\n clientDynamic: IDCClient,\r\n ): Partial<IDCCredit> | null {\r\n const properties: IDCCreditProperties = {\r\n start_date: \"\",\r\n principal_disbursed: 0,\r\n expected_disbursed: 0,\r\n amount_commission_opening: 0\r\n }\r\n\r\n const config: IDCCreditConfig = {\r\n contract: `FP-${client.name}`,\r\n credit_type: \"Arrendamiento\",\r\n interest_rate: 528,\r\n installments: 0,\r\n periodicity: \"WEEK\",\r\n interest_base: \"ACT/ACT\",\r\n commission_opening: 40,\r\n financed_amount: contract.financial.financed,\r\n interest_arrears: 0\r\n }\r\n\r\n if (!client.dynamic_account) return null\r\n\r\n return {\r\n id: Number(client.dynamic_account),\r\n group: clientDynamic.group,\r\n company: clientDynamic.company,\r\n client: clientDynamic.id,\r\n created_at: \"\",\r\n currency: \"484\",\r\n status: \"pending\",\r\n properties: properties,\r\n product: 1756,\r\n enabled: \"1\",\r\n config: config,\r\n amount: 0,\r\n type: \"liabilities\",\r\n identifier: null,\r\n start_at: null\r\n }\r\n }\r\n\r\n public static CreatePayment(\r\n contract: oContract,\r\n clientDynamic: IDCAccount,\r\n ): IDCPayment {\r\n return {\r\n account: String(clientDynamic.id),\r\n amount: contract.financial.weeklyPayment,\r\n date: \"\",\r\n dst_account: String(clientDynamic.id),\r\n external_id: \"\",\r\n extras: {},\r\n operation: 98,\r\n reference: \"\"\r\n }\r\n }\r\n\r\n public static getNextDateTime(): string {\r\n const now = new Date();\r\n const nextDateTime = new Date(now.getTime() + 1000); // Add 1 second as an example\r\n\r\n const year = nextDateTime.getFullYear();\r\n const month = String(nextDateTime.getMonth() + 1).padStart(2, '0');\r\n const day = String(nextDateTime.getDate()).padStart(2, '0');\r\n const hours = String(nextDateTime.getHours()).padStart(2, '0');\r\n const minutes = String(nextDateTime.getMinutes()).padStart(2, '0');\r\n const seconds = String(nextDateTime.getSeconds()).padStart(2, '0');\r\n\r\n return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`;\r\n }\r\n\r\n public static getIsoDate(): string {\r\n const now = new Date();\r\n return now.toISOString();\r\n }\r\n\r\n public static FormPayment(\r\n contract: oContract,\r\n account: IDCAccount) {\r\n\r\n let data = FactoryDynamiCore.CreatePayment(contract, account)\r\n\r\n return {\r\n amount: new UntypedFormControl(data.amount, [Validators.required, Validators.min(0)]),\r\n }\r\n }\r\n}\r\n","import {UntypedFormArray, UntypedFormControl, Validators} from \"@angular/forms\";\nimport {\n cAddress,\n cClient,\n cDevice, cFinancial,\n cUserReference, eProvider, IDCAccount,\n oAddress, oAsset, oAssetBrand, oAssetCategory, oCatalog,\n oClient, oContract,\n oDevice, oFinancial, oScoreReference,\n oUserReferenceBase, tyClientContract\n} from 'ravcredit-core';\n\nexport class FactoryContract {\n\n public static FormClient(client?: oClient) {\n let data = cClient\n\n if (client) data = client\n\n return {\n name: new UntypedFormControl(data.name, [Validators.required, Validators.minLength(10)]),\n email: new UntypedFormControl(data.username, [Validators.required, Validators.email]),\n phone: new UntypedFormControl(data.phone, [Validators.required, Validators.min(10)]),\n curp: new UntypedFormControl(data.curp, [Validators.required, Validators.minLength(16)]),\n userReferences: new UntypedFormArray([])\n }\n }\n\n public static CreateUserReferenceFormObj(user: oUserReferenceBase) {\n let data = cUserReference\n\n if (user.name != \"\") data = user\n\n return {\n name: new UntypedFormControl(data.name, [Validators.required, Validators.minLength(10)]),\n phone: new UntypedFormControl(data.phone, [Validators.required]),\n relationship: new UntypedFormControl(data.relationship, [Validators.required]),\n }\n }\n\n public static FormAddress(address?: oAddress) {\n let data = cAddress\n\n if (address) data = address\n\n return {\n street: new UntypedFormControl(data.street, Validators.required),\n neighbor: new UntypedFormControl(data.neighbor, Validators.required),\n cp: new UntypedFormControl(data.zip, Validators.required),\n ext: new UntypedFormControl(data.ext, Validators.required),\n int: new UntypedFormControl(data.int),\n city: new UntypedFormControl(data.city, Validators.required),\n state: new UntypedFormControl(data.state, Validators.required),\n }\n }\n\n public static FormDevice(device?: oDevice) {\n let data = cDevice\n\n if (device) data = device\n\n return {\n model: new UntypedFormControl(data.device, Validators.required),\n IMEI: new UntypedFormControl(data.IMEI, Validators.required),\n ID: new UntypedFormControl(data.id),\n }\n }\n\n public static FormFinancial(financial?: oFinancial) {\n let data = cFinancial\n\n if (financial) data = financial\n\n data.credit_type = \"Arrendamiento\"\n // data.deadlines.weeks = cBusinessDeadlines\n\n return {\n total: new UntypedFormControl(data.total, [Validators.required, Validators.min(1)]),\n initial: new UntypedFormControl(data.initial, [Validators.required]),\n financed: new UntypedFormControl(data.financed, Validators.min(1)),\n weeklyPayment: new UntypedFormControl(data.weeklyPayment, [Validators.required, Validators.min(1)]),\n deadlines: new UntypedFormControl(data.deadlines, [Validators.required]),\n initDate: new UntypedFormControl(data.initDate),\n provider: new UntypedFormControl(data.provider),\n\n credit_type: new UntypedFormControl(data.credit_type ? data.credit_type : 0),\n interest_rate: new UntypedFormControl(data.interest_rate ? data.interest_rate : 0), // interes credit dynamic\n commission_opening: new UntypedFormControl(data.commission_opening ? data.commission_opening : 0),\n interest_arrears: new UntypedFormControl(data.interest_arrears ? data.interest_arrears : 0), // intereses moratorios dynamic\n\n amount_commission_opening: new UntypedFormControl(data.amount_commission_opening), // comision por apertura dynamic\n principal_disbursed: new UntypedFormControl(data.principal_disbursed),\n expected_disbursed: new UntypedFormControl(data.expected_disbursed)\n }\n }\n\n public static CreateContractFromFormObj(data: any, finalPay: number) {\n const date = new Date()\n\n const device: oDevice = {\n device: data[\"device\"][0].model,\n id: data[\"device\"][0].ID,\n IMEI: data[\"device\"][0].IMEI\n }\n const address: oAddress = {\n street: data[\"address\"][0].street,\n city: data[\"address\"][0].city,\n neighbor: data[\"address\"][0].neighbor,\n zip: data[\"address\"][0].cp,\n ext: data[\"address\"][0].ext,\n int: data[\"address\"][0].int,\n state: data[\"address\"][0].state\n }\n\n const financial: oFinancial = {\n total: Number(data[\"financial\"][0].total),\n initial: data[\"financial\"][0].initial,\n deadlines: data[\"financial\"][0].deadlines,\n progress: [],\n pendingOf: [],\n weeklyPayment: data[\"financial\"][0].weeklyPayment,\n interest: data[\"financial\"][0].interest_rate,\n finalDate: date.getTime() + (data[\"financial\"][0].deadlines.weeks * (604800 * 1000)),\n initDate: date.getDate(),\n dayCut: date.getDate(),\n provider: data[\"financial\"][0].provider,\n finalPayment: finalPay,\n financed: data[\"financial\"][0].financed,\n nextPayment: data[\"financial\"][0].nextPayment\n }\n if (data[\"financial\"][0].provider == eProvider.DynamiCore) {\n financial.initial = data[\"financial\"][0].amount_commission_opening ? Number(data[\"financial\"][0].amount_commission_opening) : 0\n financial.expected_disbursed = data[\"financial\"][0].expected_disbursed ? Number(data[\"financial\"][0].expected_disbursed) : 0\n financial.principal_disbursed = data[\"financial\"][0].principal_disbursed ? Number(data[\"financial\"][0].principal_disbursed) : 0\n financial.interest_arrears = data[\"financial\"][0].interest_rate ? Number(data[\"financial\"][0].interest_rate) : 0\n financial.commission_opening = data[\"financial\"][0].commission_opening ? Number(data[\"financial\"][0].commission_opening) : 0\n financial.credit_type = data[\"financial\"][0].credit_type ? data[\"financial\"][0].credit_type : \"\"\n financial.clabe = data[\"financial\"][0].clabe ? data[\"financial\"][0].clabe : \"\"\n }\n\n if (data[\"financial\"][0].amount_commission_opening != undefined) {\n if (Number(data[\"financial\"][0].amount_commission_opening) > 0)\n financial.initial = Number(data[\"financial\"][0].amount_commission_opening)\n else\n financial.initial = Number(data[\"financial\"][0].initial)\n }\n\n if (Number(data[\"financial\"][0].amount_commission_opening) > 0)\n financial.amount_commission_opening = Number(data[\"financial\"][0].amount_commission_opening)\n else\n financial.amount_commission_opening = financial.initial\n\n if (financial.nextPayment == undefined) financial.nextPayment = 0\n\n const contract: oContract = {\n id: \"\",\n client: \"\",\n address: address,\n device: device,\n financial: financial,\n by: \"\",\n active: true,\n lastPayment: date.getTime(),\n createdAt: date.getTime()\n }\n return contract\n }\n\n public static CreateContractToConektaObj(data: oContract, monthlyPay: number, finalPay: number) {\n const o: any = {}\n const score: oScoreReference = {\n name: \"\",\n score: 0\n }\n const catalog: oCatalog = {\n name: \"\",\n description: \"\",\n id: \"\",\n createdAt: 0\n }\n const brand : oAssetBrand = {\n name: \"\",\n id: \"\",\n description: \"\"\n }\n const category : oAssetCategory = {\n name: \"\",\n id: \"\",\n createAt: 0\n }\n const deviceV2: oAsset = {\n name: \"\",\n id: \"\",\n createAt: new Date().getTime(),\n category: category,\n brand: brand,\n price: 0,\n model: \"\",\n imageUrl: [],\n paymentOption: [],\n catalog: catalog,\n offers: [],\n score: score,\n IMEI: \"\"\n }\n\n const device: oDevice = {\n device: data.device.device,\n id: data.device.id,\n IMEI: data.device.IMEI\n }\n const address: oAddress = {\n street: data.address.street,\n city: data.address.city,\n neighbor: data.address.neighbor,\n zip: data.address.zip,\n ext: data.address.ext,\n int: data.address.int,\n state: data.address.state\n }\n const financial: oFinancial = {\n total: data.financial.total,\n initial: data.financial.initial,\n deadlines: data.financial.deadlines,\n progress: data.financial.progress,\n pendingOf: data.financial.pendingOf,\n weeklyPayment: data.financial.weeklyPayment,\n interest: data.financial.interest,\n finalDate: data.financial.finalDate,\n initDate: data.financial.initDate,\n dayCut: data.financial.dayCut,\n provider: data.financial.provider,\n finalPayment: data.financial.finalPayment,\n financed: data.financial.financed,\n nextPayment: data.financial.nextPayment\n }\n const contract: oContract = {\n id: \"\",\n client: \"\",\n address: address,\n device: device,\n financial: financial,\n by: \"\",\n active: true\n }\n return contract\n }\n\n public static CreateAuthForm(username: string, curp: string) {\n const password: string = this.createPassword(curp)\n return {\n username: new UntypedFormControl(username, Validators.required),\n password: new UntypedFormControl(password, Validators.required),\n }\n }\n\n public static createPassword(curp: string): string {\n const _curp = curp.split(\"\")\n let password = \"\"\n const limit = 7\n\n if (_curp.length < 16) return \"\"\n\n password += _curp[0].toLowerCase()\n\n for (let i = 1; i <= limit; i++)\n password += _curp[i].toUpperCase()\n\n password += `*`\n return password\n }\n\n public static MapperTypeContCli_Contract(_contract: tyClientContract): oContract {\n const contract: oContract = {\n id: _contract.contract!,\n client: _contract.client,\n address: _contract.address,\n device: _contract.device,\n financial: _contract.financial,\n by: _contract.by,\n active: _contract.active,\n lastPayment: _contract.lastPayment,\n createdAt: _contract.createdAt,\n dynamicAccount: _contract.dynamicAccount,\n }\n\n return contract\n }\n\n public static MapperSyncContractDynamic(base: oContract, account: IDCAccount): oContract {\n let nContract = base\n let _financial = base.financial\n let _device = base.device\n\n\n const financial: oFinancial = {\n total: _financial.total,\n initial: account.properties.amount_commission_opening ? account.properties.amount_commission_opening : _financial.initial,\n deadlines: _financial.deadlines,\n progress: _financial.progress ? _financial.progress : [],\n pendingOf: _financial.pendingOf ? _financial.pendingOf : [],\n weeklyPayment: _financial.weeklyPayment,\n interest: _financial.interest,\n finalDate: _financial.finalDate,\n initDate: _financial.initDate,\n dayCut: _financial.dayCut,\n provider: _financial.provider,\n finalPayment: _financial.finalPayment,\n financed: _financial.financed,\n nextPayment: _financial.nextPayment ? _financial.nextPayment : 0,\n\n amount_commission_opening:\n account.properties.amount_commission_opening,\n\n expected_disbursed:\n account.properties.expected_disbursed ?\n Number(account.properties.expected_disbursed) :\n Number(_financial.expected_disbursed),\n\n principal_disbursed:\n account.properties.principal_disbursed ?\n account.properties.principal_disbursed :\n _financial.principal_disbursed,\n\n commission_opening:\n account.config.commission_opening ?\n Number(account.config.commission_opening) :\n Number(_financial.commission_opening),\n\n credit_type:\n account.config.credit_type ? account.config.credit_type : _financial.credit_type,\n\n clabe:\n String(account.properties.clabe ? account.properties.clabe : _financial.clabe)\n }\n\n const interestArrears = account.config.interest_arrears\n const prevInterestArrears = _financial.interest_arrears\n if (interestArrears != undefined) {\n financial.interest_arrears = interestArrears\n } else if (prevInterestArrears != undefined) {\n financial.interest_arrears = prevInterestArrears\n } else {\n financial.interest_arrears = 0\n }\n\n const interest = account.config.interest_rate\n const prevInterest = _financial.interest\n if (interest != undefined) {\n financial.interest = interest\n } else if (prevInterest != undefined) {\n financial.interest = prevInterest\n } else {\n financial.interest = 0\n }\n\n if (account.properties.amount_commission_opening != undefined) {\n if (Number(account.properties.amount_commission_opening) > 0) {\n financial.initial = Number(account.properties.amount_commission_opening)\n financial.amount_commission_opening = Number(account.properties.amount_commission_opening)\n } else {\n financial.initial = Number(_financial.initial)\n financial.amount_commission_opening = financial.initial\n }\n }\n\n const seller: string | undefined = account.properties.seller_name\n nContract.by = seller != null ? seller : \"\"\n\n nContract.device.id = _device.id ? _device.id : \"\"\n\n nContract.financial = financial\n return nContract\n }\n}\n\nexport enum eContractStatus {\n APPROVED = 'APPROVED',\n DENIED = 'DENIED',\n CANCELED = 'CANCELED',\n PENDING = 'PENDING',\n CHECKING = 'CHECKING',\n}\n","import {\r\n eOrderType,\r\n oClient,\r\n oClientBase,\r\n oConektaNewOrder, oConektaNewOrderAntifraudInfo, oConektaNewOrderCharge,\r\n oConektaNewOrderCustomerInfo, oConektaNewOrderLineItem,\r\n oConektaNewOrderPymMethod, oConektaOrderCreate, oConektaOrderSpei,\r\n oContract\r\n} from 'ravcredit-core';\r\n\r\nexport class FactoryConekta {\r\n public static createOrder(\r\n client: oClientBase,\r\n contract: oContract,\r\n dateTime?: number\r\n ): oConektaNewOrder {\r\n\r\n if (client.conekta_id == undefined) return {\r\n data: {\r\n charges: [],\r\n currency: \"\",\r\n customer_info: {customer_id: \"\"},\r\n line_items: []\r\n },\r\n id: \"\"\r\n }\r\n\r\n const customer_info: oConektaNewOrderCustomerInfo = {\r\n customer_id: client.conekta_id\r\n }\r\n const week = ((3600 * 24) * 30) * 1000\r\n let next = new Date().getTime() + week\r\n next = Math.floor(next / 1000)\r\n\r\n const method: oConektaNewOrderPymMethod = {\r\n type: \"cash\",\r\n expires_at: next,\r\n }\r\n const charge: oConektaNewOrderCharge = {\r\n amount: contract.financial.weeklyPayment * 100,\r\n payment_method: method\r\n }\r\n const charges = [charge]\r\n\r\n const antifraud_info: oConektaNewOrderAntifraudInfo = {\r\n newKey: \"Key\"\r\n }\r\n\r\n const lineItem: oConektaNewOrderLineItem = {\r\n antifraud_info: antifraud_info,\r\n name: `Referencia credito ${client.name}`,\r\n quantity: 1,\r\n unit_price: contract.financial.weeklyPayment * 100,\r\n }\r\n\r\n const lineItems: oConektaNewOrderLineItem[] = [lineItem]\r\n\r\n const orderData: oConektaOrderCreate = {\r\n customer_info: customer_info,\r\n charges: charges,\r\n currency: \"MXN\",\r\n line_items: lineItems\r\n }\r\n\r\n const order: oConektaNewOrder = {\r\n data: orderData,\r\n id: client.id\r\n }\r\n\r\n if (dateTime != undefined) order.date = dateTime\r\n\r\n return order\r\n }\r\n\r\n public static _createOrder(\r\n client: oClient,\r\n contract: oContract,\r\n dateTime?: number,\r\n type?: string\r\n ): oConektaOrderCreate {\r\n\r\n console.log(\"CONEKTAID\", client)\r\n\r\n if (client.conekta_id == undefined) return {\r\n charges: [], currency: '', customer_info: {}, line_items: []\r\n }\r\n\r\n let typeDef = \"cash\"\r\n\r\n const customer_info: oConektaNewOrderCustomerInfo = {}\r\n\r\n if (type == eOrderType.CONEKTA_SPEI) {\r\n typeDef = \"spei\"\r\n customer_info.name = client.name\r\n customer_info.email = client.email\r\n customer_info.phone = client.phone\r\n } else {\r\n customer_info.customer_id = client.conekta_id\r\n }\r\n\r\n const week = ((3600 * 24) * 30) * 1000\r\n let next = new Date().getTime() + week\r\n next = Math.floor(next / 1000)\r\n\r\n const method: oConektaNewOrderPymMethod = {\r\n type: typeDef,\r\n expires_at: next,\r\n }\r\n const charge: oConektaNewOrderCharge = {\r\n amount: contract.financial.weeklyPayment * 100,\r\n payment_method: method\r\n }\r\n const charges = [charge]\r\n\r\n const antifraud_info: oConektaNewOrderAntifraudInfo = {\r\n newKey: \"Key\"\r\n }\r\n\r\n const lineItem: oConektaNewOrderLineItem = {\r\n antifraud_info: antifraud_info,\r\n name: `Referencia credito ${client.name}`,\r\n quantity: 1,\r\n unit_price: contract.financial.weeklyPayment * 100,\r\n }\r\n\r\n const lineItems: oConektaNewOrderLineItem[] = [lineItem]\r\n\r\n const orderData: oConektaOrderCreate = {\r\n customer_info: customer_info,\r\n charges: charges,\r\n currency: \"MXN\",\r\n line_items: lineItems\r\n }\r\n\r\n return orderData\r\n }\r\n\r\n\r\n public static defineObject(\r\n client: oClient,\r\n type: eOrderType,\r\n order: oConektaOrderCreate,\r\n dateTime?: number\r\n ): oConektaNewOrder | oConektaOrderSpei {\r\n\r\n let o: oConektaNewOrder | oConektaOrderSpei\r\n if (type == eOrderType.CONEKTA_SPEI) {\r\n\r\n o = {\r\n data: order,\r\n client: client\r\n }\r\n } else {\r\n o = {\r\n data: order,\r\n id: client.id\r\n }\r\n }\r\n\r\n if (dateTime != undefined) o.date = dateTime\r\n\r\n return o\r\n }\r\n}\r\n\r\n// '\r\n// {\r\n// \"customer_info\": {\r\n// \"name\": \"DevTest\",\r\n// \"email\": \"test@femsa.com\",\r\n// \"phone\": \"5522997233\"\r\n// },\r\n// \"currency\": \"MXN\",\r\n// \"line_items\": [\r\n// {\r\n// \"name\": \"Box of Cohiba S1s\",\r\n// \"quantity\": 1,\r\n// \"unit_price\": 20000\r\n// }\r\n// ]\r\n// }\r\n// '\r\n","import {UntypedFormControl, Validators} from '@angular/forms';\r\nimport {cNotification, oNotification} from 'ravcredit-core';\r\n\r\nexport const ROUTE_NOTIFICATIONS = \"notifications\"\r\nexport const ROUTE_GLOBAL_REFERENCE2 = \"/contract-reference\"\r\n\r\nconst prodFunction = \"https://us-central1-ravcredit-2b079.cloudfunctions.net/CustomerNotification\"\r\nconst prodFunction2 = \"https://customernotification-2imgfxveka-uc.a.run.app\"\r\nconst localTest = \"http://127.0.0.1:5001/ravcredit-2b079/us-central1/CustomerNotification\"\r\nexport const ravCreditFunctions = prodFunction\r\n\r\nexport class FactoryNotification {\r\n\r\n public static FormNotification(notification?: oNotification) {\r\n let data = cNotification\r\n\r\n if (notification) data = notification\r\n\r\n return {\r\n title: new UntypedFormControl(data.notification.title, [Validators.required, Validators.min(1)]),\r\n body: new UntypedFormControl(data.notification.body, [Validators.required, Validators.min(1)]),\r\n }\r\n }\r\n\r\n public static CreateGlobalNotificationObj(data: oNotification) {\r\n const o: any = {}\r\n\r\n if (data.notification) {\r\n const not: any = {}\r\n if (data.notification.body) not[\"body\"] = data.notification.body\r\n if (data.notification.title) not[\"title\"] = data.notification.title\r\n\r\n if (data.ids) not[\"ids\"] = data.ids\r\n\r\n if (data.tokens) not[\"tokens\"] = data.tokens\r\n\r\n if (data.type) not[\"type\"] = data.type\r\n\r\n if (data.data) if (data.data.route) not[\"route\"] = data.data.route\r\n\r\n o[\"data\"] = not\r\n }\r\n return o\r\n }\r\n\r\n}\r\n","import {IDBPDatabase, openDB} from 'idb';\r\nimport {Injectable} from '@angular/core';\r\nimport {\r\n dbAuthStore, dbBusinessConfig, dbBusinessInfo,\r\n dbClientsStore, dbConektaClientsStore, dbConektaReferencesStore, dbContractsStore, dbDynamicReferencesStore,\r\n dbName, dbNotificationsStore, dbPassportReferencesStore,\r\n dbVersion, eProvider,\r\n keyPathId,\r\n keyUserID, oBusinessConfig, oBusinessInfo, oClient,\r\n oClientBase,\r\n oContract, oNotification,\r\n oUser, tyClientContract\r\n} from 'ravcredit-core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IndexedDbService {\r\n\r\n indexDbStatus = false\r\n iDb!: IDBPDatabase<unknown>\r\n\r\n constructor() {\r\n }\r\n\r\n // async dbAuthorization() {\r\n // // constant k = this.getLocalUser()\r\n // // if (k == null) return false\r\n // //\r\n // // constant db = await openDB(dbName, dbVersion)\r\n // // // utils store = db.transaction(dbUsersStore).objectStore(dbUsersStore)\r\n // // constant auth = await db.get(dbAuthStore, k)\r\n // // // utils auth = await store.get(k)\r\n // // db.close()\r\n //\r\n // let auth: any = null\r\n // return auth;\r\n //\r\n // }\r\n\r\n /****************** SIMPLE Transactional - CRUD *************************************/\r\n\r\n async dbGetObject<T>(store: string, data: any): Promise<T> {\r\n if (!data) return data\r\n const db = await openDB(dbName, dbVersion)\r\n return await db.get(store, data) as T\r\n }\r\n\r\n async dbGetAllByStore<T>(store: string, index?: string) {\r\n const db = await openDB(dbName, dbVersion)\r\n return await db.getAll(store) as T\r\n }\r\n\r\n async dbAddObject<T>(store: string, data: any): Promise<boolean> {\r\n try {\r\n const db = await openDB(dbName, dbVersion)\r\n await db.put(store, data)\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n\r\n async dbRemoveObject<T>(store: string, data: any): Promise<T> {\r\n const db = await openDB(dbName, dbVersion)\r\n return await db.delete(store, data) as T\r\n }\r\n\r\n /************************************* AUTH **************************************/\r\n\r\n async dbSignIn(store: string, data: any) {\r\n await this.iDb.put(store, data)\r\n const _data = data as oUser\r\n this.setLocalStorage(keyUserID, _data.id)\r\n }\r\n\r\n async dbSignOut() {\r\n\r\n const k = this.getLocalUser()\r\n if (!k) return\r\n\r\n await this.iDb.delete(dbAuthStore, k)\r\n this.removeLocalStorage(keyUserID)\r\n }\r\n\r\n async dbAuthorization() {\r\n const k = this.getLocalUser()\r\n if (k == null) return false\r\n\r\n const db = await openDB(dbName, dbVersion)\r\n // utils store = db.transaction(dbUsersStore).objectStore(dbUsersStore)\r\n const auth = await db.get(dbAuthStore, k)\r\n // utils auth = await store.get(k)\r\n db.close()\r\n\r\n if (!auth) return false\r\n else return true\r\n }\r\n\r\n async dbGetToken() {\r\n const k = this.getLocalUser()\r\n if (k == null) return \"\"\r\n\r\n const db = await openDB(dbName, dbVersion)\r\n // utils store = db.transaction(dbUsersStore).objectStore(dbUsersStore)\r\n const auth = await db.get(dbAuthStore, k) as oUser\r\n // utils auth = await store.get(k)\r\n\r\n db.close()\r\n return auth.access_token != \"\" ? auth.access_token : \"\"\r\n }\r\n\r\n /******************************** Local Storage *************************************/\r\n\r\n setLocalStorage(k: string, v: string) {\r\n localStorage.setItem(k, v)\r\n }\r\n\r\n getLocalStorage<T>(k: string) {\r\n return localStorage.getItem(k) as T\r\n }\r\n\r\n removeLocalStorage(k: string) {\r\n return localStorage.removeItem(k)\r\n }\r\n\r\n getLocalUser(): string | null {\r\n const k = localStorage.getItem(keyUserID)\r\n return (k)\r\n }\r\n\r\n /********************************************************************************* **/\r\n\r\n async getPlatformUser() {\r\n const k = this.getLocalStorage<string>(keyUserID) as string\r\n if (k == null) return \"\"\r\n\r\n const db = await openDB(dbName, dbVersion)\r\n // utils store = db.transaction(dbUsersStore).objectStore(dbUsersStore)\r\n const auth = await db.get(dbAuthStore, k) as oUser\r\n // utils auth = await store.get(k)\r\n\r\n db.close()\r\n return auth.name != \"\" ? auth.name : \"\"\r\n }\r\n\r\n async getToken() {\r\n const k = this.getLocalUser()\r\n if (k == null) return \"\"\r\n\r\n const db = await openDB(dbName, dbVersion)\r\n // utils store = db.transaction(dbUsersStore).objectStore(dbUsersStore)\r\n const auth = await db.get(dbAuthStore, k) as oUser\r\n // utils auth = await store.get(k)\r\n\r\n db.close()\r\n return auth.access_token != \"\" ? auth.access_token : \"\"\r\n }\r\n\r\n async addObject<T>(store: string, data: any): Promise<boolean> {\r\n try {\r\n const db = await openDB(dbName, dbVersion)\r\n await db.put(store, data)\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n\r\n async patchObject<T>(store: string, data: any): Promise<T> {\r\n try {\r\n const db = await openDB(dbName, dbVersion)\r\n const txn = db.transaction(store, \"readwrite\")\r\n const obj = txn.objectStore(store)\r\n // constant index = obj.index(keyPathCurp)\r\n await obj.put(data)\r\n return data as T\r\n } catch (e) {\r\n console.error(e)\r\n return {} as T\r\n }\r\n }\r\n\r\n async updateObjectByID<T>(store: string, id: string, data: T): Promise<boolean> {\r\n try {\r\n\r\n const db = await openDB(dbName, dbVersion)\r\n const res = await db.get(store, id) as oClientBase\r\n\r\n if (res != undefined) await this.removeObject(store, id)\r\n\r\n return await this.addObject(store, data)\r\n\r\n } catch (e) {\r\n console.error(\"updateObjectByID Catch Error:\", e)\r\n return false\r\n }\r\n }\r\n\r\n async upsertObjectById<T>(store: string, id: string, data: T) {\r\n\r\n const db = await openDB(dbName, dbVersion)\r\n const res = await db.get(store, id)\r\n\r\n if (res) await this.removeObject<T>(store, id)\r\n\r\n return await db.add(store, data)\r\n }\r\n\r\n async removeObject<T>(store: string, data: any): Promise<T> {\r\n const db = await openDB(dbName, dbVersion)\r\n return await db.delete(store, data) as T\r\n }\r\n\r\n async deleteObjectByID<T>(store: string, id: string) {\r\n try {\r\n const db = await openDB(dbName, dbVersion)\r\n const txn = db.transaction(store, \"readwrite\")\r\n const obj = txn.objectStore(store)\r\n const index = obj.index(keyPathId)\r\n const va2 = index.openCursor(id)\r\n va2.then(async cursor => {\r\n while (cursor) {\r\n cursor.delete();\r\n cursor = await cursor.continue();\r\n }\r\n })\r\n return va2\r\n } catch (e) {\r\n console.error(e)\r\n return {} as T\r\n }\r\n }\r\n\r\n async cleanAll<T>(store: string) {\r\n const db = await openDB(dbName, dbVersion)\r\n return await db.clear(store)\r\n }\r\n\r\n async getObject<T>(store: string, data: any): Promise<T> {\r\n if (!data) return data\r\n const db = await openDB(dbName, dbVersion)\r\n return await db.get(store, data) as T\r\n }\r\n\r\n async addBuildByStore(store: string, data: any[]) {\r\n for (const o of data) {\r\n const exists = await this.getObject(store, o[\"id\"])\r\n if (!exists) await this.addObject(store, o)\r\n else await this.updateObject(store, o)\r\n }\r\n }\r\n\r\n async updateObject<T>(store: string, data: any) {\r\n const db = await openDB(dbName, dbVersion)\r\n await db.put(store, data)\r\n }\r\n\r\n async getAllByStore<T>(store: string, index?: string) {\r\n const db = await openDB(dbName, dbVersion)\r\n return await db.getAll(store) as T\r\n }\r\n\r\n async getAuthUser() {\r\n const data = await this.getAllByStore<oUser[]>(dbAuthStore)\r\n return data[0]\r\n }\r\n\r\n async getAuthName() {\r\n const data = await this.getAuthUser()\r\n return data.name\r\n }\r\n\r\n async getAuthUsername() {\r\n const data = await this.getAuthUser()\r\n return data.username\r\n }\r\n\r\n async saveDataLocally<T>(\r\n contract: oContract,\r\n client: oClientBase,\r\n providerData: T,\r\n ): Promise<boolean> {\r\n try {\r\n await this.addObject(dbClientsStore, client)\r\n await this.addObject(dbContractsStore, contract)\r\n\r\n if (!providerData) return false\r\n\r\n if (contract.financial.provider === eProvider.Conekta) {\r\n await this.addObject(dbConektaClientsStore, providerData)\r\n await this.addObject(dbConektaReferencesStore, providerData)\r\n } else if (contract.financial.provider === eProvider.Passport) {\r\n await this.addObject(dbPassportReferencesStore, providerData)\r\n } else if (contract.financial.provider === eProvider.DynamiCore) {\r\n await this.addObject(dbDynamicReferencesStore, providerData)\r\n }\r\n return true\r\n } catch (e) {\r\n console.error(e)\r\n return false\r\n }\r\n }\r\n\r\n /******************** MERGE **************************************/\r\n async getAllClientContracts(): Promise<tyClientContract[]> {\r\n const clientContract: tyClientContract[] = []\r\n const clients = await this.getAllByStore<oClient[]>(dbClientsStore)\r\n if (clients.length == 0) return []\r\n\r\n for (let client of clients) {\r\n const contract = await this.getObject<oContract>(dbContractsStore, client.contract)\r\n const e = {...client, ...contract}\r\n // preserve the id value over concat models\r\n e.id = client.id\r\n e.status = client.status\r\n clientContract.push(e)\r\n }\r\n return clientContract\r\n }\r\n\r\n /******************** MERGE **************************************/\r\n\r\n async dbGetAllClientContracts(): Promise<tyClientContract[]> {\r\n const clientContract: tyClientContract[] = []\r\n const clients = await this.dbGetAllByStore<oClient[]>(dbClientsStore)\r\n if (clients.length == 0) return []\r\n\r\n for (let client of clients) {\r\n const contract = await this.dbGetObject<oContract>(dbContractsStore, client.contract)\r\n const e = {...client, ...contract}\r\n // preserve the id value over concat models\r\n e.id = client.id\r\n e.status = client.status\r\n clientContract.push(e)\r\n }\r\n return clientContract\r\n }\r\n\r\n /****************** BUSINESS INFO *************************************/\r\n\r\n async getBusinessInfo(): Promise<oBusinessInfo | null> {\r\n const config: oBusinessInfo[] = await this.dbGetAllByStore<oBusinessInfo[]>(dbBusinessInfo)\r\n\r\n if (!config) return null\r\n\r\n return config[0]\r\n }\r\n\r\n /****************** BUSINESS CONFIG ************************************/\r\n\r\n async getBusinessConfig(): Promise<oBusinessConfig | null> {\r\n const config: oBusinessConfig[] = await this.dbGetAllByStore<oBusinessConfig[]>(dbBusinessConfig)\r\n\r\n if (!config) return null\r\n\r\n return config[0]\r\n }\r\n\r\n async updateBusinessConfig(config: oBusinessConfig) {\r\n\r\n // config.version = \"1.0\"\r\n await this.dbRemoveObject(dbBusinessConfig, \"1.0\")\r\n await this.dbAddObject(dbBusinessConfig, config)\r\n }\r\n\r\n async updateBusinessInfo(config: oBusinessInfo) {\r\n\r\n config.version = \"v2024\"\r\n await this.dbRemoveObject(dbBusinessInfo, \"v2024\")\r\n await this.dbAddObject(dbBusinessInfo, config)\r\n }\r\n\r\n /**************** NOTIFICATIONS *********************************/\r\n\r\n async getLocalNotifications(): Promise<oNotification[] | null> {\r\n const notifications: oNotification[] = await this.dbGetAllByStore<oNotification[]>(dbNotificationsStore)\r\n if (!notifications) return null\r\n return notifications\r\n }\r\n\r\n async updateNotifications(notifications: oNotification[]) {\r\n for (const o of notifications) {\r\n const exists = await this.dbGetObject(dbNotificationsStore, o.notification_id)\r\n if (!exists) {\r\n await this.dbAddObject(dbNotificationsStore, o)\r\n }\r\n }\r\n }\r\n}\r\n","import {add, format, getDate} from \"date-fns\";\r\nimport {es} from 'date-fns/locale/es';\r\nimport {inject, Injector, runInInjectionContext} from '@angular/core';\r\nimport {IndexedDbService} from '../idb/indexed-db.service';\r\nimport {\r\n dateCompleteFormat,\r\n dateFormat,\r\n eProvider,\r\n expiredPayment,\r\n IDCTxnRow, oConektaOrder,\r\n oPaymentDates,\r\n timeFormat\r\n} from 'ravcredit-core';\r\n\r\nexport class UtilTime {\r\n private localeFns = es\r\n\r\n public static IsExpired(time: number): boolean {\r\n const dateInit = new Date(time)\r\n const dayInit = dateInit.getDate()\r\n const monthInit = dateInit.getMonth() + 1\r\n\r\n const dateActual = new Date()\r\n const dayActual = dateActual.getDate()\r\n const monthActual = dateActual.getMonth() + 1\r\n\r\n if (monthActual > monthInit) return true\r\n\r\n return dayActual > dayInit;\r\n }\r\n\r\n public static getDates(initial: number, weeks: number): oPaymentDates[] {\r\n const dates: oPaymentDates[] = []\r\n let prev = initial\r\n for (let i = 0; i < weeks; i++) {\r\n const date = add(prev, {weeks: 1})\r\n dates.push(\r\n {\r\n week: i + 1,\r\n date: date.getTime()\r\n }\r\n )\r\n prev = date.getTime()\r\n }\r\n return dates\r\n }\r\n\r\n public static getPreviousWeek() {\r\n const today = new Date().getTime()\r\n const week = ((3600 * 24) * 7) * 1000\r\n return today - week\r\n }\r\n\r\n public static getDayNum(date: Date | number): number {\r\n return getDate(date)\r\n }\r\n\r\n public static getDayName(date: Date | number): string {\r\n return format(date, \"EEEE\", {locale: es})\r\n }\r\n\r\n public static getMonthName(date: Date | number): string {\r\n return format(date, \"MMMM\", {locale: es}).toUpperCase();\r\n }\r\n\r\n public static getYear(date: Date | number): string {\r\n return format(date, \"yyyy\")\r\n }\r\n\r\n public static GetNextPayment(time: number, provider: string) {\r\n let week = 0\r\n if (provider == eProvider.Conekta) {\r\n week = (((3600 * 24) * 7))\r\n } else if (provider == eProvider.DynamiCore) {\r\n week = (((3600 * 24) * 7) * 1000)\r\n }\r\n return this.getLocalTimeFromLong(time + week, provider)\r\n }\r\n\r\n public static getLocalTimeFromLong(time: number, provider: string) {\r\n if (time <= 0) return \"\"\r\n let factor = this.GetFactor(provider)\r\n let dateTime = time * factor\r\n let parsedDate = format(new Date(dateTime), dateFormat, {\r\n locale: es\r\n })\r\n return parsedDate\r\n }\r\n\r\n public static DelayPaymentLast(\r\n lastPayment: number, provider: string, injector: Injector\r\n ): boolean {\r\n let factor = this.GetFactor(provider)\r\n let now = new Date().getTime()\r\n let last = 0\r\n\r\n if (provider == eProvider.Conekta)\r\n last = ((((3600 * 24) * 7)) + lastPayment) * factor\r\n else if (provider == eProvider.DynamiCore)\r\n last = ((((3600 * 24) * 7) * 1000) + lastPayment) * factor\r\n\r\n runInInjectionContext(injector, () => {\r\n const idb = inject(IndexedDbService)\r\n // constant observable = inject(ObservablesService)\r\n idb.setLocalStorage(expiredPayment, String(now > last))\r\n // observable.isLate.next(now > last)\r\n })\r\n return now > last\r\n }\r\n\r\n public static GetFactor(provider: string) {\r\n let factor = 1\r\n if (provider == eProvider.Conekta)\r\n factor = 1000\r\n return factor\r\n }\r\n\r\n public static GetEpochFromFormatedDate(date: string): number {\r\n if (date == \"\") return 0\r\n\r\n const _date = new Date(date)\r\n if (isNaN(_date.getTime())) return 0\r\n return _date.getTime()\r\n }\r\n\r\n public static GetTimeFromString(date: string) {\r\n return format(new Date(date), timeFormat, {\r\n locale: es\r\n })\r\n }\r\n\r\n public static GetDateFromString(date: string) {\r\n return format(new Date(date), dateCompleteFormat, {\r\n locale: es\r\n })\r\n }\r\n\r\n // Quick sort\r\n public static SortingByTime(payments: IDCTxnRow[]): IDCTxnRow[] {\r\n if (payments.length <= 1) return payments\r\n\r\n const pivot = payments[payments.length - 1]\r\n const pivotDate = new Date(pivot.created).getTime()\r\n const left: IDCTxnRow[] = []\r\n const right: IDCTxnRow[] = []\r\n\r\n for (let i = 0; i < payments.length - 1; i++) {\r\n const actualDate = new Date(payments[i].created).getTime()\r\n if (actualDate > pivotDate) left.push(payments[i])\r\n else right.push(payments[i])\r\n }\r\n\r\n return [...this.SortingByTime(left), pivot, ...this.SortingByTime(right)]\r\n }\r\n\r\n public static SortingByTimeConekta(payments: oConektaOrder []): oConektaOrder[] {\r\n if (payments.length <= 1) return payments;\r\n\r\n const pivot = payments[payments.length - 1]\r\n let pivotDate = 0;\r\n if (pivot.charges.data == undefined) return payments\r\n\r\n if (pivot.charges.data[0].paid_at != undefined) {\r\n pivotDate = pivot.charges.data[0].paid_at\r\n } else {\r\n pivot.charges.data[0].created_at\r\n }\r\n\r\n if (pivotDate <= 0) return payments;\r\n\r\n const left: oConektaOrder[] = []\r\n const right: oConektaOrder [] = []\r\n\r\n for (let i = 0; i < payments.length - 1; i++) {\r\n const actual = payments[i].charges.data[0].paid_at;\r\n if (actual <= 0) continue\r\n if (actual > pivotDate) left.push(payments[i])\r\n else right.push(payments[i])\r\n }\r\n\r\n return [...this.SortingByTimeConekta(left), pivot, ...this.SortingByTimeConekta(right)]\r\n }\r\n}\r\n","import {ePassportTypes, iGlobalPassport, oClientBase, oContract} from 'ravcredit-core';\r\n\r\nexport class FactoryPassport {\r\n public static CreatePassportReference(\r\n client: oClientBase,\r\n contract: oContract,\r\n dateTime?: number\r\n ): iGlobalPassport {\r\n const o = {\r\n passport: {\r\n type: ePassportTypes.CREATE,\r\n data: {\r\n name: client.name,\r\n email: client.email,\r\n amount: contract.financial.weeklyPayment,\r\n expirationDate: \"\",\r\n additional: {\r\n client: client.name,\r\n clientID: client.id,\r\n credit: client.status\r\n }\r\n }\r\n },\r\n contract: contract,\r\n date: dateTime\r\n }\r\n if (dateTime != undefined) o.date = dateTime\r\n return o\r\n }\r\n}\r\n","import {eProvider, IDCTxnRow, oConektaRes} from 'ravcredit-core';\r\n\r\nexport interface oPaymentGlobal {\r\n conektaPayment?: oConektaRes,\r\n dynamicPayment?: IDCTxnRow[],\r\n}\r\n\r\nexport class FactoryPayment {\r\n public static CreatePayment(data: oConektaRes | IDCTxnRow[], provider: eProvider): oPaymentGlobal {\r\n const o: oPaymentGlobal = {}\r\n\r\n if (provider == eProvider.DynamiCore)\r\n o.dynamicPayment = data as IDCTxnRow[];\r\n\r\n if (provider == eProvider.Conekta)\r\n o.conektaPayment = data as oConektaRes\r\n\r\n return o\r\n }\r\n}\r\n","export class UtilGeneral {\r\n\r\n public static cleanUsername(password: string): string {\r\n if (password.includes(\"+\") || password.length > 10) {\r\n let len = 10 // standard Mexico phone length\r\n let pLen = password.length - 1\r\n let _password: string[] = []\r\n\r\n for (let i = len; i > 0; i--) {\r\n _password.push(password[pLen])\r\n pLen--\r\n }\r\n\r\n return _password.reverse().join(\"\")\r\n }\r\n\r\n return password\r\n }\r\n\r\n}\r\n","import {MatSnackBarConfig} from '@angular/material/snack-bar';\r\n\r\nexport const snackBarConfigAction: MatSnackBarConfig = {\r\n horizontalPosition: \"start\"\r\n}\r\n\r\nexport const snackBarConfigNoAction: MatSnackBarConfig = {\r\n duration: 4000,\r\n horizontalPosition: \"start\"\r\n}\r\n\r\nexport const snackBarConfigNoActionLong: MatSnackBarConfig = {\r\n duration: 8000,\r\n horizontalPosition: \"start\"\r\n}\r\n","export const ErrorMessages = {\r\n NotFound: \"Recurso no encontrado\",\r\n Unauthorized: \"Request without(or not valid) token\",\r\n RandomError: \"Something goes wrong, try again -> \",\r\n RandomErrorFirestore: \"Something goes wrong in firestore\",\r\n CreateUser: \"Error: Something goes wrong\",\r\n CreateFoundedUser: \"Error: User already exists try with another username\",\r\n FindAllNotFound: \"Not users found\",\r\n UserFindOne: \"User with given ID not found\",\r\n UserFindOneError: \"Error getting user by ID\",\r\n UserUpdate: \"Error updating user by ID\",\r\n DeleteUser: \"Error deleting user\",\r\n UsernameNotFound: \"User with given username not found\",\r\n IncorrectPassword: \"Incorrect or not valid password\",\r\n LastLogIn: \"Last LogIn date not updated\",\r\n authError: \"Username or password incorrect\",\r\n tokenRequired: \"Token required\",\r\n ClientDefined: \"This user already registered: Update user's contracts instead\",\r\n ClientsNotFound: \"List of clients is empty\",\r\n ClientNotFound: \"Client with given ID, not found\",\r\n ClientNotUpdated: \"Client with given ID, not updated\",\r\n DeleteClient: \"Error deleting client\",\r\n UsernameClientNotFound: \"Client with given username not found\",\r\n ContractsAllEmpty: \"Contract list empty\",\r\n ContractNotFound: \"Contract not found\",\r\n ContractUpdateError: \"Something goes wrong updating contract, try again\",\r\n ContractDeleteError: \"Something goes wrong deleting contract, try again\",\r\n cNotUserFound: \"Usuario no encontrado\",\r\n cIncorrectPassword: \"Contraseña incorrecta\",\r\n dbUsernameNotFound: \"User with given username not found\",\r\n dbIncorrectPassword: \"Incorrect or not valid password\",\r\n dbUsernameClientNotFound: \"Client with given username not found\",\r\n\r\n};\r\n","/*\r\n * Public API Surface of ravcredit-lib\r\n */\r\n\r\nexport * from './lib/ravcredit-lib.service';\r\nexport * from './lib/ravcredit-lib.component';\r\n\r\nexport * from './lib/v1/util/UtilClient';\r\nexport * from './lib/v1/util/UtilBusiness';\r\nexport * from './lib/v1/util/UtilDynamiCore';\r\nexport * from './lib/v1/util/UtilContract';\r\nexport * from './lib/v1/util/UtilConekta';\r\nexport * from './lib/v1/util/UtilNotification';\r\nexport * from './lib/v1/util/UtilTime';\r\nexport * from './lib/v1/util/UtilPassport';\r\nexport * from './lib/v1/util/UtilPayment';\r\nexport * from './lib/v1/util/UtilGeneral';\r\n\r\nexport * from './lib/v2/objects/oUtil';\r\nexport * from './lib/v2/constant/constants';\r\nexport * from './lib/v2/constant/messages';\r\n\r\nexport * from './lib/v1/idb/indexed-db.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ravcredit-lib",
3
- "version": "0.0.69",
3
+ "version": "0.0.71",
4
4
  "types": "./src/index.d.ts",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.1.2",
@@ -2,6 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { Injector } from '@angular/core';
3
3
  import { oClient, iConektaSources, iConektaRecurrent, iClientContract, tyClientContract, IDCClient, oContract, IDCAccount, oFinancial, oBusinessInfo, oTmpBusinessConfig, oBusinessDeadlines, oBusinessConfig, oClientBase, IDCNewReference, partialIDCData, IDCCredit, IDCPayment, oUserReferenceBase, oAddress, oDevice, oConektaNewOrder, oConektaOrderCreate, eOrderType, oConektaOrderSpei, oNotification, oPaymentDates, IDCTxnRow, oConektaOrder, iGlobalPassport, oConektaRes, eProvider, oUser } from 'ravcredit-core';
4
4
  import { UntypedFormControl, UntypedFormArray } from '@angular/forms';
5
+ import { MatSnackBarConfig } from '@angular/material/snack-bar';
5
6
  import * as idb from 'idb';
6
7
  import { IDBPDatabase } from 'idb';
7
8
 
@@ -208,6 +209,50 @@ declare class UtilGeneral {
208
209
  static cleanUsername(password: string): string;
209
210
  }
210
211
 
212
+ interface iSnackBarMessage {
213
+ message: string;
214
+ action: string;
215
+ config: MatSnackBarConfig;
216
+ }
217
+
218
+ declare const snackBarConfigAction: MatSnackBarConfig;
219
+ declare const snackBarConfigNoAction: MatSnackBarConfig;
220
+ declare const snackBarConfigNoActionLong: MatSnackBarConfig;
221
+
222
+ declare const ErrorMessages: {
223
+ NotFound: string;
224
+ Unauthorized: string;
225
+ RandomError: string;
226
+ RandomErrorFirestore: string;
227
+ CreateUser: string;
228
+ CreateFoundedUser: string;
229
+ FindAllNotFound: string;
230
+ UserFindOne: string;
231
+ UserFindOneError: string;
232
+ UserUpdate: string;
233
+ DeleteUser: string;
234
+ UsernameNotFound: string;
235
+ IncorrectPassword: string;
236
+ LastLogIn: string;
237
+ authError: string;
238
+ tokenRequired: string;
239
+ ClientDefined: string;
240
+ ClientsNotFound: string;
241
+ ClientNotFound: string;
242
+ ClientNotUpdated: string;
243
+ DeleteClient: string;
244
+ UsernameClientNotFound: string;
245
+ ContractsAllEmpty: string;
246
+ ContractNotFound: string;
247
+ ContractUpdateError: string;
248
+ ContractDeleteError: string;
249
+ cNotUserFound: string;
250
+ cIncorrectPassword: string;
251
+ dbUsernameNotFound: string;
252
+ dbIncorrectPassword: string;
253
+ dbUsernameClientNotFound: string;
254
+ };
255
+
211
256
  declare class IndexedDbService {
212
257
  indexDbStatus: boolean;
213
258
  iDb: IDBPDatabase<unknown>;
@@ -262,5 +307,5 @@ declare class IndexedDbService {
262
307
  static ɵprov: i0.ɵɵInjectableDeclaration<IndexedDbService>;
263
308
  }
264
309
 
265
- export { FactoryBusiness, FactoryClient, FactoryConekta, FactoryContract, FactoryDynamiCore, FactoryNotification, FactoryPassport, FactoryPayment, IndexedDbService, ROUTE_GLOBAL_REFERENCE2, ROUTE_NOTIFICATIONS, RavcreditLibComponent, RavcreditLibService, UtilGeneral, UtilTime, eContractStatus, ravCreditFunctions };
266
- export type { oPaymentGlobal };
310
+ export { ErrorMessages, FactoryBusiness, FactoryClient, FactoryConekta, FactoryContract, FactoryDynamiCore, FactoryNotification, FactoryPassport, FactoryPayment, IndexedDbService, ROUTE_GLOBAL_REFERENCE2, ROUTE_NOTIFICATIONS, RavcreditLibComponent, RavcreditLibService, UtilGeneral, UtilTime, eContractStatus, ravCreditFunctions, snackBarConfigAction, snackBarConfigNoAction, snackBarConfigNoActionLong };
311
+ export type { iSnackBarMessage, oPaymentGlobal };