Пример #1
0
        public IList <NotaIngresoDetalle> GetAll(NotaIngreso entiy)
        {
            List <NotaIngresoDetalle> notaIngresoDetalle = new List <NotaIngresoDetalle>();

            using (var comando = _database.GetStoredProcCommand(string.Format("{0}{1}", ConectionStringRepository.EsquemaName, "SGE_NOTA_INGRESO_DETALLE_GetAll")))
            {
                _database.AddInParameter(comando, "@Id", DbType.Int32, entiy.Id);

                using (var lector = _database.ExecuteReader(comando))
                {
                    while (lector.Read())
                    {
                        notaIngresoDetalle.Add(new NotaIngresoDetalle
                        {
                            Id = lector.IsDBNull(lector.GetOrdinal("dninc_icod_detalle_ingreso")) ? default(int) : lector.GetInt32(lector.GetOrdinal("dninc_icod_detalle_ingreso")),
                            ningc_icod_nota_ingreso = lector.IsDBNull(lector.GetOrdinal("ningc_icod_nota_ingreso")) ? default(int) : lector.GetInt32(lector.GetOrdinal("ningc_icod_nota_ingreso")),
                            dninc_nro_item          = lector.IsDBNull(lector.GetOrdinal("dninc_nro_item")) ? default(string) : lector.GetString(lector.GetOrdinal("dninc_nro_item")),
                            dninc_v_unidad          = lector.IsDBNull(lector.GetOrdinal("Unidad")) ? default(string) : lector.GetString(lector.GetOrdinal("Unidad")),
                            dninc_cantidad          = lector.IsDBNull(lector.GetOrdinal("dninc_cantidad")) ? default(decimal) : lector.GetDecimal(lector.GetOrdinal("dninc_cantidad")),
                            dninc_costo             = lector.IsDBNull(lector.GetOrdinal("dnind_ncosto")) ? default(decimal) : lector.GetDecimal(lector.GetOrdinal("dnind_ncosto")),
                            prdc_icod_producto      = lector.IsDBNull(lector.GetOrdinal("prdc_icod_producto")) ? default(int) : lector.GetInt32(lector.GetOrdinal("prdc_icod_producto")),
                            prdc_vdescripcion       = lector.IsDBNull(lector.GetOrdinal("prdc_vdescripcion")) ? default(string) : lector.GetString(lector.GetOrdinal("prdc_vdescripcion")),
                            kardc_icod_correlativo  = lector.IsDBNull(lector.GetOrdinal("kardc_icod_correlativo")) ? default(int) : lector.GetInt32(lector.GetOrdinal("kardc_icod_correlativo")),
                        });
                    }
                }
            }

            return(notaIngresoDetalle);
        }
Пример #2
0
        public NotaIngreso GetById(NotaIngreso entity)
        {
            NotaIngreso notaIngreso = null;

            using (var comando = _database.GetStoredProcCommand(string.Format("{0}{1}", ConectionStringRepository.EsquemaName, "SGE_NOTA_INGRESO_GetById")))
            {
                _database.AddInParameter(comando, "@Id", DbType.Int32, entity.Id);

                using (var lector = _database.ExecuteReader(comando))
                {
                    if (lector.Read())
                    {
                        notaIngreso = new NotaIngreso
                        {
                            Id = lector.IsDBNull(lector.GetOrdinal("ningc_icod_nota_ingreso")) ? default(int) : lector.GetInt32(lector.GetOrdinal("ningc_icod_nota_ingreso")),
                            ningc_numero_nota_ingreso = lector.IsDBNull(lector.GetOrdinal("ningc_numero_nota_ingreso")) ? default(string) : lector.GetString(lector.GetOrdinal("ningc_numero_nota_ingreso")),
                            ningc_fecha_nota_ingreso  = lector.IsDBNull(lector.GetOrdinal("ningc_fecha_nota_ingreso")) ? default(DateTime) : lector.GetDateTime(lector.GetOrdinal("ningc_fecha_nota_ingreso")),
                            ningc_observaciones       = lector.IsDBNull(lector.GetOrdinal("ningc_observaciones")) ? default(string) : lector.GetString(lector.GetOrdinal("ningc_observaciones")),
                            ningc_iid_motivo          = lector.IsDBNull(lector.GetOrdinal("ningc_iid_motivo")) ? default(int) : lector.GetInt32(lector.GetOrdinal("ningc_iid_motivo")),
                            almac_icod_almacen        = lector.IsDBNull(lector.GetOrdinal("almac_icod_almacen")) ? default(int) : lector.GetInt32(lector.GetOrdinal("almac_icod_almacen")),
                            Estado = lector.IsDBNull(lector.GetOrdinal("ningc_ilag_estado")) ? default(int) : lector.GetInt32(lector.GetOrdinal("ningc_ilag_estado"))
                        };
                    }
                }
            }

            return(notaIngreso);
        }
