public void SetPreferencia(TipoDocumentoImpresion tipoDocumento, Guid usuario,TipoPrivacidadDocumento tipoprivacidad,TipoReport tiporeport, string name, byte[] report,bool defecto=false) { using (var tran = Marfil.Inf.Genericos.Helper.TransactionScopeBuilder.CreateTransactionObject()) { var item = _db.DocumentosUsuario.SingleOrDefault(f => f.fkusuario == usuario && f.tipo == (int)tipoDocumento && f.nombre == name) ?? _db.DocumentosUsuario.Create(); item.fkusuario = usuario; item.tipo = (int)tipoDocumento; item.nombre = name; item.datos = report; item.tipoprivacidad = (int)tipoprivacidad; item.tiporeport = (int)tiporeport; _db.DocumentosUsuario.AddOrUpdate(item); _db.SaveChanges(); if (defecto && tiporeport==TipoReport.Report) { var service = new PreferenciasUsuarioService(_db); service.SetPreferencia(TiposPreferencias.DocumentoImpresionDefecto, usuario, tipoDocumento.ToString(), "Defecto", new PreferenciaDocumentoImpresionDefecto() { Name = name, Tipodocumento = tipoDocumento, Usuario = usuario }); } tran.Complete(); } }
public virtual void create(IModelView obj) { var newItem = _converterModel.CreatePersitance(obj); if (_validationService.ValidarGrabar(newItem)) { _db.Set <TPersistencia>().Add(newItem); try { _db.SaveChanges(); _converterModel.AsignaId(newItem, ref obj); } catch (DbEntityValidationException ex) { // Retrieve the error messages as a list of strings. var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Combine the original exception message with the new one. var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage); // Throw a new DbEntityValidationException with the improved exception message. throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors); } catch (DbUpdateException ex) { if (ex.InnerException != null && ex.InnerException.InnerException != null) { var inner = ex.InnerException.InnerException as SqlException; if (inner != null) { if (inner.Number == 2627 || inner.Number == 2601) { throw new ValidationException(General.ErrorRegistroExistente); } } } throw ex; } } }
public void CreateAdmin(string password) { using (var tran = TransactionScopeBuilder.CreateTransactionObject()) { if (!_db.Administrador.Any()) { if (string.IsNullOrEmpty(password)) { throw new ValidationException("El password no puede estar vacío"); } var item = _db.Administrador.Create(); item.password = password; _db.Administrador.Add(item); var usuarioAministrador = _db.Usuarios.Create(); usuarioAministrador.id = Guid.Empty; usuarioAministrador.usuario = ApplicationHelper.UsuariosAdministrador; usuarioAministrador.password = password; usuarioAministrador.nombre = ApplicationHelper.UsuariosAdministrador; _db.Usuarios.Add(usuarioAministrador); _db.SaveChanges(); tran.Complete(); } } }
public void GenerarMovimiento(IStockPieza model, TipoOperacionService tipooperacion, string ubicacionDestino = null) { using (var tran = Marfil.Inf.Genericos.Helper.TransactionScopeBuilder.CreateTransactionObject()) { //METEMOS EN LA TABLA MOVIMIENTOS DE STOCK DE LA BD EL MOVIMIENTO GENERADO GenerarMovimientostock(model, tipooperacion); //if (tipooperacion != TipoOperacionService.EntradaReclamacion && tipooperacion != TipoOperacionService.SalidaReclamacion) //{ //jmm var entrada = model as MovimientosstockModel; if (tipooperacion == TipoOperacionService.MovimientoAlmacen) { entrada.Tipomovimiento = TipoOperacionService.MovimientoAlmacen; entrada.Ubicaciondestino = Convert.ToInt32(ubicacionDestino); } else if (model is IKitStockPieza) { entrada.Tipomovimiento = TipoOperacionService.MovimientoKit; } else if (model is IBundleStockPieza) { entrada.Tipomovimiento = TipoOperacionService.MovimientoBundle; } var service = new StockService(_context, _db); service.GestionPieza(entrada); //} tran.Complete(); } _db.SaveChanges(); }
public void SetPreferencia(TiposPreferencias tipopreferencia, Guid usuario, string id, string name, object preferencia) { var item = _db.PreferenciasUsuario.SingleOrDefault(f => f.fkUsuario == usuario && f.tipo == (int)tipopreferencia && f.id == id && f.nombre == name) ?? _db.PreferenciasUsuario.Create(); item.fkUsuario = usuario; item.tipo = (int)tipopreferencia; item.id = id; item.nombre = name; item.xml = FPreferenciasUsuario.GetXmlPreferencia(tipopreferencia, preferencia); _db.PreferenciasUsuario.AddOrUpdate(item); _db.SaveChanges(); }
private void CreateUsuarioActivo(SecurityTicket model, MarfilEntities db) { try { var nuevoUsuarioActivo = db.Usuariosactivos.Create(); nuevoUsuarioActivo.fkusuarios = model.Id; nuevoUsuarioActivo.fechaconexion = DateTime.Now; nuevoUsuarioActivo.fechaultimaoperacion = DateTime.Now; nuevoUsuarioActivo.idconexion = Guid.NewGuid(); model.Idconexion = nuevoUsuarioActivo.idconexion; db.Usuariosactivos.Add(nuevoUsuarioActivo); db.SaveChanges(); } catch (Exception) { throw new UsuarioensuoException(string.Format("El usuario {0} ya está en uso.", model.Usuario)); } }
public void GestionPieza(MovimientosstockModel model) { if (model.Tipomovimiento == TipoOperacionService.InsertarRecepcionStock && !string.IsNullOrEmpty(model.Lote)) { if (_db.Stockactual.Any(f => f.empresa == model.Empresa && f.lote == model.Lote && f.loteid == model.Loteid)) { throw new ValidationException(string.Format(General.ErrorGenerarMovimientoStock, model.Lote, model.Loteid)); } _db.Stockactual.Add(CrearNuevaPieza(model)); } else if (model.Tipomovimiento == TipoOperacionService.InsertarRecepcionStock) { //Sin gestión de lote if (_db.Stockactual.Any(f => f.empresa == model.Empresa && f.fkarticulos == model.Fkarticulos)) { _db.Stockactual.AddOrUpdate(EditarPieza(model)); } else { _db.Stockactual.Add(CrearNuevaPieza(model)); } } else if (model.Tipomovimiento == TipoOperacionService.MovimientoRemedir || model.Tipomovimiento == TipoOperacionService.MovimientoAlmacen) { if (model.Tipomovimiento == TipoOperacionService.MovimientoAlmacen) { ValidarPerteneceKitOBundle(model); } var pieza = _db.Stockactual.Any(f => f.empresa == model.Empresa && f.lote == model.Lote && f.loteid == model.Loteid && f.fkarticulos == model.Fkarticulos && f.fkalmacenes == model.Fkalmacenes) ? EditarPieza(model) : null; if (pieza != null) { _db.Stockactual.AddOrUpdate(pieza); _db.SaveChanges(); } else { throw new ValidationException(string.Format("No se ha encontrado la pieza {0}{1} en el stock", string.IsNullOrEmpty(model.Lote) ? model.Fkarticulos : model.Lote, model.Loteid)); } } else if (model.Tipomovimiento == TipoOperacionService.EliminarCostes || model.Tipomovimiento == TipoOperacionService.InsertarCostes) { ModificarCostes(model); } else if (model.Tipomovimiento == TipoOperacionService.MovimientoBundle) { MovimientoBundle(model); } else if (model.Tipomovimiento == TipoOperacionService.MovimientoKit) { MovimientoKit(model); } else if (model.Tipomovimiento == TipoOperacionService.InsertarTraspasosalmacen || model.Tipomovimiento == TipoOperacionService.ActualizarTraspasosalmacen || model.Tipomovimiento == TipoOperacionService.EliminarTraspasosalmacen) { TraspasoAlmacen(model); } else if (model.Tipomovimiento == TipoOperacionService.ActualizarRecepcionStock) { ActualizarLineasRecepcion(model); } else { if (model.Tipomovimiento == TipoOperacionService.InsertarDevolucionEntregaStock || model.Tipomovimiento == TipoOperacionService.InsertarRecepcionStockDevolucion) { PermiteRealizarDevolucion(model); } //SI LA PIEZA ESTA EN STOCK ACTUAL, LA ACTUALIZAS en el historico, Y SI NO LA CREAS en el historico (EN LAS TRANSFORMACIONES AL FINALZIAR SE CREA LA PIEZA) var pieza = _db.Stockactual.Any(f => f.empresa == model.Empresa && f.lote == model.Lote && f.loteid == model.Loteid && f.fkarticulos == model.Fkarticulos && f.fkalmacenes == model.Fkalmacenes) ? EditarPieza(model) : CrearNuevaPieza(model); var actualizar = true; if (pieza.cantidadtotal <= 0)//(pieza.cantidaddisponible <= 0) { var articulosService = FService.Instance.GetService(typeof(ArticulosModel), _context, _db); var artObj = articulosService.get(model.Fkarticulos) as ArticulosModel; actualizar = artObj.Stocknegativoautorizado; } //ENTRA CUANDO FINALIZAS LA TRANSFORMACION if (actualizar) { _db.Stockactual.AddOrUpdate(pieza); } //ENTRA CUANDO CREAS LA TRANSFORMACION else if (_db.Stockactual.Any(f => f.empresa == model.Empresa && f.lote == model.Lote && f.loteid == model.Loteid && f.fkarticulos == model.Fkarticulos)) //almacen? { _db.Stockactual.Remove(pieza); } else { throw new ValidationException(string.Format("No se puede modificar la pieza {0}{1} porque ya no está en el stock", model.Lote, Funciones.RellenaCod(model.Loteid, 3))); } } }