summaryrefslogtreecommitdiff
path: root/backend/app/src/queries/category_transfers
diff options
context:
space:
mode:
Diffstat (limited to 'backend/app/src/queries/category_transfers')
-rw-r--r--backend/app/src/queries/category_transfers/mod.rs5
-rw-r--r--backend/app/src/queries/category_transfers/sum_quantity_per_from_category_id.rs17
-rw-r--r--backend/app/src/queries/category_transfers/sum_quantity_per_to_category_id.rs17
3 files changed, 39 insertions, 0 deletions
diff --git a/backend/app/src/queries/category_transfers/mod.rs b/backend/app/src/queries/category_transfers/mod.rs
new file mode 100644
index 0000000..85eb1c8
--- /dev/null
+++ b/backend/app/src/queries/category_transfers/mod.rs
@@ -0,0 +1,5 @@
+mod sum_quantity_per_from_category_id;
+mod sum_quantity_per_to_category_id;
+
+pub use sum_quantity_per_from_category_id::sum_category_transfer_quantity_per_from_category_id;
+pub use sum_quantity_per_to_category_id::sum_category_transfer_quantity_per_to_category_id;
diff --git a/backend/app/src/queries/category_transfers/sum_quantity_per_from_category_id.rs b/backend/app/src/queries/category_transfers/sum_quantity_per_from_category_id.rs
new file mode 100644
index 0000000..ae3a51a
--- /dev/null
+++ b/backend/app/src/queries/category_transfers/sum_quantity_per_from_category_id.rs
@@ -0,0 +1,17 @@
+use diesel::{dsl::sum, result::Error, QueryDsl, RunQueryDsl, SqliteConnection};
+
+use crate::schema::category_transfers::{
+ self as category_transfers_schema, dsl::category_transfers as category_transfers_table,
+};
+
+pub fn sum_category_transfer_quantity_per_from_category_id(
+ connection: &mut SqliteConnection,
+) -> Result<Vec<(i32, Option<i64>)>, Error> {
+ category_transfers_table
+ .group_by(category_transfers_schema::from_category_id)
+ .select((
+ category_transfers_schema::from_category_id,
+ sum(category_transfers_schema::quantity),
+ ))
+ .load::<(i32, Option<i64>)>(connection)
+}
diff --git a/backend/app/src/queries/category_transfers/sum_quantity_per_to_category_id.rs b/backend/app/src/queries/category_transfers/sum_quantity_per_to_category_id.rs
new file mode 100644
index 0000000..fe6f3a7
--- /dev/null
+++ b/backend/app/src/queries/category_transfers/sum_quantity_per_to_category_id.rs
@@ -0,0 +1,17 @@
+use diesel::{dsl::sum, result::Error, QueryDsl, RunQueryDsl, SqliteConnection};
+
+use crate::schema::category_transfers::{
+ self as category_transfers_schema, dsl::category_transfers as category_transfers_table,
+};
+
+pub fn sum_category_transfer_quantity_per_to_category_id(
+ connection: &mut SqliteConnection,
+) -> Result<Vec<(i32, Option<i64>)>, Error> {
+ category_transfers_table
+ .group_by(category_transfers_schema::to_category_id)
+ .select((
+ category_transfers_schema::to_category_id,
+ sum(category_transfers_schema::quantity),
+ ))
+ .load::<(i32, Option<i64>)>(connection)
+}