scritto da | on | Nessun commento

Per poter verificare se una merce è di origine preferenziale o meno bisogna controllare per la tariffa doganale quale regola utilizzare per il calcolo. In questo esempio consideriamo una regola semplice ovvero il valore dei componenti che costituiscono il prodotto finito di origine non preferenziale deve essere inferiore ad una certa percentuale. La base di partenza per questo calcolo è di aver richiesto ai fornitori un certificato di origine nel caso non disponessimo del certificato la merce va considerata di origine non preferenziale. Partiamo dalla seguenti tabelle:
Anagrafica: CODICE, COS, ACQ, DOG
Codici: CODICE, CLIENTE
Origine: CODICE, PREF
Distinta: PADRE, FIGLIO, COEF

La procedura prevede l’esplosione dei codici e l’esecuzione in cascata delle query che calcolano la percentuale di codici con origine non preferenziale.
Esplodi distinta

SELECT [CODICI].CODICE, DISTINTA.FIGLIO AS C1, DISTINTA_1.FIGLIO AS C2, DISTINTA_2.FIGLIO AS C3, DISTINTA_3.FIGLIO AS C4, DISTINTA_4.FIGLIO AS C5, DISTINTA.COEF AS CO1, DISTINTA_1.COEF AS CO2, DISTINTA_2.COEF AS CO3, DISTINTA_3.COEF AS CO4, DISTINTA_4.COEF AS CO5, [CODICI].CLIENTE INTO [distinta eslposa]
FROM [CODICI] LEFT JOIN ((((DISTINTA LEFT JOIN DISTINTA AS DISTINTA_1 ON DISTINTA.FIGLIO = DISTINTA_1.PADRE) LEFT JOIN DISTINTA AS DISTINTA_2 ON DISTINTA_1.FIGLIO = DISTINTA_2.PADRE) LEFT JOIN DISTINTA AS DISTINTA_3 ON DISTINTA_2.FIGLIO = DISTINTA_3.PADRE) LEFT JOIN DISTINTA AS DISTINTA_4 ON DISTINTA_3.FIGLIO = DISTINTA_4.PADRE) ON [CODICI].CODICE = DISTINTA.PADRE;

Padri

SELECT [distinta eslposa].CODICE, IIf([C5] IS NOT NULL,[C5],IIf([C4] IS NOT NULL,[C4],IIf([C3] IS NOT NULL,[C3],IIf([C2] IS NOT NULL,[C2],IIf([C1] IS NOT NULL,[C1],[CODICE]))))) AS FIGLIO, IIf([CO1] IS NULL,1,[CO1]*nz([CO2],1)*nz([CO3],1)*nz([CO4],1)*nz([CO5],1)) AS COEF, [distinta eslposa].CLIENTE INTO CODEXP
FROM [distinta eslposa];

AGG CT00

SELECT CODEXP.CODICE, CODEXP.FIGLIO, CODEXP.COEF, CODEXP.CLIENTE, [Anagrafica].COS AS C2P, [Anagrafica].ACQAS CAP, [ANA ARTICOLI].COS AS C2F, [ANA ARTICOLI].ACQAS CAF INTO CT00
FROM (CODEXP INNER JOIN [Anagrafica] ON CODEXP.CODICE = [Anagrafica].CODICE) INNER JOIN [ANA ARTICOLI] ON CODEXP.FIGLIO = [ANA ARTICOLI].CODICE;

AGG CT01

SELECT CT00.CODICE, CT00.FIGLIO, CT00.COEF, CT00.CLIENTE, IIf([CAP]=0,[C2P],[CAP]) AS [COSTO P], IIf([CAF]=0,[C2F],[CAF]) AS [CO UNIT F], [CO UNIT F]*[COEF] AS [COSTO F] INTO CT01
FROM CT00;

AGG CT02

SELECT CT01.CODICE, CT01.FIGLIO, CT01.CLIENTE, CT01.[COSTO P], CT01.[COSTO F], IIf([PREFE] IS NULL,"NC",[PREFE]) AS PREF INTO CT02
FROM CT01 LEFT JOIN [ORIGINE] ON CT01.FIGLIO = [ORIGINE].CODICE;

AGG CT03

SELECT CT02.CODICE, CT02.CLIENTE, CT02.[COSTO P], CT02.PREF, SUM(CT02.[COSTO F]) AS [TOT COMP] INTO CT03
FROM CT02
GROUP BY CT02.CODICE, CT02.CLIENTE, CT02.[COSTO P], CT02.PREF;

CT04

SELECT CT03.CODICE, CT03.CLIENTE, CT03.[COSTO P], CT03.PREF, CT03.[TOT COMP], [TOT COMP]/[COSTO P] AS PPRE, IIf([PREF]="NC","N",[PREF]) AS TP
FROM CT03
WHERE (((CT03.[COSTO P])<>0 AND (CT03.[COSTO P]) IS NOT NULL));

CT05

SELECT CT04.CODICE, CT04.CLIENTE, CT04.TP, SUM(CT04.PPRE) AS PCOMP
FROM CT04
GROUP BY CT04.CODICE, CT04.CLIENTE, CT04.TP;

NN

SELECT CT05.CODICE, COUNT(CT05.TP) AS N
FROM CT05
GROUP BY CT05.CODICE;

AGG FINALE01 (Sostituire VALORE con la soglia definita dalla regola doganale)

SELECT CT05.CODICE, CT05.CLIENTE, IIf([PCOMP]
 
AGG FINALE
<pre lang="SQL">SELECT FINALE1.CODICE, FINALE1.CLIENTE, FINALE1.ORIGINE, FINALE1.[COD DOG], FINALE1.PCOMP INTO FINALE
FROM FINALE1
WHERE (((FINALE1.E)=1));

Lascia un Commento

News