Exemple #1
0
        public TbPrAjuste AjustarInventario(long id)
        {
            var toma = service.GetTomaByIDCompleto(id);

            //anula las tomas borrador para evitar duplicaion de datos
            service.AnularTomasBorrador(id);

            var    detalle  = CrearDetalleAjuste(toma.TbPrTomaDetalle.ToList());
            double entradas = GetTotalMovimiento(detalle, true);
            double salidas  = GetTotalMovimiento(detalle, false);
            var    am       = new TbPrAjuste
            {
                Anulada              = false,
                Descripcion          = _lb["generadoPorTF"] + " " + toma.Id,
                IdBodega             = toma.IdBodega,
                IdBodegaNavigation   = toma.IdBodegaNavigation,
                FechaCreacion        = toma.FechaCreacion,
                IdUsuario            = toma.IdUsuarioCreacion,
                SaldoAjuste          = entradas - salidas,
                TbPrAjusteInventario = detalle,
                FechaDocumento       = toma.FechaToma,
                TotalEntrada         = entradas,
                TotalSalida          = salidas
            };

            return(ajusteService.Save(am));
        }
        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);
        }
 public AjusteViewModel DomainToViewModel(TbPrAjuste domain)
 {
     return(new AjusteViewModel
     {
         AjusteInventario = AIDomainToViewModel(domain.TbPrAjusteInventario),
         Id = domain.Id,
         Anulada = domain.Anulada,
         IdBodega = domain.IdBodega,
         IdUsuario = domain.IdUsuario,
         SaldoAjuste = domain.SaldoAjuste,
         TotalEntrada = domain.TotalEntrada,
         TotalSalida = domain.TotalSalida,
         Descripcion = domain.Descripcion,
         FechaDocumento = domain.FechaDocumento,
         FechaCreacion = domain.FechaCreacion
     });
 }
Exemple #4
0
 private bool ExisteAjusteInventario(TbPrAjuste ajuste, int aiId)
 {
     if (ajuste != null)
     {
         var flag = false;
         foreach (var item in ajuste.TbPrAjusteInventario)
         {
             if (item.Id == aiId)
             {
                 flag = true;
                 break;
             }
         }
         return(flag);
     }
     else
     {
         return(false);
     }
 }
Exemple #5
0
        public bool CreateKardexAM(TbPrAjuste domain, int idAjuste)
        {
            var flag = true;
            //var domain = ajusteService.GetAjusteById(idAjuste);
            var kardex = new List <TbPrKardex>();

            /////averiguar que hacer si se eliminar una linea, restar si es entrada y sumar si es salida
            ///debe procesar la linea eliminada y despues guardar el kardex


            foreach (var item in domain.TbPrAjusteInventario)
            {
                var    k           = new TbPrKardex();
                double existencia  = 0;
                double existenciaB = 0;

                if (domain.Anulada)
                {
                    if (item.Movimiento)
                    {
                        item.Movimiento = false;
                    }
                    else
                    {
                        item.Movimiento = true;
                    }
                }

                if (item.Movimiento)
                {
                    existencia    = item.IdInventarioNavigation.ExistenciaGeneral + item.Cantidad;                                                                        //domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == true && i.IdInventario == item.IdInventario).Cantidad;
                    existenciaB   = item.IdInventarioNavigation.TbPrInventarioBodega.FirstOrDefault(i => i.IdBodega == domain.IdBodega).ExistenciaBodega + item.Cantidad; //domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == true && i.IdInventario == item.IdInventario).Cantidad;
                    k.CantidadMov = item.Cantidad;
                }
                else
                {
                    existencia    = item.IdInventarioNavigation.ExistenciaGeneral - item.Cantidad;                                                                        //domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == false && i.IdInventario == item.IdInventario).Cantidad;
                    existenciaB   = item.IdInventarioNavigation.TbPrInventarioBodega.FirstOrDefault(i => i.IdBodega == domain.IdBodega).ExistenciaBodega - item.Cantidad; //domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == false && i.IdInventario == item.IdInventario).Cantidad;
                    k.CantidadMov = item.Cantidad * -1;
                }

                if (existencia < 0 || existenciaB < 0)
                {
                    flag = false;
                    break;
                }


                k.CostoMov        = item.TotalMovimiento;
                k.CostoPromedio   = item.CostoPromedio;
                k.ExistAct        = existencia;
                k.ExistActBod     = existenciaB;
                k.ExistAnt        = item.IdInventarioNavigation.ExistenciaGeneral;
                k.ExistAntBod     = item.IdInventarioNavigation.TbPrInventarioBodega.FirstOrDefault(i => i.IdBodega == domain.IdBodega).ExistenciaBodega;
                k.Fecha           = DateTime.Now;
                k.IdBodegaDestino = domain.IdBodega;
                k.IdBodegaOrigen  = domain.IdBodega;
                k.IdDocumento     = domain.Id;
                k.IdInventario    = item.IdInventario;
                k.IdMoneda        = 1;
                k.IdUsuario       = domain.IdUsuario;
                k.Observaciones   = domain.Descripcion;
                k.PrecioPromedio  = 0;//item.CostoPromedio;
                k.PrecioUnit      = item.CostoPromedio;
                k.SaldoFinal      = item.CostoPromedio * existenciaB;
                k.TipoDocumento   = "AM";


                kardex.Add(k);
            }

            if (flag)
            {
                service.SaveAll(kardex);
            }

            return(flag);
        }
