Exemplo n.º 1
0
 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
     });
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        ///////////////////////////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;
            }
        }
Exemplo n.º 4
0
 public bool Delete(TbPrTraslado domain)
 {
     return(repository.Delete(domain));
 }
Exemplo n.º 5
0
 public TbPrTraslado Update(TbPrTraslado domain)
 {
     return(repository.Update(domain));
 }
Exemplo n.º 6
0
 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 });
                    }

                }

            }

        }