Untitled

mail@pastecode.io avatar
unknown
typescript
10 days ago
2.7 kB
3
Indexable
Never
// Cambio de valores en metodo de obtencion
this.animalForm.controls.obtainMethod.valueChanges.subscribe((value: ObtainingMethod) => {
    // Inicializa valores de esta seccion del formulario
    this.animalForm.controls.origin.setValue('');
    this.animalForm.controls.females.setValue('');
    this.animalForm.controls.males.setValue('');
    this.animalForm.controls.price.setValue('');
    this.animalForm.controls.purchaseMethod.setValue('');
    this.animalForm.controls.provenance.setValue('');
    this.animalForm.controls.isWaste.setValue(false);
    // Obtiene los animales por genero
    this.animalsService.getAnimalsDividedByGender().subscribe();
    // Si es compra
    if (value?.code === 'PURCHASE') {
        // Quita lo obligatorio de la madre y el numero de origen
        this.animalForm.controls.females.removeValidators(Validators.required);
        this.animalForm.controls.origin.removeValidators(Validators.required);
        // Obtiene los metodos de compra
        this._purchaseMethodsService.getList('SIMPLE', purchaseMethodsSimpleConfigQuery).subscribe();
        this._provenancesService.getList('SIMPLE',provenancesPurchaseSimpleConfigQuery).subscribe();
        // Habilita los campos de compra
        this.animalForm.controls.purchaseMethod.enable();
        this.animalForm.controls.isWaste.enable();
        this.animalForm.controls.provenance.enable();
        // Deshabilita campos de nacimiento
        this.animalForm.controls.deliveryType.disable();
        // Si el animal es hembra cuando selecciona compra
        if (this.animalForm.value.gender === 'F') {
            this.animalForm.controls.numberBirthsApprox.enable();
            this.animalForm.controls.isLoaded.enable();
        }
    }
    // Si es nacimiento
    if (value?.code === 'BIRTH') {
        // Agrega lo obligatorio al numero de origen y a la madre
        this.animalForm.controls.origin.setValidators(Validators.required);
        this.animalForm.controls.females.setValidators(Validators.required);
        // Obtiene los tipos de nacimiento
        this._deliveryTypesService.getList('SIMPLE', deliveryTypesSimpleConfigQuery).subscribe();
        // Habilita campos de nacimiento
        this.animalForm.controls.deliveryType.enable();
        // Deshabilita campos de compra
        this.animalForm.controls.purchaseMethod.disable();
        this.animalForm.controls.isWaste.disable();
        this.animalForm.controls.provenance.disable();
        // Se deshabilitan los campos de compra cuando es hembra
        this.animalForm.controls.numberBirthsApprox.disable();
        this.animalForm.controls.isLoaded.disable();
    }
});
Leave a Comment