stockor 0.1.9 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +254 -72
- data/Guardfile +1 -1
- data/README.md +24 -3
- data/app.json +28 -0
- data/client/skr/Extension.coffee +18 -0
- data/client/skr/components/BankAccountFinder.cjsx +34 -0
- data/client/skr/components/Currency.cjsx +19 -0
- data/client/skr/components/CustomerFinder.cjsx +37 -0
- data/client/skr/components/CustomerLink.cjsx +13 -0
- data/client/skr/components/CustomerProjectFinder.cjsx +49 -0
- data/client/skr/components/GlAccountChooser.cjsx +38 -0
- data/client/skr/components/InvoiceFinder.cjsx +37 -0
- data/client/skr/components/InvoiceLink.cjsx +13 -0
- data/client/skr/components/LocationChooser.cjsx +37 -0
- data/client/skr/components/PaymentCategoryFinder.cjsx +34 -0
- data/client/skr/components/PrintFormChooser.cjsx +29 -0
- data/client/skr/components/SalesOrderFinder.cjsx +38 -0
- data/client/skr/components/ScreenControls.cjsx +20 -0
- data/client/skr/components/SkuFinder.cjsx +30 -0
- data/client/skr/components/SkuLines.cjsx +76 -0
- data/client/skr/components/SystemSettings.cjsx +26 -0
- data/client/skr/components/TermsChooser.cjsx +40 -0
- data/client/skr/components/ToolbarButton.cjsx +7 -0
- data/client/skr/components/TotalsLine.cjsx +21 -0
- data/client/skr/components/TriStateIcon.cjsx +12 -0
- data/client/skr/components/UOMChooser.cjsx +24 -0
- data/client/skr/components/UserPreferences.cjsx +30 -0
- data/client/skr/components/VendorFinder.cjsx +40 -0
- data/client/skr/components/address/Address.cjsx +10 -10
- data/client/skr/components/styles.scss +16 -0
- data/client/skr/index.js +3 -1
- data/client/skr/models/Address.coffee +9 -1
- data/client/skr/models/BankAccount.coffee +17 -0
- data/client/skr/models/Base.coffee +6 -0
- data/client/skr/models/Customer.coffee +17 -10
- data/client/skr/models/CustomerProject.coffee +29 -0
- data/client/skr/models/GlAccount.coffee +22 -10
- data/client/skr/models/GlManualEntry.coffee +4 -2
- data/client/skr/models/GlPeriod.coffee +4 -6
- data/client/skr/models/GlPosting.coffee +7 -7
- data/client/skr/models/GlTransaction.coffee +3 -3
- data/client/skr/models/IaLine.coffee +9 -9
- data/client/skr/models/IaReason.coffee +4 -4
- data/client/skr/models/InvLine.coffee +30 -11
- data/client/skr/models/InventoryAdjustment.coffee +8 -6
- data/client/skr/models/Invoice.coffee +89 -18
- data/client/skr/models/Location.coffee +27 -6
- data/client/skr/models/Payment.coffee +36 -0
- data/client/skr/models/PaymentCategory.coffee +12 -0
- data/client/skr/models/PaymentTerm.coffee +17 -4
- data/client/skr/models/PickTicket.coffee +7 -5
- data/client/skr/models/PoLine.coffee +15 -15
- data/client/skr/models/PoReceipt.coffee +8 -6
- data/client/skr/models/PorLine.coffee +11 -11
- data/client/skr/models/PricingProvider.coffee +6 -0
- data/client/skr/models/PtLine.coffee +13 -13
- data/client/skr/models/PurchaseOrder.coffee +11 -9
- data/client/skr/models/SalesOrder.coffee +59 -22
- data/client/skr/models/Sku.coffee +17 -15
- data/client/skr/models/SkuLoc.coffee +14 -9
- data/client/skr/models/SkuTran.coffee +10 -10
- data/client/skr/models/SkuVendor.coffee +9 -9
- data/client/skr/models/SoLine.coffee +27 -20
- data/client/skr/models/TimeEntry.coffee +75 -0
- data/client/skr/models/Uom.coffee +27 -6
- data/client/skr/models/Vendor.coffee +14 -12
- data/client/skr/models/VoLine.coffee +11 -11
- data/client/skr/models/Voucher.coffee +7 -5
- data/client/skr/models/mixins/HasVisibleId.coffee +7 -0
- data/client/skr/models/mixins/PrintSupport.coffee +6 -0
- data/client/skr/models/mixins/SkuLine.coffee +61 -0
- data/client/skr/screens/Commands.coffee +29 -0
- data/client/skr/screens/bank-maint/BankMaint.cjsx +43 -0
- data/client/skr/screens/bank-maint/index.js +5 -0
- data/client/skr/screens/chart-of-accounts/ChartOfAccounts.cjsx +40 -0
- data/client/skr/screens/chart-of-accounts/index.js +1 -0
- data/client/skr/screens/chart-of-accounts/index.scss +12 -0
- data/client/skr/screens/customer-maint/CustomerMaint.cjsx +35 -36
- data/client/skr/screens/customer-projects/CustomerProjects.cjsx +70 -0
- data/client/skr/screens/customer-projects/index.js +5 -0
- data/client/skr/screens/customer-projects/index.scss +25 -0
- data/client/skr/screens/fresh-books-import/ApiInfo.cjsx +35 -0
- data/client/skr/screens/fresh-books-import/ChooseRecords.cjsx +116 -0
- data/client/skr/screens/fresh-books-import/FreshBooksImport.cjsx +31 -0
- data/client/skr/screens/fresh-books-import/Import.coffee +52 -0
- data/client/skr/screens/fresh-books-import/ViewRecords.cjsx +96 -0
- data/client/skr/screens/fresh-books-import/index.js +1 -0
- data/client/skr/screens/fresh-books-import/index.scss +39 -0
- data/client/skr/screens/gl-accounts/GlAccounts.cjsx +31 -0
- data/client/skr/screens/gl-accounts/index.js +5 -0
- data/client/skr/screens/gl-transactions/GlTransactions.cjsx +46 -0
- data/client/skr/screens/gl-transactions/index.js +1 -0
- data/client/skr/screens/gl-transactions/index.scss +12 -0
- data/client/skr/screens/invoice/Invoice.cjsx +92 -0
- data/client/skr/screens/invoice/Payment.cjsx +28 -0
- data/client/skr/screens/invoice/index.js +5 -0
- data/client/skr/screens/locations/Locations.cjsx +31 -0
- data/client/skr/screens/locations/index.js +5 -0
- data/client/skr/screens/payment-category/PaymentCategory.cjsx +28 -0
- data/client/skr/screens/payment-category/index.js +5 -0
- data/client/skr/screens/payment-category/index.scss +9 -0
- data/client/skr/screens/payment-terms/PaymentTerms.cjsx +28 -0
- data/client/skr/screens/payment-terms/index.js +5 -0
- data/client/skr/screens/payment-terms/index.scss +9 -0
- data/client/skr/screens/payments/Payments.cjsx +59 -0
- data/client/skr/screens/payments/index.js +5 -0
- data/client/skr/screens/sales-order/SalesOrder.cjsx +68 -0
- data/client/skr/screens/sales-order/index.js +1 -5
- data/client/skr/screens/sku-maint/SkuMaint.cjsx +53 -0
- data/client/skr/screens/sku-maint/SkuUomList.cjsx +209 -0
- data/client/skr/screens/sku-maint/index.js +2 -5
- data/client/skr/screens/sku-maint/index.scss +37 -6
- data/client/skr/screens/time-invoicing/TimeInvoicing.cjsx +156 -0
- data/client/skr/screens/time-invoicing/index.js +5 -0
- data/client/skr/screens/time-invoicing/index.scss +7 -0
- data/client/skr/screens/time-tracking/EditEntry.cjsx +54 -0
- data/client/skr/screens/time-tracking/Entries.coffee +132 -0
- data/client/skr/screens/time-tracking/Header.cjsx +71 -0
- data/client/skr/screens/time-tracking/Popover.cjsx +70 -0
- data/client/skr/screens/time-tracking/PopoverMiniControls.cjsx +25 -0
- data/client/skr/screens/time-tracking/TimeTracking.cjsx +63 -0
- data/client/skr/screens/time-tracking/WeekSummary.cjsx +16 -0
- data/client/skr/screens/time-tracking/index.js +1 -0
- data/client/skr/screens/time-tracking/index.scss +126 -0
- data/client/skr/screens/vendor-maint/VendorMaint.cjsx +45 -0
- data/client/skr/screens/vendor-maint/index.js +1 -5
- data/client/skr/styles.scss +1 -13
- data/config/puma.rb +4 -0
- data/config/routes.rb +21 -9
- data/config/screens.rb +147 -32
- data/db/migrate/20140202194700_create_skr_gl_transaction_details.rb +35 -0
- data/db/migrate/20140220031800_create_skr_locations.rb +2 -0
- data/db/migrate/20140220190836_create_skr_vendors.rb +1 -0
- data/db/migrate/20140220203029_create_skr_customers.rb +3 -2
- data/db/migrate/20140224034759_create_skr_skus.rb +2 -3
- data/db/migrate/20140322223912_create_skr_sales_orders.rb +4 -3
- data/db/migrate/20140322223920_create_skr_so_lines.rb +4 -5
- data/db/migrate/20140323001446_create_so_details_view.rb +7 -5
- data/db/migrate/20140327202209_create_skr_pt_lines.rb +2 -2
- data/db/migrate/20140327214000_create_customer_project.rb +16 -0
- data/db/migrate/20140327223002_create_time_entries.rb +17 -0
- data/db/migrate/20140327224000_create_skr_invoices.rb +5 -1
- data/db/migrate/20140327224002_create_skr_inv_lines.rb +3 -1
- data/db/migrate/20140422024010_create_skr_inv_details_view.rb +1 -1
- data/db/migrate/20151121211323_create_customer_project_details_views.rb +31 -0
- data/db/migrate/20160216142845_create_gl_account_balances_view.rb +20 -0
- data/db/migrate/20160229002044_create_bank_accounts.rb +18 -0
- data/db/migrate/20160229041711_create_payments.rb +33 -0
- data/db/migrate/20160307022705_create_create_combined_uom_views.rb +18 -0
- data/db/schema.sql +639 -140
- data/db/seed/chart_of_accounts.yml +8 -6
- data/db/seed/payment_categories.yml +12 -0
- data/db/seed/skus.yml +32 -0
- data/db/seed.rb +21 -0
- data/lib/skr/access_roles.rb +19 -6
- data/lib/skr/concerns/has_sku_loc_lines.rb +0 -16
- data/lib/skr/concerns/inv_extensions.rb +24 -0
- data/lib/skr/concerns/is_sku_loc_line.rb +3 -4
- data/lib/skr/concerns/so_extensions.rb +8 -0
- data/lib/skr/concerns/visible_id_identifier.rb +1 -1
- data/lib/skr/db/migration_helpers.rb +2 -4
- data/lib/skr/extension.rb +11 -4
- data/lib/skr/handlers/fresh_books_import.rb +20 -0
- data/lib/skr/handlers/invoice_from_time_entries.rb +49 -0
- data/lib/skr/jobs/fresh_books/base.rb +54 -0
- data/lib/skr/jobs/fresh_books/import.rb +151 -0
- data/lib/skr/jobs/fresh_books/retrieve.rb +62 -0
- data/lib/skr/model.rb +5 -0
- data/lib/skr/models/address.rb +1 -1
- data/lib/skr/models/bank_account.rb +13 -0
- data/lib/skr/models/business_entity.rb +3 -0
- data/lib/skr/models/customer.rb +1 -1
- data/lib/skr/models/customer_project.rb +22 -0
- data/lib/skr/models/gl_account.rb +13 -3
- data/lib/skr/models/gl_period.rb +6 -0
- data/lib/skr/models/gl_posting.rb +7 -4
- data/lib/skr/models/gl_transaction.rb +19 -33
- data/lib/skr/models/ia_line.rb +1 -1
- data/lib/skr/models/inv_line.rb +33 -15
- data/lib/skr/models/invoice.rb +47 -20
- data/lib/skr/models/location.rb +7 -1
- data/lib/skr/models/payment.rb +49 -0
- data/lib/skr/models/payment_category.rb +11 -0
- data/lib/skr/models/payment_term.rb +1 -1
- data/lib/skr/models/por_line.rb +1 -1
- data/lib/skr/models/pt_line.rb +1 -1
- data/lib/skr/models/sales_order.rb +9 -9
- data/lib/skr/models/sku_loc.rb +1 -1
- data/lib/skr/models/sku_tran.rb +6 -11
- data/lib/skr/models/so_line.rb +22 -12
- data/lib/skr/models/time_entry.rb +36 -0
- data/lib/skr/models/uom.rb +11 -10
- data/lib/skr/models/user_proxy.rb +1 -1
- data/lib/skr/number.rb +25 -0
- data/lib/skr/print/form.rb +46 -0
- data/lib/skr/print/template.rb +48 -0
- data/lib/skr/print.rb +11 -0
- data/lib/skr/string.rb +11 -0
- data/lib/skr/version.rb +1 -1
- data/lib/skr.rb +9 -0
- data/spec/fixtures/skr/address.yml +164 -4
- data/spec/fixtures/skr/bank_account.yml +8 -0
- data/spec/fixtures/skr/customer.yml +30 -4
- data/spec/fixtures/skr/customer_project.yml +20 -0
- data/spec/fixtures/skr/gl_account.yml +19 -1
- data/spec/fixtures/skr/gl_period.yml +3 -0
- data/spec/fixtures/skr/gl_posting.yml +22 -1
- data/spec/fixtures/skr/gl_transaction.yml +4 -1
- data/spec/fixtures/skr/inv_line.yml +35 -0
- data/spec/fixtures/skr/invoice.yml +13 -2
- data/spec/fixtures/skr/location.yml +5 -0
- data/spec/fixtures/skr/payment.yml +10 -0
- data/spec/fixtures/skr/payment_category.yml +8 -0
- data/spec/fixtures/skr/payment_term.yml +37 -3
- data/spec/fixtures/skr/sales_order.yml +12 -1
- data/spec/fixtures/skr/sku.yml +78 -1
- data/spec/fixtures/skr/sku_loc.yml +42 -1
- data/spec/fixtures/skr/sku_tran.yml +24 -1
- data/spec/fixtures/skr/so_line.yml +32 -0
- data/spec/fixtures/skr/time_entry.yml +82 -0
- data/spec/fixtures/skr/uom.yml +52 -1
- data/spec/fixtures/skr/vendor.yml +28 -1
- data/spec/fixtures/stockor.png +0 -0
- data/spec/server/bank_account_spec.rb +10 -0
- data/spec/server/customer_project_spec.rb +10 -0
- data/spec/server/handlers/invoice_from_time_entries_spec.rb +49 -0
- data/spec/server/jobs/fresh_books/import_spec.rb +69 -0
- data/spec/server/jobs/fresh_books/retrieve_spec.rb +37 -0
- data/spec/server/models/address_spec.rb +4 -3
- data/spec/server/models/gl_transaction_spec.rb +3 -3
- data/spec/server/models/inv_line_spec.rb +83 -3
- data/spec/server/models/invoice_spec.rb +32 -3
- data/spec/server/models/payment_spec.rb +40 -0
- data/spec/server/models/sales_order_spec.rb +1 -1
- data/spec/server/models/so_line_spec.rb +3 -3
- data/spec/server/models/spec_helper_spec.rb +1 -1
- data/spec/server/payment_spec.rb +10 -0
- data/spec/server/print/form_spec.rb +47 -0
- data/spec/server/print/template_spec.rb +36 -0
- data/spec/server/spec_helper.rb +14 -1
- data/spec/server/time_entry_spec.rb +10 -0
- data/spec/skr/components/SkuLinesSpec.coffee +61 -0
- data/spec/skr/models/BankAccountSpec.coffee +5 -0
- data/spec/skr/models/CustomerProjectSpec.coffee +5 -0
- data/spec/skr/models/CustomerSpec.coffee +2 -2
- data/spec/skr/models/PaymentSpec.coffee +5 -0
- data/spec/skr/models/SalesOrderSpec.coffee +21 -5
- data/spec/skr/models/SoLineSpec.coffee +7 -2
- data/spec/skr/models/TimeEntrySpec.coffee +5 -0
- data/spec/skr/screens/bank-maint/BankMaintSpec.coffee +5 -0
- data/spec/skr/screens/customer-projects/CustomerProjectsSpec.coffee +5 -0
- data/spec/skr/screens/fresh-books-import/FreshBooksImportSpec.coffee +1 -0
- data/spec/skr/screens/gl-accounts/GlAccountsSpec.coffee +5 -0
- data/spec/skr/screens/invoice/InvoiceSpec.coffee +5 -0
- data/spec/skr/screens/locations/LocationsSpec.coffee +5 -0
- data/spec/skr/screens/payment-category/PaymentCategorySpec.coffee +5 -0
- data/spec/skr/screens/payment-terms/PaymentTermsSpec.coffee +5 -0
- data/spec/skr/screens/payments/PaymentsSpec.coffee +5 -0
- data/spec/skr/screens/time-invoicing/TimeInvoicingSpec.coffee +5 -0
- data/spec/skr/screens/time-tracking/TimeTrackingSpec.coffee +14 -0
- data/spec/vcr/freshbooks.yml +698 -0
- data/stockor.gemspec +5 -1
- data/templates/print/fonts/GnuMICR.otf +0 -0
- data/templates/print/layout.tex.erb +39 -0
- data/templates/print/packages/booktabs.sty +182 -0
- data/templates/print/packages/fancybox.sty +966 -0
- data/templates/print/packages/fancyhdr.sty +485 -0
- data/templates/print/packages/graphbox.sty +129 -0
- data/templates/print/packages/lastpage.sty +283 -0
- data/templates/print/packages/lastpage209.sty +70 -0
- data/templates/print/packages/marginnote.sty +412 -0
- data/templates/print/packages/multirow.sty +159 -0
- data/templates/print/packages/rotating.sty +282 -0
- data/templates/print/packages/tabu.sty +2557 -0
- data/templates/print/packages/textpos.sty +361 -0
- data/templates/print/packages/varwidth.sty +318 -0
- data/templates/print/partials/address.tex.erb +6 -0
- data/templates/print/partials/bill_to_ship_to.tex.erb +13 -0
- data/templates/print/partials/header.tex.erb +13 -0
- data/templates/print/partials/invoice_paid_state.tex.erb +2 -0
- data/templates/print/partials/old/inv_lines_grouping.tex.erb +8 -0
- data/templates/print/partials/old/labor_lines_footer.tex.erb +18 -0
- data/templates/print/partials/skus_table.tex.erb +32 -0
- data/templates/print/partials/skus_table_col_hdr.tex.erb +8 -0
- data/templates/print/partials/skus_table_footer.tex.erb +5 -0
- data/templates/print/partials/skus_table_group_footer.tex.erb +4 -0
- data/templates/print/partials/skus_table_invoice_footer.tex.erb +25 -0
- data/templates/print/partials/skus_table_invoice_info_line.tex.erb +16 -0
- data/templates/print/partials/skus_table_labor_col_hdr.tex.erb +8 -0
- data/templates/print/partials/skus_table_labor_group_footer.tex.erb +7 -0
- data/templates/print/partials/skus_table_labor_line.tex.erb +11 -0
- data/templates/print/partials/skus_table_line.tex.erb +6 -0
- data/templates/print/partials/skus_table_other_charge_lines.tex.erb +7 -0
- data/templates/print/partials/so_info_line.tex.erb +14 -0
- data/templates/print/types/invoice/default.tex.erb +13 -0
- data/templates/print/types/invoice/labor.tex.erb +33 -0
- data/templates/print/types/payment/default.tex.erb +64 -0
- data/templates/print/types/sales-order/default.tex.erb +8 -0
- metadata +252 -15
- data/client/skr/components/address/address.html +0 -20
- data/client/skr/models/mixins/CodeField.coffee +0 -5
- data/client/skr/screens/customer-maint/index.scss +0 -11
- data/client/skr/screens/customer-maint/layout.html +0 -32
- data/client/skr/screens/sales-order/SalesOrder.coffee +0 -30
- data/client/skr/screens/sales-order/index.scss +0 -8
- data/client/skr/screens/sales-order/layout.html +0 -30
- data/client/skr/screens/sku-maint/SkuMaint.coffee +0 -18
- data/client/skr/screens/sku-maint/layout.html +0 -16
- data/client/skr/screens/vendor-maint/VendorMaint.coffee +0 -28
- data/client/skr/screens/vendor-maint/index.scss +0 -8
- data/client/skr/screens/vendor-maint/layout.html +0 -32
@@ -0,0 +1,8 @@
|
|
1
|
+
<% if @lines.any? -%>
|
2
|
+
<% @lines.each do | line | %>
|
3
|
+
<%= partial 'inv_line', line: line -%>
|
4
|
+
<% end -%>
|
5
|
+
\multicolumn{<%= @ncols-1%>}{r}{{\textbf{<%= "#{@title} SubTotal" %>}}} &
|
6
|
+
\textbf{<%= Skr::String.number_with_delimiter % @lines.sum(&:extended_price) %>} \\
|
7
|
+
\cline{<%= @ncols-3%>-<%= @ncols%>}
|
8
|
+
<% end -%>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
\multicolumn{<%= @ncols-4%>}{r}{} &
|
2
|
+
\textbf{<%= '%0.2f' % @invoice.lines.time_entry.sum{|l| l.time_entry.hours } %>} &
|
3
|
+
\textbf{Hours} &
|
4
|
+
\textbf{SubTotal} &
|
5
|
+
\textbf{<%= Skr::String.number_with_delimiter @invoice.lines.time_entry.sum(&:extended_price) %>} \\
|
6
|
+
\cline{<%= @ncols-3%>-<%= @ncols%>}
|
7
|
+
<% if @invoice.lines.other_charge.any? -%>
|
8
|
+
<% @invoice.lines.other_charge.each do | line | -%>
|
9
|
+
\multicolumn{<%= @ncols-1%>}{r}{{<%=q line.description%>}} &
|
10
|
+
<%= Skr::String.number_with_delimiter line.price %> \\
|
11
|
+
<% end -%>
|
12
|
+
\cline{<%= @ncols-3%>-<%= @ncols%>}
|
13
|
+
<% end -%>
|
14
|
+
\multicolumn{<%= @ncols-2%>}{r}{} &
|
15
|
+
\textbf{Total} &
|
16
|
+
\textbf{<%= Skr::String.number_with_delimiter @invoice.total %>} \\
|
17
|
+
\cline{<%= @ncols-3%>-<%= @ncols%>}
|
18
|
+
% \hline
|
@@ -0,0 +1,32 @@
|
|
1
|
+
% <% ncols = 6 %>
|
2
|
+
{\tabulinesep 0.2cm
|
3
|
+
\noindent\begin{longtabu} to \textwidth {lX<%='c'*(ncols-4) %>rr}
|
4
|
+
<%= partial @headings_template || 'skus_table_col_hdr' %>
|
5
|
+
\hline
|
6
|
+
\endfirsthead
|
7
|
+
\multicolumn{<%=ncols%>}{l}{...continued from previous page} \\
|
8
|
+
<%= partial @headings_template || 'skus_table_col_hdr' %>
|
9
|
+
\endhead
|
10
|
+
\hline
|
11
|
+
\multicolumn{<%=ncols%>}{r}{Continued on next page...} \\
|
12
|
+
\endfoot
|
13
|
+
\hline
|
14
|
+
<%= partial @footer || 'skus_table_footer', record: @record, ncols: ncols %>
|
15
|
+
\endlastfoot
|
16
|
+
<% if @groups %>
|
17
|
+
<% @groups.each_with_index do | group, i | -%>
|
18
|
+
\multicolumn{<%= ncols%>}{l}{\textbf{<%=q group[:title] %>}} \\
|
19
|
+
\cline{1-1}
|
20
|
+
<% group[:lines].each do | line | %>
|
21
|
+
<%= partial @line_template || 'skus_table_line', line: line -%>
|
22
|
+
<% end -%>
|
23
|
+
<%= partial group[:footer] || 'skus_table_group_footer',
|
24
|
+
invoice: @record, group: group, ncols: ncols %>
|
25
|
+
<% end -%>
|
26
|
+
<% else %>
|
27
|
+
<% @lines.each do | line | %>
|
28
|
+
<%= partial @line_template || 'skus_table_line', line: line -%>
|
29
|
+
<% end -%>
|
30
|
+
<% end -%>
|
31
|
+
\end{longtabu}
|
32
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%= partial 'skus_table_other_charge_lines', record: @record, ncols: @ncols %>
|
2
|
+
\multicolumn{<%= @ncols-1%>}{r}{{\textbf{Total}}} &
|
3
|
+
\textbf{\textsuperscript{\$}<%= Skr::String.number_with_delimiter @record.total %>} \\
|
4
|
+
\cline{<%= @ncols-3%>-<%= @ncols%>}
|
5
|
+
% \hline
|
6
|
+
<% unless @record.open? -%>
|
7
|
+
\multicolumn{<%= @ncols-1%>}{r}{{\textbf{Amount Paid}}} &
|
8
|
+
\textbf{\textsuperscript{\$}<%= Skr::String.number_with_delimiter @record.amount_paid %>} \\
|
9
|
+
\cline{<%= @ncols-3%>-<%= @ncols%>}
|
10
|
+
% \hline
|
11
|
+
%
|
12
|
+
&
|
13
|
+
\multicolumn{<%= 1 %>}{l}{{
|
14
|
+
\begin{rotate}{12}
|
15
|
+
\resizebox{!}{16pt}{\texttt{\textcolor{BrickRed}{
|
16
|
+
<%= @record.fully_paid? ? 'PAID IN FULL' : 'PARTIALLY PAID' %>
|
17
|
+
}}}
|
18
|
+
\end{rotate}
|
19
|
+
}} &
|
20
|
+
%
|
21
|
+
\multicolumn{<%= @ncols-3%>}{r}{{\textbf{Unpaid Amount}}} &
|
22
|
+
\textbf{\textsuperscript{\$}<%= Skr::String.number_with_delimiter @record.unpaid_amount %>} \\
|
23
|
+
\cline{<%= @ncols-3%>-<%= @ncols%>}
|
24
|
+
% \hline
|
25
|
+
<% end -%>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
\medskip
|
2
|
+
\begingroup
|
3
|
+
\renewcommand{\arraystretch}{1.5}
|
4
|
+
\setlength{\LTpre}{0pt}
|
5
|
+
\begin{tabu} to \textwidth { | *{3}{X[l]|} *{3}{l|} }
|
6
|
+
\hline
|
7
|
+
<% unless @invoice.po_num.blank? -%>
|
8
|
+
PO \#: <%=q @invoice.po_num %> &
|
9
|
+
<% end -%>
|
10
|
+
<% if @invoice.sales_order -%>
|
11
|
+
SO \#: <%=q @invoice.sales_order.visible_id %> &
|
12
|
+
<% end -%>
|
13
|
+
Terms: <%=q @invoice.terms.code %> &
|
14
|
+
Due Date: <%= @invoice.terms.immediate? ? 'Upon Receipt' : @invoice.due_date %> \\
|
15
|
+
\hline
|
16
|
+
\end{tabu}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
\cline{<%= @ncols-3%>-<%= @ncols%>}
|
2
|
+
\multicolumn{<%= @ncols-4%>}{r}{} &
|
3
|
+
\textbf{<%= '%0.2f' % @group[:lines].sum{|l| l.time_entry.hours } %>} &
|
4
|
+
\textbf{Hours} &
|
5
|
+
\textbf{SubTotal} &
|
6
|
+
\textbf{\textsuperscript{\$}<%= '%0.2f' % @group[:lines].sum(&:extended_price) %>} \\
|
7
|
+
\cline{<%= @ncols-3%>-<%= @ncols%>} \\
|
@@ -0,0 +1,11 @@
|
|
1
|
+
% <% if @line.time_entry %>
|
2
|
+
<%=q @line.time_entry.start_at.strftime('%b %e') %> &
|
3
|
+
<%=q @line.description %> &
|
4
|
+
% <% else %>
|
5
|
+
<%=q @line.sku_code %> &
|
6
|
+
<%=q @line.description %> &
|
7
|
+
% <% end %>
|
8
|
+
<%= @line.qty %> &
|
9
|
+
<%=q @line.combined_uom %> &
|
10
|
+
<%= Skr::String.number_with_delimiter @line.price %> &
|
11
|
+
<%= Skr::String.number_with_delimiter @line.total %> \\
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<% if @record.lines.other_charge.any? -%>
|
2
|
+
% <% @record.lines.other_charge.each do | line | -%>
|
3
|
+
\multicolumn{<%= @ncols-1%>}{r}{{<%=q line.description%>}} &
|
4
|
+
<%= Skr::String.number_with_delimiter line.price %> \\
|
5
|
+
<% end -%>
|
6
|
+
\cline{<%= @ncols-3%>-<%= @ncols%>}
|
7
|
+
<% end -%>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
\medskip
|
2
|
+
\begingroup
|
3
|
+
\renewcommand{\arraystretch}{1.5}
|
4
|
+
\setlength{\LTpre}{0pt}
|
5
|
+
\begin{tabu} to \textwidth { | *{3}{X[l]|} *{3}{l|} }
|
6
|
+
\hline
|
7
|
+
<% unless @sales_order.po_num.blank? -%>
|
8
|
+
PO \#: <%=q @sales_order.po_num %> &
|
9
|
+
<% end -%>
|
10
|
+
Terms: <%=q @sales_order.terms.code %> &
|
11
|
+
Due Date: <%= @sales_order.terms.immediate? ? 'Upon Receipt of Goods' : @sales_order.due_date %> \\
|
12
|
+
\hline
|
13
|
+
\end{tabu}
|
14
|
+
\endgroup
|
@@ -0,0 +1,13 @@
|
|
1
|
+
\begin{document}
|
2
|
+
<%= partial( 'header', {
|
3
|
+
location: @invoice.location, date: @invoice.invoice_date,
|
4
|
+
form_title: "Invoice # #{@invoice.visible_id}"
|
5
|
+
} ) %>
|
6
|
+
<%= partial 'bill_to_ship_to', record: @invoice -%>
|
7
|
+
<%= partial 'invoice_paid_state', invoice: @invoice -%>
|
8
|
+
<%= partial 'skus_table',
|
9
|
+
record: @invoice,
|
10
|
+
lines: @invoice.lines.regular,
|
11
|
+
footer: 'skus_table_invoice_footer'
|
12
|
+
-%>
|
13
|
+
\end{document}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<%
|
2
|
+
groups = []
|
3
|
+
groups.push(
|
4
|
+
{ title: 'Labor', lines: @invoice.lines.time_entry,
|
5
|
+
footer: 'skus_table_labor_group_footer' }
|
6
|
+
) if @invoice.lines.time_entry.any?
|
7
|
+
groups.push(
|
8
|
+
{ title: 'Non Labor', lines: @invoice.lines.product }
|
9
|
+
) if @invoice.lines.product.any?
|
10
|
+
-%>
|
11
|
+
%
|
12
|
+
%
|
13
|
+
%
|
14
|
+
\begin{document}
|
15
|
+
<%= partial( 'header', {
|
16
|
+
location: @invoice.location, date: @invoice.invoice_date,
|
17
|
+
form_title: "Invoice # #{@invoice.visible_id}"
|
18
|
+
} ) %>
|
19
|
+
\textbf{Invoice To:}
|
20
|
+
\medskip
|
21
|
+
\hspace*{3ex}{
|
22
|
+
<%=partial 'address', :address=>@invoice.billing_address %>
|
23
|
+
\medskip
|
24
|
+
<%=partial 'skus_table_invoice_info_line', invoice: @invoice -%>
|
25
|
+
%
|
26
|
+
<%=partial 'skus_table',
|
27
|
+
line_template: 'skus_table_labor_line',
|
28
|
+
headings_template: 'skus_table_labor_col_hdr',
|
29
|
+
groups: groups.many? ? groups : false,
|
30
|
+
record: @invoice, lines: @invoice.lines
|
31
|
+
-%>
|
32
|
+
%
|
33
|
+
\end{document}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
\font\micr="[<%= @root_path.join('fonts', 'GnuMICR.otf').to_s %>]"
|
2
|
+
\setlength{\TPHorizModule}{1mm}
|
3
|
+
\setlength{\TPVertModule}{\TPHorizModule}
|
4
|
+
\renewcommand{\headrulewidth}{0pt}
|
5
|
+
\geometry{top=1cm,left=1cm,right=1cm,bottom=0cm}
|
6
|
+
\begin{document}
|
7
|
+
\noindent
|
8
|
+
|
9
|
+
\begin{textblock}{195}(10,15)
|
10
|
+
\begin{tabu} to \columnwidth{lXX[-1m]r}
|
11
|
+
% <% if logo = @payment.location.get_logo %>
|
12
|
+
\includegraphics[align=t,height=14mm,keepaspectratio]{<%=
|
13
|
+
logo.file.path %>}
|
14
|
+
% <% end %>
|
15
|
+
& \small <%= break_lines @payment.location.address.to_s %>
|
16
|
+
& \tiny <%= break_lines @payment.bank_account.address %>
|
17
|
+
& \raisebox{-3mm}{\shadowbox{\large\bf {CHECK \# <%= @payment.check_number %> } }}\\
|
18
|
+
\end{tabu}
|
19
|
+
\end{textblock}
|
20
|
+
%
|
21
|
+
\begin{textblock}{185}(10,30)
|
22
|
+
\begin{tabu} to \columnwidth{Xrr}
|
23
|
+
\rowfont[c]\bfseries
|
24
|
+
& DATE & AMOUNT \\
|
25
|
+
& <%=q @payment.date %>
|
26
|
+
& <%=q Skr::String.number_with_delimiter( @payment.amount ) %> \\
|
27
|
+
\multicolumn{3}{l}{
|
28
|
+
<%= Skr::Number.as_words(@payment.amount.fix.to_i).titlecase %> \& $\textsuperscript{<%= sprintf('%02i',@payment.amount.frac*100) %>}/\textsubscript{100}$ U.S. Dollars
|
29
|
+
} \\
|
30
|
+
\tabucline[1pt on 1.5pt off 2pt]{1-1}
|
31
|
+
\end{tabu}
|
32
|
+
\end{textblock}
|
33
|
+
%
|
34
|
+
\begin{textblock}{200}(10,50)
|
35
|
+
\noindent
|
36
|
+
\begin{tabu} to \columnwidth{lX}
|
37
|
+
\parbox{5em}{\textit{PAY \newline
|
38
|
+
TO THE \newline
|
39
|
+
ORDER\newline
|
40
|
+
OF}}
|
41
|
+
& \parbox{\linewidth}{\large{<%=q @payment.name %> } \newline
|
42
|
+
<%= break_lines( @payment.address ) %> } \\
|
43
|
+
\end{tabu}
|
44
|
+
\end{textblock}
|
45
|
+
\begin{textblock}{70}(120,65)
|
46
|
+
\noindent
|
47
|
+
\begin{tabu} to \columnwidth{X[1,c,p]}
|
48
|
+
\\
|
49
|
+
\tabucline[.5pt on 1.5pt off .5pt]{1-1}
|
50
|
+
\small Authorized Signature
|
51
|
+
\\
|
52
|
+
|
53
|
+
\end{tabu}
|
54
|
+
\end{textblock}
|
55
|
+
%
|
56
|
+
\begin{textblock}{10}(45,79.7)
|
57
|
+
\micr <%= sprintf('%s%07i%s', 'C', @payment.check_number, 'C') %>
|
58
|
+
\end{textblock}
|
59
|
+
%
|
60
|
+
\begin{textblock}{20}(72,79.7)
|
61
|
+
\micr A<%= @payment.bank_account.routing_number %>A C<%=@payment.bank_account.account_number %>C
|
62
|
+
\end{textblock}
|
63
|
+
%
|
64
|
+
\end{document}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
% <% so = @sales_order %>
|
2
|
+
\begin{document}
|
3
|
+
<%= partial( 'header', {
|
4
|
+
location: so.location, date: so.order_date, form_title: "Sales Order # #{so.visible_id}"
|
5
|
+
} ) %>
|
6
|
+
<%=partial 'bill_to_ship_to', record: so -%>
|
7
|
+
<%=partial 'skus_table', record: so, lines: so.lines -%>
|
8
|
+
\end{document}
|