Пример #3
0
        public int GetCorrelativo(NotaIngreso entity)
        {
            int Correlativo;

            using (var comando = _database.GetStoredProcCommand(string.Format("{0}{1}", ConectionStringRepository.EsquemaName, "SGE_NOTA_INGRESO_CORRELATIVA")))
            {
                _database.AddInParameter(comando, "@id", DbType.Int32, entity.almac_icod_almacen);
                _database.AddOutParameter(comando, "@Response", DbType.Int32, 11);

                _database.ExecuteNonQuery(comando);
                Correlativo = Convert.ToInt32(_database.GetParameterValue(comando, "@Response"));
            }

            return(Correlativo);
        }
Пример #4
0
        public int DeleteNI(NotaIngreso entity)
        {
            int id;
            int idKardex;
            int idNID;

            using (var comando = _database.GetStoredProcCommand(string.Format("{0}{1}", ConectionStringRepository.EsquemaName, "SGE_NOTA_INGRESO_DELETE")))
            {
                _database.AddInParameter(comando, "@Id", DbType.Int32, entity.Id);
                _database.AddOutParameter(comando, "@Response", DbType.Int32, 11);

                _database.ExecuteNonQuery(comando);
                id = Convert.ToInt32(_database.GetParameterValue(comando, "@Response"));
                if (id == 0)
                {
                    throw new Exception("Error al eliminar nota ingreso.");
                }
            }
            using (var comando = _database.GetStoredProcCommand(string.Format("{0}{1}", ConectionStringRepository.EsquemaName, "SGE_KARDEX_DELETE_IDNI")))
            {
                _database.AddInParameter(comando, "@Id", DbType.Int32, entity.Id);
                _database.AddOutParameter(comando, "@Response", DbType.Int32, 11);

                _database.ExecuteNonQuery(comando);
                idKardex = Convert.ToInt32(_database.GetParameterValue(comando, "@Response"));
                if (idKardex == 0)
                {
                    throw new Exception("Error al eliminar kardex.");
                }
            }
            using (var comando = _database.GetStoredProcCommand(string.Format("{0}{1}", ConectionStringRepository.EsquemaName, "SGE_NOTA_INGRESO_DETALLE_DELETE_IDNI")))
            {
                _database.AddInParameter(comando, "@Id", DbType.Int32, entity.Id);
                _database.AddOutParameter(comando, "@Response", DbType.Int32, 11);

                _database.ExecuteNonQuery(comando);
                idNID = Convert.ToInt32(_database.GetParameterValue(comando, "@Response"));
                if (idNID == 0)
                {
                    throw new Exception("Error al eliminar nota ingreso detalle.");
                }
            }
            return(id);
        }
Пример #5
0
 public int GetCorrelativo(NotaIngreso entity)
 {
     return(NotaIngresoRepository.Instancia.GetCorrelativo(entity));
 }
