new Vue({
    el: '#appClientesCrear',
    data: {
        dataForm: {
            'cli_tipodoc': '',
            'cli_dni': '',
            'cli_razon_social': '',
            'cli_fecha_nac': '',
            'cli_email': '',
            'cli_telefono': '',
            'cli_telefono_2': '',
            'cli_direccion': '',
            'cli_contribuyente': '',
            'cli_estatus': '',
            'cli_fecha_reg': '',
            'cli_genero': '',
            'cli_paisid': '',
            'cli_estado': '',
            'cli_ciudad': '',
            'cli_codpostal': '',
            'cli_descuento': '',
            'cli_razonsocial': '',
            'cli_natural': true,
            'cli_grupid': '',
            'cli_observaciones': ''
        },
        errorForm: [],
        cargando: false,
    },
    methods: {
        guardar() {

            this.errorForm = [];

            this.dataForm.cli_tipodoc = this.$refs.seleccionado.value;

            if (!this.dataForm.cli_tipodoc)
                this.errorForm.push('El campo Tipo de documento es obligatorio');
            if (!this.dataForm.cli_paisid)
                this.errorForm.push('El campo País es obligatorio');
            if (!this.dataForm.cli_telefono)
                this.errorForm.push('El campo Teléfono es obligatorio');
            if (!this.dataForm.cli_direccion)
                this.errorForm.push('El campo Dirección es obligatorio');
            if (!this.dataForm.cli_dni)
                this.errorForm.push('El campo Número de Documento es obligatorio.');
            if (!this.dataForm.cli_razon_social)
                this.errorForm.push('El campo Razón Social es obligatorio.');
            if (!this.dataForm.cli_telefono)
                this.errorForm.push('El campo Teléfono es obligatorio.');
            if (!this.dataForm.cli_email) {
                this.errorForm.push('El Correo Electrónico es obligatorio.');
            } else if (!validaEmail(this.dataForm.cli_email)) {
                this.errorForm.push('El Correo Electrónico debe tener un formato válido.');
            }

            if (this.errorForm.length == 0) {
                this.cargando = true;
                axios({
                    method: 'post',
                    url: 'clientes/guardar',
                    data: this.dataForm,
                    transformRequest: serializar(),
                }).then(response => {
                    if (response.data.errors == null) {
                        if (response.data == true) {
                            this.dataForm.cli_tipodoc = '';
                            this.dataForm.cli_dni = '';
                            this.dataForm.cli_razon_social = '';
                            this.dataForm.cli_fecha_nac = '';
                            this.dataForm.cli_email = '';
                            this.dataForm.cli_telefono = '';
                            this.dataForm.cli_telefono_2 = '';
                            this.dataForm.cli_direccion = '';
                            this.dataForm.cli_contribuyente = '';
                            this.dataForm.cli_estatus = '';
                            this.dataForm.cli_fecha_reg = '';
                            this.dataForm.cli_genero = '';
                            this.dataForm.cli_paisid = '';
                            this.dataForm.cli_estado = '';
                            this.dataForm.cli_ciudad = '';
                            this.dataForm.cli_codpostal = '';
                            this.dataForm.cli_descuento = '';
                            this.dataForm.cli_razonsocial = '';
                            this.dataForm.cli_natural = false;
                            this.dataForm.cli_grupid = '';
                            this.dataForm.cli_observaciones = '';
                            notificacion('fa fa-check', 'Registro', 'Registro exitoso', 'success');
                        }
                    } else {
                        this.errorForm = response.data.errors;
                    }
                }).catch(e => notificacion()).finally(() => this.cargando = false);
            }
        }
    }
});