Untitled

mail@pastecode.io avatar
unknown
csharp
2 months ago
4.4 kB
3
Indexable
Never
using System.Diagnostics;
using Sdk.ConsoleApp;
using Sdk.ConsoleApp.Catalogos;
using Newtonsoft.Json;

namespace Eleben
{
    public class Movimiento
    {
        public string documentoid { get; set; }
        public string productoid { get; set; }
        public string unidades { get; set; }
        public string precio { get; set; }
        public string referencia { get; set; }
    }

    public class Concepto
    {
        public string conceptoid { get; set; }
        public string clienteid { get; set; }
        public string serie { get; set; }
        public string folio { get; set; }
        public string fecha { get; set; }
        public List<Movimiento> movimientos { get; set; }
    }

    public class Empresa
    {
        // 1. Inicializar el SDK
        //Trace.WriteLine("Iniciando SDK.");
        //ConexionSdk cs = new ConexionSdk();

       

        public void DllElebenAbrirEmpresa()
        {
            Console.WriteLine("Abrir Empresa Dll Eleben.");
            ConexionSdk.IniciarSdk("SUPERVISOR", "");

            // 2. Abrir empresa

            // Buscar empresas
            Console.WriteLine("Buscando empresas.");
            List<EmpresaSdk> empresaList = EmpresaSdk.BuscarEmpresas();

            // Mostrar el listado de empresas
            Console.WriteLine("Lista de empresas:");
            foreach (EmpresaSdk empresaSdk in empresaList.OrderBy(e => e.Nombre))
                Console.WriteLine($"Id:{empresaSdk.Id} Nombre:{empresaSdk.Nombre} Ruta:{empresaSdk.Ruta}");
            Console.WriteLine();

            Console.WriteLine("Selecciona una empresa del listado. Ingresa el Id:");
            string empresaKey = Console.ReadLine();
            int empresaId = int.Parse(empresaKey ?? throw new InvalidOperationException());
            EmpresaSdk empresaSeleccionada = empresaList.First(e => e.Id == empresaId);

            Console.WriteLine($"Abriendo empresa {empresaSeleccionada.Nombre}.");
            ConexionSdk.AbrirEmpresa(empresaSeleccionada.Ruta);
            Console.WriteLine();

            // 3. Correr nuestros procesos

            string json = @"[
            {
                ""conceptoid"": ""1"",
                ""clienteid"": ""001"",
                ""serie"": ""a"",
                ""folio"": ""001"",
                ""fecha"": ""15/04/2024"",
                ""movimientos"": [
                    {
                        ""documentoid"": ""1"",
                        ""productoid"": ""150"",
                        ""unidades"": ""100"",
                        ""precio"": ""800"",
                        ""referencia"": ""120""
                    }
                ]
            }
            // Aquí puedes añadir más objetos Concepto si es necesario
            ]";
            // Deserializar el JSON en una lista de objetos Concepto
            List<Concepto> conceptos = JsonConvert.DeserializeObject<List<Concepto>>(json);

            // Iterar sobre los conceptos
            foreach (var concepto in conceptos)
            {
                // Acceder a los datos del concepto
                Console.WriteLine($"ConceptoID: {concepto.conceptoid}");
                Console.WriteLine($"ClienteID: {concepto.clienteid}");
                Console.WriteLine($"Serie: {concepto.serie}");
                Console.WriteLine($"Folio: {concepto.folio}");
                Console.WriteLine($"Fecha: {concepto.fecha}");

                // Iterar sobre los movimientos del concepto
                foreach (var movimiento in concepto.movimientos)
                {
                    // Acceder a los datos del movimiento
                    Console.WriteLine($"DocumentoID: {movimiento.documentoid}");
                    Console.WriteLine($"ProductoID: {movimiento.productoid}");
                    Console.WriteLine($"Unidades: {movimiento.unidades}");
                    Console.WriteLine($"Precio: {movimiento.precio}");
                    Console.WriteLine($"Referencia: {movimiento.referencia}");
                }
            }


        }

        public void DllElebenCerrarEmpresa()
        {
            // 4. Cerrar empresa
            ConexionSdk.CerrarEmpresa();

            // 5. Terminar el SDK
            ConexionSdk.TerminarSdk();
        }



    }
  
}
Leave a Comment