1278 lines
40 KiB
Markdown
1278 lines
40 KiB
Markdown
---
|
||
type: archive
|
||
source: OneNote PA-Perso
|
||
periode: 2019-2026
|
||
---
|
||
|
||
# Notes techniques - Import OneNote
|
||
|
||
## SQL (22 mai 2020)
|
||
|
||
Index clustered :
|
||
Index ordonné, 1 index par table
|
||
|
||
Plan de formation
|
||
|
||
Bonnes pratiques
|
||
|
||
- : Limiter le nombre de colonnes retournés
|
||
|
||
- idéal
|
||
|
||
- Over Indexing : Ne jamais créer des index pour rien
|
||
- Duplicate Index :
|
||
|
||
Management -
|
||
|
||
---
|
||
|
||
## Linux Ubuntu (25 avril 2024)
|
||
|
||
Formation 1
|
||
|
||
---
|
||
|
||
## WSL (4 novembre 2025)
|
||
|
||
Installation
|
||
|
||
wsl.exe --install Ubuntu-24.04
|
||
|
||
sudo apt install -y curl git zip unzip
|
||
|
||
sudo apt install php
|
||
|
||
- PHP & extensions indispensables
|
||
|
||
sudo apt update
|
||
|
||
sudo apt install -y php php-cli php-xml php-mbstring php-zip php-curl php-intl php-sqlite3 php-mysql unzip git
|
||
|
||
php -v
|
||
|
||
- Composer
|
||
|
||
composer -V || {
|
||
|
||
cd ~
|
||
|
||
php -r "copy('https://getcomposer.org/installer','composer-setup.php');"
|
||
|
||
php composer-setup.php
|
||
|
||
sudo mv composer.phar /usr/local/bin/composer
|
||
|
||
composer -V
|
||
|
||
}
|
||
|
||
- Symfony CLI (recommandé)
|
||
|
||
curl -sS https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh | sudo bash
|
||
|
||
sudo apt install -y symfony-cli
|
||
|
||
symfony -v
|
||
|
||
1) Installer Composer (si besoin)
|
||
|
||
composer -V || {
|
||
|
||
cd ~
|
||
|
||
php -r "copy('https://getcomposer.org/installer','composer-setup.php');"
|
||
|
||
php composer-setup.php
|
||
|
||
sudo mv composer.phar /usr/local/bin/composer
|
||
|
||
composer -V
|
||
|
||
}
|
||
|
||
2) Installer les vendors du projet
|
||
|
||
Place-toi à la racine du projet (celle qui contient composer.json) :
|
||
|
||
cd /mnt/d/travail/cockpit/cockpit-api
|
||
|
||
# Si tu as un composer.lock :
|
||
|
||
composer install --no-interaction
|
||
|
||
# S’il n’y a PAS de composer.lock (ou projet tout neuf) :
|
||
|
||
# composer update --no-interaction
|
||
|
||
---
|
||
|
||
## EfCore (9 mai 2022)
|
||
|
||
Amorcage des données
|
||
- Data Seed : https://docs.microsoft.com/en-us/ef/core/modeling/data-seeding
|
||
|
||
set ASPNETCORE_ENVIRONMENT='Development.PA'
|
||
|
||
Update-database
|
||
20220818151253_Alerte_V2
|
||
|
||
Installation
|
||
du tool global
|
||
|
||
---
|
||
|
||
## Dapper (26 janvier 2023)
|
||
|
||
Products/GetProductById
|
||
|
||
I6TM47
|
||
|
||
(4673.7
|
||
ms)
|
||
|
||
Thu, 26 Jan 2023 16:35:30 GMT
|
||
|
||
duration (ms)
|
||
|
||
sql (ms)
|
||
|
||
https://prod.yeswehome.6tm.eu/api/v1.0/products/645a334c-70d4-4d04-8d2d-614f9d0dac44
|
||
|
||
2.9
|
||
|
||
0.9 (1)
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
4667.9
|
||
|
||
4200.9 (10)
|
||
|
||
sql:
|
||
|
||
89.9 %
|
||
|
||
more columns show trivial
|
||
|
||
Call Type
|
||
|
||
Step
|
||
|
||
Duration (from start)
|
||
|
||
Call Stack
|
||
|
||
Command
|
||
|
||
sql - Open
|
||
|
||
https://prod.yeswehome.6tm.eu/api/v1.0/products/645a334c-70d4-4d04-8d2d-614f9d0dac44
|
||
|
||
0.2 ms (T+1.5 ms)
|
||
|
||
InitializeReader > ExecuteReader > Open > OpenInternal > ConnectionOpening > BroadcastConnectionOpening > DispatchEventData > Write
|
||
|
||
Connection Open()
|
||
|
||
sql - ExecuteReader
|
||
|
||
https://prod.yeswehome.6tm.eu/api/v1.0/products/645a334c-70d4-4d04-8d2d-614f9d0dac44
|
||
|
||
0.5 ms (T+1.7 ms)
|
||
|
||
Execute > InitializeReader > ExecuteReader > CommandReaderExecuting > BroadcastCommandExecuting > DispatchEventData > Write
|
||
|
||
SELECTTOP(1) [c].[Id], [c].[Actif], [c].[AdresseID], [c].[ClientParentID], [c].[DateCreation], [c].[DateLastSynchro], [c].[DateUpdate], [c].[DistributeurID], [c].[FormeJuridique], [c].[IdentifiantExterne], [c].[IsSynchronizationRunning], [c].[Logo], [c].[Nom], [c].[PaysID], [c].[TypesDeStructure]
|
||
|
||
FROM[Clients] AS[c]
|
||
|
||
WHERE[c].[Id] = 2de82684-e644-418f-9385-9c7d574ec15e
|
||
|
||
sql - Close
|
||
|
||
https://prod.yeswehome.6tm.eu/api/v1.0/products/645a334c-70d4-4d04-8d2d-614f9d0dac44
|
||
|
||
0.2 ms (T+2.4 ms)
|
||
|
||
SingleOrDefault > Dispose > Dispose > Close > ConnectionClosing > BroadcastConnectionClosing > DispatchEventData > Write
|
||
|
||
Connection Close()
|
||
|
||
sql - Open
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.2 ms (T+4.8 ms)
|
||
|
||
InitializeReader > ExecuteReader > Open > OpenInternal > ConnectionOpening > BroadcastConnectionOpening > DispatchEventData > Write
|
||
|
||
Connection Open()
|
||
|
||
sql - ExecuteReader
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.6 ms (T+5.1 ms)
|
||
|
||
Execute > InitializeReader > ExecuteReader > CommandReaderExecuting > BroadcastCommandExecuting > DispatchEventData > Write
|
||
|
||
SELECT[t].[Id], [t].[Actif], [t].[AffichageDimensionEpaisseur], [t].[CatalogueID], [t].[ClasseEnergetique], [t].[CodeEAN], [t].[CodeEANDeRemplacement], [t].[CodeEANEquivalent], [t].[CodeTransport], [t].[DateCreation], [t].[DateUpdate], [t].[Description], [t].[Duree], [t].[Hashtags], [t].[IdentifiantExterne], [t].[IsDecline], [t].[Libelle], [t].[MarqueID], [t].[ParentId], [t].[PiecesDetachesCommentaire], [t].[PiecesDetachesDuree], [t].[Points], [t].[PointsDePose], [t].[PointsDeSacem], [t].[PrixConseille], [t].[ReferenceCommande], [t].[ReferenceFabriquant], [t].[ReferenceInterne], [t].[Relation], [t].[Sens], [t].[Statut], [t].[TvaTaux], [t].[TvaTauxReduit], [t].[UniteDeVente], [p0].[Id], [p0].[Actif], [p0].[AffichageDimensionEpaisseur], [p0].[CatalogueID], [p0].[ClasseEnergetique], [p0].[CodeEAN], [p0].[CodeEANDeRemplacement], [p0].[CodeEANEquivalent], [p0].[CodeTransport], [p0].[DateCreation], [p0].[DateUpdate], [p0].[Description], [p0].[Duree], [p0].[Hashtags], [p0].[IdentifiantExterne], [p0].[IsDecline], [p0].[Libelle], [p0].[MarqueID], [p0].[ParentId], [p0].[PiecesDetachesCommentaire], [p0].[PiecesDetachesDuree], [p0].[Points], [p0].[PointsDePose], [p0].[PointsDeSacem], [p0].[PrixConseille], [p0].[ReferenceCommande], [p0].[ReferenceFabriquant], [p0].[ReferenceInterne], [p0].[Relation], [p0].[Sens], [p0].[Statut], [p0].[TvaTaux], [p0].[TvaTauxReduit], [p0].[UniteDeVente]
|
||
|
||
FROM(
|
||
|
||
SELECTTOP(1) [p].[Id], [p].[Actif], [p].[AffichageDimensionEpaisseur], [p].[CatalogueID], [p].[ClasseEnergetique], [p].[CodeEAN], [p].[CodeEANDeRemplacement], [p].[CodeEANEquivalent], [p].[CodeTransport], [p].[DateCreation], [p].[DateUpdate], [p].[Description], [p].[Duree], [p].[Hashtags], [p].[IdentifiantExterne], [p].[IsDecline], [p].[Libelle], [p].[MarqueID], [p].[ParentId], [p].[PiecesDetachesCommentaire], [p].[PiecesDetachesDuree], [p].[Points], [p].[PointsDePose], [p].[PointsDeSacem], [p].[PrixConseille], [p].[ReferenceCommande], [p].[ReferenceFabriquant], [p].[ReferenceInterne], [p].[Relation], [p].[Sens], [p].[Statut], [p].[TvaTaux], [p].[TvaTauxReduit], [p].[UniteDeVente]
|
||
|
||
FROM[Produits] AS[p]
|
||
|
||
WHERE[p].[Id] = 645a334c-70d4-4d04-8d2d-614f9d0dac44
|
||
|
||
) AS[t]
|
||
|
||
LEFTJOIN[Produits] AS[p0] ON[t].[Id] = [p0].[ParentId]
|
||
|
||
ORDERBY[t].[Id], [p0].[Id]
|
||
|
||
232.70 ms
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync — 232.70 ms
|
||
|
||
sql - Close
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.4 ms (T+238.4 ms)
|
||
|
||
SingleOrDefault > Dispose > Dispose > Close > ConnectionClosing > BroadcastConnectionClosing > DispatchEventData > Write
|
||
|
||
Connection Close()
|
||
|
||
sql - Open
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.3 ms (T+240.1 ms)
|
||
|
||
InitializeReader > ExecuteReader > Open > OpenInternal > ConnectionOpening > BroadcastConnectionOpening > DispatchEventData > Write
|
||
|
||
Connection Open()
|
||
|
||
sql - ExecuteReader
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
189.4 ms (T+240.5 ms)
|
||
|
||
Execute > InitializeReader > ExecuteReader > CommandReaderExecuting > BroadcastCommandExecuting > DispatchEventData > Write
|
||
|
||
SELECT[t0].[Libelle], [t0].[CaracteristiquesDistributeurID] AS[Id], [t0].[Valeur], [t0].[Ordre]
|
||
|
||
FROM(
|
||
|
||
SELECTDISTINCT[c].[Libelle], [p1].[CaracteristiquesDistributeurID], [p1].[Valeur], [c].[Ordre]
|
||
|
||
FROM[Produits] AS[p]
|
||
|
||
INNERJOIN[Produits] AS[p0] ON[p].[Id] = [p0].[ParentId]
|
||
|
||
INNERJOIN[ProduitCaracteristiqueDistributeurs] AS[p1] ON[p0].[Id] = [p1].[ProduitID]
|
||
|
||
INNERJOIN[CaracteristiqueDistributeurs] AS[c] ON[p1].[CaracteristiquesDistributeurID] = [c].[Id]
|
||
|
||
WHERE(([p].[Id] = 645a334c-70d4-4d04-8d2d-614f9d0dac44) AND([p].[Actif] = CAST(1ASbit))) ANDEXISTS(
|
||
|
||
SELECT1FROM[Produits] AS[p2]
|
||
|
||
INNERJOIN(
|
||
|
||
SELECT[p3].[ProduitID], [p3].[CaracteristiquesDistributeurID], [p3].[DateCreation], [p3].[DateUpdate], [p3].[Id], [p3].[IsDeclinable], [p3].[Valeur]
|
||
|
||
FROM[ProduitCaracteristiqueDistributeurs] AS[p3]
|
||
|
||
WHERE[p3].[IsDeclinable] = CAST(1ASbit)
|
||
|
||
) AS[t] ON[p2].[Id] = [t].[ProduitID]
|
||
|
||
WHERE([p2].[Id] = 645a334c-70d4-4d04-8d2d-614f9d0dac44) AND([t].[CaracteristiquesDistributeurID] = [p1].[CaracteristiquesDistributeurID]))
|
||
|
||
) AS[t0]
|
||
|
||
ORDERBY[t0].[Ordre]
|
||
|
||
sql - Close
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.4 ms (T+430.4 ms)
|
||
|
||
GetDeclinableCaract > ToList > Dispose > Dispose > Close > ConnectionClosing > BroadcastConnectionClosing > DispatchEventData > Write
|
||
|
||
Connection Close()
|
||
|
||
37.20 ms
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync — 37.20 ms
|
||
|
||
sql - Open
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.4 ms (T+468.0 ms)
|
||
|
||
InitializeReader > ExecuteReader > Open > OpenInternal > ConnectionOpening > BroadcastConnectionOpening > DispatchEventData > Write
|
||
|
||
Connection Open()
|
||
|
||
4.30 ms
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync — 4.30 ms
|
||
|
||
sql - ExecuteReader
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
383.8 ms (T+472.7 ms)
|
||
|
||
Execute > InitializeReader > ExecuteReader > CommandReaderExecuting > BroadcastCommandExecuting > DispatchEventData > Write
|
||
|
||
SELECT[t].[Id], [t].[Actif], [t].[AffichageDimensionEpaisseur], [t].[CatalogueID], [t].[ClasseEnergetique], [t].[CodeEAN], [t].[CodeEANDeRemplacement], [t].[CodeEANEquivalent], [t].[CodeTransport], [t].[DateCreation], [t].[DateUpdate], [t].[Description], [t].[Duree], [t].[Hashtags], [t].[IdentifiantExterne], [t].[IsDecline], [t].[Libelle], [t].[MarqueID], [t].[ParentId], [t].[PiecesDetachesCommentaire], [t].[PiecesDetachesDuree], [t].[Points], [t].[PointsDePose], [t].[PointsDeSacem], [t].[PrixConseille], [t].[ReferenceCommande], [t].[ReferenceFabriquant], [t].[ReferenceInterne], [t].[Relation], [t].[Sens], [t].[Statut], [t].[TvaTaux], [t].[TvaTauxReduit], [t].[UniteDeVente], [t].[Id0], [p2].[ProduitID], [p2].[CaracteristiquesDistributeurID], [p2].[DateCreation], [p2].[DateUpdate], [p2].[Id], [p2].[IsDeclinable], [p2].[Valeur]
|
||
|
||
FROM(
|
||
|
||
SELECTTOP(1) [p0].[Id], [p0].[Actif], [p0].[AffichageDimensionEpaisseur], [p0].[CatalogueID], [p0].[ClasseEnergetique], [p0].[CodeEAN], [p0].[CodeEANDeRemplacement], [p0].[CodeEANEquivalent], [p0].[CodeTransport], [p0].[DateCreation], [p0].[DateUpdate], [p0].[Description], [p0].[Duree], [p0].[Hashtags], [p0].[IdentifiantExterne], [p0].[IsDecline], [p0].[Libelle], [p0].[MarqueID], [p0].[ParentId], [p0].[PiecesDetachesCommentaire], [p0].[PiecesDetachesDuree], [p0].[Points], [p0].[PointsDePose], [p0].[PointsDeSacem], [p0].[PrixConseille], [p0].[ReferenceCommande], [p0].[ReferenceFabriquant], [p0].[ReferenceInterne], [p0].[Relation], [p0].[Sens], [p0].[Statut], [p0].[TvaTaux], [p0].[TvaTauxReduit], [p0].[UniteDeVente], [p].[Id] AS[Id0]
|
||
|
||
FROM[Produits] AS[p]
|
||
|
||
INNERJOIN[Produits] AS[p0] ON[p].[Id] = [p0].[ParentId]
|
||
|
||
WHERE([p].[Id] = 645a334c-70d4-4d04-8d2d-614f9d0dac44) AND((
|
||
|
||
SELECTCOUNT(*)
|
||
|
||
FROM[ProduitCaracteristiqueDistributeurs] AS[p1]
|
||
|
||
WHERE([p0].[Id] = [p1].[ProduitID]) ANDEXISTS(
|
||
|
||
SELECT1FROM(
|
||
|
||
SELECTTOP(<R><V Guid0="b9ce7697-d3c7-4a3b-b06c-2e3db6b1f255"String0="2"/><V Guid0="00659f66-65d7-433a-ba8a-29f926b77d99"String0="Gauche"/><V Guid0="bebb9f7b-5c97-40f0-82e4-9b2730a67910"String0="J - Jazz"/><V Guid0="fc6af0c1-66c5-4ba3-a858-ea50110f6165"String0="DON GIOVANNI"/></R>)
|
||
|
||
I.value('@Guid0[1] cast as xs:string?', 'uniqueidentifier') AS[Guid0],
|
||
|
||
I.value('@String0[1] cast as xs:string?', 'varchar(max)') AS[String0]
|
||
|
||
FROM<R><V Guid0="b9ce7697-d3c7-4a3b-b06c-2e3db6b1f255"String0="2"/><V Guid0="00659f66-65d7-433a-ba8a-29f926b77d99"String0="Gauche"/><V Guid0="bebb9f7b-5c97-40f0-82e4-9b2730a67910"String0="J - Jazz"/><V Guid0="fc6af0c1-66c5-4ba3-a858-ea50110f6165"String0="DON GIOVANNI"/></R>.nodes('/R/V') N(I)
|
||
|
||
) AS[q]
|
||
|
||
WHERE([q].[Guid0] = [p1].[CaracteristiquesDistributeurID]) AND([q].[String0] = [p1].[Valeur]))) = 4)
|
||
|
||
ORDERBY[p0].[DateCreation]
|
||
|
||
) AS[t]
|
||
|
||
LEFTJOIN[ProduitCaracteristiqueDistributeurs] AS[p2] ON[t].[Id] = [p2].[ProduitID]
|
||
|
||
ORDERBY[t].[DateCreation], [t].[Id0], [t].[Id], [p2].[ProduitID], [p2].[CaracteristiquesDistributeurID]
|
||
|
||
40.00 ms
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync — 40.00 ms
|
||
|
||
sql - Close
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.4 ms (T+896.5 ms)
|
||
|
||
SingleOrDefault > Dispose > Dispose > Close > ConnectionClosing > BroadcastConnectionClosing > DispatchEventData > Write
|
||
|
||
Connection Close()
|
||
|
||
8.80 ms
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync — 8.80 ms
|
||
|
||
sql - Open
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.3 ms (T+905.7 ms)
|
||
|
||
InitializeReader > ExecuteReader > Open > OpenInternal > ConnectionOpening > BroadcastConnectionOpening > DispatchEventData > Write
|
||
|
||
Connection Open()
|
||
|
||
sql - ExecuteReader
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
1551.1 ms (T+906.4 ms)
|
||
|
||
Execute > InitializeReader > ExecuteReader > CommandReaderExecuting > BroadcastCommandExecuting > DispatchEventData > Write
|
||
|
||
SELECT[t0].[Libelle], [t0].[CaracteristiquesDistributeurID] AS[Id], [t0].[Valeur], [t0].[Ordre]
|
||
|
||
FROM(
|
||
|
||
SELECTDISTINCT[c].[Libelle], [p1].[CaracteristiquesDistributeurID], [p1].[Valeur], [c].[Ordre]
|
||
|
||
FROM[Produits] AS[p]
|
||
|
||
INNERJOIN[Produits] AS[p0] ON[p].[Id] = [p0].[ParentId]
|
||
|
||
INNERJOIN[ProduitCaracteristiqueDistributeurs] AS[p1] ON[p0].[Id] = [p1].[ProduitID]
|
||
|
||
INNERJOIN[CaracteristiqueDistributeurs] AS[c] ON[p1].[CaracteristiquesDistributeurID] = [c].[Id]
|
||
|
||
WHERE((([p].[Id] = 645a334c-70d4-4d04-8d2d-614f9d0dac44) AND([p].[Actif] = CAST(1ASbit))) AND((
|
||
|
||
SELECTCOUNT(*)
|
||
|
||
FROM[ProduitCaracteristiqueDistributeurs] AS[p2]
|
||
|
||
WHERE([p0].[Id] = [p2].[ProduitID]) ANDEXISTS(
|
||
|
||
SELECT1FROM(
|
||
|
||
SELECTTOP(<R><V Guid0="b9ce7697-d3c7-4a3b-b06c-2e3db6b1f255"String0="2"/><V Guid0="00659f66-65d7-433a-ba8a-29f926b77d99"String0="Gauche"/><V Guid0="bebb9f7b-5c97-40f0-82e4-9b2730a67910"String0="J - Jazz"/><V Guid0="fc6af0c1-66c5-4ba3-a858-ea50110f6165"String0="DON GIOVANNI"/></R>)
|
||
|
||
I.value('@Guid0[1] cast as xs:string?', 'uniqueidentifier') AS[Guid0],
|
||
|
||
I.value('@String0[1] cast as xs:string?', 'varchar(max)') AS[String0]
|
||
|
||
FROM<R><V Guid0="b9ce7697-d3c7-4a3b-b06c-2e3db6b1f255"String0="2"/><V Guid0="00659f66-65d7-433a-ba8a-29f926b77d99"String0="Gauche"/><V Guid0="bebb9f7b-5c97-40f0-82e4-9b2730a67910"String0="J - Jazz"/><V Guid0="fc6af0c1-66c5-4ba3-a858-ea50110f6165"String0="DON GIOVANNI"/></R>.nodes('/R/V') N(I)
|
||
|
||
) AS[q]
|
||
|
||
WHERE([q].[Guid0] = [p2].[CaracteristiquesDistributeurID]) AND([q].[String0] = [p2].[Valeur]))) = 4)) ANDEXISTS(
|
||
|
||
SELECT1FROM[Produits] AS[p3]
|
||
|
||
INNERJOIN(
|
||
|
||
SELECT[p4].[ProduitID], [p4].[CaracteristiquesDistributeurID], [p4].[DateCreation], [p4].[DateUpdate], [p4].[Id], [p4].[IsDeclinable], [p4].[Valeur]
|
||
|
||
FROM[ProduitCaracteristiqueDistributeurs] AS[p4]
|
||
|
||
WHERE[p4].[IsDeclinable] = CAST(1ASbit)
|
||
|
||
) AS[t] ON[p3].[Id] = [t].[ProduitID]
|
||
|
||
WHERE([p3].[Id] = 645a334c-70d4-4d04-8d2d-614f9d0dac44) AND([t].[CaracteristiquesDistributeurID] = [p1].[CaracteristiquesDistributeurID]))
|
||
|
||
) AS[t0]
|
||
|
||
ORDERBY[t0].[Ordre]
|
||
|
||
sql - Close
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.4 ms (T+2457.7 ms)
|
||
|
||
GetDeclinableCaract > ToList > Dispose > Dispose > Close > ConnectionClosing > BroadcastConnectionClosing > DispatchEventData > Write
|
||
|
||
Connection Close()
|
||
|
||
sql - Open
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.3 ms (T+2460.0 ms)
|
||
|
||
InitializeReader > ExecuteReader > Open > OpenInternal > ConnectionOpening > BroadcastConnectionOpening > DispatchEventData > Write
|
||
|
||
Connection Open()
|
||
|
||
sql - ExecuteReader
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
2067.3 ms (T+2460.4 ms)
|
||
|
||
Execute > InitializeReader > ExecuteReader > CommandReaderExecuting > BroadcastCommandExecuting > DispatchEventData > Write
|
||
|
||
SELECT[t3].[c], [t3].[Id], [t3].[Libelle], [t3].[Id0], [t3].[Libelle0], [t3].[Id1], [t3].[Nom], [t3].[c0], [t3].[Points], [t3].[Id2], [t3].[Libelle1], [t3].[PrixConseille], [t3].[ParentId], [t3].[c1], [t3].[ReferenceFabriquant], [t3].[c2], [t3].[ReferenceCommande], [t3].[Id3], [t3].[Libelle2], [t3].[c3], [t3].[c4], [t3].[Libelle3], [t3].[Description], [t3].[ReferenceFabriquant0], [t3].[c5], [t3].[Id4], [t3].[Id5], [t3].[Id6], [t3].[RegroupementID], [t3].[ProduitID], [t3].[Id7], [t4].[Id], [t4].[DateCreation], [t4].[DateUpdate], [t4].[DistributeurId], [t4].[HasValues], [t4].[IdentifiantExterne], [t4].[Libelle], [t4].[Ordre], [t4].[Theme], [t4].[TypeMetier], [t4].[ProduitID], [t4].[CaracteristiquesDistributeurID], [t4].[CaracteristiquePimID], [t4].[CaracteristiqueDistributeurID], [t4].[DateCreation0], [t4].[DateUpdate0], [t4].[Id0], [t5].[TypeDeFichier], [t5].[Ordre], [t5].[URL], [t5].[Description], [t5].[Libelle], [t5].[Id], [p4].[Id], [p4].[Actif], [p4].[ClientAcheteurID], [p4].[DateCreation], [p4].[DateUpdate], [p4].[Description], [p4].[Libelle], [p4].[Ordre], [p4].[ProduitID], [p4].[TypeDeFichier], [p4].[URL], [t6].[TypeDeFichier], [t6].[Ordre], [t6].[URL], [t6].[Description], [t6].[Libelle], [t6].[Id], [p6].[Id], CAST([p6].[TypeEcotaxeId] ASint), [p6].[Code], [p6].[MontantHt], [p6].[MontantTtc], [p6].[ProduitID], [p6].[TypeEcotaxeId], [t7].[Id], [t7].[ClientID], [t7].[DateCreation], [t7].[DateUpdate], [t7].[IdentifiantExterne], [t7].[Libelle], [t7].[Ordre], [t7].[Theme], [t7].[Valeur], [t7].[IsDeclinable], [t7].[Id0], [t8].[Id], [t8].[DateCreation], [t8].[DateUpdate], [t8].[DistributeurId], [t8].[HasValues], [t8].[IdentifiantExterne], [t8].[Libelle], [t8].[Ordre], [t8].[Theme], [t8].[TypeMetier], [t8].[Valeur], [t8].[IsDeclinable], [t8].[ProduitID], [t8].[CaracteristiquesDistributeurID], [t8].[CaracteristiquePimID], [t8].[CaracteristiqueDistributeurID], [t8].[DateCreation0], [t8].[DateUpdate0], [t8].[Id0], [t10].[Id], [t10].[Code], [t10].[ProduitID], [t10].[NomenclatureID], [t10].[Id0], [t10].[NomenclaturePimID], [t10].[NomenclatureDistributeurID], [c5].[Id], [c5].[ClientID], [c5].[DateCreation], [c5].[DateUpdate], [c5].[Description], [c5].[Libelle], [c5].[PrixConseille], [c5].[ProduitID], [c5].[ReferenceFabriquant]
|
||
|
||
FROM(
|
||
|
||
SELECTTOP(1) CASEWHEN[p].[ParentId] ISNULLTHENCAST(1ASbit)
|
||
|
||
ELSECAST(0ASbit)
|
||
|
||
ENDAS[c], [p0].[Id], [p0].[Libelle], [m].[Id] AS[Id0], [m].[Libelle] AS[Libelle0], [c0].[Id] AS[Id1], [c0].[Nom], COALESCE([p].[Description], N'') AS[c0], [p].[Points], [p].[Id] AS[Id2], [p].[Libelle] AS[Libelle1], [p].[PrixConseille], [p].[ParentId], COALESCE([p].[Hashtags], N'') AS[c1], [p].[ReferenceFabriquant], CASEWHEN[p1].[Id] ISNOTNULLTHENCAST(1ASbit)
|
||
|
||
ELSECAST(0ASbit)
|
||
|
||
ENDAS[c2], [p].[ReferenceCommande], [t0].[Id] AS[Id3], [t0].[Libelle] AS[Libelle2], [t0].[c] AS[c3], CASEWHENEXISTS(
|
||
|
||
SELECT1FROM[ClientProduitSurcharge] AS[c]
|
||
|
||
WHERE[p].[Id] = [c].[ProduitID]) THENCAST(1ASbit)
|
||
|
||
ELSECAST(0ASbit)
|
||
|
||
ENDAS[c4], [t2].[Libelle] AS[Libelle3], [t2].[Description], [t2].[ReferenceFabriquant] AS[ReferenceFabriquant0], [t2].[c] AS[c5], [d].[Id] AS[Id4], [a].[Id] AS[Id5], [p1].[Id] AS[Id6], [t0].[RegroupementID], [t0].[ProduitID], [t2].[Id] AS[Id7]
|
||
|
||
FROM[Produits] AS[p]
|
||
|
||
INNERJOIN[Catalogues] AS[c0] ON[p].[CatalogueID] = [c0].[Id]
|
||
|
||
INNERJOIN[Distributeurs] AS[d] ON[c0].[DistributeurID] = [d].[Id]
|
||
|
||
INNERJOIN[Adresses] AS[a] ON[d].[AdresseID] = [a].[Id]
|
||
|
||
INNERJOIN[Pays] AS[p0] ON[a].[PaysID] = [p0].[Id]
|
||
|
||
INNERJOIN[Marques] AS[m] ON[p].[MarqueID] = [m].[Id]
|
||
|
||
LEFTJOIN[Produits] AS[p1] ON[p].[ParentId] = [p1].[Id]
|
||
|
||
LEFTJOIN(
|
||
|
||
SELECT[t].[Id], [t].[Libelle], [t].[c], [t].[RegroupementID], [t].[ProduitID]
|
||
|
||
FROM(
|
||
|
||
SELECT[r0].[Id], [r0].[Libelle], 1AS[c], [r].[RegroupementID], [r].[ProduitID], ROW_NUMBER() OVER(PARTITIONBY[r].[ProduitID] ORDERBY[r].[RegroupementID], [r].[ProduitID], [r0].[Id]) AS[row]
|
||
|
||
FROM[RegroupementProduits] AS[r]
|
||
|
||
INNERJOIN[Regroupement] AS[r0] ON[r].[RegroupementID] = [r0].[Id]
|
||
|
||
) AS[t]
|
||
|
||
WHERE[t].[row] <= 1) AS[t0] ON[p].[Id] = [t0].[ProduitID]
|
||
|
||
LEFTJOIN(
|
||
|
||
SELECT[t1].[Libelle], [t1].[Description], [t1].[ReferenceFabriquant], [t1].[c], [t1].[Id], [t1].[ProduitID]
|
||
|
||
FROM(
|
||
|
||
SELECT[c1].[Libelle], [c1].[Description], [c1].[ReferenceFabriquant], 1AS[c], [c1].[Id], [c1].[ProduitID], ROW_NUMBER() OVER(PARTITIONBY[c1].[ProduitID] ORDERBY[c1].[Id]) AS[row]
|
||
|
||
FROM[ClientProduitSurcharge] AS[c1]
|
||
|
||
) AS[t1]
|
||
|
||
WHERE[t1].[row] <= 1) AS[t2] ON[p].[Id] = [t2].[ProduitID]
|
||
|
||
WHERE([p].[Id] = 1188a6a4-9558-4d63-b180-c76016bb7ef4) AND([p].[Actif] = CAST(1ASbit))
|
||
|
||
) AS[t3]
|
||
|
||
LEFTJOIN(
|
||
|
||
SELECT[c2].[Id], [c2].[DateCreation], [c2].[DateUpdate], [c2].[DistributeurId], [c2].[HasValues], [c2].[IdentifiantExterne], [c2].[Libelle], [c2].[Ordre], [c2].[Theme], [c2].[TypeMetier], [p2].[ProduitID], [p2].[CaracteristiquesDistributeurID], [m0].[CaracteristiquePimID], [m0].[CaracteristiqueDistributeurID], [m0].[DateCreation] AS[DateCreation0], [m0].[DateUpdate] AS[DateUpdate0], [m0].[Id] AS[Id0]
|
||
|
||
FROM[ProduitCaracteristiqueDistributeurs] AS[p2]
|
||
|
||
INNERJOIN[CaracteristiqueDistributeurs] AS[c2] ON[p2].[CaracteristiquesDistributeurID] = [c2].[Id]
|
||
|
||
LEFTJOIN[MappageCaracteristiquePimCaracteristiqueDistributeur] AS[m0] ON[c2].[Id] = [m0].[CaracteristiqueDistributeurID]
|
||
|
||
) AS[t4] ON[t3].[Id2] = [t4].[ProduitID]
|
||
|
||
LEFTJOIN(
|
||
|
||
SELECT[p3].[TypeDeFichier], [p3].[Ordre], [p3].[URL], [p3].[Description], [p3].[Libelle], [p3].[Id], [p3].[ProduitID]
|
||
|
||
FROM[ProduitFichiers] AS[p3]
|
||
|
||
WHERE[p3].[Actif] = CAST(1ASbit)
|
||
|
||
) AS[t5] ON[t3].[Id2] = [t5].[ProduitID]
|
||
|
||
LEFTJOIN[ProduitFichiers] AS[p4] ON[t3].[Id6] = [p4].[ProduitID]
|
||
|
||
LEFTJOIN(
|
||
|
||
SELECT[p5].[TypeDeFichier], [p5].[Ordre], [p5].[URL], [p5].[Description], [p5].[Libelle], [p5].[Id], [p5].[ProduitID]
|
||
|
||
FROM[ProduitFichiers] AS[p5]
|
||
|
||
WHERE[p5].[Actif] = CAST(1ASbit)
|
||
|
||
) AS[t6] ON[t3].[Id6] = [t6].[ProduitID]
|
||
|
||
LEFTJOIN[ProduitEcotaxe] AS[p6] ON[t3].[Id2] = [p6].[ProduitID]
|
||
|
||
LEFTJOIN(
|
||
|
||
SELECT[c3].[Id], [c3].[ClientID], [c3].[DateCreation], [c3].[DateUpdate], [c3].[IdentifiantExterne], [c3].[Libelle], [c3].[Ordre], [c3].[Theme], [p7].[Valeur], [p7].[IsDeclinable], [p7].[Id] AS[Id0], [p7].[ProduitID]
|
||
|
||
FROM[ProduitCaracteristiqueAcheteur] AS[p7]
|
||
|
||
INNERJOIN[CaracteristiquesAcheteur] AS[c3] ON[p7].[CaracteristiquesAcheteurID] = [c3].[Id]
|
||
|
||
) AS[t7] ON[t3].[Id2] = [t7].[ProduitID]
|
||
|
||
LEFTJOIN(
|
||
|
||
SELECT[c4].[Id], [c4].[DateCreation], [c4].[DateUpdate], [c4].[DistributeurId], [c4].[HasValues], [c4].[IdentifiantExterne], [c4].[Libelle], [c4].[Ordre], [c4].[Theme], [c4].[TypeMetier], [p8].[Valeur], [p8].[IsDeclinable], [p8].[ProduitID], [p8].[CaracteristiquesDistributeurID], [m1].[CaracteristiquePimID], [m1].[CaracteristiqueDistributeurID], [m1].[DateCreation] AS[DateCreation0], [m1].[DateUpdate] AS[DateUpdate0], [m1].[Id] AS[Id0]
|
||
|
||
FROM[ProduitCaracteristiqueDistributeurs] AS[p8]
|
||
|
||
INNERJOIN[CaracteristiqueDistributeurs] AS[c4] ON[p8].[CaracteristiquesDistributeurID] = [c4].[Id]
|
||
|
||
LEFTJOIN[MappageCaracteristiquePimCaracteristiqueDistributeur] AS[m1] ON[c4].[Id] = [m1].[CaracteristiqueDistributeurID]
|
||
|
||
) AS[t8] ON[t3].[Id2] = [t8].[ProduitID]
|
||
|
||
LEFTJOIN(
|
||
|
||
SELECT[t9].[Id], [t9].[Code], [p9].[ProduitID], [p9].[NomenclatureID], [n].[Id] AS[Id0], [t9].[NomenclaturePimID], [t9].[NomenclatureDistributeurID]
|
||
|
||
FROM[ProduitNomenclatureDistributeurs] AS[p9]
|
||
|
||
INNERJOIN[NomenclatureDistributeurs] AS[n] ON[p9].[NomenclatureID] = [n].[Id]
|
||
|
||
INNERJOIN(
|
||
|
||
SELECT[n0].[Id], [n0].[Code], [m2].[NomenclaturePimID], [m2].[NomenclatureDistributeurID]
|
||
|
||
FROM[MappageNomenclaturePimNomenclatureDistributeur] AS[m2]
|
||
|
||
INNERJOIN[NomenclaturePIMs] AS[n0] ON[m2].[NomenclaturePimID] = [n0].[Id]
|
||
|
||
) AS[t9] ON[n].[Id] = [t9].[NomenclatureDistributeurID]
|
||
|
||
) AS[t10] ON[t3].[Id2] = [t10].[ProduitID]
|
||
|
||
LEFTJOIN[ClientProduitSurcharge] AS[c5] ON[t3].[Id2] = [c5].[ProduitID]
|
||
|
||
ORDERBY[t3].[Id2], [t3].[Id1], [t3].[Id4], [t3].[Id5], [t3].[Id], [t3].[Id0], [t3].[Id6], [t3].[RegroupementID], [t3].[ProduitID], [t3].[Id3], [t3].[Id7], [t4].[ProduitID], [t4].[CaracteristiquesDistributeurID], [t4].[Id], [t4].[CaracteristiquePimID], [t4].[CaracteristiqueDistributeurID], [t5].[Id], [p4].[Id], [t6].[Id], [p6].[ProduitID], [p6].[TypeEcotaxeId], [t7].[Id0], [t7].[Id], [t8].[ProduitID], [t8].[CaracteristiquesDistributeurID], [t8].[Id], [t8].[CaracteristiquePimID], [t8].[CaracteristiqueDistributeurID], [t10].[ProduitID], [t10].[NomenclatureID], [t10].[Id0], [t10].[NomenclaturePimID], [t10].[NomenclatureDistributeurID], [t10].[Id], [c5].[Id]
|
||
|
||
135.10 ms
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync — 135.10 ms
|
||
|
||
sql - Close
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.4 ms (T+4662.8 ms)
|
||
|
||
SingleOrDefault > Dispose > Dispose > Close > ConnectionClosing > BroadcastConnectionClosing > DispatchEventData > Write
|
||
|
||
Connection Close()
|
||
|
||
sql - Open
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.2 ms (T+4664.4 ms)
|
||
|
||
InitializeReader > ExecuteReader > Open > OpenInternal > ConnectionOpening > BroadcastConnectionOpening > DispatchEventData > Write
|
||
|
||
Connection Open()
|
||
|
||
sql - ExecuteReader
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.9 ms (T+4664.8 ms)
|
||
|
||
Execute > InitializeReader > ExecuteReader > CommandReaderExecuting > BroadcastCommandExecuting > DispatchEventData > Write
|
||
|
||
SELECTTOP(1) [g].[Id], [g].[Actif], [g].[CatalogueID], [g].[ClientAcheteurID], [g].[CoefficientAchatParDefaut], [g].[CoefficientAjustementAchatParDefaut], [g].[CoefficientDeVenteParDefaut], [g].[DateCreation], [g].[DateDeDebutDeValidite], [g].[DateDeFinDeValidite], [g].[DateUpdate], [g].[Description], [g].[Exclu], [g].[GrilleTarifaireMaitreID], [g].[IdentifiantExterne], [g].[Libelle]
|
||
|
||
FROM[Clients] AS[c]
|
||
|
||
INNERJOIN[ClientTarifs] AS[c0] ON[c].[Id] = [c0].[ClientID]
|
||
|
||
INNERJOIN[GrilleTarifaires] AS[g] ON[c0].[TarifID] = [g].[Id]
|
||
|
||
WHERE(([c].[Id] = 2de82684-e644-418f-9385-9c7d574ec15e) AND([c0].[Actif] = CAST(1ASbit))) AND(((([g].[CatalogueID] = 75549207-8571-4d2a-a74f-2437d9d9dd51) AND([g].[Actif] = CAST(1ASbit))) AND([g].[DateDeFinDeValidite] >= GETDATE())) AND([g].[DateDeDebutDeValidite] <= GETDATE()))
|
||
|
||
ORDERBY[g].[DateDeDebutDeValidite] DESC
|
||
|
||
sql - Close
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.2 ms (T+4665.9 ms)
|
||
|
||
SingleOrDefault > Dispose > Dispose > Close > ConnectionClosing > BroadcastConnectionClosing > DispatchEventData > Write
|
||
|
||
Connection Close()
|
||
|
||
sql - Open
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.2 ms (T+4666.3 ms)
|
||
|
||
InitializeReader > ExecuteReader > Open > OpenInternal > ConnectionOpening > BroadcastConnectionOpening > DispatchEventData > Write
|
||
|
||
Connection Open()
|
||
|
||
sql - ExecuteReader
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.4 ms (T+4666.6 ms)
|
||
|
||
Execute > InitializeReader > ExecuteReader > CommandReaderExecuting > BroadcastCommandExecuting > DispatchEventData > Write
|
||
|
||
SELECT[g].[ProduitID], [g].[GrilleTarifaireID], [g].[CodeEAN], [g].[CoefficientAchat], [g].[CoefficientAjustementAchat], [g].[CoefficientDeVente], [g].[DateCreation], [g].[DateReappro], [g].[DateUpdate], [g].[Exclu], [g].[Id], [g].[IdentifiantExterne], [g].[IsAvailable], [g].[QuantiteEnReappro], [g].[QuantiteEnReliquat], [g].[ReferenceFabriquant], [g].[Stock]
|
||
|
||
FROM[GrilleTarifaireProduits] AS[g]
|
||
|
||
WHERE([g].[GrilleTarifaireID] = 740e759c-e245-4c88-8cd3-2562f9a6f356) AND([g].[ProduitID] = 1188a6a4-9558-4d63-b180-c76016bb7ef4)
|
||
|
||
sql - Close
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.2 ms (T+4667.1 ms)
|
||
|
||
ToArray > AddRange > Dispose > Dispose > Close > ConnectionClosing > BroadcastConnectionClosing > DispatchEventData > Write
|
||
|
||
Connection Close()
|
||
|
||
sql - OpenAsync
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.3 ms (T+4667.8 ms)
|
||
|
||
OpenInternalAsync > Start > Start > MoveNext > ConnectionOpeningAsync > BroadcastConnectionOpening > DispatchEventData > Write
|
||
|
||
Connection OpenAsync()
|
||
|
||
sql - ExecuteReader (Async)
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
1.1 ms (T+4668.2 ms)
|
||
|
||
ExecuteReaderAsync > Start > Start > MoveNext > CommandReaderExecutingAsync > BroadcastCommandExecuting > DispatchEventData > Write
|
||
|
||
SELECT[t].[Id], [t].[Actif], [t].[CatalogueID], [t].[ClientAcheteurID], [t].[CoefficientAchatParDefaut], [t].[CoefficientAjustementAchatParDefaut], [t].[CoefficientDeVenteParDefaut], [t].[DateCreation], [t].[DateDeDebutDeValidite], [t].[DateDeFinDeValidite], [t].[DateUpdate], [t].[Description], [t].[Exclu], [t].[GrilleTarifaireMaitreID], [t].[IdentifiantExterne], [t].[Libelle], [t0].[Id], [t0].[Actif], [t0].[CatalogueID], [t0].[ClientAcheteurID], [t0].[CoefficientAchatParDefaut], [t0].[CoefficientAjustementAchatParDefaut], [t0].[CoefficientDeVenteParDefaut], [t0].[DateCreation], [t0].[DateDeDebutDeValidite], [t0].[DateDeFinDeValidite], [t0].[DateUpdate], [t0].[Description], [t0].[Exclu], [t0].[GrilleTarifaireMaitreID], [t0].[IdentifiantExterne], [t0].[Libelle]
|
||
|
||
FROM(
|
||
|
||
SELECTTOP(1) [g].[Id], [g].[Actif], [g].[CatalogueID], [g].[ClientAcheteurID], [g].[CoefficientAchatParDefaut], [g].[CoefficientAjustementAchatParDefaut], [g].[CoefficientDeVenteParDefaut], [g].[DateCreation], [g].[DateDeDebutDeValidite], [g].[DateDeFinDeValidite], [g].[DateUpdate], [g].[Description], [g].[Exclu], [g].[GrilleTarifaireMaitreID], [g].[IdentifiantExterne], [g].[Libelle]
|
||
|
||
FROM[GrilleTarifaires] AS[g]
|
||
|
||
WHERE[g].[Id] = 740e759c-e245-4c88-8cd3-2562f9a6f356
|
||
|
||
) AS[t]
|
||
|
||
LEFTJOIN(
|
||
|
||
SELECT[g0].[Id], [g0].[Actif], [g0].[CatalogueID], [g0].[ClientAcheteurID], [g0].[CoefficientAchatParDefaut], [g0].[CoefficientAjustementAchatParDefaut], [g0].[CoefficientDeVenteParDefaut], [g0].[DateCreation], [g0].[DateDeDebutDeValidite], [g0].[DateDeFinDeValidite], [g0].[DateUpdate], [g0].[Description], [g0].[Exclu], [g0].[GrilleTarifaireMaitreID], [g0].[IdentifiantExterne], [g0].[Libelle]
|
||
|
||
FROM[GrilleTarifaires] AS[g0]
|
||
|
||
WHERE([g0].[ClientAcheteurID] = 2de82684-e644-418f-9385-9c7d574ec15e) AND([g0].[GrilleTarifaireMaitreID] = 740e759c-e245-4c88-8cd3-2562f9a6f356)
|
||
|
||
) AS[t0] ON[t].[Id] = [t0].[GrilleTarifaireMaitreID]
|
||
|
||
ORDERBY[t].[Id], [t0].[Id]
|
||
|
||
sql - CloseAsync
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.2 ms (T+4669.6 ms)
|
||
|
||
MoveNext > CloseAsync > Start > Start > MoveNext > ConnectionClosingAsync > BroadcastConnectionClosing > DispatchEventData > Write
|
||
|
||
Connection CloseAsync()
|
||
|
||
sql - OpenAsync
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.2 ms (T+4670.0 ms)
|
||
|
||
OpenInternalAsync > Start > Start > MoveNext > ConnectionOpeningAsync > BroadcastConnectionOpening > DispatchEventData > Write
|
||
|
||
Connection OpenAsync()
|
||
|
||
sql - ExecuteReader (Async)
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.4 ms (T+4670.3 ms)
|
||
|
||
ExecuteReaderAsync > Start > Start > MoveNext > CommandReaderExecutingAsync > BroadcastCommandExecuting > DispatchEventData > Write
|
||
|
||
SELECTTOP(1) [g].[ProduitID], [g].[GrilleTarifaireID], [g].[CodeEAN], [g].[CoefficientAchat], [g].[CoefficientAjustementAchat], [g].[CoefficientDeVente], [g].[DateCreation], [g].[DateReappro], [g].[DateUpdate], [g].[Exclu], [g].[Id], [g].[IdentifiantExterne], [g].[IsAvailable], [g].[QuantiteEnReappro], [g].[QuantiteEnReliquat], [g].[ReferenceFabriquant], [g].[Stock]
|
||
|
||
FROM[GrilleTarifaireProduits] AS[g]
|
||
|
||
WHERE([g].[GrilleTarifaireID] = 740e759c-e245-4c88-8cd3-2562f9a6f356) AND([g].[ProduitID] = 1188a6a4-9558-4d63-b180-c76016bb7ef4)
|
||
|
||
sql - CloseAsync
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.1 ms (T+4670.8 ms)
|
||
|
||
MoveNext > CloseAsync > Start > Start > MoveNext > ConnectionClosingAsync > BroadcastConnectionClosing > DispatchEventData > Write
|
||
|
||
Connection CloseAsync()
|
||
|
||
sql - OpenAsync
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.2 ms (T+4671.1 ms)
|
||
|
||
OpenInternalAsync > Start > Start > MoveNext > ConnectionOpeningAsync > BroadcastConnectionOpening > DispatchEventData > Write
|
||
|
||
Connection OpenAsync()
|
||
|
||
sql - ExecuteReader (Async)
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.5 ms (T+4671.4 ms)
|
||
|
||
ExecuteReaderAsync > Start > Start > MoveNext > CommandReaderExecutingAsync > BroadcastCommandExecuting > DispatchEventData > Write
|
||
|
||
SELECTTOP(1) [g].[ProduitID], [g].[GrilleTarifaireID], [g].[CodeEAN], [g].[CoefficientAchat], [g].[CoefficientAjustementAchat], [g].[CoefficientDeVente], [g].[DateCreation], [g].[DateReappro], [g].[DateUpdate], [g].[Exclu], [g].[Id], [g].[IdentifiantExterne], [g].[IsAvailable], [g].[QuantiteEnReappro], [g].[QuantiteEnReliquat], [g].[ReferenceFabriquant], [g].[Stock]
|
||
|
||
FROM[GrilleTarifaireProduits] AS[g]
|
||
|
||
WHERE([g].[GrilleTarifaireID] = 551ec3f9-169f-4534-9c5d-8e6d3e810b22) AND([g].[ProduitID] = 1188a6a4-9558-4d63-b180-c76016bb7ef4)
|
||
|
||
sql - CloseAsync
|
||
|
||
Controller Action:
|
||
A6tm.Gesteos.Pim.GatewayApi.Controllers.ProductsController.GetProductByIdAsync
|
||
|
||
0.1 ms (T+4672.0 ms)
|
||
|
||
MoveNext > CloseAsync > Start > Start > MoveNext > ConnectionClosingAsync > BroadcastConnectionClosing > DispatchEventData > Write
|
||
|
||
Connection CloseAsync()
|
||
|
||
toggle trivial gaps
|
||
|
||
À
|
||
partir de l’adresse <https://prod.yeswehome.6tm.eu/api/profiler/results?id=10b93f89-19e8-4f19-b984-d721e68f921a>
|
||
|
||
Connexion
|
||
|
||
---
|
||
|
||
## auto parallels (28 juin 2022)
|
||
|
||
https://gearupwindows.com/windows11-missing-checkbox-users-must-enter-a-user-name-and-password-to-use-this-computer/
|
||
|
||
Passer la valeur à 0
|
||
|
||
---
|
||
|
||
## Linux (29 juin 2022)
|
||
|
||
Mise en place ubuntu
|
||
: https://doc.ubuntu-fr.org/wsl
|
||
|
||
Tuto: Mettre en place un
|
||
environnement de développement avec wsl2 + Docker + VSCode + PhpStorm.
|
||
|
||
Ubuntu
|
||
|
||
---
|
||
|
||
## VSCode (4 juin 2022)
|
||
|
||
Plugins :
|
||
- Émet
|
||
- EsLint
|
||
- Prettier
|
||
- Es7 react redux
|
||
- Raccourcis composant: rfc
|
||
- GitLens
|
||
- MarkDownLint
|
||
- Docker
|
||
|
||
Config Eslint and Prettier in Visual Studio Code for React js development | by Manish Mandal | How To React | Medium
|
||
|
||
yarn add eslint
|
||
--dev
|
||
|
||
yarn run eslint
|
||
--init
|
||
|
||
yarn global add prettier
|
||
|
||
---
|
||
|
||
## Hooks (4 août 2022)
|
||
|
||
UseRef pour avoir la
|
||
ref d’un composant
|
||
|
||
---
|
||
|
||
## pnpm (5 février 2023)
|
||
|
||
- npm install -g pnpm
|
||
- pnpm config set store-dir D:/.pnpm-store
|
||
|
||
Vite
|
||
|
||
pnpm create vite
|
||
app.checkandimprove
|
||
|
||
Choisir React +
|
||
TypeScript
|
||
|
||
Disque -
|
||
|
||
---
|
||
|
||
## nettoyage espace purgeable (18 mai 2022)
|
||
|
||
Cd /volumes
|
||
&& ls
|
||
|
||
Cd Donnees
|
||
|
||
for d in
|
||
$(tmutil listlocalsnapshotdates | grep "-"); do sudo tmutil
|
||
deletelocalsnapshots $d; done
|
||
|
||
---
|
||
|
||
## AzureAd (14 juillet 2022)
|
||
|
||
- Install-Module -Name
|
||
|
||
---
|
||
|
||
## Rappel ES6 (25 juillet 2022)
|
||
|
||
Différence entre var, let, const
|
||
|
||
- var a une portée globale => il faut éviter de l'utiliser (exemple si on utilise le même nom qu'une variable d'une bilbiothèque
|
||
- let a une portée de block
|
||
|
||
=> utiliser
|
||
systématiquement let
|
||
|
||
Fonctions fléchées :
|
||
|
||
- Facilite la syntaxe, notamment pour les callbacks
|
||
- Attention dans une fonction fléchées this est le contexte englobant (window par exemple), this dans une fontion classique est le contexte appelant (l'objet par exemple)
|
||
|
||
Spread operator = > étendre
|
||
|
||
console.log(…arr) => renvoie tous les
|
||
élements du tableau
|
||
|
||
arr2 […arr1,4]
|
||
|
||
Rest operator => dans les paramètres d'une
|
||
fonction
|
||
|
||
Function
|
||
add(a,b,…args) => tous les aarguments qui restent
|
||
|
||
Fonctions pures : ne dépendent pas d'un
|
||
contexte exterieurs, renvoi toujours la même chose
|
||
|
||
=> évite les
|
||
erreurs, paradigmes de la programmation fonctionnelle.
|
||
|
||
Fonctions d'ordre supérieur : prend une
|
||
fonction en paramètre ou en retourne une ou les 2.
|
||
|
||
=> fait partie de
|
||
la programmation fonctionnelle, permet d'avoir des fonctions pouvant faire plus
|
||
de choses.
|
||
|
||
Exemple de fonctions
|
||
d'ordre > : map,filter, foreach
|
||
|
||
Destructuring ;
|
||
|
||
const {nom,
|
||
population} = pays;
|
||
|
||
Const GetNomPays =
|
||
({nom} => nom;
|
||
|
||
Console.log(data(pays));
|
||
|
||
---
|
||
|
||
## Documentation (6 août 2022)
|
||
|
||
Quel est le pb :
|
||
|
||
- Peu de doc, rarement à jour
|
||
|
||
Résultats attendus :
|
||
|
||
- La doc est générée automatiquement et permet de comprendre le projet
|
||
|
||
Living Documentation : vo
|
||
|
||
us allez aimer la documentation ! (Cyrille Martraire)
|
||
|
||
But de la
|
||
documentation :
|
||
|
||
- Transmettre la connaissance
|
||
- Rendre accessible
|
||
- Peut être obligatoire
|
||
- Garder la connaissance dans le temps
|
||
|
||
=>
|
||
Le savoir
|
||
|
||
Transmission
|
||
d'info
|
||
|
||
- La + efficace : la conversation : maximum de bande passante, d'interaction, juste à temps (pas de travail à l'avance, pas de stock = pas de gaspillage)
|
||
- Pair Programming : investissement sur la documentation et la transformation
|
||
- Le Code est de la documentation
|
||
|
||
- Est-ce qu'en lisant le code je comprends le métier
|
||
|
||
Idée : Investing
|
||
Wall, Obession Wall => savoir stable
|
||
|
||
Savoir Stable :
|
||
EverGreenDocument => uniquement les éléments stables
|
||
|
||
Pour les
|
||
comportements métier => BDD : conversation
|
||
- scénario
|
||
|
||
A voir SpecFlow,
|
||
pciklesdoc, cucumber
|
||
|
||
Mermaid : dPlaintext
|
||
- diagram
|
||
|
||
Docx fx :
|
||
|
||
- Installer le zip dans d:\travail\_doc\docfx\
|
||
- Dans le projet : d:\travail\_doc\docfx\docfx init -q
|
||
- d:\travail\_doc\docfx\docfx "D:\Travail\6tm\prod.6tm.com\docs\docfx\docfx_project\docfx.json"
|
||
--serve
|
||
|
||
Docusaurus :
|
||
|
||
npx
|
||
create-docusaurus@latest docs.prod.6tm.com classic --typescript
|
||
|
||
Y
|
||
|
||
Quels sont les pbs :
|
||
|
||
- Doc xml de visual studio => trop technique, la valeur ajoutée est noyée
|
||
- SpecFlow et gherkin => les
|
||
|
||
---
|
||
|
||
## Architecture (6 août 2022)
|
||
|
||
DDD, en vrai pour le
|
||
développeur (Cyrille Martraire)
|
||
|
||
---
|
||
|
||
## Code Legacy (25 décembre 2022)
|
||
|
||
[Software Crafts·wo·manship] Dette technique et entropie du logiciel (Arnaud Lemaire)
|
||
|
||
Code Legacy :
|
||
- Il coûte plus cher à maintenir qu'il ne rapporte
|
||
- Ajouter une fonctionnalité coûte plus cher qu'elle ne rapporte
|
||
|
||
---
|
||
|
||
## Micro-services (25 décembre 2022)
|
||
|
||
On achète de la complexité obligatoire :
|
||
|
||
Ca répond à quel besoin :
|
||
- Au fait qu'on a des charges très différentes en fonction des zones du SI
|
||
|
||
C'est rarement le cas et encore mieux ce n'est jamais le cas en début de projet
|
||
- Vidéo à 22 minutes
|
||
|
||
[Software Crafts·wo·manship] Dette technique et entropie du logiciel (Arnaud Lemaire)
|
||
|
||
Vérifier si la complexité de la solution est bien fonction de la complexité du problème
|
||
|
||
Faire simple ce n'est pas facile :
|
||
- ne pas confondre simplicite et facilité, complexite et compliqué
|
||
- La facilité est subjective quand la simplicité est objective
|
||
|
||
Visual
|
||
|
||
---
|
||
|
||
## Studio 2022 (10 août 2022)
|
||
|
||
- IIS à jour
|
||
- Visual studio 2022 avec module linguistique
|
||
|
||
- Codemaid
|
||
- Markdown
|
||
|
||
- Visual studio code
|
||
- SQL 2019
|
||
- Node
|
||
- SourceTree
|
||
|
||
- Configuration des droits
|
||
|
||
- Powershell 7
|
||
- Copier le fichier nuget
|
||
|
||
Visual
|
||
|
||
---
|
||
|
||
## Flux (28 août 2022)
|
||
|
||
Valeur ajoutée = ce
|
||
que le client est prêt à payer
|
||
|
||
Pour développer le
|
||
CA : augmenter les capacités en supprimant les goulots du flux
|
||
|
||
---
|
||
|
||
## Docker (29 août 2022)
|
||
|
||
Portainer.io : piloter swarm, docker pour les nuls
|
||
|
||
Swarm : cluser de
|
||
docker
|
||
|
||
- Stack = 1 ensemble de service et 1 service = un ensemble de docker
|
||
|
||
Traefik : 2eme
|
||
rupture protocolaire route vers le port qui va bien, gère les certificats
|
||
letsencrypt
|
||
|
||
- 10K / an
|
||
|
||
Thomas :
|
||
|
||
3 vms
|
||
|
||
- clusters
|
||
|
||
Résultats attendus :
|
||
|
||
- Utiliser sur des preprods :
|
||
- Utilisable sur les environnements de dev <->
|
||
|
||
=>
|
||
Comprendre les limites et bonnes pratiques de Docker :
|
||
|
||
- Debug : compliqué
|
||
- Test - windows / IIS
|
||
|
||
1
|
||
- Haute disponibilité : crash de VM => reprise sur un autre nœud
|
||
|
||
Exemple gitLab avec maj
|
||
|
||
2
|
||
- PRA - PCA : Datacenter => Restau -
|
||
|
||
3
|
||
- Optimiser déploiment
|
||
|
||
4
|
||
|
||
---
|
||
|
||
## runner (14 septembre 2023)
|
||
|
||
Suivre les étapes
|
||
depuis gitlab
|
||
|
||
Elastic
|
||
|
||
---
|
||
|
||
## Pull request (8 janvier 2026)
|
||
|
||
Rebase avec
|
||
l’update-ref
|
||
|
||
Fowler met en avant
|
||
l’approche Ship / Show / Ask comme compromis pour garder une intégration
|
||
fréquente tout en profitant des PR :
|
||
|
||
- Ship : merge direct (pas de PR)
|
||
- Show : merge tout de suite, mais ouvre une PR pour review/visibilité
|
||
- Ask : PR avant merge (quand tu as besoin d’accord/discussion)
|
||
|
||
r = rebase
|
||
--interactive --update-refs --autosquash
|
||
|
||
Gîtlens dans vscode
|
||
|
||
https://github.com/benoitmasson/stacked-prs-demo
|
||
|
||
Dan north ce qu’on
|
||
veut tester c’est ce qui apporte de la valeur au produit
|
||
|
||
Valeur Produit : quelle est le prochain
|
||
comportement que mon utilisateur attend
|
||
|
||
Garantit que la
|
||
valeur produite est toujours présente
|
||
|
||
Exemple concret
|
||
|
||
Prompt de l’ia
|
||
questionner le test
|
||
|
||
Créé avec OneNote.
|
||
|
||
---
|