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; } }
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(); } } }
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(); } }
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; } } } }