Пример #6
0
 public IList <NotaIngresoDetalle> GetAll(NotaIngreso entity)
 {
     return(NotaIngresoRepository.Instancia.GetAll(entity));
 }
Пример #7
0
 public NotaIngreso GetById(NotaIngreso entity)
 {
     return(NotaIngresoRepository.Instancia.GetById(entity));
 }
Пример #8
0
 public int DeleteNI(NotaIngreso entity)
 {
     return(NotaIngresoRepository.Instancia.DeleteNI(entity));
 }
Пример #9
0
 public int UpdateNI(NotaIngreso entity)
 {
     return(NotaIngresoRepository.Instancia.UpdateNI(entity));
 }
Пример #10
0
 public int AddNI(NotaIngreso entity)
 {
     return(NotaIngresoRepository.Instancia.AddNI(entity));
 }
Пример #11
0
        public string GuardarNota(NotaIngreso nota)
        {
            if (nota.NumeroNotaIngreso == null)
            {
                var    ultimo = db.NotaIngreso.OrderByDescending(x => x.NumeroNotaIngreso).Take(1).FirstOrDefault();
                double numero = 1;
                if (ultimo != null)
                {
                    numero = double.Parse(ultimo.NumeroNotaIngreso.Replace("NI-", "")) + 1;
                }
                nota.NumeroNotaIngreso = "NI-" + double.Parse(numero.ToString()).ToString("#000000");

                db.NotaIngreso.Add(nota);

                //Agregamos un movimiento al Kardex
                Kardex objKardex;
                List <DetalleKardex> detalleKardex = new List <DetalleKardex>();
                DetalleKardex        dKardex;

                foreach (var item in nota.DetalleNotaIngreso)
                {
                    //Detalle del kardex
                    objKardex = db.Kardex.FirstOrDefault(x => x.IdProducto == item.IdProducto); //&& x.IdAlmacen == IdAlmacen
                    if (objKardex != null)
                    {
                        dKardex = new DetalleKardex();
                        dKardex.NumeroKardex      = objKardex.NumeroKardex;
                        dKardex.NumeroDocumento   = nota.NumeroOrdenCompra;
                        dKardex.TipodeMovimiento  = 1;
                        dKardex.NumeroNotaIngreso = nota.NumeroNotaIngreso;
                        dKardex.Fecha             = DateTime.Now;
                        dKardex.Cantidad          = item.Cantidad;
                        detalleKardex.Add(dKardex);
                    }
                }

                db.DetalleKardex.AddRange(detalleKardex);
            }
            else
            {
                var original = db.NotaIngreso.Find(nota.NumeroNotaIngreso);
                if (original != null)
                {
                    db.Entry(original).CurrentValues.SetValues(nota);

                    ////Ya no actualiza los items, porque tendría que modificar el kardex también

                    //db.DetalleNotaIngreso.RemoveRange(db.DetalleNotaIngreso.Where(x => x.NumeroNotaIngreso == nota.NumeroNotaIngreso));
                    //db.SaveChanges();

                    //DetalleNotaIngreso obj;

                    //foreach (var item in nota.DetalleNotaIngreso)
                    //{
                    //    obj = new DetalleNotaIngreso();
                    //    obj.Cantidad = item.Cantidad;
                    //    obj.IdProducto = item.IdProducto;
                    //    obj.NumeroNotaIngreso = item.NumeroNotaIngreso;

                    //    db.DetalleNotaIngreso.Add(obj);
                    //}
                }
            }

            db.SaveChanges();
            return(nota.NumeroNotaIngreso);
        }
