Example #1
0
        public TbPrAjuste ViewModelToDomain(AjusteViewModel viewModel)
        {
            var domain = new TbPrAjuste
            {
                Id                   = viewModel.Id,
                Anulada              = viewModel.Anulada,
                IdBodega             = viewModel.IdBodega,
                FechaDocumento       = viewModel.FechaDocumento,
                IdUsuario            = viewModel.IdUsuario,
                SaldoAjuste          = viewModel.SaldoAjuste,
                TotalEntrada         = viewModel.TotalEntrada,
                TotalSalida          = viewModel.TotalSalida,
                TbPrAjusteInventario = AIViewModelToDomain(viewModel.AjusteInventario),
                Descripcion          = viewModel.Descripcion,
                //FechaCreacion = viewModel.FechaCreacion
            };

            if (viewModel.Id < 1)
            {
                domain.FechaCreacion = DateTime.Now;
            }
            else
            {
                domain.FechaCreacion = viewModel.FechaCreacion;
            }


            return(domain);
        }
Example #2
0
        public TbPrAjuste ViewModelToDomainEditar(AjusteViewModel viewModel)
        {
            var ajuste = service.GetAjusteById((int)viewModel.Id);


            ajuste.Anulada        = viewModel.Anulada;
            ajuste.IdBodega       = viewModel.IdBodega;
            ajuste.FechaDocumento = viewModel.FechaDocumento;
            ajuste.IdUsuario      = viewModel.IdUsuario;
            ajuste.SaldoAjuste    = viewModel.SaldoAjuste;
            ajuste.TotalEntrada   = viewModel.TotalEntrada;
            ajuste.TotalSalida    = viewModel.TotalSalida;
            //TbPrAjusteInventario = AIViewModelToDomain(viewModel.AjusteInventario),
            ajuste.Descripcion = viewModel.Descripcion;



            return(ajuste);
        }
Example #3
0
        public ActionResult CrearEditarAjuste(AjusteViewModel viewModel, IList <AjusteInventarioViewModel> detalle, IList <long> eliminadas)
        {
            try
            {
                if (viewModel.Id != 0)
                {
                    var ajuste = map.Update(viewModel);

                    var ajusteKardex = map.ViewModelToDomain(map.DomainToViewModel(ajuste));



                    if (detalle.Count() > 0 || eliminadas.Count() > 0)
                    {
                        IList <TbPrAjusteInventario> ajusteInventario = new List <TbPrAjusteInventario>();

                        //va a contener todos los id de los detalles eliminados, actualizados y creados para despues consultarlos con todos sus datos
                        IList <long> detallesId = new List <long>();

                        //va a contener solo los detalles creados
                        IList <long> delKardex = new List <long>();

                        if (eliminadas.Count() > 0)
                        {
                            foreach (var item in eliminadas)
                            {
                                detallesId.Add(item);
                                ///lista para revesar cambios en kardex
                                //delKardex.Add(item);
                            }
                        }



                        if (detalle.Count() > 0)
                        {
                            foreach (var item in detalle)
                            {
                                item.IdAjuste = ajuste.Id;
                                if (item.Id != 0)
                                {
                                    eliminadas.Add(item.Id);
                                    detallesId.Add(item.Id);
                                    item.Id = 0;
                                }
                            }

                            ajusteInventario = map.CreateOrUpdateAI(detalle);

                            foreach (var i in ajusteInventario)
                            {
                                delKardex.Add(i.Id);
                                detallesId.Add(i.Id);
                            }
                        }

                        if (detallesId.Count() > 0)
                        {
                            ////obtiene lineas con todos los datos para insertar en el kardex
                            var ajusteTemp = service.GetAjusteForKardex((int)ajuste.Id, detallesId);

                            if (detalle.Count() > 0)
                            {
                                ////lista sin lineas eliminadas .Where(d => idDetalles.Any(idD => idD == d.Id)).ToList(),
                                ///

                                ajusteKardex.TbPrAjusteInventario = ajusteTemp.TbPrAjusteInventario.Where(d => delKardex.Any(idD => idD == d.Id)).ToList();

                                var kardex = kardexMap.CreateKardexAM(ajusteKardex, (int)ajuste.Id);
                            }



                            if (eliminadas.Count() > 0)
                            {
                                ajusteKardex.TbPrAjusteInventario = ajusteTemp.TbPrAjusteInventario.Where(d => eliminadas.Any(id => id == d.Id)).ToList();
                                kardexMap.CreateKardexDeletedAM(ajusteKardex);

                                service.DeleteAjusteInventario(eliminadas);
                            }
                        }
                    }
                }
                else
                {
                    viewModel.IdUsuario     = int.Parse(User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value);
                    viewModel.FechaCreacion = DateTime.Now;
                    var ajuste = map.Create(viewModel);
                    foreach (var item in detalle)
                    {
                        item.IdAjuste = ajuste.Id;
                    }

                    ajuste.TbPrAjusteInventario = map.CreateOrUpdateAI(detalle);

                    ////obtiene lineas con todos los datos para insertar en el kardex
                    var ajusteKardex = service.GetAjusteForKardex((int)ajuste.Id, ajuste.TbPrAjusteInventario.Select(d => d.Id).ToList());
                    var kardex       = kardexMap.CreateKardexAM(ajusteKardex, (int)ajuste.Id);
                }
                return(Json(new { success = true }));
            }
            catch (Exception ex)
            {
                AltivaLog.Log.Insertar(ex.ToString(), "Error");
                throw;
            }
        }
Example #4
0
 public TbPrAjuste Update(AjusteViewModel viewModel)
 {
     return(service.Update(ViewModelToDomain(viewModel)));
 }
Example #5
0
 public TbPrAjuste Create(AjusteViewModel viewModel)
 {
     return(service.Save(ViewModelToDomain(viewModel)));
 }