diff --git a/Gemfile b/Gemfile index 83e134b..a1ce351 100644 --- a/Gemfile +++ b/Gemfile @@ -106,3 +106,5 @@ gem "tiny_tds", "1.3.0" gem 'axlsx', '3.0.0.pre' gem 'axlsx_rails' + +gem 'iban-tools' diff --git a/app/assets/stylesheets/public.scss b/app/assets/stylesheets/public.scss index 47e48c8..5491bc2 100644 --- a/app/assets/stylesheets/public.scss +++ b/app/assets/stylesheets/public.scss @@ -1 +1,4 @@ @import "vendor/flipclock"; +@import "bootstrap"; + +@import "fontawesome/font-awesome"; \ No newline at end of file diff --git a/app/controllers/admin/m_odr_brands_controller.rb b/app/controllers/admin/m_odr_brands_controller.rb new file mode 100644 index 0000000..4af2425 --- /dev/null +++ b/app/controllers/admin/m_odr_brands_controller.rb @@ -0,0 +1,65 @@ +# -*- encoding : utf-8 -*- + +class Admin::MOdrBrandsController < ApplicationController + layout "admin" + before_action :auth_admin + + before_action :admin_space + + def admin_space + @admin_space = "default" + end + + def index + @m_odr_brands = MOdrBrand.order(:name).all + + end + + def show + @m_odr_brand = MOdrBrand.find(params[:id]) + + end + + def new + @m_odr_brand = MOdrBrand.new + + end + + def edit + @m_odr_brand = MOdrBrand.find(params[:id]) + + end + + def create + @m_odr_brand = MOdrBrand.new(params.require(:m_odr_brand).permit!) + + if @m_odr_brand.save + + else + render action: "new" + + end + + end + + + def update + @m_odr_brand = MOdrBrand.find(params[:id]) + + + if @m_odr_brand.update_attributes(params.require(:m_odr_brand).permit!) + + else + render action: "edit" + + end + + end + + + def destroy + @m_odr_brand = MOdrBrand.find(params[:id]) + @m_odr_brand.destroy + + end +end diff --git a/app/controllers/admin/m_odr_file_types_controller.rb b/app/controllers/admin/m_odr_file_types_controller.rb new file mode 100644 index 0000000..4a3c4b0 --- /dev/null +++ b/app/controllers/admin/m_odr_file_types_controller.rb @@ -0,0 +1,65 @@ +# -*- encoding : utf-8 -*- + +class Admin::MOdrFileTypesController < ApplicationController + layout "admin" + before_action :auth_admin + + before_action :admin_space + + def admin_space + @admin_space = "default" + end + + def index + @m_odr_file_types = MOdrFileType.order(:name).all + + end + + def show + @m_odr_file_type = MOdrFileType.find(params[:id]) + + end + + def new + @m_odr_file_type = MOdrFileType.new + + end + + def edit + @m_odr_file_type = MOdrFileType.find(params[:id]) + + end + + def create + @m_odr_file_type = MOdrFileType.new(params.require(:m_odr_file_type).permit!) + + if @m_odr_file_type.save + + else + render action: "new" + + end + + end + + + def update + @m_odr_file_type = MOdrFileType.find(params[:id]) + + + if @m_odr_file_type.update_attributes(params.require(:m_odr_file_type).permit!) + + else + render action: "edit" + + end + + end + + + def destroy + @m_odr_file_type = MOdrFileType.find(params[:id]) + @m_odr_file_type.destroy + + end +end diff --git a/app/controllers/admin/m_odr_files_controller.rb b/app/controllers/admin/m_odr_files_controller.rb new file mode 100644 index 0000000..b2c2133 --- /dev/null +++ b/app/controllers/admin/m_odr_files_controller.rb @@ -0,0 +1,65 @@ +# -*- encoding : utf-8 -*- + +class Admin::MOdrFilesController < ApplicationController + layout "admin" + before_action :auth_admin + + before_action :admin_space + + def admin_space + @admin_space = "default" + end + + def index + @m_odr_files = MOdrFile.order(:name).all + + end + + def show + @m_odr_file = MOdrFile.find(params[:id]) + + end + + def new + @m_odr_file = MOdrFile.new + + end + + def edit + @m_odr_file = MOdrFile.find(params[:id]) + + end + + def create + @m_odr_file = MOdrFile.new(params.require(:m_odr_file).permit!) + + if @m_odr_file.save + + else + render action: "new" + + end + + end + + + def update + @m_odr_file = MOdrFile.find(params[:id]) + + + if @m_odr_file.update_attributes(params.require(:m_odr_file).permit!) + + else + render action: "edit" + + end + + end + + + def destroy + @m_odr_file = MOdrFile.find(params[:id]) + @m_odr_file.destroy + + end +end diff --git a/app/controllers/admin/m_odr_places_controller.rb b/app/controllers/admin/m_odr_places_controller.rb new file mode 100644 index 0000000..27608b7 --- /dev/null +++ b/app/controllers/admin/m_odr_places_controller.rb @@ -0,0 +1,65 @@ +# -*- encoding : utf-8 -*- + +class Admin::MOdrPlacesController < ApplicationController + layout "admin" + before_action :auth_admin + + before_action :admin_space + + def admin_space + @admin_space = "default" + end + + def index + @m_odr_places = MOdrPlace.order(:name).all + + end + + def show + @m_odr_place = MOdrPlace.find(params[:id]) + + end + + def new + @m_odr_place = MOdrPlace.new + + end + + def edit + @m_odr_place = MOdrPlace.find(params[:id]) + + end + + def create + @m_odr_place = MOdrPlace.new(params.require(:m_odr_place).permit!) + + if @m_odr_place.save + + else + render action: "new" + + end + + end + + + def update + @m_odr_place = MOdrPlace.find(params[:id]) + + + if @m_odr_place.update_attributes(params.require(:m_odr_place).permit!) + + else + render action: "edit" + + end + + end + + + def destroy + @m_odr_place = MOdrPlace.find(params[:id]) + @m_odr_place.destroy + + end +end diff --git a/app/controllers/admin/m_odr_product_remises_controller.rb b/app/controllers/admin/m_odr_product_remises_controller.rb new file mode 100644 index 0000000..c0c01d3 --- /dev/null +++ b/app/controllers/admin/m_odr_product_remises_controller.rb @@ -0,0 +1,65 @@ +# -*- encoding : utf-8 -*- + +class Admin::MOdrProductRemisesController < ApplicationController + layout "admin" + before_action :auth_admin + + before_action :admin_space + + def admin_space + @admin_space = "default" + end + + def index + @m_odr_product_remises = MOdrProductRemise.order(:name).all + + end + + def show + @m_odr_product_remise = MOdrProductRemise.find(params[:id]) + + end + + def new + @m_odr_product_remise = MOdrProductRemise.new + + end + + def edit + @m_odr_product_remise = MOdrProductRemise.find(params[:id]) + + end + + def create + @m_odr_product_remise = MOdrProductRemise.new(params.require(:m_odr_product_remise).permit!) + + if @m_odr_product_remise.save + + else + render action: "new" + + end + + end + + + def update + @m_odr_product_remise = MOdrProductRemise.find(params[:id]) + + + if @m_odr_product_remise.update_attributes(params.require(:m_odr_product_remise).permit!) + + else + render action: "edit" + + end + + end + + + def destroy + @m_odr_product_remise = MOdrProductRemise.find(params[:id]) + @m_odr_product_remise.destroy + + end +end diff --git a/app/controllers/admin/m_odr_products_controller.rb b/app/controllers/admin/m_odr_products_controller.rb new file mode 100644 index 0000000..694b415 --- /dev/null +++ b/app/controllers/admin/m_odr_products_controller.rb @@ -0,0 +1,65 @@ +# -*- encoding : utf-8 -*- + +class Admin::MOdrProductsController < ApplicationController + layout "admin" + before_action :auth_admin + + before_action :admin_space + + def admin_space + @admin_space = "default" + end + + def index + @m_odr_products = MOdrProduct.order(:name).all + + end + + def show + @m_odr_product = MOdrProduct.find(params[:id]) + + end + + def new + @m_odr_product = MOdrProduct.new + + end + + def edit + @m_odr_product = MOdrProduct.find(params[:id]) + + end + + def create + @m_odr_product = MOdrProduct.new(params.require(:m_odr_product).permit!) + + if @m_odr_product.save + + else + render action: "new" + + end + + end + + + def update + @m_odr_product = MOdrProduct.find(params[:id]) + + + if @m_odr_product.update_attributes(params.require(:m_odr_product).permit!) + + else + render action: "edit" + + end + + end + + + def destroy + @m_odr_product = MOdrProduct.find(params[:id]) + @m_odr_product.destroy + + end +end diff --git a/app/controllers/admin/m_odr_rep_ribs_controller.rb b/app/controllers/admin/m_odr_rep_ribs_controller.rb new file mode 100644 index 0000000..21f8324 --- /dev/null +++ b/app/controllers/admin/m_odr_rep_ribs_controller.rb @@ -0,0 +1,65 @@ +# -*- encoding : utf-8 -*- + +class Admin::MOdrRepRibsController < ApplicationController + layout "admin" + before_action :auth_admin + + before_action :admin_space + + def admin_space + @admin_space = "default" + end + + def index + @m_odr_rep_ribs = MOdrRepRib.order(:name).all + + end + + def show + @m_odr_rep_rib = MOdrRepRib.find(params[:id]) + + end + + def new + @m_odr_rep_rib = MOdrRepRib.new + + end + + def edit + @m_odr_rep_rib = MOdrRepRib.find(params[:id]) + + end + + def create + @m_odr_rep_rib = MOdrRepRib.new(params.require(:m_odr_rep_rib).permit!) + + if @m_odr_rep_rib.save + + else + render action: "new" + + end + + end + + + def update + @m_odr_rep_rib = MOdrRepRib.find(params[:id]) + + + if @m_odr_rep_rib.update_attributes(params.require(:m_odr_rep_rib).permit!) + + else + render action: "edit" + + end + + end + + + def destroy + @m_odr_rep_rib = MOdrRepRib.find(params[:id]) + @m_odr_rep_rib.destroy + + end +end diff --git a/app/controllers/admin/m_odr_reps_controller.rb b/app/controllers/admin/m_odr_reps_controller.rb new file mode 100644 index 0000000..2a89d76 --- /dev/null +++ b/app/controllers/admin/m_odr_reps_controller.rb @@ -0,0 +1,65 @@ +# -*- encoding : utf-8 -*- + +class Admin::MOdrRepsController < ApplicationController + layout "admin" + before_action :auth_admin + + before_action :admin_space + + def admin_space + @admin_space = "default" + end + + def index + @m_odr_reps = MOdrRep.order(:name).all + + end + + def show + @m_odr_rep = MOdrRep.find(params[:id]) + + end + + def new + @m_odr_rep = MOdrRep.new + + end + + def edit + @m_odr_rep = MOdrRep.find(params[:id]) + + end + + def create + @m_odr_rep = MOdrRep.new(params.require(:m_odr_rep).permit!) + + if @m_odr_rep.save + + else + render action: "new" + + end + + end + + + def update + @m_odr_rep = MOdrRep.find(params[:id]) + + + if @m_odr_rep.update_attributes(params.require(:m_odr_rep).permit!) + + else + render action: "edit" + + end + + end + + + def destroy + @m_odr_rep = MOdrRep.find(params[:id]) + @m_odr_rep.destroy + + end +end diff --git a/app/controllers/admin/m_odr_trackers_controller.rb b/app/controllers/admin/m_odr_trackers_controller.rb new file mode 100644 index 0000000..4b8a81a --- /dev/null +++ b/app/controllers/admin/m_odr_trackers_controller.rb @@ -0,0 +1,65 @@ +# -*- encoding : utf-8 -*- + +class Admin::MOdrTrackersController < ApplicationController + layout "admin" + before_action :auth_admin + + before_action :admin_space + + def admin_space + @admin_space = "default" + end + + def index + @m_odr_trackers = MOdrTracker.order(:name).all + + end + + def show + @m_odr_tracker = MOdrTracker.find(params[:id]) + + end + + def new + @m_odr_tracker = MOdrTracker.new + + end + + def edit + @m_odr_tracker = MOdrTracker.find(params[:id]) + + end + + def create + @m_odr_tracker = MOdrTracker.new(params.require(:m_odr_tracker).permit!) + + if @m_odr_tracker.save + + else + render action: "new" + + end + + end + + + def update + @m_odr_tracker = MOdrTracker.find(params[:id]) + + + if @m_odr_tracker.update_attributes(params.require(:m_odr_tracker).permit!) + + else + render action: "edit" + + end + + end + + + def destroy + @m_odr_tracker = MOdrTracker.find(params[:id]) + @m_odr_tracker.destroy + + end +end diff --git a/app/controllers/admin/odr_trackers_controller.rb b/app/controllers/admin/odr_trackers_controller.rb new file mode 100644 index 0000000..c11fa09 --- /dev/null +++ b/app/controllers/admin/odr_trackers_controller.rb @@ -0,0 +1,65 @@ +# -*- encoding : utf-8 -*- + +class Admin::OdrTrackersController < ApplicationController + layout "admin" + before_action :auth_admin + + before_action :admin_space + + def admin_space + @admin_space = "default" + end + + def index + @odr_trackers = OdrTracker.order(:name).all + + end + + def show + @odr_tracker = OdrTracker.find(params[:id]) + + end + + def new + @odr_tracker = OdrTracker.new + + end + + def edit + @odr_tracker = OdrTracker.find(params[:id]) + + end + + def create + @odr_tracker = OdrTracker.new(params.require(:odr_tracker).permit!) + + if @odr_tracker.save + + else + render action: "new" + + end + + end + + + def update + @odr_tracker = OdrTracker.find(params[:id]) + + + if @odr_tracker.update_attributes(params.require(:odr_tracker).permit!) + + else + render action: "edit" + + end + + end + + + def destroy + @odr_tracker = OdrTracker.find(params[:id]) + @odr_tracker.destroy + + end +end diff --git a/app/controllers/public/m_odr_reps_controller.rb b/app/controllers/public/m_odr_reps_controller.rb new file mode 100644 index 0000000..fcce7ba --- /dev/null +++ b/app/controllers/public/m_odr_reps_controller.rb @@ -0,0 +1,63 @@ +# -*- encoding : utf-8 -*- + +class Public::MOdrRepsController < ApplicationController + layout "public" + + + def new + @m_odr_rep = MOdrRep.new + + end + + def edit + @m_odr_rep = MOdrRep.find(params[:id]) + + end + + def create + @m_odr_rep = MOdrRep.new(params.require(:m_odr_rep).permit!) + @m_odr = @m_odr_rep.m_odr + + if @m_odr_rep.save + if mail_type = @m_odr.mail_types.where(:slug => "confirmation-inscription").first + + mail = GeneralMails.general(:fr, mail_type, @m_odr_rep.particulars.first.email, {:arguments => {:numero_avoir => ""}}) + mail.deliver + end + + + redirect_to thank_public_m_odr_rep_path(@m_odr_rep) + + + + else + render :template => "public/m_odrs/show" + + end + + end + + + def thank + @m_odr_rep = MOdrRep.find(params[:id]) + @m_odr = @m_odr_rep.m_odr + + + + end + + def update + @m_odr_rep = MOdrRep.find(params[:id]) + + + if @m_odr_rep.update_attributes(params.require(:m_odr_rep).permit!) + + else + render action: "edit" + + end + + end + + +end diff --git a/app/helpers/mail_helper.rb b/app/helpers/mail_helper.rb index c26dd7c..eb4c0e6 100644 --- a/app/helpers/mail_helper.rb +++ b/app/helpers/mail_helper.rb @@ -1,11 +1,11 @@ # -*- encoding : utf-8 -*- module MailHelper - def mail_content(slug, lang, arguments = {}) + def mail_content(lang, mail_content, arguments = {}) lang_site = LangSite.find_by_slug(lang) - mail_content = MailContent.joins(:mail_type).where(:lang_site_id => lang_site.id, :mail_types => { :slug => slug}).first + #mail_content = MailContent.joins(:mail_type).where(:lang_site_id => lang_site.id, :mail_types => { :slug => slug}).first @new_site = true if mail_content.content_type == "blocs" and mail_content.block @@ -28,7 +28,7 @@ module MailHelper arguments.each_pair do |key, value| - r = r.gsub(/\[#{key}\]/, value.to_s) + r = r.gsub(/\[#{key.to_s}\]/, value.to_s) end diff --git a/app/mailers/general_mails.rb b/app/mailers/general_mails.rb new file mode 100644 index 0000000..624b64c --- /dev/null +++ b/app/mailers/general_mails.rb @@ -0,0 +1,55 @@ +# -*- encoding : utf-8 -*- +class GeneralMails < ActionMailer::Base + add_template_helper(MailHelper) + + layout 'mail' + + default from: "Market-Inn " + + + def general(lang_slug, mail_type, email, options = {}) + @options = options + + @mail_type = mail_type + + @lang = LangSite.find_by_slug(lang_slug.to_s) + + @mail_content = @mail_type.mail_contents.where(:lang_site_id => @lang.id).first + + subject = @mail_content.subject + + @arguments = @options[:arguments] + + @ccis = @options[:ccis] || [] + + + + @from = @options[:from] if @options[:from] + + if @from + mail(:to => email, :subject => subject, :bcc => @ccis.join(";"), :from => @from) + else + mail(:to => email, :subject => subject, :bcc => @ccis.join(";")) + end + + end + + def admin(email, subject, content, options = {}) + @options = options + + @content = content + @arguments = @options[:arguments] + + @ccis = @options[:ccis] || [] + + + @from_admin = @options[:from_admin] if @options[:from_admin] + + mail(:to => email, :subject => "Notification ADMIN : "+subject.to_s, :bcc => @ccis.join(";")) + + end + + + + +end diff --git a/app/models/m_odr.rb b/app/models/m_odr.rb index 14e680e..5437591 100644 --- a/app/models/m_odr.rb +++ b/app/models/m_odr.rb @@ -19,4 +19,29 @@ class MOdr < ApplicationRecord validates :public_end, :presence => true + has_many :m_odr_file_types, :dependent => :destroy + accepts_nested_attributes_for :m_odr_file_types, :allow_destroy => true + + has_many :m_odr_brands, :dependent => :destroy + accepts_nested_attributes_for :m_odr_brands, :allow_destroy => true + + has_many :m_odr_products, :dependent => :destroy + accepts_nested_attributes_for :m_odr_products, :allow_destroy => true + + has_many :m_odr_places, :dependent => :destroy + accepts_nested_attributes_for :m_odr_places, :allow_destroy => true + + has_many :m_odr_trackers, :dependent => :destroy + accepts_nested_attributes_for :m_odr_trackers, :allow_destroy => true + + has_many :mail_types, :dependent => :destroy + accepts_nested_attributes_for :mail_types, :allow_destroy => true + + + + + has_many :m_odr_reps, :dependent => :destroy + + + end diff --git a/app/models/m_odr_brand.rb b/app/models/m_odr_brand.rb new file mode 100644 index 0000000..442f67d --- /dev/null +++ b/app/models/m_odr_brand.rb @@ -0,0 +1,3 @@ +class MOdrBrand < ApplicationRecord + belongs_to :m_odr +end diff --git a/app/models/m_odr_file.rb b/app/models/m_odr_file.rb new file mode 100644 index 0000000..477664e --- /dev/null +++ b/app/models/m_odr_file.rb @@ -0,0 +1,21 @@ +class MOdrFile < ApplicationRecord + belongs_to :m_odr_rep + belongs_to :m_odr_file_type + + mount_uploader :file, OdrUploader + + validates :file, :presence => true + + + before_create { generate_token() } + + def generate_token() + begin + self[:token] = SecureRandom.urlsafe_base64 + end while MOdrFile.exists?(:token => self[:token]) + end + + + + +end diff --git a/app/models/m_odr_file_type.rb b/app/models/m_odr_file_type.rb new file mode 100644 index 0000000..c2fddc7 --- /dev/null +++ b/app/models/m_odr_file_type.rb @@ -0,0 +1,2 @@ +class MOdrFileType < ApplicationRecord +end diff --git a/app/models/m_odr_place.rb b/app/models/m_odr_place.rb new file mode 100644 index 0000000..32a3f4b --- /dev/null +++ b/app/models/m_odr_place.rb @@ -0,0 +1,3 @@ +class MOdrPlace < ApplicationRecord + belongs_to :m_odr +end diff --git a/app/models/m_odr_product.rb b/app/models/m_odr_product.rb new file mode 100644 index 0000000..17dbbf7 --- /dev/null +++ b/app/models/m_odr_product.rb @@ -0,0 +1,20 @@ +class MOdrProduct < ApplicationRecord + belongs_to :m_odr_brand + + + has_many :m_odr_product_remises, :dependent => :destroy + accepts_nested_attributes_for :m_odr_product_remises, :allow_destroy => true + + + def member_label + if self.m_odr_brand + "#{self.m_odr_brand.name} - #{self.name}" + + else + self.name + + end + + end + +end diff --git a/app/models/m_odr_product_remise.rb b/app/models/m_odr_product_remise.rb new file mode 100644 index 0000000..105a1e0 --- /dev/null +++ b/app/models/m_odr_product_remise.rb @@ -0,0 +1,3 @@ +class MOdrProductRemise < ApplicationRecord + belongs_to :m_odr_product +end diff --git a/app/models/m_odr_rep.rb b/app/models/m_odr_rep.rb new file mode 100644 index 0000000..3d827df --- /dev/null +++ b/app/models/m_odr_rep.rb @@ -0,0 +1,49 @@ +class MOdrRep < ApplicationRecord + belongs_to :m_odr + + + has_many :particulars, :dependent => :destroy + accepts_nested_attributes_for :particulars, :allow_destroy => true + + + + has_many :m_odr_rep_ribs, :dependent => :destroy + accepts_nested_attributes_for :m_odr_rep_ribs, :allow_destroy => true + + belongs_to :m_odr_product + + belongs_to :m_odr_place + + has_many :m_odr_files, :dependent => :destroy + accepts_nested_attributes_for :m_odr_files, :allow_destroy => true + + + + validates :qte, :presence => true + validates :m_odr_product_id, :presence => true + validates :m_odr_place_id, :presence => true + + belongs_to :m_odr_tracker + + + attr_accessor :t + + before_validation do + if self.t.to_s != "" + self.m_odr_tracker = MOdrTracker.where(:token => self.t).first + end + + end + + + + + before_create { generate_token() } + + def generate_token() + begin + self[:token] = SecureRandom.urlsafe_base64 + end while MOdrRep.exists?(:token => self[:token]) + end + +end diff --git a/app/models/m_odr_rep_rib.rb b/app/models/m_odr_rep_rib.rb new file mode 100644 index 0000000..ccf8a68 --- /dev/null +++ b/app/models/m_odr_rep_rib.rb @@ -0,0 +1,13 @@ +class MOdrRepRib < ApplicationRecord + belongs_to :admin + + belongs_to :m_odr_rep + + has_one :m_odr, :through => :m_odr_rep + + validates :bic, :presence => true, length: { in: 8..11 } + + validates :iban, :presence => true + + validates_with IbanValidator +end diff --git a/app/models/m_odr_tracker.rb b/app/models/m_odr_tracker.rb new file mode 100644 index 0000000..0829a43 --- /dev/null +++ b/app/models/m_odr_tracker.rb @@ -0,0 +1,15 @@ +class MOdrTracker < ApplicationRecord + belongs_to :m_odr + + + + before_create { generate_token() } + + def generate_token() + begin + self[:token] = SecureRandom.hex(2) + end while MOdrRep.exists?(:token => self[:token]) + end + + +end diff --git a/app/models/mail_type.rb b/app/models/mail_type.rb index 17ccbec..e65e801 100644 --- a/app/models/mail_type.rb +++ b/app/models/mail_type.rb @@ -2,4 +2,6 @@ class MailType < ApplicationRecord has_many :mail_contents belongs_to :mail_type_reference, :class_name => "MailType" + + accepts_nested_attributes_for :mail_contents end diff --git a/app/models/particular.rb b/app/models/particular.rb index 455dabd..0604a02 100644 --- a/app/models/particular.rb +++ b/app/models/particular.rb @@ -7,25 +7,56 @@ class Particular < ApplicationRecord has_many :open_ranges, :through => :open_range_elements belongs_to :owner, :polymorphic => true - #validates :civilite, :presence => true, :if => :force_validation - #validates :name, :presence => true, :if => :force_validation - #validates :firstname, :presence => true, :if => :force_validation + validates :civilite, :presence => true, :if => :force_validate_name + validates :name, :presence => true, :if => :force_validate_name + validates :firstname, :presence => true, :if => :force_validate_name validates :email, :presence => true, :format => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i, :if => :force_email_validation validates :address_2, :presence => true, :if => :force_validation validates :cp, :presence => true, :if => :force_validation validates :city, :presence => true, :if => :force_validation validates :country, :presence => true, :if => :force_validation - #validates :tel, :presence => true, :if => :force_validation - validates :organisation, :presence => true, :if => :force_validation - attr_accessor :validate_email, :skip_email + validates :tel, :presence => true, :if => :force_validate_tel + validates :organisation, :presence => true, :if => :force_organisation_validation + attr_accessor :validate_email, :skip_email, :validate_name, :validate_tel, :skip_organisation belongs_to :particular_ref, :class_name => "Particular" def validate_pro true if self.force_validation and self.pro end - def force_email_validation - false #true if (self.validate_email or self.force_validation) and !skip_email + + def force_organisation_validation + if self.force_validation and !self.skip_organisation + true + else + false + end end + + + def force_email_validation + if self.validate_email and !skip_email + true + else + false + end + end + + def force_validate_name + if self.validate_name + true + else + false + end + end + + def force_validate_tel + if self.validate_tel + true + else + false + end + end + def force_validation diff --git a/app/uploaders/odr_uploader.rb b/app/uploaders/odr_uploader.rb new file mode 100644 index 0000000..bb78902 --- /dev/null +++ b/app/uploaders/odr_uploader.rb @@ -0,0 +1,58 @@ +# -*- encoding : utf-8 -*- + +class OdrUploader < CarrierWave::Uploader::Base + + # Include RMagick or ImageScience support: + # include CarrierWave::RMagick + # include CarrierWave::ImageScience + + # Choose what kind of storage to use for this uploader: + storage :file + # storage :s3 + + # Override the directory where uploaded files will be stored. + # This is a sensible default for uploaders that are meant to be mounted: + def store_dir + "#{Rails.root}/private_medias/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" + end + + def url + "/download_odr_file/#{model.id}" + + end + + # Provide a default URL as a default if there hasn't been a file uploaded: + def default_url + "/images/fallback/" + [version_name, "default.png"].compact.join('_') + end + + # Process files as they are uploaded: + # process :scale => [200, 300] + # + # def scale(width, height) + # # do something + # end + + # Create different versions of your uploaded files: + # version :thumb do + # process :scale => [50, 50] + # end + + # Add a white list of extensions which are allowed to be uploaded. + # For images you might use something like this: + # def extension_white_list + # %w(jpg jpeg gif png) + # end + + # Override the filename of the uploaded files: + # def filename + # "something.jpg" if original_filename + # end + + def filename + File.basename(original_filename, File.extname(original_filename)).to_s.to_slug + File.extname(original_filename).to_s if original_filename + + + end + +end diff --git a/app/validators/iban_validator.rb b/app/validators/iban_validator.rb new file mode 100644 index 0000000..f7f9c28 --- /dev/null +++ b/app/validators/iban_validator.rb @@ -0,0 +1,9 @@ +require 'iban-tools' + +class IbanValidator < ActiveModel::Validator + def validate(record) + unless IBANTools::IBAN.valid?(record.iban) + record.errors.add :iban, record.errors.generate_message(:iban, :invalid) + end + end +end \ No newline at end of file diff --git a/app/views/admin/m_odr_brands/_form.html.haml b/app/views/admin/m_odr_brands/_form.html.haml new file mode 100644 index 0000000..6adec98 --- /dev/null +++ b/app/views/admin/m_odr_brands/_form.html.haml @@ -0,0 +1,15 @@ +.m_odr_brand_form.field + = form.input :name, :label => "Nom :" + Dates si différentes des dates générales : + .row.qi_cancel_margins + .col-sm-4 + = form.input :start_at, :label => "Date de début :" , :as => :date + .col-sm-4 + = form.input :end_at, :label => "Date de fin :" , :as => :date + .col-sm-4 + = form.input :public_end, :label => "Date de fin des envois :" , :as => :date + + + + + =link_to_remove_fields ic(:"trash-o"), form \ No newline at end of file diff --git a/app/views/admin/m_odr_brands/_m_odr_brand.html.haml b/app/views/admin/m_odr_brands/_m_odr_brand.html.haml new file mode 100644 index 0000000..c2f89f5 --- /dev/null +++ b/app/views/admin/m_odr_brands/_m_odr_brand.html.haml @@ -0,0 +1,11 @@ +%tr#m_odr_brand_row{:id => m_odr_brand.id} + %td= m_odr_brand.name + %td= m_odr_brand.ref + %td= m_odr_brand.image_file_id + %td= m_odr_brand.m_odr_id + + %td.actions + = link_to i(:"trash-o"), [:admin, m_odr_brand], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet enregistrement ? ' } , :remote => true + = link_to i(:pencil), edit_admin_m_odr_brand_path(m_odr_brand), :remote => true + = link_to i(:eye), admin_m_odr_brand_path(m_odr_brand), :remote => true + diff --git a/app/views/admin/m_odr_brands/create.js.erb b/app/views/admin/m_odr_brands/create.js.erb new file mode 100644 index 0000000..29c8c80 --- /dev/null +++ b/app/views/admin/m_odr_brands/create.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_brands_rows').prepend("<%= escape_javascript(render(@m_odr_brand))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_brands/destroy.js.erb b/app/views/admin/m_odr_brands/destroy.js.erb new file mode 100644 index 0000000..f06ea64 --- /dev/null +++ b/app/views/admin/m_odr_brands/destroy.js.erb @@ -0,0 +1 @@ +$('#m_odr_brand_<%= @m_odr_brand.id %>').remove(); \ No newline at end of file diff --git a/app/views/admin/m_odr_brands/edit.js.erb b/app/views/admin/m_odr_brands/edit.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_brands/edit.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_brands/index.html.haml b/app/views/admin/m_odr_brands/index.html.haml new file mode 100644 index 0000000..3fe446d --- /dev/null +++ b/app/views/admin/m_odr_brands/index.html.haml @@ -0,0 +1,23 @@ +.qi_header + .right= link_to 'Ajouter ', new_admin_m_odr_brand_path(), :class => "btn btn-primary", :remote => true + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + %table.table + %tr + %th name + %th ref + %th image_file_id + %th m_odr_id + %th.actions + + + %tbody#m_odr_brands_rows + =render @m_odr_brands + + \ No newline at end of file diff --git a/app/views/admin/m_odr_brands/new.js.erb b/app/views/admin/m_odr_brands/new.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_brands/new.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_brands/show.html.haml b/app/views/admin/m_odr_brands/show.html.haml new file mode 100644 index 0000000..d7cfcb2 --- /dev/null +++ b/app/views/admin/m_odr_brands/show.html.haml @@ -0,0 +1,10 @@ +.qi_header + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + =debug @m_odr_brand \ No newline at end of file diff --git a/app/views/admin/m_odr_brands/update.js.erb b/app/views/admin/m_odr_brands/update.js.erb new file mode 100644 index 0000000..913bb85 --- /dev/null +++ b/app/views/admin/m_odr_brands/update.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_brand_row_<%= @m_odr_brand.id %>').replaceWith("<%= escape_javascript(render(@m_odr_brand))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_file_types/_form.html.haml b/app/views/admin/m_odr_file_types/_form.html.haml new file mode 100644 index 0000000..bfe7e49 --- /dev/null +++ b/app/views/admin/m_odr_file_types/_form.html.haml @@ -0,0 +1,7 @@ +.m_odr_file_type_form.field + =form.input :name, :label => "Nom :" + =form.input :need_file, :label => "Nécessaire ?" + + =link_to_remove_fields ic(:"trash-o"), form + + \ No newline at end of file diff --git a/app/views/admin/m_odr_file_types/_m_odr_file_type.html.haml b/app/views/admin/m_odr_file_types/_m_odr_file_type.html.haml new file mode 100644 index 0000000..38a64f8 --- /dev/null +++ b/app/views/admin/m_odr_file_types/_m_odr_file_type.html.haml @@ -0,0 +1,9 @@ +%tr#m_odr_file_type_row{:id => m_odr_file_type.id} + %td= m_odr_file_type.name + %td= m_odr_file_type.needed + + %td.actions + = link_to i(:"trash-o"), [:admin, m_odr_file_type], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet enregistrement ? ' } , :remote => true + = link_to i(:pencil), edit_admin_m_odr_file_type_path(m_odr_file_type), :remote => true + = link_to i(:eye), admin_m_odr_file_type_path(m_odr_file_type), :remote => true + diff --git a/app/views/admin/m_odr_file_types/create.js.erb b/app/views/admin/m_odr_file_types/create.js.erb new file mode 100644 index 0000000..f226c8e --- /dev/null +++ b/app/views/admin/m_odr_file_types/create.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_file_types_rows').prepend("<%= escape_javascript(render(@m_odr_file_type))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_file_types/destroy.js.erb b/app/views/admin/m_odr_file_types/destroy.js.erb new file mode 100644 index 0000000..2691295 --- /dev/null +++ b/app/views/admin/m_odr_file_types/destroy.js.erb @@ -0,0 +1 @@ +$('#m_odr_file_type_<%= @m_odr_file_type.id %>').remove(); \ No newline at end of file diff --git a/app/views/admin/m_odr_file_types/edit.js.erb b/app/views/admin/m_odr_file_types/edit.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_file_types/edit.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_file_types/index.html.haml b/app/views/admin/m_odr_file_types/index.html.haml new file mode 100644 index 0000000..4ea25f7 --- /dev/null +++ b/app/views/admin/m_odr_file_types/index.html.haml @@ -0,0 +1,21 @@ +.qi_header + .right= link_to 'Ajouter ', new_admin_m_odr_file_type_path(), :class => "btn btn-primary", :remote => true + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + %table.table + %tr + %th name + %th needed + %th.actions + + + %tbody#m_odr_file_types_rows + =render @m_odr_file_types + + \ No newline at end of file diff --git a/app/views/admin/m_odr_file_types/new.js.erb b/app/views/admin/m_odr_file_types/new.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_file_types/new.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_file_types/show.html.haml b/app/views/admin/m_odr_file_types/show.html.haml new file mode 100644 index 0000000..6ea2ede --- /dev/null +++ b/app/views/admin/m_odr_file_types/show.html.haml @@ -0,0 +1,10 @@ +.qi_header + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + =debug @m_odr_file_type \ No newline at end of file diff --git a/app/views/admin/m_odr_file_types/update.js.erb b/app/views/admin/m_odr_file_types/update.js.erb new file mode 100644 index 0000000..667c233 --- /dev/null +++ b/app/views/admin/m_odr_file_types/update.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_file_type_row_<%= @m_odr_file_type.id %>').replaceWith("<%= escape_javascript(render(@m_odr_file_type))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_files/_form.html.haml b/app/views/admin/m_odr_files/_form.html.haml new file mode 100644 index 0000000..8a6349c --- /dev/null +++ b/app/views/admin/m_odr_files/_form.html.haml @@ -0,0 +1,17 @@ +=semantic_form_for [:admin, @m_odr_file], :remote => true do |f| + + .content + =f.inputs do + = f.input :file, :label => "file :" + = f.input :m_odr, :label => "m_odr :" + = f.input :action_date, :label => "action_date :" + = f.input :notes, :label => "notes :" + = f.input :name, :label => "name :" + = f.input :m_odr_file_type, :label => "m_odr_file_type :" + + + + + + .actions=f.submit "sauvegarder", :class => "btn btn-primary" + \ No newline at end of file diff --git a/app/views/admin/m_odr_files/_m_odr_file.html.haml b/app/views/admin/m_odr_files/_m_odr_file.html.haml new file mode 100644 index 0000000..3233883 --- /dev/null +++ b/app/views/admin/m_odr_files/_m_odr_file.html.haml @@ -0,0 +1,13 @@ +%tr#m_odr_file_row{:id => m_odr_file.id} + %td= m_odr_file.file + %td= m_odr_file.m_odr_id + %td= m_odr_file.action_date + %td= m_odr_file.notes + %td= m_odr_file.name + %td= m_odr_file.m_odr_file_type_id + + %td.actions + = link_to i(:"trash-o"), [:admin, m_odr_file], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet enregistrement ? ' } , :remote => true + = link_to i(:pencil), edit_admin_m_odr_file_path(m_odr_file), :remote => true + = link_to i(:eye), admin_m_odr_file_path(m_odr_file), :remote => true + diff --git a/app/views/admin/m_odr_files/create.js.erb b/app/views/admin/m_odr_files/create.js.erb new file mode 100644 index 0000000..cd9da23 --- /dev/null +++ b/app/views/admin/m_odr_files/create.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_files_rows').prepend("<%= escape_javascript(render(@m_odr_file))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_files/destroy.js.erb b/app/views/admin/m_odr_files/destroy.js.erb new file mode 100644 index 0000000..c61bd60 --- /dev/null +++ b/app/views/admin/m_odr_files/destroy.js.erb @@ -0,0 +1 @@ +$('#m_odr_file_<%= @m_odr_file.id %>').remove(); \ No newline at end of file diff --git a/app/views/admin/m_odr_files/edit.js.erb b/app/views/admin/m_odr_files/edit.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_files/edit.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_files/index.html.haml b/app/views/admin/m_odr_files/index.html.haml new file mode 100644 index 0000000..6b7d0d4 --- /dev/null +++ b/app/views/admin/m_odr_files/index.html.haml @@ -0,0 +1,25 @@ +.qi_header + .right= link_to 'Ajouter ', new_admin_m_odr_file_path(), :class => "btn btn-primary", :remote => true + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + %table.table + %tr + %th file + %th m_odr_id + %th action_date + %th notes + %th name + %th m_odr_file_type_id + %th.actions + + + %tbody#m_odr_files_rows + =render @m_odr_files + + \ No newline at end of file diff --git a/app/views/admin/m_odr_files/new.js.erb b/app/views/admin/m_odr_files/new.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_files/new.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_files/show.html.haml b/app/views/admin/m_odr_files/show.html.haml new file mode 100644 index 0000000..56358f4 --- /dev/null +++ b/app/views/admin/m_odr_files/show.html.haml @@ -0,0 +1,10 @@ +.qi_header + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + =debug @m_odr_file \ No newline at end of file diff --git a/app/views/admin/m_odr_files/update.js.erb b/app/views/admin/m_odr_files/update.js.erb new file mode 100644 index 0000000..356ec52 --- /dev/null +++ b/app/views/admin/m_odr_files/update.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_file_row_<%= @m_odr_file.id %>').replaceWith("<%= escape_javascript(render(@m_odr_file))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_places/_form.html.haml b/app/views/admin/m_odr_places/_form.html.haml new file mode 100644 index 0000000..83a5383 --- /dev/null +++ b/app/views/admin/m_odr_places/_form.html.haml @@ -0,0 +1,18 @@ +.m_odr_place_form.field + + + = form.input :name, :label => "Nom du magasin :" + =# f.input :enseigne, :label => "enseigne :" + =# f.input :city, :label => "city :" + =# f.input :cp, :label => "cp :" + =# f.input :departement, :label => "departement :" + =# f.input :departement_nbr, :label => "departement_nbr :" + =# f.input :responsable, :label => "responsable :" + =# f.input :tel, :label => "tel :" + =# f.input :email, :label => "email :" + =# f.input :m_odr, :label => "m_odr :" + + =link_to_remove_fields ic(:"trash-o"), form + + + \ No newline at end of file diff --git a/app/views/admin/m_odr_places/_m_odr_place.html.haml b/app/views/admin/m_odr_places/_m_odr_place.html.haml new file mode 100644 index 0000000..b6d96d8 --- /dev/null +++ b/app/views/admin/m_odr_places/_m_odr_place.html.haml @@ -0,0 +1,17 @@ +%tr#m_odr_place_row{:id => m_odr_place.id} + %td= m_odr_place.name + %td= m_odr_place.enseigne + %td= m_odr_place.city + %td= m_odr_place.cp + %td= m_odr_place.departement + %td= m_odr_place.departement_nbr + %td= m_odr_place.responsable + %td= m_odr_place.tel + %td= m_odr_place.email + %td= m_odr_place.m_odr_id + + %td.actions + = link_to i(:"trash-o"), [:admin, m_odr_place], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet enregistrement ? ' } , :remote => true + = link_to i(:pencil), edit_admin_m_odr_place_path(m_odr_place), :remote => true + = link_to i(:eye), admin_m_odr_place_path(m_odr_place), :remote => true + diff --git a/app/views/admin/m_odr_places/create.js.erb b/app/views/admin/m_odr_places/create.js.erb new file mode 100644 index 0000000..d81d08d --- /dev/null +++ b/app/views/admin/m_odr_places/create.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_places_rows').prepend("<%= escape_javascript(render(@m_odr_place))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_places/destroy.js.erb b/app/views/admin/m_odr_places/destroy.js.erb new file mode 100644 index 0000000..1c275ba --- /dev/null +++ b/app/views/admin/m_odr_places/destroy.js.erb @@ -0,0 +1 @@ +$('#m_odr_place_<%= @m_odr_place.id %>').remove(); \ No newline at end of file diff --git a/app/views/admin/m_odr_places/edit.js.erb b/app/views/admin/m_odr_places/edit.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_places/edit.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_places/index.html.haml b/app/views/admin/m_odr_places/index.html.haml new file mode 100644 index 0000000..97c7ff0 --- /dev/null +++ b/app/views/admin/m_odr_places/index.html.haml @@ -0,0 +1,29 @@ +.qi_header + .right= link_to 'Ajouter ', new_admin_m_odr_place_path(), :class => "btn btn-primary", :remote => true + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + %table.table + %tr + %th name + %th enseigne + %th city + %th cp + %th departement + %th departement_nbr + %th responsable + %th tel + %th email + %th m_odr_id + %th.actions + + + %tbody#m_odr_places_rows + =render @m_odr_places + + \ No newline at end of file diff --git a/app/views/admin/m_odr_places/new.js.erb b/app/views/admin/m_odr_places/new.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_places/new.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_places/show.html.haml b/app/views/admin/m_odr_places/show.html.haml new file mode 100644 index 0000000..f3344a7 --- /dev/null +++ b/app/views/admin/m_odr_places/show.html.haml @@ -0,0 +1,10 @@ +.qi_header + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + =debug @m_odr_place \ No newline at end of file diff --git a/app/views/admin/m_odr_places/update.js.erb b/app/views/admin/m_odr_places/update.js.erb new file mode 100644 index 0000000..9ecbf56 --- /dev/null +++ b/app/views/admin/m_odr_places/update.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_place_row_<%= @m_odr_place.id %>').replaceWith("<%= escape_javascript(render(@m_odr_place))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_product_remises/_form.html.haml b/app/views/admin/m_odr_product_remises/_form.html.haml new file mode 100644 index 0000000..8dc6b3c --- /dev/null +++ b/app/views/admin/m_odr_product_remises/_form.html.haml @@ -0,0 +1,5 @@ +%tr.m_odr_product_remise_form.field + %td= form.input :qte, :label => "Qté :" + %td= form.input :amount, :label => "Montant :" + + %td.actions=link_to_remove_fields ic(:"trash-o"), form \ No newline at end of file diff --git a/app/views/admin/m_odr_product_remises/_m_odr_product_remise.html.haml b/app/views/admin/m_odr_product_remises/_m_odr_product_remise.html.haml new file mode 100644 index 0000000..fd8d772 --- /dev/null +++ b/app/views/admin/m_odr_product_remises/_m_odr_product_remise.html.haml @@ -0,0 +1,10 @@ +%tr#m_odr_product_remise_row{:id => m_odr_product_remise.id} + %td= m_odr_product_remise.m_odr_product_id + %td= m_odr_product_remise.qte + %td= m_odr_product_remise.amount + + %td.actions + = link_to i(:"trash-o"), [:admin, m_odr_product_remise], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet enregistrement ? ' } , :remote => true + = link_to i(:pencil), edit_admin_m_odr_product_remise_path(m_odr_product_remise), :remote => true + = link_to i(:eye), admin_m_odr_product_remise_path(m_odr_product_remise), :remote => true + diff --git a/app/views/admin/m_odr_product_remises/create.js.erb b/app/views/admin/m_odr_product_remises/create.js.erb new file mode 100644 index 0000000..b190de6 --- /dev/null +++ b/app/views/admin/m_odr_product_remises/create.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_product_remises_rows').prepend("<%= escape_javascript(render(@m_odr_product_remise))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_product_remises/destroy.js.erb b/app/views/admin/m_odr_product_remises/destroy.js.erb new file mode 100644 index 0000000..0b5fbd6 --- /dev/null +++ b/app/views/admin/m_odr_product_remises/destroy.js.erb @@ -0,0 +1 @@ +$('#m_odr_product_remise_<%= @m_odr_product_remise.id %>').remove(); \ No newline at end of file diff --git a/app/views/admin/m_odr_product_remises/edit.js.erb b/app/views/admin/m_odr_product_remises/edit.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_product_remises/edit.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_product_remises/index.html.haml b/app/views/admin/m_odr_product_remises/index.html.haml new file mode 100644 index 0000000..072e6a0 --- /dev/null +++ b/app/views/admin/m_odr_product_remises/index.html.haml @@ -0,0 +1,22 @@ +.qi_header + .right= link_to 'Ajouter ', new_admin_m_odr_product_remise_path(), :class => "btn btn-primary", :remote => true + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + %table.table + %tr + %th m_odr_product_id + %th qte + %th amount + %th.actions + + + %tbody#m_odr_product_remises_rows + =render @m_odr_product_remises + + \ No newline at end of file diff --git a/app/views/admin/m_odr_product_remises/new.js.erb b/app/views/admin/m_odr_product_remises/new.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_product_remises/new.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_product_remises/show.html.haml b/app/views/admin/m_odr_product_remises/show.html.haml new file mode 100644 index 0000000..2c8ee8d --- /dev/null +++ b/app/views/admin/m_odr_product_remises/show.html.haml @@ -0,0 +1,10 @@ +.qi_header + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + =debug @m_odr_product_remise \ No newline at end of file diff --git a/app/views/admin/m_odr_product_remises/update.js.erb b/app/views/admin/m_odr_product_remises/update.js.erb new file mode 100644 index 0000000..1f9316c --- /dev/null +++ b/app/views/admin/m_odr_product_remises/update.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_product_remise_row_<%= @m_odr_product_remise.id %>').replaceWith("<%= escape_javascript(render(@m_odr_product_remise))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_products/_form.html.haml b/app/views/admin/m_odr_products/_form.html.haml new file mode 100644 index 0000000..a670a2d --- /dev/null +++ b/app/views/admin/m_odr_products/_form.html.haml @@ -0,0 +1,16 @@ +.m_odr_product_form.field + + = form.input :name, :label => "Nom :" + = form.input :m_odr_brand, :label => "Marque :" + + + %table.m_odr_product_remises_form + + =form.semantic_fields_for :m_odr_product_remises do |form| + =render :partial => "admin/m_odr_product_remises/form", :locals => {:form => form} + + %p= link_to_add_fields ic(:plus)+" Ajouter une remise", form, :m_odr_product_remises + + + + =link_to_remove_fields ic(:"trash-o"), form \ No newline at end of file diff --git a/app/views/admin/m_odr_products/_m_odr_product.html.haml b/app/views/admin/m_odr_products/_m_odr_product.html.haml new file mode 100644 index 0000000..8daba18 --- /dev/null +++ b/app/views/admin/m_odr_products/_m_odr_product.html.haml @@ -0,0 +1,11 @@ +%tr#m_odr_product_row{:id => m_odr_product.id} + %td= m_odr_product.name + %td= m_odr_product.ref + %td= m_odr_product.ean + %td= m_odr_product.m_odr_brand_id + + %td.actions + = link_to i(:"trash-o"), [:admin, m_odr_product], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet enregistrement ? ' } , :remote => true + = link_to i(:pencil), edit_admin_m_odr_product_path(m_odr_product), :remote => true + = link_to i(:eye), admin_m_odr_product_path(m_odr_product), :remote => true + diff --git a/app/views/admin/m_odr_products/create.js.erb b/app/views/admin/m_odr_products/create.js.erb new file mode 100644 index 0000000..2c69dfd --- /dev/null +++ b/app/views/admin/m_odr_products/create.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_products_rows').prepend("<%= escape_javascript(render(@m_odr_product))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_products/destroy.js.erb b/app/views/admin/m_odr_products/destroy.js.erb new file mode 100644 index 0000000..57e6751 --- /dev/null +++ b/app/views/admin/m_odr_products/destroy.js.erb @@ -0,0 +1 @@ +$('#m_odr_product_<%= @m_odr_product.id %>').remove(); \ No newline at end of file diff --git a/app/views/admin/m_odr_products/edit.js.erb b/app/views/admin/m_odr_products/edit.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_products/edit.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_products/index.html.haml b/app/views/admin/m_odr_products/index.html.haml new file mode 100644 index 0000000..0221eb2 --- /dev/null +++ b/app/views/admin/m_odr_products/index.html.haml @@ -0,0 +1,23 @@ +.qi_header + .right= link_to 'Ajouter ', new_admin_m_odr_product_path(), :class => "btn btn-primary", :remote => true + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + %table.table + %tr + %th name + %th ref + %th ean + %th m_odr_brand_id + %th.actions + + + %tbody#m_odr_products_rows + =render @m_odr_products + + \ No newline at end of file diff --git a/app/views/admin/m_odr_products/new.js.erb b/app/views/admin/m_odr_products/new.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_products/new.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_products/show.html.haml b/app/views/admin/m_odr_products/show.html.haml new file mode 100644 index 0000000..1289cc9 --- /dev/null +++ b/app/views/admin/m_odr_products/show.html.haml @@ -0,0 +1,10 @@ +.qi_header + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + =debug @m_odr_product \ No newline at end of file diff --git a/app/views/admin/m_odr_products/update.js.erb b/app/views/admin/m_odr_products/update.js.erb new file mode 100644 index 0000000..cf06112 --- /dev/null +++ b/app/views/admin/m_odr_products/update.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_product_row_<%= @m_odr_product.id %>').replaceWith("<%= escape_javascript(render(@m_odr_product))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_rep_ribs/_form.html.haml b/app/views/admin/m_odr_rep_ribs/_form.html.haml new file mode 100644 index 0000000..420d78f --- /dev/null +++ b/app/views/admin/m_odr_rep_ribs/_form.html.haml @@ -0,0 +1,22 @@ +=semantic_form_for [:admin, @m_odr_rep_rib], :remote => true do |f| + + .content + =f.inputs do + = f.input :iban, :label => "iban :" + = f.input :bic, :label => "bic :" + = f.input :name, :label => "name :" + = f.input :admin, :label => "admin :" + = f.input :admin_valid, :label => "admin_valid :" + = f.input :confirmed, :label => "confirmed :" + = f.input :m_odr_rep_id, :label => "m_odr_rep_id :" + = f.input :nbr_virements, :label => "nbr_virements :" + = f.input :bank_name, :label => "bank_name :" + = f.input :bank_adress, :label => "bank_adress :" + = f.input :notes, :label => "notes :" + + + + + + .actions=f.submit "sauvegarder", :class => "btn btn-primary" + \ No newline at end of file diff --git a/app/views/admin/m_odr_rep_ribs/_m_odr_rep_rib.html.haml b/app/views/admin/m_odr_rep_ribs/_m_odr_rep_rib.html.haml new file mode 100644 index 0000000..5838d47 --- /dev/null +++ b/app/views/admin/m_odr_rep_ribs/_m_odr_rep_rib.html.haml @@ -0,0 +1,18 @@ +%tr#m_odr_rep_rib_row{:id => m_odr_rep_rib.id} + %td= m_odr_rep_rib.iban + %td= m_odr_rep_rib.bic + %td= m_odr_rep_rib.name + %td= m_odr_rep_rib.admin_id + %td= m_odr_rep_rib.admin_valid + %td= m_odr_rep_rib.confirmed + %td= m_odr_rep_rib.m_odr_rep_id + %td= m_odr_rep_rib.nbr_virements + %td= m_odr_rep_rib.bank_name + %td= m_odr_rep_rib.bank_adress + %td= m_odr_rep_rib.notes + + %td.actions + = link_to i(:"trash-o"), [:admin, m_odr_rep_rib], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet enregistrement ? ' } , :remote => true + = link_to i(:pencil), edit_admin_m_odr_rep_rib_path(m_odr_rep_rib), :remote => true + = link_to i(:eye), admin_m_odr_rep_rib_path(m_odr_rep_rib), :remote => true + diff --git a/app/views/admin/m_odr_rep_ribs/create.js.erb b/app/views/admin/m_odr_rep_ribs/create.js.erb new file mode 100644 index 0000000..e8bae17 --- /dev/null +++ b/app/views/admin/m_odr_rep_ribs/create.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_rep_ribs_rows').prepend("<%= escape_javascript(render(@m_odr_rep_rib))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_rep_ribs/destroy.js.erb b/app/views/admin/m_odr_rep_ribs/destroy.js.erb new file mode 100644 index 0000000..93d8867 --- /dev/null +++ b/app/views/admin/m_odr_rep_ribs/destroy.js.erb @@ -0,0 +1 @@ +$('#m_odr_rep_rib_<%= @m_odr_rep_rib.id %>').remove(); \ No newline at end of file diff --git a/app/views/admin/m_odr_rep_ribs/edit.js.erb b/app/views/admin/m_odr_rep_ribs/edit.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_rep_ribs/edit.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_rep_ribs/index.html.haml b/app/views/admin/m_odr_rep_ribs/index.html.haml new file mode 100644 index 0000000..1d5691a --- /dev/null +++ b/app/views/admin/m_odr_rep_ribs/index.html.haml @@ -0,0 +1,30 @@ +.qi_header + .right= link_to 'Ajouter ', new_admin_m_odr_rep_rib_path(), :class => "btn btn-primary", :remote => true + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + %table.table + %tr + %th iban + %th bic + %th name + %th admin_id + %th admin_valid + %th confirmed + %th m_odr_rep_id + %th nbr_virements + %th bank_name + %th bank_adress + %th notes + %th.actions + + + %tbody#m_odr_rep_ribs_rows + =render @m_odr_rep_ribs + + \ No newline at end of file diff --git a/app/views/admin/m_odr_rep_ribs/new.js.erb b/app/views/admin/m_odr_rep_ribs/new.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_rep_ribs/new.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_rep_ribs/show.html.haml b/app/views/admin/m_odr_rep_ribs/show.html.haml new file mode 100644 index 0000000..16a1ba8 --- /dev/null +++ b/app/views/admin/m_odr_rep_ribs/show.html.haml @@ -0,0 +1,10 @@ +.qi_header + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + =debug @m_odr_rep_rib \ No newline at end of file diff --git a/app/views/admin/m_odr_rep_ribs/update.js.erb b/app/views/admin/m_odr_rep_ribs/update.js.erb new file mode 100644 index 0000000..95c7e87 --- /dev/null +++ b/app/views/admin/m_odr_rep_ribs/update.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_rep_rib_row_<%= @m_odr_rep_rib.id %>').replaceWith("<%= escape_javascript(render(@m_odr_rep_rib))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_reps/_form.html.haml b/app/views/admin/m_odr_reps/_form.html.haml new file mode 100644 index 0000000..210dcd9 --- /dev/null +++ b/app/views/admin/m_odr_reps/_form.html.haml @@ -0,0 +1,17 @@ +=semantic_form_for [:admin, @m_odr_rep], :remote => true do |f| + + .content + =f.inputs do + = f.input :state, :label => "state :" + = f.input :admin_id, :label => "admin_id :" + = f.input :admin_valid, :label => "admin_valid :" + = f.input :token, :label => "token :" + = f.input :m_odr, :label => "m_odr :" + = f.input :rgpd, :label => "rgpd :" + + + + + + .actions=f.submit "sauvegarder", :class => "btn btn-primary" + \ No newline at end of file diff --git a/app/views/admin/m_odr_reps/_m_odr_rep.html.haml b/app/views/admin/m_odr_reps/_m_odr_rep.html.haml new file mode 100644 index 0000000..98bbff9 --- /dev/null +++ b/app/views/admin/m_odr_reps/_m_odr_rep.html.haml @@ -0,0 +1,13 @@ +%tr#m_odr_rep_row{:id => m_odr_rep.id} + %td= m_odr_rep.state + %td= m_odr_rep.admin_id + %td= m_odr_rep.admin_valid + %td= m_odr_rep.token + %td= m_odr_rep.m_odr_id + %td= m_odr_rep.rgpd + + %td.actions + = link_to i(:"trash-o"), [:admin, m_odr_rep], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet enregistrement ? ' } , :remote => true + = link_to i(:pencil), edit_admin_m_odr_rep_path(m_odr_rep), :remote => true + = link_to i(:eye), admin_m_odr_rep_path(m_odr_rep), :remote => true + diff --git a/app/views/admin/m_odr_reps/create.js.erb b/app/views/admin/m_odr_reps/create.js.erb new file mode 100644 index 0000000..2b76399 --- /dev/null +++ b/app/views/admin/m_odr_reps/create.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_reps_rows').prepend("<%= escape_javascript(render(@m_odr_rep))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_reps/destroy.js.erb b/app/views/admin/m_odr_reps/destroy.js.erb new file mode 100644 index 0000000..fe03a4a --- /dev/null +++ b/app/views/admin/m_odr_reps/destroy.js.erb @@ -0,0 +1 @@ +$('#m_odr_rep_<%= @m_odr_rep.id %>').remove(); \ No newline at end of file diff --git a/app/views/admin/m_odr_reps/edit.js.erb b/app/views/admin/m_odr_reps/edit.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_reps/edit.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_reps/index.html.haml b/app/views/admin/m_odr_reps/index.html.haml new file mode 100644 index 0000000..2790bd9 --- /dev/null +++ b/app/views/admin/m_odr_reps/index.html.haml @@ -0,0 +1,25 @@ +.qi_header + .right= link_to 'Ajouter ', new_admin_m_odr_rep_path(), :class => "btn btn-primary", :remote => true + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + %table.table + %tr + %th state + %th admin_id + %th admin_valid + %th token + %th m_odr_id + %th rgpd + %th.actions + + + %tbody#m_odr_reps_rows + =render @m_odr_reps + + \ No newline at end of file diff --git a/app/views/admin/m_odr_reps/new.js.erb b/app/views/admin/m_odr_reps/new.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_reps/new.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_reps/show.html.haml b/app/views/admin/m_odr_reps/show.html.haml new file mode 100644 index 0000000..5effab7 --- /dev/null +++ b/app/views/admin/m_odr_reps/show.html.haml @@ -0,0 +1,10 @@ +.qi_header + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + =debug @m_odr_rep \ No newline at end of file diff --git a/app/views/admin/m_odr_reps/update.js.erb b/app/views/admin/m_odr_reps/update.js.erb new file mode 100644 index 0000000..d3d5f1b --- /dev/null +++ b/app/views/admin/m_odr_reps/update.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_rep_row_<%= @m_odr_rep.id %>').replaceWith("<%= escape_javascript(render(@m_odr_rep))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_trackers/_form.html.haml b/app/views/admin/m_odr_trackers/_form.html.haml new file mode 100644 index 0000000..c260ecc --- /dev/null +++ b/app/views/admin/m_odr_trackers/_form.html.haml @@ -0,0 +1,5 @@ +.m_odr_place_form.field + + = form.input :name, :label => "Nom du tracker :" + =link_to_remove_fields ic(:"trash-o"), form + diff --git a/app/views/admin/m_odr_trackers/_m_odr_tracker.html.haml b/app/views/admin/m_odr_trackers/_m_odr_tracker.html.haml new file mode 100644 index 0000000..0641e70 --- /dev/null +++ b/app/views/admin/m_odr_trackers/_m_odr_tracker.html.haml @@ -0,0 +1,10 @@ +%tr#m_odr_tracker_row{:id => m_odr_tracker.id} + %td= m_odr_tracker.name + %td= m_odr_tracker.token + %td= m_odr_tracker.m_odr_id + + %td.actions + = link_to i(:"trash-o"), [:admin, m_odr_tracker], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet enregistrement ? ' } , :remote => true + = link_to i(:pencil), edit_admin_m_odr_tracker_path(m_odr_tracker), :remote => true + = link_to i(:eye), admin_m_odr_tracker_path(m_odr_tracker), :remote => true + diff --git a/app/views/admin/m_odr_trackers/create.js.erb b/app/views/admin/m_odr_trackers/create.js.erb new file mode 100644 index 0000000..a0f45e7 --- /dev/null +++ b/app/views/admin/m_odr_trackers/create.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_trackers_rows').prepend("<%= escape_javascript(render(@m_odr_tracker))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odr_trackers/destroy.js.erb b/app/views/admin/m_odr_trackers/destroy.js.erb new file mode 100644 index 0000000..cc62f7c --- /dev/null +++ b/app/views/admin/m_odr_trackers/destroy.js.erb @@ -0,0 +1 @@ +$('#m_odr_tracker_<%= @m_odr_tracker.id %>').remove(); \ No newline at end of file diff --git a/app/views/admin/m_odr_trackers/edit.js.erb b/app/views/admin/m_odr_trackers/edit.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_trackers/edit.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_trackers/index.html.haml b/app/views/admin/m_odr_trackers/index.html.haml new file mode 100644 index 0000000..97cb1e2 --- /dev/null +++ b/app/views/admin/m_odr_trackers/index.html.haml @@ -0,0 +1,22 @@ +.qi_header + .right= link_to 'Ajouter ', new_admin_m_odr_tracker_path(), :class => "btn btn-primary", :remote => true + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + %table.table + %tr + %th name + %th token + %th m_odr_id + %th.actions + + + %tbody#m_odr_trackers_rows + =render @m_odr_trackers + + \ No newline at end of file diff --git a/app/views/admin/m_odr_trackers/new.js.erb b/app/views/admin/m_odr_trackers/new.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/m_odr_trackers/new.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/m_odr_trackers/show.html.haml b/app/views/admin/m_odr_trackers/show.html.haml new file mode 100644 index 0000000..d4ebbe9 --- /dev/null +++ b/app/views/admin/m_odr_trackers/show.html.haml @@ -0,0 +1,10 @@ +.qi_header + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + =debug @m_odr_tracker \ No newline at end of file diff --git a/app/views/admin/m_odr_trackers/update.js.erb b/app/views/admin/m_odr_trackers/update.js.erb new file mode 100644 index 0000000..a8abc66 --- /dev/null +++ b/app/views/admin/m_odr_trackers/update.js.erb @@ -0,0 +1,2 @@ +$('#m_odr_tracker_row_<%= @m_odr_tracker.id %>').replaceWith("<%= escape_javascript(render(@m_odr_tracker))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/m_odrs/_form.html.haml b/app/views/admin/m_odrs/_form.html.haml index 933a753..c4a7154 100644 --- a/app/views/admin/m_odrs/_form.html.haml +++ b/app/views/admin/m_odrs/_form.html.haml @@ -49,10 +49,85 @@ .col-sm-3 = f.input :background_image_file_id, :label => "Fond :" , :as => :qi_image_select + = f.input :conditions, :label => "Conditions indiquées en footer :" + + = f.input :thank_title, :label => "Titre remerciement" + + = f.input :thank_text, :label => "Texte remerciement" + =render :partial => "admin/shared/social_form", :locals => {:f => f} - + + .qi_row + .qi_pannel.qi_plain.padding + Fichiers demandés : + %hr + + .m_odr_file_types_form + =f.semantic_fields_for :m_odr_file_types do |form| + =render :partial => "admin/m_odr_file_types/form", :locals => {:form => form} + + %p= link_to_add_fields ic(:plus)+" Ajouter un fichier demandé", f, :m_odr_file_types + + .qi_row + .qi_pannel.qi_plain.padding + Marques concernées : + %hr + + .m_odr_brands_form + =f.semantic_fields_for :m_odr_brands do |form| + =render :partial => "admin/m_odr_brands/form", :locals => {:form => form} + + %p= link_to_add_fields ic(:plus)+" Ajouter ue marque", f, :m_odr_brands + + .qi_row + .qi_pannel.qi_plain.padding + Produits concernés : + %hr + + .m_odr_products_form + =f.semantic_fields_for :m_odr_products do |form| + =render :partial => "admin/m_odr_products/form", :locals => {:form => form} + + %p= link_to_add_fields ic(:plus)+" Ajouter un produit", f, :m_odr_products + + .qi_row + .qi_pannel.qi_plain.padding + Points de ventes : + %hr + + .m_odr_places_form + =f.semantic_fields_for :m_odr_places do |form| + =render :partial => "admin/m_odr_places/form", :locals => {:form => form} + + %p= link_to_add_fields ic(:plus)+" Ajouter un point de vente", f, :m_odr_places + + + .qi_row + .qi_pannel.qi_plain.padding + Trackers : + %hr + + .m_odr_trackers_form + =f.semantic_fields_for :m_odr_trackers do |form| + =render :partial => "admin/m_odr_trackers/form", :locals => {:form => form} + + %p= link_to_add_fields ic(:plus)+" Ajouter un tracker", f, :m_odr_trackers + + + .qi_row + .qi_pannel.qi_plain.padding + Mails types : + %hr + + .mail_types_form + =f.semantic_fields_for :mail_types do |form| + =render :partial => "admin/mail_types/form", :locals => {:form => form} + + %p= link_to_add_fields ic(:plus)+" Ajouter un mail type", f, :mail_types + + .large_actions .actions diff --git a/app/views/admin/m_odrs/_m_odr.html.haml b/app/views/admin/m_odrs/_m_odr.html.haml index dc5c31f..59c0479 100644 --- a/app/views/admin/m_odrs/_m_odr.html.haml +++ b/app/views/admin/m_odrs/_m_odr.html.haml @@ -3,7 +3,12 @@ %td= m_odr.p_customer.show_name if m_odr.p_customer %td= m_odr.name %td - =link_to public_m_odr_path(m_odr.slug), public_m_odr_path(m_odr.slug), :target => "_blank" + =link_to public_m_odr_path(m_odr.slug, :lang => nil), public_m_odr_path(m_odr.slug, :lang => nil), :target => "_blank" + %br + =link_to public_m_odr_path(m_odr.slug, :lang => nil, :force => true), public_m_odr_path(m_odr.slug, :lang => nil, :force => true), :target => "_blank" + -m_odr.m_odr_trackers.each do |mot| + %br + =link_to public_m_odr_path(m_odr.slug, :t => mot.token, :lang => nil), public_m_odr_path(m_odr.slug, :t => mot.token, :lang => nil), :target => "_blank" %td= m_odr.slug %td= m_odr.start_at %td= m_odr.end_at diff --git a/app/views/admin/m_odrs/create.html.haml b/app/views/admin/m_odrs/create.html.haml new file mode 100644 index 0000000..9e1db18 --- /dev/null +++ b/app/views/admin/m_odrs/create.html.haml @@ -0,0 +1 @@ +=debug @m_odr_rep.m_odr_files.first \ No newline at end of file diff --git a/app/views/admin/m_odrs/thank.html.haml b/app/views/admin/m_odrs/thank.html.haml new file mode 100644 index 0000000..c26954a --- /dev/null +++ b/app/views/admin/m_odrs/thank.html.haml @@ -0,0 +1,10 @@ +.qi_header + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + =debug @m_odr \ No newline at end of file diff --git a/app/views/admin/mail_types/_form.html.haml b/app/views/admin/mail_types/_form.html.haml new file mode 100644 index 0000000..bd6dd81 --- /dev/null +++ b/app/views/admin/mail_types/_form.html.haml @@ -0,0 +1,15 @@ +.m_odr_place_form.field + =form.input :slug, :label => "Référence mail :" + + + + -if form.object.mail_contents.size == 0 + -LangSite.all.each do |ls| + -form.object.mail_contents.build(:lang_site_id => ls.id, :content_type => "text") + + =form.semantic_fields_for :mail_contents do |form| + = form.input :subject + = form.input :message + = form.hidden_field :lang_site_id + + \ No newline at end of file diff --git a/app/views/admin/odr_trackers/_form.html.haml b/app/views/admin/odr_trackers/_form.html.haml new file mode 100644 index 0000000..11c3b04 --- /dev/null +++ b/app/views/admin/odr_trackers/_form.html.haml @@ -0,0 +1,13 @@ +=semantic_form_for [:admin, @odr_tracker], :remote => true do |f| + + .content + =f.inputs do + = f.input :name, :label => "name :" + = f.input :token, :label => "token :" + + + + + + .actions=f.submit "sauvegarder", :class => "btn btn-primary" + \ No newline at end of file diff --git a/app/views/admin/odr_trackers/_odr_tracker.html.haml b/app/views/admin/odr_trackers/_odr_tracker.html.haml new file mode 100644 index 0000000..57ec9ed --- /dev/null +++ b/app/views/admin/odr_trackers/_odr_tracker.html.haml @@ -0,0 +1,9 @@ +%tr#odr_tracker_row{:id => odr_tracker.id} + %td= odr_tracker.name + %td= odr_tracker.token + + %td.actions + = link_to i(:"trash-o"), [:admin, odr_tracker], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet enregistrement ? ' } , :remote => true + = link_to i(:pencil), edit_admin_odr_tracker_path(odr_tracker), :remote => true + = link_to i(:eye), admin_odr_tracker_path(odr_tracker), :remote => true + diff --git a/app/views/admin/odr_trackers/create.js.erb b/app/views/admin/odr_trackers/create.js.erb new file mode 100644 index 0000000..0a9bea6 --- /dev/null +++ b/app/views/admin/odr_trackers/create.js.erb @@ -0,0 +1,2 @@ +$('#odr_trackers_rows').prepend("<%= escape_javascript(render(@odr_tracker))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/admin/odr_trackers/destroy.js.erb b/app/views/admin/odr_trackers/destroy.js.erb new file mode 100644 index 0000000..a9e9f34 --- /dev/null +++ b/app/views/admin/odr_trackers/destroy.js.erb @@ -0,0 +1 @@ +$('#odr_tracker_<%= @odr_tracker.id %>').remove(); \ No newline at end of file diff --git a/app/views/admin/odr_trackers/edit.js.erb b/app/views/admin/odr_trackers/edit.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/odr_trackers/edit.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/odr_trackers/index.html.haml b/app/views/admin/odr_trackers/index.html.haml new file mode 100644 index 0000000..4aed107 --- /dev/null +++ b/app/views/admin/odr_trackers/index.html.haml @@ -0,0 +1,21 @@ +.qi_header + .right= link_to 'Ajouter ', new_admin_odr_tracker_path(), :class => "btn btn-primary", :remote => true + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + %table.table + %tr + %th name + %th token + %th.actions + + + %tbody#odr_trackers_rows + =render @odr_trackers + + \ No newline at end of file diff --git a/app/views/admin/odr_trackers/new.js.erb b/app/views/admin/odr_trackers/new.js.erb new file mode 100644 index 0000000..6c8f015 --- /dev/null +++ b/app/views/admin/odr_trackers/new.js.erb @@ -0,0 +1 @@ +show_pane_hover("<%= escape_javascript(render(:partial => "form"))%>",700,900); \ No newline at end of file diff --git a/app/views/admin/odr_trackers/show.html.haml b/app/views/admin/odr_trackers/show.html.haml new file mode 100644 index 0000000..ed129dd --- /dev/null +++ b/app/views/admin/odr_trackers/show.html.haml @@ -0,0 +1,10 @@ +.qi_header + %h1 + + %span + + + +.qi_row + .qi_pannel.qi_plain.padding + =debug @odr_tracker \ No newline at end of file diff --git a/app/views/admin/odr_trackers/update.js.erb b/app/views/admin/odr_trackers/update.js.erb new file mode 100644 index 0000000..2fe65da --- /dev/null +++ b/app/views/admin/odr_trackers/update.js.erb @@ -0,0 +1,2 @@ +$('#odr_tracker_row_<%= @odr_tracker.id %>').replaceWith("<%= escape_javascript(render(@odr_tracker))%>"); +close_pane_hover(); \ No newline at end of file diff --git a/app/views/general_mails/admin.html.haml b/app/views/general_mails/admin.html.haml new file mode 100644 index 0000000..aaebf56 --- /dev/null +++ b/app/views/general_mails/admin.html.haml @@ -0,0 +1 @@ +=simple_format @content \ No newline at end of file diff --git a/app/views/general_mails/general.html.haml b/app/views/general_mails/general.html.haml new file mode 100644 index 0000000..d718787 --- /dev/null +++ b/app/views/general_mails/general.html.haml @@ -0,0 +1,3 @@ +=#debug @mail_content +=#debug @mail_type +=mail_content("fr", @mail_content,@arguments ) diff --git a/app/views/layouts/public.html.haml b/app/views/layouts/public.html.haml index e858910..a3f3caf 100644 --- a/app/views/layouts/public.html.haml +++ b/app/views/layouts/public.html.haml @@ -1,3 +1,8 @@ +-if @m_odr + -@title = @m_odr.name + -@description = @m_odr.description + + -@products_controllers = ["ProductOrdersController", "ProductsController","ProductCategoriesController", "ProductCustomersController", "ProductCustomersAuthsController" ] -@facebook_title = @facebook_title || @title @@ -99,10 +104,82 @@ .alert %span.remove=ic :times =flash[:alert] - - =yield + + + + -if @m_odr + =render :partial => "public/shared/social_ressource", :locals => {:social_ressource => @m_odr} + + + %br + %br + + -if @m_odr.logo_image_file + =image_tag @m_odr.logo_image_file.file.url, :class => "odr_logo", :style => (@m_odr.logo_image_file_width? ? "max-width:#{@m_odr.logo_image_file_width}px;margin:auto;": "") + + + -if @m_odr.logo_image_file + =image_tag @m_odr.banner_image_file.file.url, :class => "odr_banner", :style => (@m_odr.banner_image_file_width? ? "max-width:#{@m_odr.banner_image_file_width}px;margin:auto;margin-bottom:40px;": "") + + -background = (@m_odr.background_image_file ? @m_odr.background_image_file.file.url : "") + :scss + body{ + background:url('#{background}') fixed; + background-size:100%; + background-size: cover; + } + .odr_logo,.odr_banner{ + width:90%; + display:block; + margin:auto; + } + + + + =yield + + + -if @m_odr + + + :scss + #odr_form{ + max-width:800px; + margin:auto; + width:90%; + + } + + .conditions{ + + max-width:800px; + margin:auto; + width:90%; + font-size:0.9em; + text-align:center; + margin-top:10px; + margin-bottom:100px; + } + + .form_pannel{ + background:rgba(white,0.8); + padding:10px 20px; + margin:10px 0; + box-shadow:0 0 15px rgba(0,0,0,0.1); + + } + + -if @m_odr.footer_image_file + -if @m_odr.footer_image_link? + =link_to image_tag(@m_odr.footer_image_file.file.url, :class => "odr_banner", :style => (@m_odr.footer_image_width? ? "max-width:#{@m_odr.footer_image_width}px;margin:auto;margin-top:50px;": "")), @m_odr.footer_image_link, :target => "_blank" + -else + =image_tag(@m_odr.footer_image_file.file.url, :class => "odr_banner", :style => (@m_odr.footer_image_width? ? "max-width:#{@m_odr.footer_image_width}px;margin:auto;": "")) + + -if @m_odr.conditions + .conditions=simple_format @m_odr.conditions + :javascript diff --git a/app/views/public/m_odr_reps/thank.html.haml b/app/views/public/m_odr_reps/thank.html.haml new file mode 100644 index 0000000..c5983ba --- /dev/null +++ b/app/views/public/m_odr_reps/thank.html.haml @@ -0,0 +1,25 @@ + + + +#odr_form + .form_pannel + %center + %h3 + -if @m_odr.thank_title? + =@m_odr.thank_title + -else + Merci ! + + -if @m_odr.thank_text? + =@m_odr.thank_text + -else + %p + Merci pour votre participation + + -if false + =@m_odr_rep.token + %br + =@m_odr_rep.m_odr_files.first.token + + =debug @m_odr_rep.m_odr_rep_ribs.first + \ No newline at end of file diff --git a/app/views/public/m_odrs/show.html.haml b/app/views/public/m_odrs/show.html.haml index 2053177..0b61509 100644 --- a/app/views/public/m_odrs/show.html.haml +++ b/app/views/public/m_odrs/show.html.haml @@ -1,34 +1,7 @@ --@title = @m_odr.name --@description = @m_odr.description -=render :partial => "public/shared/social_ressource", :locals => {:social_ressource => @m_odr} - -%br -%br - --if @m_odr.logo_image_file - =image_tag @m_odr.logo_image_file.file.url, :class => "odr_logo", :style => (@m_odr.logo_image_file_width? ? "max-width:#{@m_odr.logo_image_file_width}px;margin:auto;": "") - --if @m_odr.logo_image_file - =image_tag @m_odr.banner_image_file.file.url, :class => "odr_banner", :style => (@m_odr.banner_image_file_width? ? "max-width:#{@m_odr.banner_image_file_width}px;margin:auto;": "") - --background = (@m_odr.background_image_file ? @m_odr.background_image_file.file.url : "") -:scss - body{ - background:url('#{background}') fixed; - background-size:100%; - background-size: cover; - } - .odr_logo,.odr_banner{ - width:90%; - display:block; - margin:auto; - } - - --if @m_odr.start_at > Date.today +-if @m_odr.start_at > Date.today and !params[:force] %div{:style => "margin-top:30px;font-weight:bold;font-weight:800;font-size:2em;text-transform:uppercase;font-family: 'Open Sans','Helvetica Neue', Helvetica, sans-serif;text-align:center;"} -count = ((@m_odr.start_at) - (Date.today)) @@ -71,9 +44,95 @@ %p{:style => "font-weight:bold;font-size:2em;text-transform:uppercase;font-family:'Helvetica Neue', Helvetica, sans-serif;"} jours avant l'ouverture +-else + -if !@m_odr_rep + -@m_odr_rep = @m_odr.m_odr_reps.new(:t => params[:t]) + -@m_odr_rep.particulars.build(:skip_organisation => true, :validate_name => true,:validate_tel => true ,:validate_email => true) + -@m_odr_rep.m_odr_rep_ribs.build() + + - @m_odr.m_odr_file_types.each do |ft| + -@m_odr_rep.m_odr_files.build(:m_odr_file_type_id => ft.id) + + + #odr_form + =semantic_form_for [:public, @m_odr_rep], html: { multipart: true } , :remote => false do |f| + =f.hidden_field :m_odr_id + + =f.hidden_field :t + + .form_pannel + %h3 Vous + + =f.inputs do + =f.semantic_fields_for :particulars do |f| + + =f.hidden_field :validate_name + =f.hidden_field :skip_organisation + =f.hidden_field :validate_tel + + %table + %tr + %td{:style => "width:20%;padding-right:4px;"} + =f.input :civilite, :label => false, :placeholder => "Civilité", :as => :select, :collection => [[qit("don-particular-civilite-mme","Mme."), "Mme"], [qit("don-particular-civilite-m","M."), "M"]], :include_blank => true + %td{:style => "width:40%;padding-right:4px;"} + =f.input :name, :label => false, :placeholder => "Nom" --if @m_odr.footer_image_file - -if @m_odr.footer_image_link? - =link_to image_tag(@m_odr.footer_image_file.file.url, :class => "odr_banner", :style => (@m_odr.footer_image_width? ? "max-width:#{@m_odr.footer_image_width}px;margin:auto;": "")), @m_odr.footer_image_link, :target => "_blank" - -else - =image_tag(@m_odr.footer_image_file.file.url, :class => "odr_banner", :style => (@m_odr.footer_image_width? ? "max-width:#{@m_odr.footer_image_width}px;margin:auto;": "")) \ No newline at end of file + %td{:style => "width:40%"} + =f.input :firstname, :label => false, :placeholder => "Prénom" + + =f.input :address_2, :label => false, :placeholder => "Adresse" + =f.input :address_3, :label => false, :placeholder => "Adresse suite" + %table + %tr + %td{:style => "width:30%;padding-right:4px;"} + =f.input :cp, :label => false, :placeholder => "Code postal" + %td{:style => "width:70%"} + =f.input :city, :label => false, :placeholder => "Ville" + + =f.input :country, :label => false, :placeholder => "Pays", :priority_countries => ["FR", "CH", "BE"], :include_blank => false, :locale => @lang.slug + + =f.input :email, :label => "Email :" + + =f.input :tel, :label => "Tel :" + + .form_pannel + %h3 Vos coordonnées bancaires + + =f.inputs do + =f.semantic_fields_for :m_odr_rep_ribs do |f| + %table + %tr + %td{:style => "width:20%;padding-right:4px;"} + =f.input :bic, :label => "Bic : " + %td{:style => "width:40%;padding-right:4px;"} + =f.input :iban, :label => "Iban :", :input_html => {:class => "iban_input"} + + :javascript + $('.iban_input').mask('SSAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA AA', { + placeholder: '____ ____ ____ ____ ____ ____ ____ ____ __' + }); + + + .form_pannel + %h3 Votre achat + + =f.inputs do + =f.input :qte, :label => "Pneu :", :as => :select, :collection => f.object.m_odr.m_odr_products.order("m_odr_brand_id ASC, m_odr_products.name"), :member_label => :member_label, :include_blank => true + + =f.inputs do + =f.input :m_odr_product_id, :label => "Nombre de pneus :", :as => :select, :collection => [1,2], :include_blank => true + + =f.inputs do + =f.input :m_odr_place, :label => "Point de vente :", :as => :select, :collection => f.object.m_odr.m_odr_places.order(:name), :include_blank => true + + + + =f.inputs do + =f.semantic_fields_for :m_odr_files do |f| + =f.input :file, :label => f.object.m_odr_file_type.name + =f.hidden_field :m_odr_file_type_id + + + %center=f.submit "Envoyer", :class => "btn btn-primary btn-lg" + + \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index bf34177..32f1d32 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,5 +1,115 @@ Rails.application.routes.draw do + namespace :admin do + resources :m_odr_trackers do + member do + + end + collection do + + end + end + end + + namespace :admin do + resources :odr_trackers do + member do + + end + collection do + + end + end + end + + namespace :admin do + resources :m_odr_places do + member do + + end + collection do + + end + end + end + + namespace :admin do + resources :m_odr_product_remises do + member do + + end + collection do + + end + end + end + + namespace :admin do + resources :m_odr_file_types do + member do + + end + collection do + + end + end + end + + namespace :admin do + resources :m_odr_brands do + member do + + end + collection do + + end + end + end + + namespace :admin do + resources :m_odr_products do + member do + + end + collection do + + end + end + end + + namespace :admin do + resources :m_odr_files do + member do + + end + collection do + + end + end + end + + namespace :admin do + resources :m_odr_reps do + member do + + end + collection do + + end + end + end + + namespace :admin do + resources :m_odr_rep_ribs do + member do + + end + collection do + + end + end + end + namespace :admin do resources :m_odrs do member do @@ -282,7 +392,12 @@ Rails.application.routes.draw do namespace :public do resources :contacts - + resources :m_odr_reps do + + member do + get :thank + end + end diff --git a/db/migrate/20200226173639_create_m_odr_rep_ribs.rb b/db/migrate/20200226173639_create_m_odr_rep_ribs.rb new file mode 100644 index 0000000..d70b8aa --- /dev/null +++ b/db/migrate/20200226173639_create_m_odr_rep_ribs.rb @@ -0,0 +1,19 @@ +class CreateMOdrRepRibs < ActiveRecord::Migration[6.0] + def change + create_table :m_odr_rep_ribs do |t| + t.string :iban + t.string :bic + t.string :name + t.references :admin, foreign_key: true + t.boolean :admin_valid + t.boolean :confirmed + t.integer :m_odr_rep_id + t.integer :nbr_virements + t.string :bank_name + t.text :bank_adress + t.text :notes + + t.timestamps + end + end +end diff --git a/db/migrate/20200226174543_create_m_odr_reps.rb b/db/migrate/20200226174543_create_m_odr_reps.rb new file mode 100644 index 0000000..ac6e9ac --- /dev/null +++ b/db/migrate/20200226174543_create_m_odr_reps.rb @@ -0,0 +1,23 @@ +class CreateMOdrReps < ActiveRecord::Migration[6.0] + def change + create_table :m_odr_reps do |t| + t.string :state + t.integer :admin_id + t.datetime :admin_valid + t.string :token + t.references :m_odr + t.boolean :rgpd + t.integer :qte + t.decimal :cc_remise, :precision => 14, :scale => 2 + t.decimal :ac_remise, :precision => 14, :scale => 2 + + t.references :m_odr_place + + t.references :m_odr_product + + + + t.timestamps + end + end +end diff --git a/db/migrate/20200226174728_create_m_odr_files.rb b/db/migrate/20200226174728_create_m_odr_files.rb new file mode 100644 index 0000000..ecd2010 --- /dev/null +++ b/db/migrate/20200226174728_create_m_odr_files.rb @@ -0,0 +1,16 @@ +class CreateMOdrFiles < ActiveRecord::Migration[6.0] + def change + create_table :m_odr_files do |t| + t.string :file + t.references :m_odr_rep, foreign_key: true + t.datetime :action_date + t.text :notes + t.string :name + t.references :m_odr_file_type + t.string :error_state + t.text :error_m + t.string :token + t.timestamps + end + end +end diff --git a/db/migrate/20200226174954_create_m_odr_products.rb b/db/migrate/20200226174954_create_m_odr_products.rb new file mode 100644 index 0000000..366ba99 --- /dev/null +++ b/db/migrate/20200226174954_create_m_odr_products.rb @@ -0,0 +1,12 @@ +class CreateMOdrProducts < ActiveRecord::Migration[6.0] + def change + create_table :m_odr_products do |t| + t.string :name + t.references :m_odr + t.string :ref + t.string :ean + t.references :m_odr_brand + t.timestamps + end + end +end diff --git a/db/migrate/20200226175135_create_m_odr_brands.rb b/db/migrate/20200226175135_create_m_odr_brands.rb new file mode 100644 index 0000000..97bba9a --- /dev/null +++ b/db/migrate/20200226175135_create_m_odr_brands.rb @@ -0,0 +1,16 @@ +class CreateMOdrBrands < ActiveRecord::Migration[6.0] + def change + create_table :m_odr_brands do |t| + t.string :name + t.string :ref + t.integer :image_file_id + t.references :m_odr, foreign_key: true + + t.date :start_at + t.date :end_at + t.date :public_end + + t.timestamps + end + end +end diff --git a/db/migrate/20200226175312_create_m_odr_file_types.rb b/db/migrate/20200226175312_create_m_odr_file_types.rb new file mode 100644 index 0000000..c87f980 --- /dev/null +++ b/db/migrate/20200226175312_create_m_odr_file_types.rb @@ -0,0 +1,13 @@ +class CreateMOdrFileTypes < ActiveRecord::Migration[6.0] + def change + create_table :m_odr_file_types do |t| + t.string :name + t.boolean :need_file + t.text :description + t.references :m_odr, foreign_key: true + + + t.timestamps + end + end +end diff --git a/db/migrate/20200226212156_create_m_odr_product_remises.rb b/db/migrate/20200226212156_create_m_odr_product_remises.rb new file mode 100644 index 0000000..2c185d5 --- /dev/null +++ b/db/migrate/20200226212156_create_m_odr_product_remises.rb @@ -0,0 +1,11 @@ +class CreateMOdrProductRemises < ActiveRecord::Migration[6.0] + def change + create_table :m_odr_product_remises do |t| + t.references :m_odr_product, foreign_key: true + t.integer :qte + t.decimal :amount, :precision => 14, :scale => 2 + + t.timestamps + end + end +end diff --git a/db/migrate/20200226214522_create_m_odr_places.rb b/db/migrate/20200226214522_create_m_odr_places.rb new file mode 100644 index 0000000..c8d3382 --- /dev/null +++ b/db/migrate/20200226214522_create_m_odr_places.rb @@ -0,0 +1,18 @@ +class CreateMOdrPlaces < ActiveRecord::Migration[6.0] + def change + create_table :m_odr_places do |t| + t.string :name + t.string :enseigne + t.string :city + t.string :cp + t.string :departement + t.string :departement_nbr + t.string :responsable + t.string :tel + t.string :email + t.references :m_odr, foreign_key: true + + t.timestamps + end + end +end diff --git a/db/migrate/20200226221850_add_m_odr_to_particulars.rb b/db/migrate/20200226221850_add_m_odr_to_particulars.rb new file mode 100644 index 0000000..029473c --- /dev/null +++ b/db/migrate/20200226221850_add_m_odr_to_particulars.rb @@ -0,0 +1,5 @@ +class AddMOdrToParticulars < ActiveRecord::Migration[6.0] + def change + add_column :particulars, :m_odr_rep_id, :integer + end +end diff --git a/db/migrate/20200227072133_add_conditions_to_m_odrs.rb b/db/migrate/20200227072133_add_conditions_to_m_odrs.rb new file mode 100644 index 0000000..1eccaa0 --- /dev/null +++ b/db/migrate/20200227072133_add_conditions_to_m_odrs.rb @@ -0,0 +1,8 @@ +class AddConditionsToMOdrs < ActiveRecord::Migration[6.0] + def change + add_column :m_odrs, :conditions, :text + add_column :m_odrs, :data_file_id, :integer + add_column :m_odrs, :thank_title, :string + add_column :m_odrs, :thank_text, :text + end +end diff --git a/db/migrate/20200227072345_add_m_odr_to_mail_types.rb b/db/migrate/20200227072345_add_m_odr_to_mail_types.rb new file mode 100644 index 0000000..179a8d9 --- /dev/null +++ b/db/migrate/20200227072345_add_m_odr_to_mail_types.rb @@ -0,0 +1,6 @@ +class AddMOdrToMailTypes < ActiveRecord::Migration[6.0] + def change + add_reference :mail_types, :m_odr, foreign_key: true + add_column :mail_types, :tags, :text + end +end diff --git a/db/migrate/20200227094249_create_m_odr_trackers.rb b/db/migrate/20200227094249_create_m_odr_trackers.rb new file mode 100644 index 0000000..7d3584e --- /dev/null +++ b/db/migrate/20200227094249_create_m_odr_trackers.rb @@ -0,0 +1,11 @@ +class CreateMOdrTrackers < ActiveRecord::Migration[6.0] + def change + create_table :m_odr_trackers do |t| + t.string :name + t.string :token + t.references :m_odr, foreign_key: true + + t.timestamps + end + end +end diff --git a/db/migrate/20200227095045_add_m_odr_tracker_to_m_odr_rep.rb b/db/migrate/20200227095045_add_m_odr_tracker_to_m_odr_rep.rb new file mode 100644 index 0000000..e969d9e --- /dev/null +++ b/db/migrate/20200227095045_add_m_odr_tracker_to_m_odr_rep.rb @@ -0,0 +1,5 @@ +class AddMOdrTrackerToMOdrRep < ActiveRecord::Migration[6.0] + def change + add_reference :m_odr_reps, :m_odr_tracker, foreign_key: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 48c3ae6..7d69522 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: 2020_02_25_205920) do +ActiveRecord::Schema.define(version: 2020_02_27_095045) do create_table "accounting_zones", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t| t.string "name" @@ -508,6 +508,129 @@ ActiveRecord::Schema.define(version: 2020_02_25_205920) do t.index ["cible_id"], name: "index_link_contents_on_cible_id" end + create_table "m_odr_brands", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t| + t.string "name" + t.string "ref" + t.integer "image_file_id" + t.bigint "m_odr_id" + t.date "start_at" + t.date "end_at" + t.date "public_end" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["m_odr_id"], name: "index_m_odr_brands_on_m_odr_id" + end + + create_table "m_odr_file_types", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t| + t.string "name" + t.boolean "need_file" + t.text "description" + t.bigint "m_odr_id" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["m_odr_id"], name: "index_m_odr_file_types_on_m_odr_id" + end + + create_table "m_odr_files", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t| + t.string "file" + t.bigint "m_odr_rep_id" + t.datetime "action_date" + t.text "notes" + t.string "name" + t.bigint "m_odr_file_type_id" + t.string "error_state" + t.text "error_m" + t.string "token" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["m_odr_file_type_id"], name: "index_m_odr_files_on_m_odr_file_type_id" + t.index ["m_odr_rep_id"], name: "index_m_odr_files_on_m_odr_rep_id" + end + + create_table "m_odr_places", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t| + t.string "name" + t.string "enseigne" + t.string "city" + t.string "cp" + t.string "departement" + t.string "departement_nbr" + t.string "responsable" + t.string "tel" + t.string "email" + t.bigint "m_odr_id" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["m_odr_id"], name: "index_m_odr_places_on_m_odr_id" + end + + create_table "m_odr_product_remises", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t| + t.bigint "m_odr_product_id" + t.integer "qte" + t.decimal "amount", precision: 14, scale: 2 + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["m_odr_product_id"], name: "index_m_odr_product_remises_on_m_odr_product_id" + end + + create_table "m_odr_products", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t| + t.string "name" + t.bigint "m_odr_id" + t.string "ref" + t.string "ean" + t.bigint "m_odr_brand_id" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["m_odr_brand_id"], name: "index_m_odr_products_on_m_odr_brand_id" + t.index ["m_odr_id"], name: "index_m_odr_products_on_m_odr_id" + end + + create_table "m_odr_rep_ribs", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t| + t.string "iban" + t.string "bic" + t.string "name" + t.bigint "admin_id" + t.boolean "admin_valid" + t.boolean "confirmed" + t.integer "m_odr_rep_id" + t.integer "nbr_virements" + t.string "bank_name" + t.text "bank_adress" + t.text "notes" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["admin_id"], name: "index_m_odr_rep_ribs_on_admin_id" + end + + create_table "m_odr_reps", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t| + t.string "state" + t.integer "admin_id" + t.datetime "admin_valid" + t.string "token" + t.bigint "m_odr_id" + t.boolean "rgpd" + t.integer "qte" + t.decimal "cc_remise", precision: 14, scale: 2 + t.decimal "ac_remise", precision: 14, scale: 2 + t.bigint "m_odr_place_id" + t.bigint "m_odr_product_id" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.bigint "m_odr_tracker_id" + t.index ["m_odr_id"], name: "index_m_odr_reps_on_m_odr_id" + t.index ["m_odr_place_id"], name: "index_m_odr_reps_on_m_odr_place_id" + t.index ["m_odr_product_id"], name: "index_m_odr_reps_on_m_odr_product_id" + t.index ["m_odr_tracker_id"], name: "index_m_odr_reps_on_m_odr_tracker_id" + end + + create_table "m_odr_trackers", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t| + t.string "name" + t.string "token" + t.bigint "m_odr_id" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["m_odr_id"], name: "index_m_odr_trackers_on_m_odr_id" + end + create_table "m_odrs", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t| t.string "name" t.string "slug" @@ -542,6 +665,10 @@ ActiveRecord::Schema.define(version: 2020_02_25_205920) do t.string "footer_image_link" t.string "banner_image_link" t.string "logo_image_link" + t.text "conditions" + t.integer "data_file_id" + t.string "thank_title" + t.text "thank_text" t.index ["p_customer_id"], name: "index_m_odrs_on_p_customer_id" end @@ -594,6 +721,9 @@ ActiveRecord::Schema.define(version: 2020_02_25_205920) do t.bigint "mail_type_reference_id" t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false + t.bigint "m_odr_id" + t.text "tags" + t.index ["m_odr_id"], name: "index_mail_types_on_m_odr_id" t.index ["mail_type_reference_id"], name: "index_mail_types_on_mail_type_reference_id" end @@ -1582,6 +1712,7 @@ ActiveRecord::Schema.define(version: 2020_02_25_205920) do t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.string "com_name" + t.integer "m_odr_rep_id" t.index ["owner_id"], name: "index_particulars_on_owner_id" end @@ -2197,7 +2328,16 @@ ActiveRecord::Schema.define(version: 2020_02_25_205920) do add_foreign_key "i_task_projects", "admins" add_foreign_key "i_tasks", "admins" add_foreign_key "i_tasks", "i_task_projects" + add_foreign_key "m_odr_brands", "m_odrs" + add_foreign_key "m_odr_file_types", "m_odrs" + add_foreign_key "m_odr_files", "m_odr_reps" + add_foreign_key "m_odr_places", "m_odrs" + add_foreign_key "m_odr_product_remises", "m_odr_products" + add_foreign_key "m_odr_rep_ribs", "admins" + add_foreign_key "m_odr_reps", "m_odr_trackers" + add_foreign_key "m_odr_trackers", "m_odrs" add_foreign_key "m_odrs", "p_customers" + add_foreign_key "mail_types", "m_odrs" add_foreign_key "p_contact_contact_types", "p_contact_types" add_foreign_key "p_contact_contact_types", "p_contacts" add_foreign_key "p_customer_ribs", "p_customers" diff --git a/public/uploads/tmp/1582757032-564446529024996-0001-3963/Abela_familly_Senior.csv b/public/uploads/tmp/1582757032-564446529024996-0001-3963/Abela_familly_Senior.csv new file mode 100644 index 0000000..137adac --- /dev/null +++ b/public/uploads/tmp/1582757032-564446529024996-0001-3963/Abela_familly_Senior.csv @@ -0,0 +1,7 @@ +zone_ids;formule;niveau;age;type;seul,0 +1,2;Family SENIOR;Niveau 1;1;euro;74,81 +1,2;Family SENIOR;Niveau 1;66;euro;82,39 +1,2;Family SENIOR;Niveau 1;71;euro;94,74 +1,2;Family SENIOR;Niveau 2;1;euro;99,38 +1,2;Family SENIOR;Niveau 2;66;euro;104,62 +1,2;Family SENIOR;Niveau 2;71;euro;122,84 \ No newline at end of file diff --git a/public/uploads/tmp/1582794758-469719992142535-0001-6358/SEPA.pdf b/public/uploads/tmp/1582794758-469719992142535-0001-6358/SEPA.pdf new file mode 100644 index 0000000..fb92394 Binary files /dev/null and b/public/uploads/tmp/1582794758-469719992142535-0001-6358/SEPA.pdf differ diff --git a/test/fixtures/m_odr_brands.yml b/test/fixtures/m_odr_brands.yml new file mode 100644 index 0000000..3208afd --- /dev/null +++ b/test/fixtures/m_odr_brands.yml @@ -0,0 +1,13 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +one: + name: MyString + ref: MyString + image_file_id: 1 + m_odr: one + +two: + name: MyString + ref: MyString + image_file_id: 1 + m_odr: two diff --git a/test/fixtures/m_odr_file_types.yml b/test/fixtures/m_odr_file_types.yml new file mode 100644 index 0000000..a1fb652 --- /dev/null +++ b/test/fixtures/m_odr_file_types.yml @@ -0,0 +1,9 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +one: + name: MyString + needed: false + +two: + name: MyString + needed: false diff --git a/test/fixtures/m_odr_files.yml b/test/fixtures/m_odr_files.yml new file mode 100644 index 0000000..edb62d3 --- /dev/null +++ b/test/fixtures/m_odr_files.yml @@ -0,0 +1,17 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +one: + file: MyString + m_odr: one + action_date: 2020-02-26 18:47:28 + notes: MyText + name: MyString + m_odr_file_type: one + +two: + file: MyString + m_odr: two + action_date: 2020-02-26 18:47:28 + notes: MyText + name: MyString + m_odr_file_type: two diff --git a/test/fixtures/m_odr_places.yml b/test/fixtures/m_odr_places.yml new file mode 100644 index 0000000..7eec833 --- /dev/null +++ b/test/fixtures/m_odr_places.yml @@ -0,0 +1,25 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +one: + name: MyString + enseigne: MyString + city: MyString + cp: MyString + departement: MyString + departement_nbr: MyString + responsable: MyString + tel: MyString + email: MyString + m_odr: one + +two: + name: MyString + enseigne: MyString + city: MyString + cp: MyString + departement: MyString + departement_nbr: MyString + responsable: MyString + tel: MyString + email: MyString + m_odr: two diff --git a/test/fixtures/m_odr_product_remises.yml b/test/fixtures/m_odr_product_remises.yml new file mode 100644 index 0000000..d722cb7 --- /dev/null +++ b/test/fixtures/m_odr_product_remises.yml @@ -0,0 +1,11 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +one: + m_odr_product: one + qte: 1 + amount: 9.99 + +two: + m_odr_product: two + qte: 1 + amount: 9.99 diff --git a/test/fixtures/m_odr_products.yml b/test/fixtures/m_odr_products.yml new file mode 100644 index 0000000..dffa205 --- /dev/null +++ b/test/fixtures/m_odr_products.yml @@ -0,0 +1,13 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +one: + name: MyString + ref: MyString + ean: MyString + m_odr_brand: one + +two: + name: MyString + ref: MyString + ean: MyString + m_odr_brand: two diff --git a/test/fixtures/m_odr_rep_ribs.yml b/test/fixtures/m_odr_rep_ribs.yml new file mode 100644 index 0000000..88320ed --- /dev/null +++ b/test/fixtures/m_odr_rep_ribs.yml @@ -0,0 +1,27 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +one: + iban: MyString + bic: MyString + name: MyString + admin: one + admin_valid: false + confirmed: false + m_odr_rep_id: 1 + nbr_virements: 1 + bank_name: MyString + bank_adress: MyText + notes: MyText + +two: + iban: MyString + bic: MyString + name: MyString + admin: two + admin_valid: false + confirmed: false + m_odr_rep_id: 1 + nbr_virements: 1 + bank_name: MyString + bank_adress: MyText + notes: MyText diff --git a/test/fixtures/m_odr_reps.yml b/test/fixtures/m_odr_reps.yml new file mode 100644 index 0000000..7d68132 --- /dev/null +++ b/test/fixtures/m_odr_reps.yml @@ -0,0 +1,17 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +one: + state: MyString + admin_id: 1 + admin_valid: 2020-02-26 18:45:43 + token: MyString + m_odr: one + rgpd: false + +two: + state: MyString + admin_id: 1 + admin_valid: 2020-02-26 18:45:43 + token: MyString + m_odr: two + rgpd: false diff --git a/test/fixtures/m_odr_trackers.yml b/test/fixtures/m_odr_trackers.yml new file mode 100644 index 0000000..1fa322c --- /dev/null +++ b/test/fixtures/m_odr_trackers.yml @@ -0,0 +1,11 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +one: + name: MyString + token: MyString + m_odr: one + +two: + name: MyString + token: MyString + m_odr: two diff --git a/test/fixtures/odr_trackers.yml b/test/fixtures/odr_trackers.yml new file mode 100644 index 0000000..30ea7dc --- /dev/null +++ b/test/fixtures/odr_trackers.yml @@ -0,0 +1,9 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +one: + name: MyString + token: MyString + +two: + name: MyString + token: MyString diff --git a/test/models/m_odr_brand_test.rb b/test/models/m_odr_brand_test.rb new file mode 100644 index 0000000..09cb37c --- /dev/null +++ b/test/models/m_odr_brand_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class MOdrBrandTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/models/m_odr_file_test.rb b/test/models/m_odr_file_test.rb new file mode 100644 index 0000000..07a6729 --- /dev/null +++ b/test/models/m_odr_file_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class MOdrFileTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/models/m_odr_file_type_test.rb b/test/models/m_odr_file_type_test.rb new file mode 100644 index 0000000..44edda0 --- /dev/null +++ b/test/models/m_odr_file_type_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class MOdrFileTypeTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/models/m_odr_place_test.rb b/test/models/m_odr_place_test.rb new file mode 100644 index 0000000..0930673 --- /dev/null +++ b/test/models/m_odr_place_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class MOdrPlaceTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/models/m_odr_product_remise_test.rb b/test/models/m_odr_product_remise_test.rb new file mode 100644 index 0000000..254ac95 --- /dev/null +++ b/test/models/m_odr_product_remise_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class MOdrProductRemiseTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/models/m_odr_product_test.rb b/test/models/m_odr_product_test.rb new file mode 100644 index 0000000..d19d652 --- /dev/null +++ b/test/models/m_odr_product_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class MOdrProductTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/models/m_odr_rep_rib_test.rb b/test/models/m_odr_rep_rib_test.rb new file mode 100644 index 0000000..234beb2 --- /dev/null +++ b/test/models/m_odr_rep_rib_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class MOdrRepRibTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/models/m_odr_rep_test.rb b/test/models/m_odr_rep_test.rb new file mode 100644 index 0000000..1c5373a --- /dev/null +++ b/test/models/m_odr_rep_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class MOdrRepTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/models/m_odr_tracker_test.rb b/test/models/m_odr_tracker_test.rb new file mode 100644 index 0000000..02e8490 --- /dev/null +++ b/test/models/m_odr_tracker_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class MOdrTrackerTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/models/odr_tracker_test.rb b/test/models/odr_tracker_test.rb new file mode 100644 index 0000000..bf78c36 --- /dev/null +++ b/test/models/odr_tracker_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class OdrTrackerTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end