Пример #12
0
        public int AddNI(NotaIngreso entity)
        {
            int id;
            int idKardex;
            int idND;
            int idStock;

            using (DbConnection conexion = _database.CreateConnection())
            {
                conexion.Open();
                using (var transaction = conexion.BeginTransaction(IsolationLevel.Serializable))
                {
                    try
                    {
                        using (var comando = _database.GetStoredProcCommand(string.Format("{0}{1}", ConectionStringRepository.EsquemaName, "SGE_NOTA_INGRESO_INSERT")))
                        {
                            _database.AddInParameter(comando, "@ningc_numero_nota_ingreso", DbType.String, entity.ningc_numero_nota_ingreso);
                            _database.AddInParameter(comando, "@almac_icod_almacen", DbType.String, entity.almac_icod_almacen);
                            _database.AddInParameter(comando, "@ningc_iid_motivo", DbType.String, entity.ningc_iid_motivo);
                            _database.AddInParameter(comando, "@ningc_fecha_nota_ingreso", DbType.String, entity.ningc_fecha_nota_ingreso_);
                            _database.AddInParameter(comando, "@tdocc_icod_tipo_doc", DbType.Int32, entity.tdocc_icod_tipo_doc);
                            _database.AddInParameter(comando, "@ningc_numero_doc", DbType.String, entity.ningc_numero_doc);
                            _database.AddInParameter(comando, "@ningc_referencia", DbType.String, entity.ningc_referencia);
                            _database.AddInParameter(comando, "@ningc_observaciones", DbType.String, entity.ningc_observaciones);
                            _database.AddInParameter(comando, "@ningc_vusuario_crea", DbType.String, entity.UsuarioCreacion);
                            _database.AddInParameter(comando, "@ningc_vpc_crea", DbType.String, WindowsIdentity.GetCurrent().Name);
                            _database.AddInParameter(comando, "@ningc_ilag_estado", DbType.Int32, entity.Estado);
                            _database.AddOutParameter(comando, "@Response", DbType.Int32, 11);


                            _database.ExecuteNonQuery(comando, transaction);
                            id = Convert.ToInt32(_database.GetParameterValue(comando, "@Response"));
                            if (id == 0)
                            {
                                throw new Exception("Error al ingresar Nota Ingreso");
                            }
                        }

                        foreach (var itemdetalle in entity.listaDetalleNI)
                        {
                            using (var comandoKardex = _database.GetStoredProcCommand(string.Format("{0}{1}", ConectionStringRepository.EsquemaName, "SGE_KARDEX_INSERT")))
                            {
                                _database.AddInParameter(comandoKardex, "@kardc_fecha_movimiento", DbType.String, entity.ningc_fecha_nota_ingreso_);
                                _database.AddInParameter(comandoKardex, "@ningc_icod_nota_ingreso", DbType.Int32, id);
                                _database.AddInParameter(comandoKardex, "@almac_icod_almacen", DbType.Int32, entity.almac_icod_almacen);
                                _database.AddInParameter(comandoKardex, "@prdc_icod_producto", DbType.Int32, itemdetalle.prdc_icod_producto);
                                _database.AddInParameter(comandoKardex, "@kardc_icantidad_prod", DbType.Decimal, itemdetalle.dninc_cantidad);
                                _database.AddInParameter(comandoKardex, "@tdocc_icod_tipo_doc", DbType.Int32, entity.tdocc_icod_tipo_doc);
                                _database.AddInParameter(comandoKardex, "@kardc_numero_doc", DbType.String, entity.ningc_numero_doc);
                                _database.AddInParameter(comandoKardex, "@kardc_tipo_movimiento", DbType.Int32, itemdetalle.kardc_tipo_movimiento);
                                _database.AddInParameter(comandoKardex, "@kardc_iid_motivo", DbType.Int32, entity.ningc_iid_motivo);
                                _database.AddInParameter(comandoKardex, "@kardc_beneficiario", DbType.String, entity.ningc_referencia);
                                _database.AddInParameter(comandoKardex, "@kardc_observaciones", DbType.String, entity.ningc_observaciones);
                                _database.AddInParameter(comandoKardex, "@kardc_monto_unitario_compra", DbType.Decimal, itemdetalle.dninc_costo);
                                _database.AddInParameter(comandoKardex, "@kardc_vusuario_crea", DbType.String, entity.UsuarioCreacion);
                                _database.AddInParameter(comandoKardex, "@kardc_vpc_crea", DbType.String, WindowsIdentity.GetCurrent().Name);
                                _database.AddInParameter(comandoKardex, "@kardc_ilag_estado", DbType.Int32, entity.Estado);
                                _database.AddOutParameter(comandoKardex, "@Response", DbType.Int32, 11);

                                _database.ExecuteNonQuery(comandoKardex, transaction);
                                idKardex = Convert.ToInt32(_database.GetParameterValue(comandoKardex, "@Response"));
                                if (idKardex == 0)
                                {
                                    throw new Exception("Error al ingresar kardex");
                                }
                            }
                            using (var comando = _database.GetStoredProcCommand(string.Format("{0}{1}", ConectionStringRepository.EsquemaName, "SGE_NOTA_INGRESO_DETALLE_INSERT")))
                            {
                                _database.AddInParameter(comando, "@ningc_icod_nota_ingreso", DbType.Int32, id);
                                _database.AddInParameter(comando, "@dninc_nro_item", DbType.String, itemdetalle.dninc_nro_item);
                                _database.AddInParameter(comando, "@prdc_icod_producto", DbType.Int32, itemdetalle.prdc_icod_producto);
                                _database.AddInParameter(comando, "@dninc_cantidad", DbType.Decimal, itemdetalle.dninc_cantidad);
                                _database.AddInParameter(comando, "@dnind_ncosto", DbType.Decimal, itemdetalle.dninc_costo);
                                _database.AddInParameter(comando, "@kardc_icod_correlativo", DbType.Int32, idKardex);
                                _database.AddInParameter(comando, "@dninc_vusuario_crea", DbType.String, entity.UsuarioCreacion);
                                _database.AddInParameter(comando, "@dninc_vpc_crea", DbType.String, WindowsIdentity.GetCurrent().Name);
                                _database.AddInParameter(comando, "@dninc_ilag_estado", DbType.Int32, entity.Estado);
                                _database.AddOutParameter(comando, "@Response", DbType.Int32, 11);

                                _database.ExecuteNonQuery(comando, transaction);
                                idND = Convert.ToInt32(_database.GetParameterValue(comando, "@Response"));
                                if (idND == 0)
                                {
                                    throw new Exception("Error al ingresar nota de ingreso detalle");
                                }
                            }
                            using (var ComandoStock = _database.GetStoredProcCommand(string.Format("{0}{1}", ConectionStringRepository.EsquemaName, "SGE_STOCK_UPDATE")))
                            {
                                _database.AddInParameter(ComandoStock, "@almac_icod_almacen", DbType.Int32, entity.almac_icod_almacen);
                                _database.AddInParameter(ComandoStock, "@prdc_icod_producto", DbType.Int32, itemdetalle.prdc_icod_producto);
                                _database.AddInParameter(ComandoStock, "@stocc_stock_producto", DbType.Decimal, itemdetalle.dninc_cantidad);
                                _database.AddInParameter(ComandoStock, "@stocc_ilag_estado", DbType.Int32, entity.Estado);
                                _database.AddInParameter(ComandoStock, "@tipo_movimiento", DbType.Int32, itemdetalle.kardc_tipo_movimiento);
                                _database.AddOutParameter(ComandoStock, "@Response", DbType.Int32, 11);

                                _database.ExecuteNonQuery(ComandoStock, transaction);
                                idStock = Convert.ToInt32(_database.GetParameterValue(ComandoStock, "@Response"));
                                if (idStock == 0)
                                {
                                    throw new Exception("Error al ingresar stock");
                                }
                            }
                        }

                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        throw new Exception(ex.Message);
                    }
                }
            }
            return(id);
        }