оно выдаёт странную ошибку, а у меня не работает голова. я спать
parent
0d558c1063
commit
1c8aba9066
102
code/src/app.rs
102
code/src/app.rs
|
|
@ -494,8 +494,106 @@ impl MainTabViewer {
|
||||||
};
|
};
|
||||||
if ui.button(btext).clicked() {
|
if ui.button(btext).clicked() {
|
||||||
match self.equipment_modal_state.status {
|
match self.equipment_modal_state.status {
|
||||||
ModalStatus::Add => {}
|
ModalStatus::Add => self.rt.block_on(async {
|
||||||
ModalStatus::Edit => {}
|
self.db_oper
|
||||||
|
.add_equipment(Equipment {
|
||||||
|
id: 0,
|
||||||
|
name: self
|
||||||
|
.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.get("name")
|
||||||
|
.unwrap_or(&String::new())
|
||||||
|
.clone(),
|
||||||
|
inv_number: self
|
||||||
|
.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.get("inv_number")
|
||||||
|
.unwrap_or(&String::new())
|
||||||
|
.clone(),
|
||||||
|
maintenance_date: chrono::NaiveDate::from_str(
|
||||||
|
self.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.get("maintenance_date")
|
||||||
|
.unwrap_or(&"1970.01.01".to_owned()),
|
||||||
|
)
|
||||||
|
.unwrap()
|
||||||
|
.and_hms_opt(0, 0, 0)
|
||||||
|
.unwrap()
|
||||||
|
.and_local_timezone(chrono::Local)
|
||||||
|
.unwrap(),
|
||||||
|
worker: self
|
||||||
|
.workers
|
||||||
|
.read()
|
||||||
|
.clone()
|
||||||
|
.iter()
|
||||||
|
.find(|w| {
|
||||||
|
&w.id.to_string()
|
||||||
|
== self
|
||||||
|
.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.get("worker_id")
|
||||||
|
.unwrap_or(&"0".to_owned())
|
||||||
|
})
|
||||||
|
.unwrap()
|
||||||
|
.clone(),
|
||||||
|
is_written_off: false,
|
||||||
|
})
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
}),
|
||||||
|
ModalStatus::Edit => self.rt.block_on(async {
|
||||||
|
self.db_oper
|
||||||
|
.update_equipment(Equipment {
|
||||||
|
id: self
|
||||||
|
.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.get("id")
|
||||||
|
.unwrap()
|
||||||
|
.parse::<i32>()
|
||||||
|
.unwrap(),
|
||||||
|
name: self
|
||||||
|
.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.get("name")
|
||||||
|
.unwrap_or(&String::new())
|
||||||
|
.clone(),
|
||||||
|
inv_number: self
|
||||||
|
.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.get("inv_number")
|
||||||
|
.unwrap_or(&String::new())
|
||||||
|
.clone(),
|
||||||
|
maintenance_date: chrono::NaiveDate::from_str(
|
||||||
|
self.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.get("maintenance_date")
|
||||||
|
.unwrap_or(&"1970.01.01".to_owned()),
|
||||||
|
)
|
||||||
|
.unwrap()
|
||||||
|
.and_hms_opt(0, 0, 0)
|
||||||
|
.unwrap()
|
||||||
|
.and_local_timezone(chrono::Local)
|
||||||
|
.unwrap(),
|
||||||
|
worker: self
|
||||||
|
.workers
|
||||||
|
.read()
|
||||||
|
.clone()
|
||||||
|
.iter()
|
||||||
|
.find(|w| {
|
||||||
|
&w.id.to_string()
|
||||||
|
== self
|
||||||
|
.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.get("worker_id")
|
||||||
|
.unwrap_or(&"0".to_owned())
|
||||||
|
})
|
||||||
|
.unwrap()
|
||||||
|
.clone(),
|
||||||
|
is_written_off: false,
|
||||||
|
})
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
}),
|
||||||
ModalStatus::Remove => {
|
ModalStatus::Remove => {
|
||||||
self.rt.block_on(async {
|
self.rt.block_on(async {
|
||||||
self.db_oper
|
self.db_oper
|
||||||
|
|
|
||||||
|
|
@ -78,6 +78,32 @@ impl DBOperator {
|
||||||
}
|
}
|
||||||
Ok(rets)
|
Ok(rets)
|
||||||
}
|
}
|
||||||
|
pub async fn add_equipment(&self, equipment: Equipment) -> Result<bool, sqlx::Error> {
|
||||||
|
match sqlx::query("INSERT INTO `equipment` (id, inv_number, maintenance_date, worker_id, name, is_written_off) VALUES(0, ?, ?, ?, ?, 0);")
|
||||||
|
.bind(equipment.inv_number)
|
||||||
|
.bind(equipment.maintenance_date)
|
||||||
|
.bind(equipment.worker.id)
|
||||||
|
.bind(equipment.name)
|
||||||
|
.execute(&self.pool)
|
||||||
|
.await{
|
||||||
|
Ok(_) => Ok(true),
|
||||||
|
Err(_) => Ok(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pub async fn update_equipment(&self, equipment: Equipment) -> Result<bool, sqlx::Error> {
|
||||||
|
match sqlx::query("UPDATE Brewery.equipment SET inv_number=?, maintenance_date=?, worker_id=?, name=?, is_written_off=? WHERE id=?;")
|
||||||
|
.bind(equipment.inv_number)
|
||||||
|
.bind(equipment.maintenance_date)
|
||||||
|
.bind(equipment.worker.id)
|
||||||
|
.bind(equipment.name)
|
||||||
|
.bind(equipment.is_written_off)
|
||||||
|
.bind(equipment.id)
|
||||||
|
.execute(&self.pool)
|
||||||
|
.await{
|
||||||
|
Ok(_) => Ok(true),
|
||||||
|
Err(_) => Ok(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
pub async fn get_mcat(&self) -> Result<Vec<MaterialCategory>, sqlx::Error> {
|
pub async fn get_mcat(&self) -> Result<Vec<MaterialCategory>, sqlx::Error> {
|
||||||
let rets = sqlx::query_as::<_, MaterialCategory>("SELECT * FROM `material_category`")
|
let rets = sqlx::query_as::<_, MaterialCategory>("SELECT * FROM `material_category`")
|
||||||
.fetch_all(&self.pool)
|
.fetch_all(&self.pool)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue