@acontplus/ng-customer 1.1.1 → 2.0.0
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.
- package/fesm2022/acontplus-ng-customer.mjs +802 -795
- package/fesm2022/acontplus-ng-customer.mjs.map +1 -1
- package/package.json +9 -8
- package/types/acontplus-ng-customer.d.ts +245 -0
- package/index.d.ts +0 -288
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acontplus-ng-customer.mjs","sources":["../../../../packages/ng-customer/src/lib/application/use-cases/customer-use-case.ts","../../../../packages/ng-customer/src/lib/application/use-cases/customer-external-use-case.ts","../../../../packages/ng-customer/src/lib/infrastructure/constants/customer.constants.ts","../../../../packages/ng-customer/src/lib/infrastructure/mappers/company-search-mapper.ts","../../../../packages/ng-customer/src/lib/infrastructure/mappers/customer-create-update-mapper.ts","../../../../packages/ng-customer/src/lib/infrastructure/mappers/customer-form-data-mapper.ts","../../../../packages/ng-customer/src/lib/infrastructure/mappers/customer-get-by-id-mapper.ts","../../../../packages/ng-customer/src/lib/infrastructure/mappers/customer-list-mapper.ts","../../../../packages/ng-customer/src/lib/infrastructure/repositories/customer-external-http-repository.ts","../../../../packages/ng-customer/src/lib/infrastructure/repositories/customer-http-repository.ts","../../../../packages/ng-customer/src/lib/ui/components/customer-add-edit/customer-add-edit-dialog.ts","../../../../packages/ng-customer/src/lib/ui/components/customer-add-edit/customer-add-edit-dialog.html","../../../../packages/ng-customer/src/lib/ui/components/customer-card/customer-card.ts","../../../../packages/ng-customer/src/lib/ui/components/customer-card/customer-card.html","../../../../packages/ng-customer/src/acontplus-ng-customer.ts"],"sourcesContent":["import { CustomerRepository } from '../../domain';\nimport { CustomerSearch } from '../../domain/models/customer-search';\n\nexport class CustomerUseCase {\n constructor(private repo: CustomerRepository) {}\n\n getAll(params: any) {\n return this.repo.getAll(params);\n }\n getFormData() {\n return this.repo.getFormData();\n }\n\n getById(id: number) {\n return this.repo.getById(id);\n }\n\n checkExistence(identificationNumber: string) {\n return this.repo.checkExistence(identificationNumber);\n }\n\n create(params: any) {\n return this.repo.create(params);\n }\n\n update(params: any) {\n return this.repo.update(params);\n }\n\n updateState(id: number) {\n return this.repo.updateState(id);\n }\n\n search(filter: CustomerSearch) {\n return this.repo.search(filter);\n }\n}\n","import { CustomerExternalRepository } from '../../domain/repositories';\nimport { IdentificationNumberVo } from '@acontplus/core';\n\nexport class CustomerExternalUseCase {\n constructor(private repo: CustomerExternalRepository) {}\n\n getById(identification: string) {\n const idNumber = new IdentificationNumberVo(identification);\n return this.repo.getById(idNumber);\n }\n}\n","export const CUSTOMER_API = {\n BILLING: 'customers',\n};\n","import { CustomerSearch } from '../../domain/models/customer-search';\n\nexport class CompanySearchMapper {\n static toJson(params: CustomerSearch) {\n return JSON.stringify({\n textSearch: params.search,\n });\n }\n\n static fromJson(response: any) {\n let customers: any[] = [];\n\n if (response && response.code === '1') {\n const results = JSON.parse(response.payload as string) || [];\n\n customers = results.map((item: any) => ({\n id: item.idCliente,\n identificationTypeId: item.idTipoIdentificacion,\n creditTimeId: item.idTiempoCredito,\n customerId: item.customerId,\n status: item.estado,\n email: item.correo,\n phone: item.telefono,\n address: item.direccion,\n licensePlate: item.placa,\n creditDays: item.diasCredito,\n sriValidation: item.validationSri,\n businessName: item.nombreFiscal,\n tradeName: item.nombreComercial,\n identificationNumber: item.numeroIdentificacion,\n identificationType: item.tipoIdentificacion,\n sriCode: item.codigoSri,\n companyRuc: item.rucEmpresa,\n companyId: item.companyId,\n name: item.nombreFiscal,\n }));\n }\n\n return customers;\n }\n}\n","import { DateFormatter, getValidId, isValidField } from '@acontplus/utils';\n\nexport class CustomerCreateUpdateMapper {\n static toJson(param: any) {\n return {\n idCliente: getValidId(param.idCliente as number),\n idEmpleado: getValidId(param.idEmpleado as number),\n idTipoIdentificacion: param.idTipoIdentificacion,\n idTipoClienteProveedor: getValidId(param.idTipoClienteProveedor),\n idTipoEntidad: getValidId(param.idTipoEntidad),\n idCiudad: getValidId(param.idCiudad),\n idSubContribuyente: getValidId(param.idSubContribuyente),\n idTiempoCredito: getValidId(param.idTiempoCredito),\n idEmpresa: getValidId(param.idEmpresa),\n idCargo: getValidId(param.idCargo),\n numeroIdentificacion: param.numeroIdentificacion,\n nombreFiscal: param.nombreFiscal,\n nombreComercial: param.nombreComercial,\n direccion: isValidField(param.direccion),\n telefono: isValidField(param.telefono),\n correo: isValidField(param.correo),\n placa: isValidField(param.placa),\n montoCredito: isValidField(param.montoCredito),\n nota: isValidField(param.nota),\n validationSri: param.validationSri,\n idFormaPagoSri: getValidId(param.idFormaPagoSri),\n estado: param.estado ?? true,\n infoCrediticia: param.dataInfoCred && JSON.stringify(param.dataInfoCred),\n configValorBruto: param.configValorBruto ?? null,\n birthDate: DateFormatter.isValid(param.birthDate)\n ? DateFormatter.toUTCString(param.birthDate)\n : null,\n };\n }\n\n static fromJson(response: any): any {\n if (!response) return response;\n const result = {\n id: 0,\n };\n\n if (response.code === '1' && typeof response.payload === 'string') {\n try {\n const parsed = JSON.parse(response.payload);\n if (Array.isArray(parsed) && parsed.length > 0) {\n const { idCliente } = parsed[0];\n result.id = idCliente;\n }\n } catch (error) {\n console.error('Error parsing payload JSON:', error);\n }\n }\n\n return result;\n }\n}\n","export class CustomerFormDataMapper {\n static toJson() {\n return JSON.stringify({\n tipo: 2,\n });\n }\n\n static fromJson(response: any) {\n const result = {} as any;\n if (response.code === '1') {\n const mainData = JSON.parse(response.payload as string);\n\n result.tipoIdentificacion = mainData[0];\n result.tipoContribuyentes = mainData[1];\n result.tiempoCreditos = mainData[2] || [];\n const ciudades = mainData[3];\n\n result.ciudades = ciudades.reduce((acc: any, ciudade: any) => {\n const dataExists = acc.find((c: any) => c.idProvincia === ciudade.idProvincia);\n if (!dataExists) {\n acc.push({\n idProvincia: ciudade.idProvincia,\n nombre: ciudade.provincia,\n ciudades: [\n {\n idCiudad: ciudade.idCiudad,\n nombre: ciudade.ciudad,\n },\n ],\n });\n } else {\n dataExists.ciudades.push({\n idCiudad: ciudade.idCiudad,\n nombre: ciudade.ciudad,\n });\n }\n return acc;\n }, [] as any);\n\n result.tiposCliente = mainData[4] || [];\n result.empresas = mainData[5] || [];\n result.cargos = mainData[6] || [];\n result.formasPagoSri = mainData[7] || [];\n result.housingTypes = mainData[8] || [];\n result.maritalStatuses = mainData[9] || [];\n result.employees = mainData[10] || [];\n }\n return result;\n }\n}\n","import { SEPARADORES_REGEX } from '@acontplus/core';\nimport { parseJSONSafe } from '@acontplus/utils';\n\nexport class CustomerGetByIdMapper {\n static fromJson(response: any) {\n if (response.code !== '1' || !response.payload) {\n return {} as any;\n }\n\n const data = JSON.parse(response.payload)[0];\n\n return {\n idCliente: data.idCliente,\n idTipoClienteProveedor: data.idTipoClienteProveedor,\n idTipoEntidad: data.idTipoEntidad,\n idSubContribuyente: data.idSubContribuyente,\n idTiempoCredito: data.idTiempoCredito,\n idTipoIdentificacion: data.idTipoIdentificacion,\n idCiudad: data.idCiudad,\n numeroIdentificacion: data.numeroIdentificacion,\n identificacionComprador: data.numeroIdentificacion,\n razonSocialComprador: data.nombreFiscal,\n nombreFiscal: data.nombreFiscal,\n montoCredito: data.montoCredito,\n nombreComercial: data.nombreComercial,\n direccion: data.direccion,\n telefono: data.telefono,\n correo: data.correo,\n estado: data.estado,\n idEmpleado: data.idEmpleado,\n diasCredito: data.diasCredito,\n empleado: data.empleado,\n idEmpresa: data.idEmpresa,\n idCargo: data.idCargo,\n placa: data.placa,\n validationSri: data.validationSri,\n codigoSri: data.codigoSri,\n correos: data.correo ? data.correo.split(SEPARADORES_REGEX) : [],\n telefonos: data.telefono ? data.telefono.split(SEPARADORES_REGEX) : [],\n placas: data.placa ? data.placa.split(SEPARADORES_REGEX) : [],\n idFormaPagoSri: data.idFormaPagoSri,\n dataInfoCred: parseJSONSafe(data.infoCrediticia, {}),\n nota: data.nota?.trim() ?? '',\n configValorBruto: data.configValorBruto ?? false,\n };\n }\n}\n","export class ListCustomerMapper {\n static toJson(params: any) {\n return JSON.stringify({\n ...params,\n type: 1,\n tipo: 1, // remove after\n pageIndex: params.pageIndex,\n pageSize: params.pageSize,\n });\n }\n\n static fromJson(response: any) {\n // Initialize with backend-aligned shape (PageIndex is commonly 1-based server-side)\n const result: any = {\n items: [] as any[],\n pageIndex: 1,\n pageSize: 0,\n totalCount: 0,\n totalPages: 0,\n hasPreviousPage: false,\n hasNextPage: false,\n metadata: {} as Record<string, any>,\n };\n\n // Parse payload (backend sends JSON string in payload)\n const parsed =\n typeof response?.payload === 'string' ? JSON.parse(response.payload) : response?.payload;\n const dataArray: any[] = Array.isArray(parsed)\n ? (parsed[0] ?? [])\n : Array.isArray(parsed?.items)\n ? parsed.items\n : [];\n\n // Map each item to UI-friendly fields, preserving source values\n result.items = dataArray.map((item: any, index: number) => ({\n index: index + 1,\n id: item.idCliente,\n identificationTypeId: item.idTipoIdentificacion,\n identification: item.numeroIdentificacion,\n businessName: item.nombreFiscal,\n tradeName: item.nombreComercial,\n address: item.direccion,\n phone: item.telefono,\n email: item.correo,\n finalConsumer: item.consumidorFinal,\n sriValidation: item.validacionSri ?? item.validationSri,\n sriValidationName: (item.validationSri ?? item.validacionSri) ? 'SI' : 'NO',\n identificationType: item.tipoIdentificacion,\n status: item.estado,\n statusName: item.estado ? 'Activo' : 'Inactivo',\n isFinalConsumer: item.codTipoIdentificacion === 'CF',\n totalRecords: item.totalRecords ?? item.TotalCount,\n }));\n\n // Flexible pagination extraction (prefer explicit backend values)\n const pageIndex = response?.PageIndex ?? response?.pageIndex ?? 1;\n const pageSize = response?.PageSize ?? response?.pageSize ?? result.items.length;\n const totalCountFromItem = result.items.length > 0 ? result.items[0].totalRecords : undefined;\n const totalCount =\n response?.TotalCount ?? response?.totalCount ?? totalCountFromItem ?? result.items.length;\n const metadata = response?.Metadata ?? response?.metadata ?? {};\n\n result.pageIndex = Number.isFinite(pageIndex) ? pageIndex : 1;\n result.pageSize = Number.isFinite(pageSize) ? pageSize : result.items.length;\n result.totalCount = Number.isFinite(totalCount) ? totalCount : result.items.length;\n result.totalPages = result.pageSize > 0 ? Math.ceil(result.totalCount / result.pageSize) : 0;\n // Backend semantics show HasPreviousPage as PageIndex > 1\n result.hasPreviousPage = result.pageIndex > 1;\n result.hasNextPage = result.pageIndex < result.totalPages;\n result.metadata = metadata;\n\n return result;\n }\n}\n","import { ApiResponse, HttpClientFactory, IdentificationNumberVo } from '@acontplus/core';\nimport { CUSTOMER_API } from '../constants/customer.constants';\nimport { CustomerExternalRepository } from '../../domain';\nimport { CustomerExternal } from '../../domain/models/customer-external';\nexport class CustomerExternalHttpRepository implements CustomerExternalRepository {\n private get http() {\n return HttpClientFactory.getClient(); // siempre toma el último cliente configurado\n }\n\n private get url() {\n return `${CUSTOMER_API.BILLING}/Consultas/`;\n }\n\n getById(identification: IdentificationNumberVo): Promise<ApiResponse<CustomerExternal>> {\n const id = identification.getId();\n\n let endpoint = '';\n if (identification.isValidRuc()) {\n endpoint = `GetRucSRI?Ruc=${id}`;\n } else if (identification.isValidCedula()) {\n endpoint = `GetCedulaSri?Ruc=${id}`;\n } else {\n throw new Error('Número de identificación inválido para SRI');\n }\n\n return this.http.get<any>(`${this.url}${endpoint}`).then(response => {\n const idCard = response.numeroRuc ? response.numeroRuc : response.identificacion;\n const businessName = response.razonSocial ? response.razonSocial : response.nombreCompleto;\n const data: CustomerExternal = {\n phone: response.telefono,\n email: response.email,\n idCard,\n businessName,\n address: response.direccion,\n };\n return {\n status: response.error ? 'warning' : 'success',\n code: response.error ? 'EXTERNAL_API_ERROR' : 'SUCCESS',\n data,\n message: response.error ?? 'External API call completed',\n timestamp: new Date().toISOString(),\n } as ApiResponse<any>;\n });\n }\n}\n","import { CustomerFormDataMapper } from '../mappers/customer-form-data-mapper';\nimport { ListCustomerMapper } from '../mappers/customer-list-mapper';\nimport { CustomerRepository } from '../../domain';\nimport { CustomerGetByIdMapper } from '../mappers/customer-get-by-id-mapper';\nimport { CustomerCreateUpdateMapper } from '../mappers/customer-create-update-mapper';\nimport { CustomerSearch } from '../../domain/models/customer-search';\nimport { CompanySearchMapper } from '../mappers/company-search-mapper';\nimport { ApiResponse, HttpClientFactory, PagedResult } from '@acontplus/core';\nimport { CUSTOMER_API } from '../constants/customer.constants';\n\nexport class CustomerHttpRepository implements CustomerRepository {\n private get http() {\n return HttpClientFactory.getClient(); // siempre toma el último cliente configurado\n }\n\n private get url() {\n return `${CUSTOMER_API.BILLING}/CompanyCustomer/`;\n }\n\n checkExistence(identificationNumber: string): Promise<ApiResponse<any>> {\n const searchPayload = JSON.stringify({\n textSearch: identificationNumber,\n tipo: 3,\n });\n return this.http.get<any>(`${this.url}?json=${searchPayload}`).then(response => {\n const result: ApiResponse<any> = {\n status: 'warning',\n code: response.code ?? 'UNKNOWN_ERROR',\n data: null as any,\n message: response.message ?? 'Unknown error occurred',\n timestamp: new Date().toISOString(),\n };\n if (response.code === '1' && response.payload) {\n const parsedData = JSON.parse(response.payload);\n if (Array.isArray(parsedData) && parsedData.length > 0 && Array.isArray(parsedData[0])) {\n const [customer] = parsedData[0];\n if (customer) {\n result.status = 'success';\n result.data = customer;\n }\n }\n }\n return result;\n });\n }\n\n getFormData(): Promise<ApiResponse<any>> {\n const json = CustomerFormDataMapper.toJson();\n return this.http.get<any>(`${this.url}?json=${json}`).then((response: any) => {\n const data = CustomerFormDataMapper.fromJson(response);\n return {\n status: 'success',\n code: response.code ?? 'SUCCESS',\n data,\n timestamp: new Date().toISOString(),\n } as ApiResponse<any>;\n });\n }\n\n getAll<T>(obj: T): Promise<ApiResponse<PagedResult<any>>> {\n const json = ListCustomerMapper.toJson(obj);\n return this.http.get<any>(`${this.url}?json=${json}`).then((response: any) => {\n const data = ListCustomerMapper.fromJson(response);\n return {\n status: 'success',\n code: response.code ?? 'SUCCESS',\n data,\n timestamp: new Date().toISOString(),\n } as ApiResponse<PagedResult<any>>;\n });\n }\n\n create(dto: any): Promise<ApiResponse<any>> {\n return this.http\n .post<ApiResponse>(this.url, { data: CustomerCreateUpdateMapper.toJson(dto.data) })\n .then(response => {\n console.log(response);\n const data = CustomerCreateUpdateMapper.fromJson(response);\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code ?? 'OPERATION_FAILED',\n data,\n message: response.message ?? 'Operation completed with issues',\n timestamp: new Date().toISOString(),\n } as ApiResponse<any>;\n });\n }\n update(dto: any): Promise<ApiResponse<any>> {\n return this.http\n .put<ApiResponse>(`${this.url}${dto.id}`, {\n data: CustomerCreateUpdateMapper.toJson(dto.data),\n })\n .then(response => {\n console.log(response);\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code ?? 'OPERATION_FAILED',\n message: response.message ?? 'Operation completed with issues',\n timestamp: new Date().toISOString(),\n } as ApiResponse<any>;\n });\n }\n updateState(id: number): Promise<ApiResponse<any>> {\n return this.http.delete<ApiResponse>(`${this.url}${id}`).then(response => {\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code,\n message: response.message,\n timestamp: new Date().toISOString(),\n } as ApiResponse<any>;\n });\n }\n getById(id: number): Promise<ApiResponse<any>> {\n return this.http.get<any>(`${this.url}GetId/${id}`).then(response => {\n const data = CustomerGetByIdMapper.fromJson(response);\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code ?? 'OPERATION_FAILED',\n data,\n message: response.message ?? 'Operation completed with issues',\n timestamp: new Date().toISOString(),\n } as ApiResponse<any>;\n });\n }\n\n search(params: CustomerSearch): Promise<ApiResponse<any>> {\n const json = CompanySearchMapper.toJson(params);\n return this.http.get<ApiResponse>(`${this.url}Search?json=${json}`).then(response => {\n const data = CompanySearchMapper.fromJson(response);\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code,\n data,\n message: response.message,\n timestamp: new Date().toISOString(),\n } as ApiResponse<any>;\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, signal, OnInit } from '@angular/core';\nimport { forkJoin, from, Observable } from 'rxjs';\nimport { NotificationService } from '@acontplus/ng-notifications';\nimport {\n MAT_DIALOG_DATA,\n MatDialogActions,\n MatDialogContent,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { DynamicCard, InputChip, Button, ToUpperCase } from '@acontplus/ng-components';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n ReactiveFormsModule,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectChange, MatSelectModule } from '@angular/material/select';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { provideNativeDateAdapter } from '@angular/material/core';\nimport {\n SEPARADORES_REGEX,\n SEPARATOR_KEY_CODE,\n SRI_DOCUMENT_TYPE,\n isSuccessResponse,\n} from '@acontplus/core';\nimport { CustomerUseCase } from '../../../application/use-cases/customer-use-case';\nimport { CustomerExternalUseCase } from '../../../application/use-cases/customer-external-use-case';\nimport { CustomerHttpRepository } from '../../../infrastructure/repositories/customer-http-repository';\nimport { CustomerExternalHttpRepository } from '../../../infrastructure/repositories/customer-external-http-repository';\n\n@Component({\n selector: 'acp-customer-add-edit',\n imports: [\n MatDialogContent,\n MatDialogActions,\n MatButtonModule,\n ReactiveFormsModule,\n MatTabsModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n MatSlideToggleModule,\n InputChip,\n ToUpperCase,\n MatCheckbox,\n MatIcon,\n MatTooltip,\n MatDatepickerModule,\n Button,\n DynamicCard,\n ],\n templateUrl: './customer-add-edit-dialog.html',\n styleUrl: './customer-add-edit-dialog.scss',\n providers: [\n provideNativeDateAdapter(),\n {\n provide: CustomerUseCase,\n useFactory: () => new CustomerUseCase(new CustomerHttpRepository()),\n },\n {\n provide: CustomerExternalUseCase,\n useFactory: () => new CustomerExternalUseCase(new CustomerExternalHttpRepository()),\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CustomerAddEditComponent implements OnInit {\n private readonly dialogRef = inject(MatDialogRef<CustomerAddEditComponent>);\n private readonly customerUseCase = inject(CustomerUseCase);\n private readonly customerExternalUseCase = inject(CustomerExternalUseCase);\n btnText = signal('Guardar');\n\n readonly paramsOptions = inject<{\n id: number;\n descripcion: null | string;\n dataOfSri?: boolean;\n numeroIdentificacion?: string;\n codigoSri?: string;\n data: any;\n }>(MAT_DIALOG_DATA);\n\n readonly params = this.paramsOptions.data;\n\n private notificationService = inject(NotificationService);\n\n title = 'Nuevo Cliente';\n\n loading = false;\n\n emails: string[] = [];\n\n telephones: string[] = [];\n tiemposCredito = signal<any[]>([]);\n tipoContribuyentes = signal<any[]>([]);\n tiposCliente = signal<any[]>([]);\n tiposIdentificacion = signal<any[]>([]);\n formasPagoSri = signal<any[]>([]);\n placas = signal<any[]>([]);\n ciudades = signal<any[]>([]);\n cargos = signal<any[]>([]);\n empresas = signal<any[]>([]);\n employees = signal<any[]>([]);\n\n maritalStatuses = signal<any[]>([]);\n housingTypes = signal<any[]>([]);\n\n showRefresh = signal(true);\n\n endsWith001Validator(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n if (value && value.length >= 3) {\n if (!value.endsWith('001')) {\n return { endsWith001: true };\n }\n }\n return null;\n }\n customerForm = new FormGroup({\n direccion: new FormControl('', Validators.required),\n idCargo: new FormControl(0),\n idCliente: new FormControl(0),\n idEmpresa: new FormControl(0),\n idFormaPagoSri: new FormControl<number>(0),\n idTipoClienteProveedor: new FormControl(0),\n idTipoIdentificacion: new FormControl(0, Validators.required),\n idSubContribuyente: new FormControl(0),\n idTiempoCredito: new FormControl(0),\n idCiudad: new FormControl(0),\n idEmpleado: new FormControl<number | undefined>(0),\n nombreFiscal: new FormControl('', Validators.required),\n nombreComercial: new FormControl(''),\n numeroIdentificacion: new FormControl({ value: '', disabled: false }, [\n Validators.required,\n Validators.minLength(13),\n Validators.maxLength(13),\n this.endsWith001Validator,\n ]),\n correo: new FormControl(''),\n telefono: new FormControl(''),\n placa: new FormControl(''),\n nota: new FormControl(''),\n estado: new FormControl(false),\n birthDate: new FormControl<Date | null>(null),\n validationSri: new FormControl(false),\n configValorBruto: new FormControl(false),\n dataInfoCred: new FormGroup({\n maritalStatusId: new FormControl<number | null>(null),\n conyugeNombre: new FormControl<string | null>(null),\n conyugeTel: new FormControl<string | null>(null),\n refFamNombre: new FormControl<string | null>(null),\n refFamTel: new FormControl<string | null>(null),\n housingTypeId: new FormControl<number | null>(null),\n dirVivienda: new FormControl<string | null>(null),\n refDomicilio: new FormControl<string | null>(null),\n sector: new FormControl<string | null>(null),\n barrio: new FormControl<string | null>(null),\n calle: new FormControl<string | null>(null),\n }),\n });\n\n getCustomer(codigo: string, id: string) {\n this.customerForm.patchValue({\n validationSri: false,\n });\n from(this.customerUseCase.checkExistence(id)).subscribe(response => {\n if (isSuccessResponse(response) && response.data) {\n alert('El cliente ya se encuentra registrado en su empresa');\n this.notificationService.toastr.show({\n type: 'warning',\n message: 'El cliente ya se encuentra registrado en su empresa',\n });\n this.customerForm.patchValue({ numeroIdentificacion: null });\n return;\n }\n\n if (codigo === SRI_DOCUMENT_TYPE.PASSPORT) {\n this.customerForm.patchValue({\n validationSri: true,\n });\n return;\n }\n from(this.customerExternalUseCase.getById(id)).subscribe(secondResponse => {\n if (!isSuccessResponse(secondResponse) || !secondResponse.data) {\n this.notificationService.toastr.show({\n type: 'info',\n message: ' No se encontró información en el SRI',\n });\n return;\n }\n const {\n phone,\n email,\n idCard, // numeroRuc\n businessName, // razonSocial\n address, // direccion\n } = secondResponse.data as any;\n\n if (phone && typeof phone === 'string') {\n this.telephones = phone.split(SEPARADORES_REGEX) || [];\n }\n if (email && typeof email === 'string') {\n this.emails = email.split(SEPARADORES_REGEX) || [];\n }\n if (idCard) {\n this.customerForm.patchValue({\n numeroIdentificacion: idCard,\n nombreFiscal: businessName,\n validationSri: true,\n direccion: address,\n nombreComercial: businessName,\n });\n }\n });\n });\n }\n\n getLoadData(): Observable<any> {\n if (this.isUpdate()) {\n return forkJoin([\n from(this.customerUseCase.getFormData()),\n from(this.customerUseCase.getById(this.params.id)),\n ]);\n }\n return from(this.customerUseCase.getFormData());\n }\n\n ngOnInit(): void {\n try {\n this.getLoadData().subscribe(response => {\n let mainDataForm = {} as any;\n let dataCompanyCustomer = {} as any;\n if (Array.isArray(response)) {\n mainDataForm = response[0].data;\n dataCompanyCustomer = response[1];\n } else {\n mainDataForm = response.data;\n }\n\n this.tiposIdentificacion.set(mainDataForm.tipoIdentificacion);\n this.tiemposCredito.set(mainDataForm.tiempoCreditos);\n this.tipoContribuyentes.set(mainDataForm.tipoContribuyentes);\n this.formasPagoSri.set(mainDataForm.formasPagoSri);\n this.tiposCliente.set(mainDataForm.tiposCliente);\n this.ciudades.set(mainDataForm.ciudades);\n this.cargos.set(mainDataForm.cargos);\n this.empresas.set(mainDataForm.empresas);\n this.employees.set(mainDataForm.employees);\n this.maritalStatuses.set(mainDataForm.maritalStatuses);\n this.housingTypes.set(mainDataForm.housingTypes);\n\n if (this.isDataOfSri()) {\n const { codigoSri, numeroIdentificacion } = this.params;\n\n const dataIdentificacion = this.tiposIdentificacion().find(\n (ti: any) => ti.codigoSri === codigoSri,\n );\n\n if (dataIdentificacion) {\n const idTipoIdentificacionCtrl = this.customerForm.get(\n 'idTipoIdentificacion',\n ) as FormControl<number> | null;\n idTipoIdentificacionCtrl?.setValue(dataIdentificacion.idTipoIdentificacion as number);\n\n const numeroIdentificacionCtrl = this.customerForm.get(\n 'numeroIdentificacion',\n ) as FormControl<string> | null;\n numeroIdentificacionCtrl?.setValue(numeroIdentificacion as string);\n\n const idTiempoCreditoCtrl = this.customerForm.get(\n 'idTiempoCredito',\n ) as FormControl<number> | null;\n idTiempoCreditoCtrl?.setValue(\n this.tiemposCredito().length > 0\n ? (this.tiemposCredito()[0].idTiempoCredito as number)\n : 0,\n );\n this.updateFormControlNumeroIdentificacion(dataIdentificacion.codigoSri);\n\n this.onKeyDownGovernmentId();\n }\n\n return;\n }\n\n if (this.isCreate()) {\n const dataIdentificacion = this.tiposIdentificacion().find(\n (ti: any) => ti.codigoSri === SRI_DOCUMENT_TYPE.RUC,\n );\n\n if (dataIdentificacion) {\n const idTipoIdentificacionCtrl = this.customerForm.get(\n 'idTipoIdentificacion',\n ) as FormControl<number> | null;\n idTipoIdentificacionCtrl?.setValue(dataIdentificacion.idTipoIdentificacion as number);\n this.setIdentificationTypeChange(dataIdentificacion.codigoSri);\n }\n\n const idTiempoCreditoCtrl = this.customerForm.get(\n 'idTiempoCredito',\n ) as FormControl<number> | null;\n idTiempoCreditoCtrl?.setValue(\n this.tiemposCredito().length > 0\n ? (this.tiemposCredito()[0].idTiempoCredito as number)\n : 0,\n );\n } else {\n this.title = 'Editar Cliente';\n this.btnText.set('Actualizar');\n this.emails = dataCompanyCustomer.correos;\n this.telephones = dataCompanyCustomer.telefonos;\n this.placas.set(dataCompanyCustomer.placas);\n const { dataInfoCred, ...rest } = dataCompanyCustomer;\n this.customerForm.patchValue(rest);\n if (dataInfoCred) {\n this.customerForm.get('dataInfoCred')?.patchValue(dataInfoCred);\n }\n this.updateFormControlNumeroIdentificacion(rest.codigoSri);\n }\n });\n } catch {\n // Handle error appropriately\n }\n }\n\n identificationTypeChange(event: MatSelectChange) {\n const dt = this.tiposIdentificacion().find(\n item => item.idTipoIdentificacion === Number(event.value),\n );\n this.setIdentificationTypeChange(dt.codigoSri);\n }\n\n updateFormControlNumeroIdentificacion(\n codigoSri: SRI_DOCUMENT_TYPE.RUC | SRI_DOCUMENT_TYPE.CEDULA,\n ): void {\n const idNumberControl = this.customerForm.get('numeroIdentificacion');\n\n this.showRefresh.set(false);\n\n if ([SRI_DOCUMENT_TYPE.RUC, SRI_DOCUMENT_TYPE.CEDULA].includes(codigoSri)) {\n let lengthValidator;\n this.showRefresh.set(true);\n\n if (codigoSri === SRI_DOCUMENT_TYPE.CEDULA) {\n lengthValidator = [Validators.minLength(10), Validators.maxLength(10)];\n } else if (codigoSri === SRI_DOCUMENT_TYPE.RUC) {\n lengthValidator = [\n Validators.minLength(13),\n Validators.maxLength(13),\n this.endsWith001Validator,\n ];\n }\n if (lengthValidator) {\n idNumberControl?.setValidators([\n Validators.required,\n Validators.pattern(/^\\d+$/), // Solo números\n ...lengthValidator,\n ]);\n }\n } else {\n idNumberControl?.setValidators([Validators.required]);\n }\n\n idNumberControl?.updateValueAndValidity();\n }\n\n setIdentificationTypeChange(codigoSri: SRI_DOCUMENT_TYPE.RUC | SRI_DOCUMENT_TYPE.CEDULA) {\n const idNumberControl = this.customerForm.get('numeroIdentificacion');\n idNumberControl?.reset();\n idNumberControl?.clearValidators();\n this.updateFormControlNumeroIdentificacion(codigoSri);\n }\n\n get numeroIdentificacionControl() {\n return this.customerForm.get('numeroIdentificacion');\n }\n\n get birthDateCtrl() {\n return this.customerForm.get('birthDate');\n }\n\n onKeyDownGovernmentId($event?: any) {\n if ($event) {\n $event.preventDefault();\n }\n if (this.numeroIdentificacionControl?.invalid) return;\n\n const idTipoIdentificacion = (\n this.customerForm.get('idTipoIdentificacion') as FormControl<number> | null\n )?.value as number;\n const numeroIdentificacion = (\n this.customerForm.get('numeroIdentificacion') as FormControl<string> | null\n )?.value as string;\n\n const codigoSri = this.tiposIdentificacion().find(\n (x: any) => x.idTipoIdentificacion == idTipoIdentificacion,\n ).codigoSri;\n\n if (numeroIdentificacion) {\n this.getCustomer(codigoSri, numeroIdentificacion);\n }\n }\n\n private isDataOfSri = () => this.params.dataOfSri;\n private isCreate = () => !(this.params.id > 0);\n isUpdate = () => this.params.id > 0;\n\n onSave() {\n this.customerForm.patchValue({\n telefono: this.telephones.length > 0 ? this.telephones.join(SEPARATOR_KEY_CODE.SLASH) : null,\n });\n\n this.customerForm.patchValue({\n correo: this.emails.length > 0 ? this.emails.join(SEPARATOR_KEY_CODE.SLASH) : null,\n });\n this.customerForm.patchValue({\n placa: this.placas().length > 0 ? this.placas().join(SEPARATOR_KEY_CODE.SLASH) : null,\n });\n const dataForm = {\n ...this.customerForm.value,\n };\n\n if (this.customerForm.invalid) {\n this.notificationService.toastr.show({\n type: 'warning',\n message: 'Ingrese todos datos requeridos',\n });\n return;\n }\n\n if (this.isUpdate()) {\n const sendParams = {\n id: this.params.id,\n data: dataForm,\n };\n from(this.customerUseCase.update(sendParams)).subscribe(response => {\n this.notificationService.toastr.show({\n type: isSuccessResponse(response) ? 'success' : 'warning',\n message: `${response.message}`,\n });\n if (isSuccessResponse(response)) {\n this.dialogRef.close({\n id: this.params.id,\n });\n }\n });\n }\n\n if (this.isCreate()) {\n from(this.customerUseCase.create(dataForm)).subscribe(response => {\n this.notificationService.toastr.show({\n type: isSuccessResponse(response) ? 'success' : 'warning',\n message: `${response.message}`,\n });\n if (isSuccessResponse(response)) {\n this.dialogRef.close(response.data);\n }\n });\n }\n }\n\n close() {\n this.dialogRef.close();\n }\n}\n","<mat-dialog-content>\n <form\n (ngSubmit)=\"onSave()\"\n id=\"formCompanyCustomer\"\n [formGroup]=\"customerForm\"\n autocomplete=\"off\"\n >\n <mat-tab-group>\n <mat-tab label=\"DATOS PRINCIPALES\">\n <div class=\"d-grid gap-2 mx-3 mt-2\">\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\"\n >\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Tipo Identificación: </mat-label>\n <mat-select\n formControlName=\"idTipoIdentificacion\"\n (selectionChange)=\"identificationTypeChange($event)\"\n >\n @for (item of tiposIdentificacion(); track $index) {\n <mat-option [value]=\"item.idTipoIdentificacion\"\n >{{ item.descripcion }}</mat-option\n >\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Número de Identificación</mat-label>\n <input\n type=\"text\"\n matInput\n (keydown.enter)=\"onKeyDownGovernmentId($event)\"\n formControlName=\"numeroIdentificacion\"\n />\n @if ( numeroIdentificacionControl?.invalid && (numeroIdentificacionControl?.dirty ||\n numeroIdentificacionControl?.touched) ) { @if\n (numeroIdentificacionControl?.hasError('required')) {\n <mat-error> El número de identificación es obligatorio. </mat-error>\n } @if (numeroIdentificacionControl?.hasError('minlength')) {\n <mat-error>\n Debe tener al menos {{\n numeroIdentificacionControl?.errors?.['minlength'].requiredLength }} dígitos.\n </mat-error>\n } @if (numeroIdentificacionControl?.hasError('maxlength')) {\n <mat-error>\n No puede tener más de {{\n numeroIdentificacionControl?.errors?.['maxlength'].requiredLength }} dígitos.\n </mat-error>\n } @if (numeroIdentificacionControl?.hasError('pattern')) {\n <mat-error> Solo se permiten caracteres numéricos. </mat-error>\n } @if (numeroIdentificacionControl?.hasError('endsWith001')) {\n <mat-error> Los últimos tres dígitos deben ser 001. </mat-error>\n } } @if (showRefresh()) {\n <ng-container matSuffix>\n <acp-button\n type=\"button\"\n matStyle=\"icon\"\n icon=\"refresh\"\n (handleClick)=\"onKeyDownGovernmentId($event)\"\n />\n </ng-container>\n }\n </mat-form-field>\n </div>\n </div>\n\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\"\n >\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Nombre Fiscal:</mat-label>\n <input\n matInput\n autocomplete=\"off\"\n formControlName=\"nombreFiscal\"\n id=\"nombreComercial\"\n placeholder=\"Ej: TECNOMEGA\"\n acpToUpperCase\n />\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Nombre Comercial:</mat-label>\n <input\n matInput\n autocomplete=\"off\"\n formControlName=\"nombreComercial\"\n placeholder=\"Ej: TECNOMEGA\"\n acpToUpperCase\n type=\"text\"\n />\n </mat-form-field>\n </div>\n </div>\n\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>Dirección:</mat-label>\n <input\n matInput\n formControlName=\"direccion\"\n placeholder=\"AV. 09 DE OCTUBRE...\"\n acpToUpperCase\n />\n </mat-form-field>\n </div>\n\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\"\n >\n <div class=\"col\">\n <acp-input-chip [chips]=\"emails\" [labelText]=\"'Correo'\" />\n </div>\n <div class=\"col\">\n <acp-input-chip [chips]=\"telephones\" [labelText]=\"'Teléfono'\" />\n </div>\n </div>\n\n @if (isUpdate()) {\n <div class=\"vstack gap-2 mt-2\">\n <span>Estado</span>\n <mat-slide-toggle formControlName=\"estado\">\n {{ customerForm.value.estado ? 'Activo' : 'Inactivo' }}\n </mat-slide-toggle>\n </div>\n }\n </div>\n </mat-tab>\n <mat-tab label=\"DATOS ADICIONALES\">\n <div class=\"d-grid gap-2 mx-3 mt-2\">\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\"\n >\n <div class=\"col\">\n <acp-dynamic-card title=\"Información Básica\" [isHeaderVisible]=\"true\">\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-2\"\n >\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Tipo Contribuyente: </mat-label>\n <mat-select formControlName=\"idSubContribuyente\">\n @for (item of tipoContribuyentes(); track $index) {\n <mat-option [value]=\"item.idSubContribuyente\">\n {{ item.descripcion }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Tiempo Crédito: </mat-label>\n <mat-select formControlName=\"idTiempoCredito\">\n @for (item of tiemposCredito(); track $index) {\n <mat-option [value]=\"item.idTiempoCredito\">\n {{ item.descripcion }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Ciudad</mat-label>\n <mat-select formControlName=\"idCiudad\">\n <mat-option [value]=\"0\">-- Ninguno --</mat-option>\n @for (group of ciudades(); track $index) {\n <mat-optgroup [label]=\"group.nombre\">\n @for (item of group.ciudades; track $index) {\n <mat-option [value]=\"item.idCiudad\">{{ item.nombre }}</mat-option>\n }\n </mat-optgroup>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Tipo Cliente: </mat-label>\n <mat-select formControlName=\"idTipoClienteProveedor\">\n <mat-option [value]=\"0\">--Ninguno--</mat-option>\n @for (item of tiposCliente(); track $index) {\n <mat-option [value]=\"item.idTipoClienteProveedor\">\n {{ item.descripcion }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Empresa: </mat-label>\n <mat-select formControlName=\"idEmpresa\">\n <mat-option [value]=\"0\">--Ninguno--</mat-option>\n\n @for (item of empresas(); track $index) {\n <mat-option [value]=\"item.idEmpresa\"> {{ item.descripcion }} </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Fecha Nacimiento</mat-label>\n <input matInput [matDatepicker]=\"birthDate\" formControlName=\"birthDate\" />\n <mat-hint>MM/DD/YYYY</mat-hint>\n <mat-datepicker-toggle matIconSuffix [for]=\"birthDate\" />\n <mat-datepicker #birthDate />\n @if (birthDateCtrl?.invalid && birthDateCtrl?.touched) {\n <mat-error> Fecha inválida </mat-error>\n }\n </mat-form-field>\n </div>\n </div>\n </acp-dynamic-card>\n </div>\n <div class=\"col\">\n <acp-dynamic-card title=\"Información Laboral\" [isHeaderVisible]=\"true\">\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\"\n >\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Empleado: </mat-label>\n <mat-select formControlName=\"idEmpleado\">\n <mat-option [value]=\"0\">--Ninguno--</mat-option>\n\n @for (item of employees(); track $index) {\n <mat-option [value]=\"item.idEmpleado\">\n {{ item.nombreCompleto }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Cargo: </mat-label>\n <mat-select formControlName=\"idCargo\">\n <mat-option [value]=\"0\">--Ninguno--</mat-option>\n\n @for (item of cargos(); track $index) {\n <mat-option [value]=\"item.idCargo\"> {{ item.descripcion }} </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"col w-100\">\n <mat-form-field class=\"w-100\">\n <mat-label>Observación</mat-label>\n <textarea matInput placeholder=\"...\" formControlName=\"nota\"></textarea>\n </mat-form-field>\n </div>\n </div>\n </acp-dynamic-card>\n </div>\n </div>\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\"\n >\n <div class=\"col\">\n <acp-dynamic-card title=\"Configuración Financiera\" [isHeaderVisible]=\"true\">\n <div\n class=\"row row-cols-xxl-1 row-cols-xl-1 row-cols-lg-1 row-cols-md-1 row-cols-sm-1 row-cols-1 g-2 mt-2\"\n >\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Forma de pago: </mat-label>\n <mat-select formControlName=\"idFormaPagoSri\">\n <mat-option [value]=\"0\">--Ninguno--</mat-option>\n\n @for (item of formasPagoSri(); track $index) {\n <mat-option [value]=\"item.idFormaPagoSri\">\n {{ item.descripcion }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"col\">\n <acp-input-chip labelText=\"Placa\" [chips]=\"placas()\" />\n </div>\n\n <div class=\"col w-100\">\n <mat-checkbox formControlName=\"configValorBruto\"\n >Activar configuración de valor bruto\n <mat-icon\n matTooltip=\"valor total de un bien o servicio sin incluir impuestos, deducciones o descuentos (uso dentro del reporte)\"\n >info</mat-icon\n ></mat-checkbox\n >\n </div>\n </div>\n </acp-dynamic-card>\n </div>\n <div class=\"col\"></div>\n </div>\n </div>\n </mat-tab>\n <mat-tab label=\"INFORMACIÓN CREDITICIA\">\n <div class=\"d-grid gap-2 mx-3 mt-2\">\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\"\n >\n <div class=\"col\">\n <acp-dynamic-card title=\"Información Personal\" [isHeaderVisible]=\"true\">\n <div\n formGroupName=\"dataInfoCred\"\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-1 row-cols-1 g-2 mt-2\"\n >\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Estado Civil: </mat-label>\n <mat-select formControlName=\"maritalStatusId\">\n <mat-option [value]=\"0\">Seleccionar...</mat-option>\n\n @for (item of maritalStatuses(); track $index) {\n <mat-option [value]=\"item.id\"> {{ item.name }} </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Esposo(a):</mat-label>\n <input\n matInput\n formControlName=\"conyugeNombre\"\n placeholder=\"Nombre del cónyuge\"\n />\n </mat-form-field>\n </div>\n\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Teléfono Personal:</mat-label>\n <input matInput formControlName=\"conyugeTel\" placeholder=\"09xxxxxxxx\" />\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Teléfono Referencia:</mat-label>\n <input matInput formControlName=\"refFamTel\" placeholder=\"09xxxxxxxx\" />\n </mat-form-field>\n </div>\n <div class=\"col w-100\">\n <mat-form-field class=\"w-100\">\n <mat-label>Referencia Familiar:</mat-label>\n <input\n matInput\n formControlName=\"refFamNombre\"\n placeholder=\"Nombre de referencia familiar\"\n />\n </mat-form-field>\n </div>\n </div>\n </acp-dynamic-card>\n </div>\n <div class=\"col\">\n <acp-dynamic-card title=\"Información de Vivienda\" [isHeaderVisible]=\"true\">\n <div\n formGroupName=\"dataInfoCred\"\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-1 row-cols-1 g-2 mt-2\"\n >\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Tipo de Vivienda: </mat-label>\n <mat-select formControlName=\"housingTypeId\">\n <mat-option [value]=\"0\">Seleccionar...</mat-option>\n\n @for (item of housingTypes(); track $index) {\n <mat-option [value]=\"item.id\"> {{ item.name }} </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Sector:</mat-label>\n <input matInput formControlName=\"sector\" placeholder=\"Nombre del sector\" />\n </mat-form-field>\n </div>\n\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Barrio:</mat-label>\n <input matInput formControlName=\"barrio\" placeholder=\"Nombre del barrio\" />\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Calle:</mat-label>\n <input matInput formControlName=\"calle\" placeholder=\"Nombre de la calle\" />\n </mat-form-field>\n </div>\n <div class=\"col w-100\">\n <mat-form-field class=\"w-100\">\n <mat-label>Dirección Completa</mat-label>\n <textarea\n matInput\n formControlName=\"dirVivienda\"\n placeholder=\"Dirección completa de la vivienda (Sector, Barrio y Calle)\"\n ></textarea>\n </mat-form-field>\n </div>\n <div class=\"col w-100\">\n <mat-form-field class=\"w-100\">\n <mat-label>Descripción del Punto de Referencia:</mat-label>\n <textarea\n matInput\n formControlName=\"refDomicilio\"\n placeholder=\"Descripción detallada del punto de referencia\"\n ></textarea>\n </mat-form-field>\n </div>\n </div>\n </acp-dynamic-card>\n </div>\n </div>\n </div>\n </mat-tab>\n </mat-tab-group>\n </form>\n</mat-dialog-content>\n<mat-dialog-actions>\n <div class=\"hstack gap-2\">\n <acp-button type=\"submit\" form=\"formCompanyCustomer\" [text]=\"btnText()\" />\n <acp-button type=\"button\" variant=\"dark\" text=\"Cerrar\" (handleClick)=\"close()\" />\n </div>\n</mat-dialog-actions>\n","import { Component, computed, input, output } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Button } from '@acontplus/ng-components';\nimport { CustomerListItemDto } from '../../../infrastructure/dtos/customer-dto';\n\n@Component({\n selector: 'acp-customer-card',\n imports: [MatCardModule, MatDividerModule, MatChipsModule, MatButtonModule, Button],\n templateUrl: './customer-card.html',\n styleUrl: './customer-card.scss',\n})\nexport class CustomerCard {\n customer = input.required<CustomerListItemDto>();\n editCustomer = output<CustomerListItemDto>();\n deleteCustomer = output<CustomerListItemDto>();\n\n getLogoSliceBusinessName = computed(() => {\n const name = this.customer()?.businessName || '';\n return name.slice(0, 1);\n });\n\n onEditClick(): void {\n // Emits the customer object to the parent component\n this.editCustomer.emit(this.customer());\n }\n\n onDeleteClick(): void {\n // Emits the customer object to the parent component\n this.deleteCustomer.emit(this.customer());\n }\n}\n","<div class=\"acp-customer-card\">\n <mat-card class=\"acp-customer-card-content\">\n <!-- Header -->\n <div class=\"acp-card-header\">\n <div class=\"acp-avatar\" aria-label=\"Logo de cliente\">{{ getLogoSliceBusinessName() }}</div>\n <h5 class=\"acp-business-name\">{{ customer().businessName }}</h5>\n <p class=\"acp-trade-name\">{{ customer().tradeName }}</p>\n </div>\n\n <!-- Card content -->\n <mat-card-content>\n <div class=\"acp-info\">\n <p><strong>ID:</strong> 1234567890 (RUC)</p>\n <p><strong>Email:</strong> {{ customer().email }}</p>\n <p><strong>Teléfono:</strong> {{ customer().phone }}</p>\n <p><strong>Dirección:</strong>{{ customer().address }}</p>\n\n <div class=\"acp-chips\">\n <mat-chip-set>\n <mat-chip color=\"primary\">{{ customer().statusName }}</mat-chip>\n </mat-chip-set>\n </div>\n </div>\n </mat-card-content>\n\n <!-- Card actions -->\n @if (!customer().isFinalConsumer) {\n <mat-card-actions class=\"acp-actions gap-2\">\n <acp-button matStyle=\"icon\" icon=\"edit\" (handleClick)=\"onEditClick()\" />\n <acp-button matStyle=\"icon\" icon=\"delete\" variant=\"danger\" (handleClick)=\"onDeleteClick()\" />\n </mat-card-actions>\n }\n </mat-card>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acontplus-ng-customer.mjs","sources":["../../../../packages/ng-customer/src/lib/company-customer/config/company-customer-form.ts","../../../../packages/ng-customer/src/lib/tokens/injection-tokens.ts","../../../../packages/ng-customer/src/lib/company-customer/data-access/mappers/company-customer-default-mapper.ts","../../../../packages/ng-customer/src/lib/company-customer/data-access/services/company-customer.ts","../../../../packages/ng-customer/src/lib/shared/utils/customer.validators.ts","../../../../packages/ng-customer/src/lib/company-customer/ui/company-customer-form/company-customer-form.ts","../../../../packages/ng-customer/src/lib/company-customer/ui/company-customer-form/company-customer-form.html","../../../../packages/ng-customer/src/index.ts","../../../../packages/ng-customer/src/acontplus-ng-customer.ts"],"sourcesContent":["import { CompanyCustomerFormConfig } from '../models/form-config.model';\n\nexport const MAIN_APP_COMPANY_CUSTOMER_CONFIG: CompanyCustomerFormConfig = {\n fields: {\n // IDs y referencias\n idTipoIdentificacion: {\n name: 'idTipoIdentificacion',\n required: true,\n visible: true,\n label: 'Tipo de Identificación',\n placeholder: 'Seleccione tipo',\n },\n idFormaPagoSri: {\n name: 'idFormaPagoSri',\n required: false,\n visible: true,\n label: 'Forma de Pago SRI',\n placeholder: 'Seleccione forma de pago',\n },\n idTipoClienteProveedor: {\n name: 'idTipoClienteProveedor',\n required: false,\n visible: true,\n label: 'Tipo de Cliente/Proveedor',\n placeholder: 'Seleccione tipo',\n },\n idSubContribuyente: {\n name: 'idSubContribuyente',\n required: false,\n visible: true,\n label: 'Sub-Contribuyente',\n placeholder: 'Seleccione',\n },\n idTiempoCredito: {\n name: 'idTiempoCredito',\n required: false,\n visible: true,\n label: 'Tiempo de Crédito',\n placeholder: 'Días de crédito',\n },\n idCiudad: {\n name: 'idCiudad',\n required: false,\n visible: true,\n label: 'Ciudad',\n placeholder: 'Seleccione ciudad',\n },\n idCargo: {\n name: 'idCargo',\n required: false,\n visible: true,\n label: 'Cargo',\n placeholder: 'Seleccione cargo',\n },\n idEmpleado: {\n name: 'idEmpleado',\n required: false,\n visible: true,\n label: 'Empleado Responsable',\n placeholder: 'Seleccione empleado',\n },\n\n // Datos principales\n numeroIdentificacion: {\n name: 'numeroIdentificacion',\n required: true,\n visible: true,\n label: 'RUC / Cédula',\n placeholder: 'Ingrese número de identificación (13 dígitos para RUC)',\n },\n nombreFiscal: {\n name: 'nombreFiscal',\n required: true,\n visible: true,\n label: 'Razón Social / Nombre Fiscal',\n placeholder: 'Ingrese razón social completa',\n },\n nombreComercial: {\n name: 'nombreComercial',\n required: false,\n visible: true,\n label: 'Nombre Comercial',\n placeholder: 'Ingrese nombre comercial',\n },\n direccion: {\n name: 'direccion',\n required: true,\n visible: true,\n label: 'Dirección',\n placeholder: 'Calle principal y secundaria',\n },\n correo: {\n name: 'correo',\n required: false,\n visible: true,\n label: 'Correo Electrónico',\n placeholder: 'ejemplo@correo.com',\n },\n telefono: {\n name: 'telefono',\n required: false,\n visible: true,\n label: 'Teléfono',\n placeholder: '0999999999',\n },\n placa: {\n name: 'placa',\n required: false,\n visible: true,\n label: 'Placa del Vehículo',\n placeholder: 'ABC-1234',\n },\n nota: {\n name: 'nota',\n required: false,\n visible: true,\n label: 'Notas',\n placeholder: 'Observaciones adicionales',\n },\n birthDate: {\n name: 'birthDate',\n required: false,\n visible: true,\n label: 'Fecha de Nacimiento',\n placeholder: 'DD/MM/AAAA',\n },\n\n // Estados\n estado: {\n name: 'estado',\n required: false,\n visible: true,\n label: 'Activo',\n },\n validationSri: {\n name: 'validationSri',\n required: false,\n visible: true,\n label: 'Validado en SRI',\n },\n configValorBruto: {\n name: 'configValorBruto',\n required: false,\n visible: true,\n label: 'Configurar Valor Bruto',\n },\n },\n // Información de crédito\n showCreditInfo: true,\n creditFields: {\n maritalStatusId: {\n name: 'maritalStatusId',\n required: false,\n visible: true,\n label: 'Estado Civil',\n placeholder: 'Seleccione',\n },\n conyugeNombre: {\n name: 'conyugeNombre',\n required: false,\n visible: true,\n label: 'Nombre del Cónyuge',\n placeholder: 'Ingrese nombre',\n },\n conyugeTel: {\n name: 'conyugeTel',\n required: false,\n visible: true,\n label: 'Teléfono del Cónyuge',\n placeholder: '0999999999',\n },\n refFamNombre: {\n name: 'refFamNombre',\n required: false,\n visible: true,\n label: 'Referencia Familiar',\n placeholder: 'Nombre',\n },\n refFamTel: {\n name: 'refFamTel',\n required: false,\n visible: true,\n label: 'Teléfono Referencia',\n placeholder: '0999999999',\n },\n housingTypeId: {\n name: 'housingTypeId',\n required: false,\n visible: true,\n label: 'Tipo de Vivienda',\n placeholder: 'Seleccione',\n },\n dirVivienda: {\n name: 'dirVivienda',\n required: false,\n visible: true,\n label: 'Dirección de Vivienda',\n placeholder: 'Dirección completa',\n },\n refDomicilio: {\n name: 'refDomicilio',\n required: false,\n visible: true,\n label: 'Referencia de Domicilio',\n placeholder: 'Referencia',\n },\n sector: {\n name: 'sector',\n required: false,\n visible: true,\n label: 'Sector',\n placeholder: 'Ingrese sector',\n },\n barrio: {\n name: 'barrio',\n required: false,\n visible: true,\n label: 'Barrio',\n placeholder: 'Ingrese barrio',\n },\n calle: {\n name: 'calle',\n required: false,\n visible: true,\n label: 'Calle',\n placeholder: 'Calle principal',\n },\n },\n submitButtonText: 'Guardar Cliente',\n cancelButtonText: 'Cancelar',\n};\n\n// Configuración MÍNIMA para POS\nexport const POS_COMPANY_CUSTOMER_CONFIG: CompanyCustomerFormConfig = {\n fields: {\n // Solo lo esencial\n idTipoIdentificacion: {\n name: 'idTipoIdentificacion',\n required: true,\n visible: true,\n label: 'Tipo ID',\n placeholder: 'Tipo',\n },\n numeroIdentificacion: {\n name: 'numeroIdentificacion',\n required: true,\n visible: true,\n label: 'Cédula/RUC',\n placeholder: 'Número de identificación',\n },\n nombreFiscal: {\n name: 'nombreFiscal',\n required: true,\n visible: true,\n label: 'Nombre',\n placeholder: 'Nombre del cliente',\n },\n nombreComercial: {\n name: 'nombreComercial',\n required: false,\n visible: false,\n },\n direccion: {\n name: 'direccion',\n required: false,\n visible: true,\n label: 'Dirección',\n placeholder: 'Dirección',\n },\n correo: {\n name: 'correo',\n required: false,\n visible: false,\n },\n telefono: {\n name: 'telefono',\n required: false,\n visible: true,\n label: 'Teléfono',\n placeholder: 'Teléfono',\n },\n\n // Resto oculto\n idFormaPagoSri: { name: 'idFormaPagoSri', required: false, visible: false },\n idTipoClienteProveedor: { name: 'idTipoClienteProveedor', required: false, visible: false },\n idSubContribuyente: { name: 'idSubContribuyente', required: false, visible: false },\n idTiempoCredito: { name: 'idTiempoCredito', required: false, visible: false },\n idCiudad: { name: 'idCiudad', required: false, visible: false },\n idCargo: { name: 'idCargo', required: false, visible: false },\n idEmpleado: { name: 'idEmpleado', required: false, visible: false },\n placa: { name: 'placa', required: false, visible: false },\n nota: { name: 'nota', required: false, visible: false },\n birthDate: { name: 'birthDate', required: false, visible: false },\n estado: { name: 'estado', required: false, visible: false },\n validationSri: { name: 'validationSri', required: false, visible: false },\n configValorBruto: { name: 'configValorBruto', required: false, visible: false },\n },\n showCreditInfo: false, // Sin info de crédito en POS\n submitButtonText: 'Agregar',\n cancelButtonText: 'Cancelar',\n};\n","import { InjectionToken } from '@angular/core';\nimport { CompanyCustomerFormConfig } from '../company-customer/models/form-config.model';\nimport { ICompanyCustomerService } from '../company-customer';\nimport { ICompanyCustomerMapper } from '../company-customer/data-access/interfaces/company-customer-mapper';\nimport { ICustomerSriService } from '../customer-sri/data-access/interfaces/customer-sri.interface';\n\nexport const CUSTOMER_SRI_SERVICE = new InjectionToken<ICustomerSriService>('CUSTOMER_SRI_SERVICE');\n\nexport const COMPANY_CUSTOMER_MAPPER = new InjectionToken<ICompanyCustomerMapper>(\n 'COMPANY_CUSTOMER_MAPPER',\n);\n\nexport const COMPANY_CUSTOMER_FORM_CONFIG = new InjectionToken<CompanyCustomerFormConfig>(\n 'COMPANY_CUSTOMER_FORM_CONFIG',\n);\n\nexport const COMPANY_CUSTOMER_SERVICE = new InjectionToken<ICompanyCustomerService>(\n 'COMPANY_CUSTOMER_SERVICE',\n);\n","import { ICompanyCustomerMapper } from '../interfaces/company-customer-mapper';\n\nexport class CompanyCustomerDefaultMapper implements ICompanyCustomerMapper {\n toModel(dto: any): any {\n return {\n name: `Esto de mapper default - ${dto.name}`,\n id: dto.id,\n idCliente: dto.id_cliente,\n idEmpresa: dto.id_empresa,\n idCargo: dto.id_cargo,\n idFormaPagoSri: dto.id_forma_pago_sri,\n idTipoClienteProveedor: dto.id_tipo_cliente_proveedor,\n idTipoIdentificacion: dto.id_tipo_identificacion,\n idSubContribuyente: dto.id_sub_contribuyente,\n idTiempoCredito: dto.id_tiempo_credito,\n idCiudad: dto.id_ciudad,\n idEmpleado: dto.id_empleado,\n\n numeroIdentificacion: dto.numero_identificacion,\n nombreFiscal: dto.nombre_fiscal,\n nombreComercial: dto.nombre_comercial,\n direccion: dto.direccion,\n correo: dto.correo,\n telefono: dto.telefono,\n placa: dto.placa,\n nota: dto.nota,\n birthDate: dto.birth_date ? new Date(dto.birth_date) : null,\n\n estado: dto.estado,\n validationSri: dto.validation_sri,\n configValorBruto: dto.config_valor_bruto,\n\n dataInfoCred: dto.data_info_cred\n ? {\n maritalStatusId: dto.data_info_cred.marital_status_id,\n conyugeNombre: dto.data_info_cred.conyuge_nombre,\n conyugeTel: dto.data_info_cred.conyuge_tel,\n refFamNombre: dto.data_info_cred.ref_fam_nombre,\n refFamTel: dto.data_info_cred.ref_fam_tel,\n housingTypeId: dto.data_info_cred.housing_type_id,\n dirVivienda: dto.data_info_cred.dir_vivienda,\n refDomicilio: dto.data_info_cred.ref_domicilio,\n sector: dto.data_info_cred.sector,\n barrio: dto.data_info_cred.barrio,\n calle: dto.data_info_cred.calle,\n }\n : undefined,\n };\n }\n\n toModelList(response: any) {\n const parsed = JSON.parse(response.payload as string);\n const tempList = Array.isArray(parsed) ? parsed[0] : parsed.Table;\n console.log(tempList);\n const mapClient = (data: any): any => ({\n clientId: data.idCliente,\n identificationTypeId: data.idTipoIdentificacion,\n identificationNumber: data.numeroIdentificacion,\n tradeName: data.nombreComercial,\n legalName: data.nombreFiscal,\n address: data.direccion,\n phone: data.telefono,\n email: data.correo,\n finalConsumer: data.consumidorFinal,\n sriValidation: data.validationSri,\n identificationType: data.tipoIdentificacion,\n identificationTypeCode: data.codTipoIdentificacion,\n status: data.estado,\n totalResults: data.totalResults,\n });\n const list = tempList.map((item: any) => mapClient(item));\n const totalRecords = response.totalRecords ?? (list[0]?.totalRecords || 0);\n\n return {\n data: list,\n pagination: {\n totalRecords,\n },\n };\n }\n\n toCreateDTO(customer: any): any {\n return {\n id_tipo_identificacion: customer.idTipoIdentificacion,\n numero_identificacion: customer.numeroIdentificacion,\n nombre_fiscal: customer.nombreFiscal,\n nombre_comercial: customer.nombreComercial,\n direccion: customer.direccion,\n correo: customer.correo,\n telefono: customer.telefono,\n placa: customer.placa,\n nota: customer.nota,\n birth_date: customer.birthDate?.toISOString(),\n estado: customer.estado,\n validation_sri: customer.validationSri,\n config_valor_bruto: customer.configValorBruto,\n\n id_forma_pago_sri: customer.idFormaPagoSri,\n id_tipo_cliente_proveedor: customer.idTipoClienteProveedor,\n id_sub_contribuyente: customer.idSubContribuyente,\n id_tiempo_credito: customer.idTiempoCredito,\n id_ciudad: customer.idCiudad,\n id_cargo: customer.idCargo,\n id_empleado: customer.idEmpleado,\n\n data_info_cred: customer.dataInfoCred\n ? {\n marital_status_id: customer.dataInfoCred.maritalStatusId,\n conyuge_nombre: customer.dataInfoCred.conyugeNombre,\n conyuge_tel: customer.dataInfoCred.conyugeTel,\n ref_fam_nombre: customer.dataInfoCred.refFamNombre,\n ref_fam_tel: customer.dataInfoCred.refFamTel,\n housing_type_id: customer.dataInfoCred.housingTypeId,\n dir_vivienda: customer.dataInfoCred.dirVivienda,\n ref_domicilio: customer.dataInfoCred.refDomicilio,\n sector: customer.dataInfoCred.sector,\n barrio: customer.dataInfoCred.barrio,\n calle: customer.dataInfoCred.calle,\n }\n : null,\n };\n }\n\n toUpdateDTO(customer: any): any {\n return {\n id: customer.id,\n ...this.toCreateDTO(customer),\n };\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map, Observable } from 'rxjs';\nimport { ICompanyCustomerService } from '../interfaces/company-customer';\nimport { COMPANY_CUSTOMER_MAPPER } from '../../../tokens';\nimport { CompanyCustomerDefaultMapper } from '../mappers/company-customer-default-mapper';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CompanyCustomerService implements ICompanyCustomerService {\n private apiUrl = '/FactElect/CompanyCustomer/';\n private http = inject(HttpClient);\n private mapper =\n inject(COMPANY_CUSTOMER_MAPPER, { optional: true }) ?? new CompanyCustomerDefaultMapper();\n\n list(params: any): Observable<any> {\n console.log(params);\n const json = JSON.stringify({\n pageIndex: params.pageIndex || 1,\n pageSize: params.pageSize || 10,\n tipo: 1,\n });\n return this.http\n .get<any>(`${this.apiUrl}?json=${json}`)\n .pipe(map(dtos => this.mapper.toModelList(dtos)));\n }\n\n create(customer: any): Observable<any> {\n return this.http.post<any>(this.apiUrl, customer);\n }\n\n update(id: string, customer: any): Observable<any> {\n return this.http.put<any>(`${this.apiUrl}/${id}`, customer);\n }\n\n getById(id: string): Observable<any> {\n return this.http.get<any>(`${this.apiUrl}/${id}`);\n }\n\n search(term: string): Observable<any[]> {\n return this.http.get<any[]>(`${this.apiUrl}/search?q=${term}`);\n }\n\n // Validación completa para app principal\n validate(customer: any): Record<string, any> | null {\n const errors: Record<string, any> = {};\n\n if (!customer.email || !this.isValidEmail(customer.email)) {\n errors['email'] = 'Email inválido';\n }\n\n if (customer.phone && !this.isValidPhone(customer.phone)) {\n errors['phone'] = 'Teléfono inválido';\n }\n\n return Object.keys(errors).length > 0 ? errors : null;\n }\n\n private isValidEmail(email: string): boolean {\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email);\n }\n\n private isValidPhone(phone: string): boolean {\n return /^\\d{10}$/.test(phone.replace(/\\D/g, ''));\n }\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport class CustomerValidators {\n // Validador para que termine en 001\n static endsWith001(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n if (value && value.length >= 3) {\n if (!value.endsWith('001')) {\n return { endsWith001: true };\n }\n }\n return null;\n };\n }\n\n // Validador para RUC ecuatoriano (13 dígitos)\n static ecuadorianRuc(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n if (!value) return null;\n\n // Debe ser exactamente 13 dígitos\n if (!/^\\d{13}$/.test(value)) {\n return { invalidRuc: true };\n }\n\n // Debe terminar en 001\n if (!value.endsWith('001')) {\n return { rucMustEndWith001: true };\n }\n\n return null;\n };\n }\n\n // Validador para cédula ecuatoriana (10 dígitos)\n static ecuadorianCedula(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n if (!value) return null;\n\n if (!/^\\d{10}$/.test(value)) {\n return { invalidCedula: true };\n }\n\n // Algoritmo de validación de cédula ecuatoriana\n const provincia = parseInt(value.substring(0, 2));\n if (provincia < 1 || provincia > 24) {\n return { invalidProvince: true };\n }\n\n const coeficientes = [2, 1, 2, 1, 2, 1, 2, 1, 2];\n let suma = 0;\n\n for (let i = 0; i < 9; i++) {\n let valor = parseInt(value.charAt(i)) * coeficientes[i];\n if (valor >= 10) valor -= 9;\n suma += valor;\n }\n\n const digitoVerificador = parseInt(value.charAt(9));\n const resultado = suma % 10 === 0 ? 0 : 10 - (suma % 10);\n\n if (resultado !== digitoVerificador) {\n return { invalidCheckDigit: true };\n }\n\n return null;\n };\n }\n\n // Validador de email\n static email(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n if (!value) return null;\n\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!emailRegex.test(value)) {\n return { invalidEmail: true };\n }\n\n return null;\n };\n }\n\n // Validador de teléfono ecuatoriano\n static ecuadorianPhone(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n if (!value) return null;\n\n // Debe empezar con 0 y tener 9-10 dígitos\n if (!/^0\\d{8,9}$/.test(value)) {\n return { invalidPhone: true };\n }\n\n return null;\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n ViewEncapsulation,\n inject,\n signal,\n input,\n output,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport {\n COMPANY_CUSTOMER_FORM_CONFIG,\n COMPANY_CUSTOMER_SERVICE,\n} from '../../../tokens/injection-tokens';\nimport { CompanyCustomerService } from '../../data-access/services/company-customer';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIcon } from '@angular/material/icon';\nimport { Button, InputChip, ToUpperCase } from '@acontplus/ng-components';\nimport { MatSelectModule } from '@angular/material/select';\nimport { CustomerValidators } from '../../../shared/utils/customer.validators';\nimport { CompanyCustomerFormConfig, CreditFieldsConfig, Customer, FieldConfig } from '../../models';\nimport { MAIN_APP_COMPANY_CUSTOMER_CONFIG } from '../../config';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'acp-company-customer-form',\n exportAs: 'acpCustomerForm',\n imports: [\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatExpansionModule,\n MatSelectModule,\n MatIcon,\n Button,\n ToUpperCase,\n InputChip,\n MatButtonModule,\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './company-customer-form.html',\n styleUrls: ['./company-customer-form.scss'],\n})\nexport class CompanyCustomerFormComponent implements OnInit {\n formId = input<string | undefined>();\n @Input() customer?: any;\n @Input() mode: 'create' | 'edit' = 'create';\n showButtons = input(true);\n submitted = output<any>();\n cancelled = output<void>();\n readonly panelOpenState = signal(false);\n private fb = inject(FormBuilder);\n\n config =\n inject(COMPANY_CUSTOMER_FORM_CONFIG, { optional: true }) ?? MAIN_APP_COMPANY_CUSTOMER_CONFIG;\n\n private customerService =\n inject(COMPANY_CUSTOMER_SERVICE, { optional: true }) ?? inject(CompanyCustomerService);\n\n form!: FormGroup;\n isLoading = signal(false);\n errorMessage: string | null = null;\n\n step = signal(0);\n\n emails: string[] = [];\n\n telephones: string[] = [];\n\n tiemposCredito = signal<any[]>([]);\n tipoContribuyentes = signal<any[]>([]);\n tiposCliente = signal<any[]>([]);\n tiposIdentificacion = signal<any[]>([]);\n formasPagoSri = signal<any[]>([]);\n placas = signal<any[]>([]);\n ciudades = signal<any[]>([]);\n cargos = signal<any[]>([]);\n empresas = signal<any[]>([]);\n employees = signal<any[]>([]);\n\n maritalStatuses = signal<any[]>([]);\n housingTypes = signal<any[]>([]);\n\n showRefresh = signal(true);\n\n setStep(index: number) {\n this.step.set(index);\n }\n\n nextStep() {\n this.step.update(i => i + 1);\n }\n\n prevStep() {\n this.step.update(i => i - 1);\n }\n\n ngOnInit(): void {\n this.buildForm();\n if (this.customer) {\n this.patchFormValue(this.customer);\n }\n }\n\n private getDefaultConfig(): CompanyCustomerFormConfig {\n // Configuración por defecto\n return {} as CompanyCustomerFormConfig;\n }\n\n // Método mejorado para acceder a campos de crédito\n getCreditFieldConfig(fieldName: keyof CreditFieldsConfig): FieldConfig | undefined {\n return this.config.creditFields?.[fieldName];\n }\n\n isCreditFieldVisible(fieldName: keyof CreditFieldsConfig): boolean {\n const field = this.getCreditFieldConfig(fieldName);\n return field?.visible || false;\n }\n\n isCreditFieldRequired(fieldName: keyof CreditFieldsConfig): boolean {\n const field = this.getCreditFieldConfig(fieldName);\n return field?.required || false;\n }\n\n getCreditFieldLabel(fieldName: keyof CreditFieldsConfig): string {\n const field = this.getCreditFieldConfig(fieldName);\n return field?.label || fieldName;\n }\n\n getCreditFieldPlaceholder(fieldName: keyof CreditFieldsConfig): string {\n const field = this.getCreditFieldConfig(fieldName);\n return field?.placeholder || '';\n }\n\n // Método mejorado para construir el FormGroup de crédito\n private buildCreditFormGroup(): FormGroup {\n if (!this.config.showCreditInfo || !this.config.creditFields) {\n return this.fb.group({\n maritalStatusId: [null],\n conyugeNombre: [null],\n conyugeTel: [null],\n refFamNombre: [null],\n refFamTel: [null],\n housingTypeId: [null],\n dirVivienda: [null],\n refDomicilio: [null],\n sector: [null],\n barrio: [null],\n calle: [null],\n });\n }\n\n // Construir dinámicamente basado en la config\n const creditGroup: any = {};\n const creditFields = this.config.creditFields;\n\n Object.keys(creditFields).forEach(key => {\n const fieldConfig = creditFields[key as keyof CreditFieldsConfig];\n const validators = fieldConfig.required ? [Validators.required] : [];\n creditGroup[key] = [null, validators];\n });\n\n return this.fb.group(creditGroup);\n }\n\n private buildForm(): void {\n this.form = this.fb.group({\n // IDs\n idCliente: [0],\n idEmpresa: [0],\n idCargo: [0],\n idFormaPagoSri: [0],\n idTipoClienteProveedor: [0],\n idSubContribuyente: [0],\n idTiempoCredito: [0],\n idCiudad: [0],\n idEmpleado: [0],\n\n // Datos principales con validadores\n idTipoIdentificacion: [\n 0,\n this.config.fields.idTipoIdentificacion.required ? [Validators.required] : [],\n ],\n numeroIdentificacion: ['', this.getValidatorsForField('numeroIdentificacion')],\n nombreFiscal: ['', this.getValidatorsForField('nombreFiscal')],\n nombreComercial: [''],\n direccion: ['', this.getValidatorsForField('direccion')],\n correo: ['', this.getValidatorsForField('correo')],\n telefono: ['', this.getValidatorsForField('telefono')],\n placa: [''],\n nota: [''],\n birthDate: [null],\n\n // Estados\n estado: [false],\n validationSri: [false],\n configValorBruto: [false],\n\n // FormGroup anidado para info de crédito\n dataInfoCred: this.buildCreditFormGroup(),\n });\n }\n\n private patchFormValue(customer: Customer): void {\n this.form.patchValue({\n idCliente: customer.idCliente || 0,\n idEmpresa: customer.idEmpresa || 0,\n idCargo: customer.idCargo || 0,\n idFormaPagoSri: customer.idFormaPagoSri || 0,\n idTipoClienteProveedor: customer.idTipoClienteProveedor || 0,\n idTipoIdentificacion: customer.idTipoIdentificacion || 0,\n idSubContribuyente: customer.idSubContribuyente || 0,\n idTiempoCredito: customer.idTiempoCredito || 0,\n idCiudad: customer.idCiudad || 0,\n idEmpleado: customer.idEmpleado || 0,\n\n numeroIdentificacion: customer.numeroIdentificacion || '',\n nombreFiscal: customer.nombreFiscal || '',\n nombreComercial: customer.nombreComercial || '',\n direccion: customer.direccion || '',\n correo: customer.correo || '',\n telefono: customer.telefono || '',\n placa: customer.placa || '',\n nota: customer.nota || '',\n birthDate: customer.birthDate || null,\n\n estado: customer.estado || false,\n validationSri: customer.validationSri || false,\n configValorBruto: customer.configValorBruto || false,\n\n dataInfoCred: customer.dataInfoCred || {},\n });\n }\n\n // Método mejorado para obtener validadores\n private getValidatorsForField(fieldName: keyof CompanyCustomerFormConfig['fields']): any[] {\n const validators: any[] = [];\n const fieldConfig = this.config.fields[fieldName];\n\n if (!fieldConfig) return validators;\n\n if (fieldConfig.required) {\n validators.push(Validators.required);\n }\n\n // Validadores específicos por campo\n switch (fieldName) {\n case 'numeroIdentificacion':\n validators.push(Validators.minLength(13));\n validators.push(Validators.maxLength(13));\n validators.push(CustomerValidators.endsWith001());\n break;\n\n case 'correo':\n if (fieldConfig.visible) {\n validators.push(CustomerValidators.email());\n }\n break;\n\n case 'telefono':\n if (fieldConfig.visible) {\n validators.push(CustomerValidators.ecuadorianPhone());\n }\n break;\n }\n\n // Validadores custom del config\n if (fieldConfig.validators) {\n validators.push(...fieldConfig.validators);\n }\n\n return validators;\n }\n\n // Métodos mejorados de acceso\n isFieldVisible(fieldName: keyof CompanyCustomerFormConfig['fields']): boolean {\n return this.config.fields[fieldName]?.visible || false;\n }\n\n isFieldRequired(fieldName: keyof CompanyCustomerFormConfig['fields']): boolean {\n return this.config.fields[fieldName]?.required || false;\n }\n\n getFieldLabel(fieldName: keyof CompanyCustomerFormConfig['fields']): string {\n return this.config.fields[fieldName]?.label || fieldName;\n }\n\n getFieldPlaceholder(fieldName: keyof CompanyCustomerFormConfig['fields']): string {\n return this.config.fields[fieldName]?.placeholder || '';\n }\n\n identificationTypeChange($ev: any) {\n console.log($ev);\n }\n\n onSubmit(): void {\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n return;\n }\n\n const customerData: Customer = this.form.getRawValue();\n\n if (this.customerService?.validate) {\n const validationErrors = this.customerService.validate(customerData);\n if (validationErrors) {\n this.errorMessage = 'Por favor corrija los errores de validación';\n return;\n }\n }\n\n this.isLoading.set(true);\n this.errorMessage = null;\n\n const operation$ =\n this.mode === 'create'\n ? this.customerService!.create(customerData)\n : this.customerService!.update(this.customer!.id!, customerData);\n\n operation$.subscribe({\n next: (savedCustomer: any) => {\n this.isLoading.set(false);\n this.submitted.emit(savedCustomer);\n },\n error: (error: any) => {\n this.isLoading.set(false);\n this.errorMessage = error.message || 'Error al guardar el cliente';\n },\n });\n }\n\n onCancel(): void {\n this.cancelled.emit();\n }\n\n getErrorMessage(fieldName: string): string {\n const control = this.form.get(fieldName);\n if (!control || !control.errors || !control.touched) {\n return '';\n }\n\n if (control.errors['required']) {\n return `${this.getFieldLabel(fieldName as any)} es requerido`;\n }\n if (control.errors['minlength']) {\n return `Mínimo ${control.errors['minlength'].requiredLength} caracteres`;\n }\n if (control.errors['maxlength']) {\n return `Máximo ${control.errors['maxlength'].requiredLength} caracteres`;\n }\n if (control.errors['endsWith001']) {\n return 'Debe terminar en 001';\n }\n if (control.errors['invalidRuc']) {\n return 'RUC inválido';\n }\n if (control.errors['invalidCedula']) {\n return 'Cédula inválida';\n }\n if (control.errors['invalidEmail']) {\n return 'Email inválido';\n }\n if (control.errors['invalidPhone']) {\n return 'Teléfono inválido (debe empezar con 0)';\n }\n\n return 'Campo inválido';\n }\n\n // Getters para FormGroups anidados\n get dataInfoCredForm(): FormGroup {\n return this.form.get('dataInfoCred') as FormGroup;\n }\n\n searchIdentificacion($event: MouseEvent) {\n $event.stopPropagation();\n console.log('search');\n }\n}\n","<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" [id]=\"formId()\" class=\"mb-2\">\n @if (errorMessage) {\n <div class=\"alert alert-error\">{{ errorMessage }}</div>\n }\n <mat-accordion class=\"mb-2\">\n <mat-expansion-panel [expanded]=\"step() === 0\" (opened)=\"setStep(0)\" hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon>account_circle</mat-icon>\n Datos Principales\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div class=\"d-grid gap-2 mx-3 mt-2\">\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\"\n >\n <div class=\"col\">\n @if (isFieldVisible('idTipoIdentificacion')) {\n <mat-form-field class=\"w-100\">\n <mat-label> {{ getFieldLabel('idTipoIdentificacion') }} </mat-label>\n <mat-select\n formControlName=\"idTipoIdentificacion\"\n (selectionChange)=\"identificationTypeChange($event)\"\n >\n @for (item of tiposIdentificacion(); track $index) {\n <mat-option [value]=\"item.idTipoIdentificacion\">{{ item.descripcion }}</mat-option>\n }\n </mat-select>\n @if (form.get('idTipoIdentificacion')?.invalid &&\n form.get('idTipoIdentificacion')?.touched) {\n <mat-error> {{ getErrorMessage('idTipoIdentificacion') }}</mat-error>\n }\n </mat-form-field>\n }\n </div>\n\n <div class=\"col\">\n <!-- Número de Identificación -->\n @if (isFieldVisible('numeroIdentificacion')) {\n <mat-form-field class=\"w-100\">\n <mat-label> {{ getFieldLabel('numeroIdentificacion') }} </mat-label>\n <input\n matInput\n formControlName=\"numeroIdentificacion\"\n [placeholder]=\"getFieldPlaceholder('numeroIdentificacion')\"\n />\n @if (form.get('numeroIdentificacion')?.invalid &&\n form.get('numeroIdentificacion')?.touched) {\n <mat-error> {{ getErrorMessage('numeroIdentificacion') }}</mat-error>\n }\n <ng-container matSuffix>\n <button type=\"button\" mat-icon-button (click)=\"searchIdentificacion($event)\">\n <mat-icon>search</mat-icon>\n </button>\n </ng-container>\n </mat-form-field>\n }\n </div>\n </div>\n\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\"\n >\n @if (isFieldVisible('nombreFiscal')){\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label> {{ getFieldLabel('nombreFiscal') }} </mat-label>\n <input\n matInput\n autocomplete=\"off\"\n formControlName=\"nombreFiscal\"\n [placeholder]=\"getFieldPlaceholder('nombreFiscal')\"\n acpToUpperCase\n />\n @if (form.get('nombreFiscal')?.invalid && form.get('nombreFiscal')?.touched) {\n <mat-error> {{ getErrorMessage('nombreFiscal') }}</mat-error>\n }\n </mat-form-field>\n </div>\n\n } @if (isFieldVisible('nombreComercial')) {\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label> {{ getFieldLabel('nombreComercial') }} </mat-label>\n <input\n matInput\n autocomplete=\"off\"\n formControlName=\"nombreComercial\"\n [placeholder]=\"getFieldPlaceholder('nombreComercial')\"\n acpToUpperCase\n type=\"text\"\n />\n </mat-form-field>\n </div>\n\n }\n </div>\n\n @if (isFieldVisible('direccion')) {\n\n <mat-form-field class=\"w-100\">\n <mat-label> {{ getFieldLabel('direccion') }}:</mat-label>\n <input\n matInput\n formControlName=\"direccion\"\n [placeholder]=\"getFieldPlaceholder('direccion')\"\n acpToUpperCase\n />\n @if (form.get('direccion')?.invalid && form.get('direccion')?.touched) {\n <mat-error>{{ getErrorMessage('direccion') }}</mat-error>\n }\n </mat-form-field>\n }\n\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\"\n >\n @if (isFieldVisible('correo')) {\n <div class=\"col\">\n <acp-input-chip [chips]=\"emails\" [labelText]=\"getFieldLabel('correo')\" />\n </div>\n } @if (isFieldVisible('telefono')) {\n <div class=\"col\">\n <acp-input-chip [chips]=\"telephones\" [labelText]=\"getFieldLabel('telefono')\" />\n </div>\n }\n </div>\n </div>\n <mat-action-row>\n <acp-button\n variant=\"info\"\n matStyle=\"filled\"\n type=\"button\"\n text=\"Siguiente\"\n (handleClick)=\"nextStep()\"\n />\n </mat-action-row>\n </mat-expansion-panel>\n\n <mat-expansion-panel [expanded]=\"step() === 1\" (opened)=\"setStep(1)\" hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title> Información Comercial </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"d-grid gap-2 mx-3\">\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\"\n >\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Forma de pago: </mat-label>\n <mat-select formControlName=\"idFormaPagoSri\">\n <mat-option [value]=\"0\">--Ninguno--</mat-option>\n\n @for (item of formasPagoSri(); track $index) {\n <mat-option [value]=\"item.idFormaPagoSri\"> {{ item.descripcion }} </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Tiempo Crédito: </mat-label>\n <mat-select formControlName=\"idTiempoCredito\">\n @for (item of tiemposCredito(); track $index) {\n <mat-option [value]=\"item.idTiempoCredito\"> {{ item.descripcion }} </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\"\n >\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Tipo Cliente: </mat-label>\n <mat-select formControlName=\"idTipoClienteProveedor\">\n <mat-option [value]=\"0\">--Ninguno--</mat-option>\n @for (item of tiposCliente(); track $index) {\n <mat-option [value]=\"item.idTipoClienteProveedor\">\n {{ item.descripcion }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Empleado: </mat-label>\n <mat-select formControlName=\"idEmpleado\">\n <mat-option [value]=\"0\">--Ninguno--</mat-option>\n\n @for (item of employees(); track $index) {\n <mat-option [value]=\"item.idEmpleado\"> {{ item.nombreCompleto }} </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <mat-form-field>\n <mat-label>Country</mat-label>\n <input matInput />\n </mat-form-field>\n </div>\n\n <mat-action-row>\n <acp-button\n variant=\"info\"\n matStyle=\"filled\"\n type=\"button\"\n text=\"Atrás\"\n (handleClick)=\"prevStep()\"\n />\n <acp-button\n variant=\"info\"\n matStyle=\"filled\"\n type=\"button\"\n text=\"Siguiente\"\n (handleClick)=\"nextStep()\"\n />\n </mat-action-row>\n </mat-expansion-panel>\n\n <mat-expansion-panel [expanded]=\"step() === 2\" (opened)=\"setStep(2)\" hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title> Información de Crédito </mat-panel-title>\n </mat-expansion-panel-header>\n\n <section class=\"d-grid gap-2 mx-2\" formGroupName=\"dataInfoCred\">\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-1 row-cols-1 g-1\"\n >\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Estado Civil: </mat-label>\n <mat-select formControlName=\"maritalStatusId\">\n <mat-option [value]=\"0\">Seleccionar...</mat-option>\n\n @for (item of maritalStatuses(); track $index) {\n <mat-option [value]=\"item.id\"> {{ item.name }} </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Tipo de Vivienda: </mat-label>\n <mat-select formControlName=\"housingTypeId\">\n <mat-option [value]=\"0\">Seleccionar...</mat-option>\n\n @for (item of housingTypes(); track $index) {\n <mat-option [value]=\"item.id\"> {{ item.name }} </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-1 row-cols-1 g-1\"\n >\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Nombre del Cónyuge:</mat-label>\n <input matInput formControlName=\"conyugeNombre\" placeholder=\"Nombre del cónyuge\" />\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Teléfono del Cónyuge:</mat-label>\n <input matInput formControlName=\"conyugeTel\" placeholder=\"09xxxxxxxx\" />\n </mat-form-field>\n </div>\n </div>\n\n <div\n class=\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-1 row-cols-1 g-1\"\n >\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Referencia Familiar:</mat-label>\n <input matInput formControlName=\"refFamTel\" placeholder=\"09xxxxxxxx\" />\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Teléfono Referencia:</mat-label>\n <input matInput formControlName=\"refFamTel\" placeholder=\"09xxxxxxxx\" />\n </mat-form-field>\n </div>\n </div>\n\n <mat-form-field class=\"w-100\">\n <mat-label>Dirección de Vivienda</mat-label>\n <textarea\n matInput\n formControlName=\"dirVivienda\"\n placeholder=\"Dirección completa de la vivienda (Sector, Barrio y Calle)\"\n ></textarea>\n </mat-form-field>\n\n <div\n class=\"row row-cols-xxl-3 row-cols-xl-3 row-cols-lg-3 row-cols-md-2 row-cols-sm-1 row-cols-1 g-1\"\n >\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Sector:</mat-label>\n <input matInput formControlName=\"sector\" placeholder=\"Nombre del sector\" />\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Barrio:</mat-label>\n <input matInput formControlName=\"barrio\" placeholder=\"Nombre del barrio\" />\n </mat-form-field>\n </div>\n <div class=\"col\">\n <mat-form-field class=\"w-100\">\n <mat-label>Calle:</mat-label>\n <input matInput formControlName=\"calle\" placeholder=\"Nombre de la calle\" />\n </mat-form-field>\n </div>\n </div>\n\n <mat-form-field class=\"w-100\">\n <mat-label>Referencia de Domicilio</mat-label>\n <textarea\n matInput\n formControlName=\"refDomicilio\"\n placeholder=\"Descripción detallada del punto de referencia\"\n ></textarea>\n </mat-form-field>\n </section>\n\n <mat-action-row>\n <acp-button\n variant=\"info\"\n matStyle=\"filled\"\n type=\"button\"\n text=\"Atrás\"\n (handleClick)=\"prevStep()\"\n />\n <acp-button\n variant=\"info\"\n matStyle=\"filled\"\n type=\"button\"\n text=\"Siguiente\"\n (handleClick)=\"nextStep()\"\n />\n </mat-action-row>\n </mat-expansion-panel>\n\n <mat-expansion-panel [expanded]=\"step() === 3\" (opened)=\"setStep(3)\" hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title> Notas</mat-panel-title>\n </mat-expansion-panel-header>\n\n @if (isFieldVisible('nota')) {\n\n <mat-form-field class=\"w-100\">\n <mat-label> {{ getFieldLabel('nota') }} </mat-label>\n <textarea\n matInput\n formControlName=\"nota\"\n [placeholder]=\"getFieldPlaceholder('nota')\"\n rows=\"3\"\n ></textarea>\n </mat-form-field>\n }\n <mat-action-row>\n <acp-button\n variant=\"info\"\n matStyle=\"filled\"\n type=\"button\"\n text=\"Atrás\"\n (handleClick)=\"prevStep()\"\n />\n </mat-action-row>\n </mat-expansion-panel>\n </mat-accordion>\n\n <!-- Buttons -->\n @if (showButtons()){\n <div class=\"form-actions\">\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"onCancel()\" [disabled]=\"isLoading()\">\n {{ config.cancelButtonText }}\n </button>\n\n <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"isLoading() || form.invalid\">\n @if (!isLoading()) {\n <span>{{ config.submitButtonText }}</span>\n } @else {\n <span>Guardando...</span>\n }\n </button>\n </div>\n\n }\n</form>\n","// export * from './lib/application';\n// export * from './lib/domain';\n// export * from './lib/infrastructure';\n// export * from './lib/ui';\nexport * from './lib/company-customer';\nexport * from './lib/tokens';\nexport * from './lib/shared';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acontplus/ng-customer",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Angular customer management module following clean architecture principles. Provides customer UI components, business logic, and integrates with notification systems for comprehensive customer relationship management.",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@acontplus/ng-components": "^
|
|
7
|
-
"@acontplus/ng-notifications": "^
|
|
8
|
-
"@angular/common": "^
|
|
9
|
-
"@angular/core": "^
|
|
6
|
+
"@acontplus/ng-components": "^2.0.0",
|
|
7
|
+
"@acontplus/ng-notifications": "^2.0.0",
|
|
8
|
+
"@angular/common": "^21.0.6",
|
|
9
|
+
"@angular/core": "^21.0.6"
|
|
10
10
|
},
|
|
11
11
|
"sideEffects": false,
|
|
12
12
|
"main": "fesm2022/acontplus-ng-customer.mjs",
|
|
13
13
|
"module": "fesm2022/acontplus-ng-customer.mjs",
|
|
14
|
-
"typings": "
|
|
14
|
+
"typings": "types/acontplus-ng-customer.d.ts",
|
|
15
15
|
"files": [
|
|
16
16
|
"index.d.ts",
|
|
17
17
|
"*.d.ts",
|
|
18
18
|
"**/*.d.ts",
|
|
19
|
-
"fesm2022/**/*"
|
|
19
|
+
"fesm2022/**/*",
|
|
20
|
+
"company-customer/**/*"
|
|
20
21
|
],
|
|
21
22
|
"engines": {
|
|
22
23
|
"node": ">=18.0.0"
|
|
@@ -62,7 +63,7 @@
|
|
|
62
63
|
"default": "./package.json"
|
|
63
64
|
},
|
|
64
65
|
".": {
|
|
65
|
-
"types": "./
|
|
66
|
+
"types": "./types/acontplus-ng-customer.d.ts",
|
|
66
67
|
"default": "./fesm2022/acontplus-ng-customer.mjs"
|
|
67
68
|
}
|
|
68
69
|
},
|