private void EmisionComprobantes_Load(object sender, EventArgs e)
        {
            using (var context = new TenantsDBContext())
            {
                var entry = context.Tenants.Find(Common.TenantData.tenant.Id);

                //TODO esto cambiarlo por la tabla de FK tipocomprobante FK punto de venta y ultimo nro comrpobante
                NumeroComprobanteCargando = entry.UltimoNroComprobante;
                aumentarUltimoComprobanteTenant();
            }

            using (var context = new VentasDBContext(Common.TenantData.tenant.ConnectionString))
            {
                context.Clientes.Load();
                comboBoxClientes.ValueMember   = "Id";
                comboBoxClientes.DisplayMember = "Nombre";
                comboBoxClientes.DataSource    = context.Clientes.Local;
                comboBoxClientes.SelectedIndex = 0;

                context.Articulos.Load();
                comboBoxArticulos.ValueMember   = "Id";
                comboBoxArticulos.DisplayMember = "Descripcion";
                comboBoxArticulos.DataSource    = context.Articulos.Local;
            }
        }
예제 #2
0
        private void Lanzador_Load(object sender, EventArgs e)
        {
            contextGlobal.Tenants.Load();

            //autologin
            Tenant tenant = new Tenant();

            using (var context = new TenantsDBContext())
            {
                tenant = context.Tenants.SingleOrDefault(t => t.BaseDeDatos == "VentasDBContext");
                Common.TenantData.tenant = tenant;
            }

            string usuarioIngresado  = "super";
            string passwordIngresado = "super";

            if (string.IsNullOrEmpty(usuarioIngresado) || string.IsNullOrEmpty(passwordIngresado))
            {
                Helpers.CreadorMensajes.mensajeError("Ingrese usuario y contraseña");
            }
            else if (loginCorrecto(usuarioIngresado, passwordIngresado))
            {
                using (var context = new VentasDBContext(Common.TenantData.tenant.ConnectionString))
                {
                    Common.UsuarioData.usuario = context.Usuarios.Where(u => u.Username == usuarioIngresado).Include(u => u.Rol).Include(u => u.Rol.Operaciones).SingleOrDefault();
                }
                DialogResult = DialogResult.OK;
            }

            //autologin
        }
        private void aumentarUltimoComprobanteTenant()
        {
            using (var context = new TenantsDBContext())
            {
                var entry = context.Tenants.Find(Common.TenantData.tenant.Id);

                entry.UltimoNroComprobante++;
                context.Entry(entry).CurrentValues.SetValues(entry);
                context.SaveChanges();
                Common.TenantData.tenant = entry;
                //var ten = context.Tenants.Where(x => x.BaseDeDatos == Common.TenantData.tenant.BaseDeDatos).SingleOrDefault();
                //ten.UltimoNroAsientoCargando++;
            }
        }
        private void buttonAceptar_Click(object sender, EventArgs e)
        {
            using (var context = new VentasDBContext(Common.TenantData.tenant.ConnectionString))
            {
                context.Clientes.Include(x => x.SituacionIVA).Load();
                context.TiposComprobantesVenta.Load();

                tempComprobanteEncabezadoPie comprobante = new tempComprobanteEncabezadoPie();
                Cliente cliente = new Cliente();
                cliente = context.Clientes.Where(x => x.Id == ((Cliente)comboBoxClientes.SelectedItem).Id).SingleOrDefault();
                TipoComprobanteVenta tipo = new TipoComprobanteVenta();
                tipo = context.TiposComprobantesVenta.Where(x => x.Id == ((TipoComprobanteVenta)comboBoxComprobante.SelectedItem).Id).SingleOrDefault();



                comprobante.FechaEmision = dateTimePicker1.Value.Date;

                context.tempComprobantesEncabezadoPie.Add(comprobante);
                context.Clientes.Attach(cliente);
                context.TiposComprobantesVenta.Attach(tipo);

                Tenant empresa = new Tenant();
                using (var context2 = new TenantsDBContext())
                {
                    empresa = context2.Tenants.Find(Common.TenantData.tenant.Id);
                }

                comprobante.Cliente = cliente;
                comprobante.TiposComprobantesVenta = tipo;
                comprobante.Tenant = empresa;

                ComprobanteCargando = comprobante;

                try
                {
                    context.SaveChanges();
                }
                catch (Exception ex)
                { throw ex; }
            }
            panel1.Enabled = false;
        }
        private void frmDiarioReporte_FormClosing(object sender, FormClosingEventArgs e)
        {
            Helpers.MessageBoxManager.Cancel = "Cancelar";
            DialogResult r = MessageBox.Show("Ha impreso el libro diario sin errores?", "Confirmación", MessageBoxButtons.OKCancel);

            //DialogResult r = Helpers.CreadorMensajes.mensajeConfirmacion();
            if (r != DialogResult.Cancel)
            {
                using (var context = new VentasDBContext(Common.TenantData.tenant.ConnectionString))
                {
                    UltimoDiario u = new UltimoDiario();
                    u.UltimaFechaImpresion = FechaHasta;                    //DateTime.Now;
                    u.UltimoNumeroAsiento  = Common.TenantData.tenant.UltimoNroAsientoCargando;

                    u.Id = context.UltimoDiario.FirstOrDefault().Id;
                    var entry = context.UltimoDiario.Find(u.Id);
                    context.Entry(entry).CurrentValues.SetValues(u);
                    try
                    {
                        context.SaveChanges();
                        DialogResult = DialogResult.OK;
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
                using (var context = new TenantsDBContext())
                {
                    var entity = context.Tenants.Find(Common.TenantData.tenant.Id);
                    //var t = new Tenant();
                    Tenant t = context.Tenants.SingleOrDefault(x => x.Id == Common.TenantData.tenant.Id);
                    t.FechaImpresionUltimoDiario = FechaHasta;
                    context.Entry(entity).CurrentValues.SetValues(t);
                    context.SaveChanges();
                }
            }
        }
예제 #6
0
        public static void MigrateDatabase(Tenant tenant)        //string DBName/*VentasDBContext ctx*/)
        {
            //context.Database.Create();
            //var datab = context.Database;
            //Tenant tenant = new Tenant();
            using (var context = new TenantsDBContext())
            {
                //tenant.BaseDeDatos = DBName;
                tenant.ConnectionString = "data source=DESKTOP-JSIT42C\\SQLEXPRESS; MultipleActiveResultSets=true ;initial catalog=" + tenant.BaseDeDatos + "; integrated security=SSPI";
                tenant.Host             = (System.Environment.MachineName == "DESKTOP-JSIT42C") ? "DESKTOP-JSIT42C\\SQLEXPRESS" : "localhost";
                tenant.Nombre           = tenant.BaseDeDatos;

                context.Tenants.Add(tenant);
                context.SaveChanges();
            }
            Common.TenantData.tenant = tenant;
            //using (var context = new VentasDBContext(tenant.ConnectionString))
            //{
            //	UltimoDiario u = new UltimoDiario();
            //	u.UltimaFechaImpresion = tenant.FechaImpresionUltimoDiario;
            //	u.UltimoNumeroAsiento = 1;
            //	u.UltimoNumeroFolio = 1;
            //	u.UltimoNumeroRenglon = 1;
            //	u.UltimoNumeroTransporte = 1;
            //	context.UltimoDiario.Add(u);
            //	context.SaveChanges();
            //}
            var newDbConnString   = "data source=DESKTOP-JSIT42C\\SQLEXPRESS; MultipleActiveResultSets=true ;initial catalog=" + tenant.BaseDeDatos + "; integrated security=SSPI";          //context.Database.Connection.ConnectionString;
            var connStringBuilder = new SqlConnectionStringBuilder(newDbConnString);


            connStringBuilder.InitialCatalog = tenant.BaseDeDatos;

            ConfigurationVentas config   = new ConfigurationVentas();
            DbMigrator          migrator = new DbMigrator(config);

            VentasDBContext ctx = new VentasDBContext(newDbConnString);

            ctx.Database.Create();

            Console.WriteLine("Past migrations:");
            foreach (string s in migrator.GetDatabaseMigrations())
            {
                Console.WriteLine(s);
            }

            Console.WriteLine("Local migrations:");
            foreach (string s in migrator.GetLocalMigrations())
            {
                Console.WriteLine(s);
            }

            Console.WriteLine("Pending migrations:");
            foreach (string s in migrator.GetPendingMigrations())
            {
                Console.WriteLine(s);
            }

            Console.WriteLine("Migrating...");
            foreach (string s in migrator.GetLocalMigrations())            //GetPendingMigrations())
            {
                //Act
                Console.WriteLine("Applying migration {0}", s);
                Action act = () => migrator.Update(s);

                //Assert
                //act.ShouldNotThrow();
            }
        }
예제 #7
0
        private void buttonAccederEmpresa_Click(object sender, EventArgs e)
        {
            Tenant tenant = new Tenant();

            using (var context = new TenantsDBContext())
            {
                //siendo serio, tengo que traer por host, ahora solo traigo por nombre de DB
                tenant = context.Tenants.SingleOrDefault(t => t.BaseDeDatos == textBoxTenant.Text);
                if (tenant != null)
                {
                    Common.TenantData.tenant = tenant;

                    //para que las proximas veces que abra crystal sea rapido. La primera tarda
                    Views.Reportes.frmPlanDeCuentasReporte rpt = new Views.Reportes.frmPlanDeCuentasReporte();
                    rpt.Show();
                    rpt.Hide();
                    rpt.Close();
                    //rpt.Dispose();

                    using (var context2 = new VentasDBContext(Common.TenantData.tenant.ConnectionString))
                    {
                        context2.Roles.AddOrUpdate(
                            new Models.Rol {
                            Id = 1, Nombre = "Super", Privilegio = 1000
                        },
                            new Models.Rol {
                            Id = 2, Nombre = "Supervisor", Privilegio = 600
                        },
                            new Models.Rol {
                            Id = 3, Nombre = "Auditor", Privilegio = 400
                        },
                            new Models.Rol {
                            Id = 4, Nombre = "Base", Privilegio = 100
                        }
                            );
                        context2.Operaciones.AddOrUpdate(
                            new Models.Operacion {
                            Id = 1, Nombre = "SUPER"
                        },
                            new Models.Operacion {
                            Id = 2, Nombre = "USUARIOS_CONSULTAR"
                        },
                            new Models.Operacion {
                            Id = 3, Nombre = "USUARIOS_MODIFICAR"
                        },
                            new Models.Operacion {
                            Id = 4, Nombre = "USUARIOS_ALTABAJA"
                        },
                            new Models.Operacion {
                            Id = 5, Nombre = "USUARIOS_SUPER"
                        },
                            new Models.Operacion {
                            Id = 6, Nombre = "PUNTOSDEVENTA_CONSULTAR"
                        },
                            new Models.Operacion {
                            Id = 7, Nombre = "PUNTOSDEVENTA_MODIFICAR"
                        },
                            new Models.Operacion {
                            Id = 8, Nombre = "PUNTOSDEVENTA_ALTABAJA"
                        },
                            new Models.Operacion {
                            Id = 9, Nombre = "PUNTOSDEVENTA_SUPER"
                        },
                            new Models.Operacion {
                            Id = 10, Nombre = "VENDEDORES_CONSULTAR"
                        },
                            new Models.Operacion {
                            Id = 11, Nombre = "VENDEDORES_MODIFICAR"
                        },
                            new Models.Operacion {
                            Id = 12, Nombre = "VENDEDORES_ALTABAJA"
                        },
                            new Models.Operacion {
                            Id = 13, Nombre = "VENDEDORES_SUPER"
                        },
                            new Models.Operacion {
                            Id = 14, Nombre = "AUDITORIAS_CONSULTAR"
                        },
                            new Models.Operacion {
                            Id = 15, Nombre = "BACKUP"
                        },
                            new Models.Operacion {
                            Id = 16, Nombre = "RESTAURAR"
                        }
                            );
                        context2.Cuentas.AddOrUpdate(
                            new Cuenta {
                            Id = 1, Tipo = 0, Nombre = "Activo", CodigoBalance = "1", CodigoPadre = "0"
                        },
                            new Cuenta {
                            Id = 2, Tipo = 0, Nombre = "Activo Corriente", CodigoBalance = "1.1", CodigoPadre = "1"
                        },
                            new Cuenta {
                            Id = 3, Tipo = 0, Nombre = "Disponibilidades", CodigoBalance = "1.1.01", CodigoPadre = "1.1"
                        },
                            new Cuenta {
                            Id = 4, Tipo = 1, Nombre = "Cajas", CodigoBalance = "1.1.01.01", CodigoPadre = "1.1.01"
                        },
                            new Cuenta {
                            Id = 5, Tipo = 0, Nombre = "Bancos", CodigoBalance = "1.1.01.02", CodigoPadre = "1.1.01"
                        },
                            new Cuenta {
                            Id = 6, Tipo = 1, Nombre = "Banco Pcia. Cta.Cte.", CodigoBalance = "1.1.01.02.01", CodigoPadre = "1.1.01.02"
                        },
                            new Cuenta {
                            Id = 7, Tipo = 1, Nombre = "Banco Nacion Cta.Cte", CodigoBalance = "1.1.01.02.02", CodigoPadre = "1.1.01.02"
                        },
                            new Cuenta {
                            Id = 8, Tipo = 0, Nombre = "Cuentas Por Cobrar", CodigoBalance = "1.1.02", CodigoPadre = "1.1"
                        },
                            new Cuenta {
                            Id = 9, Tipo = 1, Nombre = "Deudores en Cta.Cte", CodigoBalance = "1.1.02.01", CodigoPadre = "1.1.02"
                        },
                            new Cuenta {
                            Id = 10, Tipo = 1, Nombre = "Documentos a Cobrar", CodigoBalance = "1.1.02.02", CodigoPadre = "1.1.02"
                        },
                            new Cuenta {
                            Id = 11, Tipo = 1, Nombre = "IVA Credito Fiscal", CodigoBalance = "1.1.02.03", CodigoPadre = "1.1.02"
                        },
                            new Cuenta {
                            Id = 12, Tipo = 0, Nombre = "Bienes De Cambio", CodigoBalance = "1.1.03", CodigoPadre = "1.1"
                        },
                            new Cuenta {
                            Id = 13, Tipo = 0, Nombre = "Inversiones", CodigoBalance = "1.1.04", CodigoPadre = "1.1"
                        },
                            new Cuenta {
                            Id = 14, Tipo = 0, Nombre = "Activos No Corrientes", CodigoBalance = "1.2", CodigoPadre = "1"
                        },
                            new Cuenta {
                            Id = 15, Tipo = 0, Nombre = "Bienes de Uso", CodigoBalance = "1.2.01", CodigoPadre = "1.2"
                        },
                            new Cuenta {
                            Id = 16, Tipo = 0, Nombre = "Pasivo", CodigoBalance = "2", CodigoPadre = "0"
                        },
                            new Cuenta {
                            Id = 17, Tipo = 1, Nombre = "Rodados", CodigoBalance = "1.2.01.01", CodigoPadre = "1.2.01"
                        },
                            new Cuenta {
                            Id = 18, Tipo = 1, Nombre = "Muebles y utiles", CodigoBalance = "1.2.01.02", CodigoPadre = "1.2.01"
                        },
                            new Cuenta {
                            Id = 19, Tipo = 0, Nombre = "Pasivo Corriente", CodigoBalance = "2.1", CodigoPadre = "0"
                        },
                            new Cuenta {
                            Id = 20, Tipo = 0, Nombre = "Deudas", CodigoBalance = "2.1.01", CodigoPadre = "2.1"
                        },
                            new Cuenta {
                            Id = 21, Tipo = 0, Nombre = "Deudas Comerciales", CodigoBalance = "2.1.01.01", CodigoPadre = "2.1.01"
                        },
                            new Cuenta {
                            Id = 22, Tipo = 1, Nombre = "Proveedores", CodigoBalance = "2.1.01.01.01", CodigoPadre = "2.1.01.01"
                        },
                            new Cuenta {
                            Id = 23, Tipo = 1, Nombre = "Obligaciones a Pagar", CodigoBalance = "2.1.01.01.02", CodigoPadre = "2.1.01.01"
                        },
                            new Cuenta {
                            Id = 24, Tipo = 0, Nombre = "Deudas Fiscales", CodigoBalance = "2.1.01.02", CodigoPadre = "2.1.01"
                        },
                            new Cuenta {
                            Id = 25, Tipo = 1, Nombre = "IVA Debito Fiscal", CodigoBalance = "2.1.01.02.01", CodigoPadre = "2.1.01.02"
                        },
                            new Cuenta {
                            Id = 26, Tipo = 1, Nombre = "IVA Percepciones", CodigoBalance = "2.1.01.02.02", CodigoPadre = "2.1.01.02"
                        },
                            new Cuenta {
                            Id = 27, Tipo = 1, Nombre = "Ingresos Brutos a Pagar", CodigoBalance = "2.1.01.02.03", CodigoPadre = "2.1.01"
                        },
                            new Cuenta {
                            Id = 28, Tipo = 0, Nombre = "Deudas Previsionales", CodigoBalance = "2.1.01.03", CodigoPadre = "2.1.01"
                        },
                            new Cuenta {
                            Id = 29, Tipo = 1, Nombre = "Sueldos a Pagar", CodigoBalance = "2.1.01.03.01", CodigoPadre = "2.1.01.03"
                        },
                            new Cuenta {
                            Id = 30, Tipo = 1, Nombre = "Cargas Sociales a Pagar", CodigoBalance = "2.1.01.03.02", CodigoPadre = "2.1.01.03"
                        },
                            new Cuenta {
                            Id = 31, Tipo = 0, Nombre = "Deudas Bancarias", CodigoBalance = "2.1.01.04", CodigoPadre = "2.1.01"
                        },
                            new Cuenta {
                            Id = 32, Tipo = 0, Nombre = "Pasivo no Corriente", CodigoBalance = "2.2", CodigoPadre = "2"
                        },
                            new Cuenta {
                            Id = 33, Tipo = 0, Nombre = "Patrimonio Neto", CodigoBalance = "3", CodigoPadre = "0"
                        },
                            new Cuenta {
                            Id = 34, Tipo = 0, Nombre = "Capital", CodigoBalance = "3.1", CodigoPadre = "3"
                        },
                            new Cuenta {
                            Id = 35, Tipo = 1, Nombre = "Capital Social", CodigoBalance = "3.1.01", CodigoPadre = "3.1"
                        },
                            new Cuenta {
                            Id = 36, Tipo = 0, Nombre = "Reservas", CodigoBalance = "3.2", CodigoPadre = "3"
                        },
                            new Cuenta {
                            Id = 37, Tipo = 0, Nombre = "Resultados Acumulados", CodigoBalance = "3.3", CodigoPadre = "3"
                        },
                            new Cuenta {
                            Id = 38, Tipo = 1, Nombre = "Resultado Ejercicio Anterior", CodigoBalance = "3.3.01", CodigoPadre = "3.3"
                        },
                            new Cuenta {
                            Id = 39, Tipo = 0, Nombre = "Resultado Positivo", CodigoBalance = "4", CodigoPadre = "0"
                        },
                            new Cuenta {
                            Id = 40, Tipo = 0, Nombre = "Ingresos Ordinarios", CodigoBalance = "4.1", CodigoPadre = "4"
                        },
                            new Cuenta {
                            Id = 41, Tipo = 1, Nombre = "Ventas", CodigoBalance = "4.1.01", CodigoPadre = "4.1"
                        },
                            new Cuenta {
                            Id = 42, Tipo = 1, Nombre = "Intereses Obtenidos", CodigoBalance = "4.1.02", CodigoPadre = "4.1"
                        },
                            new Cuenta {
                            Id = 43, Tipo = 1, Nombre = "Descuentos Obtenidos", CodigoBalance = "4.1.03", CodigoPadre = "4.1"
                        },
                            new Cuenta {
                            Id = 44, Tipo = 0, Nombre = "Ingresos Extraordinarios", CodigoBalance = "4.2", CodigoPadre = "4"
                        },
                            new Cuenta {
                            Id = 45, Tipo = 0, Nombre = "Resultado Negativo", CodigoBalance = "5", CodigoPadre = "0"
                        },
                            new Cuenta {
                            Id = 46, Tipo = 0, Nombre = "Gastos de Comercializacion", CodigoBalance = "5.1", CodigoPadre = "5"
                        },
                            new Cuenta {
                            Id = 47, Tipo = 1, Nombre = "Costo de Venta", CodigoBalance = "5.1.01", CodigoPadre = "5.1"
                        },
                            new Cuenta {
                            Id = 48, Tipo = 0, Nombre = "Gastos Administrativos", CodigoBalance = "5.2", CodigoPadre = "5"
                        },
                            new Cuenta {
                            Id = 49, Tipo = 1, Nombre = "Agua, luz y gas", CodigoBalance = "5.2.01", CodigoPadre = "5.2"
                        },
                            new Cuenta {
                            Id = 50, Tipo = 1, Nombre = "Impuestos", CodigoBalance = "5.2.02", CodigoPadre = "5.2"
                        },
                            new Cuenta {
                            Id = 51, Tipo = 1, Nombre = "Telefono", CodigoBalance = "5.2.03", CodigoPadre = "5.2"
                        },
                            new Cuenta {
                            Id = 52, Tipo = 0, Nombre = "Gastos en Personal", CodigoBalance = "5.3", CodigoPadre = "5"
                        },
                            new Cuenta {
                            Id = 53, Tipo = 1, Nombre = "Sueldos y Jornales", CodigoBalance = "5.3.01", CodigoPadre = "5.3"
                        },
                            new Cuenta {
                            Id = 54, Tipo = 1, Nombre = "Cargas Sociales", CodigoBalance = "5.3.02", CodigoPadre = "5.3"
                        },
                            new Cuenta {
                            Id = 55, Tipo = 0, Nombre = "Gastos Financieros", CodigoBalance = "5.4", CodigoPadre = "5"
                        },
                            new Cuenta {
                            Id = 56, Tipo = 1, Nombre = "Intereses Cedidos", CodigoBalance = "5.4.01", CodigoPadre = "5.4"
                        },
                            new Cuenta {
                            Id = 57, Tipo = 1, Nombre = "Descuentos Cedidos", CodigoBalance = "5.4.02", CodigoPadre = "5.4"
                        },
                            new Cuenta {
                            Id = 58, Tipo = 1, Nombre = "Gastos Bancarios", CodigoBalance = "5.4.03", CodigoPadre = "5.4"
                        },
                            new Cuenta {
                            Id = 59, Tipo = 0, Nombre = "Otros Gastos", CodigoBalance = "5.5", CodigoPadre = "5"
                        }
                            );
                        //context2.SaveChanges();

                        try
                        {
                            // Your code...
                            // Could also be before try if you know the exception occurs in SaveChanges

                            context2.SaveChanges();
                        }
                        catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                        {
                            foreach (var eve in ex.EntityValidationErrors)
                            {
                                Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                                  eve.Entry.Entity.GetType().Name, eve.Entry.State);
                                foreach (var ve in eve.ValidationErrors)
                                {
                                    Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                                      ve.PropertyName, ve.ErrorMessage);
                                }
                            }
                            throw;
                        }


                        //context2.Usuarios.Load();
                    }
                    using (var context2 = new VentasDBContext(Common.TenantData.tenant.ConnectionString))
                    {
                        context2.Usuarios.AddOrUpdate(
                            new Usuario {
                            Id = 1, Username = "******", Password = "******", RolId = 1, Rol = context2.Roles.Where(r => r.Id == 1).Single()
                        }
                            );

                        Rol super = context2.Roles.Where(r => r.Id == 1).Single();
                        super.Operaciones.Add(context2.Operaciones.Where(o => o.Id == 1).Single());
                        Rol supervisor = context2.Roles.Where(r => r.Id == 2).Single();
                        supervisor.Operaciones.Add(context2.Operaciones.Where(o => o.Id == 16).Single());
                        supervisor.Operaciones.Add(context2.Operaciones.Where(o => o.Id == 5).Single());
                        Rol auditor = context2.Roles.Where(r => r.Id == 3).Single();
                        auditor.Operaciones.Add(context2.Operaciones.Where(o => o.Id == 14).Single());

                        Rol basee = context2.Roles.Where(r => r.Id == 4).Single();
                        basee.Operaciones.Add(context2.Operaciones.Where(o => o.Id == 6).Single());
                        basee.Operaciones.Add(context2.Operaciones.Where(o => o.Id == 10).Single());

                        context2.SaveChanges();
                    }

                    textBoxPassword.Enabled      = true;
                    textBoxUsuario.Enabled       = true;
                    buttonIngresar.Enabled       = true;
                    buttonAccederEmpresa.Enabled = false;
                    textBoxTenant.Enabled        = false;
                }
                else
                {
                    Helpers.CreadorMensajes.mensajeError("No existe la empresa");
                }
            }
        }
        private void buttonGuardar_Click(object sender, EventArgs e)
        {
            using (var context = new VentasDBContext(Common.TenantData.tenant.ConnectionString))
            {
                ComprobanteEncabezadoPie comprobante = new ComprobanteEncabezadoPie();
                Cliente cliente = new Cliente();
                cliente = context.Clientes.Where(x => x.Id == ((Cliente)comboBoxClientes.SelectedItem).Id).SingleOrDefault();
                TipoComprobanteVenta tipo = new TipoComprobanteVenta();
                tipo = context.TiposComprobantesVenta.Where(x => x.Id == ((TipoComprobanteVenta)comboBoxComprobante.SelectedItem).Id).SingleOrDefault();
                comprobante.FechaEmision = dateTimePicker1.Value.Date;
                comprobante.Neto21       = Neto21;
                comprobante.IVA21        = IVA21;
                comprobante.Neto27       = Neto27;
                comprobante.IVA27        = IVA27;
                comprobante.Exento       = Exento;
                comprobante.Total        = Total;

                comprobante.NumeroComprobante = NumeroComprobanteCargando;

                context.ComprobantesEncabezadoPie.Add(comprobante);
                context.Clientes.Attach(cliente);
                context.TiposComprobantesVenta.Attach(tipo);

                Tenant empresa = new Tenant();
                using (var context2 = new TenantsDBContext())
                {
                    empresa = context2.Tenants.Find(Common.TenantData.tenant.Id);
                }

                comprobante.Cliente = cliente;
                comprobante.TiposComprobantesVenta = tipo;
                comprobante.Tenant = empresa;

                try
                {
                    context.SaveChanges();
                }
                catch (Exception ex)
                { throw ex; }
            }
            using (var context = new VentasDBContext(Common.TenantData.tenant.ConnectionString))
            {
                //renglones
                context.Articulos.Include(x => x.TasaIVA).Load();
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    ComprobanteRenglon     renglon = new ComprobanteRenglon();
                    tempComprobanteRenglon r       = (tempComprobanteRenglon)row.DataBoundItem;

                    ComprobanteEncabezadoPie compPadre = new ComprobanteEncabezadoPie();
                    compPadre = context.ComprobantesEncabezadoPie.Where(x => x.NumeroComprobante == NumeroComprobanteCargando).SingleOrDefault();

                    Articulo articulo = new Articulo();
                    articulo = context.Articulos.Where(x => x.Id == r.Articulo.Id).SingleOrDefault();


                    renglon.Cantidad = r.Cantidad;
                    renglon.Importe  = r.Importe;

                    context.ComprobantesRenglones.Add(renglon);

                    context.Articulos.Attach(articulo);
                    renglon.Articulo = articulo;
                    context.ComprobantesEncabezadoPie.Attach(compPadre);
                    renglon.ComprobanteEncabezadoPie = compPadre;

                    try
                    {
                        context.SaveChanges();
                    }
                    catch (Exception ex)
                    { throw ex; }
                }
            }
        }