فهرست منبع

feat: ✨ Added Localization generation

IceToast 3 سال پیش
والد
کامیت
f10933104c

+ 1 - 0
composer.json

@@ -16,6 +16,7 @@
         "fruitcake/laravel-cors": "^2.0",
         "guzzlehttp/guzzle": "^7.0.1",
         "hidehalo/nanoid-php": "^1.1",
+        "kkomelin/laravel-translatable-string-exporter": "^1.14",
         "laravel/framework": "^8.12",
         "laravel/tinker": "^2.5",
         "laravel/ui": "^3.2",

+ 62 - 1
composer.lock

@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "51c5797dc1629fe1f42b1fdc91c6e5d8",
+    "content-hash": "ed0357bbf827f4e6078d2ed41ce3fa17",
     "packages": [
         {
             "name": "asm89/stack-cors",
@@ -1533,6 +1533,67 @@
             },
             "time": "2020-12-11T09:24:45+00:00"
         },
+        {
+            "name": "kkomelin/laravel-translatable-string-exporter",
+            "version": "1.14.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/kkomelin/laravel-translatable-string-exporter.git",
+                "reference": "9dce1e5f8ed59a1b58e77ec7d84f1427d5e29f0a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/kkomelin/laravel-translatable-string-exporter/zipball/9dce1e5f8ed59a1b58e77ec7d84f1427d5e29f0a",
+                "reference": "9dce1e5f8ed59a1b58e77ec7d84f1427d5e29f0a",
+                "shasum": ""
+            },
+            "require": {
+                "ext-json": "*",
+                "illuminate/support": "^5.4|^6|^7|^8",
+                "illuminate/translation": "^5.4|^6|^7|^8",
+                "php": ">=5.4.0",
+                "symfony/finder": "^3.2|^4|^5"
+            },
+            "require-dev": {
+                "orchestra/testbench": "^3.4|^4.0|^5.0|^6.0"
+            },
+            "type": "library",
+            "extra": {
+                "laravel": {
+                    "providers": [
+                        "KKomelin\\TranslatableStringExporter\\Providers\\ExporterServiceProvider"
+                    ]
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "KKomelin\\TranslatableStringExporter\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Konstantin Komelin",
+                    "email": "konstantin.komelin@gmail.com"
+                }
+            ],
+            "description": "Translatable String Exporter for Laravel",
+            "keywords": [
+                "export",
+                "exporter",
+                "json",
+                "laravel",
+                "translations"
+            ],
+            "support": {
+                "issues": "https://github.com/kkomelin/laravel-translatable-string-exporter/issues",
+                "source": "https://github.com/kkomelin/laravel-translatable-string-exporter/tree/1.14.0"
+            },
+            "time": "2021-08-08T06:48:21+00:00"
+        },
         {
             "name": "laravel/framework",
             "version": "v8.45.1",

+ 3 - 0
config/app.php

@@ -193,6 +193,9 @@ return [
         App\Providers\RouteServiceProvider::class,
         Yajra\DataTables\DataTablesServiceProvider::class,
 
+        KKomelin\TranslatableStringExporter\Providers\ExporterServiceProvider::class,
+
+
     ],
 
     /*

+ 195 - 194
resources/lang/en.json

@@ -1,33 +1,106 @@
 {
+    "api key created!": "api key created!",
+    "api key updated!": "api key updated!",
+    "api key has been removed!": "api key has been removed!",
+    "Edit": "Edit",
+    "Delete": "Delete",
+    "configuration has been updated!": "configuration has been updated!",
+    "unknown": "unknown",
+    "Pterodactyl synced": "Pterodactyl synced",
+    "Invoice": "Invoice",
+    "Paid": "Paid",
+    "Your credit balance has been increased!": "Your credit balance has been increased!",
+    "Payment was Canceled": "Payment was Canceled",
+    "Store item has been created!": "Store item has been created!",
+    "Store item has been updated!": "Store item has been updated!",
+    "Product has been updated!": "Product has been updated!",
+    "Store item has been removed!": "Store item has been removed!",
+    "Product has been created!": "Product has been created!",
+    "Product has been removed!": "Product has been removed!",
+    "Show": "Show",
+    "Clone": "Clone",
+    "Server removed": "Server removed",
+    "An exception has occurred while trying to remove a resource \"": "An exception has occurred while trying to remove a resource \"",
+    "Server has been updated!": "Server has been updated!",
+    "Unsuspend": "Unsuspend",
+    "Suspend": "Suspend",
+    "Icons updated!": "Icons updated!",
+    "link has been created!": "link has been created!",
+    "link has been updated!": "link has been updated!",
+    "product has been removed!": "product has been removed!",
+    "User does not exists on pterodactyl's panel": "User does not exists on pterodactyl's panel",
+    "user has been removed!": "user has been removed!",
+    "Notification sent!": "Notification sent!",
+    "User has been updated!": "User has been updated!",
+    "Login as User": "Login as User",
+    "voucher has been created!": "voucher has been created!",
+    "voucher has been updated!": "voucher has been updated!",
+    "voucher has been removed!": "voucher has been removed!",
+    "This voucher has reached the maximum amount of uses": "This voucher has reached the maximum amount of uses",
+    "This voucher has expired": "This voucher has expired",
+    "You already redeemed this voucher code": "You already redeemed this voucher code",
+    "have been added to your balance!": "have been added to your balance!",
+    "Users": "Users",
+    "VALID": "VALID",
+    "days": "days",
+    "hours": "hours",
+    "You ran out of Credits": "You ran out of Credits",
+    "Profile updated": "Profile updated",
+    "Server limit reached!": "Server limit reached!",
+    "You are required to verify your email address before you can create a server.": "You are required to verify your email address before you can create a server.",
+    "You are required to link your discord account before you can create a server.": "You are required to link your discord account before you can create a server.",
+    "Server created": "Server created",
+    "No allocations satisfying the requirements for automatic deployment on this node were found.": "No allocations satisfying the requirements for automatic deployment on this node were found.",
+    "You are required to verify your email address before you can purchase credits.": "You are required to verify your email address before you can purchase credits.",
+    "You are required to link your discord account before you can purchase Credits": "You are required to link your discord account before you can purchase Credits",
+    "EXPIRED": "EXPIRED",
+    "Payment Confirmation": "Payment Confirmation",
+    "Payment Confirmed!": "Payment Confirmed!",
+    "Your Payment was successful!": "Your Payment was successful!",
+    "Hello": "Hello",
+    "Your payment was processed successfully!": "Your payment was processed successfully!",
+    "Status": "Status",
+    "Price": "Price",
+    "Type": "Type",
+    "Amount": "Amount",
+    "Balance": "Balance",
+    "User ID": "User ID",
+    "Server Creation Error": "Server Creation Error",
+    "Your servers have been suspended!": "Your servers have been suspended!",
+    "To automatically re-enable your server/s, you need to purchase more credits.": "To automatically re-enable your server/s, you need to purchase more credits.",
+    "Purchase credits": "Purchase credits",
+    "If you have any questions please let us know.": "If you have any questions please let us know.",
+    "Regards": "Regards",
+    "Getting started!": "Getting started!",
     "Activity Logs": "Activity Logs",
     "No recent activity from cronjobs": "No recent activity from cronjobs",
-    "Check the docs for it here": "Check the docs for it here",
     "Are cronjobs running?": "Are cronjobs running?",
+    "Check the docs for it here": "Check the docs for it here",
     "Causer": "Causer",
     "Description": "Description",
     "Created at": "Created at",
-
+    "Application API": "Application API",
+    "Dashboard": "Dashboard",
+    "Create": "Create",
+    "Memo": "Memo",
+    "Submit": "Submit",
+    "Create new": "Create new",
+    "Token": "Token",
+    "Last used": "Last used",
+    "Are you sure you wish to delete?": "Are you sure you wish to delete?",
     "Edit Configuration": "Edit Configuration",
     "Text Field": "Text Field",
     "Cancel": "Cancel",
-    "Close": "Close",
     "Save": "Save",
-    "true": "true",
-    "false": "false",
-
     "Configurations": "Configurations",
-    "Dashboard": "Dashboard",
     "Key": "Key",
     "Value": "Value",
-    "Type": "Type",
-
     "Admin Overview": "Admin Overview",
     "Support server": "Support server",
     "Documentation": "Documentation",
     "Github": "Github",
     "Support ControlPanel": "Support ControlPanel",
     "Servers": "Servers",
-    "Users": "Users",
     "Total": "Total",
     "Payments": "Payments",
     "Pterodactyl": "Pterodactyl",
@@ -35,66 +108,59 @@
     "Resources": "Resources",
     "Count": "Count",
     "Locations": "Locations",
-    "Node": "Node",
     "Nodes": "Nodes",
     "Nests": "Nests",
     "Eggs": "Eggs",
     "Last updated :date": "Last updated :date",
-    "Purchase": "Purchase",
-
     "ID": "ID",
     "User": "User",
-    "Amount": "Amount",
     "Product Price": "Product Price",
     "Tax": "Tax",
     "Total Price": "Total Price",
     "Payment_ID": "Payment_ID",
     "Payer_ID": "Payer_ID",
-
-    "Product": "Product",
     "Products": "Products",
-    "Create": "Create",
     "Product Details": "Product Details",
-    "Server Details": "Server Details",
-
-    "Product Linking": "Product Linking",
+    "Disabled": "Disabled",
+    "Will hide this option from being selected": "Will hide this option from being selected",
     "Name": "Name",
     "Price in": "Price in",
     "Memory": "Memory",
     "Cpu": "Cpu",
     "Swap": "Swap",
+    "This is what the users sees": "This is what the users sees",
     "Disk": "Disk",
     "Minimum": "Minimum",
+    "Setting to -1 will use the value from configuration.": "Setting to -1 will use the value from configuration.",
     "IO": "IO",
     "Databases": "Databases",
-    "Database": "Database",
     "Backups": "Backups",
     "Allocations": "Allocations",
-    "Disabled": "Disabled",
-    "Submit": "Submit",
+    "Product Linking": "Product Linking",
+    "Link your products to nodes and eggs to create dynamic pricing for each option": "Link your products to nodes and eggs to create dynamic pricing for each option",
     "This product will only be available for these nodes": "This product will only be available for these nodes",
     "This product will only be available for these eggs": "This product will only be available for these eggs",
-    "Will hide this option from being selected": "Will hide this option from being selected",
-    "Link your products to nodes and eggs to create dynamic pricing for each option": "Link your products to nodes and eggs to create dynamic pricing for each option",
-    "Setting to -1 will use the value from configuration.": "Setting to -1 will use the value from configuration.",
-    "This is what the users sees": "This is what the users sees",
-    "Edit": "Edit",
-
-    "Price": "Price",
-    "Are you sure you wish to delete?": "Are you sure you wish to delete?",
-    "Create new": "Create new",
-    "Show": "Show",
+    "Active": "Active",
+    "Product": "Product",
+    "CPU": "CPU",
     "Updated at": "Updated at",
+    "Config": "Config",
     "Suspended at": "Suspended at",
-
     "Settings": "Settings",
     "Dashboard icons": "Dashboard icons",
+    "Invoice Settings": "Invoice Settings",
     "Select panel icon": "Select panel icon",
     "Select panel favicon": "Select panel favicon",
-
-    "Token": "Token",
-    "Last used": "Last used",
-
+    "Download all Invoices": "Download all Invoices",
+    "Enter your companys name": "Enter your companys name",
+    "Enter your companys address": "Enter your companys address",
+    "Enter your companys phone number": "Enter your companys phone number",
+    "Enter your companys VAT id": "Enter your companys VAT id",
+    "Enter your companys email address": "Enter your companys email address",
+    "Enter your companys website": "Enter your companys website",
+    "Enter your custom invoice prefix": "Enter your custom invoice prefix",
+    "Logo": "Logo",
+    "Select Invoice Logo": "Select Invoice Logo",
     "Store": "Store",
     "Currency code": "Currency code",
     "Checkout the paypal docs to select the appropriate code": "Checkout the paypal docs to select the appropriate code",
@@ -102,110 +168,98 @@
     "Amount given to the user after purchasing": "Amount given to the user after purchasing",
     "Display": "Display",
     "This is what the user sees at store and checkout": "This is what the user sees at store and checkout",
-    "This is what the user sees at checkout": "This is what the user sees at checkout",
     "Adds 1000 credits to your account": "Adds 1000 credits to your account",
-
-    "Active": "Active",
+    "This is what the user sees at checkout": "This is what the user sees at checkout",
     "Paypal is not configured.": "Paypal is not configured.",
     "To configure PayPal, head to the .env and add your PayPal’s client id and secret.": "To configure PayPal, head to the .env and add your PayPal’s client id and secret.",
-
     "Useful Links": "Useful Links",
     "Icon class name": "Icon class name",
     "You can find available free icons": "You can find available free icons",
     "Title": "Title",
     "Link": "Link",
-
+    "description": "description",
+    "Icon": "Icon",
     "Username": "Username",
     "Email": "Email",
-    "Pterodactly ID": "Pterodactly ID",
+    "Pterodactyl ID": "Pterodactyl ID",
+    "This ID refers to the user account created on pterodactyls panel.": "This ID refers to the user account created on pterodactyls panel.",
+    "Only edit this if you know what youre doing :)": "Only edit this if you know what youre doing :)",
     "Server Limit": "Server Limit",
     "Role": "Role",
-    "Administrator": "Administrator",
+    " Administrator": " Administrator",
     "Client": "Client",
     "Member": "Member",
     "New Password": "New Password",
     "Confirm Password": "Confirm Password",
-    "This ID refers to the user account created on pterodactyls panel.": "This ID refers to the user account created on pterodactyls panel.",
-    "Only edit this if you know what youre doing :)": "Only edit this if you know what youre doing :)",
-
+    "Notify": "Notify",
+    "Avatar": "Avatar",
     "Verified": "Verified",
     "Last seen": "Last seen",
-    "Notify": "Notify",
-
+    "Notifications": "Notifications",
     "All": "All",
     "Send via": "Send via",
+    "Database": "Database",
     "Content": "Content",
-    "Notifications": "Notifications",
-
+    "Server limit": "Server limit",
+    "Discord": "Discord",
     "Usage": "Usage",
-
-    "Config": "Config",
-
+    "IP": "IP",
     "Vouchers": "Vouchers",
     "Voucher details": "Voucher details",
-    "Memo": "Memo",
+    "Summer break voucher": "Summer break voucher",
     "Code": "Code",
+    "Random": "Random",
     "Uses": "Uses",
-    "Expires at": "Expires at",
+    "A voucher can only be used one time per user. Uses specifies the number of different users that can use this voucher.": "A voucher can only be used one time per user. Uses specifies the number of different users that can use this voucher.",
     "Max": "Max",
-    "Random": "Random",
-
-    "Status": "Status",
+    "Expires at": "Expires at",
     "Used / Uses": "Used / Uses",
     "Expires": "Expires",
-
-    "Please confirm your password before continuing.": "Please confirm your password before continuing.",
-    "Password": "Password",
-    "Forgot Your Password?": "Forgot Your Password?",
     "Sign in to start your session": "Sign in to start your session",
+    "Password": "Password",
     "Remember Me": "Remember Me",
     "Sign In": "Sign In",
+    "Forgot Your Password?": "Forgot Your Password?",
     "Register a new membership": "Register a new membership",
+    "Please confirm your password before continuing.": "Please confirm your password before continuing.",
     "You forgot your password? Here you can easily retrieve a new password.": "You forgot your password? Here you can easily retrieve a new password.",
     "Request new password": "Request new password",
     "Login": "Login",
-    "You are only one step a way from your new password, recover your password now.":"You are only one step a way from your new password, recover your password now.",
+    "You are only one step a way from your new password, recover your password now.": "You are only one step a way from your new password, recover your password now.",
     "Retype password": "Retype password",
     "Change password": "Change password",
-    "I already have a membership": "I already have a membership",
     "Register": "Register",
+    "I already have a membership": "I already have a membership",
     "Verify Your Email Address": "Verify Your Email Address",
     "A fresh verification link has been sent to your email address.": "A fresh verification link has been sent to your email address.",
     "Before proceeding, please check your email for a verification link.": "Before proceeding, please check your email for a verification link.",
     "If you did not receive the email": "If you did not receive the email",
     "click here to request another": "click here to request another",
-
+    "per month": "per month",
+    "Out of Credits in": "Out of Credits in",
     "Home": "Home",
-    "Languages": "Languages",
     "See all Notifications": "See all Notifications",
+    "Redeem code": "Redeem code",
     "Profile": "Profile",
     "Log back in": "Log back in",
     "Logout": "Logout",
     "Administration": "Administration",
     "Overview": "Overview",
-    "Application API": "Application API",
     "Management": "Management",
     "Other": "Other",
     "Logs": "Logs",
-    "Redeem code": "Redeem code",
-
+    "Warning!": "Warning!",
     "You have not yet verified your email address": "You have not yet verified your email address",
     "Click here to resend verification email": "Click here to resend verification email",
     "Please contact support If you didnt receive your verification email.": "Please contact support If you didnt receive your verification email.",
-
     "Thank you for your purchase!": "Thank you for your purchase!",
     "Your payment has been confirmed; Your credit balance has been updated.": "Your payment has been confirmed; Your credit balance has been updated.",
-
     "Payment ID": "Payment ID",
-    "Balance": "Balance",
-    "User ID": "User ID",
     "Thanks": "Thanks",
-
     "Redeem voucher code": "Redeem voucher code",
+    "Close": "Close",
     "Redeem": "Redeem",
-
     "All notifications": "All notifications",
-
     "Required Email verification!": "Required Email verification!",
     "Required Discord verification!": "Required Discord verification!",
     "You have not yet verified your discord account": "You have not yet verified your discord account",
@@ -213,13 +267,14 @@
     "Please contact support If you face any issues.": "Please contact support If you face any issues.",
     "Due to system settings you are required to verify your discord account!": "Due to system settings you are required to verify your discord account!",
     "It looks like this hasnt been set-up correctly! Please contact support.": "It looks like this hasnt been set-up correctly! Please contact support.",
-
     "Change Password": "Change Password",
     "Current Password": "Current Password",
-    "Save Changes": "Save Changes",
-    "Re-Sync Discord": "Re-Sync Discord",
-    "You are verified!": "You are verified!",
+    "Link your discord account!": "Link your discord account!",
     "By verifying your discord account, you receive extra Credits and increased Server amounts": "By verifying your discord account, you receive extra Credits and increased Server amounts",
+    "Login with Discord": "Login with Discord",
+    "You are verified!": "You are verified!",
+    "Re-Sync Discord": "Re-Sync Discord",
+    "Save Changes": "Save Changes",
     "Server configuration": "Server configuration",
     "Error!": "Error!",
     "Make sure to link your products to nodes and eggs.": "Make sure to link your products to nodes and eggs.",
@@ -230,142 +285,88 @@
     "No eggs have been linked!": "No eggs have been linked!",
     "Software / Games": "Software / Games",
     "Please select software ...": "Please select software ...",
-    "Specification": "Specification",
-    "No selection": "No selection",
-    "per month": "per month",
-    "Not enough credits!": "Not enough credits!",
-    "Not enough" : "Not enough",
-    "Please select a configuration ...": "Please select a configuration ...",
-    "No resources found matching current configuration": "No resources found matching current configuration",
-    "No nodes found matching current configuration": "No nodes found matching current configuration",
-    "Please select a node ...": "Please select a node ...",
+    "---": "---",
+    "Specification ": "Specification ",
+    "Node": "Node",
+    "Resource Data:": "Resource Data:",
+    "MB": "MB",
+    "MySQL": "MySQL",
+    "ports": "ports",
+    "Not enough": "Not enough",
     "Create server": "Create server",
-    "Use your servers on our": "Use your servers on our",
-    "pterodactyl panel": "pterodactyl panel",
-    "Server limit reached!": "Server limit reached!",
+    "Please select a node ...": "Please select a node ...",
+    "No nodes found matching current configuration": "No nodes found matching current configuration",
+    "Please select a resource ...": "Please select a resource ...",
+    "No resources found matching current configuration": "No resources found matching current configuration",
+    "Please select a configuration ...": "Please select a configuration ...",
+    "Not enough credits!": "Not enough credits!",
     "Create Server": "Create Server",
+    "Location": "Location",
+    "Software": "Software",
+    "Specification": "Specification",
+    "Resource plan": "Resource plan",
+    "per Hour": "per Hour",
+    "per Month": "per Month",
     "Manage": "Manage",
-    "Delete server": "Delete server",
-    "Price per Hour": "Price per Hour",
-    "Price per Month": "Price per Month",
-
+    "Are you sure?": "Are you sure?",
+    "This is an irreversible action, all files of this server will be removed.": "This is an irreversible action, all files of this server will be removed.",
+    "Yes, delete it!": "Yes, delete it!",
+    "No, cancel!": "No, cancel!",
+    "Canceled ...": "Canceled ...",
+    "Deletion has been canceled.": "Deletion has been canceled.",
     "Date": "Date",
     "To": "To",
     "From": "From",
     "Pending": "Pending",
     "Subtotal": "Subtotal",
-    "Submit Payment": "Submit Payment",
     "Payment Methods": "Payment Methods",
     "By purchasing this product you agree and accept our terms of service": "By purchasing this product you agree and accept our terms of service",
+    "Amount due": "Amount due",
+    "Submit Payment": "Submit Payment",
+    "Purchase": "Purchase",
     "There are no store products!": "There are no store products!",
     "The store is not correctly configured!": "The store is not correctly configured!",
-    "Out of Credits in": "Out of Credits in",
-
-    "days": "days",
-    "hours": "hours",
-    "You ran out of Credits": "You ran out of Credits",
-
-    "Profile updated": "Profile updated",
-
-    "You are required to verify your email address before you can create a server.": "You are required to verify your email address before you can create a server.",
-    "You are required to link your discord account before you can create a server.": "You are required to link your discord account before you can create a server.",
-    "No allocations satisfying the requirements for automatic deployment on this node were found.": "No allocations satisfying the requirements for automatic deployment on this node were found.",
-    "Server removed": "Server removed",
-    "Server created": "Server created",
-    "An exception has occurred while trying to remove a resource \"": "An exception has occurred while trying to remove a resource \"",
-    "You are required to verify your email address before you can purchase credits.": "You are required to verify your email address before you can purchase credits.",
-    "You are required to link your discord account before you can purchase ": "You are required to link your discord account before you can purchase ",
-
-    "Warning!": "Warning!",
-
-    "api key created!": "api key created!",
-    "api key updated!": "api key updated!",
-    "api key has been removed!": "api key has been removed!",
-    "configuration has been updated!": "configuration has been updated!",
-    "Pterodactyl synced": "Pterodactyl synced",
-    "Your credit balance has been increased!": "Your credit balance has been increased!",
-    "Payment was Canceled": "Payment was Canceled",
-
-    "Store item has been created!": "Store item has been created!",
-    "Store item has been updated!": "Store item has been updated!",
-    "Product has been updated!": "Product has been updated!",
-    "Store item has been removed!": "Store item has been removed!",
-    "Product has been created!": "Product has been created!",
-    "Product has been removed!": "Product has been removed!",
-    "Server has been updated!": "Server has been updated!",
-    "Icons updated!": "Icons updated!",
-    "link has been created!": "link has been created!",
-    "link has been updated!": "link has been updated!",
-    "user has been removed!": "user has been removed!",
-    "Notification sent!": "Notification sent!",
-    "User has been updated!": "User has been updated!",
-    "User does not exists on pterodactyl's panel": "User does not exists on pterodactyl's panel",
-    "voucher has been created!": "voucher has been created!",
-    "voucher has been updated!": "voucher has been updated!",
-    "voucher has been removed!": "voucher has been removed!",
-    "This voucher has reached the maximum amount of uses": "This voucher has reached the maximum amount of uses",
-    "This voucher has expired": "This voucher has expired",
-    "You already redeemed this voucher code": "You already redeemed this voucher code",
-    "You can't redeem this voucher because you would exceed the  limit of ": "You can't redeem this voucher because you would exceed the  limit of ",
-    "have been added to your balance!": "have been added to your balance!",
-    "Invoice": "Invoice",
     "Serial No.": "Serial No.",
     "Invoice date": "Invoice date",
     "Seller": "Seller",
     "Buyer": "Buyer",
     "Address": "Address",
-    "VAT code": "VAT code",
+    "VAT Code": "VAT Code",
     "Phone": "Phone",
     "Units": "Units",
-    "Qty": "Qty",
     "Discount": "Discount",
-    "Sub total": "Sub total",
     "Total discount": "Total discount",
     "Taxable amount": "Taxable amount",
-    "Total taxes": "Total taxes",
     "Tax rate": "Tax rate",
+    "Total taxes": "Total taxes",
+    "Shipping": "Shipping",
     "Total amount": "Total amount",
-    "Please pay until": "Please pay until",
-    "Amount in words": "Amount in words",
     "Notes": "Notes",
-    "Shipping": "Shipping",
-    "Paid": "Paid",
-    "Due:": "Due:",
-    "Invoice Settings": "Invoice Settings",
-    "Download all Invoices": "Download all Invoices",
-    "Enter your companys name": "Enter your companys name",
-    "Enter your companys address": "Enter your companys address",
-    "Enter your companys phone number": "Enter your companys phone number",
-    "Enter your companys VAT id": "Enter your companys VAT id",
-    "Enter your companys email address": "Enter your companys email address",
-    "Enter your companys website": "Enter your companys website",
-    "Enter your custom invoice prefix": "Enter your custom invoice prefix",
-    "Select Invoice Logo": "Select Invoice Logo",
-
-    "Payment Confirmation": "Payment Confirmation",
-    "Payment Confirmed!": "Payment Confirmed!",
-    "Server Creation Error": "Server Creation Error",
-    "Your servers have been suspended!": "Your servers have been suspended!",
-    "To automatically re-enable your server/s, you need to purchase more credits.": "To automatically re-enable your server/s, you need to purchase more credits.",
-    "Purchase credits": "Purchase credits",
-    "If you have any questions please let us know.": "If you have any questions please let us know.",
-    "Regards": "Regards",
-
-    "Getting started!": "Getting started!",
-    "EXPIRED": "EXPIRED",
-    "VALID": "VALID",
-
-    "Unsuspend": "Unsuspend",
-    "Suspend": "Suspend",
-    "Delete": "Delete",
-    "Login as User": "Login as User",
-    "Clone": "Clone",
-
-    "Amount due": "Amount due",
-
-    "Your Payment was successful!": "Your Payment was successful!",
-    "Hello":"Hello",
-    "Your payment was processed successfully!":"Your payment was processed successfully!"
-
+    "Amount in words": "Amount in words",
+    "Please pay until": "Please pay until",
 
+    "invoices::invoice.serial": "invoices::invoice.serial",
+    "invoices::invoice.date": "invoices::invoice.date",
+    "invoices::invoice.seller": "invoices::invoice.seller",
+    "invoices::invoice.buyer": "invoices::invoice.buyer",
+    "invoices::invoice.address": "invoices::invoice.address",
+    "invoices::invoice.code": "invoices::invoice.code",
+    "invoices::invoice.vat": "invoices::invoice.vat",
+    "invoices::invoice.phone": "invoices::invoice.phone",
+    "invoices::invoice.description": "invoices::invoice.description",
+    "invoices::invoice.units": "invoices::invoice.units",
+    "invoices::invoice.quantity": "invoices::invoice.quantity",
+    "invoices::invoice.price": "invoices::invoice.price",
+    "invoices::invoice.discount": "invoices::invoice.discount",
+    "invoices::invoice.tax": "invoices::invoice.tax",
+    "invoices::invoice.sub_total": "invoices::invoice.sub_total",
+    "invoices::invoice.total_discount": "invoices::invoice.total_discount",
+    "invoices::invoice.taxable_amount": "invoices::invoice.taxable_amount",
+    "invoices::invoice.tax_rate": "invoices::invoice.tax_rate",
+    "invoices::invoice.total_taxes": "invoices::invoice.total_taxes",
+    "invoices::invoice.shipping": "invoices::invoice.shipping",
+    "invoices::invoice.total_amount": "invoices::invoice.total_amount",
+    "invoices::invoice.notes": "invoices::invoice.notes",
+    "invoices::invoice.amount_in_words": "invoices::invoice.amount_in_words",
+    "invoices::invoice.pay_until": "invoices::invoice.pay_until"
 }

+ 371 - 347
resources/views/vendor/invoices/templates/controlpanel.blade.php

@@ -1,301 +1,324 @@
 <!DOCTYPE html>
 <html lang="en">
-    <head>
-        <title>{{ $invoice->name }}</title>
-        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-
-        <style type="text/css" media="screen">
-            html {
-                font-family: sans-serif;
-                line-height: 1.15;
-                margin: 0;
-            }
-
-            body {
-                font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
-                font-weight: 400;
-                line-height: 1.5;
-                color: #212529;
-                text-align: left;
-                background-color: #fff;
-                font-size: 10px;
-                margin: 36pt;
-            }
-
-            h4 {
-                margin-top: 0;
-                margin-bottom: 0.5rem;
-            }
-
-            p {
-                margin-top: 0;
-                margin-bottom: 1rem;
-            }
-
-            strong {
-                font-weight: bolder;
-            }
-
-            img {
-                vertical-align: middle;
-                border-style: none;
-            }
-
-            table {
-                border-collapse: collapse;
-            }
-
-            th {
-                text-align: inherit;
-            }
-
-            h4, .h4 {
-                margin-bottom: 0.5rem;
-                font-weight: 500;
-                line-height: 1.2;
-            }
-
-            h4, .h4 {
-                font-size: 1.5rem;
-            }
-
-            .table {
-                width: 100%;
-                margin-bottom: 1rem;
-                color: #212529;
-            }
-
-            .table th,
-            .table td {
-                padding: 0.75rem;
-                vertical-align: top;
-            }
-
-            .table.table-items td {
-                border-top: 1px solid #dee2e6;
-            }
-
-            .table thead th {
-                vertical-align: bottom;
-                border-bottom: 2px solid #dee2e6;
-            }
-
-            .mt-5 {
-                margin-top: 3rem !important;
-            }
-
-            .pr-0,
-            .px-0 {
-                padding-right: 0 !important;
-            }
-
-            .pl-0,
-            .px-0 {
-                padding-left: 0 !important;
-            }
-
-            .text-right {
-                text-align: right !important;
-            }
-
-            .text-center {
-                text-align: center !important;
-            }
-
-            .text-uppercase {
-                text-transform: uppercase !important;
-            }
-            * {
-                font-family: "DejaVu Sans";
-            }
-            body, h1, h2, h3, h4, h5, h6, table, th, tr, td, p, div {
-                line-height: 1.1;
-            }
-            .party-header {
-                font-size: 1.5rem;
-                font-weight: 400;
-            }
-            .total-amount {
-                font-size: 12px;
-                font-weight: 700;
-            }
-            .border-0 {
-                border: none !important;
-            }
-            .cool-gray {
-                color: #6B7280;
-            }
-            .cool-green {
-                color: #308d00;
-            }
-        </style>
-    </head>
-
-    <body>
-        {{-- Header --}}
-        @if($invoice->logo)
-            <img src="{{ $invoice->getLogo() }}" alt="logo" height="100">
-        @endif
-
-        <table class="table mt-5">
-            <tbody>
-                <tr>
-                <tr>
-                    <td class="border-0 pl-0" width="70%">
-                        <h4 class="text-uppercase">
-                            <strong>{{ $invoice->name }} {{$invoice->getSerialNumber()}}</strong>
-                        </h4>
-                    </td>
-                    <td class="border-0 pl-0">
-                        @if($invoice->status)
-                            <h4 class="text-uppercase cool-green">
-                                <strong>{{ $invoice->status }}</strong>
-                            </h4>
-                        @endif
-                        <p>{{ __('Serial No.') }} <strong>{{ $invoice->getSerialNumber() }}</strong></p>
-                        <p>{{ __('Invoice date') }}: <strong>{{ $invoice->getDate() }}</strong></p>
-                    </td>
-                </tr>
-            </tbody>
-        </table>
-
-        {{-- Seller - Buyer --}}
-        <table class="table">
-            <thead>
-                <tr>
-                    <th class="border-0 pl-0 party-header" width="48.5%">
-                        {{ __('Seller') }}
-                    </th>
-                    <th class="border-0" width="3%"></th>
-                    <th class="border-0 pl-0 party-header">
-                        {{ __('Buyer') }}
-                    </th>
-                </tr>
-            </thead>
-            <tbody>
-                <tr>
-                    <td class="px-0">
-                        @if($invoice->seller->name)
-                            <p class="seller-name">
-                                <strong>{{ $invoice->seller->name }}</strong>
-                            </p>
-                        @endif
-
-                        @if($invoice->seller->address)
-                            <p class="seller-address">
-                                {{ __('Address') }}: {{ $invoice->seller->address }}
-                            </p>
-                        @endif
-
-                        @if($invoice->seller->code)
-                            <p class="seller-code">
-                                {{ __('Code') }}: {{ $invoice->seller->code }}
-                            </p>
-                        @endif
-
-                        @if($invoice->seller->vat)
-                            <p class="seller-vat">
-                                {{ __('VAT Code') }}: {{ $invoice->seller->vat }}
-                            </p>
-                        @endif
 
-                        @if($invoice->seller->phone)
-                            <p class="seller-phone">
-                                {{ __('Phone') }}: {{ $invoice->seller->phone }}
-                            </p>
-                        @endif
+<head>
+    <title>{{ $invoice->name }}</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+    <style type="text/css" media="screen">
+        html {
+            font-family: sans-serif;
+            line-height: 1.15;
+            margin: 0;
+        }
+
+        body {
+            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+            font-weight: 400;
+            line-height: 1.5;
+            color: #212529;
+            text-align: left;
+            background-color: #fff;
+            font-size: 10px;
+            margin: 36pt;
+        }
+
+        h4 {
+            margin-top: 0;
+            margin-bottom: 0.5rem;
+        }
+
+        p {
+            margin-top: 0;
+            margin-bottom: 1rem;
+        }
+
+        strong {
+            font-weight: bolder;
+        }
+
+        img {
+            vertical-align: middle;
+            border-style: none;
+        }
+
+        table {
+            border-collapse: collapse;
+        }
+
+        th {
+            text-align: inherit;
+        }
+
+        h4,
+        .h4 {
+            margin-bottom: 0.5rem;
+            font-weight: 500;
+            line-height: 1.2;
+        }
+
+        h4,
+        .h4 {
+            font-size: 1.5rem;
+        }
+
+        .table {
+            width: 100%;
+            margin-bottom: 1rem;
+            color: #212529;
+        }
+
+        .table th,
+        .table td {
+            padding: 0.75rem;
+            vertical-align: top;
+        }
+
+        .table.table-items td {
+            border-top: 1px solid #dee2e6;
+        }
+
+        .table thead th {
+            vertical-align: bottom;
+            border-bottom: 2px solid #dee2e6;
+        }
+
+        .mt-5 {
+            margin-top: 3rem !important;
+        }
+
+        .pr-0,
+        .px-0 {
+            padding-right: 0 !important;
+        }
+
+        .pl-0,
+        .px-0 {
+            padding-left: 0 !important;
+        }
+
+        .text-right {
+            text-align: right !important;
+        }
+
+        .text-center {
+            text-align: center !important;
+        }
+
+        .text-uppercase {
+            text-transform: uppercase !important;
+        }
+
+        * {
+            font-family: "DejaVu Sans";
+        }
+
+        body,
+        h1,
+        h2,
+        h3,
+        h4,
+        h5,
+        h6,
+        table,
+        th,
+        tr,
+        td,
+        p,
+        div {
+            line-height: 1.1;
+        }
+
+        .party-header {
+            font-size: 1.5rem;
+            font-weight: 400;
+        }
+
+        .total-amount {
+            font-size: 12px;
+            font-weight: 700;
+        }
+
+        .border-0 {
+            border: none !important;
+        }
+
+        .cool-gray {
+            color: #6B7280;
+        }
+
+        .cool-green {
+            color: #308d00;
+        }
+
+    </style>
+</head>
+
+<body>
+    {{-- Header --}}
+    @if ($invoice->logo)
+        <img src="{{ $invoice->getLogo() }}" alt="logo" height="100">
+    @endif
+
+    <table class="table mt-5">
+        <tbody>
+            <tr>
+            <tr>
+                <td class="border-0 pl-0" width="70%">
+                    <h4 class="text-uppercase">
+                        <strong>{{ $invoice->name }} {{ $invoice->getSerialNumber() }}</strong>
+                    </h4>
+                </td>
+                <td class="border-0 pl-0">
+                    @if ($invoice->status)
+                        <h4 class="text-uppercase cool-green">
+                            <strong>{{ $invoice->status }}</strong>
+                        </h4>
+                    @endif
+                    <p>{{ __('Serial No.') }} <strong>{{ $invoice->getSerialNumber() }}</strong></p>
+                    <p>{{ __('Invoice date') }}: <strong>{{ $invoice->getDate() }}</strong></p>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+
+    {{-- Seller - Buyer --}}
+    <table class="table">
+        <thead>
+            <tr>
+                <th class="border-0 pl-0 party-header" width="48.5%">
+                    {{ __('Seller') }}
+                </th>
+                <th class="border-0" width="3%"></th>
+                <th class="border-0 pl-0 party-header">
+                    {{ __('Buyer') }}
+                </th>
+            </tr>
+        </thead>
+        <tbody>
+            <tr>
+                <td class="px-0">
+                    @if ($invoice->seller->name)
+                        <p class="seller-name">
+                            <strong>{{ $invoice->seller->name }}</strong>
+                        </p>
+                    @endif
 
-                        @foreach($invoice->seller->custom_fields as $key => $value)
-                            <p class="seller-custom-field">
-                                {{ ucfirst($key) }}: {{ $value }}
-                            </p>
-                        @endforeach
-                    </td>
-                    <td class="border-0"></td>
-                    <td class="px-0">
-                        @if($invoice->buyer->name)
-                            <p class="buyer-name">
-                                <strong>{{ $invoice->buyer->name }}</strong>
-                            </p>
-                        @endif
+                    @if ($invoice->seller->address)
+                        <p class="seller-address">
+                            {{ __('Address') }}: {{ $invoice->seller->address }}
+                        </p>
+                    @endif
 
-                        @if($invoice->buyer->adress)
-                            <p class="buyer-address">
-                                {{ __('Address') }}: {{ $invoice->buyer->address }}
-                            </p>
-                        @endif
+                    @if ($invoice->seller->code)
+                        <p class="seller-code">
+                            {{ __('Code') }}: {{ $invoice->seller->code }}
+                        </p>
+                    @endif
 
-                        @if($invoice->buyer->code)
-                            <p class="buyer-code">
-                                {{ __('Code') }}: {{ $invoice->buyer->code }}
-                            </p>
-                        @endif
+                    @if ($invoice->seller->vat)
+                        <p class="seller-vat">
+                            {{ __('VAT Code') }}: {{ $invoice->seller->vat }}
+                        </p>
+                    @endif
 
-                        @if($invoice->buyer->vat)
-                            <p class="buyer-vat">
-                                {{ __('VAT Code') }}: {{ $invoice->buyer->vat }}
-                            </p>
-                        @endif
+                    @if ($invoice->seller->phone)
+                        <p class="seller-phone">
+                            {{ __('Phone') }}: {{ $invoice->seller->phone }}
+                        </p>
+                    @endif
 
-                        @if($invoice->buyer->phone)
-                            <p class="buyer-phone">
-                                {{ __('Phone') }}: {{ $invoice->buyer->phone }}
-                            </p>
-                        @endif
+                    @foreach ($invoice->seller->custom_fields as $key => $value)
+                        <p class="seller-custom-field">
+                            {{ ucfirst($key) }}: {{ $value }}
+                        </p>
+                    @endforeach
+                </td>
+                <td class="border-0"></td>
+                <td class="px-0">
+                    @if ($invoice->buyer->name)
+                        <p class="buyer-name">
+                            <strong>{{ $invoice->buyer->name }}</strong>
+                        </p>
+                    @endif
 
-                        @foreach($invoice->buyer->custom_fields as $key => $value)
-                            <p class="buyer-custom-field">
-                                {{ ucfirst($key) }}: {{ $value }}
-                            </p>
-                        @endforeach
-                    </td>
-                </tr>
-            </tbody>
-        </table>
+                    @if ($invoice->buyer->adress)
+                        <p class="buyer-address">
+                            {{ __('Address') }}: {{ $invoice->buyer->address }}
+                        </p>
+                    @endif
 
-        {{-- Table --}}
-        <table class="table table-items">
-            <thead>
-                <tr>
-                    <th scope="col" class="border-0 pl-0">{{ __('Description') }}</th>
-                    @if($invoice->hasItemUnits)
-                        <th scope="col" class="text-center border-0">{{ __('Units') }}</th>
+                    @if ($invoice->buyer->code)
+                        <p class="buyer-code">
+                            {{ __('Code') }}: {{ $invoice->buyer->code }}
+                        </p>
                     @endif
-                    <th scope="col" class="text-center border-0">{{ __('Quantity') }}</th>
-                    <th scope="col" class="text-right border-0">{{ __('Price') }}</th>
-                    @if($invoice->hasItemDiscount)
-                        <th scope="col" class="text-right border-0">{{ __('Discount') }}</th>
+
+                    @if ($invoice->buyer->vat)
+                        <p class="buyer-vat">
+                            {{ __('VAT Code') }}: {{ $invoice->buyer->vat }}
+                        </p>
                     @endif
-                    @if($invoice->hasItemTax)
-                        <th scope="col" class="text-right border-0">{{ __('Tax') }}</th>
+
+                    @if ($invoice->buyer->phone)
+                        <p class="buyer-phone">
+                            {{ __('Phone') }}: {{ $invoice->buyer->phone }}
+                        </p>
                     @endif
-                    <th scope="col" class="text-right border-0 pr-0">{{ __('Subtotal') }}</th>
-                </tr>
-            </thead>
-            <tbody>
-                {{-- Items --}}
-                @foreach($invoice->items as $item)
+
+                    @foreach ($invoice->buyer->custom_fields as $key => $value)
+                        <p class="buyer-custom-field">
+                            {{ ucfirst($key) }}: {{ $value }}
+                        </p>
+                    @endforeach
+                </td>
+            </tr>
+        </tbody>
+    </table>
+
+    {{-- Table --}}
+    <table class="table table-items">
+        <thead>
+            <tr>
+                <th scope="col" class="border-0 pl-0">{{ __('Description') }}</th>
+                @if ($invoice->hasItemUnits)
+                    <th scope="col" class="text-center border-0">{{ __('Units') }}</th>
+                @endif
+                <th scope="col" class="text-center border-0">{{ __('Quantity') }}</th>
+                <th scope="col" class="text-right border-0">{{ __('Price') }}</th>
+                @if ($invoice->hasItemDiscount)
+                    <th scope="col" class="text-right border-0">{{ __('Discount') }}</th>
+                @endif
+                @if ($invoice->hasItemTax)
+                    <th scope="col" class="text-right border-0">{{ __('Tax') }}</th>
+                @endif
+                <th scope="col" class="text-right border-0 pr-0">{{ __('Subtotal') }}</th>
+            </tr>
+        </thead>
+        <tbody>
+            {{-- Items --}}
+            @foreach ($invoice->items as $item)
                 <tr>
                     <td class="pl-0">
                         {{ $item->title }}
 
-                        @if($item->description)
+                        @if ($item->description)
                             <p class="cool-gray">{{ $item->description }}</p>
                         @endif
                     </td>
-                    @if($invoice->hasItemUnits)
+                    @if ($invoice->hasItemUnits)
                         <td class="text-center">{{ $item->units }}</td>
                     @endif
                     <td class="text-center">{{ $item->quantity }}</td>
                     <td class="text-right">
                         {{ $invoice->formatCurrency($item->price_per_unit) }}
                     </td>
-                    @if($invoice->hasItemDiscount)
+                    @if ($invoice->hasItemDiscount)
                         <td class="text-right">
                             {{ $invoice->formatCurrency($item->discount) }}
                         </td>
                     @endif
-                    @if($invoice->hasItemTax)
+                    @if ($invoice->hasItemTax)
                         <td class="text-right">
                             {{ $invoice->formatCurrency($item->tax) }}
                         </td>
@@ -305,86 +328,87 @@
                         {{ $invoice->formatCurrency($item->sub_total_price) }}
                     </td>
                 </tr>
-                @endforeach
-                {{-- Summary --}}
-                @if($invoice->hasItemOrInvoiceDiscount())
-                    <tr>
-                        <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
-                        <td class="text-right pl-0">{{ __('Total discount') }}</td>
-                        <td class="text-right pr-0">
-                            {{ $invoice->formatCurrency($invoice->total_discount) }}
-                        </td>
-                    </tr>
-                @endif
-                @if($invoice->taxable_amount)
-                    <tr>
-                        <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
-                        <td class="text-right pl-0">{{ __('Taxable amount') }}</td>
-                        <td class="text-right pr-0">
-                            {{ $invoice->formatCurrency($invoice->taxable_amount) }}
-                        </td>
-                    </tr>
-                @endif
-                @if($invoice->tax_rate)
-                    <tr>
-                        <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
-                        <td class="text-right pl-0">{{ __('Tax rate') }}</td>
-                        <td class="text-right pr-0">
-                            {{ $invoice->tax_rate }}%
-                        </td>
-                    </tr>
-                @endif
-                @if($invoice->hasItemOrInvoiceTax())
-                    <tr>
-                        <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
-                        <td class="text-right pl-0">{{ __('Total taxes') }}</td>
-                        <td class="text-right pr-0">
-                            {{ $invoice->formatCurrency($invoice->total_taxes) }}
-                        </td>
-                    </tr>
-                @endif
-                @if($invoice->shipping_amount)
-                    <tr>
-                        <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
-                        <td class="text-right pl-0">{{ __('Shipping') }}</td>
-                        <td class="text-right pr-0">
-                            {{ $invoice->formatCurrency($invoice->shipping_amount) }}
-                        </td>
-                    </tr>
-                @endif
-                    <tr>
-                        <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
-                        <td class="text-right pl-0">{{ __('Total amount') }}</td>
-                        <td class="text-right pr-0 total-amount">
-                            {{ $invoice->formatCurrency($invoice->total_amount) }}
-                        </td>
-                    </tr>
-            </tbody>
-        </table>
-
-        @if($invoice->notes)
-            <p>
-                {{ trans('Notes') }}: {!! $invoice->notes !!}
-            </p>
-        @endif
-
-        <p>
-            {{ trans('Amount in words') }}: {{ $invoice->getTotalAmountInWords() }}
-        </p>
+            @endforeach
+            {{-- Summary --}}
+            @if ($invoice->hasItemOrInvoiceDiscount())
+                <tr>
+                    <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
+                    <td class="text-right pl-0">{{ __('Total discount') }}</td>
+                    <td class="text-right pr-0">
+                        {{ $invoice->formatCurrency($invoice->total_discount) }}
+                    </td>
+                </tr>
+            @endif
+            @if ($invoice->taxable_amount)
+                <tr>
+                    <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
+                    <td class="text-right pl-0">{{ __('Taxable amount') }}</td>
+                    <td class="text-right pr-0">
+                        {{ $invoice->formatCurrency($invoice->taxable_amount) }}
+                    </td>
+                </tr>
+            @endif
+            @if ($invoice->tax_rate)
+                <tr>
+                    <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
+                    <td class="text-right pl-0">{{ __('Tax rate') }}</td>
+                    <td class="text-right pr-0">
+                        {{ $invoice->tax_rate }}%
+                    </td>
+                </tr>
+            @endif
+            @if ($invoice->hasItemOrInvoiceTax())
+                <tr>
+                    <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
+                    <td class="text-right pl-0">{{ __('Total taxes') }}</td>
+                    <td class="text-right pr-0">
+                        {{ $invoice->formatCurrency($invoice->total_taxes) }}
+                    </td>
+                </tr>
+            @endif
+            @if ($invoice->shipping_amount)
+                <tr>
+                    <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
+                    <td class="text-right pl-0">{{ __('Shipping') }}</td>
+                    <td class="text-right pr-0">
+                        {{ $invoice->formatCurrency($invoice->shipping_amount) }}
+                    </td>
+                </tr>
+            @endif
+            <tr>
+                <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
+                <td class="text-right pl-0">{{ __('Total amount') }}</td>
+                <td class="text-right pr-0 total-amount">
+                    {{ $invoice->formatCurrency($invoice->total_amount) }}
+                </td>
+            </tr>
+        </tbody>
+    </table>
+
+    @if ($invoice->notes)
         <p>
-            {{ trans('Please pay until') }}: {{ $invoice->getPayUntilDate() }}
+            {{ __('Notes') }}: {!! $invoice->notes !!}
         </p>
+    @endif
+
+    <p>
+        {{ __('Amount in words') }}: {{ $invoice->getTotalAmountInWords() }}
+    </p>
+    <p>
+        {{ __('Please pay until') }}: {{ $invoice->getPayUntilDate() }}
+    </p>
+
+    <script type="text/php">
+        if (isset($pdf) && $PAGE_COUNT > 1) {
+                    $text = "Page {PAGE_NUM} / {PAGE_COUNT}";
+                    $size = 10;
+                    $font = $fontMetrics->getFont("Verdana");
+                    $width = $fontMetrics->get_text_width($text, $font, $size) / 2;
+                    $x = ($pdf->get_width() - $width);
+                    $y = $pdf->get_height() - 35;
+                    $pdf->page_text($x, $y, $text, $font, $size);
+                }
+            </script>
+</body>
 
-        <script type="text/php">
-            if (isset($pdf) && $PAGE_COUNT > 1) {
-                $text = "Page {PAGE_NUM} / {PAGE_COUNT}";
-                $size = 10;
-                $font = $fontMetrics->getFont("Verdana");
-                $width = $fontMetrics->get_text_width($text, $font, $size) / 2;
-                $x = ($pdf->get_width() - $width);
-                $y = $pdf->get_height() - 35;
-                $pdf->page_text($x, $y, $text, $font, $size);
-            }
-        </script>
-    </body>
 </html>

+ 371 - 347
resources/views/vendor/invoices/templates/default.blade.php

@@ -1,301 +1,324 @@
 <!DOCTYPE html>
 <html lang="en">
-    <head>
-        <title>{{ $invoice->name }}</title>
-        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-
-        <style type="text/css" media="screen">
-            html {
-                font-family: sans-serif;
-                line-height: 1.15;
-                margin: 0;
-            }
-
-            body {
-                font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
-                font-weight: 400;
-                line-height: 1.5;
-                color: #212529;
-                text-align: left;
-                background-color: #fff;
-                font-size: 10px;
-                margin: 36pt;
-            }
-
-            h4 {
-                margin-top: 0;
-                margin-bottom: 0.5rem;
-            }
-
-            p {
-                margin-top: 0;
-                margin-bottom: 1rem;
-            }
-
-            strong {
-                font-weight: bolder;
-            }
-
-            img {
-                vertical-align: middle;
-                border-style: none;
-            }
-
-            table {
-                border-collapse: collapse;
-            }
-
-            th {
-                text-align: inherit;
-            }
-
-            h4, .h4 {
-                margin-bottom: 0.5rem;
-                font-weight: 500;
-                line-height: 1.2;
-            }
-
-            h4, .h4 {
-                font-size: 1.5rem;
-            }
-
-            .table {
-                width: 100%;
-                margin-bottom: 1rem;
-                color: #212529;
-            }
-
-            .table th,
-            .table td {
-                padding: 0.75rem;
-                vertical-align: top;
-            }
-
-            .table.table-items td {
-                border-top: 1px solid #dee2e6;
-            }
-
-            .table thead th {
-                vertical-align: bottom;
-                border-bottom: 2px solid #dee2e6;
-            }
-
-            .mt-5 {
-                margin-top: 3rem !important;
-            }
-
-            .pr-0,
-            .px-0 {
-                padding-right: 0 !important;
-            }
-
-            .pl-0,
-            .px-0 {
-                padding-left: 0 !important;
-            }
-
-            .text-right {
-                text-align: right !important;
-            }
-
-            .text-center {
-                text-align: center !important;
-            }
-
-            .text-uppercase {
-                text-transform: uppercase !important;
-            }
-            * {
-                font-family: "DejaVu Sans";
-            }
-            body, h1, h2, h3, h4, h5, h6, table, th, tr, td, p, div {
-                line-height: 1.1;
-            }
-            .party-header {
-                font-size: 1.5rem;
-                font-weight: 400;
-            }
-            .total-amount {
-                font-size: 12px;
-                font-weight: 700;
-            }
-            .border-0 {
-                border: none !important;
-            }
-            .cool-gray {
-                color: #6B7280;
-            }
-            .cool-green {
-                color: #308d00;
-            }
-        </style>
-    </head>
-
-    <body>
-        {{-- Header --}}
-        @if($invoice->logo)
-            <img src="{{ $invoice->getLogo() }}" alt="logo" height="100">
-        @endif
-
-        <table class="table mt-5">
-            <tbody>
-                <tr>
-                <tr>
-                    <td class="border-0 pl-0" width="70%">
-                        <h4 class="text-uppercase">
-                            <strong>{{ $invoice->name }} {{$invoice->getSerialNumber()}}</strong>
-                        </h4>
-                    </td>
-                    <td class="border-0 pl-0">
-                        @if($invoice->status)
-                            <h4 class="text-uppercase cool-green">
-                                <strong>{{ $invoice->status }}</strong>
-                            </h4>
-                        @endif
-                        <p>{{ __('invoices::invoice.serial') }} <strong>{{ $invoice->getSerialNumber() }}</strong></p>
-                        <p>{{ __('invoices::invoice.date') }}: <strong>{{ $invoice->getDate() }}</strong></p>
-                    </td>
-                </tr>
-            </tbody>
-        </table>
-
-        {{-- Seller - Buyer --}}
-        <table class="table">
-            <thead>
-                <tr>
-                    <th class="border-0 pl-0 party-header" width="48.5%">
-                        {{ __('invoices::invoice.seller') }}
-                    </th>
-                    <th class="border-0" width="3%"></th>
-                    <th class="border-0 pl-0 party-header">
-                        {{ __('invoices::invoice.buyer') }}
-                    </th>
-                </tr>
-            </thead>
-            <tbody>
-                <tr>
-                    <td class="px-0">
-                        @if($invoice->seller->name)
-                            <p class="seller-name">
-                                <strong>{{ $invoice->seller->name }}</strong>
-                            </p>
-                        @endif
-
-                        @if($invoice->seller->address)
-                            <p class="seller-address">
-                                {{ __('invoices::invoice.address') }}: {{ $invoice->seller->address }}
-                            </p>
-                        @endif
-
-                        @if($invoice->seller->code)
-                            <p class="seller-code">
-                                {{ __('invoices::invoice.code') }}: {{ $invoice->seller->code }}
-                            </p>
-                        @endif
-
-                        @if($invoice->seller->vat)
-                            <p class="seller-vat">
-                                {{ __('invoices::invoice.vat') }}: {{ $invoice->seller->vat }}
-                            </p>
-                        @endif
 
-                        @if($invoice->seller->phone)
-                            <p class="seller-phone">
-                                {{ __('invoices::invoice.phone') }}: {{ $invoice->seller->phone }}
-                            </p>
-                        @endif
+<head>
+    <title>{{ $invoice->name }}</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+    <style type="text/css" media="screen">
+        html {
+            font-family: sans-serif;
+            line-height: 1.15;
+            margin: 0;
+        }
+
+        body {
+            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+            font-weight: 400;
+            line-height: 1.5;
+            color: #212529;
+            text-align: left;
+            background-color: #fff;
+            font-size: 10px;
+            margin: 36pt;
+        }
+
+        h4 {
+            margin-top: 0;
+            margin-bottom: 0.5rem;
+        }
+
+        p {
+            margin-top: 0;
+            margin-bottom: 1rem;
+        }
+
+        strong {
+            font-weight: bolder;
+        }
+
+        img {
+            vertical-align: middle;
+            border-style: none;
+        }
+
+        table {
+            border-collapse: collapse;
+        }
+
+        th {
+            text-align: inherit;
+        }
+
+        h4,
+        .h4 {
+            margin-bottom: 0.5rem;
+            font-weight: 500;
+            line-height: 1.2;
+        }
+
+        h4,
+        .h4 {
+            font-size: 1.5rem;
+        }
+
+        .table {
+            width: 100%;
+            margin-bottom: 1rem;
+            color: #212529;
+        }
+
+        .table th,
+        .table td {
+            padding: 0.75rem;
+            vertical-align: top;
+        }
+
+        .table.table-items td {
+            border-top: 1px solid #dee2e6;
+        }
+
+        .table thead th {
+            vertical-align: bottom;
+            border-bottom: 2px solid #dee2e6;
+        }
+
+        .mt-5 {
+            margin-top: 3rem !important;
+        }
+
+        .pr-0,
+        .px-0 {
+            padding-right: 0 !important;
+        }
+
+        .pl-0,
+        .px-0 {
+            padding-left: 0 !important;
+        }
+
+        .text-right {
+            text-align: right !important;
+        }
+
+        .text-center {
+            text-align: center !important;
+        }
+
+        .text-uppercase {
+            text-transform: uppercase !important;
+        }
+
+        * {
+            font-family: "DejaVu Sans";
+        }
+
+        body,
+        h1,
+        h2,
+        h3,
+        h4,
+        h5,
+        h6,
+        table,
+        th,
+        tr,
+        td,
+        p,
+        div {
+            line-height: 1.1;
+        }
+
+        .party-header {
+            font-size: 1.5rem;
+            font-weight: 400;
+        }
+
+        .total-amount {
+            font-size: 12px;
+            font-weight: 700;
+        }
+
+        .border-0 {
+            border: none !important;
+        }
+
+        .cool-gray {
+            color: #6B7280;
+        }
+
+        .cool-green {
+            color: #308d00;
+        }
+
+    </style>
+</head>
+
+<body>
+    {{-- Header --}}
+    @if ($invoice->logo)
+        <img src="{{ $invoice->getLogo() }}" alt="logo" height="100">
+    @endif
+
+    <table class="table mt-5">
+        <tbody>
+            <tr>
+            <tr>
+                <td class="border-0 pl-0" width="70%">
+                    <h4 class="text-uppercase">
+                        <strong>{{ $invoice->name }} {{ $invoice->getSerialNumber() }}</strong>
+                    </h4>
+                </td>
+                <td class="border-0 pl-0">
+                    @if ($invoice->status)
+                        <h4 class="text-uppercase cool-green">
+                            <strong>{{ $invoice->status }}</strong>
+                        </h4>
+                    @endif
+                    <p>{{ __('invoices::invoice.serial') }} <strong>{{ $invoice->getSerialNumber() }}</strong></p>
+                    <p>{{ __('invoices::invoice.date') }}: <strong>{{ $invoice->getDate() }}</strong></p>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+
+    {{-- Seller - Buyer --}}
+    <table class="table">
+        <thead>
+            <tr>
+                <th class="border-0 pl-0 party-header" width="48.5%">
+                    {{ __('invoices::invoice.seller') }}
+                </th>
+                <th class="border-0" width="3%"></th>
+                <th class="border-0 pl-0 party-header">
+                    {{ __('invoices::invoice.buyer') }}
+                </th>
+            </tr>
+        </thead>
+        <tbody>
+            <tr>
+                <td class="px-0">
+                    @if ($invoice->seller->name)
+                        <p class="seller-name">
+                            <strong>{{ $invoice->seller->name }}</strong>
+                        </p>
+                    @endif
 
-                        @foreach($invoice->seller->custom_fields as $key => $value)
-                            <p class="seller-custom-field">
-                                {{ ucfirst($key) }}: {{ $value }}
-                            </p>
-                        @endforeach
-                    </td>
-                    <td class="border-0"></td>
-                    <td class="px-0">
-                        @if($invoice->buyer->name)
-                            <p class="buyer-name">
-                                <strong>{{ $invoice->buyer->name }}</strong>
-                            </p>
-                        @endif
+                    @if ($invoice->seller->address)
+                        <p class="seller-address">
+                            {{ __('invoices::invoice.address') }}: {{ $invoice->seller->address }}
+                        </p>
+                    @endif
 
-                        @if($invoice->buyer->address)
-                            <p class="buyer-address">
-                                {{ __('invoices::invoice.address') }}: {{ $invoice->buyer->address }}
-                            </p>
-                        @endif
+                    @if ($invoice->seller->code)
+                        <p class="seller-code">
+                            {{ __('invoices::invoice.code') }}: {{ $invoice->seller->code }}
+                        </p>
+                    @endif
 
-                        @if($invoice->buyer->code)
-                            <p class="buyer-code">
-                                {{ __('invoices::invoice.code') }}: {{ $invoice->buyer->code }}
-                            </p>
-                        @endif
+                    @if ($invoice->seller->vat)
+                        <p class="seller-vat">
+                            {{ __('invoices::invoice.vat') }}: {{ $invoice->seller->vat }}
+                        </p>
+                    @endif
 
-                        @if($invoice->buyer->vat)
-                            <p class="buyer-vat">
-                                {{ __('invoices::invoice.vat') }}: {{ $invoice->buyer->vat }}
-                            </p>
-                        @endif
+                    @if ($invoice->seller->phone)
+                        <p class="seller-phone">
+                            {{ __('invoices::invoice.phone') }}: {{ $invoice->seller->phone }}
+                        </p>
+                    @endif
 
-                        @if($invoice->buyer->phone)
-                            <p class="buyer-phone">
-                                {{ __('invoices::invoice.phone') }}: {{ $invoice->buyer->phone }}
-                            </p>
-                        @endif
+                    @foreach ($invoice->seller->custom_fields as $key => $value)
+                        <p class="seller-custom-field">
+                            {{ ucfirst($key) }}: {{ $value }}
+                        </p>
+                    @endforeach
+                </td>
+                <td class="border-0"></td>
+                <td class="px-0">
+                    @if ($invoice->buyer->name)
+                        <p class="buyer-name">
+                            <strong>{{ $invoice->buyer->name }}</strong>
+                        </p>
+                    @endif
 
-                        @foreach($invoice->buyer->custom_fields as $key => $value)
-                            <p class="buyer-custom-field">
-                                {{ ucfirst($key) }}: {{ $value }}
-                            </p>
-                        @endforeach
-                    </td>
-                </tr>
-            </tbody>
-        </table>
+                    @if ($invoice->buyer->address)
+                        <p class="buyer-address">
+                            {{ __('invoices::invoice.address') }}: {{ $invoice->buyer->address }}
+                        </p>
+                    @endif
 
-        {{-- Table --}}
-        <table class="table table-items">
-            <thead>
-                <tr>
-                    <th scope="col" class="border-0 pl-0">{{ __('invoices::invoice.description') }}</th>
-                    @if($invoice->hasItemUnits)
-                        <th scope="col" class="text-center border-0">{{ __('invoices::invoice.units') }}</th>
+                    @if ($invoice->buyer->code)
+                        <p class="buyer-code">
+                            {{ __('invoices::invoice.code') }}: {{ $invoice->buyer->code }}
+                        </p>
                     @endif
-                    <th scope="col" class="text-center border-0">{{ __('invoices::invoice.quantity') }}</th>
-                    <th scope="col" class="text-right border-0">{{ __('invoices::invoice.price') }}</th>
-                    @if($invoice->hasItemDiscount)
-                        <th scope="col" class="text-right border-0">{{ __('invoices::invoice.discount') }}</th>
+
+                    @if ($invoice->buyer->vat)
+                        <p class="buyer-vat">
+                            {{ __('invoices::invoice.vat') }}: {{ $invoice->buyer->vat }}
+                        </p>
                     @endif
-                    @if($invoice->hasItemTax)
-                        <th scope="col" class="text-right border-0">{{ __('invoices::invoice.tax') }}</th>
+
+                    @if ($invoice->buyer->phone)
+                        <p class="buyer-phone">
+                            {{ __('invoices::invoice.phone') }}: {{ $invoice->buyer->phone }}
+                        </p>
                     @endif
-                    <th scope="col" class="text-right border-0 pr-0">{{ __('invoices::invoice.sub_total') }}</th>
-                </tr>
-            </thead>
-            <tbody>
-                {{-- Items --}}
-                @foreach($invoice->items as $item)
+
+                    @foreach ($invoice->buyer->custom_fields as $key => $value)
+                        <p class="buyer-custom-field">
+                            {{ ucfirst($key) }}: {{ $value }}
+                        </p>
+                    @endforeach
+                </td>
+            </tr>
+        </tbody>
+    </table>
+
+    {{-- Table --}}
+    <table class="table table-items">
+        <thead>
+            <tr>
+                <th scope="col" class="border-0 pl-0">{{ __('invoices::invoice.description') }}</th>
+                @if ($invoice->hasItemUnits)
+                    <th scope="col" class="text-center border-0">{{ __('invoices::invoice.units') }}</th>
+                @endif
+                <th scope="col" class="text-center border-0">{{ __('invoices::invoice.quantity') }}</th>
+                <th scope="col" class="text-right border-0">{{ __('invoices::invoice.price') }}</th>
+                @if ($invoice->hasItemDiscount)
+                    <th scope="col" class="text-right border-0">{{ __('invoices::invoice.discount') }}</th>
+                @endif
+                @if ($invoice->hasItemTax)
+                    <th scope="col" class="text-right border-0">{{ __('invoices::invoice.tax') }}</th>
+                @endif
+                <th scope="col" class="text-right border-0 pr-0">{{ __('invoices::invoice.sub_total') }}</th>
+            </tr>
+        </thead>
+        <tbody>
+            {{-- Items --}}
+            @foreach ($invoice->items as $item)
                 <tr>
                     <td class="pl-0">
                         {{ $item->title }}
 
-                        @if($item->description)
+                        @if ($item->description)
                             <p class="cool-gray">{{ $item->description }}</p>
                         @endif
                     </td>
-                    @if($invoice->hasItemUnits)
+                    @if ($invoice->hasItemUnits)
                         <td class="text-center">{{ $item->units }}</td>
                     @endif
                     <td class="text-center">{{ $item->quantity }}</td>
                     <td class="text-right">
                         {{ $invoice->formatCurrency($item->price_per_unit) }}
                     </td>
-                    @if($invoice->hasItemDiscount)
+                    @if ($invoice->hasItemDiscount)
                         <td class="text-right">
                             {{ $invoice->formatCurrency($item->discount) }}
                         </td>
                     @endif
-                    @if($invoice->hasItemTax)
+                    @if ($invoice->hasItemTax)
                         <td class="text-right">
                             {{ $invoice->formatCurrency($item->tax) }}
                         </td>
@@ -305,86 +328,87 @@
                         {{ $invoice->formatCurrency($item->sub_total_price) }}
                     </td>
                 </tr>
-                @endforeach
-                {{-- Summary --}}
-                @if($invoice->hasItemOrInvoiceDiscount())
-                    <tr>
-                        <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
-                        <td class="text-right pl-0">{{ __('invoices::invoice.total_discount') }}</td>
-                        <td class="text-right pr-0">
-                            {{ $invoice->formatCurrency($invoice->total_discount) }}
-                        </td>
-                    </tr>
-                @endif
-                @if($invoice->taxable_amount)
-                    <tr>
-                        <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
-                        <td class="text-right pl-0">{{ __('invoices::invoice.taxable_amount') }}</td>
-                        <td class="text-right pr-0">
-                            {{ $invoice->formatCurrency($invoice->taxable_amount) }}
-                        </td>
-                    </tr>
-                @endif
-                @if($invoice->tax_rate)
-                    <tr>
-                        <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
-                        <td class="text-right pl-0">{{ __('invoices::invoice.tax_rate') }}</td>
-                        <td class="text-right pr-0">
-                            {{ $invoice->tax_rate }}%
-                        </td>
-                    </tr>
-                @endif
-                @if($invoice->hasItemOrInvoiceTax())
-                    <tr>
-                        <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
-                        <td class="text-right pl-0">{{ __('invoices::invoice.total_taxes') }}</td>
-                        <td class="text-right pr-0">
-                            {{ $invoice->formatCurrency($invoice->total_taxes) }}
-                        </td>
-                    </tr>
-                @endif
-                @if($invoice->shipping_amount)
-                    <tr>
-                        <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
-                        <td class="text-right pl-0">{{ __('invoices::invoice.shipping') }}</td>
-                        <td class="text-right pr-0">
-                            {{ $invoice->formatCurrency($invoice->shipping_amount) }}
-                        </td>
-                    </tr>
-                @endif
-                    <tr>
-                        <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
-                        <td class="text-right pl-0">{{ __('invoices::invoice.total_amount') }}</td>
-                        <td class="text-right pr-0 total-amount">
-                            {{ $invoice->formatCurrency($invoice->total_amount) }}
-                        </td>
-                    </tr>
-            </tbody>
-        </table>
-
-        @if($invoice->notes)
-            <p>
-                {{ trans('invoices::invoice.notes') }}: {!! $invoice->notes !!}
-            </p>
-        @endif
-
-        <p>
-            {{ trans('invoices::invoice.amount_in_words') }}: {{ $invoice->getTotalAmountInWords() }}
-        </p>
+            @endforeach
+            {{-- Summary --}}
+            @if ($invoice->hasItemOrInvoiceDiscount())
+                <tr>
+                    <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
+                    <td class="text-right pl-0">{{ __('invoices::invoice.total_discount') }}</td>
+                    <td class="text-right pr-0">
+                        {{ $invoice->formatCurrency($invoice->total_discount) }}
+                    </td>
+                </tr>
+            @endif
+            @if ($invoice->taxable_amount)
+                <tr>
+                    <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
+                    <td class="text-right pl-0">{{ __('invoices::invoice.taxable_amount') }}</td>
+                    <td class="text-right pr-0">
+                        {{ $invoice->formatCurrency($invoice->taxable_amount) }}
+                    </td>
+                </tr>
+            @endif
+            @if ($invoice->tax_rate)
+                <tr>
+                    <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
+                    <td class="text-right pl-0">{{ __('invoices::invoice.tax_rate') }}</td>
+                    <td class="text-right pr-0">
+                        {{ $invoice->tax_rate }}%
+                    </td>
+                </tr>
+            @endif
+            @if ($invoice->hasItemOrInvoiceTax())
+                <tr>
+                    <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
+                    <td class="text-right pl-0">{{ __('invoices::invoice.total_taxes') }}</td>
+                    <td class="text-right pr-0">
+                        {{ $invoice->formatCurrency($invoice->total_taxes) }}
+                    </td>
+                </tr>
+            @endif
+            @if ($invoice->shipping_amount)
+                <tr>
+                    <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
+                    <td class="text-right pl-0">{{ __('invoices::invoice.shipping') }}</td>
+                    <td class="text-right pr-0">
+                        {{ $invoice->formatCurrency($invoice->shipping_amount) }}
+                    </td>
+                </tr>
+            @endif
+            <tr>
+                <td colspan="{{ $invoice->table_columns - 2 }}" class="border-0"></td>
+                <td class="text-right pl-0">{{ __('invoices::invoice.total_amount') }}</td>
+                <td class="text-right pr-0 total-amount">
+                    {{ $invoice->formatCurrency($invoice->total_amount) }}
+                </td>
+            </tr>
+        </tbody>
+    </table>
+
+    @if ($invoice->notes)
         <p>
-            {{ trans('invoices::invoice.pay_until') }}: {{ $invoice->getPayUntilDate() }}
+            {{ __('invoices::invoice.notes') }}: {!! $invoice->notes !!}
         </p>
+    @endif
+
+    <p>
+        {{ __('invoices::invoice.amount_in_words') }}: {{ $invoice->getTotalAmountInWords() }}
+    </p>
+    <p>
+        {{ __('invoices::invoice.pay_until') }}: {{ $invoice->getPayUntilDate() }}
+    </p>
+
+    <script type="text/php">
+        if (isset($pdf) && $PAGE_COUNT > 1) {
+                    $text = "Page {PAGE_NUM} / {PAGE_COUNT}";
+                    $size = 10;
+                    $font = $fontMetrics->getFont("Verdana");
+                    $width = $fontMetrics->get_text_width($text, $font, $size) / 2;
+                    $x = ($pdf->get_width() - $width);
+                    $y = $pdf->get_height() - 35;
+                    $pdf->page_text($x, $y, $text, $font, $size);
+                }
+            </script>
+</body>
 
-        <script type="text/php">
-            if (isset($pdf) && $PAGE_COUNT > 1) {
-                $text = "Page {PAGE_NUM} / {PAGE_COUNT}";
-                $size = 10;
-                $font = $fontMetrics->getFont("Verdana");
-                $width = $fontMetrics->get_text_width($text, $font, $size) / 2;
-                $x = ($pdf->get_width() - $width);
-                $y = $pdf->get_height() - 35;
-                $pdf->page_text($x, $y, $text, $font, $size);
-            }
-        </script>
-    </body>
 </html>