Make sure the selected taxes in show expense is nil if there is none

For some reason, pgx tries to convert [""] to an int array and fails,
because "" is not a number, of course.
This commit is contained in:
jordi fita mas 2023-10-02 12:49:54 +02:00
parent 831becf6fd
commit 80a6a802a2
3 changed files with 39 additions and 35 deletions

View File

@ -357,7 +357,7 @@ func (form *expenseForm) MustFillFromDatabase(ctx context.Context, conn *Conn, s
, invoice_number , invoice_number
, invoice_date , invoice_date
, to_price(amount, decimal_digits) , to_price(amount, decimal_digits)
, array_agg(tax_id) , array_agg(tax_id) filter ( where tax_id is not null )
, expense_status , expense_status
, tags , tags
from expense from expense
@ -382,6 +382,10 @@ func (form *expenseForm) MustFillFromDatabase(ctx context.Context, conn *Conn, s
form.ExpenseStatus.Selected = selectedExpenseStatus form.ExpenseStatus.Selected = selectedExpenseStatus
return false return false
} }
if len(form.Tax.Selected) == 1 && form.Tax.Selected[0] == "" {
form.Tax.Selected = nil
}
fmt.Println(form.Tax.Selected)
return true return true
} }
func HandleUpdateExpense(w http.ResponseWriter, r *http.Request, params httprouter.Params) { func HandleUpdateExpense(w http.ResponseWriter, r *http.Request, params httprouter.Params) {

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: numerus\n" "Project-Id-Version: numerus\n"
"Report-Msgid-Bugs-To: jordi@tandem.blog\n" "Report-Msgid-Bugs-To: jordi@tandem.blog\n"
"POT-Creation-Date: 2023-10-02 12:11+0200\n" "POT-Creation-Date: 2023-10-02 12:49+0200\n"
"PO-Revision-Date: 2023-01-18 17:08+0100\n" "PO-Revision-Date: 2023-01-18 17:08+0100\n"
"Last-Translator: jordi fita mas <jordi@tandem.blog>\n" "Last-Translator: jordi fita mas <jordi@tandem.blog>\n"
"Language-Team: Catalan <ca@dodds.net>\n" "Language-Team: Catalan <ca@dodds.net>\n"
@ -735,37 +735,37 @@ msgid "Name"
msgstr "Nom" msgstr "Nom"
#: pkg/products.go:177 pkg/products.go:303 pkg/quote.go:174 pkg/quote.go:708 #: pkg/products.go:177 pkg/products.go:303 pkg/quote.go:174 pkg/quote.go:708
#: pkg/expenses.go:307 pkg/expenses.go:471 pkg/invoices.go:174 #: pkg/expenses.go:307 pkg/expenses.go:475 pkg/invoices.go:174
#: pkg/invoices.go:746 pkg/invoices.go:1331 pkg/contacts.go:154 #: pkg/invoices.go:746 pkg/invoices.go:1331 pkg/contacts.go:154
#: pkg/contacts.go:362 #: pkg/contacts.go:362
msgctxt "input" msgctxt "input"
msgid "Tags" msgid "Tags"
msgstr "Etiquetes" msgstr "Etiquetes"
#: pkg/products.go:181 pkg/quote.go:178 pkg/expenses.go:481 pkg/invoices.go:178 #: pkg/products.go:181 pkg/quote.go:178 pkg/expenses.go:485 pkg/invoices.go:178
#: pkg/contacts.go:158 #: pkg/contacts.go:158
msgctxt "input" msgctxt "input"
msgid "Tags Condition" msgid "Tags Condition"
msgstr "Condició de les etiquetes" msgstr "Condició de les etiquetes"
#: pkg/products.go:185 pkg/quote.go:182 pkg/expenses.go:485 pkg/invoices.go:182 #: pkg/products.go:185 pkg/quote.go:182 pkg/expenses.go:489 pkg/invoices.go:182
#: pkg/contacts.go:162 #: pkg/contacts.go:162
msgctxt "tag condition" msgctxt "tag condition"
msgid "All" msgid "All"
msgstr "Totes" msgstr "Totes"
#: pkg/products.go:186 pkg/expenses.go:486 pkg/invoices.go:183 #: pkg/products.go:186 pkg/expenses.go:490 pkg/invoices.go:183
#: pkg/contacts.go:163 #: pkg/contacts.go:163
msgid "Invoices must have all the specified labels." msgid "Invoices must have all the specified labels."
msgstr "Les factures han de tenir totes les etiquetes." msgstr "Les factures han de tenir totes les etiquetes."
#: pkg/products.go:190 pkg/quote.go:187 pkg/expenses.go:490 pkg/invoices.go:187 #: pkg/products.go:190 pkg/quote.go:187 pkg/expenses.go:494 pkg/invoices.go:187
#: pkg/contacts.go:167 #: pkg/contacts.go:167
msgctxt "tag condition" msgctxt "tag condition"
msgid "Any" msgid "Any"
msgstr "Qualsevol" msgstr "Qualsevol"
#: pkg/products.go:191 pkg/expenses.go:491 pkg/invoices.go:188 #: pkg/products.go:191 pkg/expenses.go:495 pkg/invoices.go:188
#: pkg/contacts.go:168 #: pkg/contacts.go:168
msgid "Invoices must have at least one of the specified labels." msgid "Invoices must have at least one of the specified labels."
msgstr "Les factures han de tenir com a mínim una de les etiquetes." msgstr "Les factures han de tenir com a mínim una de les etiquetes."
@ -1028,7 +1028,7 @@ msgctxt "input"
msgid "Quotation Status" msgid "Quotation Status"
msgstr "Estat del pressupost" msgstr "Estat del pressupost"
#: pkg/quote.go:154 pkg/expenses.go:476 pkg/invoices.go:154 #: pkg/quote.go:154 pkg/expenses.go:480 pkg/invoices.go:154
msgid "All status" msgid "All status"
msgstr "Tots els estats" msgstr "Tots els estats"
@ -1037,12 +1037,12 @@ msgctxt "input"
msgid "Quotation Number" msgid "Quotation Number"
msgstr "Número de pressupost" msgstr "Número de pressupost"
#: pkg/quote.go:164 pkg/expenses.go:461 pkg/invoices.go:164 #: pkg/quote.go:164 pkg/expenses.go:465 pkg/invoices.go:164
msgctxt "input" msgctxt "input"
msgid "From Date" msgid "From Date"
msgstr "A partir de la data" msgstr "A partir de la data"
#: pkg/quote.go:169 pkg/expenses.go:466 pkg/invoices.go:169 #: pkg/quote.go:169 pkg/expenses.go:470 pkg/invoices.go:169
msgctxt "input" msgctxt "input"
msgid "To Date" msgid "To Date"
msgstr "Fins la data" msgstr "Fins la data"
@ -1063,8 +1063,8 @@ msgstr "pressuposts.zip"
msgid "quotations.ods" msgid "quotations.ods"
msgstr "pressuposts.ods" msgstr "pressuposts.ods"
#: pkg/quote.go:634 pkg/quote.go:1176 pkg/quote.go:1184 pkg/expenses.go:680 #: pkg/quote.go:634 pkg/quote.go:1176 pkg/quote.go:1184 pkg/expenses.go:684
#: pkg/expenses.go:706 pkg/invoices.go:677 pkg/invoices.go:1306 #: pkg/expenses.go:710 pkg/invoices.go:677 pkg/invoices.go:1306
#: pkg/invoices.go:1314 #: pkg/invoices.go:1314
msgid "Invalid action" msgid "Invalid action"
msgstr "Acció invàlida." msgstr "Acció invàlida."
@ -1223,7 +1223,7 @@ msgstr "Any anterior"
msgid "Select a contact." msgid "Select a contact."
msgstr "Escolliu un contacte." msgstr "Escolliu un contacte."
#: pkg/expenses.go:258 pkg/expenses.go:450 #: pkg/expenses.go:258 pkg/expenses.go:454
msgctxt "input" msgctxt "input"
msgid "Contact" msgid "Contact"
msgstr "Contacte" msgstr "Contacte"
@ -1248,7 +1248,7 @@ msgctxt "input"
msgid "File" msgid "File"
msgstr "Fitxer" msgstr "Fitxer"
#: pkg/expenses.go:301 pkg/expenses.go:475 #: pkg/expenses.go:301 pkg/expenses.go:479
msgctxt "input" msgctxt "input"
msgid "Expense Status" msgid "Expense Status"
msgstr "Estat de la despesa" msgstr "Estat de la despesa"
@ -1273,16 +1273,16 @@ msgstr "Limport ha de ser un número major a zero."
msgid "Selected expense status is not valid." msgid "Selected expense status is not valid."
msgstr "Heu seleccionat un estat de despesa que no és vàlid." msgstr "Heu seleccionat un estat de despesa que no és vàlid."
#: pkg/expenses.go:451 #: pkg/expenses.go:455
msgid "All contacts" msgid "All contacts"
msgstr "Tots els contactes" msgstr "Tots els contactes"
#: pkg/expenses.go:456 pkg/invoices.go:159 #: pkg/expenses.go:460 pkg/invoices.go:159
msgctxt "input" msgctxt "input"
msgid "Invoice Number" msgid "Invoice Number"
msgstr "Número de factura" msgstr "Número de factura"
#: pkg/expenses.go:704 #: pkg/expenses.go:708
msgid "expenses.ods" msgid "expenses.ods"
msgstr "despeses.ods" msgstr "despeses.ods"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: numerus\n" "Project-Id-Version: numerus\n"
"Report-Msgid-Bugs-To: jordi@tandem.blog\n" "Report-Msgid-Bugs-To: jordi@tandem.blog\n"
"POT-Creation-Date: 2023-10-02 12:11+0200\n" "POT-Creation-Date: 2023-10-02 12:49+0200\n"
"PO-Revision-Date: 2023-01-18 17:45+0100\n" "PO-Revision-Date: 2023-01-18 17:45+0100\n"
"Last-Translator: jordi fita mas <jordi@tandem.blog>\n" "Last-Translator: jordi fita mas <jordi@tandem.blog>\n"
"Language-Team: Spanish <es@tp.org.es>\n" "Language-Team: Spanish <es@tp.org.es>\n"
@ -735,37 +735,37 @@ msgid "Name"
msgstr "Nombre" msgstr "Nombre"
#: pkg/products.go:177 pkg/products.go:303 pkg/quote.go:174 pkg/quote.go:708 #: pkg/products.go:177 pkg/products.go:303 pkg/quote.go:174 pkg/quote.go:708
#: pkg/expenses.go:307 pkg/expenses.go:471 pkg/invoices.go:174 #: pkg/expenses.go:307 pkg/expenses.go:475 pkg/invoices.go:174
#: pkg/invoices.go:746 pkg/invoices.go:1331 pkg/contacts.go:154 #: pkg/invoices.go:746 pkg/invoices.go:1331 pkg/contacts.go:154
#: pkg/contacts.go:362 #: pkg/contacts.go:362
msgctxt "input" msgctxt "input"
msgid "Tags" msgid "Tags"
msgstr "Etiquetes" msgstr "Etiquetes"
#: pkg/products.go:181 pkg/quote.go:178 pkg/expenses.go:481 pkg/invoices.go:178 #: pkg/products.go:181 pkg/quote.go:178 pkg/expenses.go:485 pkg/invoices.go:178
#: pkg/contacts.go:158 #: pkg/contacts.go:158
msgctxt "input" msgctxt "input"
msgid "Tags Condition" msgid "Tags Condition"
msgstr "Condición de las etiquetas" msgstr "Condición de las etiquetas"
#: pkg/products.go:185 pkg/quote.go:182 pkg/expenses.go:485 pkg/invoices.go:182 #: pkg/products.go:185 pkg/quote.go:182 pkg/expenses.go:489 pkg/invoices.go:182
#: pkg/contacts.go:162 #: pkg/contacts.go:162
msgctxt "tag condition" msgctxt "tag condition"
msgid "All" msgid "All"
msgstr "Todas" msgstr "Todas"
#: pkg/products.go:186 pkg/expenses.go:486 pkg/invoices.go:183 #: pkg/products.go:186 pkg/expenses.go:490 pkg/invoices.go:183
#: pkg/contacts.go:163 #: pkg/contacts.go:163
msgid "Invoices must have all the specified labels." msgid "Invoices must have all the specified labels."
msgstr "Las facturas deben tener todas las etiquetas." msgstr "Las facturas deben tener todas las etiquetas."
#: pkg/products.go:190 pkg/quote.go:187 pkg/expenses.go:490 pkg/invoices.go:187 #: pkg/products.go:190 pkg/quote.go:187 pkg/expenses.go:494 pkg/invoices.go:187
#: pkg/contacts.go:167 #: pkg/contacts.go:167
msgctxt "tag condition" msgctxt "tag condition"
msgid "Any" msgid "Any"
msgstr "Cualquiera" msgstr "Cualquiera"
#: pkg/products.go:191 pkg/expenses.go:491 pkg/invoices.go:188 #: pkg/products.go:191 pkg/expenses.go:495 pkg/invoices.go:188
#: pkg/contacts.go:168 #: pkg/contacts.go:168
msgid "Invoices must have at least one of the specified labels." msgid "Invoices must have at least one of the specified labels."
msgstr "Las facturas deben tener como mínimo una de las etiquetas." msgstr "Las facturas deben tener como mínimo una de las etiquetas."
@ -1028,7 +1028,7 @@ msgctxt "input"
msgid "Quotation Status" msgid "Quotation Status"
msgstr "Estado del presupuesto" msgstr "Estado del presupuesto"
#: pkg/quote.go:154 pkg/expenses.go:476 pkg/invoices.go:154 #: pkg/quote.go:154 pkg/expenses.go:480 pkg/invoices.go:154
msgid "All status" msgid "All status"
msgstr "Todos los estados" msgstr "Todos los estados"
@ -1037,12 +1037,12 @@ msgctxt "input"
msgid "Quotation Number" msgid "Quotation Number"
msgstr "Número de presupuesto" msgstr "Número de presupuesto"
#: pkg/quote.go:164 pkg/expenses.go:461 pkg/invoices.go:164 #: pkg/quote.go:164 pkg/expenses.go:465 pkg/invoices.go:164
msgctxt "input" msgctxt "input"
msgid "From Date" msgid "From Date"
msgstr "A partir de la fecha" msgstr "A partir de la fecha"
#: pkg/quote.go:169 pkg/expenses.go:466 pkg/invoices.go:169 #: pkg/quote.go:169 pkg/expenses.go:470 pkg/invoices.go:169
msgctxt "input" msgctxt "input"
msgid "To Date" msgid "To Date"
msgstr "Hasta la fecha" msgstr "Hasta la fecha"
@ -1063,8 +1063,8 @@ msgstr "presupuestos.zip"
msgid "quotations.ods" msgid "quotations.ods"
msgstr "presupuestos.ods" msgstr "presupuestos.ods"
#: pkg/quote.go:634 pkg/quote.go:1176 pkg/quote.go:1184 pkg/expenses.go:680 #: pkg/quote.go:634 pkg/quote.go:1176 pkg/quote.go:1184 pkg/expenses.go:684
#: pkg/expenses.go:706 pkg/invoices.go:677 pkg/invoices.go:1306 #: pkg/expenses.go:710 pkg/invoices.go:677 pkg/invoices.go:1306
#: pkg/invoices.go:1314 #: pkg/invoices.go:1314
msgid "Invalid action" msgid "Invalid action"
msgstr "Acción inválida." msgstr "Acción inválida."
@ -1223,7 +1223,7 @@ msgstr "Año anterior"
msgid "Select a contact." msgid "Select a contact."
msgstr "Escoged un contacto" msgstr "Escoged un contacto"
#: pkg/expenses.go:258 pkg/expenses.go:450 #: pkg/expenses.go:258 pkg/expenses.go:454
msgctxt "input" msgctxt "input"
msgid "Contact" msgid "Contact"
msgstr "Contacto" msgstr "Contacto"
@ -1248,7 +1248,7 @@ msgctxt "input"
msgid "File" msgid "File"
msgstr "Archivo" msgstr "Archivo"
#: pkg/expenses.go:301 pkg/expenses.go:475 #: pkg/expenses.go:301 pkg/expenses.go:479
msgctxt "input" msgctxt "input"
msgid "Expense Status" msgid "Expense Status"
msgstr "Estado del gasto" msgstr "Estado del gasto"
@ -1273,16 +1273,16 @@ msgstr "El importe tiene que ser un número mayor a cero."
msgid "Selected expense status is not valid." msgid "Selected expense status is not valid."
msgstr "Habéis escogido un estado de gasto que no es válido." msgstr "Habéis escogido un estado de gasto que no es válido."
#: pkg/expenses.go:451 #: pkg/expenses.go:455
msgid "All contacts" msgid "All contacts"
msgstr "Todos los contactos" msgstr "Todos los contactos"
#: pkg/expenses.go:456 pkg/invoices.go:159 #: pkg/expenses.go:460 pkg/invoices.go:159
msgctxt "input" msgctxt "input"
msgid "Invoice Number" msgid "Invoice Number"
msgstr "Número de factura" msgstr "Número de factura"
#: pkg/expenses.go:704 #: pkg/expenses.go:708
msgid "expenses.ods" msgid "expenses.ods"
msgstr "gastos.ods" msgstr "gastos.ods"