@acontplus/ng-customer 2.0.0 → 2.0.1
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 +1 @@
|
|
|
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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"}
|
|
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 inject,\n Input,\n input,\n OnInit,\n output,\n signal,\n ViewEncapsulation,\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,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acontplus/ng-customer",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
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": "^2.0.
|
|
7
|
-
"@acontplus/ng-notifications": "^2.0.
|
|
6
|
+
"@acontplus/ng-components": "^2.0.1",
|
|
7
|
+
"@acontplus/ng-notifications": "^2.0.1",
|
|
8
8
|
"@angular/common": "^21.0.6",
|
|
9
9
|
"@angular/core": "^21.0.6"
|
|
10
10
|
},
|