예제 #1
0
        public List <Anticipo> Read_Anticipo()
        {
            List <Anticipo> anticipos       = new List <Anticipo>();
            ReadGeneralData readGeneralData = new ReadGeneralData();
            DataTable       dataTable       = readGeneralData.GetDataTable("[dbo].[Read_Anticipo]", "@IdCabeceraDocumento", IdCabeceraDocumento);

            DataRow  row;
            Anticipo anticipo;

            for (int i = 0; i < dataTable.Rows.Count; i++)
            {
                row      = dataTable.Rows[i];
                anticipo = new Anticipo()
                {
                    IdAnticipo          = Convert.ToInt32(row["IdAnticipo"].ToString()),
                    ComprobanteAnticipo = row["ComprobanteAnticipo"].ToString(),
                    TipoDocumento       = row["TipoDocumento"].ToString(),
                    Monto     = Convert.ToDecimal(row["Monto"].ToString()),
                    Moneda    = row["Moneda"].ToString(),
                    FechaPago = Convert.ToDateTime(row["FechaPago"].ToString())
                };
                anticipos.Add(anticipo);
            }

            return(anticipos);
        }
예제 #2
0
        public List <SubTotalImpuestos> Read_SubTotalImpuesto()
        {
            List <SubTotalImpuestos> subTotalImpuestos = new List <SubTotalImpuestos>();
            ReadGeneralData          readGeneralData   = new ReadGeneralData();
            DataTable dataTable = readGeneralData.GetDataTable("[dbo].[Read_SubTotalImpuesto]", "@IdTotalImpuestos", IdTotalImpuestos);

            DataRow           row;
            SubTotalImpuestos subTotalImpuesto;

            for (int i = 0; i < dataTable.Rows.Count; i++)
            {
                row = dataTable.Rows[i];
                subTotalImpuesto = new SubTotalImpuestos()
                {
                    IdTotalImpuestos    = Convert.ToInt32(row["IdTotalImpuestos"].ToString()),
                    BaseImponible       = Convert.ToDecimal(row["BaseImponible"].ToString()),
                    TipoMonedaBase      = row["MBMoneda"].ToString(),
                    MontoTotal          = Convert.ToDecimal(row["MontoTotal"].ToString()),
                    TipoMonedaTotal     = row["MTMoneda"].ToString(),
                    PorcentajeImp       = Convert.ToDecimal(row["PorcentajeImp"].ToString()),
                    TipoAfectacion      = row["TipoAfectacion"].ToString(),
                    TipoSistemaISC      = string.Empty,     // Se considera irrelevante por parte de operaciones
                    CodigoTributo       = row["CodigoTributo"].ToString(),
                    CodigoInternacional = row["CodigoInternacional"].ToString(),
                    NombreTributo       = row["NombreTributo"].ToString()
                };
                subTotalImpuestos.Add(subTotalImpuesto);
            }

            return(subTotalImpuestos);
        }
예제 #3
0
        // Instanciar la lista de Ids
        public List <string> Get_List_LowerNodes()
        {
            ReadGeneralData readGeneralData = new ReadGeneralData();
            List <string>   values          = readGeneralData.GetListValuesById("Negocio_GetData_LowerNodes_IDS_ByIdTopNode", "@NodoSuperior", idUsuario);

            return(values);
        }
