From 118116ab706186f8cb0f4c3e24c740ff673d61b7 Mon Sep 17 00:00:00 2001 From: Philippe Date: Thu, 28 Oct 2021 12:25:19 +0200 Subject: [PATCH] Adding tva_type to price_documents and package_number to price_line_blocks --- app/models/price_document.rb | 45 ++++++++++--------- app/models/tva_type.rb | 3 ++ .../admin/price_documents/_form.html.haml | 7 ++- .../_form_facture_achat.html.haml | 21 ++++----- app/views/admin/price_lines/_form.html.haml | 1 + db/migrate/20211028091122_create_tva_types.rb | 17 +++++++ db/schema.rb | 13 +++++- test/fixtures/tva_types.yml | 11 +++++ test/models/tva_type_test.rb | 7 +++ 9 files changed, 91 insertions(+), 34 deletions(-) create mode 100644 app/models/tva_type.rb create mode 100644 db/migrate/20211028091122_create_tva_types.rb create mode 100644 test/fixtures/tva_types.yml create mode 100644 test/models/tva_type_test.rb diff --git a/app/models/price_document.rb b/app/models/price_document.rb index e941947..d81a403 100644 --- a/app/models/price_document.rb +++ b/app/models/price_document.rb @@ -5,6 +5,7 @@ class PriceDocument < ApplicationRecord belongs_to :p_commercial belongs_to :p_devise belongs_to :p_payment_type + belongs_to :tva_type has_one :p_compta_element, :dependent => :destroy, :as => :element @@ -26,7 +27,7 @@ class PriceDocument < ApplicationRecord accepts_nested_attributes_for :avoir_p_payment_documents, allow_destroy: true #PURCHASES = ["Demande prix", "Réponse fournisseur", "Commande achat", "Facture achat", "Consultation fournisseur"] - PURCHASES = ["Commande achat"] + PURCHASES = ["Facture achat"] SALES = ["Bon de commande", "Devis", "Bon de livraison", "Facture", "Avoir"] # AVANCEMENT = ["0%", "10%", "20%", "30%", "40%", "50%", "60%", "70%", "80%", "90%", "100%"] AVANCEMENT = ["0%", "25%", "50%", "75%", "100"] @@ -265,23 +266,24 @@ class PriceDocument < ApplicationRecord def self.qi_table_order { - :p_customer_code => {:name => "Code client", :reorder => false}, - - - :avancement => {:name => "Avancement (%)", :reorder => true}, - :list_designaton => {:name => "Designation liste", :reorder => true}, - :end_date => {:name => "Fin de consultation", :reorder => true}, - :dp_comment => {:name => "Commentaire", :reorder => true}, - :acheteur_text => {:name => "Envoyé à", :reorder => true}, + :id => {:name => "ID", :reorder => false}, + :p_customer_code => {:name => "Code client", :reorder => false}, + #:avancement => {:name => "Avancement (%)", :reorder => true}, + #:list_designaton => {:name => "Designation liste", :reorder => true}, + #:end_date => {:name => "Fin de consultation", :reorder => true}, + #:dp_comment => {:name => "Commentaire", :reorder => true}, + #:acheteur_text => {:name => "Envoyé à", :reorder => true}, :customer_ref => {:name => "Ref cotation", :reorder => false}, - - :p_commercial => {:name => "Commercial", :reorder => false}, + #:p_commercial => {:name => "Commercial", :reorder => false}, :p_customer => {:name => "Client", :reorder => false}, :public_fournisseur_name => {:name => "Nom fournisseur saisi", :reorder => false}, :p_fournisseur => {:name => "Fournisseur", :reorder => false}, :com_counter => {:name => "N° Offre", :reorder => false}, :label => {:name => "Type", :reorder => false}, + :stock_ok => {:name => "Stock mis à jour ?", :reorder => true}, + :tva_type_name => {:name => "ID Type de TVA", :reorder => true}, + :package_number => {:name => "Nombre de colis", :reorder => true}, :d_number => {:name => "Numéro", :reorder => true}, :date => {:name => "Date", :reorder => true}, :cc_payment_end_at => {:name => "Date d'échance", :reorder => true}, @@ -296,21 +298,20 @@ class PriceDocument < ApplicationRecord :cc_cost_ht => {:name => "Coût HT", :reorder => true, :as => :currency}, :cc_marge_ht => {:name => "Marge HT", :reorder => true, :as => :currency}, :cost_ok => {:name => "Marge calculée", :reorder => true, :as => :boolean}, - :f_token => {:name => "Liens consultation"}, - - - - - - - :stock_ok => {:name => "Stock mis à jour ?", :reorder => true}, + #:f_token => {:name => "Liens consultation"}, :actions => {:name => "Actions", :reorder => false} - - } #, :sort_name => "code" end + def ca_tva_type_name + self.tva_type.name + end + + def package_number + self.price_line_block.package_number + end + def self.valid_sort r = [] self.qi_table_order.each do |key, value| @@ -343,7 +344,7 @@ class PriceDocument < ApplicationRecord include Rails.application.routes.url_helpers - QI_DYNAMICS = %w(solded_nbr_days solded_at cost_ht marge_ht weight_tot accounting_zone_id accounting_zone_name tot_amount_ht tot_amount_ttc tot_amount_tva label header footer payment_days payment_delais payment_month_end payment_end_at to_paid_ht to_paid_ttc to_paid_tva solded) + QI_DYNAMICS = %w(solded_nbr_days solded_at cost_ht marge_ht weight_tot accounting_zone_id accounting_zone_name tot_amount_ht tot_amount_ttc tot_amount_tva label header footer payment_days payment_delais payment_month_end payment_end_at to_paid_ht to_paid_ttc to_paid_tva solded tva_type_name) def reset_for_update diff --git a/app/models/tva_type.rb b/app/models/tva_type.rb new file mode 100644 index 0000000..27bc3ab --- /dev/null +++ b/app/models/tva_type.rb @@ -0,0 +1,3 @@ +class TvaType < ApplicationRecord + has_many :price_documents +end diff --git a/app/views/admin/price_documents/_form.html.haml b/app/views/admin/price_documents/_form.html.haml index 60a7314..ea84db3 100644 --- a/app/views/admin/price_documents/_form.html.haml +++ b/app/views/admin/price_documents/_form.html.haml @@ -1,3 +1,4 @@ +PRICE_DOCUMENTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT =semantic_form_for [:admin, @price_document], :html => {:class => "qi_price_form"}, :remote => false do |f| -@p_customer = @price_document.p_customer =diag do @@ -42,7 +43,11 @@ -if @price_document.price_document_type_id == 6 or @price_document.price_document_type_id == 7 - = f.input :date, :label => "Date du document :", :as => :date + .row + .col-6 + = f.input :date, :label => "Date du document :", :as => :date + .col-6 + = f.input :tva_type_id, :label => "Type de TVA :", as: :select, collection: TvaType.pluck(:name, :id) .price_line_block_form =f.semantic_fields_for :price_line_block do |f| =render :partial => "admin/price_line_blocks/form_#{f.object.block_type_slug}", :locals => {:f => f} diff --git a/app/views/admin/price_line_blocks/_form_facture_achat.html.haml b/app/views/admin/price_line_blocks/_form_facture_achat.html.haml index dca9aea..88536e2 100644 --- a/app/views/admin/price_line_blocks/_form_facture_achat.html.haml +++ b/app/views/admin/price_line_blocks/_form_facture_achat.html.haml @@ -1,4 +1,4 @@ - +PRICE LINE BLOCKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK =f.inputs do @@ -34,22 +34,23 @@ = f.input :particular_send_id, :collection => f.object.p_customer.particulars.all, :as => :select, :member_label => :address_line, :include_blank => false, :label => "Adresse de livraison" -else =f.inputs do - = f.input :particular_send_id, :collection => [], :as => :select, :include_blank => false, :label => "Adresse de facturation" + = f.input :particular_send_id, :collection => [], :as => :select, :include_blank => false, :label => "Adresse de livraison" .clear %table{:style => "width:100%;"} %tr - %td{:style => "width:50%;"} - = f.input :wish_date, :label => "Date de livraison souhaitée :", :as => :date - - %td{:style => "width:50%;"} - = f.input :ct_creation_date, :label => "Date de commande (si différente de la date de création) :", :as => :date + %td + =# f.input :wish_date, :label => "Date de livraison souhaitée :", :as => :date + %td + =# f.input :ct_creation_date, :label => "Date de commande (si différente de la date de création) :", :as => :date + .row + .col-6 + = f.input :customer_ref, :label => "Référence commande fournisseur :" + .col-6 + = f.input :package_number, :label => "Nombre de colis :" - - - = f.input :customer_ref, :label => "Référence commande client :" -if current_admin.has_permission?("customer-sheets-bl") = f.input :bl_comment, :label => "Commentaire à mettre sur le BL :", :input_html => {:style => "min-height:50px;height:50px;"} diff --git a/app/views/admin/price_lines/_form.html.haml b/app/views/admin/price_lines/_form.html.haml index 6861e44..4d21fda 100644 --- a/app/views/admin/price_lines/_form.html.haml +++ b/app/views/admin/price_lines/_form.html.haml @@ -3,6 +3,7 @@ %td{:style => "padding-left:10px;", :class => ("error has-error" if form.object.errors[:p_product_ref_id].size > 0 )} .take.mr-1 + ="PRICE_LINEEEEEEEE" =ic :arrows %td{:style => "white-space: nowrap;"} diff --git a/db/migrate/20211028091122_create_tva_types.rb b/db/migrate/20211028091122_create_tva_types.rb new file mode 100644 index 0000000..1d54a38 --- /dev/null +++ b/db/migrate/20211028091122_create_tva_types.rb @@ -0,0 +1,17 @@ +class CreateTvaTypes < ActiveRecord::Migration[6.0] + def change + create_table :tva_types do |t| + t.string :name + + t.timestamps + end + + TvaType.create(name: "basique") + TvaType.create(name: "Sur Marge") + + add_reference :price_documents, :tva_type, index: true + add_column :price_documents, :ac_tva_type_name, :string + add_column :price_documents, :cc_tva_type_name, :string + add_column :price_line_blocks, :package_number, :integer + end +end diff --git a/db/schema.rb b/db/schema.rb index 6662bd6..bb88940 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2021_10_18_142636) do +ActiveRecord::Schema.define(version: 2021_10_28_091122) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -2304,7 +2304,11 @@ ActiveRecord::Schema.define(version: 2021_10_18_142636) do t.integer "demande_de_prix_id" t.integer "avoir_achat_id" t.integer "facture_achat_id" + t.bigint "tva_type_id" + t.string "ac_tva_type_name" + t.string "cc_tva_type_name" t.index ["p_customer_id"], name: "index_price_documents_on_p_customer_id" + t.index ["tva_type_id"], name: "index_price_documents_on_tva_type_id" end create_table "price_line_blocks", force: :cascade do |t| @@ -2453,6 +2457,7 @@ ActiveRecord::Schema.define(version: 2021_10_18_142636) do t.boolean "imported", default: false t.date "validation_date" t.string "cc_state" + t.integer "package_number" t.index ["p_customer_id"], name: "index_price_line_blocks_on_p_customer_id" end @@ -3007,6 +3012,12 @@ ActiveRecord::Schema.define(version: 2021_10_18_142636) do t.index ["accounting_zone_id"], name: "index_tva_rates_on_accounting_zone_id" end + create_table "tva_types", force: :cascade do |t| + t.string "name" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + end + create_table "tvable_tva_rates", force: :cascade do |t| t.integer "tvable_id" t.string "tvable_type" diff --git a/test/fixtures/tva_types.yml b/test/fixtures/tva_types.yml new file mode 100644 index 0000000..5181636 --- /dev/null +++ b/test/fixtures/tva_types.yml @@ -0,0 +1,11 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +# This model initially had no columns defined. If you add columns to the +# model remove the '{}' from the fixture names and add the columns immediately +# below each fixture, per the syntax in the comments below +# +one: {} +# column: value +# +two: {} +# column: value diff --git a/test/models/tva_type_test.rb b/test/models/tva_type_test.rb new file mode 100644 index 0000000..18c29eb --- /dev/null +++ b/test/models/tva_type_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class TvaTypeTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end