public TrasladoViewModel DomainToViewModel(TbPrTraslado domain) { return(new TrasladoViewModel { TrasladoInventarioDetalle = AIDomainToViewModel(domain.TbPrTrasladoInventario), IdTraslado = domain.IdTraslado, IdUsuario = domain.IdUsuario, IdBodegaOrigen = domain.IdBodegaOrigen, IdBodegaDestino = domain.IdBodegaDestino, Fecha = domain.Fecha, FechaCreacion = domain.FechaCreacion, Anulado = domain.Anulado, CostoTraslado = domain.CostoTraslado, Comentario = domain.Comentario }); }
public TbPrTraslado ViewModelToDomain(TrasladoViewModel viewModel) { var domain = new TbPrTraslado { IdTraslado = viewModel.IdTraslado, IdUsuario = viewModel.IdUsuario, IdBodegaOrigen = viewModel.IdBodegaOrigen, IdBodegaDestino = viewModel.IdBodegaDestino, Fecha = viewModel.Fecha, FechaCreacion = viewModel.FechaCreacion, Anulado = viewModel.Anulado, CostoTraslado = viewModel.CostoTraslado, Comentario = viewModel.Comentario }; return(domain); }
///////////////////////////traslado public bool CreateKardexTRI(TbPrTraslado cambios, TbPrTraslado original, IList <long> eliminados) { if (cambios.TbPrTrasladoInventario.Count() == 0 || cambios == null) { return(false); } var kardex = new List <TbPrKardex>(); foreach (var item in cambios.TbPrTrasladoInventario) { //agrega la entrada var kOrigen = new TbPrKardex { IdInventario = item.IdInventario, IdDocumento = cambios.IdTraslado, TipoDocumento = "TRE", Fecha = DateTime.Now, ExistAnt = 0, CantidadMov = 0, ExistAct = 0, PrecioUnit = item.PrecioUnitario, CostoMov = 0, IdMoneda = 1, IdBodegaOrigen = cambios.IdBodegaOrigen, IdBodegaDestino = cambios.IdBodegaDestino, ExistAntBod = 0, ExistActBod = 0, Observaciones = cambios.Comentario, CostoPromedio = 0, SaldoFinal = 0, PrecioPromedio = 0, IdUsuario = cambios.IdUsuario }; var kDestino = new TbPrKardex { IdInventario = item.IdInventario, IdDocumento = cambios.IdTraslado, TipoDocumento = "TRS", Fecha = DateTime.Now, ExistAnt = 0, CantidadMov = 0,// true d +2 ExistAct = 0, PrecioUnit = item.PrecioUnitario, CostoMov = 0, IdMoneda = 1, IdBodegaOrigen = cambios.IdBodegaDestino, IdBodegaDestino = cambios.IdBodegaOrigen, ExistAntBod = 0, ExistActBod = 0, Observaciones = cambios.Comentario, CostoPromedio = 0, SaldoFinal = 0, PrecioPromedio = 0, IdUsuario = cambios.IdUsuario }; bool isDeleted = eliminados.Contains(item.Id); if (cambios.Anulado == true) //anulo { kOrigen.CantidadMov = item.Cantidad; kDestino.CantidadMov = item.Cantidad * -1; kardex.Add(kDestino); kardex.Add(kOrigen); } else { if (item.Id <= 0 || original == null) //inserto { kOrigen.CantidadMov = item.Cantidad * -1; kDestino.CantidadMov = item.Cantidad; kardex.Add(kDestino); kardex.Add(kOrigen); } else { if (isDeleted) { kOrigen.CantidadMov = item.Cantidad; kDestino.CantidadMov = item.Cantidad * -1; kardex.Add(kDestino); kardex.Add(kOrigen); } else { var lineaVieja = original.TbPrTrasladoInventario.FirstOrDefault(a => a.Id == item.Id); if (lineaVieja.CostoTotal != item.CostoTotal || lineaVieja.Cantidad != item.Cantidad) { kOrigen.CantidadMov = lineaVieja.Cantidad; kOrigen.PrecioUnit = lineaVieja.PrecioUnitario; kDestino.CantidadMov = lineaVieja.Cantidad * -1; kardex.Add(kDestino); kardex.Add(kOrigen); var kOrigenN = new TbPrKardex { IdInventario = item.IdInventario, IdDocumento = cambios.IdTraslado, TipoDocumento = "TRE", Fecha = DateTime.Now, ExistAnt = 0, CantidadMov = item.Cantidad * -1, ExistAct = 0, PrecioUnit = item.PrecioUnitario, CostoMov = 0, IdMoneda = 1, IdBodegaOrigen = cambios.IdBodegaOrigen, IdBodegaDestino = cambios.IdBodegaDestino, ExistAntBod = 0, ExistActBod = 0, Observaciones = cambios.Comentario, CostoPromedio = 0, SaldoFinal = 0, PrecioPromedio = 0, IdUsuario = cambios.IdUsuario }; var kDestinoN = new TbPrKardex { IdInventario = item.IdInventario, IdDocumento = cambios.IdTraslado, TipoDocumento = "TRS", Fecha = DateTime.Now, ExistAnt = 0, CantidadMov = item.Cantidad,// true d +2 ExistAct = 0, PrecioUnit = item.PrecioUnitario, CostoMov = 0, IdMoneda = 1, IdBodegaOrigen = cambios.IdBodegaDestino, IdBodegaDestino = cambios.IdBodegaOrigen, ExistAntBod = 0, ExistActBod = 0, Observaciones = cambios.Comentario, CostoPromedio = 0, SaldoFinal = 0, PrecioPromedio = 0, IdUsuario = cambios.IdUsuario }; kardex.Add(kDestinoN); kardex.Add(kOrigenN); } } } } } if (original != null) { foreach (var item in original.TbPrTrasladoInventario) { bool isDeleted = eliminados.Contains(item.Id); if (isDeleted) { //agrega la entrada var kOrigen = new TbPrKardex { IdInventario = item.IdInventario, IdDocumento = cambios.IdTraslado, TipoDocumento = "TRE", Fecha = DateTime.Now, ExistAnt = 0, CantidadMov = 0, ExistAct = 0, PrecioUnit = item.PrecioUnitario, CostoMov = 0, IdMoneda = 1, IdBodegaOrigen = cambios.IdBodegaOrigen, IdBodegaDestino = cambios.IdBodegaDestino, ExistAntBod = 0, ExistActBod = 0, Observaciones = cambios.Comentario, CostoPromedio = 0, SaldoFinal = 0, PrecioPromedio = 0, IdUsuario = cambios.IdUsuario }; var kDestino = new TbPrKardex { IdInventario = item.IdInventario, IdDocumento = cambios.IdTraslado, TipoDocumento = "TRS", Fecha = DateTime.Now, ExistAnt = 0, CantidadMov = 0,// true d +2 ExistAct = 0, PrecioUnit = item.PrecioUnitario, CostoMov = 0, IdMoneda = 1, IdBodegaOrigen = cambios.IdBodegaDestino, IdBodegaDestino = cambios.IdBodegaOrigen, ExistAntBod = 0, ExistActBod = 0, Observaciones = cambios.Comentario, CostoPromedio = 0, SaldoFinal = 0, PrecioPromedio = 0, IdUsuario = cambios.IdUsuario }; kOrigen.CantidadMov = item.Cantidad; kDestino.CantidadMov = item.Cantidad * -1; kardex.Add(kDestino); kardex.Add(kOrigen); } } } try { service.SaveAll(kardex); return(true); } catch (Exception ex) { AltivaLog.Log.Insertar(ex.ToString(), "Error"); throw; } }
public bool Delete(TbPrTraslado domain) { return(repository.Delete(domain)); }
public TbPrTraslado Update(TbPrTraslado domain) { return(repository.Update(domain)); }
public TbPrTraslado Save(TbPrTraslado domain) { return(repository.Save(domain)); }
public ActionResult CrearEditarTraslado(TrasladoViewModel traslado, IList<TrasladoInventarioViewModel> inventarioTraslado, IList<long> eliminados) { TrasladoInventarioRepository rep = new TrasladoInventarioRepository(context); TbPrTraslado original = trasladoService.GetTrasladoById(traslado.IdTraslado); //adquiere todos los hijos asociados TbPrTraslado tr; Microsoft.EntityFrameworkCore.Storage.IDbContextTransaction trans = context.Database.BeginTransaction(); using (trans) { try { if (traslado.Comentario == null) { traslado.Comentario = ""; } if (traslado.IdTraslado != 0) { tr = trasladoService.GetTrasladoById(traslado.IdTraslado); if (inventarioTraslado.Count() > 0)//nuevas y editadas { foreach (var item in inventarioTraslado) { if (item.Id == 0) { tr.TbPrTrasladoInventario.Add(trasladoInventarioMap.ViewModelToDomain(item));//adquiere los hijos } else { tr.TbPrTrasladoInventario.FirstOrDefault(d => d.Id == item.Id).Id = item.Id; tr.TbPrTrasladoInventario.FirstOrDefault(d => d.Id == item.Id).IdTraslado = item.IdTraslado; tr.TbPrTrasladoInventario.FirstOrDefault(d => d.Id == item.Id).IdInventario = item.IdInventario; tr.TbPrTrasladoInventario.FirstOrDefault(d => d.Id == item.Id).CodigoArticulo = item.CodigoArticulo; tr.TbPrTrasladoInventario.FirstOrDefault(d => d.Id == item.Id).Descripcion = item.Descripcion; tr.TbPrTrasladoInventario.FirstOrDefault(d => d.Id == item.Id).Cantidad = item.Cantidad; tr.TbPrTrasladoInventario.FirstOrDefault(d => d.Id == item.Id).PrecioUnitario = item.PrecioUnitario; tr.TbPrTrasladoInventario.FirstOrDefault(d => d.Id == item.Id).CostoTotal = item.CostoTotal; } } } if (eliminados.Count() > 0) { var borrar = new List<TbPrTrasladoInventario>(); foreach (var item in eliminados) { borrar.Add(tr.TbPrTrasladoInventario.Where(f => f.Id == item).ElementAt(0)); tr.TbPrTrasladoInventario.Remove(tr.TbPrTrasladoInventario.Where(f => f.Id == item).ElementAt(0)); } context.RemoveRange(borrar); context.SaveChanges(); } tr.Comentario = traslado.Comentario; tr.CostoTraslado = traslado.CostoTraslado; tr.Fecha = traslado.Fecha; tr.Anulado = traslado.Anulado; context.Update(tr); kardexMap.CreateKardexTRI(tr,original, eliminados); context.SaveChanges(); } else { traslado.TrasladoInventarioDetalle = inventarioTraslado; traslado.IdUsuario = int.Parse(User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value); //adquiere el id del usuario en session traslado.FechaCreacion = DateTime.Now; //adquiere la fecha traslado.Anulado = false;//por defecto false tr = trasladoMap.ViewModelToDomain(traslado);//obtiene al padre foreach (var item in inventarioTraslado) { tr.TbPrTrasladoInventario.Add(trasladoInventarioMap.ViewModelToDomain(item));//adquiere los hijos } context.Add(tr); context.SaveChanges(); kardexMap.CreateKardexTRI(tr, original, eliminados);//inserta en el kardex } trans.Commit(); return Json(new { success = true }); } catch (Exception ex) { trans.Rollback(); AltivaLog.Log.Insertar(ex.ToString(), "Error"); if (ex.HResult.ToString() == "-2146233088") { return BadRequest(new { rollback = true }); } else { return BadRequest(new { rollback = false }); } } } }