Beispiel #1
0
        public string Anular(CD_Ingreso Ingreso)
        {
            string        rpta   = "";
            SqlConnection SqlCon = new SqlConnection();

            try
            {
                //Código
                SqlConnection cn = ConexionBD.Instancia.Conectar();
                //SqlCon.ConnectionString = Conexion.Cn;
                cn.Open();
                //Establecer el Comando
                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection  = cn;
                SqlCmd.CommandText = "spanular_ingreso";
                SqlCmd.CommandType = CommandType.StoredProcedure;

                SqlParameter ParIdingreso = new SqlParameter();
                ParIdingreso.ParameterName = "@idingreso";
                ParIdingreso.SqlDbType     = SqlDbType.Int;
                ParIdingreso.Value         = Ingreso.Idingreso;
                SqlCmd.Parameters.Add(ParIdingreso);
                //Ejecutamos nuestro comando

                rpta = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "NO se anulo el Ingreso";
            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (SqlCon.State == ConnectionState.Open)
                {
                    SqlCon.Close();
                }
            }
            return(rpta);
        }
Beispiel #2
0
        //Métodos
        public string Insertar(CD_Ingreso Ingreso, List <CD_DetalleIngreso> Detalles)
        {
            string        rpta   = "";
            SqlConnection SqlCon = new SqlConnection();

            try
            {
                //Código
                // SqlConnection cn = ConexionBD.Instancia.Conectar();
                SqlCon.ConnectionString = ConexionBD.Cn;
                SqlCon.Open();
                //Establecer la transacción
                SqlTransaction SqlTra = SqlCon.BeginTransaction();
                //Establecer el Comando
                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection  = SqlCon;
                SqlCmd.Transaction = SqlTra;
                SqlCmd.CommandText = "spinsertar_ingreso";
                SqlCmd.CommandType = CommandType.StoredProcedure;

                //Parámetros
                SqlParameter ParIdingreso = new SqlParameter();
                ParIdingreso.ParameterName = "@idingreso";
                ParIdingreso.SqlDbType     = SqlDbType.Int;
                ParIdingreso.Direction     = ParameterDirection.Output;
                SqlCmd.Parameters.Add(ParIdingreso);


                SqlParameter ParIdproveedor = new SqlParameter();
                ParIdproveedor.ParameterName = "@Id_Proveedor";
                ParIdproveedor.SqlDbType     = SqlDbType.Int;
                ParIdproveedor.Value         = Ingreso.Idproveedor;
                SqlCmd.Parameters.Add(ParIdproveedor);


                SqlParameter ParFecha = new SqlParameter();
                ParFecha.ParameterName = "@fecha";
                ParFecha.SqlDbType     = SqlDbType.VarChar;
                ParFecha.Value         = Ingreso.Fecha;
                SqlCmd.Parameters.Add(ParFecha);

                SqlParameter ParTipo_Comprobante = new SqlParameter();
                ParTipo_Comprobante.ParameterName = "@Id_TipCom";
                ParTipo_Comprobante.SqlDbType     = SqlDbType.Int;
                //ParTipo_Comprobante.Size = 20;
                ParTipo_Comprobante.Value = Ingreso.Tipo_Comprobante;
                SqlCmd.Parameters.Add(ParTipo_Comprobante);

                SqlParameter ParSerie = new SqlParameter();
                ParSerie.ParameterName = "@serie";
                ParSerie.SqlDbType     = SqlDbType.VarChar;
                ParSerie.Size          = 4;
                ParSerie.Value         = Ingreso.Serie;
                SqlCmd.Parameters.Add(ParSerie);

                SqlParameter ParCorrelativo = new SqlParameter();
                ParCorrelativo.ParameterName = "@correlativo";
                ParCorrelativo.SqlDbType     = SqlDbType.VarChar;
                ParCorrelativo.Size          = 7;
                ParCorrelativo.Value         = Ingreso.Correlativo;
                SqlCmd.Parameters.Add(ParCorrelativo);

                SqlParameter ParIgv = new SqlParameter();
                ParIgv.ParameterName = "@igv";
                ParIgv.SqlDbType     = SqlDbType.Decimal;
                ParIgv.Precision     = 4;
                ParIgv.Scale         = 2;
                ParIgv.Value         = Ingreso.Igv;
                SqlCmd.Parameters.Add(ParIgv);

                SqlParameter ParEstado = new SqlParameter();
                ParEstado.ParameterName = "@estado";
                ParEstado.SqlDbType     = SqlDbType.VarChar;
                ParEstado.Size          = 7;
                ParEstado.Value         = Ingreso.Estado;
                SqlCmd.Parameters.Add(ParEstado);

                SqlParameter ParUsuarioCreacion_Ingreso = new SqlParameter();
                ParUsuarioCreacion_Ingreso.ParameterName = "@UsuarioCreacion_Ingreso";
                ParUsuarioCreacion_Ingreso.SqlDbType     = SqlDbType.Int;
                ParUsuarioCreacion_Ingreso.Value         = Ingreso.UsuarioCreacion_Ingreso;
                SqlCmd.Parameters.Add(ParUsuarioCreacion_Ingreso);

                SqlParameter ParUsuarioUpdate_Ingreso = new SqlParameter();
                ParUsuarioUpdate_Ingreso.ParameterName = "@UsuarioUpdate_Ingreso";
                ParUsuarioUpdate_Ingreso.SqlDbType     = SqlDbType.Int;
                ParUsuarioUpdate_Ingreso.Value         = Ingreso.UsuarioUpdate_Ingreso;
                SqlCmd.Parameters.Add(ParUsuarioUpdate_Ingreso);


                //Ejecutamos nuestro comando
                rpta = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "NO se Ingreso el Registro";
                if (rpta.Equals("OK"))
                {
                    //Obtenemos el codigo del ingreso que se genero por la base de datos

                    this.Idingreso = Convert.ToInt32(SqlCmd.Parameters["@idingreso"].Value);
                    foreach (CD_DetalleIngreso det in Detalles)
                    {
                        //Establecemos el codigo del ingreso que se autogenero
                        det.Idingreso = this.Idingreso;
                        //Llamamos al metodo insertar de la clase DetalleIngreso
                        //y le pasamos la conexion y la transaccion que debe de usar
                        rpta = det.Insertar(det, ref SqlCon, ref SqlTra);
                        if (!rpta.Equals("OK"))
                        {
                            //Si ocurre un error al insertar un detalle de ingreso salimos del for
                            break;
                        }
                    }
                }
                if (rpta.Equals("OK"))
                {
                    //Se inserto todo los detalles y confirmamos la transaccion
                    SqlTra.Commit();
                }
                else
                {
                    //Algun detalle no se inserto y negamos la transaccion
                    SqlTra.Rollback();
                }
            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (SqlCon.State == ConnectionState.Open)
                {
                    SqlCon.Close();
                }
            }
            return(rpta);
        }