1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376
|
CREATE GLOBAL TEMPORARY TABLE lstIdDestinataire
(
tie_id integer
) ON COMMIT PRESERVE ROWS
CREATE GLOBAL TEMPORARY TABLE lstTauStockAgence
(
tau_id integer,
stock int
) ON COMMIT PRESERVE ROWS
/
CREATE GLOBAL TEMPORARY TABLE lstTauStockUrceo
(
tau_id integer,
stock int
) ON COMMIT PRESERVE ROWS
/
CREATE OR REPLACE
PROCEDURE PS_GET_COMMANDE_DETAILS
(
CMD_ID IN integer DEFAULT null,
CMD_NUMERO IN integer DEFAULT null,
cmdNumeroSage IN integer DEFAULT null,
COL_ID IN integer DEFAULT null,
SCO_LIBELLE IN VARCHAR2 DEFAULT null,
--statut en cours--F07_RG1
SCO_CODE IN CHAR DEFAULT null,
TAU_NOM_COURT IN VARCHAR2 DEFAULT null,
TAU_NU_TRAVAIL IN VARCHAR2 DEFAULT null,
ART_DESIGNATION IN VARCHAR2 DEFAULT null,
ART_CODE IN VARCHAR2 DEFAULT null,
TIE_NOM_EMETTEUR IN VARCHAR2 DEFAULT null,
TIE_NOM_DESTINATAIRE IN VARCHAR2 DEFAULT null,
TIE_ID_EMETTEUR IN integer DEFAULT null,
TIE_ID_DESTINATAIRE IN integer DEFAULT null,
ShowEmptyCommandLine IN number DEFAULT 1,
--Si renseigné, on retourne les commandes dont l'utilisateur connecté
--est soit l'emetteur soit le destinataire
cmdTiersEmetDestId IN OUT integer,
--by defaut with filter with the primary key
sortedDictionary IN NVARCHAR2 DEFAULT '',
--paging params
startRowIndex IN int DEFAULT null,
maxRows IN int DEFAULT null,
p_recordset OUT SYS_REFCURSOR )
--paging params
AS
/*tbllstIdDestinataire TBL_LSTIDDESTINATAIRE;
tbllstTauStockAgence TBL_LSTTAUSTOCKAGENCE;
tbllstTauStockUrceo TBL_LSTTAUSTOCKURCEO;*/
--récupérer la liste des tiers asssocié à l'utilisateur connecté
--récupérer la liste des tiers asssocié à l'utilisateur connecté
BEGIN
IF( cmdTiersEmetDestId is null and TIE_ID_DESTINATAIRE is not null) THEN
BEGIN
/*récupérer la liste des tiers associé au destinataire*/
/*récupérer la liste des tiers associé au destinataire*/
INSERT
--INTO tbllstIdDestinataire
INTO lstIdDestinataire
SELECT DISTINCT TIEID
FROM TABLE(fn_get_third_belonging(ps_get_commande_details.TIE_ID_DESTINATAIRE)) t;
END;
ELSE
IF( cmdTiersEmetDestId is not null) THEN
BEGIN
/*on ne recupère que les cmds dont l'utilisateur connecté*/
/*est l'unique destinataire*/
/*on ne recupère que les cmds dont l'utilisateur connecté*/
/*est l'unique destinataire*/
INSERT
--INTO tbllstIdDestinataire
INTO lstIdDestinataire
SELECT ps_get_commande_details.cmdTiersEmetDestId FROM SYS.DUAL;
END;
END IF;
END IF;
INSERT INTO lstTauStockAgence
--INSERT INTO tbllstTauStockAgence
SELECT
/*recupere stock du lot qui appartiennent au tiers emetteur*/
/*recupere stock du lot qui appartiennent au tiers emetteur*/
(NVL(lot.tau_id, art.tau_id)) as taureau_id,
(SELECT SUM(STO_QUANTITE)
FROM STOCK_STO adv_alias_1
WHERE (NVL(lot.tau_id, art.tau_id)) = (NVL(lot.tau_id, art.tau_id))
) as stock_cumule
/*, count(*) as nbre_ligne --select count(*)*/
FROM STOCK_STO sto,
LOT_LOT lot,
ref_article_art art,
RANGEMENT_EMPLACEMENT_EMP emp,
v_rangement_available ran,
TABLE(fn_get_third_belonging(ps_get_commande_details.TIE_ID_EMETTEUR)) tie_belonging
WHERE sto.lot_id = lot.lot_id
AND (art.art_id = lot.art_id
/*--article pour récupérer le taureau*/
)
AND (emp.emp_id = sto.emp_id
/*--RANGEMENT_RAN storage system are not for display*/
)
AND (ran.ran_id = emp.ran_id)
AND (tie_belonging.TIEID = ran.tie_id_rattachement)
AND (ps_get_commande_details.TIE_ID_EMETTEUR is not null);
/*recupere stock total urceo du lot*/
/*recupere stock total urceo du lot*/
INSERT
INTO tbllstTauStockUrceo
SELECT NVL(lot.tau_id, art.tau_id) as taureau_urceo_id,
SUM(sto.STO_QUANTITE) as stock_urceo_cumule
FROM STOCK_STO sto,
RANGEMENT_EMPLACEMENT_EMP emp,
v_rangement_available ran,
LOT_LOT lot,
ref_article_art art
WHERE emp.emp_id = sto.emp_id
/*----RANGEMENT_RAN storage system are not for display*/
AND (ran.ran_id = emp.ran_id)
AND (sto.lot_id = lot.lot_id)
AND (art.art_id = lot.art_id
/*--article pour récupérer le taureau */
)
AND (NVL(lot.tau_id, NVL(art.tau_id, '')) <> '')
GROUP BY NVL(lot.tau_id, art.tau_id);
OPEN p_recordset FOR
SELECT CMD_ID,
bop.CMD_NUMERO,
bop.CMD_NUMERO_SAGE,
bop.CMD_STATUT_DATE,
bop.SCO_CODE,
bop.SCO_LIBELLE,
bop.COL_ID,
bop.COL_QUANTITE,
bop.COL_NU_LIGNE,
bop.BLG_QUANTITE,
bop.TAU_ID,
bop.TAU_NOM_COURT,
bop.TAU_NU_TRAVAIL,
bop.ART_ID,
bop.ART_DESIGNATION,
bop.ART_CODE,
bop.TIE_ID_EMETTEUR,
bop.TIE_NOM_EMETTEUR,
bop.TIE_ID_DESTINATAIRE,
bop.TIE_NOM_DESTINATAIRE,
bop.TIE_ID_DESTINATAIRE_FINAL,
bop.TIE_NOM_DESTINATAIRE_FINAL,
stock_cumule,
stock_urceo_cumule,
qot_quantite_emetteur,
qot_quantite_initial_emetteur,
qot_quantite_destinataire,
qot_quantite_initial_dest,
bop.rank,
full_label
FROM
(SELECT cmd.CMD_ID,
cmd.CMD_NUMERO,
cmd.CMD_NUMERO_SAGE,
cmd.CMD_STATUT_DATE,
cmd.SCO_CODE,
cmd.SCO_LIBELLE,
cmd.COL_ID,
cmd.COL_QUANTITE,
cmd.COL_NU_LIGNE,
cmd.BLG_QUANTITE,
cmd.TAU_ID,
cmd.TAU_NOM_COURT,
cmd.TAU_NU_TRAVAIL,
cmd.ART_ID,
cmd.ART_DESIGNATION,
cmd.ART_CODE,
cmd.TIE_ID_EMETTEUR,
cmd.TIE_NOM_EMETTEUR,
cmd.TIE_ID_DESTINATAIRE,
cmd.TIE_NOM_DESTINATAIRE,
cmd.TIE_ID_DESTINATAIRE_FINAL,
cmd.TIE_NOM_DESTINATAIRE_FINAL,
/*, cmd.[rank_defaut]*/
taureau_stock_tiers_details.stock as stock_cumule,
taureau_stock_urceo_details.stock as stock_urceo_cumule,
qot_emetteur.qot_quantite as qot_quantite_emetteur,
qot_emetteur.qot_quantite_initial as qot_quantite_initial_emetteur,
qot_destinataire.qot_quantite as qot_quantite_destinataire,
qot_destinataire.qot_quantite_initial as qot_quantite_initial_dest,
TO_CHAR(CMD_NUMERO) + NVL('('
|| TO_CHAR(CMD_NUMERO_SAGE)
|| ')', '')
|| ' - '
||
case
when cmd.tau_id is not null
then cmd.TAU_NOM_COURT
else ART_CODE
end
|| ' - '
|| TO_CHAR(NVL(COL_QUANTITE, - 1)) as full_label,
row_number() over(PARTITION BY 1 ORDER BY
case
when nvl(sortedDictionary, '') = ''
then rank_defaut
end,
case
when sortedDictionary = 'CMD_NUMERO'
then CMD_NUMERO
end,
case
when sortedDictionary = 'CMD_NUMERO DESC'
then CMD_NUMERO
end DESC,
case
when sortedDictionary = 'CMD_NUMERO_SAGE'
then CMD_NUMERO
end,
case
when sortedDictionary = 'CMD_NUMERO_SAGE DESC'
then CMD_NUMERO
end DESC,
case
when sortedDictionary = 'TAU_NOM_COURT'
then TAU_NOM_COURT
end,
case
when sortedDictionary = 'TAU_NOM_COURT DESC'
then cmd.TAU_NOM_COURT
end DESC,
case
when sortedDictionary = 'TAU_NU_TRAVAIL'
then TAU_NU_TRAVAIL
end,
case
when sortedDictionary = 'TAU_NU_TRAVAIL DESC'
then cmd.TAU_NU_TRAVAIL
end DESC,
case
when sortedDictionary = 'COL_QUANTITE'
then COL_QUANTITE
end,
case
when sortedDictionary = 'COL_QUANTITE DESC'
then COL_QUANTITE
end DESC,
case
when sortedDictionary = 'COL_NU_LIGNE'
then COL_NU_LIGNE
end,
case
when sortedDictionary = 'COL_NU_LIGNE DESC'
then COL_NU_LIGNE
end DESC,
case
when sortedDictionary = 'TIE_NOM_EMETTEUR'
then TIE_NOM_EMETTEUR
end,
case
when sortedDictionary = 'TIE_NOM_EMETTEUR DESC'
then TIE_NOM_EMETTEUR
end DESC,
case
when sortedDictionary = 'TIE_NOM_DESTINATAIRE'
then TIE_NOM_DESTINATAIRE
end,
case
when sortedDictionary = 'TIE_NOM_DESTINATAIRE DESC'
then TIE_NOM_DESTINATAIRE
end DESC) as rank
FROM v_commandes_details cmd,
(SELECT qot_emetteur.*
FROM v_commandes_details cmd,
table(fn_get_quota_agence(ps_get_commande_details.TIE_ID_EMETTEUR, null)) qot_emetteur,
table(fn_get_quota_agence(ps_get_commande_details.TIE_ID_destinataire, null)) qot_destinataire,
lstIdDestinataire t,
lstTauStockAgence taureau_stock_tiers_details,
lstTauStockUrceo taureau_stock_urceo_details
/*tbllstIdDestinataire t,
tbllstTauStockAgence taureau_stock_tiers_details,
tbllstTauStockUrceo taureau_stock_urceo_details*/
WHERE qot_emetteur.tau_id = cmd.tau_id
AND ps_get_commande_details.TIE_ID_EMETTEUR is not null
) qot_emetteur,
(SELECT qot_destinataire.*
FROM v_commandes_details cmd,
table(fn_get_quota_agence(ps_get_commande_details.TIE_ID_EMETTEUR, null)) qot_emetteur,
table(fn_get_quota_agence(ps_get_commande_details.TIE_ID_destinataire, null)) qot_destinataire,
lstIdDestinataire t,
lstTauStockAgence taureau_stock_tiers_details,
lstTauStockUrceo taureau_stock_urceo_details
/* tbllstIdDestinataire t,
tbllstTauStockAgence taureau_stock_tiers_details,
tbllstTauStockUrceo taureau_stock_urceo_details*/
WHERE qot_emetteur.tau_id = cmd.tau_id
AND ps_get_commande_details.TIE_ID_destinataire is not null
/*) qot_destinataire, tbllstIdDestinataire t, tbllstTauStockAgence taureau_stock_tiers_details,
tbllstTauStockUrceo taureau_stock_urceo_details*/
) qot_destinataire, lstIdDestinataire t, lstTauStockAgence taureau_stock_tiers_details,
lstTauStockUrceo taureau_stock_urceo_details
WHERE qot_emetteur.tau_id = cmd.tau_id
AND (qot_emetteur.tau_id = cmd.tau_id)
AND (t.tie_id (+) = cmd.TIE_ID_DESTINATAIRE)
AND (taureau_stock_tiers_details.tau_id (+) = cmd.tau_id)
AND (taureau_stock_urceo_details.tau_id (+) = cmd.tau_id)
AND (ps_get_commande_details.cmdTiersEmetDestId is null OR (ps_get_commande_details.cmdTiersEmetDestId is not null
AND (cmd.TIE_ID_DESTINATAIRE = ps_get_commande_details.cmdTiersEmetDestId
OR cmd.TIE_ID_Emetteur = ps_get_commande_details.cmdTiersEmetDestId)))
AND (ps_get_commande_details.CMD_ID is null
OR (ps_get_commande_details.CMD_ID is not null
AND CMD_ID = ps_get_commande_details.CMD_ID))
AND (ps_get_commande_details.CMD_NUMERO is null
OR (ps_get_commande_details.CMD_NUMERO is not null
AND CMD_NUMERO = ps_get_commande_details.CMD_NUMERO))
AND (ps_get_commande_details.cmdNumeroSage is null
OR (ps_get_commande_details.cmdNumeroSage is not null
AND CMD_NUMERO_SAGE = ps_get_commande_details.cmdNumeroSage))
AND (ps_get_commande_details.COL_ID is null
OR (ps_get_commande_details.COL_ID is not null
AND COL_ID = COL_ID))
AND (ps_get_commande_details.SCO_LIBELLE is null
OR ps_get_commande_details.SCO_LIBELLE is not null
AND SCO_LIBELLE like '%'
|| LTRIM(RTRIM(ps_get_commande_details.SCO_LIBELLE))
|| '%')
AND (ps_get_commande_details.SCO_CODE is null
OR ps_get_commande_details.SCO_CODE is not null
AND SCO_CODE like '%'
|| LTRIM(RTRIM(ps_get_commande_details.SCO_CODE))
|| '%')
AND (ps_get_commande_details.TAU_NOM_COURT is null
OR ps_get_commande_details.TAU_NOM_COURT is not null
AND cmd.TAU_NOM_COURT like '%'
|| LTRIM(RTRIM(ps_get_commande_details.TAU_NOM_COURT))
|| '%')
AND (ps_get_commande_details.TAU_NU_TRAVAIL is null
OR ps_get_commande_details.TAU_NU_TRAVAIL is not null
AND cmd.TAU_NU_TRAVAIL like '%'
|| LTRIM(RTRIM(ps_get_commande_details.TAU_NU_TRAVAIL))
|| '%')
AND (ps_get_commande_details.ART_DESIGNATION is null
OR ps_get_commande_details.ART_DESIGNATION is not null
AND ART_DESIGNATION like '%'
|| LTRIM(RTRIM(ps_get_commande_details.ART_DESIGNATION))
|| '%')
AND (ps_get_commande_details.ART_CODE is null
OR ps_get_commande_details.ART_CODE is not null
AND ART_CODE like '%'
|| LTRIM(RTRIM(ps_get_commande_details.ART_CODE))
|| '%')
AND (ps_get_commande_details.TIE_NOM_DESTINATAIRE is null
OR (ps_get_commande_details.TIE_NOM_DESTINATAIRE is not null
AND TIE_NOM_DESTINATAIRE like '%'
|| LTRIM(RTRIM(ps_get_commande_details.TIE_NOM_DESTINATAIRE))
|| '%'))
AND (ps_get_commande_details.TIE_NOM_EMETTEUR is null
OR (ps_get_commande_details.TIE_NOM_EMETTEUR is not null
AND TIE_NOM_EMETTEUR like '%'
|| LTRIM(RTRIM(ps_get_commande_details.TIE_NOM_EMETTEUR))
|| '%'))
AND (ps_get_commande_details.TIE_ID_DESTINATAIRE is null
OR (ps_get_commande_details.TIE_ID_DESTINATAIRE is not null
AND t.tie_id is not null))
AND (ps_get_commande_details.TIE_ID_EMETTEUR is null
OR (ps_get_commande_details.TIE_ID_EMETTEUR is not null
AND TIE_ID_EMETTEUR = ps_get_commande_details.TIE_ID_EMETTEUR))
AND (ps_get_commande_details.ShowEmptyCommandLine = 1
/*--commandes sans lignes de cmdes*/
OR (ps_get_commande_details.ShowEmptyCommandLine = 0
/*--commamndes uniquement avec lignes de cmdes*/
AND col_id is not null))
) bop
WHERE (ps_get_commande_details.startRowIndex is null
AND ps_get_commande_details.maxRows is null
OR (bop.rank between (ps_get_commande_details.startRowIndex + 1) and ((ps_get_commande_details.startRowIndex + ps_get_commande_details.maxRows))));
END; |
Partager