From 118387585c38cd04b66e9f23763950e8bd9f3b63 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 8 Jul 2023 10:05:55 +1000 Subject: [PATCH 1/6] fr_ch translations --- ...8_000314_add_french_swiss_translations.php | 37 +++ database/seeders/LanguageSeeder.php | 1 + lang/de/texts.php | 18 +- lang/en/texts.php | 2 +- lang/fr_CA/texts.php | 2 + lang/fr_CH/texts.php | 218 +++++++++--------- 6 files changed, 165 insertions(+), 113 deletions(-) create mode 100644 database/migrations/2023_07_08_000314_add_french_swiss_translations.php diff --git a/database/migrations/2023_07_08_000314_add_french_swiss_translations.php b/database/migrations/2023_07_08_000314_add_french_swiss_translations.php new file mode 100644 index 000000000000..3f3b03e882cb --- /dev/null +++ b/database/migrations/2023_07_08_000314_add_french_swiss_translations.php @@ -0,0 +1,37 @@ + 40, 'name' => 'French - Swiss', 'locale' => 'fr_CH']); + } + + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +}; diff --git a/database/seeders/LanguageSeeder.php b/database/seeders/LanguageSeeder.php index 5677b70f10e0..db6520109357 100644 --- a/database/seeders/LanguageSeeder.php +++ b/database/seeders/LanguageSeeder.php @@ -64,6 +64,7 @@ class LanguageSeeder extends Seeder ['id' => 37, 'name' => 'Hebrew', 'locale' => 'he'], ['id' => 38, 'name' => 'Khmer', 'locale' => 'km_KH'], ['id' => 39, 'name' => 'Hungarian', 'locale' => 'hu'], + ['id' => 40, 'name' => 'French - Swiss', 'locale' => 'fr_CH'], ]; foreach ($languages as $language) { diff --git a/lang/de/texts.php b/lang/de/texts.php index 9d082760db43..a1c2ad677771 100644 --- a/lang/de/texts.php +++ b/lang/de/texts.php @@ -767,7 +767,7 @@ $LANG = array( 'activity_19' => ':user aktualisierte Angebot :quote', 'activity_20' => ':user mailte Angebot :quote für :client an :contact', 'activity_21' => ':contact schaute Angebot :quote an', - 'activity_22' => ':user archivierte Angebot :quote', + 'activity_22' => ':user archiviertes Angebot :quote', 'activity_23' => ':user löschte Angebot :quote', 'activity_24' => ':user stellte Angebot :quote wieder her', 'activity_25' => ':user stellte Rechnung :invoice wieder her', @@ -904,7 +904,7 @@ $LANG = array( 'payment_terms_net' => 'Netto', 'vendor' => 'Lieferant', 'edit_vendor' => 'Lieferant Bearbeiten', - 'archive_vendor' => 'Lieferant Archivieren', + 'archive_vendor' => 'Lieferant archivieren', 'delete_vendor' => 'Lieferant Löschen', 'view_vendor' => 'Lieferant Ansehen', 'deleted_expense' => 'Ausgabe erfolgreich gelöscht', @@ -923,7 +923,7 @@ $LANG = array( 'should_be_invoiced' => 'Sollte in Rechnung gestellt werden', 'view_expense' => 'Ausgabe # :expense ansehen', 'edit_expense' => 'Ausgabe Bearbeiten', - 'archive_expense' => 'Ausgabe Archivieren', + 'archive_expense' => 'Ausgabe archivieren', 'delete_expense' => 'Ausgabe Löschen', 'view_expense_num' => 'Ausgabe # :expense', 'updated_expense' => 'Ausgabe erfolgreich aktualisiert', @@ -4534,12 +4534,12 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting', 'auto_archive_invoice_cancelled_help' => 'Automatisch Rechnungen archivieren, wenn diese storniert wurden', 'no_invoices_found' => 'Keine Rechnungen gefunden', 'created_record' => 'Eintrag erfolgreich erstellt.', - 'auto_archive_paid_invoices' => 'Bezahltes Automatisch Archivieren', + 'auto_archive_paid_invoices' => 'Bezahltes automatisch archivieren', 'auto_archive_paid_invoices_help' => 'Automatische Archivierung von Rechnungen, wenn diese als bezahlt markiert werden.', 'auto_archive_cancelled_invoices' => 'Auto-Archivierung abgebrochen', 'auto_archive_cancelled_invoices_help' => 'Automatisch Rechnungen archivieren, wenn diese storniert wurden.', 'alternate_pdf_viewer' => 'Alternativer PDF Viewer', - 'alternate_pdf_viewer_help' => 'Verbessere das Scrolling über die PDF Vorschau [BETA]', + 'alternate_pdf_viewer_help' => 'Verbessere das Scrolling über die PDF-Vorschau [BETA]', 'currency_cayman_island_dollar' => 'Cayman Island Dollar', 'download_report_description' => 'Bitte das angehängte Dokument öffnen, um den Report anzusehen.', 'left' => 'Links', @@ -4604,7 +4604,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting', 'yes_its_great' => 'Ja, es ist super!', 'not_so_much' => 'Nein, eher weniger', 'would_you_rate_it' => 'Danke für das Feedback, mächten Sie die App bewerten?', - 'would_you_tell_us_more' => 'Das tut uns leid, dass zu hören. Was gefällt Ihnen nicht?', + 'would_you_tell_us_more' => 'Es tut uns leid, das zu hören. Was gefällt Ihnen nicht?', 'sure_happy_to' => 'Gerne', 'no_not_now' => 'Nein, nicht jetzt.', 'add' => 'Hinzufügen', @@ -5116,6 +5116,12 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting', 'item_tax_rate2' => 'Item Tax Rate 2', 'item_tax_rate3' => 'Item Tax Rate 3', 'buy_price' => 'Buy Price', + 'country_Macedonia' => 'Macedonia', + 'admin_initiated_payments' => 'Admin Initiated Payments', + 'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice', + 'paid_date' => 'Paid Date', + 'downloaded_entities' => 'An email will be sent with the PDFs', + ); diff --git a/lang/en/texts.php b/lang/en/texts.php index d2fd84e8f9bb..6f5249b9955b 100644 --- a/lang/en/texts.php +++ b/lang/en/texts.php @@ -5119,7 +5119,7 @@ $LANG = array( 'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice', 'paid_date' => 'Paid Date', 'downloaded_entities' => 'An email will be sent with the PDFs', - + 'lang_French - Swiss' => 'French - Swiss', ); diff --git a/lang/fr_CA/texts.php b/lang/fr_CA/texts.php index b3b83e49d287..9d812017526c 100644 --- a/lang/fr_CA/texts.php +++ b/lang/fr_CA/texts.php @@ -5110,6 +5110,8 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'admin_initiated_payments' => 'Paiements initiés par l\'administration', 'admin_initiated_payments_help' => 'Permet la saisie d\'un paiement dans le portal d\'administration sans facture', 'paid_date' => 'Date de paiement', + 'downloaded_entities' => 'Un courriel sera envoyé avec le ou les PDF', + ); diff --git a/lang/fr_CH/texts.php b/lang/fr_CH/texts.php index 8e2023376875..08cdde2feaff 100644 --- a/lang/fr_CH/texts.php +++ b/lang/fr_CH/texts.php @@ -748,7 +748,7 @@ $LANG = array( 'activity_7' => ':contact a visualisé la facture :invoice pour :client', 'activity_8' => ':user a archivé la facture :invoice', 'activity_9' => ':user a supprimé la facture :invoice', - 'activity_10' => ':user entered payment :payment for :payment_amount on invoice :invoice for :client', + 'activity_10' => ':user a saisi le paiement :payment pour :payment_montant sur la facture :invoice pour :client', 'activity_11' => ':user a mis à jour le paiement :payment', 'activity_12' => ':user a archivé le paiement :payment', 'activity_13' => ':user a supprimé le paiement :payment', @@ -1991,7 +1991,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'current_quarter' => 'Trimestre en cours', 'last_quarter' => 'Dernier trimestre', 'last_year' => 'Dernière année', - 'all_time' => 'All Time', + 'all_time' => 'Tout le temps', 'custom_range' => 'Personnalisé', 'url' => 'URL', 'debug' => 'Débogage', @@ -2252,7 +2252,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'restore_recurring_expense' => 'Restaurer la dépense récurrente', 'restored_recurring_expense' => 'La dépense récurrente a été restaurée avec succès', 'delete_recurring_expense' => 'Supprimer la dépense récurrente', - 'deleted_recurring_expense' => 'Successfully deleted recurring expense', + 'deleted_recurring_expense' => 'Dépense récurrente supprimée avec succès', 'view_recurring_expense' => 'Visualiser la dépense récurrente', 'taxes_and_fees' => 'Taxes et frais', 'import_failed' => 'L\'importation a échoué', @@ -2507,8 +2507,8 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'partial_due_date' => 'Date d\'échéance du paiement partiel', 'task_fields' => 'Champs d\'intervention', 'product_fields_help' => 'Glisser et déposer les champs pour changer l\'ordre', - 'custom_value1' => 'Custom Value 1', - 'custom_value2' => 'Custom Value 2', + 'custom_value1' => 'Valeur personnalisée 1', + 'custom_value2' => 'Valeur personnalisée 2', 'enable_two_factor' => 'Authentification à deux facteurs', 'enable_two_factor_help' => 'Utilisez votre téléphone pour confirmer votre identité lors de la connexion', 'two_factor_setup' => 'Configuration de l\'authentification à deux facteurs', @@ -3855,7 +3855,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'notification_credit_viewed' => 'Un crédit de :amount a été vu par le client :client.', 'reset_password_text' => 'Saisissez votre adresse courriel pour réinitialiser votre mot de passe.', 'password_reset' => 'Réinitialisation du mot de passe', - 'account_login_text' => 'Welcome! Glad to see you.', + 'account_login_text' => 'Accueillir! Content de te voir.', 'request_cancellation' => 'Annuler la demande', 'delete_payment_method' => 'Supprimer le mode de paiement', 'about_to_delete_payment_method' => 'Le mode de paiement sera supprimé', @@ -3969,7 +3969,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'add_payment_method_first' => 'ajouter un mode de paiement', 'no_items_selected' => 'Aucun article sélectionné', 'payment_due' => 'Paiement dû', - 'account_balance' => 'Account Balance', + 'account_balance' => 'Solde du compte', 'thanks' => 'Merci', 'minimum_required_payment' => 'Le paiement minimum requis est :amount', 'under_payments_disabled' => 'La société ne tolère pas le sous-paiement.', @@ -3994,7 +3994,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'notification_invoice_reminder1_sent_subject' => 'Le rappel 1 pour la facture :invoice a été envoyé à :client', 'notification_invoice_reminder2_sent_subject' => 'Le rappel 2 pour la facture :invoice a été envoyé à :client', 'notification_invoice_reminder3_sent_subject' => 'Le rappel 3 pour la facture :invoice a été envoyé à :client', - 'notification_invoice_custom_sent_subject' => 'Custom reminder for Invoice :invoice was sent to :client', + 'notification_invoice_custom_sent_subject' => 'Un rappel personnalisé pour la facture :invoice a été envoyé à :client', 'notification_invoice_reminder_endless_sent_subject' => 'Un rappel perpétuel pour la facture :invoice a été envoyé à :client', 'assigned_user' => 'Utilisateur affecté', 'setup_steps_notice' => 'Pour accéder à la prochaine étape, vous devez tester chaque section.', @@ -4372,7 +4372,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'imported_customers' => 'Successfully started importing customers', 'login_success' => 'Successful Login', 'login_failure' => 'Failed Login', - 'exported_data' => 'Once the file is ready you\'ll receive an email with a download link', + 'exported_data' => 'Une fois le fichier prêt, vous recevrez un e-mail avec un lien de téléchargement', 'include_deleted_clients' => 'Include Deleted Clients', 'include_deleted_clients_help' => 'Load records belonging to deleted clients', 'step_1_sign_in' => 'Step 1: Sign In', @@ -4461,7 +4461,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'activity_123' => ':user deleted recurring expense :recurring_expense', 'activity_124' => ':user restored recurring expense :recurring_expense', 'fpx' => "FPX", - 'to_view_entity_set_password' => 'To view the :entity you need to set a password.', + 'to_view_entity_set_password' => 'Pour afficher le :entity, vous devez définir un mot de passe.', 'unsubscribe' => 'Unsubscribe', 'unsubscribed' => 'Unsubscribed', 'unsubscribed_text' => 'You have been removed from notifications for this document', @@ -4559,7 +4559,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'purchase_order_number' => 'Numéro de bon de commande', 'purchase_order_number_short' => 'Bon de commande #', 'inventory_notification_subject' => 'Inventory threshold notification for product: :product', - 'inventory_notification_body' => 'Threshold of :amount has been reached for product: :product', + 'inventory_notification_body' => 'Le seuil de :amount a été atteint pour le produit : :product', 'activity_130' => ':user a créé le bon de commande :purchase_order', 'activity_131' => ':user a mis à jour le bon de commande :purchase_order', 'activity_132' => ':user a archivé le bon de commande :purchase_order', @@ -4591,7 +4591,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'vendor_document_upload' => 'Vendor Document Upload', 'vendor_document_upload_help' => 'Enable vendors to upload documents', 'are_you_enjoying_the_app' => 'Are you enjoying the app?', - 'yes_its_great' => 'Yes, it\'s great!', + 'yes_its_great' => 'Oui c'est super!', 'not_so_much' => 'Not so much', 'would_you_rate_it' => 'Great to hear! Would you like to rate it?', 'would_you_tell_us_more' => 'Sorry to hear it! Would you like to tell us more?', @@ -4900,7 +4900,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'all_clients' => 'All Clients', 'show_aging_table' => 'Show Aging Table', 'show_payments_table' => 'Afficher le tableau de paiement', - 'only_clients_with_invoices' => 'Only Clients with Invoices', + 'only_clients_with_invoices' => 'Seuls les clients avec factures', 'email_statement' => 'Email Statement', 'once' => 'Once', 'schedules' => 'Schedules', @@ -4962,9 +4962,9 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'white_label_body' => 'Thank you for purchasing a white label license.

Your license key is:

:license_key', 'payment_type_Klarna' => 'Klarna', 'payment_type_Interac E Transfer' => 'Interac E Transfer', - 'xinvoice_payable' => 'Payable within :payeddue days net until :paydate', - 'xinvoice_no_buyers_reference' => "No buyer's reference given", - 'xinvoice_online_payment' => 'The invoice needs to be paid online via the provided link', + 'xinvoice_payable' => 'Payable sous :payeddue jours net jusqu'à :paydate', + 'xinvoice_no_buyers_reference' => "Aucune référence d'acheteur donnée", + 'xinvoice_online_payment' => 'La facture doit être payée en ligne via le lien fourni', 'pre_payment' => 'Prépaiement', 'number_of_payments' => 'Nombre de paiements', 'number_of_payments_helper' => 'Le nombre de fois que ce paiement sera exécuté', @@ -5013,99 +5013,105 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette 'quote_product_columns' => 'Quote Product Columns', 'vendors' => 'Vendors', 'product_sales' => 'Product Sales', - 'user_sales_report_header' => 'User sales report for client/s :client from :start_date to :end_date', - 'client_balance_report' => 'Customer balance report', - 'client_sales_report' => 'Customer sales report', - 'user_sales_report' => 'User sales report', - 'aged_receivable_detailed_report' => 'Aged Receivable Detailed Report', - 'aged_receivable_summary_report' => 'Aged Receivable Summary Report', - 'taxable_amount' => 'Taxable Amount', - 'tax_summary' => 'Tax Summary', - 'oauth_mail' => 'OAuth / Mail', - 'preferences' => 'Preferences', - 'analytics' => 'Analytics', - 'reduced_rate' => 'Reduced Rate', - 'tax_all' => 'Tax All', - 'tax_selected' => 'Tax Selected', + 'user_sales_report_header' => 'Rapport sur les ventes des utilisateurs pour le ou les clients :client de :start_date à :end_date', + 'client_balance_report' => 'Rapport sur le solde du client', + 'client_sales_report' => 'Rapport de ventes client', + 'user_sales_report' => 'Rapport de ventes utilisateur', + 'aged_receivable_detailed_report' => 'Rapport détaillé sur les créances chronologiques', + 'aged_receivable_summary_report' => 'Rapport récapitulatif des créances chronologiques', + 'taxable_amount' => 'Montant imposable', + 'tax_summary' => 'Récapitulatif fiscal', + 'oauth_mail' => 'OAuth / Courrier', + 'preferences' => 'Préférences', + 'analytics' => 'Analytique', + 'reduced_rate' => 'Tarif réduit', + 'tax_all' => 'Taxe Tout', + 'tax_selected' => 'Taxe sélectionnée', 'version' => 'version', - 'seller_subregion' => 'Seller Subregion', - 'calculate_taxes' => 'Calculate Taxes', - 'calculate_taxes_help' => 'Automatically calculate taxes when saving invoices', - 'link_expenses' => 'Link Expenses', - 'converted_client_balance' => 'Converted Client Balance', - 'converted_payment_balance' => 'Converted Payment Balance', - 'total_hours' => 'Total Hours', - 'date_picker_hint' => 'Use +days to set the date in the future', - 'app_help_link' => 'More information ', - 'here' => 'here', - 'industry_Restaurant & Catering' => 'Restaurant & Catering', - 'show_credits_table' => 'Show Credits Table', - 'manual_payment' => 'Payment Manual', - 'tax_summary_report' => 'Tax Summary Report', - 'tax_category' => 'Tax Category', - 'physical_goods' => 'Physical Goods', - 'digital_products' => 'Digital Products', - 'services' => 'Services', - 'shipping' => 'Shipping', - 'tax_exempt' => 'Tax Exempt', - 'late_fee_added_locked_invoice' => 'Late fee for invoice :invoice added on :date', + 'seller_subregion' => 'Sous-région du vendeur', + 'calculate_taxes' => 'Calculer les taxes', + 'calculate_taxes_help' => 'Calculer automatiquement les taxes lors de l'enregistrement des factures', + 'link_expenses' => 'Dépenses de lien', + 'converted_client_balance' => 'Solde client converti', + 'converted_payment_balance' => 'Solde de paiement converti', + 'total_hours' => 'Heures totales', + 'date_picker_hint' => 'Utilisez + jours pour définir la date dans le futur', + 'app_help_link' => 'Plus d'information', + 'here' => 'ici', + 'industry_Restaurant & Catering' => 'Restauration & Traiteur', + 'show_credits_table' => 'Afficher le tableau des crédits', + 'manual_payment' => 'Manuel de paiement', + 'tax_summary_report' => 'Rapport récapitulatif des taxes', + 'tax_category' => 'Catégorie de taxe', + 'physical_goods' => 'Biens physiques', + 'digital_products' => 'Produits numériques', + 'services' => 'Prestations de service', + 'shipping' => 'Expédition', + 'tax_exempt' => 'Exonéré d'impôt', + 'late_fee_added_locked_invoice' => 'Frais de retard pour facture :invoice ajouté sur :date', 'lang_Khmer' => 'Khmer', - 'routing_id' => 'Routing ID', - 'enable_e_invoice' => 'Enable E-Invoice', - 'e_invoice_type' => 'E-Invoice Type', - 'reduced_tax' => 'Reduced Tax', - 'override_tax' => 'Override Tax', - 'zero_rated' => 'Zero Rated', - 'reverse_tax' => 'Reverse Tax', - 'updated_tax_category' => 'Successfully updated the tax category', - 'updated_tax_categories' => 'Successfully updated the tax categories', - 'set_tax_category' => 'Set Tax Category', - 'payment_manual' => 'Payment Manual', - 'expense_payment_type' => 'Expense Payment Type', - 'payment_type_Cash App' => 'Cash App', - 'rename' => 'Rename', - 'renamed_document' => 'Successfully renamed document', - 'e_invoice' => 'E-Invoice', - 'light_dark_mode' => 'Light/Dark Mode', - 'activities' => 'Activities', - 'recent_transactions' => "Here are your company's most recent transactions:", + 'routing_id' => 'ID de routage', + 'enable_e_invoice' => 'Activer la facture électronique', + 'e_invoice_type' => 'Type de facture électronique', + 'reduced_tax' => 'Taxe réduite', + 'override_tax' => 'Remplacer la taxe', + 'zero_rated' => 'Évalué zéro', + 'reverse_tax' => 'Taxe inversée', + 'updated_tax_category' => 'Mise à jour réussie de la catégorie de taxe', + 'updated_tax_categories' => 'Mise à jour réussie des catégories de taxes', + 'set_tax_category' => 'Définir la catégorie de taxe', + 'payment_manual' => 'Manuel de paiement', + 'expense_payment_type' => 'Type de paiement des dépenses', + 'payment_type_Cash App' => 'Application de trésorerie', + 'rename' => 'Renommer', + 'renamed_document' => 'Document renommé avec succès', + 'e_invoice' => 'Facture électronique', + 'light_dark_mode' => 'Mode clair/foncé', + 'activities' => 'Activités', + 'recent_transactions' => "Voici les transactions les plus récentes de votre entreprise :", 'country_Palestine' => "Palestine", - 'country_Taiwan' => 'Taiwan', - 'duties' => 'Duties', - 'order_number' => 'Order Number', - 'order_id' => 'Order', - 'total_invoices_outstanding' => 'Total Invoices Outstanding', - 'recent_activity' => 'Recent Activity', - 'enable_auto_bill' => 'Enable auto billing', - 'email_count_invoices' => 'Email :count invoices', - 'invoice_task_item_description' => 'Invoice Task Item Description', - 'invoice_task_item_description_help' => 'Add the item description to the invoice line items', - 'next_send_time' => 'Next Send Time', - 'uploaded_certificate' => 'Successfully uploaded certificate', - 'certificate_set' => 'Certificate set', - 'certificate_not_set' => 'Certificate not set', - 'passphrase_set' => 'Passphrase set', - 'passphrase_not_set' => 'Passphrase not set', - 'upload_certificate' => 'Upload Certificate', - 'certificate_passphrase' => 'Certificate Passphrase', - 'valid_vat_number' => 'Valid VAT Number', - 'react_notification_link' => 'React Notification Links', - 'react_notification_link_help' => 'Admin emails will contain links to the react application', - 'show_task_billable' => 'Show Task Billable', - 'credit_item' => 'Credit Item', - 'drop_file_here' => 'Drop file here', - 'files' => 'Files', - 'camera' => 'Camera', - 'gallery' => 'Gallery', - 'project_location' => 'Project Location', - 'add_gateway_help_message' => 'Add a payment gateway (ie. Stripe, WePay or PayPal) to accept online payments', - 'lang_Hungarian' => 'Hungarian', - 'use_mobile_to_manage_plan' => 'Use your phone subscription settings to manage your plan', - 'item_tax3' => 'Item Tax3', - 'item_tax_rate1' => 'Item Tax Rate 1', - 'item_tax_rate2' => 'Item Tax Rate 2', - 'item_tax_rate3' => 'Item Tax Rate 3', - 'buy_price' => 'Buy Price', + 'country_Taiwan' => 'Taïwan', + 'duties' => 'Devoirs', + 'order_number' => 'Numéro de commande', + 'order_id' => 'Commande', + 'total_invoices_outstanding' => 'Total des factures impayées', + 'recent_activity' => 'Activité récente', + 'enable_auto_bill' => 'Activer la facturation automatique', + 'email_count_invoices' => 'E-mail :count factures', + 'invoice_task_item_description' => 'Description de l'élément de tâche de la facture', + 'invoice_task_item_description_help' => 'Ajouter la description de l'article aux éléments de ligne de la facture', + 'next_send_time' => 'Prochaine heure d'envoi', + 'uploaded_certificate' => 'Certificat téléchargé avec succès', + 'certificate_set' => 'Ensemble de certificats', + 'certificate_not_set' => 'Certificat non défini', + 'passphrase_set' => 'Jeu de mots de passe', + 'passphrase_not_set' => 'Mot de passe non défini', + 'upload_certificate' => 'Télécharger le certificat', + 'certificate_passphrase' => 'Phrase de passe du certificat', + 'valid_vat_number' => 'Numéro de TVA valide', + 'react_notification_link' => 'Liens de notification de réaction', + 'react_notification_link_help' => 'Les e-mails d'administration contiendront des liens vers l'application de réaction', + 'show_task_billable' => 'Afficher la tâche facturable', + 'credit_item' => 'Article de crédit', + 'drop_file_here' => 'Déposez le fichier ici', + 'files' => 'Des dossiers', + 'camera' => 'Caméra', + 'gallery' => 'Galerie', + 'project_location' => 'Emplacement du projet', + 'add_gateway_help_message' => 'Ajoutez une passerelle de paiement (c.-à-d. Stripe, WePay ou PayPal) pour accepter les paiements en ligne', + 'lang_Hungarian' => 'hongrois', + 'use_mobile_to_manage_plan' => 'Utilisez les paramètres de votre abonnement téléphonique pour gérer votre forfait', + 'item_tax3' => 'Taxe sur les articles3', + 'item_tax_rate1' => 'Taux de taxe sur l'article 1', + 'item_tax_rate2' => 'Taux de taxe sur l'article 2', + 'item_tax_rate3' => 'Taux de taxe sur l'article 3', + 'buy_price' => 'Prix d'achat', + 'country_Macedonia' => 'Macédoine', + 'admin_initiated_payments' => 'Paiements initiés par l'administrateur', + 'admin_initiated_payments_help' => 'Prise en charge de la saisie d'un paiement dans le portail d'administration sans facture', + 'paid_date' => 'La date de paiement', + 'downloaded_entities' => 'Un email sera envoyé avec les PDF', + ); From 8d2f6543dfe1944252826c4c37d191cb0cf3adca Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 8 Jul 2023 10:09:25 +1000 Subject: [PATCH 2/6] fr_ch translations --- app/Console/Commands/TranslationsExport.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Console/Commands/TranslationsExport.php b/app/Console/Commands/TranslationsExport.php index 5668f8d6f5f1..13570d3c0e4d 100644 --- a/app/Console/Commands/TranslationsExport.php +++ b/app/Console/Commands/TranslationsExport.php @@ -51,6 +51,7 @@ class TranslationsExport extends Command 'fi', 'fr', 'fr_CA', + 'fr_CH', 'he', 'hr', 'hu', From 8425569d60b9b65b21bbfd34dd418dd012c4843b Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 8 Jul 2023 20:16:09 +1000 Subject: [PATCH 3/6] Updates for openapi spec --- app/Console/Commands/OpenApiYaml.php | 1 + openapi/api-docs.yaml | 544 ++++++++++++++++++++---- openapi/components/examples.yaml | 72 ++++ openapi/components/schemas/invoice.yaml | 2 - openapi/components/schemas/meta.yaml | 36 ++ openapi/paths.yaml | 282 +++++++++--- openapi/paths/clients.yaml | 16 +- openapi/paths/credits.yaml | 12 +- openapi/paths/invoices.yaml | 12 +- openapi/paths/payments.yaml | 12 +- openapi/paths/products.yaml | 12 +- openapi/paths/projects.yaml | 12 +- openapi/paths/purchase_orders.yaml | 28 +- openapi/paths/quotes.yaml | 12 +- openapi/paths/recurring_invoices.yaml | 12 +- openapi/paths/tasks.yaml | 12 +- openapi/paths/vendors.yaml | 12 +- 17 files changed, 927 insertions(+), 162 deletions(-) create mode 100644 openapi/components/examples.yaml create mode 100644 openapi/components/schemas/meta.yaml diff --git a/app/Console/Commands/OpenApiYaml.php b/app/Console/Commands/OpenApiYaml.php index 530e0da1b7e0..6a63fb565e6b 100644 --- a/app/Console/Commands/OpenApiYaml.php +++ b/app/Console/Commands/OpenApiYaml.php @@ -79,6 +79,7 @@ class OpenApiYaml extends Command Storage::disk('base')->append('/openapi/api-docs.yaml', file_get_contents($path.'/components.yaml')); Storage::disk('base')->append('/openapi/api-docs.yaml', file_get_contents($path.'/components/responses.yaml')); + Storage::disk('base')->append('/openapi/api-docs.yaml', file_get_contents($path.'/components/examples.yaml')); $directory = new DirectoryIterator($path . '/components/responses/'); diff --git a/openapi/api-docs.yaml b/openapi/api-docs.yaml index 0d6a4d73c022..8b97f0483d21 100644 --- a/openapi/api-docs.yaml +++ b/openapi/api-docs.yaml @@ -39,7 +39,7 @@ paths: - $ref: "#/components/parameters/page_meta" responses: 200: - description: "Returns the client object" + description: "Returns the list of activities" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" @@ -49,8 +49,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Client" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Activity' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -266,8 +274,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/BankIntegration" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/BankIntegration' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -670,8 +686,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/BankTransaction" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/BankTransaction' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -1015,8 +1039,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/BankTransactionRule" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/BankTransactionRule' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -1347,8 +1379,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/ClientGatewayToken" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/ClientGatewayToken' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -1604,8 +1644,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Company" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Company' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -1947,8 +1995,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/CompanyGateway" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/CompanyGateway' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -2254,8 +2310,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/CompanyLedger" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/CompanyLedger' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -2358,8 +2422,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Design" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Design' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -2666,8 +2738,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Document" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Document' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -2751,8 +2831,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/ExpenseCategory" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/ExpenseCategory' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -3047,8 +3135,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Expense" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Expense' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -3415,8 +3511,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/GroupSetting" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/GroupSetting' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -3899,8 +4003,8 @@ paths: post: tags: - logout - summary: "Gets a list of logout" - description: "Lists all logout" + summary: "Logs the user out of their current session" + description: "Logs the user out of their current session" operationId: getLogout parameters: - $ref: "#/components/parameters/X-API-TOKEN" @@ -4086,8 +4190,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/PaymentTerm" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/PaymentTerm' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -4520,8 +4632,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/RecurringExpense" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/RecurringExpense' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -4862,8 +4982,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/RecurringQuote" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/RecurringQuote' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -5758,8 +5886,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Subscription" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Subscription' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -6099,8 +6235,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/SystemLog" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/SystemLog' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -6404,8 +6548,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/TaskStatus" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TaskStatus' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -6709,8 +6861,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/TaxRate" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TaxRate' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -7018,8 +7178,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/CompanyToken" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/CompanyToken' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -7318,8 +7486,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/User" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/User' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -7766,8 +7942,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Webhook" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Webhook' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -8098,8 +8282,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Product" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Product' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: '#/components/responses/401' 403: @@ -8503,8 +8695,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Task" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Task' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -8914,8 +9114,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Project" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Project' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -9387,8 +9595,20 @@ paths: $ref: '#/components/headers/X-RateLimit-Limit' content: application/json: - schema: - $ref: '#/components/schemas/Client' + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Client' + example: + $ref: '#/components/examples/Client' + meta: + type: object + $ref: '#/components/schemas/Meta' + example: + $ref: '#/components/examples/Meta' 401: $ref: '#/components/responses/401' 403: @@ -9936,8 +10156,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Credit" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Credit' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -10395,8 +10623,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Payment" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Payment' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -10964,8 +11200,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Invoice" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Invoice' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -11593,8 +11837,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/RecurringInvoice" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/RecurringInvoice' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -12140,8 +12392,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Quote" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Quote' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -12612,8 +12872,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Credit" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/PurchaseOrder' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -12649,7 +12917,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Credit" + $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: @@ -12695,7 +12963,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Credit" + $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: @@ -12740,7 +13008,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Credit" + $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: @@ -12825,7 +13093,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Invoice" + $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: @@ -12863,7 +13131,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Credit" + $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: @@ -12950,7 +13218,7 @@ paths: example: clone_to_quote responses: 200: - description: "Returns the invoice object" + description: "Returns the purchase order object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" @@ -12961,7 +13229,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Invoice" + $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: @@ -13006,7 +13274,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Vendor" + $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: @@ -13084,8 +13352,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Vendor" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Vendor' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -13459,6 +13735,78 @@ components: in: header name: X-API-TOKEN responses: + examples: + Client: + - id: Opnel5aKBz + user_id: Ua6Rw4pVbS + assigned_user_id: Ua6Rw4pVbS + company_id: Co7Vn3yLmW + name: "Jim's Housekeeping" + website: https://www.jims-housekeeping.com + private_notes: Client prefers email communication over phone calls + client_hash: asdfkjhk342hjhbfdvmnfb1 + industry_id: 5 + size_id: 2 + address1: 123 Main St + address2: Apt 4B + city: Beverly Hills + state: California + postal_code: 90210 + phone: 555-3434-3434 + country_id: 1 + custom_value1: Email + custom_value2: John Doe + custom_value3: Yes + custom_value4: $50,000 + vat_number: VAT123456 + id_number: ID123456 + number: CL-0001 + shipping_address1: 5 Wallaby Way + shipping_address2: Suite 5 + shipping_city: Perth + shipping_state: Western Australia + shipping_postal_code: 6110 + shipping_country_id: 4 + is_deleted: false + balance: 500.00 + paid_to_date: 2000.00 + credit_balance: 100.00 + last_login: 1628686031 + created_at: 1617629031 + updated_at: 1628445631 + group_settings_id: Opnel5aKBz + routing_id: Opnel5aKBz3489-dfkiu-2239-sdsd + is_tax_exempt: false + has_valid_vat_number: false + payment_balance: 100 + contacts: + - id: Opnel5aKBz + first_name: John + last_name: Doe + email: jim@gmail.com + phone: 555-3434-3434 + send_invoice: true + custom_value1: Email + custom_value2: John Doe + custom_value3: Yes + custom_value4: $50,000 + is_primary: true + created_at: 1617629031 + updated_at: 1628445631 + deleted_at: 1628445631 + Meta: + value: + pagination: + total: 1 + count: 1 + per_page: 20 + current_page: 1 + total_pages: 1 + links: + - first: https://invoicing.co/api/v1/invoices?page=1 + - last: https://invoicing.co/api/v1/invoices?page=1 + - prev: null + - next: null 429: description: 'Rate Limit Exceeded' content: @@ -16613,6 +16961,42 @@ components: type: integer example: '1' type: object + Meta: + properties: + pagination: + $ref: '#/components/schemas/Pagination' + Pagination: + type: object + properties: + total: + type: integer + description: 'The total number of items' + example: 1 + readOnly: true + count: + type: integer + description: 'The number of items per page' + example: 1 + readOnly: true + per_page: + type: integer + description: 'The number of items per page' + example: 1 + readOnly: true + current_page: + type: integer + description: 'The current page number' + example: 1 + readOnly: true + total_pages: + type: integer + description: 'The total number of pages' + example: 1 + readOnly: true + links: + type: array + description: 'The pagination links' + readOnly: true FeesAndLimits: properties: @@ -18597,8 +18981,6 @@ components: type: string format: date example: '1994-07-30' - settings: - $ref: '#/components/schemas/CompanySettings' last_viewed: description: Timestamp type: number diff --git a/openapi/components/examples.yaml b/openapi/components/examples.yaml new file mode 100644 index 000000000000..626e4767c105 --- /dev/null +++ b/openapi/components/examples.yaml @@ -0,0 +1,72 @@ + examples: + Client: + - id: Opnel5aKBz + user_id: Ua6Rw4pVbS + assigned_user_id: Ua6Rw4pVbS + company_id: Co7Vn3yLmW + name: "Jim's Housekeeping" + website: https://www.jims-housekeeping.com + private_notes: Client prefers email communication over phone calls + client_hash: asdfkjhk342hjhbfdvmnfb1 + industry_id: 5 + size_id: 2 + address1: 123 Main St + address2: Apt 4B + city: Beverly Hills + state: California + postal_code: 90210 + phone: 555-3434-3434 + country_id: 1 + custom_value1: Email + custom_value2: John Doe + custom_value3: Yes + custom_value4: $50,000 + vat_number: VAT123456 + id_number: ID123456 + number: CL-0001 + shipping_address1: 5 Wallaby Way + shipping_address2: Suite 5 + shipping_city: Perth + shipping_state: Western Australia + shipping_postal_code: 6110 + shipping_country_id: 4 + is_deleted: false + balance: 500.00 + paid_to_date: 2000.00 + credit_balance: 100.00 + last_login: 1628686031 + created_at: 1617629031 + updated_at: 1628445631 + group_settings_id: Opnel5aKBz + routing_id: Opnel5aKBz3489-dfkiu-2239-sdsd + is_tax_exempt: false + has_valid_vat_number: false + payment_balance: 100 + contacts: + - id: Opnel5aKBz + first_name: John + last_name: Doe + email: jim@gmail.com + phone: 555-3434-3434 + send_invoice: true + custom_value1: Email + custom_value2: John Doe + custom_value3: Yes + custom_value4: $50,000 + is_primary: true + created_at: 1617629031 + updated_at: 1628445631 + deleted_at: 1628445631 + Meta: + value: + pagination: + total: 1 + count: 1 + per_page: 20 + current_page: 1 + total_pages: 1 + links: + - first: https://invoicing.co/api/v1/invoices?page=1 + - last: https://invoicing.co/api/v1/invoices?page=1 + - prev: null + - next: null \ No newline at end of file diff --git a/openapi/components/schemas/invoice.yaml b/openapi/components/schemas/invoice.yaml index cbb60434cfc5..8a237d4bd31c 100644 --- a/openapi/components/schemas/invoice.yaml +++ b/openapi/components/schemas/invoice.yaml @@ -168,8 +168,6 @@ type: string format: date example: '1994-07-30' - settings: - $ref: '#/components/schemas/CompanySettings' last_viewed: description: Timestamp type: number diff --git a/openapi/components/schemas/meta.yaml b/openapi/components/schemas/meta.yaml new file mode 100644 index 000000000000..39d6abb99114 --- /dev/null +++ b/openapi/components/schemas/meta.yaml @@ -0,0 +1,36 @@ + Meta: + properties: + pagination: + $ref: '#/components/schemas/Pagination' + Pagination: + type: object + properties: + total: + type: integer + description: 'The total number of items' + example: 1 + readOnly: true + count: + type: integer + description: 'The number of items per page' + example: 1 + readOnly: true + per_page: + type: integer + description: 'The number of items per page' + example: 1 + readOnly: true + current_page: + type: integer + description: 'The current page number' + example: 1 + readOnly: true + total_pages: + type: integer + description: 'The total number of pages' + example: 1 + readOnly: true + links: + type: array + description: 'The pagination links' + readOnly: true \ No newline at end of file diff --git a/openapi/paths.yaml b/openapi/paths.yaml index f33e29e006a1..2e3e7fec4c8a 100644 --- a/openapi/paths.yaml +++ b/openapi/paths.yaml @@ -15,7 +15,7 @@ paths: - $ref: "#/components/parameters/page_meta" responses: 200: - description: "Returns the client object" + description: "Returns the list of activities" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" @@ -25,8 +25,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Client" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Activity' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -242,8 +250,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/BankIntegration" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/BankIntegration' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -646,8 +662,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/BankTransaction" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/BankTransaction' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -991,8 +1015,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/BankTransactionRule" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/BankTransactionRule' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -1323,8 +1355,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/ClientGatewayToken" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/ClientGatewayToken' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -1580,8 +1620,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Company" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Company' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -1923,8 +1971,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/CompanyGateway" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/CompanyGateway' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -2230,8 +2286,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/CompanyLedger" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/CompanyLedger' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -2334,8 +2398,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Design" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Design' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -2642,8 +2714,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Document" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Document' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -2727,8 +2807,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/ExpenseCategory" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/ExpenseCategory' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -3023,8 +3111,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Expense" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Expense' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -3391,8 +3487,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/GroupSetting" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/GroupSetting' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -3875,8 +3979,8 @@ paths: post: tags: - logout - summary: "Gets a list of logout" - description: "Lists all logout" + summary: "Logs the user out of their current session" + description: "Logs the user out of their current session" operationId: getLogout parameters: - $ref: "#/components/parameters/X-API-TOKEN" @@ -4062,8 +4166,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/PaymentTerm" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/PaymentTerm' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -4496,8 +4608,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/RecurringExpense" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/RecurringExpense' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -4838,8 +4958,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/RecurringQuote" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/RecurringQuote' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -5734,8 +5862,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Subscription" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Subscription' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -6075,8 +6211,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/SystemLog" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/SystemLog' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -6380,8 +6524,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/TaskStatus" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TaskStatus' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -6685,8 +6837,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/TaxRate" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TaxRate' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -6994,8 +7154,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/CompanyToken" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/CompanyToken' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -7294,8 +7462,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/User" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/User' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -7742,8 +7918,16 @@ paths: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Webhook" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Webhook' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: diff --git a/openapi/paths/clients.yaml b/openapi/paths/clients.yaml index 7194f8981bc5..90b9afd093aa 100644 --- a/openapi/paths/clients.yaml +++ b/openapi/paths/clients.yaml @@ -117,8 +117,20 @@ $ref: '#/components/headers/X-RateLimit-Limit' content: application/json: - schema: - $ref: '#/components/schemas/Client' + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Client' + example: + $ref: '#/components/examples/Client' + meta: + type: object + $ref: '#/components/schemas/Meta' + example: + $ref: '#/components/examples/Meta' 401: $ref: '#/components/responses/401' 403: diff --git a/openapi/paths/credits.yaml b/openapi/paths/credits.yaml index 1317a8e24e95..d98dea8555fa 100644 --- a/openapi/paths/credits.yaml +++ b/openapi/paths/credits.yaml @@ -21,8 +21,16 @@ $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Credit" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Credit' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: diff --git a/openapi/paths/invoices.yaml b/openapi/paths/invoices.yaml index 13e473c47fda..ed25012fecda 100644 --- a/openapi/paths/invoices.yaml +++ b/openapi/paths/invoices.yaml @@ -106,8 +106,16 @@ $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Invoice" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Invoice' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: diff --git a/openapi/paths/payments.yaml b/openapi/paths/payments.yaml index 1d299f8713d9..cb4a4bf87ab7 100644 --- a/openapi/paths/payments.yaml +++ b/openapi/paths/payments.yaml @@ -57,8 +57,16 @@ $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Payment" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Payment' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: diff --git a/openapi/paths/products.yaml b/openapi/paths/products.yaml index c107ee6cf44a..dfcc3ad6db63 100644 --- a/openapi/paths/products.yaml +++ b/openapi/paths/products.yaml @@ -52,8 +52,16 @@ $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Product" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Product' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: '#/components/responses/401' 403: diff --git a/openapi/paths/projects.yaml b/openapi/paths/projects.yaml index c66fa13087c3..104e66c088ce 100644 --- a/openapi/paths/projects.yaml +++ b/openapi/paths/projects.yaml @@ -22,8 +22,16 @@ $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Project" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Project' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: diff --git a/openapi/paths/purchase_orders.yaml b/openapi/paths/purchase_orders.yaml index fcf63f0f8639..dcdd3173c7c7 100644 --- a/openapi/paths/purchase_orders.yaml +++ b/openapi/paths/purchase_orders.yaml @@ -21,8 +21,16 @@ $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Credit" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/PurchaseOrder' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: @@ -58,7 +66,7 @@ content: application/json: schema: - $ref: "#/components/schemas/Credit" + $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: @@ -104,7 +112,7 @@ content: application/json: schema: - $ref: "#/components/schemas/Credit" + $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: @@ -149,7 +157,7 @@ content: application/json: schema: - $ref: "#/components/schemas/Credit" + $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: @@ -234,7 +242,7 @@ content: application/json: schema: - $ref: "#/components/schemas/Invoice" + $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: @@ -272,7 +280,7 @@ content: application/json: schema: - $ref: "#/components/schemas/Credit" + $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: @@ -359,7 +367,7 @@ example: clone_to_quote responses: 200: - description: "Returns the invoice object" + description: "Returns the purchase order object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" @@ -370,7 +378,7 @@ content: application/json: schema: - $ref: "#/components/schemas/Invoice" + $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: @@ -415,7 +423,7 @@ content: application/json: schema: - $ref: "#/components/schemas/Vendor" + $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: diff --git a/openapi/paths/quotes.yaml b/openapi/paths/quotes.yaml index 0ef3adb53d4a..dfabf6442dfe 100644 --- a/openapi/paths/quotes.yaml +++ b/openapi/paths/quotes.yaml @@ -70,8 +70,16 @@ $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Quote" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Quote' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: diff --git a/openapi/paths/recurring_invoices.yaml b/openapi/paths/recurring_invoices.yaml index 1ffb5616a101..47560656b0ac 100644 --- a/openapi/paths/recurring_invoices.yaml +++ b/openapi/paths/recurring_invoices.yaml @@ -60,8 +60,16 @@ $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/RecurringInvoice" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/RecurringInvoice' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: diff --git a/openapi/paths/tasks.yaml b/openapi/paths/tasks.yaml index 26e36d87051c..b392d84f9eb0 100644 --- a/openapi/paths/tasks.yaml +++ b/openapi/paths/tasks.yaml @@ -22,8 +22,16 @@ $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Task" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Task' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: diff --git a/openapi/paths/vendors.yaml b/openapi/paths/vendors.yaml index 3a97f0bfdcc5..267221cf5200 100644 --- a/openapi/paths/vendors.yaml +++ b/openapi/paths/vendors.yaml @@ -22,8 +22,16 @@ $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: - schema: - $ref: "#/components/schemas/Vendor" + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Vendor' + meta: + type: object + $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: From f2bd338bfce2a5b5ad036aaf5f7ce85c3ec6fee1 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 8 Jul 2023 20:21:35 +1000 Subject: [PATCH 4/6] Translations for swazi currency --- lang/en/texts.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lang/en/texts.php b/lang/en/texts.php index 6f5249b9955b..77e649eea1bb 100644 --- a/lang/en/texts.php +++ b/lang/en/texts.php @@ -5120,6 +5120,7 @@ $LANG = array( 'paid_date' => 'Paid Date', 'downloaded_entities' => 'An email will be sent with the PDFs', 'lang_French - Swiss' => 'French - Swiss', + 'currency_swazi_lilangeni' => 'Swazi Lilangeni', ); From 2eee50bbe915cf9816a167356b42304886ee4ca0 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 8 Jul 2023 20:31:22 +1000 Subject: [PATCH 5/6] Fixes for token filtering --- app/Filters/TokenFilters.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Filters/TokenFilters.php b/app/Filters/TokenFilters.php index 2966405a1ee9..2037d768add8 100644 --- a/app/Filters/TokenFilters.php +++ b/app/Filters/TokenFilters.php @@ -37,9 +37,9 @@ class TokenFilters extends QueryFilters } - public function is_system(bool $value = false): Builder + public function is_system(string $value = 'false'): Builder { - return $this->builder->where('is_system', $value); + return $this->builder->where('is_system', $value == 'false' ? false : true); } /** From 7493f8f4e87cbef35313d4a886dcb0a0939ea380 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 8 Jul 2023 22:18:54 +1000 Subject: [PATCH 6/6] missing translations --- lang/en/texts.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lang/en/texts.php b/lang/en/texts.php index 77e649eea1bb..69b4e7e79fa1 100644 --- a/lang/en/texts.php +++ b/lang/en/texts.php @@ -5121,6 +5121,8 @@ $LANG = array( 'downloaded_entities' => 'An email will be sent with the PDFs', 'lang_French - Swiss' => 'French - Swiss', 'currency_swazi_lilangeni' => 'Swazi Lilangeni', + 'income' => 'Income', + );