Invoice page

This commit is contained in:
Čarodej
2022-01-18 08:28:58 +01:00
parent 2403f89ca3
commit ffebe7fecc
11 changed files with 342 additions and 611 deletions

View File

@@ -28,7 +28,7 @@
"/chunks/app-settings.js": "/chunks/app-settings.js?id=62ce73b2d66590912cbc",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=c3a013b11ae7bde6f39d",
"/chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/database~chunks/email-veri~2c1222b7.js": "/chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/database~chunks/email-veri~2c1222b7.js?id=5963f5d9fb4e759c600a",
"/chunks/billing.js": "/chunks/billing.js?id=42bd4fd1fcb7b7b4e301",
"/chunks/billing.js": "/chunks/billing.js?id=d447a1d429f6076777ae",
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=0ffe43f76a33278ce1b8",
"/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.js": "/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.js?id=cb4a650a91230e3d2abe",
"/chunks/billing~chunks/settings-storage~chunks/user-storage~chunks/user-subscription.js": "/chunks/billing~chunks/settings-storage~chunks/user-storage~chunks/user-subscription.js?id=669bd6d15cfa4c6e75df",
@@ -105,254 +105,5 @@
"/vendors~chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunk~40ccbae3.js": "/vendors~chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunk~40ccbae3.js?id=ab29ab0a0c2d5a40b39d",
"/vendors~chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/vendors~chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=a0fa80db175709ba340a",
"/vendors~chunks/settings.js": "/vendors~chunks/settings.js?id=5bf155d80b2fb871ec84",
"/chunks/billing.63b9eec2a0209445fac3.hot-update.js": "/chunks/billing.63b9eec2a0209445fac3.hot-update.js",
"/chunks/billing.f089f07e6d220cf37c54.hot-update.js": "/chunks/billing.f089f07e6d220cf37c54.hot-update.js",
"/chunks/billing.a7c19ab428b33379bb86.hot-update.js": "/chunks/billing.a7c19ab428b33379bb86.hot-update.js",
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/app-appearance.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/app-appearance.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/app-email.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/app-email.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/app-index.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/app-index.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/app-language.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/app-language.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/app-others~chunks/payments/settings.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/app-others~chunks/payments/settings.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/billing.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/billing.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/page-edit.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/page-edit.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/payments/billings.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/payments/billings.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/plan-create/fixed.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/plan-create/fixed.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/plan-create/metered.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/plan-create/metered.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/plan-delete.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/plan-delete.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/plan-settings.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/plan-settings.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/profile~chunks/settings-password.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/profile~chunks/settings-password.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/user-create.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/user-create.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/user-delete.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/user-delete.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/user-detail.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/user-detail.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/user-storage.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/user-storage.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/user-subscription.3aa0e8fabf6b1f466ea3.hot-update.js": "/chunks/user-subscription.3aa0e8fabf6b1f466ea3.hot-update.js",
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.254a47d22c8dc4920d76.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.254a47d22c8dc4920d76.hot-update.js",
"/chunks/app-appearance.254a47d22c8dc4920d76.hot-update.js": "/chunks/app-appearance.254a47d22c8dc4920d76.hot-update.js",
"/chunks/app-email.254a47d22c8dc4920d76.hot-update.js": "/chunks/app-email.254a47d22c8dc4920d76.hot-update.js",
"/chunks/app-index.254a47d22c8dc4920d76.hot-update.js": "/chunks/app-index.254a47d22c8dc4920d76.hot-update.js",
"/chunks/app-language.254a47d22c8dc4920d76.hot-update.js": "/chunks/app-language.254a47d22c8dc4920d76.hot-update.js",
"/chunks/app-others~chunks/payments/settings.254a47d22c8dc4920d76.hot-update.js": "/chunks/app-others~chunks/payments/settings.254a47d22c8dc4920d76.hot-update.js",
"/chunks/billing.254a47d22c8dc4920d76.hot-update.js": "/chunks/billing.254a47d22c8dc4920d76.hot-update.js",
"/chunks/page-edit.254a47d22c8dc4920d76.hot-update.js": "/chunks/page-edit.254a47d22c8dc4920d76.hot-update.js",
"/chunks/payments/billings.254a47d22c8dc4920d76.hot-update.js": "/chunks/payments/billings.254a47d22c8dc4920d76.hot-update.js",
"/chunks/plan-create/fixed.254a47d22c8dc4920d76.hot-update.js": "/chunks/plan-create/fixed.254a47d22c8dc4920d76.hot-update.js",
"/chunks/plan-create/metered.254a47d22c8dc4920d76.hot-update.js": "/chunks/plan-create/metered.254a47d22c8dc4920d76.hot-update.js",
"/chunks/plan-delete.254a47d22c8dc4920d76.hot-update.js": "/chunks/plan-delete.254a47d22c8dc4920d76.hot-update.js",
"/chunks/plan-settings.254a47d22c8dc4920d76.hot-update.js": "/chunks/plan-settings.254a47d22c8dc4920d76.hot-update.js",
"/chunks/profile~chunks/settings-password.254a47d22c8dc4920d76.hot-update.js": "/chunks/profile~chunks/settings-password.254a47d22c8dc4920d76.hot-update.js",
"/chunks/user-create.254a47d22c8dc4920d76.hot-update.js": "/chunks/user-create.254a47d22c8dc4920d76.hot-update.js",
"/chunks/user-delete.254a47d22c8dc4920d76.hot-update.js": "/chunks/user-delete.254a47d22c8dc4920d76.hot-update.js",
"/chunks/user-detail.254a47d22c8dc4920d76.hot-update.js": "/chunks/user-detail.254a47d22c8dc4920d76.hot-update.js",
"/chunks/user-storage.254a47d22c8dc4920d76.hot-update.js": "/chunks/user-storage.254a47d22c8dc4920d76.hot-update.js",
"/chunks/user-subscription.254a47d22c8dc4920d76.hot-update.js": "/chunks/user-subscription.254a47d22c8dc4920d76.hot-update.js",
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.39f5dc33e914c7559d7d.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/app-appearance.39f5dc33e914c7559d7d.hot-update.js": "/chunks/app-appearance.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/app-email.39f5dc33e914c7559d7d.hot-update.js": "/chunks/app-email.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/app-index.39f5dc33e914c7559d7d.hot-update.js": "/chunks/app-index.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/app-language.39f5dc33e914c7559d7d.hot-update.js": "/chunks/app-language.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/app-others~chunks/payments/settings.39f5dc33e914c7559d7d.hot-update.js": "/chunks/app-others~chunks/payments/settings.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/billing.39f5dc33e914c7559d7d.hot-update.js": "/chunks/billing.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/page-edit.39f5dc33e914c7559d7d.hot-update.js": "/chunks/page-edit.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/payments/billings.39f5dc33e914c7559d7d.hot-update.js": "/chunks/payments/billings.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/plan-create/fixed.39f5dc33e914c7559d7d.hot-update.js": "/chunks/plan-create/fixed.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/plan-create/metered.39f5dc33e914c7559d7d.hot-update.js": "/chunks/plan-create/metered.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/plan-delete.39f5dc33e914c7559d7d.hot-update.js": "/chunks/plan-delete.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/plan-settings.39f5dc33e914c7559d7d.hot-update.js": "/chunks/plan-settings.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/profile~chunks/settings-password.39f5dc33e914c7559d7d.hot-update.js": "/chunks/profile~chunks/settings-password.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/user-create.39f5dc33e914c7559d7d.hot-update.js": "/chunks/user-create.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/user-delete.39f5dc33e914c7559d7d.hot-update.js": "/chunks/user-delete.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/user-detail.39f5dc33e914c7559d7d.hot-update.js": "/chunks/user-detail.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/user-storage.39f5dc33e914c7559d7d.hot-update.js": "/chunks/user-storage.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/user-subscription.39f5dc33e914c7559d7d.hot-update.js": "/chunks/user-subscription.39f5dc33e914c7559d7d.hot-update.js",
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/app-appearance.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/app-appearance.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/app-email.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/app-email.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/app-index.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/app-index.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/app-language.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/app-language.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/app-others~chunks/payments/settings.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/app-others~chunks/payments/settings.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/billing.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/billing.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/page-edit.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/page-edit.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/payments/billings.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/payments/billings.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/plan-create/fixed.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/plan-create/fixed.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/plan-create/metered.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/plan-create/metered.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/plan-delete.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/plan-delete.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/plan-settings.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/plan-settings.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/profile~chunks/settings-password.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/profile~chunks/settings-password.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/user-create.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/user-create.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/user-delete.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/user-delete.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/user-detail.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/user-detail.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/user-storage.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/user-storage.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/user-subscription.6bd3ab1a8a2e99a1e4af.hot-update.js": "/chunks/user-subscription.6bd3ab1a8a2e99a1e4af.hot-update.js",
"/chunks/billing.728ac9ab3e5a2a3b0004.hot-update.js": "/chunks/billing.728ac9ab3e5a2a3b0004.hot-update.js",
"/chunks/billing.41e0a6e034deea202f37.hot-update.js": "/chunks/billing.41e0a6e034deea202f37.hot-update.js",
"/chunks/payments/settings.300ac4824a3419b1c208.hot-update.js": "/chunks/payments/settings.300ac4824a3419b1c208.hot-update.js",
"/chunks/payments/settings.3d78d96f322fd3beaae2.hot-update.js": "/chunks/payments/settings.3d78d96f322fd3beaae2.hot-update.js",
"/chunks/payments/settings.6ec6ebd9434dc12d3a2b.hot-update.js": "/chunks/payments/settings.6ec6ebd9434dc12d3a2b.hot-update.js",
"/chunks/payments/settings.f9e50fd42e9b6a20e51d.hot-update.js": "/chunks/payments/settings.f9e50fd42e9b6a20e51d.hot-update.js",
"/chunks/payments/settings.3ad4539db6a81f4c469b.hot-update.js": "/chunks/payments/settings.3ad4539db6a81f4c469b.hot-update.js",
"/chunks/payments/settings.194aed09083333a609f6.hot-update.js": "/chunks/payments/settings.194aed09083333a609f6.hot-update.js",
"/chunks/dashboard.199562476299490ea56b.hot-update.js": "/chunks/dashboard.199562476299490ea56b.hot-update.js",
"/chunks/dashboard.e981888df477d6249b5c.hot-update.js": "/chunks/dashboard.e981888df477d6249b5c.hot-update.js",
"/chunks/dashboard.8aa2f8319a3c530eb024.hot-update.js": "/chunks/dashboard.8aa2f8319a3c530eb024.hot-update.js",
"/chunks/dashboard.a6f46323bc308725edcc.hot-update.js": "/chunks/dashboard.a6f46323bc308725edcc.hot-update.js",
"/chunks/dashboard.8fe4d577c635abe21a57.hot-update.js": "/chunks/dashboard.8fe4d577c635abe21a57.hot-update.js",
"/chunks/dashboard.85e5cfb2266dcd56b8fb.hot-update.js": "/chunks/dashboard.85e5cfb2266dcd56b8fb.hot-update.js",
"/chunks/dashboard.7413166607ed5bbccf72.hot-update.js": "/chunks/dashboard.7413166607ed5bbccf72.hot-update.js",
"/chunks/dashboard.c356597a42f74b8a0680.hot-update.js": "/chunks/dashboard.c356597a42f74b8a0680.hot-update.js",
"/chunks/dashboard.781e96d1672d6862dc61.hot-update.js": "/chunks/dashboard.781e96d1672d6862dc61.hot-update.js",
"/chunks/dashboard.26e27d447d0145dece52.hot-update.js": "/chunks/dashboard.26e27d447d0145dece52.hot-update.js",
"/chunks/dashboard.3566f0996d81d317784d.hot-update.js": "/chunks/dashboard.3566f0996d81d317784d.hot-update.js",
"/chunks/dashboard.18096e42e0bb544bfada.hot-update.js": "/chunks/dashboard.18096e42e0bb544bfada.hot-update.js",
"/chunks/dashboard.cce752f8d773d152fbea.hot-update.js": "/chunks/dashboard.cce752f8d773d152fbea.hot-update.js",
"/chunks/dashboard.9bf150f6485464157299.hot-update.js": "/chunks/dashboard.9bf150f6485464157299.hot-update.js",
"/chunks/dashboard.b74701f4fc0048082c83.hot-update.js": "/chunks/dashboard.b74701f4fc0048082c83.hot-update.js",
"/chunks/dashboard.0a5793d3140c67329f68.hot-update.js": "/chunks/dashboard.0a5793d3140c67329f68.hot-update.js",
"/chunks/dashboard.355d4c1c7c311cf4d00c.hot-update.js": "/chunks/dashboard.355d4c1c7c311cf4d00c.hot-update.js",
"/chunks/dashboard.949feb2d4c59f318d311.hot-update.js": "/chunks/dashboard.949feb2d4c59f318d311.hot-update.js",
"/chunks/billing.3f28e3938e54bec091a8.hot-update.js": "/chunks/billing.3f28e3938e54bec091a8.hot-update.js",
"/chunks/billing.353be9534c66587b95bb.hot-update.js": "/chunks/billing.353be9534c66587b95bb.hot-update.js",
"/chunks/billing.3f0f546a80b0b01ad208.hot-update.js": "/chunks/billing.3f0f546a80b0b01ad208.hot-update.js",
"/chunks/billing.77f53d250bc372273737.hot-update.js": "/chunks/billing.77f53d250bc372273737.hot-update.js",
"/chunks/billing.c6a3c5d2737ac2c87d59.hot-update.js": "/chunks/billing.c6a3c5d2737ac2c87d59.hot-update.js",
"/chunks/billing.9c66f94c95217ede2a9f.hot-update.js": "/chunks/billing.9c66f94c95217ede2a9f.hot-update.js",
"/chunks/billing.eb73f9df364fbc91324a.hot-update.js": "/chunks/billing.eb73f9df364fbc91324a.hot-update.js",
"/chunks/billing.288d47e9c5a02146cd4d.hot-update.js": "/chunks/billing.288d47e9c5a02146cd4d.hot-update.js",
"/chunks/billing.7ce8883f7933a274e52c.hot-update.js": "/chunks/billing.7ce8883f7933a274e52c.hot-update.js",
"/chunks/billing.ae847eea001d33691526.hot-update.js": "/chunks/billing.ae847eea001d33691526.hot-update.js",
"/chunks/billing.297ad2b0812de4e6e057.hot-update.js": "/chunks/billing.297ad2b0812de4e6e057.hot-update.js",
"/chunks/billing.4999dfe3163965e24ace.hot-update.js": "/chunks/billing.4999dfe3163965e24ace.hot-update.js",
"/chunks/billing.7ee6ce45de3aef3dd811.hot-update.js": "/chunks/billing.7ee6ce45de3aef3dd811.hot-update.js",
"/chunks/billing.52b3de7246605beebf65.hot-update.js": "/chunks/billing.52b3de7246605beebf65.hot-update.js",
"/chunks/billing.8fb1783c6217092398ad.hot-update.js": "/chunks/billing.8fb1783c6217092398ad.hot-update.js",
"/chunks/billing.75cb21487cd3bce1c423.hot-update.js": "/chunks/billing.75cb21487cd3bce1c423.hot-update.js",
"/chunks/billing.ffef43cf83ea9de91b1b.hot-update.js": "/chunks/billing.ffef43cf83ea9de91b1b.hot-update.js",
"/chunks/billing.470e77a8264363e6029c.hot-update.js": "/chunks/billing.470e77a8264363e6029c.hot-update.js",
"/chunks/billing.b1796e9a06e4c7a31491.hot-update.js": "/chunks/billing.b1796e9a06e4c7a31491.hot-update.js",
"/chunks/billing.1189c11ab2faaa5f020e.hot-update.js": "/chunks/billing.1189c11ab2faaa5f020e.hot-update.js",
"/chunks/billing.8af4cc4a334b02318d5d.hot-update.js": "/chunks/billing.8af4cc4a334b02318d5d.hot-update.js",
"/chunks/billing.9d8e625a0072471e9f93.hot-update.js": "/chunks/billing.9d8e625a0072471e9f93.hot-update.js",
"/chunks/billing.5cf6716edf8a470e6258.hot-update.js": "/chunks/billing.5cf6716edf8a470e6258.hot-update.js",
"/chunks/billing.640b057a799494587d58.hot-update.js": "/chunks/billing.640b057a799494587d58.hot-update.js",
"/chunks/billing.5539da0d7790513ae0e9.hot-update.js": "/chunks/billing.5539da0d7790513ae0e9.hot-update.js",
"/chunks/billing.94cf499292df4964649b.hot-update.js": "/chunks/billing.94cf499292df4964649b.hot-update.js",
"/chunks/billing.e6ae0baeb80d5ea7c7af.hot-update.js": "/chunks/billing.e6ae0baeb80d5ea7c7af.hot-update.js",
"/chunks/billing.eb3311d750ca3a9b03c3.hot-update.js": "/chunks/billing.eb3311d750ca3a9b03c3.hot-update.js",
"/chunks/billing.02144ff10cfd85ac86b6.hot-update.js": "/chunks/billing.02144ff10cfd85ac86b6.hot-update.js",
"/chunks/billing.b872ab40da4863571ce6.hot-update.js": "/chunks/billing.b872ab40da4863571ce6.hot-update.js",
"/chunks/billing.9e61907e3caad03fbd2f.hot-update.js": "/chunks/billing.9e61907e3caad03fbd2f.hot-update.js",
"/chunks/billing.1c28c03888d3e6f668fb.hot-update.js": "/chunks/billing.1c28c03888d3e6f668fb.hot-update.js",
"/chunks/billing.f02c630da40ae8b10fc6.hot-update.js": "/chunks/billing.f02c630da40ae8b10fc6.hot-update.js",
"/chunks/billing.cc9413866a199159ad77.hot-update.js": "/chunks/billing.cc9413866a199159ad77.hot-update.js",
"/chunks/billing.dcff5b9b4e5673330c6b.hot-update.js": "/chunks/billing.dcff5b9b4e5673330c6b.hot-update.js",
"/chunks/billing.3a86c6e8262d4323c3bf.hot-update.js": "/chunks/billing.3a86c6e8262d4323c3bf.hot-update.js",
"/chunks/billing.c523d518bde39e967d6d.hot-update.js": "/chunks/billing.c523d518bde39e967d6d.hot-update.js",
"/chunks/billing.9f84367a1897fc0e95f1.hot-update.js": "/chunks/billing.9f84367a1897fc0e95f1.hot-update.js",
"/chunks/billing.57b5e7c2ff844e6a1200.hot-update.js": "/chunks/billing.57b5e7c2ff844e6a1200.hot-update.js",
"/chunks/billing.5a75b549ea91110e7bb0.hot-update.js": "/chunks/billing.5a75b549ea91110e7bb0.hot-update.js",
"/chunks/billing.d2ac0cc314c50dd5dd1b.hot-update.js": "/chunks/billing.d2ac0cc314c50dd5dd1b.hot-update.js",
"/chunks/billing.8917db149f36e31b2e0e.hot-update.js": "/chunks/billing.8917db149f36e31b2e0e.hot-update.js",
"/chunks/dashboard.1768366c2c5ca45cfdf0.hot-update.js": "/chunks/dashboard.1768366c2c5ca45cfdf0.hot-update.js",
"/chunks/settings-storage.1768366c2c5ca45cfdf0.hot-update.js": "/chunks/settings-storage.1768366c2c5ca45cfdf0.hot-update.js",
"/chunks/user-storage.1768366c2c5ca45cfdf0.hot-update.js": "/chunks/user-storage.1768366c2c5ca45cfdf0.hot-update.js",
"/chunks/dashboard.09c5a2ad001f422532bf.hot-update.js": "/chunks/dashboard.09c5a2ad001f422532bf.hot-update.js",
"/chunks/settings-storage.09c5a2ad001f422532bf.hot-update.js": "/chunks/settings-storage.09c5a2ad001f422532bf.hot-update.js",
"/chunks/user-storage.09c5a2ad001f422532bf.hot-update.js": "/chunks/user-storage.09c5a2ad001f422532bf.hot-update.js",
"/chunks/dashboard.51f178c18acaddee8b3f.hot-update.js": "/chunks/dashboard.51f178c18acaddee8b3f.hot-update.js",
"/chunks/settings-storage.51f178c18acaddee8b3f.hot-update.js": "/chunks/settings-storage.51f178c18acaddee8b3f.hot-update.js",
"/chunks/user-storage.51f178c18acaddee8b3f.hot-update.js": "/chunks/user-storage.51f178c18acaddee8b3f.hot-update.js",
"/chunks/billing.ff5b7d3fa56ca196ac1f.hot-update.js": "/chunks/billing.ff5b7d3fa56ca196ac1f.hot-update.js",
"/chunks/billing.6cb3fbdcd71f98c8fe1d.hot-update.js": "/chunks/billing.6cb3fbdcd71f98c8fe1d.hot-update.js",
"/chunks/billing.de44db6c6061e9ea02ae.hot-update.js": "/chunks/billing.de44db6c6061e9ea02ae.hot-update.js",
"/chunks/billing.f0c68ed57836b4362960.hot-update.js": "/chunks/billing.f0c68ed57836b4362960.hot-update.js",
"/chunks/billing.511807a92aa8134fc3f5.hot-update.js": "/chunks/billing.511807a92aa8134fc3f5.hot-update.js",
"/chunks/billing.da37360b36176b0939f9.hot-update.js": "/chunks/billing.da37360b36176b0939f9.hot-update.js",
"/chunks/billing.71928a9c5a7fe8ebf2ff.hot-update.js": "/chunks/billing.71928a9c5a7fe8ebf2ff.hot-update.js",
"/chunks/billing.848bed9aa612ffa83c16.hot-update.js": "/chunks/billing.848bed9aa612ffa83c16.hot-update.js",
"/chunks/billing.9a17f7240f2d45bd4b98.hot-update.js": "/chunks/billing.9a17f7240f2d45bd4b98.hot-update.js",
"/chunks/billing.491f5d1d2d48362ef385.hot-update.js": "/chunks/billing.491f5d1d2d48362ef385.hot-update.js",
"/chunks/billing.9f12b0cf92b8d66f2aae.hot-update.js": "/chunks/billing.9f12b0cf92b8d66f2aae.hot-update.js",
"/chunks/billing.10b639acfd367914cd39.hot-update.js": "/chunks/billing.10b639acfd367914cd39.hot-update.js",
"/chunks/billing.6d8060a1bee99e4fc25f.hot-update.js": "/chunks/billing.6d8060a1bee99e4fc25f.hot-update.js",
"/chunks/settings.09f70076461cbfc47483.hot-update.js": "/chunks/settings.09f70076461cbfc47483.hot-update.js",
"/chunks/billing.fea532b55d06222418d5.hot-update.js": "/chunks/billing.fea532b55d06222418d5.hot-update.js",
"/chunks/settings.a4aaab8ad59f363247d0.hot-update.js": "/chunks/settings.a4aaab8ad59f363247d0.hot-update.js",
"/chunks/settings.56507f2e88509ada0487.hot-update.js": "/chunks/settings.56507f2e88509ada0487.hot-update.js",
"/chunks/settings.8e4c7736a55ee6c40517.hot-update.js": "/chunks/settings.8e4c7736a55ee6c40517.hot-update.js",
"/chunks/settings.0604d8fb1ce2c3f6c9a7.hot-update.js": "/chunks/settings.0604d8fb1ce2c3f6c9a7.hot-update.js",
"/chunks/settings.1911682ada11ad1f2e1a.hot-update.js": "/chunks/settings.1911682ada11ad1f2e1a.hot-update.js",
"/chunks/settings.568507e6ebd8d80946e5.hot-update.js": "/chunks/settings.568507e6ebd8d80946e5.hot-update.js",
"/chunks/settings.370540c5b62299b6c3a2.hot-update.js": "/chunks/settings.370540c5b62299b6c3a2.hot-update.js",
"/chunks/billing.59f737749a55d034f1e5.hot-update.js": "/chunks/billing.59f737749a55d034f1e5.hot-update.js",
"/chunks/billing.69ceca93b226be276d1f.hot-update.js": "/chunks/billing.69ceca93b226be276d1f.hot-update.js",
"/chunks/billing.b546be24322bbfb8dee4.hot-update.js": "/chunks/billing.b546be24322bbfb8dee4.hot-update.js",
"/chunks/billing.455877de1435c64c4662.hot-update.js": "/chunks/billing.455877de1435c64c4662.hot-update.js",
"/chunks/billing.2b03ab2e6000a8631b4a.hot-update.js": "/chunks/billing.2b03ab2e6000a8631b4a.hot-update.js",
"/chunks/billing.4220572dd9a64414e0bd.hot-update.js": "/chunks/billing.4220572dd9a64414e0bd.hot-update.js",
"/chunks/billing.6c4d4140f8d2f64e7e29.hot-update.js": "/chunks/billing.6c4d4140f8d2f64e7e29.hot-update.js",
"/chunks/billing.d6ab30375db2849f827a.hot-update.js": "/chunks/billing.d6ab30375db2849f827a.hot-update.js",
"/chunks/billing.9310267b0b8d118dc155.hot-update.js": "/chunks/billing.9310267b0b8d118dc155.hot-update.js",
"/chunks/billing.d707ff2df6c7d0bd60df.hot-update.js": "/chunks/billing.d707ff2df6c7d0bd60df.hot-update.js",
"/chunks/billing.7c38045bf9f1781e548f.hot-update.js": "/chunks/billing.7c38045bf9f1781e548f.hot-update.js",
"/js/main.ffba8bb652ebd451714f.hot-update.js": "/js/main.ffba8bb652ebd451714f.hot-update.js",
"/js/main.100ec61125bc90a63ccf.hot-update.js": "/js/main.100ec61125bc90a63ccf.hot-update.js",
"/chunks/billing.1f769ffe383ca65b2260.hot-update.js": "/chunks/billing.1f769ffe383ca65b2260.hot-update.js",
"/chunks/billing.4e93ed13caa9651ae023.hot-update.js": "/chunks/billing.4e93ed13caa9651ae023.hot-update.js",
"/chunks/billing.54f91c1cb4ef0a22df2b.hot-update.js": "/chunks/billing.54f91c1cb4ef0a22df2b.hot-update.js",
"/chunks/billing.7017eebd1a40a4c29336.hot-update.js": "/chunks/billing.7017eebd1a40a4c29336.hot-update.js",
"/chunks/billing.94873e7e84cb1de4b615.hot-update.js": "/chunks/billing.94873e7e84cb1de4b615.hot-update.js",
"/chunks/billing.97d8eb920b5af070b2a2.hot-update.js": "/chunks/billing.97d8eb920b5af070b2a2.hot-update.js",
"/chunks/billing.95093d8fb8fe26fecad5.hot-update.js": "/chunks/billing.95093d8fb8fe26fecad5.hot-update.js",
"/chunks/billing.53677d7301784a0dfc30.hot-update.js": "/chunks/billing.53677d7301784a0dfc30.hot-update.js",
"/chunks/billing.895f463adeff15c31ce0.hot-update.js": "/chunks/billing.895f463adeff15c31ce0.hot-update.js",
"/chunks/billing.1ca6afe4ab0ea1e4dd5f.hot-update.js": "/chunks/billing.1ca6afe4ab0ea1e4dd5f.hot-update.js",
"/chunks/billing.63de3f13374ced4187b4.hot-update.js": "/chunks/billing.63de3f13374ced4187b4.hot-update.js",
"/chunks/billing.54180aec1a7dd044ccf3.hot-update.js": "/chunks/billing.54180aec1a7dd044ccf3.hot-update.js",
"/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.21980d7efb5c89ef8fa3.hot-update.js": "/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.21980d7efb5c89ef8fa3.hot-update.js",
"/chunks/billing.89f329dfe2918be60b2d.hot-update.js": "/chunks/billing.89f329dfe2918be60b2d.hot-update.js",
"/chunks/billing.ab1f75c20417a9c76c52.hot-update.js": "/chunks/billing.ab1f75c20417a9c76c52.hot-update.js",
"/chunks/billing.0a9bfa51e84f9a436182.hot-update.js": "/chunks/billing.0a9bfa51e84f9a436182.hot-update.js",
"/chunks/billing.9422dcf23dd5c44eaa1c.hot-update.js": "/chunks/billing.9422dcf23dd5c44eaa1c.hot-update.js",
"/chunks/billing.6ad03d9933308d2d9a78.hot-update.js": "/chunks/billing.6ad03d9933308d2d9a78.hot-update.js",
"/chunks/billing.0ae9cfe2030abe155177.hot-update.js": "/chunks/billing.0ae9cfe2030abe155177.hot-update.js",
"/chunks/billing.96f91847569dd550c69a.hot-update.js": "/chunks/billing.96f91847569dd550c69a.hot-update.js",
"/chunks/billing.a0bd4cf216f2a8f5ae81.hot-update.js": "/chunks/billing.a0bd4cf216f2a8f5ae81.hot-update.js",
"/chunks/billing.edd9a973910cbae06261.hot-update.js": "/chunks/billing.edd9a973910cbae06261.hot-update.js",
"/chunks/billing.c6438e7b5531d22a3cda.hot-update.js": "/chunks/billing.c6438e7b5531d22a3cda.hot-update.js",
"/chunks/billing.628da4e4303326e67edc.hot-update.js": "/chunks/billing.628da4e4303326e67edc.hot-update.js",
"/chunks/billing.f9f8c483fb0cb84297bc.hot-update.js": "/chunks/billing.f9f8c483fb0cb84297bc.hot-update.js",
"/chunks/billing.4ebaf80a564874a8f880.hot-update.js": "/chunks/billing.4ebaf80a564874a8f880.hot-update.js",
"/chunks/billing.8f7c74627f17a2738a40.hot-update.js": "/chunks/billing.8f7c74627f17a2738a40.hot-update.js",
"/chunks/billing.fdcc28962927c4ae5425.hot-update.js": "/chunks/billing.fdcc28962927c4ae5425.hot-update.js",
"/chunks/billing.05af80d5540150f4b4bb.hot-update.js": "/chunks/billing.05af80d5540150f4b4bb.hot-update.js",
"/chunks/billing.0a9b243bb3fff275845d.hot-update.js": "/chunks/billing.0a9b243bb3fff275845d.hot-update.js",
"/chunks/billing.feb37f6ae865778f3bf0.hot-update.js": "/chunks/billing.feb37f6ae865778f3bf0.hot-update.js",
"/chunks/billing.ace9b872b7c7ca5b3315.hot-update.js": "/chunks/billing.ace9b872b7c7ca5b3315.hot-update.js",
"/chunks/billing.9f9375b7a73810185ba8.hot-update.js": "/chunks/billing.9f9375b7a73810185ba8.hot-update.js",
"/chunks/billing.8c078532cdcf3eb6646e.hot-update.js": "/chunks/billing.8c078532cdcf3eb6646e.hot-update.js",
"/chunks/billing.a6e16dfd98623d1c6fe3.hot-update.js": "/chunks/billing.a6e16dfd98623d1c6fe3.hot-update.js",
"/chunks/billing.d89ebefd1929642ec7b8.hot-update.js": "/chunks/billing.d89ebefd1929642ec7b8.hot-update.js",
"/chunks/billing.4b0e0ffcbac1ac8b28d8.hot-update.js": "/chunks/billing.4b0e0ffcbac1ac8b28d8.hot-update.js",
"/chunks/billing.0c36385ac001f5d85720.hot-update.js": "/chunks/billing.0c36385ac001f5d85720.hot-update.js",
"/chunks/billing.5ae12df0e6221943f8fe.hot-update.js": "/chunks/billing.5ae12df0e6221943f8fe.hot-update.js",
"/chunks/billing.f50632a11c8380c1fdfb.hot-update.js": "/chunks/billing.f50632a11c8380c1fdfb.hot-update.js",
"/chunks/billing.cd25f459a392710ac260.hot-update.js": "/chunks/billing.cd25f459a392710ac260.hot-update.js",
"/chunks/billing.11a65b412f5fe7cf21f4.hot-update.js": "/chunks/billing.11a65b412f5fe7cf21f4.hot-update.js",
"/chunks/billing.3518676d250698148277.hot-update.js": "/chunks/billing.3518676d250698148277.hot-update.js",
"/chunks/billing.71beea9a28e1cdf6c3b3.hot-update.js": "/chunks/billing.71beea9a28e1cdf6c3b3.hot-update.js",
"/chunks/billing.30a99bceacb742f9f14c.hot-update.js": "/chunks/billing.30a99bceacb742f9f14c.hot-update.js",
"/chunks/billing.c08835e2571944689949.hot-update.js": "/chunks/billing.c08835e2571944689949.hot-update.js",
"/chunks/billing.068d87ccd9602b6b5607.hot-update.js": "/chunks/billing.068d87ccd9602b6b5607.hot-update.js",
"/chunks/billing.deaa75eebf6714499b61.hot-update.js": "/chunks/billing.deaa75eebf6714499b61.hot-update.js",
"/chunks/billing.4f4d50392150e84b232c.hot-update.js": "/chunks/billing.4f4d50392150e84b232c.hot-update.js",
"/chunks/billing.ba7b4517ea952230f068.hot-update.js": "/chunks/billing.ba7b4517ea952230f068.hot-update.js",
"/chunks/billing.f94236e120e695581da7.hot-update.js": "/chunks/billing.f94236e120e695581da7.hot-update.js",
"/chunks/billing.55975add60c3cd6ddf50.hot-update.js": "/chunks/billing.55975add60c3cd6ddf50.hot-update.js",
"/chunks/billing.1e0e627b9b0b5a31b1c0.hot-update.js": "/chunks/billing.1e0e627b9b0b5a31b1c0.hot-update.js",
"/chunks/billing.088ca33888a57757c0b9.hot-update.js": "/chunks/billing.088ca33888a57757c0b9.hot-update.js",
"/chunks/billing.354123f9ae5a730a0f39.hot-update.js": "/chunks/billing.354123f9ae5a730a0f39.hot-update.js",
"/chunks/billing.ddbbd21b07838acfad59.hot-update.js": "/chunks/billing.ddbbd21b07838acfad59.hot-update.js",
"/chunks/billing.51b976e8a57d4c966480.hot-update.js": "/chunks/billing.51b976e8a57d4c966480.hot-update.js",
"/chunks/billing.28887d58a1607435d7a6.hot-update.js": "/chunks/billing.28887d58a1607435d7a6.hot-update.js",
"/chunks/billing.6e9762e10af164f8b6ab.hot-update.js": "/chunks/billing.6e9762e10af164f8b6ab.hot-update.js"
"/js/main.75374c7ecbf6875fc7d5.hot-update.js": "/js/main.75374c7ecbf6875fc7d5.hot-update.js"
}

