Files
C2P/C2P_Project/dbo/Stored Procedures/stp_zzz_scratch.sql
T
2014-07-18 16:58:50 +02:00

250 lines
7.7 KiB
Transact-SQL

-- =============================================
-- Author: S.E. Locatelli
-- Create date: 2013.11.20
-- Description: Procedure x calcoli e test import dati e prove varie
-- =============================================
CREATE PROCEDURE [dbo].[stp_zzz_scratch]
AS
BEGIN
-- dichiaro e imposto periodo di calcolo dei valori
-- andrà impostato in una tabella e mi determinerà la versione dei dati
DECLARE @dateFrom AS DateTime;
DECLARE @dateTo AS DateTime;
SET @dateFrom = '20100101'
SET @dateTo = '20130929'
-- ==========================================
-- IMPORTAZIONE DATI CSV
-- ==========================================
exec tmp.importProductionLogRaw
exec tmp.importClientsRaw
exec tmp.importTranspCostRaw
exec tmp.importItemsRaw
exec tmp.importPackagRaw
exec tmp.importDiesRaw
-- questo sotto va fatto solo se ci sono dati da integrare in DiesRaw
exec tmp.importDiesGroupRaw
select top 10 * FROM tmp.ProductionLogRaw
select * FROM tmp.ClientsRaw
select * FROM tmp.ItemsRaw
select * FROM tmp.PackagRaw
select * FROM tmp.DiesRaw
select * FROM tmp.DiesGroupRaw
-- Se ci sono record con Item doppi li cancello????
SELECT CodItem,COUNT(*) as qty
FROM ( SELECT DISTINCT * FROM tmp.ItemsRaw ) AS a
GROUP BY CodItem
having COUNT(*)>1
delete from tmp.ItemsRaw
where CodItem IN
(
SELECT CodItem
FROM ( SELECT DISTINCT * FROM tmp.ItemsRaw ) AS a
GROUP BY CodItem
having COUNT(*)>1
)
-- ==========================================
-- CARICO DATI IN RAW ( da Char a Tipi corretti )
-- ==========================================
exec tmp.convertClientsRaw
exec tmp.convertTranspCostRaw
exec tmp.convertItemsRaw
exec tmp.convertProductionLogRaw
exec tmp.convertPackagRaw
exec tmp.convertDiesRaw
-- necessario se integriamo i dati x i gruppi di matrici con un file
exec tmp.convertDiesGroupRaw
select top 10 * FROM ext.ProductionLogRaw
select * FROM ext.ClientsRaw
select * FROM ext.ItemsRaw
select * FROM ext.PackagRaw
select * FROM ext.DiesRaw
SELECT * FROM ext.DiesGroupRaw
-- elimino a mano dato con oltre 68 anni di evento...
select *
--delete
from ext.ProductionLogRaw
where DATEDIFF(YEAR,EventStart,EventEnd)> 10
exec ext.stp_mergeAgentsDet
exec ext.stp_mergeClientDet 'ProductionLogRaw'
exec ext.stp_mergeClientDet 'ClientsRaw'
exec ext.stp_mergeTranspCostDet 'TranspCostRaw'
exec ext.stp_mergePlantsDet
exec ext.stp_mergeCost2Plant
exec ext.stp_mergeItemDet 'ItemsRaw'
exec ext.stp_mergePackagDet 'ProductionLogRaw' -- 'PackagRaw'
-- QUESTE ANDREBBERO ESEGUITO DOPO ext.stp_updateProductionLog prendendo in considerazione un periodo di tempo
-- di tre anno o comunque stabilito a priori predefinito ( configurabile a sistema )
-- DA VERIFICARE
exec ext.stp_mergePackage2ItemClient 'ProductionLog', @dateFrom, @dateTo
exec ext.stp_mergePackage2Item 'ProductionLog', @dateFrom, @dateTo
exec ext.stp_mergePackage2 'ProductionLog', @dateFrom, @dateTo
exec ext.stp_mergeDiesDet
-- se ricarico diesgroup... ricarico solo i campi che nel file sono <> ''
exec ext.stp_mergeDiesGroupDet
exec ext.stp_mergeRawMat
exec ext.stp_updateProductionLog
---- aggiorno quota agenti a 0.037
----update AgentsDet set quotaperc=0.0374
SELECT DISTINCT dr.CodItem FROM ext.DiesRaw dr LEFT OUTER JOIN ItemDet id ON dr.CodItem = id.CodItem
where id.CodItemGroup is null
select * from ClientDet
select * from ItemDet
select * from Package2ItemClient
select * from Package2Item
select * from Package2
select * from PackagDet
select * from DiesGroupDet where EOLLife > 0
select * from DiesDet
select * from DiesGroupDet
select * from AgentsDet
select * from PlantsDet
select * from Cost2Plant
select * from utilities
select top 100 * from ProductionLog
--update tmp.ProductionLogRaw
--set
-- okPr = 1
-- , okDi = 1
-- , okQM = 1
-- , okSc = 1
select distinct ProcessNum from ProductionLog
select top 10 * from ext.ProductionLogRaw
---- fix errore packaging
--update tmp.ProductionLogRaw
--SET CodPackag='4'
--where CodPackag LIKE '%4%' and CodPackag <> '4'
--select * from tmp.ProductionLogRaw where CodPackag LIKE '%4%' and CodPackag <> '4'
SELECT p.CodDies, CodItem, CodClient, CodPackag, p.* FROM ext.ProductionLogRaw AS p
LEFT JOIN dbo.DiesDet AS d ON p.CodDies = d.CodDies
WHERE CodItem IS NULL
-- parte CALCOLI!!!
select * from QuoteList
select * from ClientDet where CodClient='05000001048'
select * from itemdet
where CodItem like '1PT00102%'
select * from RawMatDet
--Q 1312130001 0 05000001048 1PT00102 A 7020 7673,400 1000 CPT NULL NULL NULL NULL
SELECT --TOP 10
dd.CodItem, pl.RawMat, dd.CodItem + '-' + pl.RawMat as KeyAM, dd.CodDiesGroup, pl.CodPlant, dd.HoleNum
,dd.CodItem + '-' + pl.RawMat + '-' + pl.CodPlant + '-' + CAST(dd.HoleNum AS NVARCHAR(19)) as KeyAMIL
,0 as NumSMED -- numero cambi, da sistemare...
, SUM(QtyOUT) as KgTeorici, SUM(Duration) AS Durata
,ISNULL(SUM(QtyOUT),0)/ISNULL(SUM(Duration), 1) as ProduttTeo
FROM ProductionLog pl INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies
WHERE pl.ProcessNum='01' and pl.EventType=1
GROUP BY dd.CodItem, pl.RawMat, dd.CodDiesGroup, pl.CodPlant, dd.HoleNum
ORDER BY dd.CodItem, pl.RawMat, dd.CodDiesGroup, SUM(QtyOUT) DESC
-- ==========================================
-- re-insert dei dati di produzione x statistiche
-- ==========================================
exec stp_TPS_upsert @dateFrom, @dateTo
exec stp_TD_upsert @dateFrom , @dateTo
-- exec stp_TI_upsert @dateFrom , @dateTo -- adesso sono già calcolati e inseriti in Package2 / Package2Item
-- ==========================================
-- salvo nuova revisione dati di produzione...
-- Va messa in ogni procedura di update con 'procedura' e versione anno-mese-giorno
-- ==========================================
INSERT INTO RevHistory
SELECT 'P', ISNULL(MAX(RevNum),0) + 1, GETDATE(), 'Aggiornamento dati di produzione x fase 04 ' + CONVERT(NVARCHAR(20), @dateFrom, 120) + ' --> ' +CONVERT(NVARCHAR(20), @dateTo, 120)
FROM RevHistory
WHERE RevType = 'P'
select * from RevHistory
-- simulazione tempo di calcolo: circa 50/sec
---- aggiornamento dei dati dell'offerta in oggetto
--DECLARE @tick DATETIME,
-- @idx INT = 100
--SET @tick = GETDATE()
--WHILE @idx > 0
--BEGIN
-- EXEC stp_QL_update 'Q', 1312130001, 0
-- SELECT @idx = @idx - 1
--END
--SELECT GETDATE() - @tick as tempo
DECLARE @QuoteType CHAR(1) = 'Q',
@CodQuote BIGINT = 1312130001,
@QuoteRev INT = 0
EXEC stp_QL_update @QuoteType, @CodQuote, @QuoteRev
SELECT * FROM QuoteList WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
SELECT * FROM QuoteRM WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
SELECT * FROM QuoteWorkInt WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
SELECT * FROM QuoteWorkExt WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
SELECT * FROM QuoteOC WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
SELECT * FROM QuoteParam WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
select top 10 * from ItemDet
SELECT * FROM RawMatDet
SELECT top 10 * FROM TabProdSc
SELECT top 10 * FROM TabDifett
-- SELECT * FROM TabImbArt
-- SELECT * FROM TabImbGrp
SELECT * FROM PackagDet
SELECT * FROM Package2
---- test gestione selezione CodPackag corretto
--SELECT TOP 5 * FROM Package2ItemClient
--SELECT TOP 5 * FROM Package2Item
--SELECT TOP 5 * FROM Package2
SELECT dbo.f_getCodPackag('1EL00005', '05000001048')
--SELECT dbo.f_getCodPackag('1AN00001', '05000000137')
END