Esempio n. 1
0
        public bool CreateKardexEliminarCD(TbPrCompra domain)
        {
            //var domain = compraService.GetCompraById(idCompra);
            var kardex = new List <TbPrKardex>();


            foreach (var item in domain.TbPrCompraDetalle)
            {
                var existAntBod = item.IdInventarioNavigation.TbPrInventarioBodega.FirstOrDefault(i => i.IdBodega == item.IdBodega).ExistenciaBodega;
                var existActBod = existAntBod - item.Cantidad;
                if (existActBod < 0)
                {
                    return(false);
                }

                var k = new TbPrKardex
                {
                    CantidadMov     = item.Cantidad * -1,
                    CostoPromedio   = 0,
                    CostoMov        = item.SubTotalExcentoBase + item.SubTotalGravadoBase,
                    Fecha           = DateTime.Now,
                    ExistAct        = 0,
                    ExistAnt        = 0,
                    ExistActBod     = 0,
                    ExistAntBod     = 0,
                    IdBodegaDestino = item.IdBodega,
                    IdBodegaOrigen  = item.IdBodega,
                    IdDocumento     = domain.Id,
                    IdUsuario       = domain.IdUsuario,
                    IdMoneda        = domain.IdMoneda,
                    Observaciones   = "N/A",
                    PrecioPromedio  = 0,
                    PrecioUnit      = item.PrecioUnitarioBase,
                    IdInventario    = item.IdInventario,
                    TipoDocumento   = "CD",
                    SaldoFinal      = 0
                };

                kardex.Add(k);
            }

            try
            {
                service.SaveAll(kardex);
                return(true);
            }
            catch (Exception ex)
            {
                AltivaLog.Log.Insertar(ex.ToString(), "Error");
                return(true);

                throw;
            }
        }
Esempio n. 2
0
        public bool CreateKardexCDSingle(int idCD)
        {
            var item = compraService.GetCompraDetalleById(idCD);


            var k = new TbPrKardex
            {
                CantidadMov     = item.Cantidad,
                CostoPromedio   = 0,
                CostoMov        = item.SubTotalExcentoBase + item.SubTotalGravadoBase,
                Fecha           = DateTime.Now,
                ExistAct        = 0,
                ExistAnt        = 0,
                ExistActBod     = 0,
                ExistAntBod     = 0,
                IdBodegaDestino = item.IdBodega,
                IdBodegaOrigen  = item.IdBodega,
                IdDocumento     = item.IdCompraNavigation.Id,
                IdUsuario       = item.IdCompraNavigation.IdUsuario,
                IdMoneda        = item.IdCompraNavigation.IdMoneda,
                Observaciones   = "N/A",
                PrecioPromedio  = 0,
                PrecioUnit      = item.PrecioUnitarioBase,
                IdInventario    = item.IdInventario,
                TipoDocumento   = "CD",
                SaldoFinal      = 0
            };



            try
            {
                service.Save(k);
                return(true);
            }
            catch (Exception ex)
            {
                AltivaLog.Log.Insertar(ex.ToString(), "Error");
                return(true);

                throw;
            }
        }
Esempio n. 3
0
 public TbPrKardex Update(TbPrKardex domain)
 {
     return(repository.Update(domain));
 }
Esempio n. 4
0
 public TbPrKardex Save(TbPrKardex domain)
 {
     return(repository.Save(domain));
 }
Esempio n. 5
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;
            }
        }
Esempio n. 6
0
        ///////////////////////////requisiciones
        ///
        public bool CreateKardexRD(IList <TbPrRequisicionDetalle> rq, bool isDeteled)
        {
            if (rq.Count() == 0 || rq == null)
            {
                return(false);
            }

            var domain = reqService.GetReqById((int)rq.First().IdRequisicion);
            var kardex = new List <TbPrKardex>();
            var cd     = new List <TbPrCompraDetalle>();

            double cantidad = 0;
            var    tipoDoc  = "REQ";

            if (domain.Anulado)
            {
                tipoDoc = "REA";
            }

            foreach (var item in rq)
            {
                cantidad = 0;
                if (isDeteled)
                {
                    cantidad = item.Cantidad;
                }
                else
                {
                    cantidad = item.Cantidad * -1;
                }



                var k = new TbPrKardex
                {
                    CantidadMov     = cantidad,
                    CostoPromedio   = 0,
                    CostoMov        = item.Total,
                    Fecha           = DateTime.Now,
                    ExistAct        = 0,
                    ExistAnt        = 0,
                    ExistActBod     = 0,
                    ExistAntBod     = 0,
                    IdBodegaDestino = domain.IdBodega,
                    IdBodegaOrigen  = domain.IdBodega,
                    IdDocumento     = domain.Id,
                    IdUsuario       = domain.IdUsuario,
                    IdMoneda        = 1,
                    Observaciones   = domain.Descripcion,
                    PrecioPromedio  = 0,
                    PrecioUnit      = item.PrecioUnitario,
                    IdInventario    = item.IdInventario,
                    TipoDocumento   = tipoDoc,
                    SaldoFinal      = 0
                };

                kardex.Add(k);
            }



            try
            {
                service.SaveAll(kardex);
                return(true);
            }
            catch (Exception ex)
            {
                AltivaLog.Log.Insertar(ex.ToString(), "Error");
                return(true);

                throw;
            }
        }
Esempio n. 7
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);
        }
Esempio n. 8
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);
        }