View File

@@ -48,9 +48,9 @@
<div @click="showTransactionDetail(row.data.id)" class="cursor-pointer flex items-center justify-center w-8 h-8 rounded-md hover:bg-green-100 dark:bg-2x-dark-foreground bg-light-background transition-colors">
<EyeIcon size="15" class="opacity-75" />
</div>
<div class="cursor-pointer flex items-center justify-center w-8 h-8 rounded-md hover:bg-purple-100 dark:bg-2x-dark-foreground bg-light-background transition-colors">
<a :href="$getInvoiceLink(row.data.id)" target="_blank" class="cursor-pointer flex items-center justify-center w-8 h-8 rounded-md hover:bg-purple-100 dark:bg-2x-dark-foreground bg-light-background transition-colors">
<FileTextIcon size="15" class="opacity-75" />
</div>
</a>
</div>
<div v-else>
-

View File

@@ -144,8 +144,8 @@ const FunctionHelpers = {
return `/assets/icons/${brand}.svg`
}
Vue.prototype.$getInvoiceLink = function (customer, id) {
return '/invoice/' + customer + '/' + id
Vue.prototype.$getInvoiceLink = function (id) {
return '/invoices/' + id
}
Vue.prototype.$uploadFiles = async function (files) {

View File

@@ -21,7 +21,6 @@
<title>{{ $settings->app_title ?? 'VueFileManager' }} | {{ $settings->app_description ?? __t('app_description') }}</title>
{{--StyleSheet--}}
{{--<link href="{{ asset('css/app.css') }}?v={{ get_version() }}" rel="stylesheet">--}}
<link href="{{ mix('css/app.css') }}?v={{ get_version() }}" rel="stylesheet" type="text/css">
<link href="{{ asset('css/tailwind.css') }}?v={{ get_version() }}" rel="stylesheet" type="text/css">

View File

@@ -2,365 +2,305 @@
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<title>{{ __t('invoice_title') }}</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@200;300;400;600;700;900&display=swap"
rel="stylesheet">
<link href="{{ env('APP_ENV') !== 'local' ? asset('css/invoice.css') : mix('css/invoice.css') }}?v={{ get_version() }}"
rel="stylesheet">
<title>
{{ __t('invoice_title') }}
</title>
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@200;300;400;600;700;800;900&display=swap" rel="stylesheet">
<link href="{{ mix('css/tailwind.css') }}?v={{ get_version() }}" rel="stylesheet" type="text/css">
<style>
.table td {
padding: 8px;
line-height: 20px;
text-align: left;
vertical-align: top;
* {
outline: 0;
margin: 0;
padding: 0;
font-family: 'Nunito', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
box-sizing: border-box;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
font-size: 15px;
text-decoration: none;
color: #1B2539;
}
</style>
@include('vuefilemanager.others.color-template')
</head>
<body>
<div id="toolbar-wrapper">
<button class="button group hover-bg-theme-100" onclick="window.print();">
<svg class="icon group-hover-text-theme" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-printer">
<polyline points="6 9 6 2 18 2 18 9"></polyline>
<path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"></path>
<rect x="6" y="14" width="12" height="8"></rect>
</svg>
<span class="label group-hover-text-theme">{{ __t('print_button') }}</span>
</button>
</div>
<div id="invoice-wrapper">
<header class="invoice-header">
<div class="logo">
@if(isset($settings->app_logo_horizontal))
<img src="{{ url($settings->app_logo_horizontal) }}"
alt="{{ $settings->app_title ?? 'VueFileManager' }}">
@else
<h1>{{ $settings->app_title ?? 'VueFileManager' }}</h1>
@endif
</div>
<div class="title">
<h1 class="text-theme">{{ __t('invoice_title') }}</h1>
</div>
</header>
<section class="invoice-subject">
<ul class="list">
<li class="list-item">
<b>{{ __t('date') }}:</b>
<span>{{ format_date($invoice->date()) }}</span>
</li>
<li class="list-item">
<b>{{ __t('product') }}:</b>
<span>{{ __t('subscription') }}</span>
</li>
<li class="list-item">
<b>{{ __t('invoice_number') }}:</b>
<span>{{ $invoice->number }}</span>
</li>
<body class="bg-light-background">
<div class="rounded-xl max-w-3xl mx-auto my-5 print:hidden">
<button class="flex items-center bg-white py-1 px-2 rounded-lg" onclick="window.print();">
<!-- Extra / VAT Information -->
@if (isset($vat))
<li class="list-item">
<b>{{ __t('vat') }}:</b>
<span>{{ $vat }}</span>
</li>
@endif
</ul>
</section>
<div class="invoice-partners">
<div class="partner">
<h2 class="partner-title text-theme">{{ __t('seller') }}:</h2>
<ul class="list">
@isset($settings->billing_vat_number)
<li class="list-item">
<b>{{ __t('seller_vat') }}:</b>
<span>{{ $settings->billing_vat_number }}</span>
</li>
@endisset
<svg class="transform scale-75" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="6 9 6 2 18 2 18 9"></polyline>
<path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"></path>
<rect x="6" y="14" width="12" height="8"></rect>
</svg>
@isset($settings->billing_name)
<li class="list-item">
<b>{{ __t('seller_name') }}:</b>
<span>{{ $settings->billing_name }}</span>
</li>
@endisset
@isset($settings->billing_phone_number)
<li class="list-item">
<b>{{ __t('seller_phone') }}:</b>
<span>{{ $settings->billing_phone_number }}</span>
</li>
@endisset
</ul>
<ul class="list">
@isset($settings->billing_address)
<li class="list-item">
<b>{{ __t('address') }}:</b>
<span>{{ $settings->billing_address }}</span>
</li>
@endisset
@isset($settings->billing_city)
<li class="list-item">
<b>{{ __t('city') }}:</b>
<span>{{ $settings->billing_city }}</span>
</li>
@endisset
@isset($settings->billing_state)
<li class="list-item">
<b>{{ __t('state') }}:</b>
<span>{{ $settings->billing_state }}</span>
</li>
@endisset
@isset($settings->billing_postal_code)
<li class="list-item">
<b>{{ __t('postal_code') }}:</b>
<span>{{ $settings->billing_postal_code }}</span>
</li>
@endisset
@isset($settings->billing_country)
<li class="list-item">
<b>{{ __t('country') }}:</b>
<span>{{ $settings->billing_country }}</span>
</li>
@endisset
</ul>
</div>
<div class="partner">
<h2 class="partner-title text-theme">{{ __t('client') }}:</h2>
<ul class="list">
@isset($invoice->customer_name)
<li class="list-item">
<b>{{ __t('name') }}:</b>
<span>{{ $invoice->customer_name }}</span>
</li>
@endisset
@isset($invoice->customer_phone)
<li class="list-item">
<b>{{ __t('phone') }}:</b>
<span>{{ $invoice->customer_phone }}</span>
</li>
@endisset
</ul>
<ul class="list">
@isset($invoice->customer_address['line1'])
<li class="list-item">
<b>{{ __t('address') }}:</b>
<span>{{ $invoice->customer_address['line1'] }}</span>
</li>
@endisset
@isset($invoice->customer_address['city'])
<li class="list-item">
<b>{{ __t('city') }}:</b>
<span>{{ $invoice->customer_address['city'] }}</span>
</li>
@endisset
@isset($invoice->customer_address['state'])
<li class="list-item">
<b>{{ __t('state') }}:</b>
<span>{{ $invoice->customer_address['state'] }}</span>
</li>
@endisset
@isset($invoice->customer_address['postal_code'])
<li class="list-item">
<b>{{ __t('postal_code') }}:</b>
<span>{{ $invoice->customer_address['postal_code'] }}</span>
</li>
@endisset
@isset($invoice->customer_address['country'])
<li class="list-item">
<b>{{ __t('country') }}:</b>
<span>{{ $invoice->customer_address['country'] }}</span>
</li>
@endisset
</ul>
</div>
<span class="font-bold ml-2 text-sm">
{{ __t('print_button') }}
</span>
</button>
</div>
<div class="invoice-order">
{{--<table class="table" width="100%" border="0">
<thead class="table-header">
<tr>
<td>@lang('vuefilemanager.col_description')</td>
<td>@lang('vuefilemanager.col_date')</td>
<td>@lang('vuefilemanager.col_amount')</td>
</tr>
</thead>
<tbody class="table-body">
<div class="bg-white rounded-xl max-w-3xl mx-auto print:p-0 p-10">
--}}{{--Display invoices--}}{{--
@foreach($invoice->invoiceItems() as $item)
<tr>
<td colspan="2">{{ $item->description }}</td>
<td>{{ $item->total() }}</td>
</tr>
@endforeach
--}}{{--Display subscription--}}{{--
@foreach($invoice->subscriptions() as $subscription)
<tr>
<td>@lang('vuefilemanager.subscription') ({{ $subscription->quantity }})</td>
<td>{{ $subscription->startDateAsCarbon()->formatLocalized('%d. %B. %Y') }} -
{{ $subscription->endDateAsCarbon()->formatLocalized('%d. %B. %Y') }}</td>
<td>{{ $subscription->total() }}</td>
</tr>
@endforeach
<!-- Display The Taxes -->
@unless ($invoice->isNotTaxExempt())
<tr>
<td colspan="{{ $invoice->hasTax() ? 2 : 1 }}" style="text-align: right;">
@if ($invoice->isTaxExempt())
Tax is exempted
@else
Tax to be paid on reverse charge basis
@endif
</td>
<td></td>
</tr>
@else
@foreach ($invoice->taxes() as $tax)
<tr>
<td colspan="2" style="text-align: right;">
{{ $tax->display_name }} {{ $tax->country ? ' - '.$tax->country : '' }}
({{ $tax->percentage }}%{{ $tax->isInclusive() ? ' incl.' : '' }})
</td>
<td>{{ $tax->amount() }}</td>
</tr>
@endforeach
@endunless
</tbody>
</table>--}}
<!-- Invoice Table -->
<table width="100%" class="table" border="0">
<thead class="table-header">
<tr>
<td class="text-theme">{{ __t('col_description') }}</td>
<td class="text-theme">{{ __t('col_date') }}</td>
@if ($invoice->hasTax())
<td class="text-theme" align="right">{{ __t('vat')}}</td>
@endif
<td class="text-theme">{{ __t('col_amount') }}</td>
</tr>
</thead>
<tbody class="table-body">
<!-- Display The Invoice Items -->
@foreach ($invoice->invoiceItems() as $item)
<tr class="row">
<td colspan="2">{{ $item->description }}</td>
@if ($invoice->hasTax())
<td>
@if ($inclusiveTaxPercentage = $item->inclusiveTaxPercentage())
{{ $inclusiveTaxPercentage }}% incl.
@endif
@if ($item->hasBothInclusiveAndExclusiveTax())
+
@endif
@if ($exclusiveTaxPercentage = $item->exclusiveTaxPercentage())
{{ $exclusiveTaxPercentage }}%
@endif
</td>
@endif
<td>{{ $item->total() }}</td>
</tr>
@endforeach
<!-- Display The Subscriptions -->
@foreach ($invoice->subscriptions() as $subscription)
<tr class="row">
<td>{{ __t('subscription') }} ({{ $subscription->quantity }})</td>
<td>
{{ $subscription->startDateAsCarbon()->formatLocalized('%B %e, %Y') }} -
{{ $subscription->endDateAsCarbon()->formatLocalized('%B %e, %Y') }}
</td>
@if ($invoice->hasTax())
<td>
@if ($inclusiveTaxPercentage = $subscription->inclusiveTaxPercentage())
{{ $inclusiveTaxPercentage }}% {{ __t('vat_included') }}
@endif
@if ($subscription->hasBothInclusiveAndExclusiveTax())
+
@endif
@if ($exclusiveTaxPercentage = $subscription->exclusiveTaxPercentage())
{{ $exclusiveTaxPercentage }}%
@endif
</td>
@endif
<td>{{ $subscription->total() }}</td>
</tr>
@endforeach
<!-- Display The Subtotal -->
@if ($invoice->hasDiscount() || $invoice->hasTax() || $invoice->hasStartingBalance())
<tr>
<td colspan="{{ $invoice->hasTax() ? 3 : 2 }}" style="text-align: right;">{{ __t('subtotal')}}</td>
<td>{{ $invoice->subtotal() }}</td>
</tr>
@endif
<!-- Display The Taxes -->
@unless ($invoice->isNotTaxExempt())
<tr>
<td colspan="{{ $invoice->hasTax() ? 3 : 2 }}" style="text-align: right;">
@if ($invoice->isTaxExempt())
{{ __t('tax_exempted')}}
@else
{{ __t('tax_be_paid_reverse') }}
@endif
</td>
<td></td>
</tr>
<!--Invoice Header-->
<header class="flex justify-between items-start pb-4 mb-4 border-b dark:border-opacity-5 border-light border-dashed">
<div>
@if(isset($settings->app_logo_horizontal))
<img src="{{ url($settings->app_logo_horizontal) }}" alt="{{ $settings->app_title ?? 'VueFileManager' }}" class="h-8">
@else
@foreach ($invoice->taxes() as $tax)
<tr>
<td colspan="3" style="text-align: right;">
{{ $tax->display_name }} {{ $tax->country ? ' - '.$tax->country : '' }}
({{ $tax->percentage }}%{{ $tax->isInclusive() ? ' ' . __t('vat_included') : '' }})
</td>
<td>{{ $tax->amount() }}</td>
</tr>
@endforeach
@endunless
<h1 class="text-2xl font-bold">
{{ $settings->app_title ?? 'VueFileManager' }}
</h1>
@endif
<!-- Display The Final Total -->
<tr>
<td colspan="{{ $invoice->hasTax() ? 3 : 2 }}" style="text-align: right;">
<strong>{{ __t('total') }}</strong>
</td>
<td>
<strong>{{ $invoice->total() }}</strong>
</td>
</tr>
</tbody>
<b class="text-gray-800 text-sm">
{{ $settings->contact_email }}
</b>
</div>
</table>
<div class="text-right">
<h1 class="text-2xl font-bold">
{{ __t('invoice_title') }}
</h1>
<b class="text-gray-800 text-sm">
Number: {{ $invoice->id }}
</b>
</div>
</header>
<!-- Invoice partners -->
<div class="flex justify-between items-start space-x-8 pb-6 mb-6 border-b dark:border-opacity-5 border-light border-dashed">
<!-- Seller -->
<div>
<div class="mb-3">
<b class="text-theme text-base font-bold mb-1 block">
{{ __t('seller') }}:
</b>
@isset($settings->billing_name)
<span class="font-bold">
{{ $settings->billing_name }}
</span>
@endisset
</div>
<div class="mb-3">
<b class="text-theme text-base font-bold mb-1 block">
Head Office:
</b>
@isset($settings->billing_address)
<span class="font-bold block">
{{ $settings->billing_address }}
</span>
@endisset
@isset($settings->billing_city)
<span class="font-bold block">
{{ $settings->billing_city }}
</span>
@endisset
@isset($settings->billing_state)
<span class="font-bold block">
{{ $settings->billing_state }}
</span>
@endisset
@isset($settings->billing_postal_code)
<span class="font-bold block">
{{ $settings->billing_postal_code }}
</span>
@endisset
@isset($settings->billing_country)
<span class="font-bold block">
{{ $settings->billing_country }}
</span>
@endisset
@isset($settings->billing_phone_number)
<span class="font-bold block">
{{ $settings->billing_phone_number }}
</span>
@endisset
</div>
<div>
<b class="text-theme text-base font-bold mb-1 block">
Billing Information:
</b>
@isset($settings->billing_vat_number)
<span class="font-bold block">
VAT ID: {{ $settings->billing_vat_number }}
</span>
@endisset
{{--@if(isset($vat))
<span class="text-base">
{{ $vat }}
</span>
@endif--}}
</div>
</div>
<!--Client-->
<div>
<div class="bg-light-background rounded-xl p-4" style="width: 360px">
<b class="text-theme text-base font-bold mb-1.5 block">
Client:
</b>
@isset($invoice->user->settings->name)
<span class="font-bold block">
{{ $invoice->user->settings->name }}
</span>
@endisset
@isset($invoice->user->settings->address)
<span class="font-bold block">
{{ $invoice->user->settings->address }}
</span>
@endisset
@isset($invoice->user->settings->postal_code)
<span class="font-bold inline-block">
{{ $invoice->user->settings->postal_code }}
</span>
@endisset
@isset($invoice->user->settings->city)
<span class="font-bold inline-block">
{{ $invoice->user->settings->city }}
</span>,
@endisset
@isset($invoice->user->settings->state)
<span class="font-bold inline-block">
{{ $invoice->user->settings->state }}
</span>
@endisset
@isset($invoice->user->settings->country)
<span class="font-bold inline-block">
{{ $invoice->user->settings->country }}
</span>
@endisset
@isset($invoice->user->settings->phone_number)
<span class="font-bold block">
{{ $invoice->user->settings->phone_number }}
</span>
@endisset
</div>
<div class="font-bold block text-right pt-3">
Date of issue: {{ format_date($invoice->created_at) }}
</div>
</div>
</div>
<!-- Invoice Items -->
<div class="pb-6 mb-6 border-b dark:border-opacity-5 border-light border-dashed">
<!--Items-->
<table class="w-full mb-12">
<thead>
<tr>
<td class="pb-5">
<span class="text-theme dark:text-gray-500 text-gray-400 text-xs font-bold">
Description
</span>
</td>
<td class="pb-5">
<span class="text-theme dark:text-gray-500 text-gray-400 text-xs font-bold">
Period
</span>
</td>
<td class="pb-5">
<span class="text-theme dark:text-gray-500 text-gray-400 text-xs font-bold">
Usage
</span>
</td>
<td class="pb-5 text-right">
<span class="text-theme dark:text-gray-500 text-gray-400 text-xs font-bold">
Amount
</span>
</td>
</tr>
</thead>
@if($invoice->metadata)
<tbody>
@foreach($invoice->metadata as $item)
<tr class="border-b dark:border-opacity-5 border-light border-dashed whitespace-nowrap {{ $loop->index % 2 ? 'bg-light-background' : '' }}">
<td class="py-1.5 px-3">
<span class="text-sm font-bold">
{{ __t($item['feature']) }}
</span>
</td>
<td class="py-1.5">
<span class="text-sm font-bold">
{{ $invoice->note }}
</span>
</td>
<td class="py-1.5">
<span class="text-sm font-bold">
{{ $item['usage'] }}
</span>
</td>
<td class="py-1.5 px-3 text-right">
<span class="text-sm font-bold">
{{ $item['cost'] }}
</span>
</td>
</tr>
@endforeach
</tbody>
@else
<tr class="whitespace-nowrap">
<td class="py-1.5 pr-3">
<span class="text-sm font-bold">
Subscription
</span>
</td>
<td class="py-1.5">
<span class="text-sm font-bold">
{{ $invoice->note }}
</span>
</td>
<td class="py-1.5">
<span class="text-sm font-bold">
1
</span>
</td>
<td class="py-1.5 pl-3 text-right">
<span class="text-sm font-bold">
{{ format_currency($invoice->amount, $invoice->currency) }}
</span>
</td>
</tr>
@endif
</table>
<!-- Invoice Total -->
<div class="text-right">
<b class="text-2xl font-extrabold">
{{ __t('total') }} {{ format_currency($invoice->amount, $invoice->currency) }}
</b>
</div>
</div>
<!-- Invoice Items -->
<footer class="text-center">
<p class="font-bold">
Generated by <a href="{{ url('/') }}" target="_blank" class="font-bold text-theme underline">{{ $settings->app_title }}</a>
</p>
</footer>
</div>
<div class="invoice-summary">
<b>{{ __t('total') }} {{ $invoice->total() }}</b>
</div>
</div>
</body>
</html>

View File

@@ -1,6 +1,5 @@
<?php
use Domain\Admin\Controllers\Dashboard\GetLatestTransactionsController;
use Domain\Admin\Controllers\Users\UserController;
use Domain\Pages\Controllers\AdminPagesController;
use Domain\Settings\Controllers\SetEmailController;
@@ -15,6 +14,7 @@ use Domain\Admin\Controllers\Users\ResetUserPasswordController;
use Domain\Admin\Controllers\Dashboard\GetDashboardDataController;
use Domain\Localization\Controllers\UpdateLanguageStringController;
use Domain\Admin\Controllers\Users\ShowUserStorageCapacityController;
use Domain\Admin\Controllers\Dashboard\GetLatestTransactionsController;
use Domain\Admin\Controllers\Users\ChangeUserStorageCapacityController;
use Domain\Settings\Controllers\StoreSocialServiceCredentialsController;
use Domain\Settings\Controllers\StorePaymentServiceCredentialsController;

View File

@@ -1,6 +1,7 @@
<?php
use Domain\Homepage\Controllers\IndexController;
use Domain\Invoices\Controllers\GetInvoiceController;
use Domain\Sharing\Controllers\SharePublicIndexController;
use Domain\Sharing\Controllers\WebCrawlerOpenGraphController;
use Domain\Localization\Controllers\CurrentLocalizationController;
@@ -8,6 +9,10 @@ use Domain\Localization\Controllers\CurrentLocalizationController;
// Translations
Route::get('/translations/{lang}', CurrentLocalizationController::class);
// Invoices
Route::get('/invoices/{invoice}', GetInvoiceController::class)
->middleware('auth:sanctum');
// Get og site for web crawlers
if (Crawler::isCrawler()) {
Route::get('/share/{share}', WebCrawlerOpenGraphController::class);

View File

@@ -1,5 +1,4 @@
<?php
namespace App\Users\Resources;
use Illuminate\Http\Resources\Json\JsonResource;

View File

@@ -0,0 +1,37 @@
<?php
namespace Domain\Invoices\Controllers;
use App\Http\Controllers\Controller;
use App\Users\Actions\FormatUsageEstimatesAction;
use Domain\Settings\Models\Setting;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use VueFileManager\Subscription\Domain\Transactions\Models\Transaction;
class GetInvoiceController extends Controller
{
public function __construct(
public FormatUsageEstimatesAction $formatUsageEstimates,
) {}
public function __invoke(Transaction $invoice): View|Factory|Application
{
// Get app settings
$settings = json_decode(
Setting::all()
->pluck('value', 'name')
);
// Format metadata
if ($invoice->metadata) {
$invoice->metadata = ($this->formatUsageEstimates)($invoice->currency, $invoice->metadata);
}
// Return invoice view
return view('vuefilemanager.invoice')
->with('settings', $settings)
->with('invoice', $invoice);
}
}

10
tailwind.config.js vendored
View File

@@ -1,5 +1,10 @@
module.exports = {
purge: {content: ['./resources/js/**/*.{js,jsx,ts,tsx,vue}',]},
purge: {
content: [
'./resources/js/**/*.{js,jsx,ts,tsx,vue}',
'./resources/views/vuefilemanager/*.blade.php',
]
},
darkMode: 'class', // or 'media' or 'class'
theme: {
debugScreens: {
@@ -43,6 +48,9 @@ module.exports = {
boxShadow: {
card: '0 2px 6px 0 rgba(0, 0, 0, 0.04)',
card_red: '0 2px 6px 0 rgba(253, 57, 122, 0.04)',
},
screens: {
'print': {'raw': 'print'},
}
},
},

8
webpack.mix.js vendored
View File

@@ -18,15 +18,7 @@ mix.js('resources/js/main.js', 'public/js')
.postCss("resources/css/tailwind.css", "public/css", [
require("tailwindcss"),
])
/*.sass('public/sass/invoice.scss', 'public/css/invoice.css', {
implementation: require('node-sass')
})*/
.webpackConfig({
resolve: {
alias: {
"@modules": path.resolve(__dirname, "node_modules"),
}
},
output: {
chunkFilename: '[name].js?id=[chunkhash]',
},