beanie 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/CONTRIBUTORS +1 -0
  4. data/Gemfile +3 -0
  5. data/LICENSE +339 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +30 -0
  8. data/Rakefile +1 -0
  9. data/VERSION +1 -0
  10. data/beanie.gemspec +23 -0
  11. data/lib/beanie/api.rb +117 -0
  12. data/lib/beanie/bank_account.rb +34 -0
  13. data/lib/beanie/bank_statement.rb +34 -0
  14. data/lib/beanie/bank_statement_data.rb +35 -0
  15. data/lib/beanie/beanie_alert.rb +56 -0
  16. data/lib/beanie/billable.rb +35 -0
  17. data/lib/beanie/company.rb +40 -0
  18. data/lib/beanie/company_member.rb +34 -0
  19. data/lib/beanie/config_type.rb +50 -0
  20. data/lib/beanie/config_value.rb +34 -0
  21. data/lib/beanie/contact.rb +55 -0
  22. data/lib/beanie/contact_address.rb +35 -0
  23. data/lib/beanie/contact_note.rb +34 -0
  24. data/lib/beanie/customer.rb +34 -0
  25. data/lib/beanie/document.rb +60 -0
  26. data/lib/beanie/fixed_asset.rb +34 -0
  27. data/lib/beanie/journal.rb +34 -0
  28. data/lib/beanie/journal_item.rb +34 -0
  29. data/lib/beanie/nominal_account.rb +34 -0
  30. data/lib/beanie/nominal_account_category.rb +64 -0
  31. data/lib/beanie/product.rb +40 -0
  32. data/lib/beanie/product_category.rb +34 -0
  33. data/lib/beanie/product_price.rb +34 -0
  34. data/lib/beanie/purchase_invoice.rb +36 -0
  35. data/lib/beanie/purchase_order.rb +35 -0
  36. data/lib/beanie/purchase_order_item.rb +47 -0
  37. data/lib/beanie/sales_invoice.rb +65 -0
  38. data/lib/beanie/sales_invoice_item.rb +35 -0
  39. data/lib/beanie/sales_order.rb +34 -0
  40. data/lib/beanie/sales_order_item.rb +118 -0
  41. data/lib/beanie/stock_adjustment.rb +57 -0
  42. data/lib/beanie/stock_category.rb +34 -0
  43. data/lib/beanie/stock_item.rb +46 -0
  44. data/lib/beanie/stock_location.rb +34 -0
  45. data/lib/beanie/stock_supplier.rb +35 -0
  46. data/lib/beanie/supplier.rb +35 -0
  47. data/lib/beanie/tax_registration.rb +50 -0
  48. data/lib/beanie/vat_record.rb +56 -0
  49. data/lib/beanie/vat_return.rb +45 -0
  50. data/lib/beanie/version.rb +32 -0
  51. data/lib/beanie/work_centre.rb +62 -0
  52. data/lib/beanie/work_centre_group.rb +44 -0
  53. data/lib/beanie.rb +130 -0
  54. metadata +124 -0
