public override void Eliminar(Envase entidad, Core.Modelo.Usuarios.Usuario usuario, Core.Datos.IDbContext cntxt) { using (var transaccion = cntxt.EmpezarTransaccion()) { try { foreach (var art in entidad.Articulos) { cntxt.Entry <ArticuloEnvase>(art).State = EntityState.Deleted; } cntxt.SaveChanges(); //para borrar las listas var envaseParaBorrar = cntxt.BuscarPorId <Envase>(entidad.Id, Core.CargarRelaciones.NoCargarNada); cntxt.Entry <Envase>(envaseParaBorrar).State = EntityState.Deleted; cntxt.SaveChanges(); if (usuario != null) { cntxt.insertaAuditoria <Envase>(entidad, Accion.Elimina, usuario); } transaccion.Commit(); } catch (Exception ex) { transaccion.Rollback(); } } }
public override void Insertar(GrupoCliente grupoCliente, Core.Modelo.Usuarios.Usuario Usuario, List <Core.Datos.IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { if (grupoCliente.Clientes.Count > 0) { foreach (var cli in grupoCliente.Clientes) { if (cli.Id == 0) { cntxt.Entry <Cliente>(cli).State = EntityState.Added; } else { cntxt.Set <Cliente>().Attach(cli); } } } cntxt.Set <GrupoCliente>().Add(grupoCliente); if (Usuario != null) { cntxt.insertaAuditoria <GrupoCliente>(grupoCliente, Accion.Agrega, Usuario); } cntxt.SaveChanges(); }); }
public override void Insertar(Envase envase, Core.Modelo.Usuarios.Usuario Usuario, List <Core.Datos.IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { if (envase.Articulos.Count > 0) { foreach (var art in envase.Articulos) { art.ArticuloId = this.SetearFk(art, "Articulo"); if (art.Id == 0) { cntxt.Entry <ArticuloEnvase>(art).State = EntityState.Added; } else { cntxt.Set <ArticuloEnvase>().Attach(art); } } } cntxt.Set <Envase>().Add(envase); if (Usuario != null) { cntxt.insertaAuditoria <Envase>(envase, Accion.Agrega, Usuario); } cntxt.SaveChanges(); } ); }
public override void Actualizar(Supervisor supervisor, Core.Modelo.Usuarios.Usuario Usuario, List <Core.Datos.IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { //obtengo al cliente como esta guardado en la base de datos var actualizar = cntxt.BuscarPorId <Supervisor>(supervisor.Id, CargarRelaciones.CargarTodo); if (actualizar != null) { supervisor.JefeId = SetearFk(supervisor, "Jefe"); Action <Preventista> setFkPreventistas = p => { p.SupervisorId = SetearFk(p, "Supervisor"); }; ActualizarColeccionMuchosAMuchos <Preventista>(actualizar.Preventistas, supervisor.Preventistas, cntxt, setFkPreventistas); SetearValores(supervisor, actualizar, cntxt); SetearValores(supervisor.DatosOldPreventa, actualizar.DatosOldPreventa, cntxt); if (Usuario != null) { cntxt.insertaAuditoria <Supervisor>(actualizar, Accion.Modifica, Usuario); } cntxt.SaveChanges(); } }); }
public override void Insertar(Supervisor supervisor, Core.Modelo.Usuarios.Usuario Usuario, List <Core.Datos.IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { //carga local de las propiedades FK para que no se dupliquen al momento de grabar. supervisor.JefeId = SetearFk(supervisor, "Jefe"); if (supervisor.Preventistas.Count > 0) { foreach (var prev in supervisor.Preventistas) { prev.SupervisorId = SetearFk(prev, "Supervisor"); if (prev.Id == 0) { cntxt.Entry <Preventista>(prev).State = EntityState.Added; } else { cntxt.Set <Preventista>().Attach(prev); } } } cntxt.Set <Supervisor>().Add(supervisor); if (Usuario != null) { cntxt.insertaAuditoria <Supervisor>(supervisor, Accion.Agrega, Usuario); } cntxt.SaveChanges(); }); }
public override void Eliminar(Familia entidad, Core.Modelo.Usuarios.Usuario usuario, Core.Datos.IDbContext cntxt) { var flia = cntxt.BuscarPorId <Familia>(entidad.Id, Core.CargarRelaciones.NoCargarNada); cntxt.Entry <Familia>(flia).State = System.Data.Entity.EntityState.Deleted; //cntxt.SaveChanges(); }
public override void Actualizar(GrupoCliente grupoCliente, Core.Modelo.Usuarios.Usuario Usuario, List <Core.Datos.IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { var actualizar = cntxt.BuscarPorId <GrupoCliente>(grupoCliente.Id, Core.CargarRelaciones.CargarTodo); if (actualizar != null) { Action <Cliente> setFkClientes = c => { if (c.DatosOld != null) { c.DatosOld.RutaDeVentaId = this.SetearFk(c.DatosOld, "RutaDeVenta"); c.DatosOld.ListaDePrecioId = this.SetearFk(c.DatosOld, "ListaDePreciosDeVenta"); } if (c.Domicilio != null) { c.Domicilio.CalleId = this.SetearFk(c.Domicilio, "Calle"); } if (c.LugarEntrega != null) { c.LugarEntrega.CalleId = this.SetearFk(c.LugarEntrega, "Calle"); } c.LocalidadDeEntregaId = this.SetearFk(c, "LocalidadDeEntrega"); c.LocalidadId = this.SetearFk(c, "Localidad"); c.ProvinciaId = this.SetearFk(c, "Provincia"); c.RamoId = this.SetearFk(c, "Ramo"); c.ZonaGeograficaId = this.SetearFk(c, "ZonaGeografica"); c.ZonaLogisticaId = this.SetearFk(c, "ZonaLogistica"); foreach (var item in c.ConfiguraCreditos) { item.CobradorId = this.SetearFk(item, "Cobrador"); item.VendedorId = this.SetearFk(item, "Vendedor"); item.VendedorEspecialId = this.SetearFk(item, "VendedorEspecial"); item.CondicionDePagoId = this.SetearFk(item, "CondicionDePago"); item.CondicionDePago2Id = this.SetearFk(item, "CondicionDePago2"); } foreach (var item in c.RutasDeVenta) { //item.DivisionId = this.SetearFk(item, "Division"); item.RegionDeVentaId = this.SetearFk(item, "RegionDeVenta"); item.SuplenteId = this.SetearFk(item, "Suplente"); item.TitularId = this.SetearFk(item, "Titular"); } }; this.ActualizarColeccionMuchosAMuchos <Cliente>(actualizar.Clientes, grupoCliente.Clientes, cntxt, setFkClientes); SetearValores(grupoCliente, actualizar, cntxt); if (Usuario != null) { cntxt.insertaAuditoria <GrupoCliente>(actualizar, Accion.Modifica, Usuario); } cntxt.SaveChanges(); } }); }
public override void Actualizar(Articulo articulo, Core.Modelo.Usuarios.Usuario Usuario, List <Core.Datos.IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { var actualizar = cntxt.BuscarPorId <Articulo>(articulo.Id, Core.CargarRelaciones.CargarTodo); if (actualizar != null) { articulo.AreaId = this.SetearFk(articulo, "Area"); articulo.SectorId = this.SetearFk(articulo, "Sector"); articulo.SubsectorId = this.SetearFk(articulo, "Subsector"); articulo.FamiliaId = this.SetearFk(articulo, "Familia"); articulo.SubFamiliaId = this.SetearFk(articulo, "Subfamilia"); articulo.CaracteristicaId = this.SetearFk(articulo, "Caracteristica"); articulo.EmpaqueId = this.SetearFk(articulo, "Empaque"); articulo.EnvaseId = this.SetearFk(articulo, "Envase"); articulo.MarcaId = this.SetearFk(articulo, "Marca"); articulo.ProveedorId = this.SetearFk(articulo, "Proveedor"); //articulo.TasasId = this.SetearFk(articulo, "TasasDeIva"); if (articulo.DatosOld != null) { articulo.DatosOld.ArticuloEnvaseId = this.SetearFk(articulo.DatosOld, "ArticuloEnvase"); articulo.DatosOld.ClaseId = this.SetearFk(articulo.DatosOld, "Clase"); articulo.DatosOld.DivisionId = this.SetearFk(articulo.DatosOld, "Division"); articulo.DatosOld.LineaId = this.SetearFk(articulo.DatosOld, "Linea"); articulo.DatosOld.RubroId = this.SetearFk(articulo.DatosOld, "Rubro"); articulo.DatosOld.SKUId = this.SetearFk(articulo.DatosOld, "SKU"); } Action <ArticuloCompuesto> setFkArticulosCompuestos = artCom => { artCom.ArticuloComponenteId = this.SetearFk(artCom, "ArticuloComponente"); }; this.ActualizarColeccionUnoAMuchos <ArticuloCompuesto>(actualizar.ArticulosCompuestos, articulo.ArticulosCompuestos, cntxt, setFkArticulosCompuestos); this.ActualizarColeccionMuchosAMuchos <GrupoArticulo>(actualizar.Grupo, articulo.Grupo, cntxt); this.ActualizarColeccionUnoAMuchos <ObservacionArticulo>(actualizar.Observaciones, articulo.Observaciones, cntxt); this.ActualizarColeccionUnoAMuchos <CodigoDun>(actualizar.CodigoDUN, articulo.CodigoDUN, cntxt); this.ActualizarColeccionUnoAMuchos <CodigoEan>(actualizar.CodigoEAN, articulo.CodigoEAN, cntxt); this.SetearValores(articulo, actualizar, cntxt); this.SetearValores(articulo.DatosOld, actualizar.DatosOld, cntxt); if (Usuario != null) { cntxt.insertaAuditoria <Articulo>(actualizar, Accion.Modifica, Usuario); } cntxt.SaveChanges(); } }); }
//public override Core.DTO.Carriers.GrabadorCarrier GrabarNuevo(Modelo.Proveedores.DocumentoCompra Entidad, Core.Modelo.Usuarios.Usuario Usuario) //{ // var paramers = new ParameterOverride[2]; // paramers[0] = new ParameterOverride("empresa", Entidad.Empresa); // paramers[1] = new ParameterOverride("entidad", "DocumentoCompra"); // var BuscadorComprobante = (IBuscadorComprobante)FabricaNegocios.Instancia.Resolver(typeof(IBuscadorComprobante), paramers); // var comprobante = BuscadorComprobante.BuscarRepetido(Entidad.Empresa, Entidad.Sucursal, Entidad.Proveedor.Id, (int)Entidad.TipoDocumento, Entidad.Prenumero, Entidad.Numero); // if (comprobante != null) // { // var grabadorCarrier = new GrabadorCarrier(); // grabadorCarrier.setError(true); // grabadorCarrier.setMensaje(string.Format("El comprobante ya esta cargado para el proveedor {0}", Entidad.Proveedor.Nombre)); // return grabadorCarrier; // } // else // { // var creadorMovimiento = FabricaNegocios._Resolver<ICreador<Inteldev.Fixius.Modelo.Tesoreria.MovimientoBancario>>(); // var grabadorCuentaBancaria = FabricaNegocios._Resolver<IGrabador<Modelo.Tesoreria.CuentaBancaria>>(); // //aca mandar la creacion de las correspondientes notas de credito o notas de debito internas // var grabadorNotas = FabricaNegocios._Resolver<IGrabador<Modelo.Proveedores.DocumentoCompra>>(); // if (Entidad.TipoDocumento == Modelo.Proveedores.TipoDocumento.NotaDeCredito || // Entidad.TipoDocumento == Modelo.Proveedores.TipoDocumento.NotaDeDebito) // { // //var notasDeCreditoPendientes = Entidad.NotasPendientes; // foreach (NotaPendiente notaPendiente in Entidad.NotasPendientes) // { // if (notaPendiente.Seleccionado) // { // notaPendiente.Aplicado = notaPendiente.Importe; // var mementoNota = new Memento<NotaPendiente>(notaPendiente); // grabadorNotas.GrabarExistente(notaPendiente, Usuario); // mementoNota.RecuperarEstado(); // var grabadorNotasFox = FabricaNegocios._Resolver<IGrabadorFox<Modelo.Proveedores.DocumentoCompra>>(); // grabadorNotasFox.Grabar(notaPendiente); // //si es Credito Pendiente lo convierte en Debito Pendiente y viceversa // notaPendiente.TipoDocumento = notaPendiente.TipoDocumento == TipoDocumento.NotaDeCreditoInterno ? TipoDocumento.NotadeDébitoInterno : TipoDocumento.NotaDeCreditoInterno; // notaPendiente.Id = 0; // notaPendiente.Codigo = null; // mementoNota.CapturarEstado(notaPendiente); // notaPendiente.ItemsConceptos.Clear(); // var carrier = grabadorNotas.Grabar(notaPendiente, Usuario); // mementoNota.RecuperarEstado(); // grabadorNotasFox = FabricaNegocios._Resolver<IGrabadorFox<Modelo.Proveedores.DocumentoCompra>>(); // grabadorNotasFox.Grabar(notaPendiente); // } // } // } // //else // //{ // // if (Entidad.TipoDocumento == Modelo.Proveedores.TipoDocumento.NotaDeDebito) // // { // // var notasDeDebitoPendientes = Entidad.NotasPendientes; // // foreach (NotaPendiente notaDebito in notasDeDebitoPendientes) // // { // // if (notaDebito.Seleccionado) // // { // // notaDebito.Aplicado = notaDebito.Importe; // // grabadorNotas.Grabar(notaDebito, Usuario); // // grabadorNotasFox.Grabar(notaDebito); // // var notaCredito = notaDebito; // // notaCredito.Proveedor = proveedor; // // notaCredito.TipoDocumento = Modelo.Proveedores.TipoDocumento.NotaDeCreditoInterno; // // notaCredito.Id = 0; // // notaDebito.Codigo = null; // // grabadorNotas.Grabar(notaCredito, Usuario); // // notaCredito.Proveedor = proveedor; // // grabadorNotasFox.Grabar(notaCredito); // // } // // } // // } // //} // var carrierNuevo = base.GrabarNuevo(Entidad, Usuario); // if (carrierNuevo.getError() == false && Entidad.TipoDocumento == TipoDocumento.LiquidacionBancaria) // { // //aca mando el movimiento bancario // decimal debe = 0; // decimal haber = 0; // foreach (var item in Entidad.ItemsConceptos) // { // debe += item.Debe; // haber += item.Haber; // } // var movimiento = creadorMovimiento.Crear(); // movimiento.ConceptoMovimientoBancario = Entidad.ConceptoMovimientoBancario; // movimiento.Fecha = Entidad.Fecha; // movimiento.FechaEfectiva = Entidad.Fecha; // movimiento.Debe = debe; // movimiento.Haber = haber; // var cuentaBancaria = Entidad.CuentaBancaria; // if (cuentaBancaria != null && Entidad.TipoDocumento == TipoDocumento.LiquidacionBancaria) // { // cuentaBancaria.MovimientosBancarios.Add(movimiento); // grabadorCuentaBancaria.Grabar(cuentaBancaria, Usuario); // } // } // if (!carrierNuevo.getError()) // carrierNuevo.setMensaje(string.Format("Comprobante grabado correctamente. Numero: {0}-{1}", Entidad.Prenumero, Entidad.Numero)); // return carrierNuevo; // } //} public override void Actualizar(DocumentoCompra doc, Core.Modelo.Usuarios.Usuario Usuario, List <IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { var actualizar = cntxt.BuscarPorId <DocumentoCompra>(doc.Id, CargarRelaciones.CargarTodo); if (actualizar != null) { if (doc.MovimientoBancario != null) { doc.MovimientoBancario.ConceptoMovimientoBancarioId = this.SetearFk(doc.MovimientoBancario, "ConceptoMovimientoBancario"); } if (doc.CuentaBancaria != null) { doc.CuentaBancaria.BancoId = this.SetearFk(doc.CuentaBancaria, "Banco"); } doc.AutorizaId = SetearFk(doc, "Autoriza"); doc.ProveedorId = SetearFk(doc, "Proveedor"); #region Listas Action <DocumentoProveedor> setFkDocumentoProveedor = d => { d.ProveedorId = this.SetearFk(d, "Proveedor"); }; ActualizarColeccionUnoAMuchos <DocumentoProveedor>(actualizar.DocumentosAsociados, doc.DocumentosAsociados, cntxt, setFkDocumentoProveedor); Action <ItemsConceptos> setFkItemsConceptos = i => { i.ConceptoId = this.SetearFk(i, "Concepto"); }; ActualizarColeccionUnoAMuchos <ItemsConceptos>(actualizar.ItemsConceptos, doc.ItemsConceptos, cntxt, setFkItemsConceptos); ActualizarColeccionUnoAMuchos <NotaPendiente>(actualizar.NotasPendientes, doc.NotasPendientes, cntxt); #endregion SetearValores(doc, actualizar, cntxt); SetearValores(doc.MovimientoBancario, actualizar.MovimientoBancario, cntxt); SetearValores(doc.CuentaBancaria, actualizar.CuentaBancaria, cntxt); if (Usuario != null) { cntxt.insertaAuditoria <DocumentoCompra>(actualizar, Accion.Modifica, Usuario); } cntxt.SaveChanges(); } }); }
public override void Insertar(DivisionComercial division, Core.Modelo.Usuarios.Usuario Usuario, List <Core.Datos.IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { cntxt.Set <DivisionComercial>().Add(division); if (Usuario != null) { cntxt.insertaAuditoria <DivisionComercial>(division, Accion.Agrega, Usuario); } cntxt.SaveChanges(); }); }
public override void Eliminar(Articulo articulo, Core.Modelo.Usuarios.Usuario usuario, Core.Datos.IDbContext cntxt) { using (var transaccion = cntxt.EmpezarTransaccion()) { try { foreach (var obs in articulo.Observaciones) { cntxt.Entry <ObservacionArticulo>(obs).State = EntityState.Deleted; } foreach (var item in articulo.CodigoDUN) { cntxt.Entry <CodigoDun>(item).State = EntityState.Deleted; } foreach (var item in articulo.CodigoEAN) { cntxt.Entry <CodigoEan>(item).State = EntityState.Deleted; } foreach (var artCom in articulo.ArticulosCompuestos) { cntxt.Entry <ArticuloCompuesto>(artCom).State = EntityState.Deleted; } this.AgregarAListaParaBorrar(articulo.DatosOld); cntxt.SaveChanges(); //para borrar las listaas. var artABorrar = cntxt.BuscarPorId <Articulo>(articulo.Id, CargarRelaciones.NoCargarNada); cntxt.Entry <Articulo>(artABorrar).State = EntityState.Deleted; cntxt.SaveChanges(); //Borra el articulo this.EliminarGrafo(cntxt); if (usuario != null) { cntxt.insertaAuditoria <Articulo>(articulo, Accion.Elimina, usuario); } transaccion.Commit(); } catch (Exception ex) { transaccion.Rollback(); } } }
public override void Actualizar(Envase envase, Core.Modelo.Usuarios.Usuario Usuario, List <Core.Datos.IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { var actualizar = cntxt.BuscarPorId <Envase>(envase.Id, Core.CargarRelaciones.CargarTodo); if (actualizar != null) { Action <ArticuloEnvase> setFkArticuloEnvase = p => p.ArticuloId = this.SetearFk(p, "Articulo"); this.ActualizarColeccionUnoAMuchos <ArticuloEnvase>(actualizar.Articulos, envase.Articulos, cntxt, setFkArticuloEnvase); this.SetearValores(envase, actualizar, cntxt); if (Usuario != null) { cntxt.insertaAuditoria <Envase>(envase, Accion.Modifica, Usuario); } cntxt.SaveChanges(); } }); }
public override void Actualizar(DivisionComercial division, Core.Modelo.Usuarios.Usuario Usuario, List <Core.Datos.IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { //obtengo la division como esta guardada en la base de datos var actualizar = cntxt.BuscarPorId <DivisionComercial>(division.Id, CargarRelaciones.CargarTodo); this.ActualizarColeccionUnoAMuchos <EmpresaCodigo>(actualizar.Empresas, division.Empresas, cntxt); SetearValores(division, actualizar, cntxt); if (Usuario != null) { cntxt.insertaAuditoria <DivisionComercial>(actualizar, Accion.Modifica, Usuario); } cntxt.SaveChanges(); }); }
public override void Insertar(RutaDeVenta ruta, Core.Modelo.Usuarios.Usuario Usuario, List<Core.Datos.IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { //ruta.DivisionId = this.SetearFk(ruta, "Division"); ruta.RegionDeVentaId = this.SetearFk(ruta, "RegionDeVenta"); ruta.SuplenteId = this.SetearFk(ruta, "Suplente"); ruta.TitularId = this.SetearFk(ruta, "Titular"); if (ruta.Clientes.Count > 0) { foreach (var cli in ruta.Clientes) { if (cli.Id == 0) cntxt.Entry(cli).State = System.Data.Entity.EntityState.Added; else cntxt.Set<Cliente>().Attach(cli); } } if (ruta.Vertices.Count > 0) { foreach (var vert in ruta.Vertices) { if (vert.Id == 0) cntxt.Entry(vert).State = EntityState.Added; else cntxt.Set<Coordenada>().Attach(vert); } } cntxt.Set<RutaDeVenta>().Add(ruta); if (Usuario != null) cntxt.insertaAuditoria<RutaDeVenta>(ruta, Accion.Agrega, Usuario); cntxt.SaveChanges(); }); }
public override void Eliminar(RutaDeVenta entidad, Core.Modelo.Usuarios.Usuario usuario, Core.Datos.IDbContext cntxt) { using (var transaccion = cntxt.EmpezarTransaccion()) { try { this.AgregarAListaParaBorrar(entidad.DatosOld); var ruta = cntxt.BuscarPorId <RutaDeVenta>(entidad.Id, Core.CargarRelaciones.NoCargarNada); cntxt.Entry <RutaDeVenta>(ruta).State = System.Data.Entity.EntityState.Deleted; cntxt.SaveChanges(); this.EliminarGrafo(cntxt); transaccion.Commit(); } catch (Exception ex) { transaccion.Rollback(); } } }
public override void Insertar(Articulo articulo, Core.Modelo.Usuarios.Usuario Usuario, List <Core.Datos.IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { //carga local de las propiedades FK para que no se dupliquen al momento de grabar. articulo.AreaId = this.SetearFk(articulo, "Area"); articulo.SectorId = this.SetearFk(articulo, "Sector"); articulo.SubsectorId = this.SetearFk(articulo, "Subsector"); articulo.FamiliaId = this.SetearFk(articulo, "Familia"); articulo.SubFamiliaId = this.SetearFk(articulo, "Subfamilia"); articulo.CaracteristicaId = this.SetearFk(articulo, "Caracteristica"); articulo.EmpaqueId = this.SetearFk(articulo, "Empaque"); articulo.EnvaseId = this.SetearFk(articulo, "Envase"); articulo.MarcaId = this.SetearFk(articulo, "Marca"); articulo.ProveedorId = this.SetearFk(articulo, "Proveedor"); //articulo.TasasId = this.SetearFk(articulo, "TasasDeIva"); if (articulo.DatosOld != null) { articulo.DatosOld.ArticuloEnvaseId = this.SetearFk(articulo.DatosOld, "ArticuloEnvase"); articulo.DatosOld.ClaseId = this.SetearFk(articulo.DatosOld, "Clase"); articulo.DatosOld.DivisionId = this.SetearFk(articulo.DatosOld, "Division"); articulo.DatosOld.LineaId = this.SetearFk(articulo.DatosOld, "Linea"); articulo.DatosOld.RubroId = this.SetearFk(articulo.DatosOld, "Rubro"); articulo.DatosOld.SKUId = this.SetearFk(articulo.DatosOld, "SKU"); } //carga las propiedades de listas if (articulo.ArticulosCompuestos.Count > 0) { foreach (var artcomp in articulo.ArticulosCompuestos) { artcomp.ArticuloComponenteId = this.SetearFk(artcomp, "ArticuloComponente"); //artcomp.ArticuloPadreId = this.SetearFk(artcomp, "ArticuloPadre"); if (artcomp.Id == 0) { cntxt.Entry <ArticuloCompuesto>(artcomp).State = EntityState.Added; } else { cntxt.Set <ArticuloCompuesto>().Attach(artcomp); } } } if (articulo.Grupo.Count > 0) { foreach (var gru in articulo.Grupo) { if (gru.Id == 0) { cntxt.Entry <GrupoArticulo>(gru).State = EntityState.Added; } else { cntxt.Set <GrupoArticulo>().Attach(gru); } } } cntxt.Set <Articulo>().Add(articulo); if (Usuario != null) { cntxt.insertaAuditoria <Articulo>(articulo, Accion.Agrega, Usuario); } cntxt.SaveChanges(); } ); }
public override Core.DTO.Carriers.GrabadorCarrier GrabarNuevo(DevolucionDeMercaderia Entidad, Core.Modelo.Usuarios.Usuario Usuario) { this.grabaDebitos(Entidad, Usuario); return(base.GrabarNuevo(Entidad, Usuario)); }
/// <summary> /// 2015 - AÑADIDO - Metodo que agrega en los contextos un cliente. Sobreescrito de GrabadorGenerico, utilizado para reemplazar los metodos de insercion de DbContextBase /// </summary> /// <param name="cliente">Cliente a agregar.</param> /// <param name="Usuario">Usuario encargado de la acción.</param> /// <param name="listaContextos">Contextos en donde se encuentra el DbSet de Cliente</param> public override void Insertar(Cliente cliente, Core.Modelo.Usuarios.Usuario Usuario, List <Core.Datos.IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { //carga local de las propiedades FK para que no se dupliquen al momento de grabar. #region Especial - Zona Logistica debe ser por defecto el primer elemento de la lista RutaDeVenta. if (cliente.ZonaLogistica == null) { var primerRuta = cliente.RutasDeVenta.FirstOrDefault(); if (primerRuta != null) { var codigoZonaLogABuscar = primerRuta.Codigo; var zonaLog = cntxt.Set <ZonaLogistica>().FirstOrDefault(p => p.Codigo.Equals(codigoZonaLogABuscar)); if (zonaLog != null) { cliente.ZonaLogisticaId = zonaLog.Id; } } } else { cliente.ZonaLogisticaId = SetearFk(cliente, "ZonaLogistica"); } #endregion cliente.ZonaGeograficaId = SetearFk(cliente, "ZonaGeografica"); cliente.LocalidadId = SetearFk(cliente, "Localidad"); cliente.LocalidadDeEntregaId = SetearFk(cliente, "LocalidadDeEntrega"); cliente.ProvinciaId = SetearFk(cliente, "Provincia"); cliente.RamoId = SetearFk(cliente, "Ramo"); cliente.CuentaPadreId = SetearFk(cliente, "CuentaPadre"); if (cliente.DatosOld != null) { //cliente.DatosOld.ZonaLogisticaId = SetearFk(cliente.DatosOld, "ZonaLogistica"); //cliente.DatosOld.ZonaGeograficaId = SetearFk(cliente.DatosOld, "ZonaGeografica"); cliente.DatosOld.RutaDeVentaId = SetearFk(cliente.DatosOld, "RutaDeVenta"); cliente.DatosOld.ListaDePrecioId = SetearFk(cliente.DatosOld, "ListaDePreciosDeVenta"); } if (cliente.Domicilio != null) { cliente.Domicilio.CalleId = SetearFk(cliente.Domicilio, "Calle"); } if (cliente.LugarEntrega != null) { cliente.LugarEntrega.CalleId = SetearFk(cliente.LugarEntrega, "Calle"); } //carga las propiedades de listas if (cliente.ConfiguraCreditos.Count > 0) { foreach (var confCred in cliente.ConfiguraCreditos) { confCred.CobradorId = SetearFk(confCred, "Cobrador"); confCred.CondicionDePagoId = SetearFk(confCred, "CondicionDePago"); confCred.CondicionDePago2Id = SetearFk(confCred, "CondicionDePago2"); confCred.VendedorId = SetearFk(confCred, "Vendedor"); confCred.VendedorEspecialId = SetearFk(confCred, "VendedorEspecial"); if (confCred.Id == 0) { cntxt.Entry <ConfiguraCredito>(confCred).State = EntityState.Added; } else { cntxt.Set <ConfiguraCredito>().Attach(confCred); } } } if (cliente.TarjetasCliente.Count > 0) { foreach (var tar in cliente.TarjetasCliente) { tar.TipoTarjetaId = SetearFk(tar, "TipoTarjeta"); if (tar.Id == 0) { cntxt.Entry <TarjetaMayoristaItem>(tar).State = EntityState.Added; } else { cntxt.Set <TarjetaMayoristaItem>().Attach(tar); } } } if (cliente.RutasDeVenta.Count > 0) { foreach (var ruta in cliente.RutasDeVenta) { //ruta.DivisionId = SetearFk(ruta, "Division"); ruta.RegionDeVentaId = SetearFk(ruta, "RegionDeVenta"); ruta.SuplenteId = SetearFk(ruta, "Suplente"); ruta.TitularId = SetearFk(ruta, "Titular"); if (ruta.Id == 0) { cntxt.Entry <RutaDeVenta>(ruta).State = EntityState.Added; } else { cntxt.Set <RutaDeVenta>().Attach(ruta); } } } if (cliente.GrupoDinamico.Count > 0) { foreach (var gru in cliente.GrupoDinamico) { if (gru.Id == 0) { cntxt.Entry <GrupoCliente>(gru).State = EntityState.Added; } else { cntxt.Set <GrupoCliente>().Attach(gru); } } } cntxt.Set <Cliente>().Add(cliente); if (Usuario != null) { cntxt.insertaAuditoria <Cliente>(cliente, Accion.Agrega, Usuario); } cntxt.SaveChanges(); } ); }
public override Core.DTO.Carriers.GrabadorCarrier GrabarNuevo(Core.Modelo.Organizacion.Empresa Entidad, Core.Modelo.Usuarios.Usuario Usuario) { var carrier = base.GrabarNuevo(Entidad, Usuario); var creadorReferencia = FabricaNegocios._Resolver <ICreador <Modelo.Contabilidad.ReferenciaContable> >(); var grabadorReferencia = FabricaNegocios._Resolver <IGrabador <Modelo.Contabilidad.ReferenciaContable> >(); foreach (var item in Enum.GetValues(typeof(Imputaciones))) { var referencia = creadorReferencia.Crear(); referencia.Empresa = Entidad.Codigo; referencia.Imputacion = (Imputaciones)Enum.Parse(typeof(Imputaciones), item.ToString()); grabadorReferencia.Grabar(referencia, Usuario); } return(carrier); }
public override void Actualizar(TarjetaClienteMayorista tarjetaClienteMayorista, Core.Modelo.Usuarios.Usuario Usuario, List <Core.Datos.IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { //obtengo al cliente como esta guardado en la base de datos var actualizar = cntxt.BuscarPorId <TarjetaClienteMayorista>(tarjetaClienteMayorista.Id, CargarRelaciones.CargarTodo); if (actualizar != null) { tarjetaClienteMayorista.HeredaId = this.SetearFk(tarjetaClienteMayorista, "Hereda"); Action <Ramo> seteaFkRamo = r => { r.CanalId = this.SetearFk(r, "Canal"); r.TarjetaId = this.SetearFk(r, "Tarjeta"); }; //this.ActualizarColeccionUnoAMuchos<Ramo>(actualizar.Ramos, tarjetaClienteMayorista.Ramos, cntxt, seteaFkRamo); this.ActualizarColeccionMuchosAMuchos <Ramo>(actualizar.Ramos, tarjetaClienteMayorista.Ramos, cntxt, seteaFkRamo); this.SetearValores(tarjetaClienteMayorista, actualizar, cntxt); if (Usuario != null) { cntxt.insertaAuditoria <TarjetaClienteMayorista>(actualizar, Accion.Modifica, Usuario); } cntxt.SaveChanges(); } }); }
/// <summary> /// 2015 - Añadido - Metodo que actualiza en los contextos un cliente. Sobreescrito de GrabadorGenerico, utilizado para reemplazar el metodo Actualizar de DbContextBase /// </summary> /// <param name="cliente">Cliente a actualizar.</param> /// <param name="Usuario">Usuario encargado de la acción.</param> /// <param name="listaContextos">Contextos en donde se encuentra el DbSet de Cliente.</param> public override void Actualizar(Cliente cliente, Core.Modelo.Usuarios.Usuario Usuario, List <Core.Datos.IDbContext> listaContextos) { foreach (var cntxt in listaContextos) { //obtengo al cliente como esta guardado en la base de datos var actualizar = cntxt.BuscarPorId <Cliente>(cliente.Id, CargarRelaciones.CargarTodo); if (actualizar != null) { #region Especial - Zona Logistica debe ser por defecto el primer elemento de la lista RutaDeVenta. if (cliente.ZonaLogistica == null) { var primerRuta = cliente.RutasDeVenta.FirstOrDefault(); if (primerRuta != null) { var codigoZonaLogABuscar = primerRuta.Codigo; var zonaLog = cntxt.Set <ZonaLogistica>().FirstOrDefault(p => p.Codigo.Equals(codigoZonaLogABuscar)); if (zonaLog != null) { cliente.ZonaLogisticaId = zonaLog.Id; } } } else { cliente.ZonaLogisticaId = SetearFk(cliente, "ZonaLogistica"); } #endregion if (cliente.DatosOld != null) { //cliente.DatosOld.ZonaLogisticaId = SetearFk(cliente.DatosOld, "ZonaLogistica"); //cliente.DatosOld.ZonaGeograficaId = SetearFk(cliente.DatosOld, "ZonaGeografica"); cliente.DatosOld.RutaDeVentaId = SetearFk(cliente.DatosOld, "RutaDeVenta"); cliente.DatosOld.ListaDePrecioId = SetearFk(cliente.DatosOld, "ListaDePreciosDeVenta"); } if (cliente.Domicilio != null) { cliente.Domicilio.CalleId = SetearFk(cliente.Domicilio, "Calle"); } if (cliente.LugarEntrega != null) { cliente.LugarEntrega.CalleId = SetearFk(cliente.LugarEntrega, "Calle"); } //actualizo fk //cliente.ZonaLogisticaId = SetearFk(cliente, "ZonaLogistica"); cliente.ZonaGeograficaId = SetearFk(cliente, "ZonaGeografica"); cliente.LocalidadId = SetearFk(cliente, "Localidad"); cliente.LocalidadDeEntregaId = SetearFk(cliente, "LocalidadDeEntrega"); cliente.ProvinciaId = SetearFk(cliente, "Provincia"); cliente.RamoId = SetearFk(cliente, "Ramo"); cliente.CuentaPadreId = SetearFk(cliente, "CuentaPadre"); #region Listas ActualizarColeccionMuchosAMuchos <GrupoCliente>(actualizar.GrupoDinamico, cliente.GrupoDinamico, cntxt); //funciona Action <RutaDeVenta> setFkRutaDeVenta = r => { //r.DivisionId = this.SetearFk(r, "Division"); r.RegionDeVentaId = this.SetearFk(r, "RegionDeVenta"); r.SuplenteId = this.SetearFk(r, "Suplente"); r.TitularId = this.SetearFk(r, "Titular"); }; ActualizarColeccionMuchosAMuchos <RutaDeVenta>(actualizar.RutasDeVenta, cliente.RutasDeVenta, cntxt, setFkRutaDeVenta); //funciona ActualizarColeccionUnoAMuchos <Telefono>(actualizar.Telefonos, cliente.Telefonos, cntxt); ActualizarColeccionUnoAMuchos <ObservacionCliente>(actualizar.ObservacionCliente, cliente.ObservacionCliente, cntxt); ActualizarColeccionUnoAMuchos <ObservacionCliente>(actualizar.ObservacionClienteLogistica, cliente.ObservacionClienteLogistica, cntxt); Action <TarjetaMayoristaItem> setFkTarjetasCliente = t => { t.TipoTarjetaId = this.SetearFk(t, "TipoTarjeta"); }; ActualizarColeccionUnoAMuchos <TarjetaMayoristaItem>(actualizar.TarjetasCliente, cliente.TarjetasCliente, cntxt, setFkTarjetasCliente); //no funciona #endregion SetearValores(cliente, actualizar, cntxt); SetearValores(cliente.Domicilio, actualizar.Domicilio, cntxt); SetearValores(cliente.LugarEntrega, actualizar.LugarEntrega, cntxt); SetearValores(cliente.DatosOld, actualizar.DatosOld, cntxt); Action <ConfiguraCredito> setFkConfiguraCredito = cc => { cc.CobradorId = SetearFk(cc, "Cobrador"); cc.CondicionDePagoId = SetearFk(cc, "CondicionDePago"); cc.CondicionDePago2Id = SetearFk(cc, "CondicionDePago2"); cc.VendedorId = SetearFk(cc, "Vendedor"); cc.VendedorEspecialId = SetearFk(cc, "VendedorEspecial"); }; ActualizarColeccionUnoAMuchos <ConfiguraCredito>(actualizar.ConfiguraCreditos, cliente.ConfiguraCreditos, cntxt, setFkConfiguraCredito); if (Usuario != null) { cntxt.insertaAuditoria <Cliente>(actualizar, Accion.Modifica, Usuario); } cntxt.SaveChanges(); } } }
public override void Insertar(TarjetaClienteMayorista tarjetaClienteMayorista, Core.Modelo.Usuarios.Usuario Usuario, List <Core.Datos.IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { tarjetaClienteMayorista.HeredaId = this.SetearFk(tarjetaClienteMayorista, "Hereda"); if (tarjetaClienteMayorista.Ramos.Count > 0) { foreach (var ramo in tarjetaClienteMayorista.Ramos) { ramo.CanalId = this.SetearFk(ramo, "Canal"); ramo.TarjetaId = this.SetearFk(ramo, "Tarjeta"); if (ramo.Id == 0) { cntxt.Entry <Ramo>(ramo).State = EntityState.Added; } else { cntxt.Set <Ramo>().Attach(ramo); } } } cntxt.Set <TarjetaClienteMayorista>().Add(tarjetaClienteMayorista); if (Usuario != null) { cntxt.insertaAuditoria <TarjetaClienteMayorista>(tarjetaClienteMayorista, Accion.Agrega, Usuario); } cntxt.SaveChanges(); }); }
public override void Insertar(DocumentoCompra doc, Core.Modelo.Usuarios.Usuario Usuario, List <IDbContext> listaContextos) { listaContextos.ForEach(cntxt => { //carga local de las propiedades FK para que no se dupliquen al momento de grabar. if (doc.MovimientoBancario != null) { doc.MovimientoBancario.ConceptoMovimientoBancarioId = this.SetearFk(doc.MovimientoBancario, "ConceptoMovimientoBancario"); } if (doc.CuentaBancaria != null) { doc.CuentaBancaria.BancoId = this.SetearFk(doc.CuentaBancaria, "Banco"); } doc.AutorizaId = SetearFk(doc, "Autoriza"); doc.ProveedorId = SetearFk(doc, "Proveedor"); //carga las propiedades de listas if (doc.DocumentosAsociados.Count > 0) { foreach (var docAsoc in doc.DocumentosAsociados) { docAsoc.ProveedorId = this.SetearFk(docAsoc, "Proveedor"); if (docAsoc.Id == 0) { cntxt.Entry <DocumentoProveedor>(docAsoc).State = EntityState.Added; } else { cntxt.Set <DocumentoProveedor>().Attach(docAsoc); } } } if (doc.ItemsConceptos.Count > 0) { foreach (var item in doc.ItemsConceptos) { item.ConceptoId = this.SetearFk(item, "Concepto"); if (item.Id == 0) { cntxt.Entry <ItemsConceptos>(item).State = EntityState.Added; } else { cntxt.Set <ItemsConceptos>().Attach(item); } } } if (doc.NotasPendientes.Count > 0) { foreach (var nota in doc.NotasPendientes) { nota.AutorizaId = this.SetearFk(nota, "Autoriza"); nota.ProveedorId = this.SetearFk(nota, "Proveedor"); if (nota.Id == 0) { cntxt.Entry <NotaPendiente>(nota).State = EntityState.Added; } else { cntxt.Set <NotaPendiente>().Attach(nota); } } } cntxt.Set <DocumentoCompra>().Add(doc); if (Usuario != null) { cntxt.insertaAuditoria <DocumentoCompra>(doc, Accion.Agrega, Usuario); } cntxt.SaveChanges(); } ); }
public override void Actualizar(RutaDeVenta ruta, Core.Modelo.Usuarios.Usuario Usuario, List<Core.Datos.IDbContext> listaContextos) { foreach (var cntxt in listaContextos) { var actualizar = cntxt.BuscarPorId<RutaDeVenta>(ruta.Id, Core.CargarRelaciones.CargarTodo); //var actualizar = cntxt.Consultar<RutaDeVenta>(Core.CargarRelaciones.NoCargarNada).Include("Clientes").FirstOrDefault(r => r.Id == ruta.Id); if (actualizar != null) { //ruta.DivisionId = this.SetearFk(ruta, "Division"); ruta.RegionDeVentaId = this.SetearFk(ruta, "RegionDeVenta"); ruta.SuplenteId = this.SetearFk(ruta, "Suplente"); ruta.TitularId = this.SetearFk(ruta, "Titular"); Action<Cliente> setFkClientes = c => { if (c.DatosOld != null) { //c.DatosOld.ZonaGeograficaId = this.SetearFk(c.DatosOld, "ZonaGeografica"); c.DatosOld.RutaDeVentaId = this.SetearFk(c.DatosOld, "RutaDeVenta"); c.DatosOld.ListaDePrecioId = this.SetearFk(c.DatosOld, "ListaDePreciosDeVenta"); } if (c.Domicilio != null) { c.Domicilio.CalleId = this.SetearFk(c.Domicilio, "Calle"); } if (c.LugarEntrega != null) { c.LugarEntrega.CalleId = this.SetearFk(c.LugarEntrega, "Calle"); } c.LocalidadDeEntregaId = this.SetearFk(c, "LocalidadDeEntrega"); c.LocalidadId = this.SetearFk(c, "Localidad"); c.ProvinciaId = this.SetearFk(c, "Provincia"); c.RamoId = this.SetearFk(c, "Ramo"); c.ZonaGeograficaId = this.SetearFk(c, "ZonaGeografica"); c.ZonaLogisticaId = this.SetearFk(c, "ZonaLogistica"); foreach (var item in c.ConfiguraCreditos) { item.CobradorId = this.SetearFk(item, "Cobrador"); item.VendedorId = this.SetearFk(item, "Vendedor"); item.VendedorEspecialId = this.SetearFk(item, "VendedorEspecial"); item.CondicionDePagoId = this.SetearFk(item, "CondicionDePago"); item.CondicionDePago2Id = this.SetearFk(item, "CondicionDePago2"); } foreach (var item in c.RutasDeVenta) { //item.DivisionId = this.SetearFk(item, "Division"); item.RegionDeVentaId = this.SetearFk(item, "RegionDeVenta"); item.SuplenteId = this.SetearFk(item, "Suplente"); item.TitularId = this.SetearFk(item, "Titular"); } }; ActualizarColeccionMuchosAMuchos<Cliente>(actualizar.Clientes, ruta.Clientes, cntxt, setFkClientes); if (ruta.Vertices != null && ruta.Vertices.Count > 0) ActualizarColeccionUnoAMuchos<Coordenada>(actualizar.Vertices, ruta.Vertices, cntxt); else ActualizarColeccionUnoAMuchos<Coordenada>(actualizar.Vertices, actualizar.Vertices, cntxt); //no necesito actualizar las coordenadas de los vertices porque las cargo desde el kml! SetearValores(ruta, actualizar, cntxt); SetearValores(ruta.DatosOld, actualizar.DatosOld, cntxt); if (Usuario != null) cntxt.insertaAuditoria<RutaDeVenta>(actualizar, Accion.Modifica, Usuario); cntxt.SaveChanges(); } } }
public override void Eliminar(Proveedor proveedor, Core.Modelo.Usuarios.Usuario usuario, Core.Datos.IDbContext cntxt) { using (var transaccion = cntxt.EmpezarTransaccion()) { try { foreach (var tel in proveedor.Telefonos) //ModelBuilder no se encarga { cntxt.Entry <Telefono>(tel).State = EntityState.Deleted; } foreach (var obs in proveedor.Observaciones) { cntxt.Entry <ObservacionProveedor>(obs).State = EntityState.Deleted; } foreach (var contacto in proveedor.Contactos) { foreach (var tel in contacto.Telefonos) { cntxt.Entry <Telefono>(tel).State = EntityState.Deleted; } if (contacto.Domicilio != null) { if (contacto.Domicilio.Id > 0) { this.AgregarAListaParaBorrar(contacto.Domicilio); } } } foreach (var prontoPago in proveedor.ProntoPago) { //if (prontoPago.Id > 0) // this.AgregarAListaParaBorrar(prontoPago); cntxt.Entry <ProntoPago>(prontoPago).State = EntityState.Deleted; } cntxt.SaveChanges(); //para borrar las listas 1-* this.AgregarAListaParaBorrar(proveedor.DatosOld); //if (proveedor.Domicilio != null) // if (proveedor.Domicilio.Id > 0) // this.AgregarAListaParaBorrar(proveedor.Domicilio); var provParaBorrar = cntxt.BuscarPorId <Proveedor>(proveedor.Id, Core.CargarRelaciones.NoCargarNada); cntxt.Entry <Proveedor>(provParaBorrar).State = EntityState.Deleted; cntxt.SaveChanges(); this.EliminarGrafo(cntxt); cntxt.insertaAuditoria <Proveedor>(proveedor, Accion.Elimina, usuario); //este metodo lo invoca el Borrar del DbContext en el GrabadorGenerico transaccion.Commit(); } catch (Exception ex) { transaccion.Rollback(); } } }
protected override void CargarDatos(Core.Modelo.Usuarios.Usuario Entidad) { }