Compare commits
2 Commits
v1.3.59
...
v1.3.61-fix
| Author | SHA1 | Date | |
|---|---|---|---|
| 32728eec37 | |||
| 905ca253d7 |
@@ -248,24 +248,24 @@ impl SupabaseClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Atualiza campos específicos de um fechamento pelo id numérico (pk) ou UUID.
|
/// Atualiza campos específicos de um fechamento pelo id_fechamento.
|
||||||
pub fn atualizar_fechamento(&self, id: Option<i64>, uuid: &str, updates: &serde_json::Value) -> Result<Value, SupabaseError> {
|
pub fn atualizar_fechamento(&self, id_fechamento: &str, updates: &serde_json::Value) -> Result<Value, SupabaseError> {
|
||||||
// Se temos id numerico, usa id=eq.; senao usa id=eq.UUID
|
let url = format!(
|
||||||
let url = if let Some(num) = id {
|
"{}/rest/v1/fechamentos_web?id_fechamento=eq.{}",
|
||||||
format!("{}/rest/v1/fechamentos_web?id=eq.{}", self.base_url, num)
|
self.base_url,
|
||||||
} else {
|
urlencoding::encode(id_fechamento)
|
||||||
format!("{}/rest/v1/fechamentos_web?id=eq.{}", self.base_url, uuid)
|
);
|
||||||
};
|
|
||||||
|
|
||||||
let resp = self
|
let resp = self
|
||||||
.http
|
.http
|
||||||
.patch(&url)
|
.patch(&url)
|
||||||
.headers(self.headers(true))
|
.headers(self.headers(true))
|
||||||
|
.header("Prefer", "return=representation")
|
||||||
.json(updates)
|
.json(updates)
|
||||||
.send()?;
|
.send()?;
|
||||||
|
|
||||||
if resp.status().is_success() {
|
if resp.status().is_success() {
|
||||||
Ok(serde_json::json!({ "ok": true, "id": id.unwrap_or(0) }))
|
Ok(serde_json::json!({ "ok": true, "id_fechamento": id_fechamento }))
|
||||||
} else {
|
} else {
|
||||||
let status = resp.status();
|
let status = resp.status();
|
||||||
let body = resp.text().unwrap_or_default();
|
let body = resp.text().unwrap_or_default();
|
||||||
@@ -504,16 +504,13 @@ pub fn sb_buscar_por_id_fechamento(
|
|||||||
sb.buscar_por_id_fechamento(&id_fechamento)
|
sb.buscar_por_id_fechamento(&id_fechamento)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command(rename_all = "snake_case")]
|
||||||
pub fn sb_atualizar_fechamento(
|
pub fn sb_atualizar_fechamento(
|
||||||
sb: State<'_, SupabaseClient>,
|
sb: State<'_, SupabaseClient>,
|
||||||
id: String,
|
id_fechamento: String,
|
||||||
updates: serde_json::Value,
|
updates: serde_json::Value,
|
||||||
) -> Result<serde_json::Value, SupabaseError> {
|
) -> Result<serde_json::Value, SupabaseError> {
|
||||||
// Tenta primeiro como i64 (id numerico), depois como String (UUID)
|
sb.atualizar_fechamento(&id_fechamento, &updates)
|
||||||
let id_i64 = id.parse::<i64>().ok();
|
|
||||||
let id_str = &id;
|
|
||||||
sb.atualizar_fechamento(id_i64, id_str, &updates)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
|
|||||||
+10
-5
@@ -2941,6 +2941,9 @@ window.salvarEdicaoModal = async function() {
|
|||||||
const operador = estado.operador || full.operador || '';
|
const operador = estado.operador || full.operador || '';
|
||||||
|
|
||||||
const updates = {
|
const updates = {
|
||||||
|
// Chave natural — essencial para o Supabase encontrar o registro
|
||||||
|
id_fechamento: inp('edit-loja') + '_' + inp('edit-data') + '_' + inp('edit-operador'),
|
||||||
|
|
||||||
// Identificação
|
// Identificação
|
||||||
loja: inp('edit-loja'),
|
loja: inp('edit-loja'),
|
||||||
data: inp('edit-data'),
|
data: inp('edit-data'),
|
||||||
@@ -3001,13 +3004,15 @@ window.salvarEdicaoModal = async function() {
|
|||||||
if (!hasTauri) { alert('Tauri não disponível.'); return; }
|
if (!hasTauri) { alert('Tauri não disponível.'); return; }
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Usa uuid (string) — que é o id externo do registro no Supabase
|
// Usa id_fechamento que é a chave natural do registro
|
||||||
const uuid = full.uuid || full.id;
|
const id_fechamento = full.id_fechamento || (full.loja && full.data && full.operador
|
||||||
if (!uuid) { alert('UUID do registro não encontrado.'); return; }
|
? `${full.loja}_${full.data}_${full.operador}`.toLowerCase().replace(/ /g, '_')
|
||||||
console.log('[DEBUG] salvarEdicaoModal uuid:', uuid, 'updates:', JSON.stringify(updates));
|
: null);
|
||||||
|
if (!id_fechamento) { alert('id_fechamento não encontrado.'); return; }
|
||||||
|
console.log('[DEBUG] salvarEdicaoModal id_fechamento:', id_fechamento, 'updates:', JSON.stringify(updates));
|
||||||
|
|
||||||
console.log('[DEBUG] invoking sb_atualizar_fechamento...');
|
console.log('[DEBUG] invoking sb_atualizar_fechamento...');
|
||||||
const result = await window.__TAURI__.core.invoke('sb_atualizar_fechamento', { id: uuid, updates: JSON.stringify(updates) });
|
const result = await window.__TAURI__.core.invoke('sb_atualizar_fechamento', { id_fechamento, updates: JSON.stringify(updates) });
|
||||||
console.log('[DEBUG] invoke result:', result);
|
console.log('[DEBUG] invoke result:', result);
|
||||||
closeEditModal();
|
closeEditModal();
|
||||||
closeRelatorioModal();
|
closeRelatorioModal();
|
||||||
|
|||||||
Reference in New Issue
Block a user