Exemple #6
0
        public bool CreateKardexDeletedAM(TbPrAjuste domain)
        {
            var flag   = true;
            var kardex = new List <TbPrKardex>();


            foreach (var item in domain.TbPrAjusteInventario)
            {
                var    k           = new TbPrKardex();
                double existencia  = 0;
                double existenciaB = 0;

                if (item.Movimiento)
                {
                    existencia    = item.IdInventarioNavigation.ExistenciaGeneral - domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == true && i.IdInventario == item.IdInventario).Cantidad;
                    existenciaB   = item.IdInventarioNavigation.TbPrInventarioBodega.FirstOrDefault(i => i.IdBodega == domain.IdBodega).ExistenciaBodega - domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == true && i.IdInventario == item.IdInventario).Cantidad;
                    k.CantidadMov = item.Cantidad * -1;
                }
                else
                {
                    existencia    = item.IdInventarioNavigation.ExistenciaGeneral + domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == false && i.IdInventario == item.IdInventario).Cantidad;
                    existenciaB   = item.IdInventarioNavigation.TbPrInventarioBodega.FirstOrDefault(i => i.IdBodega == domain.IdBodega).ExistenciaBodega + domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == false && i.IdInventario == item.IdInventario).Cantidad;
                    k.CantidadMov = item.Cantidad;
                }

                if (existencia < 0 || existenciaB < 0)
                {
                    flag = false;
                    break;
                }

                k.CostoMov        = item.TotalMovimiento;
                k.CostoPromedio   = 0;//item.CostoPromedio;
                k.ExistAct        = existencia;
                k.ExistActBod     = existenciaB;
                k.ExistAnt        = item.IdInventarioNavigation.ExistenciaGeneral;
                k.ExistAntBod     = item.IdInventarioNavigation.TbPrInventarioBodega.FirstOrDefault(i => i.IdBodega == domain.IdBodega).ExistenciaBodega;
                k.Fecha           = DateTime.Now;
                k.IdBodegaDestino = domain.IdBodega;
                k.IdBodegaOrigen  = domain.IdBodega;
                k.IdDocumento     = domain.Id;
                k.IdInventario    = item.IdInventario;
                k.IdMoneda        = 1;
                k.IdUsuario       = domain.IdUsuario;
                k.Observaciones   = domain.Descripcion;
                k.PrecioPromedio  = 0;
                k.PrecioUnit      = item.CostoPromedio;
                k.SaldoFinal      = 0;//item.CostoPromedio * existenciaB,
                k.TipoDocumento   = "AM";


                kardex.Add(k);
            }



            if (flag)
            {
                service.SaveAll(kardex);
            }

            return(flag);
        }
 public bool Delete(TbPrAjuste domain)
 {
     return(repository.Delete(domain));
 }
 public TbPrAjuste Update(TbPrAjuste domain)
 {
     return(repository.Update(domain));
 }
 public TbPrAjuste Save(TbPrAjuste domain)
 {
     return(repository.Save(domain));
 }