예제 #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            ReadGeneralData readGeneralData = new ReadGeneralData();

            if (!Page.IsPostBack)
            {
                lstBancos.DataSource     = readGeneralData.GetDataTable("Negocio_List_Banks");
                lstBancos.DataValueField = "IdBanco";
                lstBancos.DataTextField  = "NombreBanco";
                lstBancos.DataBind();
            }
        }
        public ComunicacionBaja data(List <Data_Documentos> data_Documentos)
        {
            Data_Contribuyente data_Emisor = new Data_Contribuyente(data_Documentos[0].IdEmisor);

            data_Emisor.Read_Contribuyente();
            ReadGeneralData readGeneralData = new ReadGeneralData();

            DateTime dateTime       = DateTime.Now;
            int      numeracion     = 0;
            string   mes            = dateTime.Month < 10 ? $"0{dateTime.Month}" : dateTime.Month.ToString();
            string   dia            = dateTime.Day < 10 ? $"0{dateTime.Day}"   : dateTime.Day.ToString();
            int      numeradorLinea = 1;

            numeracion = readGeneralData.GetScalarValueINT("[dbo].[Query_Scalar_GetValue_CantidadDocsDia]", "@IdDatosFox", data_Documentos[0].IdDatosFox);

            var comunicacionBaja = new ComunicacionBaja()
            {
                IdDocumento     = $"RA-{dateTime.Year}{mes}{dia}-{numeracion}",
                FechaEmision    = dateTime.ToString(),              // Cuando se da de baja
                FechaReferencia = data_Documentos[0].FechaEmision,  // Cuando se crea el documento
                Emisor          = data_Emisor,
                Bajas           = new List <DocumentoBaja>()
            };

            foreach (var data_Documento in data_Documentos)
            {
                string[] serieCorrelativo = data_Documento.SerieCorrelativo.Split('-');
                comunicacionBaja.Bajas.Add(new DocumentoBaja()
                {
                    Id            = numeradorLinea,
                    TipoDocumento = data_Documento.TipoDocumento,
                    Serie         = serieCorrelativo[0].ToString(),
                    Correlativo   = serieCorrelativo[1].ToString(),
                    MotivoBaja    = data_Documento.MotivoBaja
                });
                numeradorLinea++;
            }

            return(comunicacionBaja);
        }
예제 #6
0
        public List <TotalImpuesto> Read_TotalImpuestos(int tipo)
        {
            List <TotalImpuesto> totalImpuestos  = new List <TotalImpuesto>();
            ReadGeneralData      readGeneralData = new ReadGeneralData();
            DataTable            dataTable;

            switch (tipo)
            {   //  Sí es de tipo 1 es porque se trata del impuesto del documento, sí de tipo 2 es porque se trata de el impuesto por cada detalle de documento
            case 1:
                dataTable = readGeneralData.GetDataTable("[dbo].[Read_TotalImpuestos_Total]", "@IdCabeceraDocumento", Id);
                break;

            case 2:
                dataTable = readGeneralData.GetDataTable("[dbo].[Read_TotalImpuestos_Linea]", "@IdDocumentoDetalle", Id);
                break;

            default:
                dataTable = new DataTable();
                break;
            }

            DataRow       row;
            TotalImpuesto totalImpuesto;

            for (int i = 0; i < dataTable.Rows.Count; i++)
            {
                row           = dataTable.Rows[i];
                totalImpuesto = new TotalImpuesto()
                {
                    IdTotalImpuestos = Convert.ToInt32(row["IdTotalImpuestos"].ToString()),
                    MontoTotal       = Convert.ToDecimal(row["MontoTotal"].ToString()),
                    TipoMonedaTotal  = row["Moneda"].ToString()
                };
                totalImpuestos.Add(totalImpuesto);
            }

            return(totalImpuestos);
        }
