Merge pull request #5063 from betagouv/5062-effectifs-api
5062 : add effectif mensuel to graphql api
This commit is contained in:
commit
24a14262e7
14 changed files with 65 additions and 13 deletions
|
@ -686,10 +686,24 @@ enum DossierState {
|
||||||
sans_suite
|
sans_suite
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Effectif {
|
||||||
|
"""
|
||||||
|
Année de l'effectif mensuel
|
||||||
|
"""
|
||||||
|
annee: String!
|
||||||
|
|
||||||
|
"""
|
||||||
|
Mois de l'effectif mensuel
|
||||||
|
"""
|
||||||
|
mois: String!
|
||||||
|
nb: Float!
|
||||||
|
}
|
||||||
|
|
||||||
type Entreprise {
|
type Entreprise {
|
||||||
capitalSocial: BigInt!
|
capitalSocial: BigInt!
|
||||||
codeEffectifEntreprise: String!
|
codeEffectifEntreprise: String!
|
||||||
dateCreation: ISO8601Date!
|
dateCreation: ISO8601Date!
|
||||||
|
effectifs: [Effectif!]!
|
||||||
formeJuridique: String!
|
formeJuridique: String!
|
||||||
formeJuridiqueCode: String!
|
formeJuridiqueCode: String!
|
||||||
inlineAdresse: String!
|
inlineAdresse: String!
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
module Types
|
module Types
|
||||||
class PersonneMoraleType < Types::BaseObject
|
class PersonneMoraleType < Types::BaseObject
|
||||||
class EntrepriseType < Types::BaseObject
|
class EntrepriseType < Types::BaseObject
|
||||||
|
class EffectifType < Types::BaseObject
|
||||||
|
field :mois, String, null: false, description: "Mois de l'effectif mensuel"
|
||||||
|
field :annee, String, null: false, description: "Année de l'effectif mensuel"
|
||||||
|
field :nb, Float, null: false
|
||||||
|
end
|
||||||
|
|
||||||
field :siren, String, null: false
|
field :siren, String, null: false
|
||||||
field :capital_social, GraphQL::Types::BigInt, null: false
|
field :capital_social, GraphQL::Types::BigInt, null: false
|
||||||
field :numero_tva_intracommunautaire, String, null: false
|
field :numero_tva_intracommunautaire, String, null: false
|
||||||
|
@ -10,10 +16,23 @@ module Types
|
||||||
field :raison_sociale, String, null: false
|
field :raison_sociale, String, null: false
|
||||||
field :siret_siege_social, String, null: false
|
field :siret_siege_social, String, null: false
|
||||||
field :code_effectif_entreprise, String, null: false
|
field :code_effectif_entreprise, String, null: false
|
||||||
|
field :effectifs, [EffectifType], null: false
|
||||||
field :date_creation, GraphQL::Types::ISO8601Date, null: false
|
field :date_creation, GraphQL::Types::ISO8601Date, null: false
|
||||||
field :nom, String, null: false
|
field :nom, String, null: false
|
||||||
field :prenom, String, null: false
|
field :prenom, String, null: false
|
||||||
field :inline_adresse, String, null: false
|
field :inline_adresse, String, null: false
|
||||||
|
|
||||||
|
def effectifs
|
||||||
|
if object.effectif_mensuel.present?
|
||||||
|
[
|
||||||
|
{
|
||||||
|
mois: object.effectif_mois,
|
||||||
|
annee: object.effectif_annee,
|
||||||
|
nb: object.effectif_mensuel
|
||||||
|
}
|
||||||
|
]
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class AssociationType < Types::BaseObject
|
class AssociationType < Types::BaseObject
|
||||||
|
|
|
@ -131,8 +131,8 @@ module ApplicationHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def try_format_mois_effectif(etablissement)
|
def try_format_mois_effectif(etablissement)
|
||||||
if etablissement.effectif_mois.present? && etablissement.effectif_annee.present?
|
if etablissement.entreprise_effectif_mois.present? && etablissement.entreprise_effectif_annee.present?
|
||||||
[etablissement.effectif_mois, etablissement.effectif_annee].join('/')
|
[etablissement.entreprise_effectif_mois, etablissement.entreprise_effectif_annee].join('/')
|
||||||
else
|
else
|
||||||
''
|
''
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,9 +15,9 @@ class ApiEntreprise::EffectifsAdapter < ApiEntreprise::Adapter
|
||||||
def process_params
|
def process_params
|
||||||
if data_source[:effectifs_mensuels].present?
|
if data_source[:effectifs_mensuels].present?
|
||||||
{
|
{
|
||||||
effectif_mensuel: data_source[:effectifs_mensuels],
|
entreprise_effectif_mensuel: data_source[:effectifs_mensuels],
|
||||||
effectif_mois: @mois,
|
entreprise_effectif_mois: @mois,
|
||||||
effectif_annee: @annee
|
entreprise_effectif_annee: @annee
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{}
|
{}
|
||||||
|
|
|
@ -12,6 +12,9 @@ class Entreprise < Hashie::Dash
|
||||||
property :raison_sociale
|
property :raison_sociale
|
||||||
property :siret_siege_social
|
property :siret_siege_social
|
||||||
property :code_effectif_entreprise
|
property :code_effectif_entreprise
|
||||||
|
property :effectif_mois
|
||||||
|
property :effectif_annee
|
||||||
|
property :effectif_mensuel
|
||||||
property :date_creation
|
property :date_creation
|
||||||
property :nom
|
property :nom
|
||||||
property :prenom
|
property :prenom
|
||||||
|
|
|
@ -102,6 +102,9 @@ class Etablissement < ApplicationRecord
|
||||||
raison_sociale: entreprise_raison_sociale,
|
raison_sociale: entreprise_raison_sociale,
|
||||||
siret_siege_social: entreprise_siret_siege_social,
|
siret_siege_social: entreprise_siret_siege_social,
|
||||||
code_effectif_entreprise: entreprise_code_effectif_entreprise,
|
code_effectif_entreprise: entreprise_code_effectif_entreprise,
|
||||||
|
effectif_mensuel: entreprise_effectif_mensuel,
|
||||||
|
effectif_mois: entreprise_effectif_mois,
|
||||||
|
effectif_annee: entreprise_effectif_annee,
|
||||||
date_creation: entreprise_date_creation,
|
date_creation: entreprise_date_creation,
|
||||||
nom: entreprise_nom,
|
nom: entreprise_nom,
|
||||||
prenom: entreprise_prenom,
|
prenom: entreprise_prenom,
|
||||||
|
|
|
@ -8,6 +8,9 @@ class EntrepriseSerializer < ActiveModel::Serializer
|
||||||
:raison_sociale,
|
:raison_sociale,
|
||||||
:siret_siege_social,
|
:siret_siege_social,
|
||||||
:code_effectif_entreprise,
|
:code_effectif_entreprise,
|
||||||
|
:effectif_mois,
|
||||||
|
:effectif_annee,
|
||||||
|
:effectif_mensuel,
|
||||||
:date_creation,
|
:date_creation,
|
||||||
:nom,
|
:nom,
|
||||||
:prenom
|
:prenom
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
%th.libelle
|
%th.libelle
|
||||||
Effectif mensuel
|
Effectif mensuel
|
||||||
= try_format_mois_effectif(etablissement)
|
= try_format_mois_effectif(etablissement)
|
||||||
%td= etablissement.effectif_mensuel
|
%td= etablissement.entreprise_effectif_mensuel
|
||||||
%tr
|
%tr
|
||||||
%th.libelle Effectif de l'organisation :
|
%th.libelle Effectif de l'organisation :
|
||||||
%td= effectif(etablissement)
|
%td= effectif(etablissement)
|
||||||
|
|
7
db/migrate/20200421174642_rename_effectif_mensuel.rb
Normal file
7
db/migrate/20200421174642_rename_effectif_mensuel.rb
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
class RenameEffectifMensuel < ActiveRecord::Migration[5.2]
|
||||||
|
def change
|
||||||
|
rename_column :etablissements, :effectif_mensuel, :entreprise_effectif_mensuel
|
||||||
|
rename_column :etablissements, :effectif_mois, :entreprise_effectif_mois
|
||||||
|
rename_column :etablissements, :effectif_annee, :entreprise_effectif_annee
|
||||||
|
end
|
||||||
|
end
|
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 2020_04_09_075320) do
|
ActiveRecord::Schema.define(version: 2020_04_21_174642) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -310,9 +310,9 @@ ActiveRecord::Schema.define(version: 2020_04_09_075320) do
|
||||||
t.datetime "created_at"
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at"
|
t.datetime "updated_at"
|
||||||
t.boolean "diffusable_commercialement"
|
t.boolean "diffusable_commercialement"
|
||||||
t.string "effectif_mois"
|
t.string "entreprise_effectif_mois"
|
||||||
t.string "effectif_annee"
|
t.string "entreprise_effectif_annee"
|
||||||
t.decimal "effectif_mensuel"
|
t.decimal "entreprise_effectif_mensuel"
|
||||||
t.index ["dossier_id"], name: "index_etablissements_on_dossier_id"
|
t.index ["dossier_id"], name: "index_etablissements_on_dossier_id"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -197,6 +197,9 @@ describe API::V1::DossiersController do
|
||||||
:raison_sociale,
|
:raison_sociale,
|
||||||
:siret_siege_social,
|
:siret_siege_social,
|
||||||
:code_effectif_entreprise,
|
:code_effectif_entreprise,
|
||||||
|
:effectif_mois,
|
||||||
|
:effectif_annee,
|
||||||
|
:effectif_mensuel,
|
||||||
:date_creation,
|
:date_creation,
|
||||||
:nom,
|
:nom,
|
||||||
:prenom
|
:prenom
|
||||||
|
|
|
@ -327,7 +327,7 @@ describe Users::DossiersController, type: :controller do
|
||||||
expect(dossier.etablissement.entreprise).to be_present
|
expect(dossier.etablissement.entreprise).to be_present
|
||||||
expect(dossier.etablissement.exercices).to be_present
|
expect(dossier.etablissement.exercices).to be_present
|
||||||
expect(dossier.etablissement.association?).to be(true)
|
expect(dossier.etablissement.association?).to be(true)
|
||||||
expect(dossier.etablissement.effectif_mensuel).to be_present
|
expect(dossier.etablissement.entreprise_effectif_mensuel).to be_present
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -20,7 +20,7 @@ describe ApiEntreprise::EffectifsAdapter do
|
||||||
end
|
end
|
||||||
|
|
||||||
it "renvoie les effectifs du mois demandé" do
|
it "renvoie les effectifs du mois demandé" do
|
||||||
expect(subject[:effectif_mensuel]).to eq(100.5)
|
expect(subject[:entreprise_effectif_mensuel]).to eq(100.5)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -46,7 +46,7 @@ describe ApiEntrepriseService do
|
||||||
expect(result[:siret]).to eq(siret)
|
expect(result[:siret]).to eq(siret)
|
||||||
expect(result[:association_rna]).to eq(rna)
|
expect(result[:association_rna]).to eq(rna)
|
||||||
expect(result[:exercices_attributes]).to_not be_empty
|
expect(result[:exercices_attributes]).to_not be_empty
|
||||||
expect(result[:effectif_mensuel]).to eq(effectif_mensuel)
|
expect(result[:entreprise_effectif_mensuel]).to eq(effectif_mensuel)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue