suite
This commit is contained in:
parent
90d7789b34
commit
e27c3d8331
@ -18,11 +18,63 @@ class Admin::PDocumentsController < ApplicationController
|
||||
end
|
||||
|
||||
def index
|
||||
@p_documents = PDocument.order("created_at DESC")
|
||||
@p_documents = PDocument.includes(:p_customer)
|
||||
params[:p_document_type_ids] = params[:p_document_type_ids] || []
|
||||
@p_documents = @p_documents.where(:p_document_type_id => params[:p_document_type_ids]) if params[:p_document_type_ids].size > 0
|
||||
|
||||
date_regex = /^(0[1-9]|[12][0-9]|3[01])[\/](0[1-9]|1[012])[\/](19|20)\d\d$/i
|
||||
|
||||
|
||||
params[:start] = Date.today.beginning_of_month.strftime('%d/%m/%Y') if !params[:start]
|
||||
|
||||
if params[:start] and params[:start] =~ date_regex
|
||||
@start = Date.parse(params[:start]).beginning_of_day
|
||||
params[:start]= @start.strftime('%d/%m/%Y')
|
||||
else
|
||||
@start = nil
|
||||
end
|
||||
|
||||
|
||||
|
||||
if true
|
||||
params[:stop] = Date.today.end_of_month.strftime('%d/%m/%Y') if !params[:stop]
|
||||
|
||||
|
||||
if params[:stop].to_s != "" # and params[:stop] =~ date_regex
|
||||
@stop = Date.parse(params[:stop]).end_of_day
|
||||
|
||||
params[:stop]= @stop.strftime('%d/%m/%Y')
|
||||
|
||||
|
||||
else
|
||||
@stop = nil
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
if params[:amount_min].to_s != ""
|
||||
@p_documents = @p_documents.where("cache_total_ttc >= ?", params[:amount_min])
|
||||
end
|
||||
|
||||
if params[:amount_max].to_s != ""
|
||||
@p_documents = @p_documents.where("cache_total_ttc <= ?", params[:amount_max])
|
||||
end
|
||||
|
||||
|
||||
@p_documents = @p_documents.where("p_documents.created_at >= ?", @start) if @start
|
||||
|
||||
@p_documents = @p_documents.where("p_documents.created_at <= ?", @stop.end_of_day) if @stop
|
||||
|
||||
|
||||
@p_documents = sort_by_sorting(@p_documents, "created_at DESC")
|
||||
|
||||
per_page = (params[:search][:per_page] and params[:search][:per_page] != "") ? params[:search][:per_page] : 50
|
||||
page = (params[:search][:page] and params[:search][:page] != "") ? params[:search][:page] : 1
|
||||
@p_documents = @p_documents.page(page).per(per_page)
|
||||
|
||||
@p_documents = @p_documents.where(:p_document_type_id => params[:p_document_type_id]) if params[:p_document_type_id]
|
||||
|
||||
@p_documents = @p_documents.all
|
||||
render :layout => "admin"
|
||||
end
|
||||
def detail
|
||||
|
@ -11,7 +11,64 @@ class Admin::PPaymentsController < ApplicationController
|
||||
end
|
||||
|
||||
def index
|
||||
@p_payments = PPayment.order("created_at DESC").all
|
||||
@p_payments = PPayment.includes(:p_payment_type)
|
||||
|
||||
params[:p_payment_type_ids] = params[:p_payment_type_ids] || []
|
||||
@p_payments = @p_payments.where(:p_payment_type_id => params[:p_payment_type_ids]) if params[:p_payment_type_ids].size > 0
|
||||
|
||||
date_regex = /^(0[1-9]|[12][0-9]|3[01])[\/](0[1-9]|1[012])[\/](19|20)\d\d$/i
|
||||
|
||||
|
||||
params[:start] = Date.today.beginning_of_month.strftime('%d/%m/%Y') if !params[:start]
|
||||
|
||||
if params[:start] and params[:start] =~ date_regex
|
||||
@start = Date.parse(params[:start]).beginning_of_day
|
||||
params[:start]= @start.strftime('%d/%m/%Y')
|
||||
else
|
||||
@start = nil
|
||||
end
|
||||
|
||||
|
||||
|
||||
if true
|
||||
params[:stop] = Date.today.end_of_month.strftime('%d/%m/%Y') if !params[:stop]
|
||||
|
||||
|
||||
if params[:stop].to_s != "" # and params[:stop] =~ date_regex
|
||||
@stop = Date.parse(params[:stop]).end_of_day
|
||||
|
||||
params[:stop]= @stop.strftime('%d/%m/%Y')
|
||||
|
||||
|
||||
else
|
||||
@stop = nil
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
if params[:amount_min].to_s != ""
|
||||
@p_payments = @p_payments.where("amount >= ?", params[:amount_min])
|
||||
end
|
||||
|
||||
if params[:amount_max].to_s != ""
|
||||
@p_payments = @p_payments.where("amount <= ?", params[:amount_max])
|
||||
end
|
||||
|
||||
|
||||
@p_payments = @p_payments.where("p_payments.created_at >= ?", @start) if @start
|
||||
|
||||
@p_payments = @p_payments.where("p_payments.created_at <= ?", @stop.end_of_day) if @stop
|
||||
|
||||
|
||||
@p_payments = sort_by_sorting(@p_payments, "created_at DESC")
|
||||
|
||||
per_page = (params[:search][:per_page] and params[:search][:per_page] != "") ? params[:search][:per_page] : 50
|
||||
page = (params[:search][:page] and params[:search][:page] != "") ? params[:search][:page] : 1
|
||||
@p_payments = @p_payments.page(page).per(per_page)
|
||||
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
@ -26,6 +26,26 @@ class PDocument < ActiveRecord::Base
|
||||
|
||||
belongs_to :element, :polymorphic => true
|
||||
|
||||
|
||||
acts_as_sorting :fields => {
|
||||
|
||||
:created_at => {:name => "Date", :reorder => true},
|
||||
:p_customer_sheet => {:name => "Offre", :reorder => false},
|
||||
:p_customer => {:name => "Client", :reorder => false},
|
||||
:label => {:name => "Type", :reorder => true},
|
||||
:d_number => {:name => "Numéro", :reorder => true},
|
||||
:cache_total_ht => {:name => "Total HT", :reorder => true},
|
||||
:cache_total_ttc => {:name => "Total TTC", :reorder => true},
|
||||
:paid => {:name => "Payée", :reorder => true},
|
||||
:cache_to_paid => {:name => "Solde", :reorder => true},
|
||||
:echeance_date => {:name => "Echéance", :reorder => false},
|
||||
:echeance_days => {:name => "Jours de retard ", :reorder => false},
|
||||
|
||||
|
||||
:actions => {:name => "Actions", :reorder => false}
|
||||
}
|
||||
|
||||
|
||||
attr_accessor :sheet_id, :skip_update_caches
|
||||
|
||||
before_save do
|
||||
|
@ -12,6 +12,21 @@ class PPayment < ActiveRecord::Base
|
||||
has_one :p_compta_element, :as => :element, :dependent => :destroy
|
||||
|
||||
|
||||
|
||||
|
||||
acts_as_sorting :fields => {
|
||||
:paid_at => {:name => "Date de paiement", :reorder => true},
|
||||
|
||||
:p_customer => {:name => "Client", :reorder => false},
|
||||
|
||||
:payment_type => {:name => "Type de paiement", :reorder => false},
|
||||
|
||||
:amount => {:name => "Montant", :reorder => true},
|
||||
:solde => {:name => "Solde", :reorder => false},
|
||||
:actions => {:name => "Actions", :reorder => false}
|
||||
|
||||
}
|
||||
|
||||
|
||||
before_validation do
|
||||
|
||||
|
@ -1,3 +1,3 @@
|
||||
%li= link_to "Tous", admin_p_documents_path, :class => ("active" if !params[:p_document_type_id])
|
||||
- PDocumentType.order("position").all.each do |p_document_type|
|
||||
%li= link_to p_document_type.name, admin_p_documents_path(:p_document_type_id => p_document_type.id), :class => ("active" if p_document_type.id.to_s == params[:p_document_type_id].to_s)
|
||||
%li= link_to p_document_type.name, admin_p_documents_path("p_document_type_ids[]" => p_document_type.id), :class => ("active" if p_document_type.id.to_s == params[:p_document_type_id].to_s)
|
||||
|
@ -1,146 +1,76 @@
|
||||
-if false
|
||||
%tr
|
||||
|
||||
%tr#p_document{:id => p_document.id}
|
||||
-tr = {}
|
||||
|
||||
|
||||
-tr[:created_at] = capture do
|
||||
%td
|
||||
=l p_document.created_at, :format => :date
|
||||
|
||||
-if @p_documents
|
||||
%td
|
||||
=link_to "##{p_document.element.id}", admin_p_customer_sheet_path(p_document.element)
|
||||
%td
|
||||
=p_document.element.p_customer.show_name if p_document.element and p_document.element.p_customer
|
||||
|
||||
|
||||
|
||||
%td
|
||||
=p_document.label
|
||||
%td
|
||||
=link_to p_document.d_number, admin_p_document_path(p_document.token)
|
||||
|
||||
-totals = PSheetLine.totals(p_document.p_sheet_lines)
|
||||
%td
|
||||
= number_to_currency totals[:total]
|
||||
HT
|
||||
|
||||
%td
|
||||
= number_to_currency totals[:total_ttc]
|
||||
TTC
|
||||
|
||||
-if params[:p_document_type_id].to_i == 4
|
||||
%th
|
||||
="oui" if p_document.theo_paid
|
||||
%th
|
||||
="oui" if p_document.paid
|
||||
|
||||
|
||||
-if false
|
||||
%table
|
||||
%tr
|
||||
%td
|
||||
Paid
|
||||
%td
|
||||
=p_document.paid
|
||||
%tr
|
||||
%td
|
||||
TH Paid
|
||||
%td
|
||||
=p_document.theo_paid
|
||||
-p_document.p_payment_documents.each do |pp|
|
||||
%tr
|
||||
%td
|
||||
=pp.amount
|
||||
%td
|
||||
=pp.paid
|
||||
=pp.p_payment.paid
|
||||
|
||||
|
||||
|
||||
%td.actions
|
||||
-if p_document.label == "Facture" and !@relances
|
||||
-#if p_document.relative_docs.where(:label => "Avoir").count == 0
|
||||
=link_to "Créer un avoir", create_avoir_admin_p_document_path(p_document) #, :data => {:confirm => "Voulez-vous vraiment créer un avoir ?"}
|
||||
|
||||
=link_to i(:eye), detail_admin_p_document_path(p_document)
|
||||
|
||||
|
||||
|
||||
-skip_bill_details = skip_bill_details || false
|
||||
|
||||
|
||||
|
||||
%tr#p_document{:id => p_document.id}
|
||||
|
||||
|
||||
|
||||
-if @case_multiple
|
||||
%td
|
||||
=check_box_tag "ids[]", p_document.token
|
||||
|
||||
|
||||
|
||||
%td
|
||||
=l p_document.created_at, :format => :date
|
||||
|
||||
|
||||
|
||||
-if !@p_customer_sheet or true
|
||||
-tr[:p_customer_sheet] = capture do
|
||||
%td
|
||||
=link_to "##{p_document.element.id}", admin_p_customer_sheet_path(p_document.element)
|
||||
|
||||
-if p_document.p_customer
|
||||
|
||||
-tr[:p_customer] = capture do
|
||||
%td
|
||||
=link_to p_document.p_customer.show_name, [:admin, p_document.p_customer]
|
||||
-if p_document.p_customer
|
||||
=link_to p_document.p_customer.show_name, [:admin, p_document.p_customer]
|
||||
|
||||
|
||||
-tr[:label] = capture do
|
||||
%td
|
||||
=p_document.label
|
||||
|
||||
-tr[:d_number] = capture do
|
||||
%td
|
||||
=link_to p_document.d_number, admin_p_document_path(p_document.token)
|
||||
|
||||
|
||||
-tr[:cache_total_ht] = capture do
|
||||
%td.numeraire
|
||||
= number_to_currency p_document.cache_total_ht
|
||||
|
||||
%td
|
||||
=p_document.label
|
||||
%td
|
||||
=link_to p_document.d_number, admin_p_document_path(p_document.token)
|
||||
|
||||
%td.numeraire
|
||||
= number_to_currency p_document.cache_total_ht
|
||||
|
||||
|
||||
%td.numeraire
|
||||
= number_to_currency p_document.cache_total_ttc
|
||||
-tr[:cache_total_ttc] = capture do
|
||||
%td.numeraire
|
||||
= number_to_currency p_document.cache_total_ttc
|
||||
|
||||
|
||||
|
||||
|
||||
-if (!skip_bill_details)
|
||||
|
||||
-tr[:paid] = capture do
|
||||
|
||||
%td
|
||||
=ic(:check) if p_document.paid
|
||||
|
||||
|
||||
-tr[:cache_to_paid] = capture do
|
||||
%td.numeraire
|
||||
-if p_document.cache_to_paid?
|
||||
=number_to_currency p_document.cache_to_paid
|
||||
|
||||
|
||||
|
||||
-tr[:echeance_date] = capture do
|
||||
%td
|
||||
=l p_document.echeance_date, :format => :date if p_document.echeance_date
|
||||
|
||||
-tr[:echeance_days] = capture do
|
||||
%td
|
||||
-if p_document.label == "Facture" or p_document.label == "Facture Acompte"
|
||||
-if p_document.echeance_date and !p_document.paid
|
||||
-j = (Date.today - p_document.echeance_date).to_i
|
||||
|
||||
|
||||
-if j > 0
|
||||
%span{:style => "color:red;"}
|
||||
=j
|
||||
-else
|
||||
%span{:style => "color:green;"}
|
||||
=j
|
||||
|
||||
|
||||
-tr[:actions] = capture do
|
||||
%td.actions
|
||||
-if p_document.label == "Facture" and !@relances
|
||||
-if p_document.relative_docs.where(:label => "Avoir").count == 0 or true
|
||||
=link_to "Créer un avoir", create_avoir_admin_p_document_path(p_document), :data => {:confirm => "Voulez-vous vraiment créer un avoir ?"}
|
||||
|
||||
=link_to i(:eye), detail_admin_p_document_path(p_document), :remote => false
|
||||
|
||||
|
||||
=link_to i(:envelope), send_by_mail_admin_p_document_path(p_document), :remote => false
|
||||
|
||||
-if false
|
||||
@ -148,8 +78,10 @@
|
||||
=ic :lock
|
||||
-else
|
||||
=link_to i(:pencil), edit_admin_p_document_path(p_document), :remote => true
|
||||
|
||||
|
||||
|
||||
|
||||
=render :partial => "qi/qi_ordered_table_object", :locals => {:tr => tr, :object => p_document}
|
||||
|
||||
|
||||
|
||||
|
@ -5,30 +5,84 @@
|
||||
Liste des documents
|
||||
|
||||
|
||||
.qi_row
|
||||
.qi_pannel.qi_plain.padding
|
||||
|
||||
%table.table
|
||||
%tr
|
||||
|
||||
%th Date
|
||||
%th Offre
|
||||
%th Client
|
||||
%th Type
|
||||
%th Numéro
|
||||
%th Total HT
|
||||
%th Total TTC
|
||||
%th
|
||||
Payée
|
||||
%th Solde
|
||||
%th Echéance
|
||||
.qi_search_row
|
||||
=form_tag "", :method => "get", :onsubmit => "" do
|
||||
-params[:search] =params[:search] || {}
|
||||
|
||||
%th Jours de retard
|
||||
%th
|
||||
|
||||
|
||||
%table
|
||||
%table.search_table
|
||||
%tr
|
||||
%td
|
||||
Début
|
||||
%td
|
||||
.input-group
|
||||
=text_field_tag :start, params[:start],:class => "form-control datepicker", :placeholder => "Début"
|
||||
%span.input-group-addon.btn{:onclick => "$(this).prev('input').val('');"}
|
||||
=ic(:times)
|
||||
|
||||
%br
|
||||
-if @start and @stop
|
||||
|
||||
=link_to "< Mois précédent",request.query_parameters.merge({start: ((@start - 1.month).beginning_of_month.strftime('%d/%m/%Y')), stop: ((@stop - 1.month).end_of_month.strftime('%d/%m/%Y'))}), :class => "btn btn-default"
|
||||
|
||||
|
||||
%td
|
||||
Fin
|
||||
%td
|
||||
.input-group
|
||||
=text_field_tag :stop, params[:stop],:class => "form-control datepicker", :placeholder => "Fin"
|
||||
%span.input-group-addon.btn{:onclick => "$(this).prev('input').val('');"}
|
||||
=ic(:times)
|
||||
%br
|
||||
-if @start and @stop
|
||||
=link_to "Mois suivant >",request.query_parameters.merge({start: ((@start + 1.month).beginning_of_month.strftime('%d/%m/%Y')), stop: ((@stop + 1.month).end_of_month.strftime('%d/%m/%Y'))}), :class => "btn btn-default"
|
||||
|
||||
|
||||
-params[:p_document_type_ids] = params[:p_document_type_ids] || []
|
||||
%td
|
||||
Type de document :
|
||||
%td
|
||||
|
||||
-PDocumentType.where(:enabled => true).order("position").each do |pdt|
|
||||
%p
|
||||
= check_box_tag :"p_document_type_ids[]", pdt.id, (true if params[:p_document_type_ids].include?(pdt.id.to_s)), {:id => "p_document_type_ids_#{pdt.id}"}
|
||||
= label_tag "p_document_type_ids_"+pdt.id.to_s, pdt.name
|
||||
|
||||
|
||||
|
||||
|
||||
%td
|
||||
%td
|
||||
%td
|
||||
%td
|
||||
Montant :
|
||||
%td
|
||||
de
|
||||
%td
|
||||
=number_field_tag :amount_min, params[:amount_min],:class => "form-control", :placeholder => "Min", :step => 0.01
|
||||
%td
|
||||
à
|
||||
%td
|
||||
=number_field_tag :amount_max, params[:amount_max],:class => "form-control", :placeholder => "Max", :step => 0.01
|
||||
%td
|
||||
|
||||
|
||||
=render :partial => "qi/qi_ordered_table_search_footer", :locals => {:collection_object => @p_documents}
|
||||
|
||||
|
||||
=render :partial => "qi/qi_ordered_table", :locals => {:qi_ordered_table_collection => @p_documents}
|
||||
|
||||
|
||||
%tbody#p_customer_sheets_rows
|
||||
=render @p_documents
|
||||
|
||||
:scss
|
||||
.qi_search_row{
|
||||
td{
|
||||
vertical-align:top;
|
||||
}
|
||||
p{
|
||||
margin:0;
|
||||
}
|
||||
}
|
@ -1,14 +1,28 @@
|
||||
%tr#p_payment_row{:id => p_payment.id}
|
||||
%td= ic(:check) if p_payment.paid
|
||||
%td= l(p_payment.paid_at, :format => :date) if p_payment.paid_at
|
||||
%td= l(p_payment.theo_date, :format => :date) if p_payment.theo_date
|
||||
%td=link_to(p_payment.p_customer.show_name, [:admin, p_payment.p_customer]) if p_payment.p_customer
|
||||
%td= number_to_currency p_payment.amount
|
||||
-tr = {}
|
||||
|
||||
%td= number_to_currency(p_payment.amount-p_payment.total_affected) if (p_payment.amount-p_payment.total_affected) > 0
|
||||
|
||||
|
||||
%td.actions
|
||||
= link_to i(:"trash-o"), [:admin, p_payment], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet auteur ? ' } , :remote => true
|
||||
= link_to i(:pencil), edit_admin_p_payment_path(p_payment), :remote => true
|
||||
|
||||
-tr[:paid_at] = capture do
|
||||
%td= l(p_payment.paid_at, :format => :date) if p_payment.paid_at
|
||||
-tr[:p_customer] = capture do
|
||||
%td=link_to(p_payment.p_customer.show_name, [:admin, p_payment.p_customer]) if p_payment.p_customer
|
||||
|
||||
-tr[:payment_type] = capture do
|
||||
%td= p_payment.p_payment_type.name if p_payment.p_payment_type
|
||||
|
||||
-tr[:amount] = capture do
|
||||
%td= number_to_currency p_payment.amount
|
||||
-tr[:solde] = capture do
|
||||
%td= number_to_currency(p_payment.amount-p_payment.total_affected) if (p_payment.amount-p_payment.total_affected) > 0
|
||||
|
||||
-tr[:actions] = capture do
|
||||
%td.actions
|
||||
= link_to i(:"trash-o"), [:admin, p_payment], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet auteur ? ' } , :remote => true
|
||||
= link_to i(:pencil), edit_admin_p_payment_path(p_payment), :remote => true
|
||||
|
||||
=render :partial => "qi/qi_ordered_table_object", :locals => {:tr => tr, :object => p_payment}
|
||||
|
||||
|
||||
|
||||
|
@ -6,21 +6,81 @@
|
||||
Liste des paiements
|
||||
|
||||
|
||||
.qi_row
|
||||
.qi_pannel.qi_plain.padding
|
||||
%table.table
|
||||
%tr
|
||||
%th
|
||||
%th Date de paiement
|
||||
%th Date théorique
|
||||
|
||||
.qi_search_row
|
||||
=form_tag "", :method => "get", :onsubmit => "" do
|
||||
-params[:search] =params[:search] || {}
|
||||
|
||||
|
||||
%table
|
||||
%table.search_table
|
||||
%tr
|
||||
%td
|
||||
Début
|
||||
%td
|
||||
.input-group
|
||||
=text_field_tag :start, params[:start],:class => "form-control datepicker", :placeholder => "Début"
|
||||
%span.input-group-addon.btn{:onclick => "$(this).prev('input').val('');"}
|
||||
=ic(:times)
|
||||
|
||||
%br
|
||||
-if @start and @stop
|
||||
|
||||
=link_to "< Mois précédent",request.query_parameters.merge({start: ((@start - 1.month).beginning_of_month.strftime('%d/%m/%Y')), stop: ((@stop - 1.month).end_of_month.strftime('%d/%m/%Y'))}), :class => "btn btn-default"
|
||||
|
||||
|
||||
%td
|
||||
Fin
|
||||
%td
|
||||
.input-group
|
||||
=text_field_tag :stop, params[:stop],:class => "form-control datepicker", :placeholder => "Fin"
|
||||
%span.input-group-addon.btn{:onclick => "$(this).prev('input').val('');"}
|
||||
=ic(:times)
|
||||
%br
|
||||
-if @start and @stop
|
||||
=link_to "Mois suivant >",request.query_parameters.merge({start: ((@start + 1.month).beginning_of_month.strftime('%d/%m/%Y')), stop: ((@stop + 1.month).end_of_month.strftime('%d/%m/%Y'))}), :class => "btn btn-default"
|
||||
|
||||
|
||||
-params[:p_payment_type_ids] = params[:p_payment_type_ids] || []
|
||||
%td
|
||||
Type de document :
|
||||
%td
|
||||
|
||||
-PPaymentType.where(:enabled => true).order("name").each do |pdt|
|
||||
%p
|
||||
= check_box_tag :"p_payment_type_ids[]", pdt.id, (true if params[:p_payment_type_ids].include?(pdt.id.to_s)), {:id => "p_payment_type_ids_#{pdt.id}"}
|
||||
= label_tag "p_payment_type_ids_"+pdt.id.to_s, pdt.name
|
||||
|
||||
|
||||
%td
|
||||
%td
|
||||
Montant :
|
||||
%td
|
||||
de
|
||||
%td
|
||||
=number_field_tag :amount_min, params[:amount_min],:class => "form-control", :placeholder => "Min", :step => 0.01
|
||||
%td
|
||||
à
|
||||
%td
|
||||
=number_field_tag :amount_max, params[:amount_max],:class => "form-control", :placeholder => "Max", :step => 0.01
|
||||
%td
|
||||
|
||||
|
||||
%th Client
|
||||
%th Montant
|
||||
%th Montant à affecter
|
||||
%th
|
||||
=render :partial => "qi/qi_ordered_table_search_footer", :locals => {:collection_object => @p_payments}
|
||||
|
||||
|
||||
=render :partial => "qi/qi_ordered_table", :locals => {:qi_ordered_table_collection => @p_payments}
|
||||
|
||||
|
||||
%tbody#p_payments_rows
|
||||
=render @p_payments
|
||||
|
||||
|
||||
|
||||
:scss
|
||||
.qi_search_row{
|
||||
td{
|
||||
vertical-align:top;
|
||||
}
|
||||
p{
|
||||
margin:0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user