예제 #7
0
        public List <Nota> Read(int tipo)
        {
            List <Nota>     notas           = new List <Nota>();
            ReadGeneralData readGeneralData = new ReadGeneralData();
            DataTable       dataTable;

            switch (tipo)
            {   //  Sí es de tipo 1 es porque se trata de la nota del documento, sí de tipo 2 es porque se trata de la nota por cada detalle de documento
            case 1:
                dataTable = readGeneralData.GetDataTable("[dbo].[Read_Nota_Total]", "@IdCabeceraDocumento", Id);
                break;

            case 2:
                dataTable = readGeneralData.GetDataTable("[dbo].[Read_Nota_Linea]", "@IdDocumentoDetalle", Id);
                break;

            default:
                dataTable = new DataTable();
                break;
            }

            Nota    nota;
            DataRow row;

            for (int i = 0; i < dataTable.Rows.Count; i++)
            {
                row  = dataTable.Rows[i];
                nota = new Nota()
                {
                    IdNota      = Convert.ToInt32(row["IdNota"].ToString()),
                    Descripcion = row["Descripcion"].ToString(),
                    Codigo      = row["Codigo"].ToString()
                };
                notas.Add(nota);
            }

            return(notas);
        }
        private void btnGuardar_Click(object sender, RoutedEventArgs e)
        {
            if (exitoConexion == false)     //  Sí es que es FALSE, entonces el botón funciona como botón de salir
            {
                Close();
            }
            else // En caso de que este en TRUE es porque ya se probó con éxito la conexión con la DB, se vuelve a comprobar los accesos para asegurar la conexión siga disponible
            {
                string servidor    = string.Empty;
                string usuario     = string.Empty;
                string contrasenia = string.Empty;

                servidor    = txtServidor.Text.ToString().Trim();
                usuario     = txtUsuario.Text.ToString().Trim();
                contrasenia = txtContrasenia.Password.ToString().Trim();

                string cadena = $"data source={servidor}; initial catalog=master; user id={usuario}; password={contrasenia}; Connection Timeout=3";

                Connection connection = new Connection();

                if (!string.IsNullOrEmpty(servidor) && !string.IsNullOrEmpty(usuario) && !string.IsNullOrEmpty(contrasenia)) // Todos los campos completados
                {
                    if (connection.CheckConnection(cadena))                                                                  // Comprobamos la conexión con la base de datos
                    {
                        string ruta = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                        if (!Directory.Exists($"{ruta}\\FEICONT"))
                        {
                            Directory.CreateDirectory($"{ruta}\\FEICONT");
                        }

                        #region Escritura del archivo txt con los datos del servidor de base de datos
                        try
                        {
                            if (File.Exists($"{ruta}\\FEICONT\\access.txt"))
                            {
                                File.Delete($"{ruta}\\FEICONT\\access.txt");
                            }
                            else
                            {
                                using (StreamWriter streamWriter = new StreamWriter($"{ruta}\\FEICONT\\access.txt"))
                                {
                                    streamWriter.WriteLine($"{servidor}|{usuario}|{contrasenia}");
                                }
                            }
                        }
                        catch (Exception)
                        {
                            // El archivo esta en uso o no se puede acceder a el
                        }
                        #endregion Escritura del archivo txt con los datos del servidor de base de datos

                        #region Actualizar o crear InternalDB
                        InternalAccess internalAccess = new InternalAccess()
                        {
                            Servidor = servidor, Usuario = usuario, Contrasenia = contrasenia
                        };

                        ReadGeneralData readGeneralData       = new ReadGeneralData();
                        DataTable       dataTableInternalData = readGeneralData.GetInternalDataTable("[dbo].[Read_DataAccess]");

                        if (dataTableInternalData.Rows.Count == 1)  // En caso de que ya haya un registro en la db
                        {
                            internalAccess.Alter_InternalAccess("[dbo].[Update_DataAccess]");
                        }
                        else // Sí no lo hay, la crea
                        {
                            internalAccess.Alter_InternalAccess("[dbo].[Create_DataAccess]");
                        }
                        #endregion Actualizar o crear InternalDB

                        // Ejecutar todo el script de creación de base de datos (PENDIENTE)

                        asegurarGuardado = true;

                        Application.Current.Shutdown();
                        System.Windows.Forms.Application.Restart(); // Se reinicia la aplicación para que acceda de inmediato al login ya con los accesos correctos de la db
                    }
                    else
                    {
                        MessageBox.Show("Lo sentimos, se ha cambiado los datos de acceso, corriga los datos y vuelva a intentarlo.",
                                        "Sin conexión", MessageBoxButton.OK, MessageBoxImage.Information); // Aún  no se puede conectar con la base de datos
                        InternalConnection internalConnection = new InternalConnection();
                        string             uriIcon            = internalConnection.GetPathMDF() + "\\images\\close.png";
                        imageGuardar.Source      = new BitmapImage(new Uri(uriIcon));
                        TextBotonGuardar.Content = "Salir";       // Entonces la funcionalidad del botón cambia a SALIR debido a que la conexión es incorrecta
                    }
                }
                else
                {
                    MessageBox.Show("Antes de continuar debes completar todos los campos.", "Datos incompletos", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                }
            }
        }
예제 #9
0
        public async Task ValidateSystem()
        {
            try
            {
                ReadGeneralData readGeneralData       = new ReadGeneralData();
                DataTable       dataTableInternalData = readGeneralData.GetInternalDataTable("[dbo].[Read_DataAccess]");

                int cantidadFilas = dataTableInternalData.Rows.Count;

                InternalConnection internalConnection = new InternalConnection();

                if (cantidadFilas == 1) //  Comprobar que haya registro en db interna, primera vez que se ejecute el sistema
                {                       // Se comprueba que los valores sean correctos
                    InternalAccess internalAccess = new InternalAccess();
                    internalAccess.Read_InternalAccess();
                    string cadena = $"data source={@internalAccess.Servidor}; initial catalog=master; user id={@internalAccess.Usuario}; password={@internalAccess.Contrasenia}; Connection Timeout=50";

                    Connection connection = new Connection();

                    if (!connection.CheckConnection(cadena)) // Falló la conexión con los datos de InternalDB
                    {                                        // Actualizar la cadena de conexión mediante formulario
                        MessageBox.Show("No se ha podido realizar la conexión con la base de datos, este problema suele suceder cuando se han DETENIDO los servicios de SqlServer,    " +
                                        " para solucionar esto oprima la tecla Windows y escriba 'Servicios', en el panel mostrado busque 'SQL Server (MSSQLSERVER)' haga clic derecho sobre este " +
                                        " elemento y pulse INICIAR (el valor de 'MSSQLSERVER' puede variar según la configuración que se haya realizado), si el problema persiste, asegúrese de   " +
                                        " verificar que los accesos no se hayan cambiado, para esto pruebe la conexión en el siguiente formulario. ", "Error de conexión a SqlServer",
                                        MessageBoxButton.OK, MessageBoxImage.Error);
                        ConfigurarConeccionSQL configurarConeccionSQL = new ConfigurarConeccionSQL(true);
                        configurarConeccionSQL.Show();
                    }
                    else // Aquí ya no se tiene problemas con la base de datos
                    {
                        DataTable dataTable = readGeneralData.GetDataTable("[sysfox].[Read_List_DatosFox]");

                        int cantidadLineas = dataTable.Rows.Count;

                        if (cantidadLineas <= 0)
                        {
                            MessageBox.Show("Aún no tienes registrada ninguna empresa, puedes realizar este registro desde tu sistema Contasis.",
                                            "Error de conexión con los módulos Contasis", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                            Application.Current.Shutdown();
                        }
                        else
                        {
                            DataTable dtUsuarios = readGeneralData.GetDataTable("[dbo].[List_Usuarios]");

                            if (dtUsuarios.Rows.Count == 0)
                            {
                                MessageBox.Show("Aún no tienes registrado ningún usuario, registra tu usuario en el siguiente formulario.",
                                                "Debe registrar su usuario", MessageBoxButton.OK, MessageBoxImage.Information);
                                Usuarios usuarios = new Usuarios();
                                usuarios.Show();
                            }
                            else
                            {
                                Acceso acceso = new Acceso();
                                acceso.Show();
                            }
                        }
                    }
                }
                else                                                     // En caso de que no haya registro en db interna
                {                                                        // Comprobar la conexión con el servidor de SqlServer
                    string[] valores = internalConnection.GetDataFile(); // Obtenemos los datos del archivo txt

                    if (valores.Length > 1)
                    {
                        if (!string.IsNullOrEmpty(valores[0]) && !string.IsNullOrEmpty(valores[1]) && !string.IsNullOrEmpty(valores[2]))
                        {
                            Connection connection = new Connection();
                            string     cadena     = $"data source={valores[0]}; initial catalog=master; user id={valores[1]}; password={valores[2]};";
                            if (connection.CheckConnection(cadena))                //  Verificamos que la cadena de conexión con el Servidor de SQL sea correcta
                            {
                                if (internalConnection.Create_DataAccess(valores)) // Sólo si la cadena de conexión es correcta procedemos a registrar en InternalDB
                                {
                                    Application.Current.Shutdown();
                                    System.Windows.Forms.Application.Restart();
                                }
                            }
                        }
                    }
                    else // Sí no es correcto se pide configurar de forma manual (Formulario)
                    {
                        MessageBox.Show("Se debe configurar de forma manual la conexión a la base de datos.", "Configuración requerida", MessageBoxButton.OK, MessageBoxImage.Information);
                        ConfigurarConeccionSQL configurarConeccionSQL = new ConfigurarConeccionSQL(false);
                        configurarConeccionSQL.Show();
                    }
                }
            }
            catch (Exception)
            {
            }
        }
예제 #10
0
        public void FillData_PrincipalUser()
        {
            try
            {
                #region Principal User
                PrincipalUser user = new PrincipalUser()
                {
                    IdUsuario   = idUsuario,
                    IdCategoria = idCategoria
                };
                PrincipalUserData principalUser = new PrincipalUserData();
                user = principalUser.FillData(user);

                PUlblNombres.Text = user.Nombres;
                PUCategoria.Text  = user.NombreCategoria;
                PUlblNivel.Text   = user.NombreNivel;

                conteoNodosinferiores = user.Cantidad;
                #endregion Principal User

                #region Principal User Status
                ReadGeneralData readGeneralData = new ReadGeneralData();
                int             valueNextlevel; // Variable temporal para asignar el nivel

                if (Convert.ToInt32(user.IdNivel) <= 2)
                {
                    valueNextlevel = Convert.ToInt32(user.IdNivel) + 1;
                }
                else
                {
                    valueNextlevel = Convert.ToInt32(user.IdNivel);
                }

                PUlblSiguienteNivel.Text = readGeneralData.GetSingleValueSTRINGById("Negocio_GetData_Level_Name", "@IdNivel", Convert.ToInt16(valueNextlevel));

                PUlblCantidadColaboradores.Text  = conteoNodosinferiores.ToString();    // idUsuario obtenido previamente
                PUlblCantidadColaboradores2.Text = conteoNodosinferiores.ToString();

                GrlLblNombreNivel1.Text = readGeneralData.GetSingleValueSTRINGById("Negocio_GetData_Level_Name", "@IdNivel", 1);
                GrlLblNombreNivel2.Text = readGeneralData.GetSingleValueSTRINGById("Negocio_GetData_Level_Name", "@IdNivel", 2);
                GrlLblNombreNivel3.Text = readGeneralData.GetSingleValueSTRINGById("Negocio_GetData_Level_Name", "@IdNivel", 3);

                LowerNode lowerNode = new LowerNode()
                {
                    NodoSuperior = idUsuario,
                    NodoInferior = idUsuario,
                    IdCategoria  = idCategoria
                };
                LowerNodeData lowerNodeData = new LowerNodeData();
                lowerNode = lowerNodeData.FillData(lowerNode, "Negocio_Read_Principal_Node");

                PULblGananciaNivel1.Text = lowerNode.RecaudadoNivel1.ToString();
                PULblGananciaNivel2.Text = lowerNode.RecaudadoNivel2.ToString();
                PULblGananciaNivel3.Text = lowerNode.RecaudadoNivel3.ToString();

                //PULblGananciaNivel1.Text    = Convert.ToString(readGeneralData.GetSingleValueDECIMAL_3Ids("Negocio_GetData_Achievements_ByIdUser", "@NodoSuperior", idUsuario, "@IdNivel", 1, "@IdCategoria", idCategoria));
                //PULblGananciaNivel2.Text    = Convert.ToString(readGeneralData.GetSingleValueDECIMAL_3Ids("Negocio_GetData_Achievements_ByIdUser", "@NodoSuperior", idUsuario, "@IdNivel", 2, "@IdCategoria", idCategoria));
                //PULblGananciaNivel3.Text    = Convert.ToString(readGeneralData.GetSingleValueDECIMAL_3Ids("Negocio_GetData_Achievements_ByIdUser", "@NodoSuperior", idUsuario, "@IdNivel", 3, "@IdCategoria", idCategoria));

                #endregion Principal User Status
            }
            catch (Exception ex)
            {
                throw;
            }
        }
예제 #11
0
        public void FillData_EachBox()
        {
            try
            {
                ReadGeneralData readGeneralData = new ReadGeneralData();
                string          nombreCategoria = readGeneralData.GetSingleValueSTRINGById("Negocio_GetData_Categoria_Name", "@NombreCategoria", idCategoria);
                switch (conteoNodosinferiores)
                {
                case 0:
                    // No existe ningún miembro
                    break;

                case 1:
                    LN1lblNombres.Text       = lowerNodes[0].Nombres;
                    LN1lblActualNivel.Text   = lowerNodes[0].NombreNivel;
                    LN1lblColaboradores.Text = lowerNodes[0].Cantidad.ToString();
                    LN1lblCategoria.Text     = nombreCategoria;
                    break;

                case 2:
                    LN1lblNombres.Text       = lowerNodes[0].Nombres;
                    LN1lblActualNivel.Text   = lowerNodes[0].NombreNivel;
                    LN1lblColaboradores.Text = lowerNodes[0].Cantidad.ToString();
                    LN1lblCategoria.Text     = nombreCategoria;

                    LN2lblNombres.Text       = lowerNodes[1].Nombres;
                    LN2lblActualNivel.Text   = lowerNodes[1].NombreNivel;
                    LN2lblColaboradores.Text = lowerNodes[1].Cantidad.ToString();
                    LN2lblCategoria.Text     = nombreCategoria;
                    break;

                case 3:
                    LN1lblNombres.Text       = lowerNodes[0].Nombres;
                    LN1lblActualNivel.Text   = lowerNodes[0].NombreNivel;
                    LN1lblColaboradores.Text = lowerNodes[0].Cantidad.ToString();
                    LN1lblCategoria.Text     = nombreCategoria;

                    LN2lblNombres.Text       = lowerNodes[1].Nombres;
                    LN2lblActualNivel.Text   = lowerNodes[1].NombreNivel;
                    LN2lblColaboradores.Text = lowerNodes[1].Cantidad.ToString();
                    LN2lblCategoria.Text     = nombreCategoria;

                    LN3lblNombres.Text       = lowerNodes[2].Nombres;
                    LN3lblActualNivel.Text   = lowerNodes[2].NombreNivel;
                    LN3lblColaboradores.Text = lowerNodes[2].Cantidad.ToString();
                    LN3lblCategoria.Text     = nombreCategoria;
                    break;

                case 4:
                    LN1lblNombres.Text       = lowerNodes[0].Nombres;
                    LN1lblActualNivel.Text   = lowerNodes[0].NombreNivel;
                    LN1lblColaboradores.Text = lowerNodes[0].Cantidad.ToString();
                    LN1lblCategoria.Text     = nombreCategoria;

                    LN2lblNombres.Text       = lowerNodes[1].Nombres;
                    LN2lblActualNivel.Text   = lowerNodes[1].NombreNivel;
                    LN2lblColaboradores.Text = lowerNodes[1].Cantidad.ToString();
                    LN2lblCategoria.Text     = nombreCategoria;

                    LN3lblNombres.Text       = lowerNodes[2].Nombres;
                    LN3lblActualNivel.Text   = lowerNodes[2].NombreNivel;
                    LN3lblColaboradores.Text = lowerNodes[2].Cantidad.ToString();
                    LN3lblCategoria.Text     = nombreCategoria;

                    LN4lblNombres.Text       = lowerNodes[3].Nombres;
                    LN4lblActualNivel.Text   = lowerNodes[3].NombreNivel;
                    LN4lblColaboradores.Text = lowerNodes[3].Cantidad.ToString();
                    LN4lblCategoria.Text     = nombreCategoria;
                    break;

                case 5:
                    LN1lblNombres.Text       = lowerNodes[0].Nombres;
                    LN1lblActualNivel.Text   = lowerNodes[0].NombreNivel;
                    LN1lblColaboradores.Text = lowerNodes[0].Cantidad.ToString();
                    LN1lblCategoria.Text     = nombreCategoria;

                    LN2lblNombres.Text       = lowerNodes[1].Nombres;
                    LN2lblActualNivel.Text   = lowerNodes[1].NombreNivel;
                    LN2lblColaboradores.Text = lowerNodes[1].Cantidad.ToString();
                    LN2lblCategoria.Text     = nombreCategoria;

                    LN3lblNombres.Text       = lowerNodes[2].Nombres;
                    LN3lblActualNivel.Text   = lowerNodes[2].NombreNivel;
                    LN3lblColaboradores.Text = lowerNodes[2].Cantidad.ToString();
                    LN3lblCategoria.Text     = nombreCategoria;

                    LN4lblNombres.Text       = lowerNodes[3].Nombres;
                    LN4lblActualNivel.Text   = lowerNodes[3].NombreNivel;
                    LN4lblColaboradores.Text = lowerNodes[3].Cantidad.ToString();
                    LN4lblCategoria.Text     = nombreCategoria;

                    LN5lblNombres.Text       = lowerNodes[4].Nombres;
                    LN5lblActualNivel.Text   = lowerNodes[4].NombreNivel;
                    LN5lblColaboradores.Text = lowerNodes[4].Cantidad.ToString();
                    LN5lblCategoria.Text     = nombreCategoria;
                    break;
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
예제 #12
0
        public ResumenDiario Data(List <Data_Documentos> data_Documentos)
        {
            DateTime        dateTime = DateTime.Now;
            ResumenDiario   resumenDiario;
            ReadGeneralData readGeneralData = new ReadGeneralData();

            try
            {
                Data_CabeceraDocumento cabeceraDocumento = new Data_CabeceraDocumento(data_Documentos[0].IdCabeceraDocumento);
                cabeceraDocumento.Read_CabeceraDocumento();

                Data_Contribuyente data_Emisor = new Data_Contribuyente(data_Documentos[0].IdEmisor);
                data_Emisor.Read_Contribuyente();

                int    numeracion = 0;
                string mes        = dateTime.Month < 10 ? $"0{dateTime.Month}" : dateTime.Month.ToString();
                string dia        = dateTime.Day < 10 ? $"0{dateTime.Day}"   : dateTime.Day.ToString();
                try
                {
                    numeracion = readGeneralData.GetScalarValueINT("[dbo].[Query_Scalar_GetValue_CantidadDocsDia]", "@IdDatosFox", data_Documentos[0].IdDatosFox);
                }
                catch (Exception)
                {
                    numeracion++;
                }

                resumenDiario = new ResumenDiario()      //  Documento principal
                {
                    IdDocumento     = $"RC-{dateTime.Year}{mes}{dia}-{numeracion}",
                    FechaEmision    = dateTime.ToString(),
                    FechaReferencia = data_Documentos[0].FechaEmision,
                    Emisor          = data_Emisor,
                    Resumenes       = new List <GrupoResumenNuevo>()
                };

                int contador = 1;
                foreach (var data_Documento in data_Documentos)
                {
                    Data_CabeceraDocumento data_CabeceraDocumento = new Data_CabeceraDocumento(data_Documento.IdCabeceraDocumento);
                    data_CabeceraDocumento.Read_CabeceraDocumento();

                    Data_Contribuyente data_Receptor = new Data_Contribuyente(data_CabeceraDocumento.IdReceptor);
                    data_Receptor.Read_Contribuyente();

                    var resumen = new GrupoResumenNuevo()
                    {
                        Id              = contador,
                        TipoDocumento   = data_Documento.TipoDocumento,
                        Serie           = data_Documento.SerieCorrelativo,
                        Receptor        = data_Receptor,
                        TotalVenta      = data_CabeceraDocumento.ImporteTotalVenta,
                        Moneda          = data_CabeceraDocumento.Moneda,
                        Gravadas        = data_CabeceraDocumento.Gravadas,
                        Exoneradas      = data_CabeceraDocumento.Exoneradas,
                        Inafectas       = data_CabeceraDocumento.Inafectas,
                        Exportaciones   = data_CabeceraDocumento.Exportaciones,
                        Gratuitas       = data_CabeceraDocumento.Gratuitas,
                        TotalDescuentos = data_CabeceraDocumento.TotalDescuento,
                    };

                    Data_DocumentoRelacionado   data_DocumentoRelacionado = new Data_DocumentoRelacionado(data_Documento.IdCabeceraDocumento);
                    List <DocumentoRelacionado> documentoRelacionados     = data_DocumentoRelacionado.Read_DocumentoRelacionado();
                    if (documentoRelacionados.Count > 0)
                    {
                        resumen.DocumentoRelacionado = documentoRelacionados[0].NroDocumento ?? string.Empty;      // Sólo habrá un doc relacionado para cada boleta
                    }
                    Data_Discrepancia   data_Discrepancia = new Data_Discrepancia(data_Documento.IdCabeceraDocumento);
                    List <Discrepancia> discrepancias     = data_Discrepancia.Read_DiscrepanciaDocumento();
                    if (discrepancias.Count > 0)
                    {
                        resumen.CodigoEstadoItem = Convert.ToInt32(discrepancias[0].Tipo ?? string.Empty);      // // en la documentación dice que es el valor del tipo de discrepancia catalogo 9
                    }
                    else
                    {
                        resumen.CodigoEstadoItem = 1;       // Poca información respecto a lo que va aquí
                    }
                    #region TotalImpuestos
                    Data_TotalImpuesto   data_TotalImpuesto = new Data_TotalImpuesto(data_Documento.IdCabeceraDocumento);
                    List <TotalImpuesto> totalImpuestos     = data_TotalImpuesto.Read_TotalImpuestos(1);     //  El parámetro -> 1 <- es indicativo de que es por cada línea

                    foreach (var st_totalImpuesto in totalImpuestos)
                    {
                        Data_SubTotalImpuesto    data_SubTotalImpuesto = new Data_SubTotalImpuesto(st_totalImpuesto.IdTotalImpuestos);
                        List <SubTotalImpuestos> subTotalImpuestos     = data_SubTotalImpuesto.Read_SubTotalImpuesto();
                        st_totalImpuesto.SubTotalesImpuestos = subTotalImpuestos;
                    }
                    resumen.TotalImpuestos = totalImpuestos;
                    #endregion TotalImpuestos

                    resumenDiario.Resumenes.Add(resumen);
                    contador++;
                }
            }
            catch (Exception ex)
            {
                resumenDiario = new ResumenDiario();
            }

            return(resumenDiario);
        }