оно выдаёт странную ошибку, а у меня не работает голова. я спать
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() {
|
||||
match self.equipment_modal_state.status {
|
||||
ModalStatus::Add => {}
|
||||
ModalStatus::Edit => {}
|
||||
ModalStatus::Add => self.rt.block_on(async {
|
||||
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 => {
|
||||
self.rt.block_on(async {
|
||||
self.db_oper
|
||||
|
|
|
|||
|
|
@ -78,6 +78,32 @@ impl DBOperator {
|
|||
}
|
||||
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> {
|
||||
let rets = sqlx::query_as::<_, MaterialCategory>("SELECT * FROM `material_category`")
|
||||
.fetch_all(&self.pool)
|
||||
|
|
|
|||
Loading…
Reference in New Issue