Actualizar la cuenta de soporte desde la expiración a la factura

En este ejemplo, vemos cómo actualizar la cuenta de soporte en la factura a partir de la expiración.

Grupo ScriptEvento
FichaPost Guardado
gguidp = dataview.getvalue("gguidp")
tap    = dataview.getvalue("tap")
 
if gguidp == "" or tap == "" then
        do return end
end

Primero, veamos si la expiración realmente tiene un registro padre marcando el campo gguid y tap, ya que todo el programa vincula los registros usando estos dos valores.

El valor de gguidp identifica la línea padre, mientras que el valor de tap identifica la tabla padre. Si estos campos no tienen valores, el usuario creó la expiración; de ​​lo contrario, fue otra tabla la que la creó.

gguidc = dataview.getvalue("gguid_supportaccount")
if gguidc == "" then
        do return end
end

También recuperamos el gguid de la cuenta de soporte (gguid_supportaccount). Nuevamente, si no tiene un valor, salimos del script.

tablebill = database.getsql("SELECT * FROM companyaccounts WHERE gguid='" .. gguidc .. "'")
 
if tablebill.countrows() == 0 then
        do return end
end
rows = tablebill.getrows()


output.print(rows[1].getvalue("billname"))
output.print(righe[1].getvalue("bankaccount"))
output.print(righe[1].getvalue("iban"))

Recupero los valores de la cuenta corriente (bankaccount) de su gguid. Estos valores serán los que escribiré en la factura.

database.setsql("UPDATE " .. tap .. " SET TID=" .. tostring(utility.tid()) .. ",supportaccount='" .. utility.convap(rows[1].getvalue("billname")) .. "',currentaccountfirm='" .. utility.convap(rows[1].getvalue("bankaccount")) .. "',ibanfirm='" .. utility.convap(rows[1].getvalue("iban")) .. "' WHERE gguid='" .. gguidp .. "'")

database.addsyncbox(tap,gguidp)
program.refreshsection("invoices"

Por último, actualizo la factura relacionada con los datos de la cuenta. Si la base de datos es de tipo Nube, será necesario recordar actualizar siempre el tid (la fecha y la hora de modificación del registro) y agregarlo al syncbox.

Modificado los datos, forzamos la actualización de las secciones que llaman la tabla de facturas.