@@ -0,0 +1,64 @@
1
+ #
2
+ # Copyright (c) 2017-2018, AltoYield Limited. All rights reserved.
3
+ #
4
+ # This is free software; you can redistribute it and/or modify it
5
+ # under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2, or (at your option)
7
+ # any later version.
8
+ #
9
+ # It is distributed in the hope that it will be useful, but WITHOUT
10
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
+ # for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License along
15
+ # with this product; see the file COPYING. If not, write to the Free
16
+ # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY ALTOYIELD LIMITED "AS IS" AND ANY EXPRESS
19
+ # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ # ARE DISCLAIMED. IN NO EVENT SHALL ALTOYIELD LIMITED BE LIABLE FOR
22
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
+ # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
+ # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27
+ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
+ # POSSIBILITY OF SUCH DAMAGE.
29
+ #
30
+ module Beanie
31
+ class NominalAccountCategory < Api
32
+ attr_accessor :id, :na_type, :name, :parent_category_id
33
+
34
+ NA_TYPE_FIXED_ASSETS = 0
35
+ NA_TYPE_CURRENT_ASSETS = 1
36
+ NA_TYPE_CURRENT_LIABILITIES = 2
37
+ NA_TYPE_NON_CURRENT_LIABILITIES = 3
38
+ NA_TYPE_RESERVES = 4
39
+ NA_TYPE_INCOME = 5
40
+ NA_TYPE_DIRECT_COSTS = 6
41
+ NA_TYPE_EXPENSE = 7
42
+ NA_TYPE_OTHER_EXPENSE = 8
43
+ NA_TYPE_OTHER_INCOME = 9
44
+
45
+ NA_TYPE_NAMES = [
46
+ ["Fixed Assets", NA_TYPE_FIXED_ASSETS],
47
+ ["Current Assets", NA_TYPE_CURRENT_ASSETS],
48
+ ["Current Liabilities", NA_TYPE_CURRENT_LIABILITIES],
49
+ ["Non-Current Liabilities", NA_TYPE_NON_CURRENT_LIABILITIES],
50
+ ["Reserves", NA_TYPE_RESERVES],
51
+ ["Income", NA_TYPE_INCOME],
52
+ ["Direct Costs", NA_TYPE_DIRECT_COSTS],
53
+ ["Expense", NA_TYPE_EXPENSE],
54
+ ["Other Expense", NA_TYPE_OTHER_EXPENSE],
55
+ ["Other Income", NA_TYPE_OTHER_INCOME]
56
+ ].freeze
57
+
58
+ #
59
+ # Show proper name for type
60
+ def na_type_name
61
+ NA_TYPE_NAMES[na_type][0]
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,40 @@
1
+ #
2
+ # Copyright (c) 2017-2018, AltoYield Limited. All rights reserved.
3
+ #
4
+ # This is free software; you can redistribute it and/or modify it
5
+ # under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2, or (at your option)
7
+ # any later version.
8
+ #
9
+ # It is distributed in the hope that it will be useful, but WITHOUT
10
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
+ # for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License along
15
+ # with this product; see the file COPYING. If not, write to the Free
16
+ # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY ALTOYIELD LIMITED "AS IS" AND ANY EXPRESS
19
+ # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ # ARE DISCLAIMED. IN NO EVENT SHALL ALTOYIELD LIMITED BE LIABLE FOR
22
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
+ # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
+ # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27
+ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
+ # POSSIBILITY OF SUCH DAMAGE.
29
+ #
30
+ module Beanie
31
+ class Product < Api
32
+ attr_accessor :id, :description, :name, :sku, :is_service
33
+ attr_accessor :nominal_account_id, :product_category_id, :unit_of_measure
34
+
35
+ def self.find_by_name(name)
36
+ puts "Find by name: #{name}"
37
+ Beanie.find("products", "name", name)
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,34 @@
1
+ #
2
+ # Copyright (c) 2017-2018, AltoYield Limited. All rights reserved.
3
+ #
4
+ # This is free software; you can redistribute it and/or modify it
5
+ # under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2, or (at your option)
7
+ # any later version.
8
+ #
9
+ # It is distributed in the hope that it will be useful, but WITHOUT
10
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
+ # for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License along
15
+ # with this product; see the file COPYING. If not, write to the Free
16
+ # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY ALTOYIELD LIMITED "AS IS" AND ANY EXPRESS
19
+ # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ # ARE DISCLAIMED. IN NO EVENT SHALL ALTOYIELD LIMITED BE LIABLE FOR
22
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
+ # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
+ # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27
+ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
+ # POSSIBILITY OF SUCH DAMAGE.
29
+ #
30
+ module Beanie
31
+ class ProductCategory < Api
32
+ attr_accessor :id, :description, :name, :parent_category_id
33
+ end
34
+ end
@@ -0,0 +1,34 @@
1
+ #
2
+ # Copyright (c) 2017-2018, AltoYield Limited. All rights reserved.
3
+ #
4
+ # This is free software; you can redistribute it and/or modify it
5
+ # under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2, or (at your option)
7
+ # any later version.
8
+ #
9
+ # It is distributed in the hope that it will be useful, but WITHOUT
10
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
+ # for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License along
15
+ # with this product; see the file COPYING. If not, write to the Free
16
+ # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY ALTOYIELD LIMITED "AS IS" AND ANY EXPRESS
19
+ # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ # ARE DISCLAIMED. IN NO EVENT SHALL ALTOYIELD LIMITED BE LIABLE FOR
22
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
+ # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
+ # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27
+ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
+ # POSSIBILITY OF SUCH DAMAGE.
29
+ #
30
+ module Beanie
31
+ class ProductPrice < Api
32
+ attr_accessor :id, :amount, :effective, :sales_tax_id, :product_id
33
+ end
34
+ end
@@ -0,0 +1,36 @@
1
+ #
2
+ # Copyright (c) 2017-2018, AltoYield Limited. All rights reserved.
3
+ #
4
+ # This is free software; you can redistribute it and/or modify it
5
+ # under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2, or (at your option)
7
+ # any later version.
8
+ #
9
+ # It is distributed in the hope that it will be useful, but WITHOUT
10
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
+ # for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License along
15
+ # with this product; see the file COPYING. If not, write to the Free
16
+ # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY ALTOYIELD LIMITED "AS IS" AND ANY EXPRESS
19
+ # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ # ARE DISCLAIMED. IN NO EVENT SHALL ALTOYIELD LIMITED BE LIABLE FOR
22
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
+ # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
+ # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27
+ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
+ # POSSIBILITY OF SUCH DAMAGE.
29
+ #
30
+ module Beanie
31
+ class PurchaseInvoice < Api
32
+ attr_accessor :id, :date, :due_date, :is_credit_note, :is_paid, :local_gross, :number
33
+ attr_accessor :original_invoice_id, :shipping, :sub_total, :tax, :tax_point
34
+ attr_accessor :purchase_order_id, :document_id
35
+ end
36
+ end
@@ -0,0 +1,35 @@
1
+ #
2
+ # Copyright (c) 2017-2018, AltoYield Limited. All rights reserved.
3
+ #
4
+ # This is free software; you can redistribute it and/or modify it
5
+ # under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2, or (at your option)
7
+ # any later version.
8
+ #
9
+ # It is distributed in the hope that it will be useful, but WITHOUT
10
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
+ # for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License along
15
+ # with this product; see the file COPYING. If not, write to the Free
16
+ # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY ALTOYIELD LIMITED "AS IS" AND ANY EXPRESS
19
+ # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ # ARE DISCLAIMED. IN NO EVENT SHALL ALTOYIELD LIMITED BE LIABLE FOR
22
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
+ # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
+ # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27
+ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
+ # POSSIBILITY OF SUCH DAMAGE.
29
+ #
30
+ module Beanie
31
+ class PurchaseOrder < Api
32
+ attr_accessor :id, :date, :number, :title
33
+ attr_accessor :currency, :supplier_id
34
+ end
35
+ end
@@ -0,0 +1,47 @@
1
+ #
2
+ # Copyright (c) 2017-2018, AltoYield Limited. All rights reserved.
3
+ #
4
+ # This is free software; you can redistribute it and/or modify it
5
+ # under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2, or (at your option)
7
+ # any later version.
8
+ #
9
+ # It is distributed in the hope that it will be useful, but WITHOUT
10
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
+ # for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License along
15
+ # with this product; see the file COPYING. If not, write to the Free
16
+ # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY ALTOYIELD LIMITED "AS IS" AND ANY EXPRESS
19
+ # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ # ARE DISCLAIMED. IN NO EVENT SHALL ALTOYIELD LIMITED BE LIABLE FOR
22
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
+ # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
+ # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27
+ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
+ # POSSIBILITY OF SUCH DAMAGE.
29
+ #
30
+ module Beanie
31
+ class PurchaseOrderItem < Api
32
+ attr_accessor :id, :description, :discount, :quantity, :state, :unit_cost
33
+ attr_accessor :purchase_order_id, :sales_tax
34
+
35
+ STATE_NEW = 0
36
+ STATE_PARTIAL = 1
37
+ STATE_BACKORDER = 2
38
+ STATE_COMPLETE = 3
39
+
40
+ STATE_NAMES = [
41
+ ["Awaiting Receipt", STATE_NEW],
42
+ ["Partial Delivery", STATE_PARTIAL],
43
+ ["Back-Order", STATE_BACKORDER],
44
+ ["Item Complete", STATE_COMPLETE]
45
+ ].freeze
46
+ end
47
+ end
@@ -0,0 +1,65 @@
1
+ #
2
+ # Copyright (c) 2017-2018, AltoYield Limited. All rights reserved.
3
+ #
4
+ # This is free software; you can redistribute it and/or modify it
5
+ # under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2, or (at your option)
7
+ # any later version.
8
+ #
9
+ # It is distributed in the hope that it will be useful, but WITHOUT
10
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
+ # for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License along
15
+ # with this product; see the file COPYING. If not, write to the Free
16
+ # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY ALTOYIELD LIMITED "AS IS" AND ANY EXPRESS
19
+ # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ # ARE DISCLAIMED. IN NO EVENT SHALL ALTOYIELD LIMITED BE LIABLE FOR
22
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
+ # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
+ # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27
+ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
+ # POSSIBILITY OF SUCH DAMAGE.
29
+ #
30
+ module Beanie
31
+ class SalesInvoice < Api
32
+ attr_accessor :id, :date, :due_date, :number, :is_credit_note, :local_gross, :shipping, :sub_total, :tax
33
+ attr_accessor :tax_point, :sales_order_id, :original_invoice, :state
34
+
35
+ STATE_NEW = 0
36
+ STATE_POSTED = 1
37
+ STATE_SENT = 2
38
+ STATE_PAID = 3
39
+ STATE_CANCELLED = 4
40
+ STATE_OVERDUE1 = 5
41
+ STATE_OVERDUE2 = 6
42
+ STATE_OVERDUE3 = 7
43
+ STATE_OVERDUE4 = 8
44
+ STATE_OVERDUE5 = 9
45
+
46
+ STATE_NAMES = [
47
+ ["New (Unposted)", STATE_NEW],
48
+ ["Posted to Journal", STATE_POSTED],
49
+ ["Sent to Customer", STATE_SENT],
50
+ ["Paid", STATE_PAID],
51
+ ["Cancelled", STATE_CANCELLED],
52
+ ["Overdue (Past 30 days)", STATE_OVERDUE1],
53
+ ["Overdue (Past 45 days)", STATE_OVERDUE2],
54
+ ["Overdue (Over 60 days)", STATE_OVERDUE3],
55
+ ["Overdue (Over 90 days)", STATE_OVERDUE4],
56
+ ["Overdue (Over 120 days)", STATE_OVERDUE5]
57
+ ].freeze
58
+
59
+ #
60
+ # Show the state in a useful format
61
+ def state_name
62
+ STATE_NAMES[self.state][0]
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,35 @@
1
+ #
2
+ # Copyright (c) 2017-2018, AltoYield Limited. All rights reserved.
3
+ #
4
+ # This is free software; you can redistribute it and/or modify it
5
+ # under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2, or (at your option)
7
+ # any later version.
8
+ #
9
+ # It is distributed in the hope that it will be useful, but WITHOUT
10
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
+ # for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License along
15
+ # with this product; see the file COPYING. If not, write to the Free
16
+ # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY ALTOYIELD LIMITED "AS IS" AND ANY EXPRESS
19
+ # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ # ARE DISCLAIMED. IN NO EVENT SHALL ALTOYIELD LIMITED BE LIABLE FOR
22
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
+ # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
+ # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27
+ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
+ # POSSIBILITY OF SUCH DAMAGE.
29
+ #
30
+ module Beanie
31
+ class SalesInvoiceItem < Api
32
+ attr_accessor :id, :description, :discount, :quantity, :run_date, :run_length, :unit_cost
33
+ attr_accessor :sales_invoice_id, :sales_order_item_id, :sales_tax
34
+ end
35
+ end
@@ -0,0 +1,34 @@
1
+ #
2
+ # Copyright (c) 2017-2018, AltoYield Limited. All rights reserved.
3
+ #
4
+ # This is free software; you can redistribute it and/or modify it
5
+ # under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2, or (at your option)
7
+ # any later version.
8
+ #
9
+ # It is distributed in the hope that it will be useful, but WITHOUT
10
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
+ # for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License along
15
+ # with this product; see the file COPYING. If not, write to the Free
16
+ # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY ALTOYIELD LIMITED "AS IS" AND ANY EXPRESS
19
+ # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ # ARE DISCLAIMED. IN NO EVENT SHALL ALTOYIELD LIMITED BE LIABLE FOR
22
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
+ # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
+ # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27
+ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
+ # POSSIBILITY OF SUCH DAMAGE.
29
+ #
30
+ module Beanie
31
+ class SalesOrder < Api
32
+ attr_accessor :id, :cash_customer_ref, :number, :date, :title, :your_ref, :currency, :customer_id
33
+ end
34
+ end
@@ -0,0 +1,118 @@
1
+ #
2
+ # Copyright (c) 2017-2018, AltoYield Limited. All rights reserved.
3
+ #
4
+ # This is free software; you can redistribute it and/or modify it
5
+ # under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2, or (at your option)
7
+ # any later version.
8
+ #
9
+ # It is distributed in the hope that it will be useful, but WITHOUT
10
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
+ # for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License along
15
+ # with this product; see the file COPYING. If not, write to the Free
16
+ # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY ALTOYIELD LIMITED "AS IS" AND ANY EXPRESS
19
+ # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ # ARE DISCLAIMED. IN NO EVENT SHALL ALTOYIELD LIMITED BE LIABLE FOR
22
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
+ # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
+ # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27
+ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
+ # POSSIBILITY OF SUCH DAMAGE.
29
+ #
30
+ module Beanie
31
+ class SalesOrderItem < Api
32
+ attr_accessor :id, :completion, :description, :discount, :frequency, :quantity, :rundate, :state
33
+ attr_accessor :sales_order_id, :product_id, :service_period, :unit_cost, :sales_tax
34
+
35
+ STATE_NEW = 0
36
+ STATE_READY = 1
37
+ STATE_DONE = 2
38
+ STATE_BLOCKED = 3
39
+
40
+ STATE_NAMES = [
41
+ ["New Order Item", STATE_NEW],
42
+ ["Billable", STATE_READY],
43
+ ["Complete", STATE_DONE],
44
+ ["Blocked", STATE_BLOCKED]
45
+ ].freeze
46
+
47
+ BILL_FREQUENCY_IMMEDIATE = 0
48
+ BILL_FREQUENCY_WEEKLY = 1
49
+ BILL_FREQUENCY_MONTHLY = 2
50
+ BILL_FREQUENCY_QUARTERLY = 3
51
+ BILL_FREQUENCY_ANNUALLY = 4
52
+
53
+ BILL_FREQUENCY_NAMES = [
54
+ ["Immediate", BILL_FREQUENCY_IMMEDIATE],
55
+ ["Weekly", BILL_FREQUENCY_WEEKLY],
56
+ ["Monthly", BILL_FREQUENCY_MONTHLY],
57
+ ["Quarterly", BILL_FREQUENCY_QUARTERLY],
58
+ ["Yearly", BILL_FREQUENCY_ANNUALLY]
59
+ ].freeze
60
+
61
+ SERVICE_PERIOD_ONEOFF = 0
62
+ SERVICE_PERIOD_HOURLY = 1
63
+ SERVICE_PERIOD_DAILY = 2
64
+ SERVICE_PERIOD_WEEKLY = 3
65
+ SERVICE_PERIOD_MONTHLY = 4
66
+ SERVICE_PERIOD_QUARTERLY = 5
67
+ SERVICE_PERIOD_ANNUALLY = 6
68
+
69
+ SERVICE_PERIOD_NAMES = [
70
+ ["One-Off", SERVICE_PERIOD_ONEOFF],
71
+ ["Hourly Rate", SERVICE_PERIOD_HOURLY],
72
+ ["Daily Rate", SERVICE_PERIOD_DAILY],
73
+ ["Weekly Rate", SERVICE_PERIOD_WEEKLY],
74
+ ["Monthly Rate", SERVICE_PERIOD_MONTHLY],
75
+ ["Quarterly Rate", SERVICE_PERIOD_QUARTERLY],
76
+ ["Annual Rate", SERVICE_PERIOD_ANNUALLY]
77
+ ].freeze
78
+
79
+ #
80
+ # Pretty name for the state
81
+ def state_name
82
+ STATE_NAMES[state][0]
83
+ end
84
+
85
+ #
86
+ # Pretty name for the frequency
87
+ def frequency_name
88
+ BILL_FREQUENCY_NAMES.each do |fn|
89
+ return fn[0] if fn[1] == self.frequency
90
+ end
91
+ return "Unknown?"
92
+ end
93
+
94
+ #
95
+ # Service period name
96
+ def period_name
97
+ SERVICE_PERIOD_NAMES[service_period][0]
98
+ end
99
+
100
+ #
101
+ # Is this item active?
102
+ def active?
103
+ state == STATE_READY
104
+ end
105
+
106
+ #
107
+ # Is this item blocked?
108
+ def blocked?
109
+ state == STATE_BLOCKED
110
+ end
111
+
112
+ #
113
+ # Is this a one-off rather than a time-based item?
114
+ def one_off?
115
+ self.service_period == SERVICE_PERIOD_ONEOFF
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,57 @@
1
+ #
2
+ # Copyright (c) 2017-2018, AltoYield Limited. All rights reserved.
3
+ #
4
+ # This is free software; you can redistribute it and/or modify it
5
+ # under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2, or (at your option)
7
+ # any later version.
8
+ #
9
+ # It is distributed in the hope that it will be useful, but WITHOUT
10
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
+ # for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License along
15
+ # with this product; see the file COPYING. If not, write to the Free
16
+ # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY ALTOYIELD LIMITED "AS IS" AND ANY EXPRESS
19
+ # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ # ARE DISCLAIMED. IN NO EVENT SHALL ALTOYIELD LIMITED BE LIABLE FOR
22
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
+ # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
+ # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27
+ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
+ # POSSIBILITY OF SUCH DAMAGE.
29
+ #
30
+ module Beanie
31
+ class StockAdjustment < Api
32
+ attr_accessor :id, :effective, :adjustment_type, :amount, :note
33
+ attr_accessor :stock_item_id, :stock_supplier_id, :purchase_order_item_id
34
+
35
+ TYPE_STOCK_TAKING = 0
36
+ TYPE_SCHED_REQUEST = 1
37
+ TYPE_ORDER_WAIT = 2
38
+ TYPE_TO_INVENTORY = 3
39
+ TYPE_FROM_INVENTORY = 3
40
+ TYPE_SPOILAGE = 4
41
+
42
+ TYPE_NAMES = [
43
+ ["Stock-Taking", TYPE_STOCK_TAKING],
44
+ ["Scheduled Request", TYPE_SCHED_REQUEST],
45
+ ["Awaiting Delivery", TYPE_ORDER_WAIT],
46
+ ["Move to Inventory", TYPE_TO_INVENTORY],
47
+ ["Move from Inventory", TYPE_FROM_INVENTORY],
48
+ ["Spoilage", TYPE_SPOILAGE]
49
+ ].freeze
50
+
51
+ #
52
+ # Convert the type into a useful name
53
+ def type_name
54
+ TYPE_NAMES[adjustment_type][0]
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,34 @@
1
+ #
2
+ # Copyright (c) 2017-2018, AltoYield Limited. All rights reserved.
3
+ #
4
+ # This is free software; you can redistribute it and/or modify it
5
+ # under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2, or (at your option)
7
+ # any later version.
8
+ #
9
+ # It is distributed in the hope that it will be useful, but WITHOUT
10
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
+ # for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License along
15
+ # with this product; see the file COPYING. If not, write to the Free
16
+ # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY ALTOYIELD LIMITED "AS IS" AND ANY EXPRESS
19
+ # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ # ARE DISCLAIMED. IN NO EVENT SHALL ALTOYIELD LIMITED BE LIABLE FOR
22
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
+ # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
+ # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27
+ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
+ # POSSIBILITY OF SUCH DAMAGE.
29
+ #
30
+ module Beanie
31
+ class StockCategory < Api
32
+ attr_accessor :id, :code, :name, :description, :nominal_account_id
33
+ end
34
+ end