Esempio n. 1
0
        private void Guardar(object sender, RoutedEventArgs e)
        {
            try
            {
                int FacturasConsecutivo, NotasCreditoConsecutivo, TiqueteElectronico, Confirmacion;
                if (!int.TryParse(txt_facturas.Text, out FacturasConsecutivo) || !int.TryParse(txt_NotasCredito.Text, out NotasCreditoConsecutivo) || !int.TryParse(txt_TiqueteElectronico.Text, out TiqueteElectronico) || !int.TryParse(txt_Confirmacion.Text, out Confirmacion) || TiqueteElectronico <= 0 || FacturasConsecutivo <= 0 || NotasCreditoConsecutivo <= 0 || Confirmacion <= 0)
                {
                    MessageBox.Show("Error de formato para los consecutivo solo se permiten numeros", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                    return;
                }

                using (db_FacturaDigital db = new db_FacturaDigital())
                {
                    Contribuyente_Consecutivos consecutivos = db.Contribuyente_Consecutivos.First(q => q.Id_Contribuyente == Recursos.RecursosSistema.Contribuyente.Id_Contribuyente);
                    if (consecutivos.Consecutivo_Facturas > FacturasConsecutivo)
                    {
                        if (MessageBox.Show("Esta ingresando un numero menor al que ya existe para los consecutivos de facturas esto puede causar problemas de colisiones desea continuar", "Validacion", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.No)
                        {
                            return;
                        }
                    }

                    if (consecutivos.Consecutivo_Tiquete_Electrónico > TiqueteElectronico)
                    {
                        if (MessageBox.Show("Esta ingresando un numero menor al que ya existe para los consecutivos de notas de credito esto puede causar problemas de colisiones desea continuar", "Validacion", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.No)
                        {
                            return;
                        }
                    }


                    if (consecutivos.Consecutivo_Confirmacion > Confirmacion)
                    {
                        if (MessageBox.Show("Esta ingresando un numero menor al que ya existe para los consecutivos de confirmacion esto puede causar problemas de colisiones desea continuar", "Validacion", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.No)
                        {
                            return;
                        }
                    }

                    if (consecutivos.Consecutivo_NotasCredito > NotasCreditoConsecutivo)
                    {
                        if (MessageBox.Show("Esta ingresando un numero menor al que ya existe para los consecutivos de notas de credito esto puede causar problemas de colisiones desea continuar", "Validacion", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.No)
                        {
                            return;
                        }
                    }

                    consecutivos.Consecutivo_Facturas            = FacturasConsecutivo;
                    consecutivos.Consecutivo_NotasCredito        = NotasCreditoConsecutivo;
                    consecutivos.Consecutivo_Tiquete_Electrónico = TiqueteElectronico;
                    consecutivos.Consecutivo_Confirmacion        = FacturasConsecutivo;
                    db.SaveChanges();
                    MessageBox.Show("Cambio realizado correctamente", "Estado", MessageBoxButton.OK);
                }
            }catch (Exception ex)
            {
                this.LogError(ex);
            }
        }
Esempio n. 2
0
        private void ObtenerConteoActual()
        {
            try
            {
                if (Recursos.RecursosSistema.Contribuyente == null)
                {
                    MessageBox.Show("Debe completar el perfil de Hacienda antes de continuar", "Falta de datos", MessageBoxButton.OK, MessageBoxImage.Stop);
                    Recursos.RecursosSistema.MainConteiner.Content = new Contribuyente.PerfilHacienda();
                    return;
                }
                Contribuyente_Consecutivos consecutivos = null;
                using (db_FacturaDigital db = new db_FacturaDigital())
                {
                    consecutivos = db.Contribuyente_Consecutivos.FirstOrDefault(q => q.Id_Contribuyente == Recursos.RecursosSistema.Contribuyente.Id_Contribuyente);
                    if (consecutivos == null)
                    {
                        consecutivos = new Contribuyente_Consecutivos()
                        {
                            Consecutivo_Facturas            = 1,
                            Consecutivo_NotasCredito        = 1,
                            Consecutivo_Tiquete_Electrónico = 1,
                            Id_Contribuyente = Recursos.RecursosSistema.Contribuyente.Id_Contribuyente
                        };
                        db.Contribuyente_Consecutivos.Add(consecutivos);
                        db.SaveChanges();
                    }
                }

                txt_TiqueteElectronico.Text = consecutivos.Consecutivo_Tiquete_Electrónico.ToString();
                txt_facturas.Text           = consecutivos.Consecutivo_Facturas.ToString();
                txt_NotasCredito.Text       = consecutivos.Consecutivo_NotasCredito.ToString();
            }
            catch (Exception ex)
            {
                this.LogError(ex);
            }
        }
        private void Guardar(object sender, RoutedEventArgs e)
        {
            try
            {
                bool ExisteContribuyente = true;
                using (db_FacturaDigital db = new db_FacturaDigital())
                {
                    DataModel.EF.Contribuyente Contribuyente = db.Contribuyente.FirstOrDefault();
                    if (Contribuyente == null)
                    {
                        ExisteContribuyente = false;
                        Contribuyente       = new DataModel.EF.Contribuyente();
                    }

                    #region DatosGenerales
                    if (string.IsNullOrEmpty(txt_Identificacion.Text))
                    {
                        MessageBox.Show("Favor llenar el campo de identificacion", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                    Contribuyente.Identificacion_Numero = txt_Identificacion.Text;
                    Contribuyente.Identificacion_Tipo   = (cb_Cedula.SelectedItem as ComboBoxItem).Tag.ToString();


                    if (string.IsNullOrEmpty(txt_Nombre.Text))
                    {
                        MessageBox.Show("Favor llenar el campo de nombre", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                    Contribuyente.Nombre = txt_Nombre.Text;



                    if (string.IsNullOrEmpty(txt_comercial.Text))
                    {
                        MessageBox.Show("Favor llenar el campo de nombre comercial", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                    Contribuyente.NombreComercial = txt_comercial.Text;

                    if (string.IsNullOrEmpty(txt_Correo.Text))
                    {
                        MessageBox.Show("Favor llenar el campo de correo", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                    Contribuyente.CorreoElectronico = txt_Correo.Text;
                    int Region;
                    if (!int.TryParse(txt_TelefonoRegion.Text, out Region))
                    {
                        MessageBox.Show("Favor llenar el campo de region (solamente numeros) ", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                    Contribuyente.Telefono_Codigo = Region;

                    int telefono;
                    if (!int.TryParse(txt_TelefonoNumero.Text, out telefono))
                    {
                        MessageBox.Show("Favor llenar el campo de telefono (solamente numeros)", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                    Contribuyente.Telefono_Numero = telefono;
                    #endregion

                    #region Ubicacion
                    UbicacionesType provincia = cb_Provincia.SelectedItem as UbicacionesType;
                    if (provincia == null)
                    {
                        MessageBox.Show("Favor seleccionar una provincia", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                    Contribuyente.Provincia = provincia.Id;


                    UbicacionesType canton = cb_canton.SelectedItem as UbicacionesType;
                    if (canton == null)
                    {
                        MessageBox.Show("Favor seleccionar una Canton", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                    Contribuyente.Canton = canton.Id;


                    UbicacionesType Distrito = cb_distrito.SelectedItem as UbicacionesType;
                    if (Distrito == null)
                    {
                        MessageBox.Show("Favor seleccionar una Distrito", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                    Contribuyente.Distrito = Distrito.Id;


                    UbicacionesType Barrio = cb_barrio.SelectedItem as UbicacionesType;
                    if (Distrito == null)
                    {
                        MessageBox.Show("Favor seleccionar una Barrio", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                    Contribuyente.Barrio = Barrio.Id;


                    if (string.IsNullOrEmpty(txt_otrasSenas.Text))
                    {
                        MessageBox.Show("Favor llenar el campo de otras senas", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                    Contribuyente.OtrasSenas = txt_otrasSenas.Text;
                    #endregion

                    #region Datos Hacienda
                    if (string.IsNullOrEmpty(txt_UsuarioHacienda.Text))
                    {
                        MessageBox.Show("Favor llenar el campo de usuario de hacienda ", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                    Contribuyente.UsuarioHacienda = txt_UsuarioHacienda.Text;


                    if (string.IsNullOrEmpty(txt_contrasena.Text))
                    {
                        MessageBox.Show("Favor llenar el campo de contrasena de hacienda", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                    Contribuyente.ContrasenaHacienda = txt_contrasena.Text;
                    #endregion

                    #region Certificado
                    if (string.IsNullOrEmpty(CertificadoUrl) && (Contribuyente.Certificado == null || Contribuyente.Certificado.Length == 0))
                    {
                        MessageBox.Show("Favor seleccionar un certificado", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }

                    if (!string.IsNullOrEmpty(CertificadoUrl))
                    {
                        Contribuyente.Certificado = File.ReadAllBytes(CertificadoUrl);
                    }

                    if (string.IsNullOrEmpty(txt_contrasenaCertificado.Text))
                    {
                        MessageBox.Show("Favor llenar el campo de contrasena de certificado", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                    Contribuyente.Contrasena_Certificado = txt_contrasenaCertificado.Text;


                    try
                    {
                        X509Certificate2 x509 = new X509Certificate2(Contribuyente.Certificado, Contribuyente.Contrasena_Certificado, X509KeyStorageFlags.Exportable);
                        x509.Verify();
                        string Values       = x509.Subject.Split(',').First(q => q.ToUpper().Contains("SERIALNUMBER"));
                        string SerialNumber = Values.Split('=')[1];
                        string OnlyNumber   = new string(SerialNumber.Where(c => char.IsDigit(c)).ToArray());
                        if (!OnlyNumber.Contains(Contribuyente.Identificacion_Numero) && !Contribuyente.Identificacion_Numero.Contains(OnlyNumber))
                        {
                            if (MessageBox.Show("El numero de identificacion registrado en el certificado no concuerda con el ingresado por el usuario en el campo [Identificacion]. Aun asi desea continuar?", "Validacion", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
                            {
                                return;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        this.LogError(ex);
                        MessageBox.Show("No se pudo abrir el ceritificado. Esto se puede deber a que la contrasena indicada no es valida o que el contenido del certificado es invalido", "Error", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }


                    #endregion

                    if (!ExisteContribuyente)
                    {
                        db.Contribuyente.Add(Contribuyente);
                    }

                    db.SaveChanges();

                    Contribuyente_Consecutivos conse = db.Contribuyente_Consecutivos.FirstOrDefault(q => q.Id_Contribuyente == Contribuyente.Id_Contribuyente);

                    if (conse == null)
                    {
                        conse = new Contribuyente_Consecutivos()
                        {
                            Consecutivo_Facturas            = 1,
                            Consecutivo_NotasCredito        = 1,
                            Consecutivo_Tiquete_Electrónico = 1,
                            Consecutivo_Confirmacion        = 1,
                            Id_Contribuyente = Contribuyente.Id_Contribuyente
                        };
                        db.Contribuyente_Consecutivos.Add(conse);
                        db.SaveChanges();
                    }

                    MessageBox.Show("Perfil actualizado correctamente", "Informacion", MessageBoxButton.OK, MessageBoxImage.Information);
                    try
                    {
                        RecursosSistema.Contribuyente = Contribuyente;
                        RecursosSistema.OnStartMain_Load();
                    }catch (Exception ex)
                    {
                        this.LogError(ex);
                        MessageBox.Show("Reinicie el sistema para continuar");
                    }
                }
            }
            catch (Exception ex)
            {
                this.LogError(ex);
                MessageBox.Show("Ocurrio al guardar el perfil del contribuyente", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }