예제 #1
0
        //Metodo Anular
        public string Eliminar(Dventa Venta)
        {
            string respuesta   = "";
            var    conexionSql = new SqlConnection(Utilidades.conexion);

            try
            {
                //Abrir StringConnection
                conexionSql.Open();

                //Establecer el comando SQL
                var comandoSql = new SqlCommand("[speliminar_venta]", conexionSql);
                comandoSql.CommandType = CommandType.StoredProcedure;

                //Parametros para el comandoSql (StoreProcedure)
                var parIdIVenta = new SqlParameter("@idventa", SqlDbType.Int);
                parIdIVenta.Value = Venta.IdVenta;
                comandoSql.Parameters.Add(parIdIVenta);


                //Ejecucion del comando
                respuesta = comandoSql.ExecuteNonQuery() == 1 ? "Ok" : "Ok";
            }
            catch (Exception ex)
            {
                respuesta = ex.Message;
            }
            finally
            {
                if (conexionSql.State == ConnectionState.Open)
                {
                    conexionSql.Close();
                }
            }

            return(respuesta);
        }
예제 #2
0
        //Metodo Insertar
        public string Insertar(Dventa Venta, List <DdetalleVenta> Detalle)
        {
            string respuesta   = "";
            var    conexionSql = new SqlConnection(Utilidades.conexion);

            try
            {
                //Abrir StringConnection
                conexionSql.Open();

                //Establecer la transaccion
                var transaccionSql = conexionSql.BeginTransaction();

                //Establecer el comando SQL
                var comandoSql = new SqlCommand("[spinsertar_venta]", conexionSql, transaccionSql);
                comandoSql.CommandType = CommandType.StoredProcedure;

                //Parametros para el comandoSql (StoreProcedure)
                var parIdVenta = new SqlParameter("@idventa", SqlDbType.Int);
                parIdVenta.Direction = ParameterDirection.Output;
                comandoSql.Parameters.Add(parIdVenta);

                var parIdCliente = new SqlParameter("@idcliente", SqlDbType.Int);
                parIdCliente.Value = Venta.IdCliente;
                comandoSql.Parameters.Add(parIdCliente);

                var parIdTrabajador = new SqlParameter("@idtrabajador", SqlDbType.Int);
                parIdTrabajador.Value = Venta.IdTrabajador;
                comandoSql.Parameters.Add(parIdTrabajador);

                var parFecha = new SqlParameter("@fecha", SqlDbType.Date);
                parFecha.Value = Venta.Fecha;
                comandoSql.Parameters.Add(parFecha);

                var parTipoComprobante = new SqlParameter("@tipo_comprobante", SqlDbType.VarBinary, 20);
                parTipoComprobante.Value = Venta.TipoComprobante;
                comandoSql.Parameters.Add(parTipoComprobante);

                var parSerie = new SqlParameter("@serie", SqlDbType.VarChar, 4);
                parSerie.Value = Venta.Serie;
                comandoSql.Parameters.Add(parSerie);

                var parCorrelativo = new SqlParameter("@correlativo", SqlDbType.VarChar, 7);
                parCorrelativo.Value = Venta.Correlativo;
                comandoSql.Parameters.Add(parCorrelativo);

                var parItbis = new SqlParameter("@itbis", SqlDbType.Decimal);
                parItbis.Scale     = 2;
                parItbis.Precision = 4;
                parItbis.Value     = Venta.Itbis;
                comandoSql.Parameters.Add(parItbis);


                //Ejecucion del comando
                respuesta = comandoSql.ExecuteNonQuery() == 1 ? "Ok" : "No se pudo insertar el registro";

                if (respuesta.Equals("Ok"))
                {
                    //Obtener el codigo (Id) del ingreso generado
                    IdVenta = Convert.ToInt32(comandoSql.Parameters["@idventa"].Value);
                    foreach (DdetalleVenta item in Detalle)
                    {
                        item.IdVenta = IdVenta;
                        //Llamar al mentodo Insertar de la Clase DdetalleIngreso
                        respuesta = item.Insertar(item, ref conexionSql, ref transaccionSql);
                        if (!respuesta.Equals("Ok"))
                        {
                            break;
                        }
                        else //Si se insertan los detalles de ventas actualizamos el stock
                        {
                            respuesta = DisminuirStock(item.IdDetalleIngreso, item.Cantidad);
                            if (respuesta.Equals("Ok"))
                            {
                                break;
                            }
                        }
                    }
                }
                if (respuesta.Equals("Ok"))
                {
                    transaccionSql.Commit();
                }
                else
                {
                    transaccionSql.Rollback();
                }
            }
            catch (Exception ex)
            {
                respuesta = ex.Message;
            }
            finally
            {
                if (conexionSql.State == ConnectionState.Open)
                {
                    conexionSql.Close();
                }
            }

            return(respuesta);
        }