qweqweqe
parent
30ad04e444
commit
6cb11f7ccf
|
|
@ -246,13 +246,15 @@ impl egui_dock::TabViewer for MainTabViewer{
|
|||
}
|
||||
}
|
||||
struct WorkerTabViewer{
|
||||
db_oper: DBOperator,
|
||||
workers: Arc<RwLock<Option<Vec<Worker>>>>,
|
||||
positions: Arc<RwLock<Option<Vec<Position>>>>,
|
||||
show_add_modal: bool,
|
||||
add_worker_name: String,
|
||||
selected_position: String,
|
||||
selected_position_id: i32,
|
||||
add_worker_hire_date: String,
|
||||
can_add: bool
|
||||
can_add: bool,
|
||||
rt: tokio::runtime::Runtime
|
||||
}
|
||||
|
||||
impl WorkerTabViewer{
|
||||
|
|
@ -261,7 +263,7 @@ impl WorkerTabViewer{
|
|||
if ui.button("Добавить").clicked() {
|
||||
self.show_add_modal = true;
|
||||
self.add_worker_name = String::new();
|
||||
self.selected_position = String::new();
|
||||
self.selected_position_id = 1;
|
||||
|
||||
};
|
||||
if ui.button("Уволить").clicked() {
|
||||
|
|
@ -286,9 +288,11 @@ impl WorkerTabViewer{
|
|||
egui::ComboBox::from_label("Выбрать!")
|
||||
.selected_text(format!("{}",self.selected_position))
|
||||
.show_ui(ui, |ui|{
|
||||
ui.selectable_value(&mut self.selected_position, "Гойдазовчик".to_owned(), "Гойдазовчик");
|
||||
ui.selectable_value(&mut self.selected_position, "Гойдазовчик1".to_owned(), "Гойдазовчик");
|
||||
ui.selectable_value(&mut self.selected_position, "Гойдазовчик2".to_owned(), "Гойдазовчик");
|
||||
self.rt.block_on(async{
|
||||
for pos in self.db_oper.get_position().await.unwrap().iter(){
|
||||
ui.selectable_value(&mut self.selected_position, pos.id, pos.name);
|
||||
}
|
||||
});p
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -303,7 +307,27 @@ impl WorkerTabViewer{
|
|||
ui.vertical_centered(|ui|{
|
||||
let resp = ui.add_enabled(self.can_add, egui::Button::new("Добавить"));
|
||||
if resp.clicked(){
|
||||
todo!();
|
||||
self.rt.block_on(async{
|
||||
let poss = self.db_oper.get_position().await.unwrap();
|
||||
|
||||
self.db_oper.add_worker(Worker
|
||||
{
|
||||
id: 0,
|
||||
full_name: self.add_worker_name.clone(),
|
||||
hire_date: chrono::DateTime::parse_from_str(&self.add_worker_hire_date, "%d-%m-%Y")
|
||||
.unwrap()
|
||||
.into(),
|
||||
position: (|| -> Position{
|
||||
for pos in poss{
|
||||
if pos.id.to_string() == self.selected_position{
|
||||
return pos
|
||||
}
|
||||
})
|
||||
},
|
||||
is_fired: ()
|
||||
});
|
||||
})
|
||||
|
||||
}
|
||||
// if ui.button("Добавить").clicked(){
|
||||
|
||||
|
|
@ -387,6 +411,8 @@ impl Default for WorkerTabViewer{
|
|||
selected_position: String::new(),
|
||||
add_worker_hire_date: String::new(),
|
||||
can_add: false,
|
||||
db_oper.
|
||||
rt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ use sqlx::mysql::MySqlPool;
|
|||
|
||||
|
||||
use dotenvy::dotenv_override;
|
||||
use sqlx::mysql::MySqlQueryResult;
|
||||
use std::env;
|
||||
// use crate::schema::equipment::dsl::*;
|
||||
// use crate::schema::worker::dsl::*;
|
||||
|
|
@ -61,10 +62,20 @@ impl DBOperator{
|
|||
}
|
||||
Ok(false)
|
||||
}
|
||||
pub async fn add_worker(&self, worker: Worker){
|
||||
match sqlx::query!("INSERT INTO Brewery.worker (id, position_id, hire_date, is_fired, full_name) VALUES(0, ?, ?, ?, ?);",worker.position.id, worker.hire_date ,worker.is_fired,worker.full_name).fetch(&self.pool).{
|
||||
pub async fn add_worker(&self, worker: Worker) -> Result<bool,sqlx::Error>{
|
||||
// sqlx::query!("INSERT INTO Brewery.worker (id, position_id, hire_date, is_fired, full_name) VALUES(0, ?, ?, ?, ?);",worker.position.id, worker.hire_date ,worker.is_fired,worker.full_name)
|
||||
match(sqlx::query("INSERT INTO Brewery.worker (id, position_id, hire_date, is_fired, full_name) VALUES(0, ?, ?, ?, ?);")
|
||||
.bind(worker.position.id)
|
||||
.bind(worker.hire_date)
|
||||
.bind(worker.is_fired)
|
||||
.bind(worker.full_name)
|
||||
.execute(&self.pool)
|
||||
.await){
|
||||
Ok(_) =>{
|
||||
|
||||
return Ok(true)
|
||||
},
|
||||
Err(_) =>{
|
||||
Ok(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -74,6 +85,7 @@ impl DBOperator{
|
|||
|
||||
|
||||
|
||||
|
||||
pub async fn estabilish_connection() -> Result<(), sqlx::Error>{
|
||||
dotenv_override().ok();
|
||||
let db_url = env::var("DATABASE_URL").expect("DATABASE_URL установи!");
|
||||
|
|
|
|||
Loading…
Reference in New Issue