diff --git a/C2P/bin/NLog.dll b/C2P/bin/NLog.dll
index 5a2f145..11a5469 100644
Binary files a/C2P/bin/NLog.dll and b/C2P/bin/NLog.dll differ
diff --git a/C2P_Project/bin/Output/C2P_DB.dacpac b/C2P_Project/bin/Output/C2P_DB.dacpac
new file mode 100644
index 0000000..5728065
Binary files /dev/null and b/C2P_Project/bin/Output/C2P_DB.dacpac differ
diff --git a/C2P_Project/bin/Output/C2P_DB_Create.sql b/C2P_Project/bin/Output/C2P_DB_Create.sql
new file mode 100644
index 0000000..573a81c
--- /dev/null
+++ b/C2P_Project/bin/Output/C2P_DB_Create.sql
@@ -0,0 +1,20306 @@
+/*
+Deployment script for C2P_DB
+
+This code was generated by a tool.
+Changes to this file may cause incorrect behavior and will be lost if
+the code is regenerated.
+*/
+
+GO
+SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
+
+SET NUMERIC_ROUNDABORT OFF;
+
+
+GO
+:setvar DatabaseName "C2P_DB"
+:setvar DefaultFilePrefix "C2P_DB"
+:setvar DefaultDataPath ""
+:setvar DefaultLogPath ""
+
+GO
+:on error exit
+GO
+/*
+Detect SQLCMD mode and disable script execution if SQLCMD mode is not supported.
+To re-enable the script after enabling SQLCMD mode, execute the following:
+SET NOEXEC OFF;
+*/
+:setvar __IsSqlCmdEnabled "True"
+GO
+IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'
+ BEGIN
+ PRINT N'SQLCMD mode must be enabled to successfully execute this script.';
+ SET NOEXEC ON;
+ END
+
+
+GO
+USE [master];
+
+
+GO
+
+IF (DB_ID(N'$(DatabaseName)') IS NOT NULL)
+BEGIN
+ ALTER DATABASE [$(DatabaseName)]
+ SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
+ DROP DATABASE [$(DatabaseName)];
+END
+
+GO
+PRINT N'Creating $(DatabaseName)...'
+GO
+CREATE DATABASE [$(DatabaseName)] COLLATE SQL_Latin1_General_CP1_CI_AS
+GO
+IF EXISTS (SELECT 1
+ FROM [master].[dbo].[sysdatabases]
+ WHERE [name] = N'$(DatabaseName)')
+ BEGIN
+ ALTER DATABASE [$(DatabaseName)]
+ SET ANSI_NULLS ON,
+ ANSI_PADDING ON,
+ ANSI_WARNINGS ON,
+ ARITHABORT ON,
+ CONCAT_NULL_YIELDS_NULL ON,
+ NUMERIC_ROUNDABORT OFF,
+ QUOTED_IDENTIFIER ON,
+ ANSI_NULL_DEFAULT ON,
+ CURSOR_DEFAULT LOCAL,
+ RECOVERY FULL,
+ CURSOR_CLOSE_ON_COMMIT OFF,
+ AUTO_CREATE_STATISTICS ON,
+ AUTO_SHRINK OFF,
+ AUTO_UPDATE_STATISTICS ON,
+ RECURSIVE_TRIGGERS OFF
+ WITH ROLLBACK IMMEDIATE;
+ ALTER DATABASE [$(DatabaseName)]
+ SET AUTO_CLOSE OFF
+ WITH ROLLBACK IMMEDIATE;
+ END
+
+
+GO
+IF EXISTS (SELECT 1
+ FROM [master].[dbo].[sysdatabases]
+ WHERE [name] = N'$(DatabaseName)')
+ BEGIN
+ ALTER DATABASE [$(DatabaseName)]
+ SET ALLOW_SNAPSHOT_ISOLATION OFF;
+ END
+
+
+GO
+IF EXISTS (SELECT 1
+ FROM [master].[dbo].[sysdatabases]
+ WHERE [name] = N'$(DatabaseName)')
+ BEGIN
+ ALTER DATABASE [$(DatabaseName)]
+ SET READ_COMMITTED_SNAPSHOT OFF
+ WITH ROLLBACK IMMEDIATE;
+ END
+
+
+GO
+IF EXISTS (SELECT 1
+ FROM [master].[dbo].[sysdatabases]
+ WHERE [name] = N'$(DatabaseName)')
+ BEGIN
+ ALTER DATABASE [$(DatabaseName)]
+ SET AUTO_UPDATE_STATISTICS_ASYNC OFF,
+ PAGE_VERIFY NONE,
+ DATE_CORRELATION_OPTIMIZATION OFF,
+ DISABLE_BROKER,
+ PARAMETERIZATION SIMPLE,
+ SUPPLEMENTAL_LOGGING OFF
+ WITH ROLLBACK IMMEDIATE;
+ END
+
+
+GO
+IF IS_SRVROLEMEMBER(N'sysadmin') = 1
+ BEGIN
+ IF EXISTS (SELECT 1
+ FROM [master].[dbo].[sysdatabases]
+ WHERE [name] = N'$(DatabaseName)')
+ BEGIN
+ EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
+ SET TRUSTWORTHY OFF,
+ DB_CHAINING OFF
+ WITH ROLLBACK IMMEDIATE';
+ END
+ END
+ELSE
+ BEGIN
+ PRINT N'The database settings cannot be modified. You must be a SysAdmin to apply these settings.';
+ END
+
+
+GO
+IF IS_SRVROLEMEMBER(N'sysadmin') = 1
+ BEGIN
+ IF EXISTS (SELECT 1
+ FROM [master].[dbo].[sysdatabases]
+ WHERE [name] = N'$(DatabaseName)')
+ BEGIN
+ EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
+ SET HONOR_BROKER_PRIORITY OFF
+ WITH ROLLBACK IMMEDIATE';
+ END
+ END
+ELSE
+ BEGIN
+ PRINT N'The database settings cannot be modified. You must be a SysAdmin to apply these settings.';
+ END
+
+
+GO
+USE [$(DatabaseName)];
+
+
+GO
+IF fulltextserviceproperty(N'IsFulltextInstalled') = 1
+ EXECUTE sp_fulltext_database 'enable';
+
+
+GO
+PRINT N'Creating [ext]...';
+
+
+GO
+CREATE SCHEMA [ext]
+ AUTHORIZATION [dbo];
+
+
+GO
+PRINT N'Creating [tmp]...';
+
+
+GO
+CREATE SCHEMA [tmp]
+ AUTHORIZATION [dbo];
+
+
+GO
+PRINT N'Creating [voc]...';
+
+
+GO
+CREATE SCHEMA [voc]
+ AUTHORIZATION [dbo];
+
+
+GO
+PRINT N'Creating [dbo].[Vocabolario]...';
+
+
+GO
+CREATE TABLE [dbo].[Vocabolario] (
+ [Lingua] NVARCHAR (3) NOT NULL,
+ [Lemma] NVARCHAR (50) NOT NULL,
+ [Traduzione] NVARCHAR (500) NOT NULL,
+ CONSTRAINT [PK_Vocabolario] PRIMARY KEY CLUSTERED ([Lingua] ASC, [Lemma] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[Vocabolario].[I_lemma]...';
+
+
+GO
+CREATE NONCLUSTERED INDEX [I_lemma]
+ ON [dbo].[Vocabolario]([Lemma] ASC);
+
+
+GO
+PRINT N'Creating [dbo].[Lingue]...';
+
+
+GO
+CREATE TABLE [dbo].[Lingue] (
+ [Lingua] NVARCHAR (3) NOT NULL,
+ [DescrizioneLingua] NVARCHAR (50) NOT NULL,
+ CONSTRAINT [PK_Lingue] PRIMARY KEY CLUSTERED ([Lingua] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[Config]...';
+
+
+GO
+CREATE TABLE [dbo].[Config] (
+ [Parameter] NVARCHAR (50) NOT NULL,
+ [Value] NVARCHAR (50) NULL,
+ CONSTRAINT [PK_Config] PRIMARY KEY CLUSTERED ([Parameter] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC]...';
+
+
+GO
+CREATE TABLE [dbo].[QuoteOC] (
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [NumEx] INT NOT NULL,
+ [ProcessNum] NVARCHAR (50) NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [Class01] NVARCHAR (50) NOT NULL,
+ [Class02] NVARCHAR (50) NOT NULL,
+ [Class03] NVARCHAR (50) NOT NULL,
+ [Class04] NVARCHAR (50) NOT NULL,
+ [Class05] NVARCHAR (50) NOT NULL,
+ [TotQty] DECIMAL (18, 6) NOT NULL,
+ [TotCost] DECIMAL (18, 6) NOT NULL,
+ [Quota] DECIMAL (18, 6) NOT NULL,
+ [C4UG] AS (([TotCost] * [Quota]) / [TotQty]) PERSISTED,
+ [valid] BIT NOT NULL,
+ CONSTRAINT [PK_QuoteExtra] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC, [NumEx] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkExt]...';
+
+
+GO
+CREATE TABLE [dbo].[QuoteWorkExt] (
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [NumWE] INT NOT NULL,
+ [EWC4UG] DECIMAL (9, 6) NOT NULL,
+ [UM] NVARCHAR (50) NOT NULL,
+ [valid] BIT NOT NULL,
+ CONSTRAINT [PK_QuoteWorkExt] PRIMARY KEY CLUSTERED ([QuoteRev] ASC, [QuoteType] ASC, [CodQuote] ASC, [NumWE] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[Package2Item]...';
+
+
+GO
+CREATE TABLE [dbo].[Package2Item] (
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [TotQta] DECIMAL (18, 3) NOT NULL,
+ [Weight] DECIMAL (9, 4) NOT NULL,
+ [Tare] DECIMAL (9, 4) NOT NULL,
+ [NumImb] DECIMAL (9, 6) NOT NULL,
+ [Durata] DECIMAL (18, 6) NOT NULL,
+ CONSTRAINT [PK_Package2Item] PRIMARY KEY CLUSTERED ([CodItem] ASC, [CodPackag] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_Q_old]...';
+
+
+GO
+CREATE TABLE [dbo].[QuoteFull_Q_old] (
+ [Vers] VARCHAR (5) NOT NULL,
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [ClientName] NVARCHAR (250) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [CodItemGroup] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [UnitWeight] DECIMAL (9, 3) NOT NULL,
+ [BatchQty] INT NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [KeyAM] NVARCHAR (101) NOT NULL,
+ [Note] NVARCHAR (2500) NOT NULL,
+ [FullCost] DECIMAL (9, 6) NOT NULL,
+ [MinPrice] DECIMAL (9, 6) NOT NULL,
+ [PriceOff] DECIMAL (9, 6) NOT NULL,
+ [CodClientAssoc] NVARCHAR (100) NULL,
+ [ClientNameAssoc] NVARCHAR (100) NULL,
+ [ItemDescr] NVARCHAR (100) NULL,
+ [CodifProfilo] NVARCHAR (100) NULL,
+ [ClasseMerc] NVARCHAR (100) NULL,
+ [TipoDies] NVARCHAR (100) NULL,
+ [CodDiesGroup] NVARCHAR (100) NULL,
+ [DiamDies] NVARCHAR (100) NULL,
+ [HoleNumDies] NVARCHAR (100) NULL,
+ [DiesPrice] NVARCHAR (100) NULL,
+ [DiesExpLife] NVARCHAR (100) NULL,
+ [DiesEOLife] NVARCHAR (100) NULL,
+ [NumDiesInList] NVARCHAR (100) NULL,
+ [NumDiesExaust] NVARCHAR (100) NULL,
+ [CodPlant] NVARCHAR (100) NULL,
+ [KeyAMIL] NVARCHAR (100) NULL,
+ [KgTeo] NVARCHAR (100) NULL,
+ [NumSMED] NVARCHAR (100) NULL,
+ [QuotaMan] NVARCHAR (100) NULL,
+ [PRMWeight] NVARCHAR (100) NULL,
+ [PWeight] NVARCHAR (100) NULL,
+ [PTare] NVARCHAR (100) NULL,
+ [LivPackage] NVARCHAR (100) NULL,
+ [LivPackageDett] NVARCHAR (100) NULL,
+ [RawMatCost] DECIMAL (18, 6) NOT NULL,
+ [RawMatExtraCost] DECIMAL (18, 6) NOT NULL,
+ [RawMatFullCost] DECIMAL (19, 6) NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [PkgDesc] NVARCHAR (100) NULL,
+ [FSR] DECIMAL (27, 19) NULL,
+ [ProvvCost] DECIMAL (38, 7) NOT NULL,
+ [EECost] DECIMAL (38, 7) NOT NULL,
+ [GasCost] DECIMAL (38, 7) NOT NULL,
+ [DiesCost] DECIMAL (38, 7) NOT NULL,
+ [PackCost] DECIMAL (38, 7) NOT NULL,
+ [TranspCost] DECIMAL (38, 7) NOT NULL,
+ [SellCost01] DECIMAL (38, 7) NOT NULL,
+ [RefCost01] DECIMAL (38, 7) NOT NULL,
+ [SellCost04] DECIMAL (38, 7) NOT NULL,
+ [RefCost04] DECIMAL (38, 7) NOT NULL,
+ [WSR01] DECIMAL (9, 8) NOT NULL,
+ [MSR01] DECIMAL (9, 8) NOT NULL,
+ [NetProd01] DECIMAL (9, 3) NOT NULL,
+ [FC4UG01] DECIMAL (9, 6) NOT NULL,
+ [VC4UG01] DECIMAL (9, 6) NOT NULL,
+ [OH4UG01] DECIMAL (9, 6) NOT NULL,
+ [SC4UG01] DECIMAL (9, 6) NOT NULL,
+ [DSR] DECIMAL (38, 27) NULL,
+ [NetProd04] DECIMAL (9, 3) NOT NULL,
+ [FC4UG04] DECIMAL (9, 6) NOT NULL,
+ [VC4UG04] DECIMAL (9, 6) NOT NULL,
+ [FVC] DECIMAL (38, 7) NULL,
+ [Charge] DECIMAL (9, 6) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [dbo].[Package2ItemClient]...';
+
+
+GO
+CREATE TABLE [dbo].[Package2ItemClient] (
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [TotQta] DECIMAL (18, 3) NOT NULL,
+ [Weight] DECIMAL (18, 6) NOT NULL,
+ [Tare] DECIMAL (18, 6) NOT NULL,
+ [NumImb] DECIMAL (9, 6) NOT NULL,
+ [Durata] DECIMAL (18, 6) NOT NULL,
+ CONSTRAINT [PK_Package2ItemClient] PRIMARY KEY CLUSTERED ([CodItem] ASC, [CodClient] ASC, [CodPackag] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[PackagDet]...';
+
+
+GO
+CREATE TABLE [dbo].[PackagDet] (
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [PackagDesc] NVARCHAR (250) NOT NULL,
+ [RMCost] DECIMAL (9, 3) NOT NULL,
+ [RMWeight] DECIMAL (9, 4) NOT NULL,
+ CONSTRAINT [PK_PackagDet] PRIMARY KEY CLUSTERED ([CodPackag] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[TabImbArt]...';
+
+
+GO
+CREATE TABLE [dbo].[TabImbArt] (
+ [KeyA] NVARCHAR (50) NOT NULL,
+ [NumImb] DECIMAL (9, 6) NOT NULL,
+ [TotOut] DECIMAL (18, 6) NOT NULL,
+ [Durata] DECIMAL (18, 6) NOT NULL,
+ CONSTRAINT [PK_TabImbArt] PRIMARY KEY CLUSTERED ([KeyA] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[PlantsDet]...';
+
+
+GO
+CREATE TABLE [dbo].[PlantsDet] (
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [Descript] NVARCHAR (250) NOT NULL,
+ [Charge] DECIMAL (9, 6) NOT NULL,
+ CONSTRAINT [PK_PlantsDet] PRIMARY KEY CLUSTERED ([CodPlant] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[RevHistory]...';
+
+
+GO
+CREATE TABLE [dbo].[RevHistory] (
+ [RevType] NVARCHAR (50) NOT NULL,
+ [RevNum] INT NOT NULL,
+ [DateRev] DATETIME NOT NULL,
+ [Description] NVARCHAR (250) NOT NULL,
+ CONSTRAINT [PK_RevHistory] PRIMARY KEY CLUSTERED ([RevType] ASC, [RevNum] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[DiesGroupDet]...';
+
+
+GO
+CREATE TABLE [dbo].[DiesGroupDet] (
+ [CodDiesGroup] NVARCHAR (50) NOT NULL,
+ [Price] DECIMAL (9, 3) NOT NULL,
+ [QtyTot] INT NOT NULL,
+ [QtyEOL] INT NOT NULL,
+ [ExpLife] DECIMAL (9, 2) NOT NULL,
+ [EOLLife] DECIMAL (9, 2) NOT NULL,
+ [DateMod] DATE NULL,
+ [UserMod] NVARCHAR (50) NULL,
+ CONSTRAINT [PK_DiesGroupDet] PRIMARY KEY CLUSTERED ([CodDiesGroup] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[Cost2Plant]...';
+
+
+GO
+CREATE TABLE [dbo].[Cost2Plant] (
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [ProcessNum] NVARCHAR (50) NOT NULL,
+ [FC] DECIMAL (9, 4) NOT NULL,
+ [VC] DECIMAL (9, 4) NOT NULL,
+ [OH] DECIMAL (9, 4) NOT NULL,
+ [SC] DECIMAL (9, 4) NOT NULL,
+ [QuotaPlantStd] DECIMAL (9, 4) NOT NULL,
+ [QuotaManStd] DECIMAL (9, 4) NOT NULL,
+ CONSTRAINT [PK_Cost2Plant] PRIMARY KEY CLUSTERED ([CodPlant] ASC, [ProcessNum] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[ClientDet]...';
+
+
+GO
+CREATE TABLE [dbo].[ClientDet] (
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [ClientName] NVARCHAR (250) NOT NULL,
+ [CodAg] NVARCHAR (50) NOT NULL,
+ [ZipCode] NVARCHAR (50) NOT NULL,
+ [City] NVARCHAR (50) NOT NULL,
+ [State] NVARCHAR (50) NOT NULL,
+ [Nation] NVARCHAR (50) NOT NULL,
+ [TranspZone] NVARCHAR (50) NULL,
+ CONSTRAINT [PK_ClientDet] PRIMARY KEY CLUSTERED ([CodClient] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[AgentsDet]...';
+
+
+GO
+CREATE TABLE [dbo].[AgentsDet] (
+ [CodAg] NVARCHAR (50) NOT NULL,
+ [Lastname] NVARCHAR (50) NOT NULL,
+ [Firstname] NVARCHAR (50) NOT NULL,
+ [QuotaProvvAg] DECIMAL (9, 6) NOT NULL,
+ CONSTRAINT [PK_AgentsDet] PRIMARY KEY CLUSTERED ([CodAg] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[Utilities]...';
+
+
+GO
+CREATE TABLE [dbo].[Utilities] (
+ [CodUtil] NVARCHAR (50) NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [UnitCost] DECIMAL (9, 6) NOT NULL,
+ CONSTRAINT [PK_Utilities] PRIMARY KEY CLUSTERED ([CodUtil] ASC, [CodPlant] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[Incoterms]...';
+
+
+GO
+CREATE TABLE [dbo].[Incoterms] (
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [Descript] NVARCHAR (250) NOT NULL,
+ [HasTC] INT NOT NULL,
+ CONSTRAINT [PK_Incoterms] PRIMARY KEY CLUSTERED ([CodInco] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[TranspCostDet]...';
+
+
+GO
+CREATE TABLE [dbo].[TranspCostDet] (
+ [TranspZone] NVARCHAR (50) NOT NULL,
+ [TranspCost] DECIMAL (9, 6) NOT NULL,
+ CONSTRAINT [PK_TranspCostDet_1] PRIMARY KEY CLUSTERED ([TranspZone] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[QuoteRM]...';
+
+
+GO
+CREATE TABLE [dbo].[QuoteRM] (
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [NumRM] INT NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [RawMatCost] DECIMAL (18, 6) NOT NULL,
+ [RawMatExtraCost] DECIMAL (18, 6) NOT NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [FCR] DECIMAL (18, 6) NOT NULL,
+ [FYR] AS ((1) / [FCR]),
+ [FSR] AS ((1) - (1) / [FCR]),
+ [valid] BIT NOT NULL,
+ CONSTRAINT [PK_QuoteRM] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC, [NumRM] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[ItemDet]...';
+
+
+GO
+CREATE TABLE [dbo].[ItemDet] (
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [ItemDescr] NVARCHAR (250) NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [UnitWeight] DECIMAL (9, 3) NOT NULL,
+ [CodItemGroup] NVARCHAR (50) NOT NULL,
+ [Class01] NVARCHAR (50) NOT NULL,
+ [Class02] NVARCHAR (50) NOT NULL,
+ [Class03] NVARCHAR (50) NOT NULL,
+ [Class04] NVARCHAR (50) NOT NULL,
+ [Class05] NVARCHAR (50) NOT NULL,
+ CONSTRAINT [PK_AnagArticoli] PRIMARY KEY CLUSTERED ([CodItem] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[Package2]...';
+
+
+GO
+CREATE TABLE [dbo].[Package2] (
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [TotQta] DECIMAL (18, 3) NOT NULL,
+ [Weight] DECIMAL (18, 6) NOT NULL,
+ [Tare] DECIMAL (18, 6) NOT NULL,
+ [NumImb] DECIMAL (9, 6) NOT NULL,
+ [Durata] DECIMAL (18, 6) NOT NULL,
+ CONSTRAINT [PK_Package2] PRIMARY KEY CLUSTERED ([CodPackag] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[TabImbGrp]...';
+
+
+GO
+CREATE TABLE [dbo].[TabImbGrp] (
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [NumImb] DECIMAL (9, 6) NOT NULL,
+ [TotOut] DECIMAL (18, 6) NOT NULL,
+ [Durata] DECIMAL (18, 6) NOT NULL,
+ CONSTRAINT [PK_TabImbGrp] PRIMARY KEY CLUSTERED ([CodPackag] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[Permessi]...';
+
+
+GO
+CREATE TABLE [dbo].[Permessi] (
+ [COD_PERMESSO] VARCHAR (50) NOT NULL,
+ [URL] VARCHAR (250) NOT NULL,
+ [GRUPPO] INT NULL,
+ [NUMERO] INT NULL,
+ [NOME] VARCHAR (50) NULL,
+ [DESCRIZIONE] VARCHAR (50) NULL,
+ CONSTRAINT [PK_Permessi] PRIMARY KEY CLUSTERED ([COD_PERMESSO] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[Permessi2Funzione]...';
+
+
+GO
+CREATE TABLE [dbo].[Permessi2Funzione] (
+ [COD_PERMESSO] VARCHAR (50) NOT NULL,
+ [COD_FUNZIONE] NVARCHAR (31) NOT NULL,
+ [READWRITE] CHAR (1) NULL,
+ CONSTRAINT [PK_Permessi2Funzione] PRIMARY KEY CLUSTERED ([COD_PERMESSO] ASC, [COD_FUNZIONE] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[TabDifett]...';
+
+
+GO
+CREATE TABLE [dbo].[TabDifett] (
+ [KeyAMI] NVARCHAR (152) NOT NULL,
+ [ProcessNum] NVARCHAR (50) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [TotOut] DECIMAL (18, 6) NULL,
+ [TotIn] INT NULL,
+ CONSTRAINT [PK_TabDifett] PRIMARY KEY CLUSTERED ([KeyAMI] ASC, [ProcessNum] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[DiesDet]...';
+
+
+GO
+CREATE TABLE [dbo].[DiesDet] (
+ [CodDies] NVARCHAR (50) NOT NULL,
+ [HoleNum] INT NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [CodDiesGroup] NVARCHAR (50) NOT NULL,
+ [Price] DECIMAL (9, 3) NOT NULL,
+ [TestCost] DECIMAL (9, 3) NOT NULL,
+ [ExpLife] DECIMAL (9, 2) NOT NULL,
+ [ActLife] DECIMAL (9, 2) NOT NULL,
+ [Active] INT NOT NULL,
+ CONSTRAINT [PK_DiesDet] PRIMARY KEY CLUSTERED ([CodDies] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[DiesDet].[i_DiesDet_CodItem_CodDiesGroup_Active]...';
+
+
+GO
+CREATE NONCLUSTERED INDEX [i_DiesDet_CodItem_CodDiesGroup_Active]
+ ON [dbo].[DiesDet]([CodItem] ASC, [CodDiesGroup] ASC, [Active] ASC)
+ INCLUDE([Price], [ExpLife], [ActLife]);
+
+
+GO
+PRINT N'Creating [dbo].[DiesDet].[i_DiesDet_Active_CodDiesGroup_Filtered]...';
+
+
+GO
+CREATE NONCLUSTERED INDEX [i_DiesDet_Active_CodDiesGroup_Filtered]
+ ON [dbo].[DiesDet]([CodDiesGroup] ASC, [CodItem] ASC)
+ INCLUDE([ActLife], [Price], [ExpLife]) WHERE ([Active]=(0));
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog]...';
+
+
+GO
+CREATE TABLE [dbo].[ProductionLog] (
+ [EventStart] DATETIME NOT NULL,
+ [EventEnd] DATETIME NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [ProcessNum] NVARCHAR (50) NOT NULL,
+ [NrPos] NVARCHAR (50) NOT NULL,
+ [CodDies] NVARCHAR (50) NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [OrderNum] NVARCHAR (50) NOT NULL,
+ [BatchNum] NVARCHAR (50) NOT NULL,
+ [ProcessType] NVARCHAR (50) NOT NULL,
+ [EventType] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [QtyIN] DECIMAL (18, 4) NOT NULL,
+ [QtyOUT] DECIMAL (18, 4) NOT NULL,
+ [QtyEXT] DECIMAL (18, 4) NOT NULL,
+ [NumIN] INT NOT NULL,
+ [NumOUT] INT NOT NULL,
+ [QuotaPlant] DECIMAL (9, 4) NOT NULL,
+ [QuotaMan] DECIMAL (9, 4) NOT NULL,
+ [Tags] NVARCHAR (250) NOT NULL,
+ [Duration] AS (CONVERT (DECIMAL (12, 6), datediff(second, [EventStart], [EventEnd]) / (3600.00), (0))) PERSISTED,
+ [okPr] BIT NOT NULL,
+ [okQM] BIT NOT NULL,
+ [okSc] BIT NOT NULL,
+ [okDi] BIT NOT NULL,
+ CONSTRAINT [PK_ProductionLog_1] PRIMARY KEY CLUSTERED ([EventStart] ASC, [EventEnd] ASC, [CodPlant] ASC, [ProcessNum] ASC, [NrPos] ASC, [CodDies] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[i_ProductionLog_CodDies]...';
+
+
+GO
+CREATE NONCLUSTERED INDEX [i_ProductionLog_CodDies]
+ ON [dbo].[ProductionLog]([CodDies] ASC)
+ INCLUDE([EventStart], [RawMat]);
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_Q]...';
+
+
+GO
+CREATE TABLE [dbo].[QuoteFull_Q] (
+ [Vers] VARCHAR (5) NOT NULL,
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [IdxQState] INT NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [ClientName] NVARCHAR (250) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [CodItemGroup] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [UnitWeight] DECIMAL (9, 3) NOT NULL,
+ [BatchQty] INT NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [TranspZone] NVARCHAR (50) NOT NULL,
+ [KeyAM] NVARCHAR (101) NOT NULL,
+ [Note] NVARCHAR (2500) NOT NULL,
+ [PriceOff] DECIMAL (9, 6) NOT NULL,
+ [CodClientAssoc] NVARCHAR (100) NULL,
+ [ClientNameAssoc] NVARCHAR (100) NULL,
+ [ItemDescr] NVARCHAR (100) NULL,
+ [CodifProfilo] NVARCHAR (100) NULL,
+ [ClasseMerc] NVARCHAR (100) NULL,
+ [TipoDies] NVARCHAR (100) NULL,
+ [CodDiesGroup] NVARCHAR (100) NULL,
+ [DiamDies] DECIMAL (18, 6) NOT NULL,
+ [HoleNumDies] INT NULL,
+ [DiesPrice] DECIMAL (18, 6) NOT NULL,
+ [DiesExpLife] DECIMAL (18, 6) NOT NULL,
+ [DiesEOLife] DECIMAL (18, 6) NOT NULL,
+ [DiesByClass] BIT NOT NULL,
+ [NumDiesInList] DECIMAL (18, 6) NULL,
+ [NumDiesExaust] DECIMAL (18, 6) NULL,
+ [CodPlant] NVARCHAR (100) NULL,
+ [KeyAMIL] NVARCHAR (100) NULL,
+ [KgTeo] DECIMAL (18, 6) NULL,
+ [NumSMED] DECIMAL (18, 6) NULL,
+ [QuotaMan] DECIMAL (18, 6) NULL,
+ [PRMWeight] DECIMAL (18, 6) NULL,
+ [PWeight] DECIMAL (18, 6) NULL,
+ [PTare] DECIMAL (18, 6) NULL,
+ [LivPackage] NVARCHAR (100) NULL,
+ [LivPackageDett] NVARCHAR (100) NULL,
+ [RawMatCost] DECIMAL (18, 6) NOT NULL,
+ [RawMatExtraCost] DECIMAL (18, 6) NOT NULL,
+ [RawMatFullCost] DECIMAL (18, 6) NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [PkgDesc] NVARCHAR (100) NULL,
+ [FSR] DECIMAL (18, 6) NULL,
+ [ProvvCost] DECIMAL (18, 6) NOT NULL,
+ [EECost] DECIMAL (18, 6) NOT NULL,
+ [GasCost] DECIMAL (18, 6) NOT NULL,
+ [DiesCost] DECIMAL (18, 6) NOT NULL,
+ [PackCost] DECIMAL (18, 6) NOT NULL,
+ [TranspCost] DECIMAL (18, 6) NOT NULL,
+ [SellCost01] DECIMAL (18, 6) NOT NULL,
+ [RefCost01] DECIMAL (18, 6) NOT NULL,
+ [SellCost04] DECIMAL (18, 6) NOT NULL,
+ [RefCost04] DECIMAL (18, 6) NOT NULL,
+ [WSR01] DECIMAL (9, 8) NOT NULL,
+ [MSR01] DECIMAL (9, 8) NOT NULL,
+ [NetProd01] DECIMAL (9, 3) NOT NULL,
+ [FC4UG01] DECIMAL (9, 6) NOT NULL,
+ [VC4UG01] DECIMAL (9, 6) NOT NULL,
+ [OH4UG01] DECIMAL (9, 6) NOT NULL,
+ [SC4UG01] DECIMAL (9, 6) NOT NULL,
+ [DSR] DECIMAL (9, 8) NULL,
+ [NetProd04] DECIMAL (9, 3) NOT NULL,
+ [FC4UG04] DECIMAL (9, 6) NOT NULL,
+ [VC4UG04] DECIMAL (9, 6) NOT NULL,
+ [FVC] DECIMAL (18, 6) NULL,
+ [Charge] DECIMAL (9, 6) NOT NULL,
+ [valid] BIT NOT NULL,
+ [errorScore] INT NOT NULL,
+ CONSTRAINT [PK_QuoteFull_Q_1] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList]...';
+
+
+GO
+CREATE TABLE [dbo].[QuoteList] (
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [IdxQState] INT NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [CodItemGroup] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [UnitWeight] DECIMAL (9, 3) NOT NULL,
+ [BatchQty] INT NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [KeyAM] AS ((CASE WHEN [QuoteType] = 'S' THEN [CodItemGroup] ELSE [CodItem] END + '-') + [RawMat]),
+ [Note] NVARCHAR (2500) NOT NULL,
+ [PriceOff] DECIMAL (9, 6) NOT NULL,
+ [OrdDate] SMALLDATETIME NULL,
+ [OrdNum] NVARCHAR (50) NOT NULL,
+ [OrdRow] NVARCHAR (50) NOT NULL,
+ [OrdPrice] DECIMAL (9, 6) NOT NULL,
+ [OrdQty] INT NOT NULL,
+ [valid] BIT NOT NULL,
+ [errorScore] INT NOT NULL,
+ [UserCreaz] NVARCHAR (50) NOT NULL,
+ [DataCreaz] DATETIME NOT NULL,
+ [UserMod] NVARCHAR (50) NOT NULL,
+ [DataMod] DATETIME NOT NULL,
+ CONSTRAINT [PK_QuoteList_1] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC) WITH (FILLFACTOR = 90)
+);
+
+
+GO
+PRINT N'Creating [dbo].[QuoteParam]...';
+
+
+GO
+CREATE TABLE [dbo].[QuoteParam] (
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [NumP] INT NOT NULL,
+ [ProcessNum] NVARCHAR (50) NOT NULL,
+ [Descr] NVARCHAR (50) NOT NULL,
+ [Parameter] NVARCHAR (100) NOT NULL,
+ CONSTRAINT [PK_QuoteParam] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC, [NumP] ASC) WITH (FILLFACTOR = 90)
+);
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt]...';
+
+
+GO
+CREATE TABLE [dbo].[QuoteWorkInt] (
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [NumWI] INT NOT NULL,
+ [ProcessNum] NVARCHAR (50) NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [Class01] NVARCHAR (50) NOT NULL,
+ [Class02] NVARCHAR (50) NOT NULL,
+ [Class03] NVARCHAR (50) NOT NULL,
+ [Class04] NVARCHAR (50) NOT NULL,
+ [Class05] NVARCHAR (50) NOT NULL,
+ [NetProd] DECIMAL (9, 3) NOT NULL,
+ [WSR] DECIMAL (9, 8) NOT NULL,
+ [MSR] DECIMAL (9, 8) NOT NULL,
+ [DSR] DECIMAL (9, 8) NOT NULL,
+ [FC4UG] DECIMAL (9, 6) NOT NULL,
+ [VC4UG] DECIMAL (9, 6) NOT NULL,
+ [OH4UG] DECIMAL (9, 6) NOT NULL,
+ [SC4UG] DECIMAL (9, 6) NOT NULL,
+ [WYR] AS ((1) - [WSR]),
+ [MYR] AS ((1) - [MSR]),
+ [DYR] AS ((1) - [DSR]),
+ [WCR] AS (CASE WHEN ((1) - [WSR]) = (0) THEN (1) ELSE (1) / ((1) - [WSR]) END),
+ [MCR] AS (CASE WHEN ((1) - [MSR]) = (0) THEN (1) ELSE (1) / ((1) - [MSR]) END),
+ [DCR] AS (CASE WHEN ((1) - [DSR]) = (0) THEN (1) ELSE (1) / ((1) - [DSR]) END),
+ [valid] BIT NOT NULL,
+ CONSTRAINT [PK_QuoteWorkInt] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC, [NumWI] ASC) WITH (FILLFACTOR = 90)
+);
+
+
+GO
+PRINT N'Creating [dbo].[RawMatDet]...';
+
+
+GO
+CREATE TABLE [dbo].[RawMatDet] (
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [ProcCost] DECIMAL (18, 6) NOT NULL,
+ [ProcYield] DECIMAL (9, 6) NOT NULL,
+ [CSR] DECIMAL (9, 6) NOT NULL,
+ [SSR] DECIMAL (9, 6) NULL,
+ [SSVA] DECIMAL (9, 6) NULL,
+ [SSVR] DECIMAL (9, 6) NULL,
+ [ExtraMatCost] DECIMAL (9, 6) NULL,
+ [ExtraServCost] DECIMAL (9, 6) NULL,
+ CONSTRAINT [PK_RawMatDet] PRIMARY KEY CLUSTERED ([RawMat] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[TabProdSc]...';
+
+
+GO
+CREATE TABLE [dbo].[TabProdSc] (
+ [KeyAMIL] NVARCHAR (250) NOT NULL,
+ [CodDiesGroup] NVARCHAR (50) NOT NULL,
+ [KeyAM] NVARCHAR (250) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [HoleNum] INT NOT NULL,
+ [NumSMED] INT NOT NULL,
+ [KgTeo] DECIMAL (18, 6) NOT NULL,
+ [KgLor] DECIMAL (18, 6) NOT NULL,
+ [Duration] DECIMAL (18, 6) NOT NULL,
+ [ProdTeo] AS (CASE isnull([Duration], (0)) WHEN (0) THEN (0) ELSE isnull([KgTeo], (0)) / [Duration] END),
+ [ScTec] AS (CASE isnull([KgLor], (0)) WHEN (0) THEN (0) ELSE (1) - [KgTeo] / [KgLor] END),
+ CONSTRAINT [PK_TabProdSc] PRIMARY KEY CLUSTERED ([KeyAMIL] ASC, [CodDiesGroup] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[TabProdSc].[i_TabProdSc_KeyAM]...';
+
+
+GO
+CREATE NONCLUSTERED INDEX [i_TabProdSc_KeyAM]
+ ON [dbo].[TabProdSc]([KeyAM] ASC)
+ INCLUDE([KgTeo]);
+
+
+GO
+PRINT N'Creating [dbo].[TrascDies]...';
+
+
+GO
+CREATE TABLE [dbo].[TrascDies] (
+ [CodDies] NVARCHAR (50) NOT NULL,
+ [CodDiesNew] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [dbo].[TrascItem]...';
+
+
+GO
+CREATE TABLE [dbo].[TrascItem] (
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [ItemDescr] NVARCHAR (250) NOT NULL,
+ [CodItemNew] NVARCHAR (50) NOT NULL,
+ [ItemDescNew] NVARCHAR (250) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [dbo].[TrascPlan]...';
+
+
+GO
+CREATE TABLE [dbo].[TrascPlan] (
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [CodPlantNew] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [dbo].[UTENTE]...';
+
+
+GO
+CREATE TABLE [dbo].[UTENTE] (
+ [DOMINIO] VARCHAR (30) NULL,
+ [USER_NAME] NVARCHAR (50) NOT NULL,
+ [COGNOME] VARCHAR (100) NULL,
+ [NOME] VARCHAR (100) NULL,
+ [COD_SOCIETA] VARCHAR (5) NULL,
+ [MATRICOLA] VARCHAR (5) NULL,
+ [COD_CDC] VARCHAR (10) NULL,
+ [EMAIL] VARCHAR (100) NULL,
+ [SIGLA] NVARCHAR (5) NULL,
+ [COD_LINGUA] VARCHAR (3) NULL,
+ [ATTIVO] CHAR (1) NULL,
+ CONSTRAINT [PK_UTENTE] PRIMARY KEY CLUSTERED ([USER_NAME] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[OrdersHist]...';
+
+
+GO
+CREATE TABLE [dbo].[OrdersHist] (
+ [OrdNum] NVARCHAR (50) NOT NULL,
+ [OrdRow] NVARCHAR (50) NOT NULL,
+ [OrdDate] SMALLDATETIME NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [RawMatCost] DECIMAL (18, 6) NOT NULL,
+ [BatchQty] INT NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [OrdPrice] DECIMAL (9, 6) NOT NULL,
+ [RawMatExtraCost] DECIMAL (18, 6) NOT NULL,
+ [PriceOff] DECIMAL (9, 6) NOT NULL,
+ [OrdQty] INT NOT NULL,
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [ProvvCost] DECIMAL (9, 6) NOT NULL,
+ [EndCalc] DATETIME NULL,
+ CONSTRAINT [PK_OrdersHist] PRIMARY KEY CLUSTERED ([OrdNum] ASC, [OrdRow] ASC) WITH (FILLFACTOR = 100)
+);
+
+
+GO
+PRINT N'Creating [dbo].[OrdersHist].[idx_OH_quote]...';
+
+
+GO
+CREATE NONCLUSTERED INDEX [idx_OH_quote]
+ ON [dbo].[OrdersHist]([CodQuote] ASC, [QuoteRev] ASC) WITH (FILLFACTOR = 100);
+
+
+GO
+PRINT N'Creating [dbo].[PickList]...';
+
+
+GO
+CREATE TABLE [dbo].[PickList] (
+ [CodList] NVARCHAR (50) NOT NULL,
+ [Value] NVARCHAR (50) NOT NULL,
+ [Lemma] NVARCHAR (50) NOT NULL,
+ [NumOrd] INT NOT NULL,
+ CONSTRAINT [PK_PickList] PRIMARY KEY CLUSTERED ([CodList] ASC, [Value] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_C]...';
+
+
+GO
+CREATE TABLE [dbo].[QuoteFull_C] (
+ [Vers] VARCHAR (5) NOT NULL,
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [Class01] NVARCHAR (50) NOT NULL,
+ [Class02] NVARCHAR (50) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [CodDiesGroup] NVARCHAR (50) NOT NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [batchQty] INT NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [RawMatFullCost] NUMERIC (18, 6) NOT NULL,
+ [FVC] DECIMAL (18, 6) NOT NULL,
+ [FullCost] DECIMAL (18, 6) NOT NULL,
+ [valid] BIT NULL,
+ [errorScore] INT NULL,
+ CONSTRAINT [PK_QuoteFull_C] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_R]...';
+
+
+GO
+CREATE TABLE [dbo].[QuoteFull_R] (
+ [Vers] VARCHAR (5) NOT NULL,
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [IdxQState] INT NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [ClientName] NVARCHAR (250) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [CodItemGroup] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [UnitWeight] DECIMAL (9, 3) NOT NULL,
+ [BatchQty] INT NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [TranspZone] NVARCHAR (50) NOT NULL,
+ [KeyAM] NVARCHAR (101) NOT NULL,
+ [Note] NVARCHAR (2500) NOT NULL,
+ [PriceOff] DECIMAL (9, 6) NOT NULL,
+ [CodClientAssoc] NVARCHAR (100) NULL,
+ [ClientNameAssoc] NVARCHAR (100) NULL,
+ [ItemDescr] NVARCHAR (100) NULL,
+ [CodifProfilo] NVARCHAR (100) NULL,
+ [ClasseMerc] NVARCHAR (100) NULL,
+ [TipoDies] NVARCHAR (100) NULL,
+ [CodDiesGroup] NVARCHAR (100) NULL,
+ [DiamDies] DECIMAL (18, 6) NOT NULL,
+ [HoleNumDies] INT NULL,
+ [DiesPrice] DECIMAL (18, 6) NOT NULL,
+ [DiesExpLife] DECIMAL (18, 6) NOT NULL,
+ [DiesEOLife] DECIMAL (18, 6) NOT NULL,
+ [DiesByClass] BIT NOT NULL,
+ [NumDiesInList] DECIMAL (18, 6) NULL,
+ [NumDiesExaust] DECIMAL (18, 6) NULL,
+ [CodPlant] NVARCHAR (100) NULL,
+ [KeyAMIL] NVARCHAR (100) NULL,
+ [KgTeo] DECIMAL (18, 6) NULL,
+ [NumSMED] INT NULL,
+ [QuotaMan] DECIMAL (18, 6) NULL,
+ [PRMWeight] DECIMAL (18, 6) NULL,
+ [PWeight] DECIMAL (18, 6) NULL,
+ [PTare] DECIMAL (18, 6) NULL,
+ [LivPackage] NVARCHAR (100) NULL,
+ [LivPackageDett] NVARCHAR (100) NULL,
+ [RawMatCost] DECIMAL (18, 6) NOT NULL,
+ [RawMatExtraCost] DECIMAL (18, 6) NOT NULL,
+ [RawMatFullCost] DECIMAL (18, 6) NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [PkgDesc] NVARCHAR (100) NULL,
+ [FSR] DECIMAL (18, 6) NULL,
+ [ProvvCost] DECIMAL (18, 6) NOT NULL,
+ [EECost] DECIMAL (18, 6) NOT NULL,
+ [GasCost] DECIMAL (18, 6) NOT NULL,
+ [DiesCost] DECIMAL (18, 6) NOT NULL,
+ [PackCost] DECIMAL (18, 6) NOT NULL,
+ [TranspCost] DECIMAL (18, 6) NOT NULL,
+ [SellCost01] DECIMAL (18, 6) NOT NULL,
+ [RefCost01] DECIMAL (18, 6) NOT NULL,
+ [SellCost04] DECIMAL (18, 6) NOT NULL,
+ [RefCost04] DECIMAL (18, 6) NOT NULL,
+ [WSR01] DECIMAL (9, 8) NOT NULL,
+ [MSR01] DECIMAL (9, 8) NOT NULL,
+ [NetProd01] DECIMAL (9, 3) NOT NULL,
+ [FC4UG01] DECIMAL (9, 6) NOT NULL,
+ [VC4UG01] DECIMAL (9, 6) NOT NULL,
+ [OH4UG01] DECIMAL (9, 6) NOT NULL,
+ [SC4UG01] DECIMAL (9, 6) NOT NULL,
+ [DSR] DECIMAL (9, 8) NULL,
+ [NetProd04] DECIMAL (9, 3) NOT NULL,
+ [FC4UG04] DECIMAL (9, 6) NOT NULL,
+ [VC4UG04] DECIMAL (9, 6) NOT NULL,
+ [FVC] DECIMAL (18, 6) NULL,
+ [Charge] DECIMAL (9, 6) NOT NULL,
+ [OrdDate] SMALLDATETIME NOT NULL,
+ [OrdNum] NVARCHAR (50) NOT NULL,
+ [OrdRow] NVARCHAR (50) NOT NULL,
+ [OrdPrice] DECIMAL (9, 6) NOT NULL,
+ [OrdQty] INT NOT NULL,
+ [valid] BIT NOT NULL,
+ [errorScore] INT NOT NULL,
+ CONSTRAINT [PK_QuoteFull_R_1] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC) WITH (FILLFACTOR = 90)
+);
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S]...';
+
+
+GO
+CREATE TABLE [dbo].[QuoteFull_S] (
+ [Vers] VARCHAR (5) NOT NULL,
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [IdxQState] INT NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [ClientName] NVARCHAR (250) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [CodItemGroup] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [UnitWeight] DECIMAL (9, 3) NOT NULL,
+ [BatchQty] INT NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [TranspZone] NVARCHAR (50) NOT NULL,
+ [KeyAM] NVARCHAR (101) NOT NULL,
+ [Note] NVARCHAR (2500) NOT NULL,
+ [PriceOff] DECIMAL (9, 6) NOT NULL,
+ [CodClientAssoc] NVARCHAR (100) NULL,
+ [ClientNameAssoc] NVARCHAR (100) NULL,
+ [ItemDescr] NVARCHAR (100) NULL,
+ [CodifProfilo] NVARCHAR (100) NULL,
+ [ClasseMerc] NVARCHAR (100) NULL,
+ [TipoDies] NVARCHAR (100) NULL,
+ [CodDiesGroup] NVARCHAR (100) NULL,
+ [DiamDies] DECIMAL (18, 6) NOT NULL,
+ [HoleNumDies] INT NOT NULL,
+ [DiesPrice_sim] DECIMAL (18, 6) NOT NULL,
+ [DiesPrice] DECIMAL (18, 6) NOT NULL,
+ [SamplePrice] DECIMAL (18, 6) NOT NULL,
+ [DiesFullCost] DECIMAL (18, 6) NOT NULL,
+ [DiesPriceClientQuote] DECIMAL (18, 6) NOT NULL,
+ [DiesExpLife] DECIMAL (18, 6) NOT NULL,
+ [DiesEOLife] DECIMAL (18, 6) NOT NULL,
+ [DiesTecLife] DECIMAL (18, 6) NOT NULL,
+ [DiesCommLife] DECIMAL (18, 6) NOT NULL,
+ [MonthSalesPrev] INT NOT NULL,
+ [SalesPrevCost] DECIMAL (18, 6) NOT NULL,
+ [DiesFinCost] DECIMAL (18, 6) NOT NULL,
+ [ClientQuoteReven] DECIMAL (18, 6) NOT NULL,
+ [ExtraDiscountDies] DECIMAL (18, 6) NOT NULL,
+ [DiesByClass] BIT NOT NULL,
+ [NumDiesInList] DECIMAL (18, 6) NOT NULL,
+ [NumDiesExaust] DECIMAL (18, 6) NOT NULL,
+ [CodPlant] NVARCHAR (100) NULL,
+ [KeyAMIL] NVARCHAR (100) NULL,
+ [KgTeo] DECIMAL (18, 6) NOT NULL,
+ [NumSMED] INT NOT NULL,
+ [QuotaMan] DECIMAL (18, 6) NOT NULL,
+ [PRMWeight] DECIMAL (18, 6) NOT NULL,
+ [PWeight] DECIMAL (18, 6) NOT NULL,
+ [PTare] DECIMAL (18, 6) NOT NULL,
+ [LivPackage] NVARCHAR (100) NULL,
+ [LivPackageDett] NVARCHAR (100) NULL,
+ [RawMatCost] DECIMAL (18, 6) NOT NULL,
+ [RawMatExtraCost] DECIMAL (18, 6) NOT NULL,
+ [RawMatFullCost] DECIMAL (18, 6) NOT NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [PkgDesc] NVARCHAR (100) NULL,
+ [FSR] DECIMAL (18, 6) NOT NULL,
+ [ProvvCost] DECIMAL (18, 6) NOT NULL,
+ [EECost] DECIMAL (18, 6) NOT NULL,
+ [GasCost] DECIMAL (18, 6) NOT NULL,
+ [DiesCost] DECIMAL (18, 6) NOT NULL,
+ [PackCost] DECIMAL (18, 6) NOT NULL,
+ [TranspCost] DECIMAL (18, 6) NOT NULL,
+ [SellCost01] DECIMAL (18, 6) NOT NULL,
+ [RefCost01] DECIMAL (18, 6) NOT NULL,
+ [SellCost04] DECIMAL (18, 6) NOT NULL,
+ [RefCost04] DECIMAL (18, 6) NOT NULL,
+ [WSR01_sim] DECIMAL (9, 8) NOT NULL,
+ [WSR01] DECIMAL (9, 8) NOT NULL,
+ [MSR01_sim] DECIMAL (9, 8) NOT NULL,
+ [MSR01] DECIMAL (9, 8) NOT NULL,
+ [NetProd01_sim] DECIMAL (9, 3) NOT NULL,
+ [NetProd01] DECIMAL (9, 3) NOT NULL,
+ [FC4UG01] DECIMAL (9, 6) NOT NULL,
+ [VC4UG01] DECIMAL (9, 6) NOT NULL,
+ [OH4UG01] DECIMAL (9, 6) NOT NULL,
+ [SC4UG01] DECIMAL (9, 6) NOT NULL,
+ [DSR_sim] DECIMAL (9, 8) NOT NULL,
+ [DSR] DECIMAL (9, 8) NOT NULL,
+ [NetProd04] DECIMAL (9, 3) NOT NULL,
+ [FC4UG04] DECIMAL (9, 6) NOT NULL,
+ [VC4UG04] DECIMAL (9, 6) NOT NULL,
+ [FVC] DECIMAL (18, 6) NOT NULL,
+ [Charge] DECIMAL (9, 6) NOT NULL,
+ [valid] BIT NOT NULL,
+ [errorScore] INT NOT NULL,
+ CONSTRAINT [PK_QuoteFull_S] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[QuoteSimPar]...';
+
+
+GO
+CREATE TABLE [dbo].[QuoteSimPar] (
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [NomePar] NVARCHAR (50) NOT NULL,
+ [ValPar] NVARCHAR (50) NOT NULL,
+ CONSTRAINT [PK_QuoteSimPar_1] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC, [NomePar] ASC) WITH (FILLFACTOR = 90)
+);
+
+
+GO
+PRINT N'Creating [dbo].[ReportPrintTicket]...';
+
+
+GO
+CREATE TABLE [dbo].[ReportPrintTicket] (
+ [Ticket] INT NOT NULL,
+ [Report] NVARCHAR (50) NOT NULL,
+ [Chiave] NVARCHAR (250) NOT NULL,
+ [UserReq] NVARCHAR (50) NOT NULL,
+ [DataReq] DATETIME NOT NULL,
+ [DataPrint] DATETIME NULL,
+ CONSTRAINT [PK_ReportPrintTicket] PRIMARY KEY CLUSTERED ([Ticket] ASC, [Report] ASC, [Chiave] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[TrascClass01]...';
+
+
+GO
+CREATE TABLE [dbo].[TrascClass01] (
+ [Class01] NVARCHAR (50) NOT NULL,
+ [Class01New] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [dbo].[TrascClass02]...';
+
+
+GO
+CREATE TABLE [dbo].[TrascClass02] (
+ [Class02] NVARCHAR (50) NOT NULL,
+ [Class02New] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [dbo].[TrascClass03]...';
+
+
+GO
+CREATE TABLE [dbo].[TrascClass03] (
+ [Class03] NVARCHAR (50) NOT NULL,
+ [Class03New] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [dbo].[TrascClient]...';
+
+
+GO
+CREATE TABLE [dbo].[TrascClient] (
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [ClientName] NVARCHAR (250) NOT NULL,
+ [CodClientNew] NVARCHAR (50) NOT NULL,
+ [ClientNameNew] NVARCHAR (250) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [dbo].[CDC]...';
+
+
+GO
+CREATE TABLE [dbo].[CDC] (
+ [COD_CDC] VARCHAR (10) NOT NULL,
+ [DESCRIZIONE] VARCHAR (200) NULL,
+ [COD_TIPO] VARCHAR (1) NOT NULL,
+ [POSIZIONE] VARCHAR (100) NULL,
+ PRIMARY KEY CLUSTERED ([COD_CDC] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[ContatoriQuote]...';
+
+
+GO
+CREATE TABLE [dbo].[ContatoriQuote] (
+ [Flusso] VARCHAR (2) NOT NULL,
+ [LastIdx] INT NOT NULL,
+ CONSTRAINT [PK_ContatoriQuote] PRIMARY KEY CLUSTERED ([Flusso] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[CostList]...';
+
+
+GO
+CREATE TABLE [dbo].[CostList] (
+ [DateList] SMALLDATETIME NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [RawMatCost] DECIMAL (18, 6) NOT NULL,
+ [RawMatExtraCost] DECIMAL (18, 6) NULL,
+ [batchQty] INT NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [EndCalc] DATETIME NULL,
+ CONSTRAINT [PK_CostList_1] PRIMARY KEY CLUSTERED ([DateList] ASC, [CodItem] ASC, [RawMat] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[CostList].[ix_CostList_QuoteType_CodQuote]...';
+
+
+GO
+CREATE NONCLUSTERED INDEX [ix_CostList_QuoteType_CodQuote]
+ ON [dbo].[CostList]([QuoteType] ASC, [CodQuote] ASC);
+
+
+GO
+PRINT N'Creating [dbo].[DIRITTI]...';
+
+
+GO
+CREATE TABLE [dbo].[DIRITTI] (
+ [USER_NAME] NVARCHAR (50) NOT NULL,
+ [COD_CDC] NVARCHAR (50) NOT NULL,
+ [COD_MODULO] NVARCHAR (31) NOT NULL,
+ [COD_FUNZIONE] NVARCHAR (31) NOT NULL,
+ [VALUE] VARCHAR (255) NULL,
+ CONSTRAINT [PK_DIRITTI] PRIMARY KEY CLUSTERED ([USER_NAME] ASC, [COD_CDC] ASC, [COD_MODULO] ASC, [COD_FUNZIONE] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[FUNZIONE]...';
+
+
+GO
+CREATE TABLE [dbo].[FUNZIONE] (
+ [COD_FUNZIONE] NVARCHAR (31) NOT NULL,
+ [DESCRIZIONE] NVARCHAR (500) NULL,
+ CONSTRAINT [PK_FUNZIONE] PRIMARY KEY CLUSTERED ([COD_FUNZIONE] ASC)
+);
+
+
+GO
+PRINT N'Creating [dbo].[MODULO]...';
+
+
+GO
+CREATE TABLE [dbo].[MODULO] (
+ [COD_MODULO] NVARCHAR (31) NOT NULL,
+ [DESCRIZIONE] VARCHAR (200) NULL,
+ CONSTRAINT [PK_MODULO] PRIMARY KEY CLUSTERED ([COD_MODULO] ASC)
+);
+
+
+GO
+PRINT N'Creating [ext].[DiesRaw]...';
+
+
+GO
+CREATE TABLE [ext].[DiesRaw] (
+ [CodDies] NVARCHAR (50) NOT NULL,
+ [HoleNum] INT NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [CodDiesGroup] NVARCHAR (50) NOT NULL,
+ [Price] DECIMAL (9, 3) NOT NULL,
+ [ExpLife] DECIMAL (9, 2) NOT NULL,
+ [ActLife] DECIMAL (9, 2) NOT NULL,
+ [Active] INT NOT NULL,
+ CONSTRAINT [PK_DiesDet] PRIMARY KEY CLUSTERED ([CodDies] ASC)
+);
+
+
+GO
+PRINT N'Creating [ext].[TranspCostRaw]...';
+
+
+GO
+CREATE TABLE [ext].[TranspCostRaw] (
+ [TranspZone] NVARCHAR (50) NOT NULL,
+ [TranspCost] DECIMAL (9, 6) NOT NULL,
+ CONSTRAINT [PK_TranspCostDet_1] PRIMARY KEY CLUSTERED ([TranspZone] ASC)
+);
+
+
+GO
+PRINT N'Creating [ext].[ClientsRaw]...';
+
+
+GO
+CREATE TABLE [ext].[ClientsRaw] (
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [ClientName] NVARCHAR (250) NOT NULL,
+ [CodAg] NVARCHAR (50) NOT NULL,
+ [ZipCode] NVARCHAR (50) NOT NULL,
+ [City] NVARCHAR (50) NOT NULL,
+ [State] NVARCHAR (50) NOT NULL,
+ [Nation] NVARCHAR (50) NOT NULL,
+ [TranspZone] NVARCHAR (50) NOT NULL,
+ CONSTRAINT [PK_ClientiRaw] PRIMARY KEY CLUSTERED ([CodClient] ASC)
+);
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw]...';
+
+
+GO
+CREATE TABLE [ext].[ProductionLogRaw] (
+ [EventStart] DATETIME NOT NULL,
+ [EventEnd] DATETIME NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [ProcessNum] NVARCHAR (50) NOT NULL,
+ [NrPos] NVARCHAR (50) NOT NULL,
+ [CodDies] NVARCHAR (50) NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [OrderNum] NVARCHAR (50) NOT NULL,
+ [BatchNum] NVARCHAR (50) NOT NULL,
+ [ProcessType] NVARCHAR (50) NOT NULL,
+ [EventType] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [QtyIN] DECIMAL (18, 4) NOT NULL,
+ [QtyOUT] DECIMAL (18, 4) NOT NULL,
+ [QtyEXT] DECIMAL (18, 4) NOT NULL,
+ [NumIN] INT NOT NULL,
+ [NumOUT] INT NOT NULL,
+ [QuotaPlant] DECIMAL (9, 4) NOT NULL,
+ [QuotaMan] DECIMAL (9, 4) NOT NULL,
+ [Tags] NVARCHAR (250) NOT NULL,
+ [okPr] BIT NOT NULL,
+ [okQM] BIT NOT NULL,
+ [okSc] BIT NOT NULL,
+ [okDi] BIT NOT NULL,
+ CONSTRAINT [PK_ProductionLogRaw] PRIMARY KEY CLUSTERED ([EventStart] ASC, [EventEnd] ASC, [CodPlant] ASC, [ProcessNum] ASC, [NrPos] ASC, [CodDies] ASC)
+);
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw_KO]...';
+
+
+GO
+CREATE TABLE [ext].[ProductionLogRaw_KO] (
+ [EventStart] DATETIME NOT NULL,
+ [EventEnd] DATETIME NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [ProcessNum] NVARCHAR (50) NOT NULL,
+ [NrPos] NVARCHAR (50) NOT NULL,
+ [CodDies] NVARCHAR (50) NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [OrderNum] NVARCHAR (50) NOT NULL,
+ [BatchNum] NVARCHAR (50) NOT NULL,
+ [ProcessType] NVARCHAR (50) NOT NULL,
+ [EventType] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [QtyIN] DECIMAL (18, 4) NOT NULL,
+ [QtyOUT] DECIMAL (18, 4) NOT NULL,
+ [QtyEXT] DECIMAL (18, 4) NOT NULL,
+ [NumIN] INT NOT NULL,
+ [NumOUT] INT NOT NULL,
+ [QuotaPlant] DECIMAL (9, 4) NOT NULL,
+ [QuotaMan] DECIMAL (9, 4) NOT NULL,
+ [Tags] NVARCHAR (250) NOT NULL,
+ [okPr] BIT NOT NULL,
+ [okQM] BIT NOT NULL,
+ [okSc] BIT NOT NULL,
+ [okDi] BIT NOT NULL,
+ [ImportDateExt] DATETIME NULL,
+ CONSTRAINT [PK_ProductionLogRaw_KO] PRIMARY KEY CLUSTERED ([EventStart] ASC, [EventEnd] ASC, [CodPlant] ASC, [ProcessNum] ASC, [NrPos] ASC, [CodDies] ASC)
+);
+
+
+GO
+PRINT N'Creating [ext].[ItemsRaw]...';
+
+
+GO
+CREATE TABLE [ext].[ItemsRaw] (
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [ItemDescr] NVARCHAR (250) NOT NULL,
+ [UnitWeight] DECIMAL (9, 3) NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [CodItemGroup] NVARCHAR (50) NOT NULL,
+ [Class01] NVARCHAR (50) NOT NULL,
+ [Class02] NVARCHAR (50) NOT NULL,
+ [Class03] NVARCHAR (50) NOT NULL,
+ [Class04] NVARCHAR (50) NOT NULL,
+ [Class05] NVARCHAR (50) NOT NULL,
+ CONSTRAINT [PK_ArticoliRaw] PRIMARY KEY CLUSTERED ([CodItem] ASC)
+);
+
+
+GO
+PRINT N'Creating [ext].[PackagRaw]...';
+
+
+GO
+CREATE TABLE [ext].[PackagRaw] (
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [PackagDesc] NVARCHAR (250) NOT NULL,
+ [RMCost] DECIMAL (9, 3) NOT NULL,
+ [RMWeight] DECIMAL (9, 4) NOT NULL,
+ [Tare] DECIMAL (9, 4) NOT NULL,
+ [FullWeight] DECIMAL (9, 4) NOT NULL,
+ CONSTRAINT [PK_PackagDet] PRIMARY KEY CLUSTERED ([CodPackag] ASC)
+);
+
+
+GO
+PRINT N'Creating [ext].[DiesGroupRaw]...';
+
+
+GO
+CREATE TABLE [ext].[DiesGroupRaw] (
+ [CodDiesGroup] NVARCHAR (50) NOT NULL,
+ [Price] DECIMAL (9, 3) NOT NULL,
+ [QtyTot] INT NOT NULL,
+ [QtyEOL] INT NOT NULL,
+ [ExpLife] DECIMAL (9, 3) NOT NULL,
+ [EOLLife] DECIMAL (9, 3) NOT NULL,
+ CONSTRAINT [PK_DiesGroupRaw] PRIMARY KEY CLUSTERED ([CodDiesGroup] ASC)
+);
+
+
+GO
+PRINT N'Creating [ext].[OrdersHistRaw]...';
+
+
+GO
+CREATE TABLE [ext].[OrdersHistRaw] (
+ [OrdNum] NVARCHAR (50) NOT NULL,
+ [OrdRow] NVARCHAR (50) NOT NULL,
+ [OrdDate] SMALLDATETIME NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [RawMatCost] DECIMAL (18, 6) NOT NULL,
+ [BatchQty] INT NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [OrdPrice] DECIMAL (9, 6) NOT NULL,
+ [RawMatExtraCost] DECIMAL (18, 6) NOT NULL,
+ [PriceOff] DECIMAL (9, 6) NOT NULL,
+ [OrdQty] INT NOT NULL,
+ [ProvvCost] DECIMAL (9, 6) NOT NULL,
+ CONSTRAINT [PK_OrdersHistRaw] PRIMARY KEY CLUSTERED ([OrdNum] ASC, [OrdRow] ASC)
+);
+
+
+GO
+PRINT N'Creating [tmp].[ProductionLogRaw_old]...';
+
+
+GO
+CREATE TABLE [tmp].[ProductionLogRaw_old] (
+ [EventStart] NVARCHAR (50) NOT NULL,
+ [EventEnd] NVARCHAR (50) NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [ProcessNum] NVARCHAR (50) NOT NULL,
+ [NrPos] NVARCHAR (50) NOT NULL,
+ [CodDies] NVARCHAR (50) NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [OrderNum] NVARCHAR (50) NOT NULL,
+ [BatchNum] NVARCHAR (50) NOT NULL,
+ [ProcessType] NVARCHAR (50) NOT NULL,
+ [EventType] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [QtyIN] NVARCHAR (50) NOT NULL,
+ [QtyOUT] NVARCHAR (50) NOT NULL,
+ [QtyEXT] NVARCHAR (50) NOT NULL,
+ [NumIN] NVARCHAR (50) NOT NULL,
+ [NumOUT] NVARCHAR (50) NOT NULL,
+ [QuotaPlant] NVARCHAR (50) NOT NULL,
+ [QuotaMan] NVARCHAR (50) NOT NULL,
+ [Tags] NVARCHAR (250) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [tmp].[DiesRaw]...';
+
+
+GO
+CREATE TABLE [tmp].[DiesRaw] (
+ [CodDies] NVARCHAR (50) NOT NULL,
+ [HoleNum] NVARCHAR (50) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [CodDiesGroup] NVARCHAR (50) NOT NULL,
+ [Price] NVARCHAR (50) NOT NULL,
+ [ExpLife] NVARCHAR (50) NOT NULL,
+ [ActLife] NVARCHAR (50) NOT NULL,
+ [Active] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [tmp].[ProductionLogRaw_KO]...';
+
+
+GO
+CREATE TABLE [tmp].[ProductionLogRaw_KO] (
+ [EventStart] NVARCHAR (50) NOT NULL,
+ [EventEnd] NVARCHAR (50) NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [ProcessNum] NVARCHAR (50) NOT NULL,
+ [NrPos] NVARCHAR (50) NOT NULL,
+ [CodDies] NVARCHAR (50) NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [OrderNum] NVARCHAR (50) NOT NULL,
+ [BatchNum] NVARCHAR (50) NOT NULL,
+ [ProcessType] NVARCHAR (50) NOT NULL,
+ [EventType] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [QtyIN] NVARCHAR (50) NOT NULL,
+ [QtyOUT] NVARCHAR (50) NOT NULL,
+ [QtyEXT] NVARCHAR (50) NOT NULL,
+ [NumIN] NVARCHAR (50) NOT NULL,
+ [NumOUT] NVARCHAR (50) NOT NULL,
+ [QuotaPlant] NVARCHAR (50) NOT NULL,
+ [QuotaMan] NVARCHAR (50) NOT NULL,
+ [Tags] NVARCHAR (250) NOT NULL,
+ [okPr] BIT NOT NULL,
+ [okQM] BIT NOT NULL,
+ [okSc] BIT NOT NULL,
+ [okDi] BIT NOT NULL,
+ [ImportDate] DATETIME NULL
+);
+
+
+GO
+PRINT N'Creating [tmp].[ClientsRaw]...';
+
+
+GO
+CREATE TABLE [tmp].[ClientsRaw] (
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [ClientName] NVARCHAR (250) NOT NULL,
+ [CodAg] NVARCHAR (50) NOT NULL,
+ [ZipCode] NVARCHAR (50) NOT NULL,
+ [City] NVARCHAR (50) NOT NULL,
+ [State] NVARCHAR (50) NOT NULL,
+ [Nation] NVARCHAR (50) NOT NULL,
+ [TranspZone] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [tmp].[ItemsRaw]...';
+
+
+GO
+CREATE TABLE [tmp].[ItemsRaw] (
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [ItemDescr] NVARCHAR (250) NOT NULL,
+ [UnitWeight] NVARCHAR (50) NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [CodItemGroup] NVARCHAR (50) NOT NULL,
+ [Class01] NVARCHAR (50) NOT NULL,
+ [Class02] NVARCHAR (50) NOT NULL,
+ [Class03] NVARCHAR (50) NOT NULL,
+ [Class04] NVARCHAR (50) NOT NULL,
+ [Class05] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [tmp].[TranspCostRaw]...';
+
+
+GO
+CREATE TABLE [tmp].[TranspCostRaw] (
+ [TranspZone] NVARCHAR (50) NOT NULL,
+ [TranspCost] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [tmp].[DiesGroupRaw]...';
+
+
+GO
+CREATE TABLE [tmp].[DiesGroupRaw] (
+ [CodDiesGroup] NVARCHAR (50) NOT NULL,
+ [Price] NVARCHAR (50) NOT NULL,
+ [QtyTot] NVARCHAR (50) NOT NULL,
+ [QtyEOL] NVARCHAR (50) NOT NULL,
+ [ExpLife] NVARCHAR (50) NOT NULL,
+ [EOLLife] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [tmp].[ExcludeCondFilter]...';
+
+
+GO
+CREATE TABLE [tmp].[ExcludeCondFilter] (
+ [TableName] NVARCHAR (50) NOT NULL,
+ [FieldName] NVARCHAR (50) NOT NULL,
+ [WhereCond] NVARCHAR (MAX) NULL,
+ CONSTRAINT [PK_ExtFieldsFilter] PRIMARY KEY CLUSTERED ([TableName] ASC, [FieldName] ASC)
+);
+
+
+GO
+PRINT N'Creating [tmp].[ProductionLogRaw]...';
+
+
+GO
+CREATE TABLE [tmp].[ProductionLogRaw] (
+ [EventStart] NVARCHAR (50) NOT NULL,
+ [EventEnd] NVARCHAR (50) NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [ProcessNum] NVARCHAR (50) NOT NULL,
+ [NrPos] NVARCHAR (50) NOT NULL,
+ [CodDies] NVARCHAR (50) NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [OrderNum] NVARCHAR (50) NOT NULL,
+ [BatchNum] NVARCHAR (50) NOT NULL,
+ [ProcessType] NVARCHAR (50) NOT NULL,
+ [EventType] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [QtyIN] NVARCHAR (50) NOT NULL,
+ [QtyOUT] NVARCHAR (50) NOT NULL,
+ [QtyEXT] NVARCHAR (50) NOT NULL,
+ [NumIN] NVARCHAR (50) NOT NULL,
+ [NumOUT] NVARCHAR (50) NOT NULL,
+ [QuotaPlant] NVARCHAR (50) NOT NULL,
+ [QuotaMan] NVARCHAR (50) NOT NULL,
+ [Tags] NVARCHAR (250) NOT NULL,
+ [okPr] BIT NOT NULL,
+ [okQM] BIT NOT NULL,
+ [okSc] BIT NOT NULL,
+ [okDi] BIT NOT NULL
+);
+
+
+GO
+PRINT N'Creating [tmp].[PackagRaw]...';
+
+
+GO
+CREATE TABLE [tmp].[PackagRaw] (
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [PackagDesc] NVARCHAR (250) NOT NULL,
+ [RMCost] NVARCHAR (50) NOT NULL,
+ [RMWeight] NVARCHAR (50) NOT NULL,
+ [Tare] NVARCHAR (50) NOT NULL,
+ [FullWeight] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+PRINT N'Creating [tmp].[OrdersHistRaw]...';
+
+
+GO
+CREATE TABLE [tmp].[OrdersHistRaw] (
+ [OrdNum] NVARCHAR (50) NOT NULL,
+ [OrdRow] NVARCHAR (50) NOT NULL,
+ [OrdDate] NVARCHAR (50) NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [RawMatCost] NVARCHAR (50) NOT NULL,
+ [BatchQty] NVARCHAR (50) NOT NULL,
+ [CodInco] NVARCHAR (50) NOT NULL,
+ [OrdPrice] NVARCHAR (50) NOT NULL,
+ [RawMatExtraCost] NVARCHAR (50) NOT NULL,
+ [PriceOff] NVARCHAR (50) NOT NULL,
+ [OrdQty] NVARCHAR (50) NOT NULL,
+ [ProvvCost] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+PRINT N'Creating DF_QuoteExtra_QuoteType...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteOC]
+ ADD CONSTRAINT [DF_QuoteExtra_QuoteType] DEFAULT ('Q') FOR [QuoteType];
+
+
+GO
+PRINT N'Creating DF_QuoteExtra_QuoteRev...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteOC]
+ ADD CONSTRAINT [DF_QuoteExtra_QuoteRev] DEFAULT ((0)) FOR [QuoteRev];
+
+
+GO
+PRINT N'Creating DF_QuoteExtra_ResType...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteOC]
+ ADD CONSTRAINT [DF_QuoteExtra_ResType] DEFAULT ((0)) FOR [ProcessNum];
+
+
+GO
+PRINT N'Creating DF_QuoteExtra_Class01...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteOC]
+ ADD CONSTRAINT [DF_QuoteExtra_Class01] DEFAULT ('') FOR [Class01];
+
+
+GO
+PRINT N'Creating DF_QuoteExtra_Class02...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteOC]
+ ADD CONSTRAINT [DF_QuoteExtra_Class02] DEFAULT ('') FOR [Class02];
+
+
+GO
+PRINT N'Creating DF_QuoteExtra_Class03...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteOC]
+ ADD CONSTRAINT [DF_QuoteExtra_Class03] DEFAULT ('') FOR [Class03];
+
+
+GO
+PRINT N'Creating DF_QuoteExtra_Class04...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteOC]
+ ADD CONSTRAINT [DF_QuoteExtra_Class04] DEFAULT ('') FOR [Class04];
+
+
+GO
+PRINT N'Creating DF_QuoteExtra_Class05...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteOC]
+ ADD CONSTRAINT [DF_QuoteExtra_Class05] DEFAULT ('') FOR [Class05];
+
+
+GO
+PRINT N'Creating DF_QuoteExtra_TotQty...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteOC]
+ ADD CONSTRAINT [DF_QuoteExtra_TotQty] DEFAULT ((1)) FOR [TotQty];
+
+
+GO
+PRINT N'Creating DF_QuoteExtra_TotCost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteOC]
+ ADD CONSTRAINT [DF_QuoteExtra_TotCost] DEFAULT ((0)) FOR [TotCost];
+
+
+GO
+PRINT N'Creating DF_QuoteExtra_Quota...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteOC]
+ ADD CONSTRAINT [DF_QuoteExtra_Quota] DEFAULT ((1)) FOR [Quota];
+
+
+GO
+PRINT N'Creating DF_QuoteOC_valid...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteOC]
+ ADD CONSTRAINT [DF_QuoteOC_valid] DEFAULT ((1)) FOR [valid];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkExt_QuoteType...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkExt]
+ ADD CONSTRAINT [DF_QuoteWorkExt_QuoteType] DEFAULT ('Q') FOR [QuoteType];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkExt_QuoteRev...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkExt]
+ ADD CONSTRAINT [DF_QuoteWorkExt_QuoteRev] DEFAULT ((0)) FOR [QuoteRev];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkExt_FC4UG...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkExt]
+ ADD CONSTRAINT [DF_QuoteWorkExt_FC4UG] DEFAULT ((0)) FOR [EWC4UG];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkExt_EWC4UG1...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkExt]
+ ADD CONSTRAINT [DF_QuoteWorkExt_EWC4UG1] DEFAULT ((0)) FOR [UM];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkExt_valid...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkExt]
+ ADD CONSTRAINT [DF_QuoteWorkExt_valid] DEFAULT ((1)) FOR [valid];
+
+
+GO
+PRINT N'Creating DF_Package2Item_TotQty...';
+
+
+GO
+ALTER TABLE [dbo].[Package2Item]
+ ADD CONSTRAINT [DF_Package2Item_TotQty] DEFAULT ((0)) FOR [TotQta];
+
+
+GO
+PRINT N'Creating DF_Package2Item_Weight...';
+
+
+GO
+ALTER TABLE [dbo].[Package2Item]
+ ADD CONSTRAINT [DF_Package2Item_Weight] DEFAULT ((0)) FOR [Weight];
+
+
+GO
+PRINT N'Creating DF_Package2Item_Tare...';
+
+
+GO
+ALTER TABLE [dbo].[Package2Item]
+ ADD CONSTRAINT [DF_Package2Item_Tare] DEFAULT ((0)) FOR [Tare];
+
+
+GO
+PRINT N'Creating DF_Package2Item_NumImb...';
+
+
+GO
+ALTER TABLE [dbo].[Package2Item]
+ ADD CONSTRAINT [DF_Package2Item_NumImb] DEFAULT ((0)) FOR [NumImb];
+
+
+GO
+PRINT N'Creating DF_Package2Item_Durata...';
+
+
+GO
+ALTER TABLE [dbo].[Package2Item]
+ ADD CONSTRAINT [DF_Package2Item_Durata] DEFAULT ((0)) FOR [Durata];
+
+
+GO
+PRINT N'Creating DF_Package2ItemClient_TotQty...';
+
+
+GO
+ALTER TABLE [dbo].[Package2ItemClient]
+ ADD CONSTRAINT [DF_Package2ItemClient_TotQty] DEFAULT ((0)) FOR [TotQta];
+
+
+GO
+PRINT N'Creating DF_Package2ItemClient_Weight...';
+
+
+GO
+ALTER TABLE [dbo].[Package2ItemClient]
+ ADD CONSTRAINT [DF_Package2ItemClient_Weight] DEFAULT ((0)) FOR [Weight];
+
+
+GO
+PRINT N'Creating DF_Package2ItemClient_Tare...';
+
+
+GO
+ALTER TABLE [dbo].[Package2ItemClient]
+ ADD CONSTRAINT [DF_Package2ItemClient_Tare] DEFAULT ((0)) FOR [Tare];
+
+
+GO
+PRINT N'Creating DF_Package2ItemClient_NumImb...';
+
+
+GO
+ALTER TABLE [dbo].[Package2ItemClient]
+ ADD CONSTRAINT [DF_Package2ItemClient_NumImb] DEFAULT ((0)) FOR [NumImb];
+
+
+GO
+PRINT N'Creating DF_Package2ItemClient_Durata...';
+
+
+GO
+ALTER TABLE [dbo].[Package2ItemClient]
+ ADD CONSTRAINT [DF_Package2ItemClient_Durata] DEFAULT ((0)) FOR [Durata];
+
+
+GO
+PRINT N'Creating DF_TabImbArt_NumImb...';
+
+
+GO
+ALTER TABLE [dbo].[TabImbArt]
+ ADD CONSTRAINT [DF_TabImbArt_NumImb] DEFAULT ((0)) FOR [NumImb];
+
+
+GO
+PRINT N'Creating DF_TabImbArt_TotOut...';
+
+
+GO
+ALTER TABLE [dbo].[TabImbArt]
+ ADD CONSTRAINT [DF_TabImbArt_TotOut] DEFAULT ((0)) FOR [TotOut];
+
+
+GO
+PRINT N'Creating DF_TabImbArt_Durata...';
+
+
+GO
+ALTER TABLE [dbo].[TabImbArt]
+ ADD CONSTRAINT [DF_TabImbArt_Durata] DEFAULT ((0)) FOR [Durata];
+
+
+GO
+PRINT N'Creating DF_PlantsDet_OH...';
+
+
+GO
+ALTER TABLE [dbo].[PlantsDet]
+ ADD CONSTRAINT [DF_PlantsDet_OH] DEFAULT ((1)) FOR [Charge];
+
+
+GO
+PRINT N'Creating DF_RevHistory_RevType...';
+
+
+GO
+ALTER TABLE [dbo].[RevHistory]
+ ADD CONSTRAINT [DF_RevHistory_RevType] DEFAULT (N'P') FOR [RevType];
+
+
+GO
+PRINT N'Creating DF_RevHistory_RevNum...';
+
+
+GO
+ALTER TABLE [dbo].[RevHistory]
+ ADD CONSTRAINT [DF_RevHistory_RevNum] DEFAULT ((0)) FOR [RevNum];
+
+
+GO
+PRINT N'Creating DF_RevHistory_Description...';
+
+
+GO
+ALTER TABLE [dbo].[RevHistory]
+ ADD CONSTRAINT [DF_RevHistory_Description] DEFAULT ('') FOR [Description];
+
+
+GO
+PRINT N'Creating DF_DiesGroupDet_ExpLife...';
+
+
+GO
+ALTER TABLE [dbo].[DiesGroupDet]
+ ADD CONSTRAINT [DF_DiesGroupDet_ExpLife] DEFAULT ((1)) FOR [ExpLife];
+
+
+GO
+PRINT N'Creating DF_DiesGroupDet_EOLLife...';
+
+
+GO
+ALTER TABLE [dbo].[DiesGroupDet]
+ ADD CONSTRAINT [DF_DiesGroupDet_EOLLife] DEFAULT ((1)) FOR [EOLLife];
+
+
+GO
+PRINT N'Creating DF_Cost2Plant_VC...';
+
+
+GO
+ALTER TABLE [dbo].[Cost2Plant]
+ ADD CONSTRAINT [DF_Cost2Plant_VC] DEFAULT ((0)) FOR [VC];
+
+
+GO
+PRINT N'Creating DF_Cost2Plant_OH...';
+
+
+GO
+ALTER TABLE [dbo].[Cost2Plant]
+ ADD CONSTRAINT [DF_Cost2Plant_OH] DEFAULT ((0)) FOR [OH];
+
+
+GO
+PRINT N'Creating DF_Cost2Plant_OH1...';
+
+
+GO
+ALTER TABLE [dbo].[Cost2Plant]
+ ADD CONSTRAINT [DF_Cost2Plant_OH1] DEFAULT ((0)) FOR [SC];
+
+
+GO
+PRINT N'Creating DF_Cost2Plant_QuotaPlantStd...';
+
+
+GO
+ALTER TABLE [dbo].[Cost2Plant]
+ ADD CONSTRAINT [DF_Cost2Plant_QuotaPlantStd] DEFAULT ((0)) FOR [QuotaPlantStd];
+
+
+GO
+PRINT N'Creating DF_Cost2Plant_QuotaManStd...';
+
+
+GO
+ALTER TABLE [dbo].[Cost2Plant]
+ ADD CONSTRAINT [DF_Cost2Plant_QuotaManStd] DEFAULT ((0)) FOR [QuotaManStd];
+
+
+GO
+PRINT N'Creating DF_ClientDet_Class01...';
+
+
+GO
+ALTER TABLE [dbo].[ClientDet]
+ ADD CONSTRAINT [DF_ClientDet_Class01] DEFAULT ('') FOR [TranspZone];
+
+
+GO
+PRINT N'Creating DF_AgentsDet_QuotaPerc...';
+
+
+GO
+ALTER TABLE [dbo].[AgentsDet]
+ ADD CONSTRAINT [DF_AgentsDet_QuotaPerc] DEFAULT ((0)) FOR [QuotaProvvAg];
+
+
+GO
+PRINT N'Creating DF_Utilities_unitCost...';
+
+
+GO
+ALTER TABLE [dbo].[Utilities]
+ ADD CONSTRAINT [DF_Utilities_unitCost] DEFAULT ((0)) FOR [UnitCost];
+
+
+GO
+PRINT N'Creating DF_Incoterms_HasTC...';
+
+
+GO
+ALTER TABLE [dbo].[Incoterms]
+ ADD CONSTRAINT [DF_Incoterms_HasTC] DEFAULT ((0)) FOR [HasTC];
+
+
+GO
+PRINT N'Creating DF_Table_1_ClassCli01...';
+
+
+GO
+ALTER TABLE [dbo].[TranspCostDet]
+ ADD CONSTRAINT [DF_Table_1_ClassCli01] DEFAULT ('') FOR [TranspZone];
+
+
+GO
+PRINT N'Creating DF_QuoteRM_QuoteType...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteRM]
+ ADD CONSTRAINT [DF_QuoteRM_QuoteType] DEFAULT ('Q') FOR [QuoteType];
+
+
+GO
+PRINT N'Creating DF_QuoteRM_QuoteRev...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteRM]
+ ADD CONSTRAINT [DF_QuoteRM_QuoteRev] DEFAULT ((0)) FOR [QuoteRev];
+
+
+GO
+PRINT N'Creating DF_QuoteRM_RawMatCost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteRM]
+ ADD CONSTRAINT [DF_QuoteRM_RawMatCost] DEFAULT ((0)) FOR [RawMatCost];
+
+
+GO
+PRINT N'Creating DF_QuoteRM_RawMatExtraCost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteRM]
+ ADD CONSTRAINT [DF_QuoteRM_RawMatExtraCost] DEFAULT ((0)) FOR [RawMatExtraCost];
+
+
+GO
+PRINT N'Creating DF_QuoteRM_CodPackag...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteRM]
+ ADD CONSTRAINT [DF_QuoteRM_CodPackag] DEFAULT ((0)) FOR [CodPackag];
+
+
+GO
+PRINT N'Creating DF_QuoteRM_ConvRatio...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteRM]
+ ADD CONSTRAINT [DF_QuoteRM_ConvRatio] DEFAULT ((1)) FOR [FCR];
+
+
+GO
+PRINT N'Creating DF_QuoteRM_valid...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteRM]
+ ADD CONSTRAINT [DF_QuoteRM_valid] DEFAULT ((1)) FOR [valid];
+
+
+GO
+PRINT N'Creating DF_ItemDet_Class01...';
+
+
+GO
+ALTER TABLE [dbo].[ItemDet]
+ ADD CONSTRAINT [DF_ItemDet_Class01] DEFAULT ('') FOR [Class01];
+
+
+GO
+PRINT N'Creating DF_ItemDet_Class02...';
+
+
+GO
+ALTER TABLE [dbo].[ItemDet]
+ ADD CONSTRAINT [DF_ItemDet_Class02] DEFAULT ('') FOR [Class02];
+
+
+GO
+PRINT N'Creating DF_ItemDet_Class03...';
+
+
+GO
+ALTER TABLE [dbo].[ItemDet]
+ ADD CONSTRAINT [DF_ItemDet_Class03] DEFAULT ('') FOR [Class03];
+
+
+GO
+PRINT N'Creating DF_ItemDet_Class04...';
+
+
+GO
+ALTER TABLE [dbo].[ItemDet]
+ ADD CONSTRAINT [DF_ItemDet_Class04] DEFAULT ('') FOR [Class04];
+
+
+GO
+PRINT N'Creating DF_ItemDet_Class05...';
+
+
+GO
+ALTER TABLE [dbo].[ItemDet]
+ ADD CONSTRAINT [DF_ItemDet_Class05] DEFAULT ('') FOR [Class05];
+
+
+GO
+PRINT N'Creating DF_Package2_TotQty...';
+
+
+GO
+ALTER TABLE [dbo].[Package2]
+ ADD CONSTRAINT [DF_Package2_TotQty] DEFAULT ((0)) FOR [TotQta];
+
+
+GO
+PRINT N'Creating DF_Package2_Weight...';
+
+
+GO
+ALTER TABLE [dbo].[Package2]
+ ADD CONSTRAINT [DF_Package2_Weight] DEFAULT ((0)) FOR [Weight];
+
+
+GO
+PRINT N'Creating DF_Package2_Tare...';
+
+
+GO
+ALTER TABLE [dbo].[Package2]
+ ADD CONSTRAINT [DF_Package2_Tare] DEFAULT ((0)) FOR [Tare];
+
+
+GO
+PRINT N'Creating DF_Package2_NumImb...';
+
+
+GO
+ALTER TABLE [dbo].[Package2]
+ ADD CONSTRAINT [DF_Package2_NumImb] DEFAULT ((0)) FOR [NumImb];
+
+
+GO
+PRINT N'Creating DF_Package2_Durata...';
+
+
+GO
+ALTER TABLE [dbo].[Package2]
+ ADD CONSTRAINT [DF_Package2_Durata] DEFAULT ((0)) FOR [Durata];
+
+
+GO
+PRINT N'Creating DF_TabImbGrp_NumImb...';
+
+
+GO
+ALTER TABLE [dbo].[TabImbGrp]
+ ADD CONSTRAINT [DF_TabImbGrp_NumImb] DEFAULT ((0)) FOR [NumImb];
+
+
+GO
+PRINT N'Creating DF_TabImbGrp_TotOut...';
+
+
+GO
+ALTER TABLE [dbo].[TabImbGrp]
+ ADD CONSTRAINT [DF_TabImbGrp_TotOut] DEFAULT ((0)) FOR [TotOut];
+
+
+GO
+PRINT N'Creating DF_TabImbGrp_Durata...';
+
+
+GO
+ALTER TABLE [dbo].[TabImbGrp]
+ ADD CONSTRAINT [DF_TabImbGrp_Durata] DEFAULT ((0)) FOR [Durata];
+
+
+GO
+PRINT N'Creating DF_DiesDet_Price...';
+
+
+GO
+ALTER TABLE [dbo].[DiesDet]
+ ADD CONSTRAINT [DF_DiesDet_Price] DEFAULT ((0)) FOR [Price];
+
+
+GO
+PRINT N'Creating DF_DiesDet_Price1...';
+
+
+GO
+ALTER TABLE [dbo].[DiesDet]
+ ADD CONSTRAINT [DF_DiesDet_Price1] DEFAULT ((0)) FOR [TestCost];
+
+
+GO
+PRINT N'Creating DF_ProductionLog_NrPos...';
+
+
+GO
+ALTER TABLE [dbo].[ProductionLog]
+ ADD CONSTRAINT [DF_ProductionLog_NrPos] DEFAULT ('') FOR [NrPos];
+
+
+GO
+PRINT N'Creating DF_ProductionLog_okPr...';
+
+
+GO
+ALTER TABLE [dbo].[ProductionLog]
+ ADD CONSTRAINT [DF_ProductionLog_okPr] DEFAULT ((1)) FOR [okPr];
+
+
+GO
+PRINT N'Creating DF_ProductionLog_okQM...';
+
+
+GO
+ALTER TABLE [dbo].[ProductionLog]
+ ADD CONSTRAINT [DF_ProductionLog_okQM] DEFAULT ((1)) FOR [okQM];
+
+
+GO
+PRINT N'Creating DF_ProductionLog_okSc...';
+
+
+GO
+ALTER TABLE [dbo].[ProductionLog]
+ ADD CONSTRAINT [DF_ProductionLog_okSc] DEFAULT ((1)) FOR [okSc];
+
+
+GO
+PRINT N'Creating DF_ProductionLog_okDi...';
+
+
+GO
+ALTER TABLE [dbo].[ProductionLog]
+ ADD CONSTRAINT [DF_ProductionLog_okDi] DEFAULT ((1)) FOR [okDi];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_Q_QuoteType...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_Q]
+ ADD CONSTRAINT [DF_QuoteFull_Q_QuoteType] DEFAULT ('Q') FOR [QuoteType];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_Q_IdxQState...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_Q]
+ ADD CONSTRAINT [DF_QuoteFull_Q_IdxQState] DEFAULT ((0)) FOR [IdxQState];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_Q_TranspZone...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_Q]
+ ADD CONSTRAINT [DF_QuoteFull_Q_TranspZone] DEFAULT ('') FOR [TranspZone];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_Q_PriceOff...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_Q]
+ ADD CONSTRAINT [DF_QuoteFull_Q_PriceOff] DEFAULT ((0)) FOR [PriceOff];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_Q_DiamDies...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_Q]
+ ADD CONSTRAINT [DF_QuoteFull_Q_DiamDies] DEFAULT ((0)) FOR [DiamDies];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_Q_DiesPrice...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_Q]
+ ADD CONSTRAINT [DF_QuoteFull_Q_DiesPrice] DEFAULT ((0)) FOR [DiesPrice];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_Q_DiesExpLife...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_Q]
+ ADD CONSTRAINT [DF_QuoteFull_Q_DiesExpLife] DEFAULT ((0)) FOR [DiesExpLife];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_Q_DiesByClass...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_Q]
+ ADD CONSTRAINT [DF_QuoteFull_Q_DiesByClass] DEFAULT ((0)) FOR [DiesByClass];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_Q_valid...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_Q]
+ ADD CONSTRAINT [DF_QuoteFull_Q_valid] DEFAULT ((1)) FOR [valid];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_Q_errorScore...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_Q]
+ ADD CONSTRAINT [DF_QuoteFull_Q_errorScore] DEFAULT ((0)) FOR [errorScore];
+
+
+GO
+PRINT N'Creating DF_QuoteList_QuoteType...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_QuoteType] DEFAULT ('Q') FOR [QuoteType];
+
+
+GO
+PRINT N'Creating DF_QuoteList_QuoteRev...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_QuoteRev] DEFAULT ((0)) FOR [QuoteRev];
+
+
+GO
+PRINT N'Creating DF_QuoteList_State...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_State] DEFAULT ((0)) FOR [IdxQState];
+
+
+GO
+PRINT N'Creating DF_QuoteList_CodItem...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_CodItem] DEFAULT ('') FOR [CodItem];
+
+
+GO
+PRINT N'Creating DF_QuoteList_CodItemGroup...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_CodItemGroup] DEFAULT ('') FOR [CodItemGroup];
+
+
+GO
+PRINT N'Creating DF_QuoteList_UnitWeight...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_UnitWeight] DEFAULT ((0)) FOR [UnitWeight];
+
+
+GO
+PRINT N'Creating DF_QuoteList_BathQty...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_BathQty] DEFAULT ((0)) FOR [BatchQty];
+
+
+GO
+PRINT N'Creating DF_QuoteList_Note...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_Note] DEFAULT ('') FOR [Note];
+
+
+GO
+PRINT N'Creating DF_QuoteList_OrdPrice1...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_OrdPrice1] DEFAULT ((0)) FOR [PriceOff];
+
+
+GO
+PRINT N'Creating DF_QuoteList_OrdNum...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_OrdNum] DEFAULT ((0)) FOR [OrdNum];
+
+
+GO
+PRINT N'Creating DF_QuoteList_OrdRow...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_OrdRow] DEFAULT ((0)) FOR [OrdRow];
+
+
+GO
+PRINT N'Creating DF_QuoteList_PriceOff1...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_PriceOff1] DEFAULT ((0)) FOR [OrdPrice];
+
+
+GO
+PRINT N'Creating DF_QuoteList_OrderQty...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_OrderQty] DEFAULT ((0)) FOR [OrdQty];
+
+
+GO
+PRINT N'Creating DF_QuoteList_valid...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_valid] DEFAULT ((1)) FOR [valid];
+
+
+GO
+PRINT N'Creating DF_QuoteList_errorScore...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_errorScore] DEFAULT ((0)) FOR [errorScore];
+
+
+GO
+PRINT N'Creating DF_QuoteList_UserCreaz...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_UserCreaz] DEFAULT ('') FOR [UserCreaz];
+
+
+GO
+PRINT N'Creating DF_QuoteList_DataCreaz...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_DataCreaz] DEFAULT (getdate()) FOR [DataCreaz];
+
+
+GO
+PRINT N'Creating DF_QuoteList_UserMod...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_UserMod] DEFAULT ('') FOR [UserMod];
+
+
+GO
+PRINT N'Creating DF_QuoteList_DataMod...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteList]
+ ADD CONSTRAINT [DF_QuoteList_DataMod] DEFAULT (getdate()) FOR [DataMod];
+
+
+GO
+PRINT N'Creating DF_QuoteParam_QuoteType...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteParam]
+ ADD CONSTRAINT [DF_QuoteParam_QuoteType] DEFAULT ('Q') FOR [QuoteType];
+
+
+GO
+PRINT N'Creating DF_QuoteParam_QuoteRev...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteParam]
+ ADD CONSTRAINT [DF_QuoteParam_QuoteRev] DEFAULT ((0)) FOR [QuoteRev];
+
+
+GO
+PRINT N'Creating DF_QuoteParam_ProcessNum...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteParam]
+ ADD CONSTRAINT [DF_QuoteParam_ProcessNum] DEFAULT ((0)) FOR [ProcessNum];
+
+
+GO
+PRINT N'Creating DF_QuoteParam_Parameter...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteParam]
+ ADD CONSTRAINT [DF_QuoteParam_Parameter] DEFAULT ('') FOR [Parameter];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_QuoteType...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_QuoteType] DEFAULT ('Q') FOR [QuoteType];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_QuoteRev...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_QuoteRev] DEFAULT ((0)) FOR [QuoteRev];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_WorkType...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_WorkType] DEFAULT ((0)) FOR [ProcessNum];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_Prod_LUK...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_Prod_LUK] DEFAULT ('') FOR [Class01];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_Class011...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_Class011] DEFAULT ('') FOR [Class02];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_Class021...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_Class021] DEFAULT ('') FOR [Class03];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_Class031...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_Class031] DEFAULT ('') FOR [Class04];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_Class032...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_Class032] DEFAULT ('') FOR [Class05];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_NetProd...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_NetProd] DEFAULT ((0)) FOR [NetProd];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_TSR...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_TSR] DEFAULT ((0)) FOR [WSR];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_CSR...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_CSR] DEFAULT ((0)) FOR [MSR];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_CSR1...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_CSR1] DEFAULT ((0)) FOR [DSR];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_RUFG...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_RUFG] DEFAULT ((0)) FOR [FC4UG];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_RCFG...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_RCFG] DEFAULT ((0)) FOR [VC4UG];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_VC4UG1...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_VC4UG1] DEFAULT ((0)) FOR [OH4UG];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_VC4UG1_1...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_VC4UG1_1] DEFAULT ((0)) FOR [SC4UG];
+
+
+GO
+PRINT N'Creating DF_QuoteWorkInt_valid...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [DF_QuoteWorkInt_valid] DEFAULT ((1)) FOR [valid];
+
+
+GO
+PRINT N'Creating DF_RawMatDet_ProcCost...';
+
+
+GO
+ALTER TABLE [dbo].[RawMatDet]
+ ADD CONSTRAINT [DF_RawMatDet_ProcCost] DEFAULT ((0)) FOR [ProcCost];
+
+
+GO
+PRINT N'Creating DF_RawMatDet_ProcYield...';
+
+
+GO
+ALTER TABLE [dbo].[RawMatDet]
+ ADD CONSTRAINT [DF_RawMatDet_ProcYield] DEFAULT ((0)) FOR [ProcYield];
+
+
+GO
+PRINT N'Creating DF_RawMatDet_CSR...';
+
+
+GO
+ALTER TABLE [dbo].[RawMatDet]
+ ADD CONSTRAINT [DF_RawMatDet_CSR] DEFAULT ((0)) FOR [CSR];
+
+
+GO
+PRINT N'Creating DF_RawMatDet_SSR...';
+
+
+GO
+ALTER TABLE [dbo].[RawMatDet]
+ ADD CONSTRAINT [DF_RawMatDet_SSR] DEFAULT ((0)) FOR [SSR];
+
+
+GO
+PRINT N'Creating DF_RawMatDet_SSVA...';
+
+
+GO
+ALTER TABLE [dbo].[RawMatDet]
+ ADD CONSTRAINT [DF_RawMatDet_SSVA] DEFAULT ((0)) FOR [SSVA];
+
+
+GO
+PRINT N'Creating DF_RawMatDet_SSVR...';
+
+
+GO
+ALTER TABLE [dbo].[RawMatDet]
+ ADD CONSTRAINT [DF_RawMatDet_SSVR] DEFAULT ((0)) FOR [SSVR];
+
+
+GO
+PRINT N'Creating DF_RawMatDet_ExtraMatCost...';
+
+
+GO
+ALTER TABLE [dbo].[RawMatDet]
+ ADD CONSTRAINT [DF_RawMatDet_ExtraMatCost] DEFAULT ((0)) FOR [ExtraMatCost];
+
+
+GO
+PRINT N'Creating DF_RawMatDet_ExtraServCost...';
+
+
+GO
+ALTER TABLE [dbo].[RawMatDet]
+ ADD CONSTRAINT [DF_RawMatDet_ExtraServCost] DEFAULT ((0)) FOR [ExtraServCost];
+
+
+GO
+PRINT N'Creating DF_OrdersHist_OrdNum...';
+
+
+GO
+ALTER TABLE [dbo].[OrdersHist]
+ ADD CONSTRAINT [DF_OrdersHist_OrdNum] DEFAULT ((0)) FOR [OrdNum];
+
+
+GO
+PRINT N'Creating DF_OrdersHist_OrdRow...';
+
+
+GO
+ALTER TABLE [dbo].[OrdersHist]
+ ADD CONSTRAINT [DF_OrdersHist_OrdRow] DEFAULT ((0)) FOR [OrdRow];
+
+
+GO
+PRINT N'Creating DF_OrdersHist_OrdDate...';
+
+
+GO
+ALTER TABLE [dbo].[OrdersHist]
+ ADD CONSTRAINT [DF_OrdersHist_OrdDate] DEFAULT (getdate()) FOR [OrdDate];
+
+
+GO
+PRINT N'Creating DF_OrdersHist_CodItem...';
+
+
+GO
+ALTER TABLE [dbo].[OrdersHist]
+ ADD CONSTRAINT [DF_OrdersHist_CodItem] DEFAULT ('') FOR [CodItem];
+
+
+GO
+PRINT N'Creating DF_OrdersHist_RawMatCost...';
+
+
+GO
+ALTER TABLE [dbo].[OrdersHist]
+ ADD CONSTRAINT [DF_OrdersHist_RawMatCost] DEFAULT ((0)) FOR [RawMatCost];
+
+
+GO
+PRINT N'Creating DF_OrdersHist_BatchQty...';
+
+
+GO
+ALTER TABLE [dbo].[OrdersHist]
+ ADD CONSTRAINT [DF_OrdersHist_BatchQty] DEFAULT ((0)) FOR [BatchQty];
+
+
+GO
+PRINT N'Creating DF_OrdersHist_OrdPrice...';
+
+
+GO
+ALTER TABLE [dbo].[OrdersHist]
+ ADD CONSTRAINT [DF_OrdersHist_OrdPrice] DEFAULT ((0)) FOR [OrdPrice];
+
+
+GO
+PRINT N'Creating DF_OrdersHist_QuoteType...';
+
+
+GO
+ALTER TABLE [dbo].[OrdersHist]
+ ADD CONSTRAINT [DF_OrdersHist_QuoteType] DEFAULT ('R') FOR [QuoteType];
+
+
+GO
+PRINT N'Creating DF_OrdersHist_CodQuote...';
+
+
+GO
+ALTER TABLE [dbo].[OrdersHist]
+ ADD CONSTRAINT [DF_OrdersHist_CodQuote] DEFAULT ((0)) FOR [CodQuote];
+
+
+GO
+PRINT N'Creating DF_OrdersHist_QuoteRev...';
+
+
+GO
+ALTER TABLE [dbo].[OrdersHist]
+ ADD CONSTRAINT [DF_OrdersHist_QuoteRev] DEFAULT ((0)) FOR [QuoteRev];
+
+
+GO
+PRINT N'Creating DF_OrdersHist_ProvvCost...';
+
+
+GO
+ALTER TABLE [dbo].[OrdersHist]
+ ADD CONSTRAINT [DF_OrdersHist_ProvvCost] DEFAULT ((0)) FOR [ProvvCost];
+
+
+GO
+PRINT N'Creating DF_PickList_lemma...';
+
+
+GO
+ALTER TABLE [dbo].[PickList]
+ ADD CONSTRAINT [DF_PickList_lemma] DEFAULT ('') FOR [Lemma];
+
+
+GO
+PRINT N'Creating DF_PickList_NumOrd...';
+
+
+GO
+ALTER TABLE [dbo].[PickList]
+ ADD CONSTRAINT [DF_PickList_NumOrd] DEFAULT ((0)) FOR [NumOrd];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_R_QuoteType...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_R]
+ ADD CONSTRAINT [DF_QuoteFull_R_QuoteType] DEFAULT ('Q') FOR [QuoteType];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_R_IdxQState...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_R]
+ ADD CONSTRAINT [DF_QuoteFull_R_IdxQState] DEFAULT ((0)) FOR [IdxQState];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_R_TranspZone...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_R]
+ ADD CONSTRAINT [DF_QuoteFull_R_TranspZone] DEFAULT ('') FOR [TranspZone];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_R_PriceOff...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_R]
+ ADD CONSTRAINT [DF_QuoteFull_R_PriceOff] DEFAULT ((0)) FOR [PriceOff];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_R_DiamDies...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_R]
+ ADD CONSTRAINT [DF_QuoteFull_R_DiamDies] DEFAULT ((0)) FOR [DiamDies];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_R_DiesPrice...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_R]
+ ADD CONSTRAINT [DF_QuoteFull_R_DiesPrice] DEFAULT ((0)) FOR [DiesPrice];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_R_DiesExpLife...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_R]
+ ADD CONSTRAINT [DF_QuoteFull_R_DiesExpLife] DEFAULT ((0)) FOR [DiesExpLife];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_R_DiesByClass...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_R]
+ ADD CONSTRAINT [DF_QuoteFull_R_DiesByClass] DEFAULT ((0)) FOR [DiesByClass];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_R_valid...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_R]
+ ADD CONSTRAINT [DF_QuoteFull_R_valid] DEFAULT ((1)) FOR [valid];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_R_errorScore...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_R]
+ ADD CONSTRAINT [DF_QuoteFull_R_errorScore] DEFAULT ((0)) FOR [errorScore];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_QuoteType...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_QuoteType] DEFAULT ('S') FOR [QuoteType];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_CodQuote...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_CodQuote] DEFAULT ((0)) FOR [CodQuote];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_QuoteRev...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_QuoteRev] DEFAULT ((0)) FOR [QuoteRev];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_IdxQState...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_IdxQState] DEFAULT ((0)) FOR [IdxQState];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_UnitWeight...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_UnitWeight] DEFAULT ((0)) FOR [UnitWeight];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_BatchQty...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_BatchQty] DEFAULT ((1)) FOR [BatchQty];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_PriceOff...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_PriceOff] DEFAULT ((0)) FOR [PriceOff];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DiamDies...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DiamDies] DEFAULT ((0)) FOR [DiamDies];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_HoleNumDies...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_HoleNumDies] DEFAULT ((1)) FOR [HoleNumDies];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DiesPrice_avg...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DiesPrice_avg] DEFAULT ((0)) FOR [DiesPrice_sim];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DiesPrice...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DiesPrice] DEFAULT ((0)) FOR [DiesPrice];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_TestPrice...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_TestPrice] DEFAULT ((0)) FOR [SamplePrice];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DiesFullCost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DiesFullCost] DEFAULT ((0)) FOR [DiesFullCost];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DiesPrice1...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DiesPrice1] DEFAULT ((0)) FOR [DiesPriceClientQuote];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DiesExpLife...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DiesExpLife] DEFAULT ((0)) FOR [DiesExpLife];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DiesEOLife...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DiesEOLife] DEFAULT ((0)) FOR [DiesEOLife];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DiesTecLife...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DiesTecLife] DEFAULT ((1)) FOR [DiesTecLife];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DiesCommLife1...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DiesCommLife1] DEFAULT ((1)) FOR [DiesCommLife];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DiesTecLife1...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DiesTecLife1] DEFAULT ((0)) FOR [MonthSalesPrev];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_SalesPrevCost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_SalesPrevCost] DEFAULT ((0)) FOR [SalesPrevCost];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DiesFinCost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DiesFinCost] DEFAULT ((0)) FOR [DiesFinCost];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_ClientQuoteReven...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_ClientQuoteReven] DEFAULT ((0)) FOR [ClientQuoteReven];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_ExtraDiscountDies...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_ExtraDiscountDies] DEFAULT ((0)) FOR [ExtraDiscountDies];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DiesByClass...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DiesByClass] DEFAULT ((0)) FOR [DiesByClass];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_NumDiesInList...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_NumDiesInList] DEFAULT ((0)) FOR [NumDiesInList];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_NumDiesExaust...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_NumDiesExaust] DEFAULT ((0)) FOR [NumDiesExaust];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_KgTeo...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_KgTeo] DEFAULT ((0)) FOR [KgTeo];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_NumSMED...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_NumSMED] DEFAULT ((0)) FOR [NumSMED];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_QuotaMan...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_QuotaMan] DEFAULT ((0)) FOR [QuotaMan];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_PRMWeight...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_PRMWeight] DEFAULT ((0)) FOR [PRMWeight];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_PWeight...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_PWeight] DEFAULT ((0)) FOR [PWeight];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_PTare...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_PTare] DEFAULT ((0)) FOR [PTare];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_RawMatCost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_RawMatCost] DEFAULT ((0)) FOR [RawMatCost];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_RawMatExtraCost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_RawMatExtraCost] DEFAULT ((0)) FOR [RawMatExtraCost];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_RawMatFullCost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_RawMatFullCost] DEFAULT ((0)) FOR [RawMatFullCost];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_FSR...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_FSR] DEFAULT ((0)) FOR [FSR];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_ProvvCost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_ProvvCost] DEFAULT ((0)) FOR [ProvvCost];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_EECost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_EECost] DEFAULT ((0)) FOR [EECost];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_GasCost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_GasCost] DEFAULT ((0)) FOR [GasCost];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DiesCost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DiesCost] DEFAULT ((0)) FOR [DiesCost];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_PackCost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_PackCost] DEFAULT ((0)) FOR [PackCost];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_TranspCost...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_TranspCost] DEFAULT ((0)) FOR [TranspCost];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_SellCost01...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_SellCost01] DEFAULT ((0)) FOR [SellCost01];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_RefCost01...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_RefCost01] DEFAULT ((0)) FOR [RefCost01];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_SellCost04...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_SellCost04] DEFAULT ((0)) FOR [SellCost04];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_RefCost04...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_RefCost04] DEFAULT ((0)) FOR [RefCost04];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_WSR01_avg...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_WSR01_avg] DEFAULT ((0)) FOR [WSR01_sim];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_WSR01...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_WSR01] DEFAULT ((0)) FOR [WSR01];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_MSR01_avg...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_MSR01_avg] DEFAULT ((0)) FOR [MSR01_sim];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_MSR01...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_MSR01] DEFAULT ((0)) FOR [MSR01];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_NetProd01_avg...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_NetProd01_avg] DEFAULT ((0)) FOR [NetProd01_sim];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_NetProd01...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_NetProd01] DEFAULT ((0)) FOR [NetProd01];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_FC4UG01...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_FC4UG01] DEFAULT ((0)) FOR [FC4UG01];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_VC4UG01...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_VC4UG01] DEFAULT ((0)) FOR [VC4UG01];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_OH4UG01...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_OH4UG01] DEFAULT ((0)) FOR [OH4UG01];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_SC4UG01...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_SC4UG01] DEFAULT ((0)) FOR [SC4UG01];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DSR_avg...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DSR_avg] DEFAULT ((0)) FOR [DSR_sim];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_DSR...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_DSR] DEFAULT ((0)) FOR [DSR];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_NetProd04...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_NetProd04] DEFAULT ((0)) FOR [NetProd04];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_FC4UG04...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_FC4UG04] DEFAULT ((0)) FOR [FC4UG04];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_VC4UG04...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_VC4UG04] DEFAULT ((0)) FOR [VC4UG04];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_FVC...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_FVC] DEFAULT ((0)) FOR [FVC];
+
+
+GO
+PRINT N'Creating DF_QuoteFull_S_Charge...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteFull_S]
+ ADD CONSTRAINT [DF_QuoteFull_S_Charge] DEFAULT ((0)) FOR [Charge];
+
+
+GO
+PRINT N'Creating DF_QuoteSimPar_QuoteType...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteSimPar]
+ ADD CONSTRAINT [DF_QuoteSimPar_QuoteType] DEFAULT ('Q') FOR [QuoteType];
+
+
+GO
+PRINT N'Creating DF_QuoteSimPar_QuoteRev...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteSimPar]
+ ADD CONSTRAINT [DF_QuoteSimPar_QuoteRev] DEFAULT ((0)) FOR [QuoteRev];
+
+
+GO
+PRINT N'Creating DF_QuoteSimPar_NomePar...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteSimPar]
+ ADD CONSTRAINT [DF_QuoteSimPar_NomePar] DEFAULT ('') FOR [NomePar];
+
+
+GO
+PRINT N'Creating DF_QuoteSimPar_ValParStr...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteSimPar]
+ ADD CONSTRAINT [DF_QuoteSimPar_ValParStr] DEFAULT ('') FOR [ValPar];
+
+
+GO
+PRINT N'Creating DF_Table1_Tabella...';
+
+
+GO
+ALTER TABLE [dbo].[ReportPrintTicket]
+ ADD CONSTRAINT [DF_Table1_Tabella] DEFAULT ('') FOR [Report];
+
+
+GO
+PRINT N'Creating DF_ReportPrintTicket_Chiave...';
+
+
+GO
+ALTER TABLE [dbo].[ReportPrintTicket]
+ ADD CONSTRAINT [DF_ReportPrintTicket_Chiave] DEFAULT ('') FOR [Chiave];
+
+
+GO
+PRINT N'Creating DF_ReportPrintTicket_UserReq...';
+
+
+GO
+ALTER TABLE [dbo].[ReportPrintTicket]
+ ADD CONSTRAINT [DF_ReportPrintTicket_UserReq] DEFAULT ('') FOR [UserReq];
+
+
+GO
+PRINT N'Creating DF_ReportPrintTicket_DataReq...';
+
+
+GO
+ALTER TABLE [dbo].[ReportPrintTicket]
+ ADD CONSTRAINT [DF_ReportPrintTicket_DataReq] DEFAULT (getdate()) FOR [DataReq];
+
+
+GO
+PRINT N'Creating DF_CostList_DataList...';
+
+
+GO
+ALTER TABLE [dbo].[CostList]
+ ADD CONSTRAINT [DF_CostList_DataList] DEFAULT (CONVERT([date],getdate(),0)) FOR [DateList];
+
+
+GO
+PRINT N'Creating DF_CostList_QuoteType...';
+
+
+GO
+ALTER TABLE [dbo].[CostList]
+ ADD CONSTRAINT [DF_CostList_QuoteType] DEFAULT ('C') FOR [QuoteType];
+
+
+GO
+PRINT N'Creating DF_CostList_CodQuote...';
+
+
+GO
+ALTER TABLE [dbo].[CostList]
+ ADD CONSTRAINT [DF_CostList_CodQuote] DEFAULT ((0)) FOR [CodQuote];
+
+
+GO
+PRINT N'Creating DF_CostList_QuoteRev...';
+
+
+GO
+ALTER TABLE [dbo].[CostList]
+ ADD CONSTRAINT [DF_CostList_QuoteRev] DEFAULT ((0)) FOR [QuoteRev];
+
+
+GO
+PRINT N'Creating DF_TraspZoneExt...';
+
+
+GO
+ALTER TABLE [ext].[TranspCostRaw]
+ ADD CONSTRAINT [DF_TraspZoneExt] DEFAULT ('') FOR [TranspZone];
+
+
+GO
+PRINT N'Creating DF_ClientsRaw_ClassZona...';
+
+
+GO
+ALTER TABLE [ext].[ClientsRaw]
+ ADD CONSTRAINT [DF_ClientsRaw_ClassZona] DEFAULT ('') FOR [TranspZone];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_NrPos_1...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_NrPos_1] DEFAULT ('') FOR [NrPos];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_CodDies...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_CodDies] DEFAULT ('') FOR [CodDies];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_CodClient...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_CodClient] DEFAULT ('') FOR [CodClient];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_OrderNum...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_OrderNum] DEFAULT ('') FOR [OrderNum];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_BatchNum...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_BatchNum] DEFAULT ('') FOR [BatchNum];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_ProcessType...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_ProcessType] DEFAULT ('') FOR [ProcessType];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_EventType...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_EventType] DEFAULT ('') FOR [EventType];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_RawMat...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_RawMat] DEFAULT ('') FOR [RawMat];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_CodPackag...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_CodPackag] DEFAULT ('') FOR [CodPackag];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_QtyIN...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_QtyIN] DEFAULT ((0)) FOR [QtyIN];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_QtyOUT...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_QtyOUT] DEFAULT ((0)) FOR [QtyOUT];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_QtyEXT...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_QtyEXT] DEFAULT ((0)) FOR [QtyEXT];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_NumIN...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_NumIN] DEFAULT ((0)) FOR [NumIN];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_NumOUT...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_NumOUT] DEFAULT ((0)) FOR [NumOUT];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_QuotaPlant...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_QuotaPlant] DEFAULT ((0)) FOR [QuotaPlant];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_QuotaMan...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_QuotaMan] DEFAULT ((0)) FOR [QuotaMan];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_Tags...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_Tags] DEFAULT ('') FOR [Tags];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_okPr_1...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_okPr_1] DEFAULT ((1)) FOR [okPr];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_okQM_1...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_okQM_1] DEFAULT ((1)) FOR [okQM];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_okSc_1...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_okSc_1] DEFAULT ((1)) FOR [okSc];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_okDi_1...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_okDi_1] DEFAULT ((1)) FOR [okDi];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_KO_okPr...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw_KO]
+ ADD CONSTRAINT [DF_ProductionLogRaw_KO_okPr] DEFAULT ((1)) FOR [okPr];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_KO_okQM...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw_KO]
+ ADD CONSTRAINT [DF_ProductionLogRaw_KO_okQM] DEFAULT ((1)) FOR [okQM];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_KO_okSc...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw_KO]
+ ADD CONSTRAINT [DF_ProductionLogRaw_KO_okSc] DEFAULT ((1)) FOR [okSc];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_KO_okDi...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw_KO]
+ ADD CONSTRAINT [DF_ProductionLogRaw_KO_okDi] DEFAULT ((1)) FOR [okDi];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_KO_ImportDateExt...';
+
+
+GO
+ALTER TABLE [ext].[ProductionLogRaw_KO]
+ ADD CONSTRAINT [DF_ProductionLogRaw_KO_ImportDateExt] DEFAULT (getdate()) FOR [ImportDateExt];
+
+
+GO
+PRINT N'Creating DF_ItemsRaw_CodPlant...';
+
+
+GO
+ALTER TABLE [ext].[ItemsRaw]
+ ADD CONSTRAINT [DF_ItemsRaw_CodPlant] DEFAULT ('') FOR [CodPlant];
+
+
+GO
+PRINT N'Creating DF_ItemsRaw_Class01_1...';
+
+
+GO
+ALTER TABLE [ext].[ItemsRaw]
+ ADD CONSTRAINT [DF_ItemsRaw_Class01_1] DEFAULT ('') FOR [Class01];
+
+
+GO
+PRINT N'Creating DF_ItemsRaw_Class02_1...';
+
+
+GO
+ALTER TABLE [ext].[ItemsRaw]
+ ADD CONSTRAINT [DF_ItemsRaw_Class02_1] DEFAULT ('') FOR [Class02];
+
+
+GO
+PRINT N'Creating DF_ItemsRaw_Class03_1...';
+
+
+GO
+ALTER TABLE [ext].[ItemsRaw]
+ ADD CONSTRAINT [DF_ItemsRaw_Class03_1] DEFAULT ('') FOR [Class03];
+
+
+GO
+PRINT N'Creating DF_ItemsRaw_Class04_1...';
+
+
+GO
+ALTER TABLE [ext].[ItemsRaw]
+ ADD CONSTRAINT [DF_ItemsRaw_Class04_1] DEFAULT ('') FOR [Class04];
+
+
+GO
+PRINT N'Creating DF_ItemsRaw_Class05_1...';
+
+
+GO
+ALTER TABLE [ext].[ItemsRaw]
+ ADD CONSTRAINT [DF_ItemsRaw_Class05_1] DEFAULT ('') FOR [Class05];
+
+
+GO
+PRINT N'Creating DF_OrdersHistRaw_OrdNum...';
+
+
+GO
+ALTER TABLE [ext].[OrdersHistRaw]
+ ADD CONSTRAINT [DF_OrdersHistRaw_OrdNum] DEFAULT ((0)) FOR [OrdNum];
+
+
+GO
+PRINT N'Creating DF_OrdersHistRaw_OrdRow...';
+
+
+GO
+ALTER TABLE [ext].[OrdersHistRaw]
+ ADD CONSTRAINT [DF_OrdersHistRaw_OrdRow] DEFAULT ((0)) FOR [OrdRow];
+
+
+GO
+PRINT N'Creating DF_OrdersHistRaw_OrdDate...';
+
+
+GO
+ALTER TABLE [ext].[OrdersHistRaw]
+ ADD CONSTRAINT [DF_OrdersHistRaw_OrdDate] DEFAULT (getdate()) FOR [OrdDate];
+
+
+GO
+PRINT N'Creating DF_OrdersHistRaw_CodItem...';
+
+
+GO
+ALTER TABLE [ext].[OrdersHistRaw]
+ ADD CONSTRAINT [DF_OrdersHistRaw_CodItem] DEFAULT ('') FOR [CodItem];
+
+
+GO
+PRINT N'Creating DF_OrdersHistRaw_RawMatCost...';
+
+
+GO
+ALTER TABLE [ext].[OrdersHistRaw]
+ ADD CONSTRAINT [DF_OrdersHistRaw_RawMatCost] DEFAULT ((0)) FOR [RawMatCost];
+
+
+GO
+PRINT N'Creating DF_OrdersHistRaw_BatchQty...';
+
+
+GO
+ALTER TABLE [ext].[OrdersHistRaw]
+ ADD CONSTRAINT [DF_OrdersHistRaw_BatchQty] DEFAULT ((0)) FOR [BatchQty];
+
+
+GO
+PRINT N'Creating DF_OrdersHistRaw_OrdPrice...';
+
+
+GO
+ALTER TABLE [ext].[OrdersHistRaw]
+ ADD CONSTRAINT [DF_OrdersHistRaw_OrdPrice] DEFAULT ((0)) FOR [OrdPrice];
+
+
+GO
+PRINT N'Creating DF_OrdersHistRaw_RawMatExtraCost...';
+
+
+GO
+ALTER TABLE [ext].[OrdersHistRaw]
+ ADD CONSTRAINT [DF_OrdersHistRaw_RawMatExtraCost] DEFAULT ((0)) FOR [RawMatExtraCost];
+
+
+GO
+PRINT N'Creating DF_OrdersHistRaw_PriceOff...';
+
+
+GO
+ALTER TABLE [ext].[OrdersHistRaw]
+ ADD CONSTRAINT [DF_OrdersHistRaw_PriceOff] DEFAULT ((0)) FOR [PriceOff];
+
+
+GO
+PRINT N'Creating DF_OrdersHistRaw_OrderQty...';
+
+
+GO
+ALTER TABLE [ext].[OrdersHistRaw]
+ ADD CONSTRAINT [DF_OrdersHistRaw_OrderQty] DEFAULT ((0)) FOR [OrdQty];
+
+
+GO
+PRINT N'Creating DF_OrdersHistRaw_ProvvCost...';
+
+
+GO
+ALTER TABLE [ext].[OrdersHistRaw]
+ ADD CONSTRAINT [DF_OrdersHistRaw_ProvvCost] DEFAULT ((0)) FOR [ProvvCost];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_NrPos_KO...';
+
+
+GO
+ALTER TABLE [tmp].[ProductionLogRaw_KO]
+ ADD CONSTRAINT [DF_ProductionLogRaw_NrPos_KO] DEFAULT ('') FOR [NrPos];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_KO_okPr...';
+
+
+GO
+ALTER TABLE [tmp].[ProductionLogRaw_KO]
+ ADD CONSTRAINT [DF_ProductionLogRaw_KO_okPr] DEFAULT ((1)) FOR [okPr];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_KO_okQM...';
+
+
+GO
+ALTER TABLE [tmp].[ProductionLogRaw_KO]
+ ADD CONSTRAINT [DF_ProductionLogRaw_KO_okQM] DEFAULT ((1)) FOR [okQM];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_KO_okSc...';
+
+
+GO
+ALTER TABLE [tmp].[ProductionLogRaw_KO]
+ ADD CONSTRAINT [DF_ProductionLogRaw_KO_okSc] DEFAULT ((1)) FOR [okSc];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_KO_okDi...';
+
+
+GO
+ALTER TABLE [tmp].[ProductionLogRaw_KO]
+ ADD CONSTRAINT [DF_ProductionLogRaw_KO_okDi] DEFAULT ((1)) FOR [okDi];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_KO_ImportDate...';
+
+
+GO
+ALTER TABLE [tmp].[ProductionLogRaw_KO]
+ ADD CONSTRAINT [DF_ProductionLogRaw_KO_ImportDate] DEFAULT (getdate()) FOR [ImportDate];
+
+
+GO
+PRINT N'Creating DF_ClientsRaw_TranspZone...';
+
+
+GO
+ALTER TABLE [tmp].[ClientsRaw]
+ ADD CONSTRAINT [DF_ClientsRaw_TranspZone] DEFAULT ('') FOR [TranspZone];
+
+
+GO
+PRINT N'Creating DF_ItemsRaw_Class01...';
+
+
+GO
+ALTER TABLE [tmp].[ItemsRaw]
+ ADD CONSTRAINT [DF_ItemsRaw_Class01] DEFAULT ('') FOR [Class01];
+
+
+GO
+PRINT N'Creating DF_ItemsRaw_Class02...';
+
+
+GO
+ALTER TABLE [tmp].[ItemsRaw]
+ ADD CONSTRAINT [DF_ItemsRaw_Class02] DEFAULT ('') FOR [Class02];
+
+
+GO
+PRINT N'Creating DF_ItemsRaw_Class03...';
+
+
+GO
+ALTER TABLE [tmp].[ItemsRaw]
+ ADD CONSTRAINT [DF_ItemsRaw_Class03] DEFAULT ('') FOR [Class03];
+
+
+GO
+PRINT N'Creating DF_ItemsRaw_Class04...';
+
+
+GO
+ALTER TABLE [tmp].[ItemsRaw]
+ ADD CONSTRAINT [DF_ItemsRaw_Class04] DEFAULT ('') FOR [Class04];
+
+
+GO
+PRINT N'Creating DF_ItemsRaw_Class05...';
+
+
+GO
+ALTER TABLE [tmp].[ItemsRaw]
+ ADD CONSTRAINT [DF_ItemsRaw_Class05] DEFAULT ('') FOR [Class05];
+
+
+GO
+PRINT N'Creating DF_TraspZoneRaw...';
+
+
+GO
+ALTER TABLE [tmp].[TranspCostRaw]
+ ADD CONSTRAINT [DF_TraspZoneRaw] DEFAULT ('') FOR [TranspZone];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_NrPos...';
+
+
+GO
+ALTER TABLE [tmp].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_NrPos] DEFAULT ('') FOR [NrPos];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_okPr...';
+
+
+GO
+ALTER TABLE [tmp].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_okPr] DEFAULT ((1)) FOR [okPr];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_okQM...';
+
+
+GO
+ALTER TABLE [tmp].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_okQM] DEFAULT ((1)) FOR [okQM];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_okSc...';
+
+
+GO
+ALTER TABLE [tmp].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_okSc] DEFAULT ((1)) FOR [okSc];
+
+
+GO
+PRINT N'Creating DF_ProductionLogRaw_okDi...';
+
+
+GO
+ALTER TABLE [tmp].[ProductionLogRaw]
+ ADD CONSTRAINT [DF_ProductionLogRaw_okDi] DEFAULT ((1)) FOR [okDi];
+
+
+GO
+PRINT N'Creating DF_OrdersHistRaw_ProvCost...';
+
+
+GO
+ALTER TABLE [tmp].[OrdersHistRaw]
+ ADD CONSTRAINT [DF_OrdersHistRaw_ProvCost] DEFAULT ((0)) FOR [ProvvCost];
+
+
+GO
+PRINT N'Creating FK_Vocabolario_Lingue...';
+
+
+GO
+ALTER TABLE [dbo].[Vocabolario]
+ ADD CONSTRAINT [FK_Vocabolario_Lingue] FOREIGN KEY ([Lingua]) REFERENCES [dbo].[Lingue] ([Lingua]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_QuoteExtra_QuoteList...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteOC]
+ ADD CONSTRAINT [FK_QuoteExtra_QuoteList] FOREIGN KEY ([QuoteType], [CodQuote], [QuoteRev]) REFERENCES [dbo].[QuoteList] ([QuoteType], [CodQuote], [QuoteRev]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_QuoteWorkExt_QuoteList...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkExt]
+ ADD CONSTRAINT [FK_QuoteWorkExt_QuoteList] FOREIGN KEY ([QuoteType], [CodQuote], [QuoteRev]) REFERENCES [dbo].[QuoteList] ([QuoteType], [CodQuote], [QuoteRev]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_Package2Item_ItemDet...';
+
+
+GO
+ALTER TABLE [dbo].[Package2Item]
+ ADD CONSTRAINT [FK_Package2Item_ItemDet] FOREIGN KEY ([CodItem]) REFERENCES [dbo].[ItemDet] ([CodItem]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_Package2Item_PackagDet...';
+
+
+GO
+ALTER TABLE [dbo].[Package2Item]
+ ADD CONSTRAINT [FK_Package2Item_PackagDet] FOREIGN KEY ([CodPackag]) REFERENCES [dbo].[PackagDet] ([CodPackag]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_Package2ItemClient_ClientDet...';
+
+
+GO
+ALTER TABLE [dbo].[Package2ItemClient]
+ ADD CONSTRAINT [FK_Package2ItemClient_ClientDet] FOREIGN KEY ([CodClient]) REFERENCES [dbo].[ClientDet] ([CodClient]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_Package2ItemClient_ItemDet...';
+
+
+GO
+ALTER TABLE [dbo].[Package2ItemClient]
+ ADD CONSTRAINT [FK_Package2ItemClient_ItemDet] FOREIGN KEY ([CodItem]) REFERENCES [dbo].[ItemDet] ([CodItem]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_Package2ItemClient_PackagDet...';
+
+
+GO
+ALTER TABLE [dbo].[Package2ItemClient]
+ ADD CONSTRAINT [FK_Package2ItemClient_PackagDet] FOREIGN KEY ([CodPackag]) REFERENCES [dbo].[PackagDet] ([CodPackag]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_Cost2Plant_PlantsDet...';
+
+
+GO
+ALTER TABLE [dbo].[Cost2Plant]
+ ADD CONSTRAINT [FK_Cost2Plant_PlantsDet] FOREIGN KEY ([CodPlant]) REFERENCES [dbo].[PlantsDet] ([CodPlant]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_ClientDet_AgentsDet...';
+
+
+GO
+ALTER TABLE [dbo].[ClientDet]
+ ADD CONSTRAINT [FK_ClientDet_AgentsDet] FOREIGN KEY ([CodAg]) REFERENCES [dbo].[AgentsDet] ([CodAg]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_QuoteRM_QuoteList...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteRM]
+ ADD CONSTRAINT [FK_QuoteRM_QuoteList] FOREIGN KEY ([QuoteType], [CodQuote], [QuoteRev]) REFERENCES [dbo].[QuoteList] ([QuoteType], [CodQuote], [QuoteRev]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_Package2_PackagDet...';
+
+
+GO
+ALTER TABLE [dbo].[Package2]
+ ADD CONSTRAINT [FK_Package2_PackagDet] FOREIGN KEY ([CodPackag]) REFERENCES [dbo].[PackagDet] ([CodPackag]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_Permessi2Funzione_Permessi...';
+
+
+GO
+ALTER TABLE [dbo].[Permessi2Funzione]
+ ADD CONSTRAINT [FK_Permessi2Funzione_Permessi] FOREIGN KEY ([COD_PERMESSO]) REFERENCES [dbo].[Permessi] ([COD_PERMESSO]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_DiesDet_DiesGroupDet...';
+
+
+GO
+ALTER TABLE [dbo].[DiesDet]
+ ADD CONSTRAINT [FK_DiesDet_DiesGroupDet] FOREIGN KEY ([CodDiesGroup]) REFERENCES [dbo].[DiesGroupDet] ([CodDiesGroup]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_DiesDet_ItemDet...';
+
+
+GO
+ALTER TABLE [dbo].[DiesDet]
+ ADD CONSTRAINT [FK_DiesDet_ItemDet] FOREIGN KEY ([CodItem]) REFERENCES [dbo].[ItemDet] ([CodItem]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_ProductionLog_ClientDet...';
+
+
+GO
+ALTER TABLE [dbo].[ProductionLog]
+ ADD CONSTRAINT [FK_ProductionLog_ClientDet] FOREIGN KEY ([CodClient]) REFERENCES [dbo].[ClientDet] ([CodClient]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_ProductionLog_PackagDet...';
+
+
+GO
+ALTER TABLE [dbo].[ProductionLog]
+ ADD CONSTRAINT [FK_ProductionLog_PackagDet] FOREIGN KEY ([CodPackag]) REFERENCES [dbo].[PackagDet] ([CodPackag]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_ProductionLog_PlantsDet...';
+
+
+GO
+ALTER TABLE [dbo].[ProductionLog]
+ ADD CONSTRAINT [FK_ProductionLog_PlantsDet] FOREIGN KEY ([CodPlant]) REFERENCES [dbo].[PlantsDet] ([CodPlant]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_ProductionLog_RawMatDet...';
+
+
+GO
+ALTER TABLE [dbo].[ProductionLog]
+ ADD CONSTRAINT [FK_ProductionLog_RawMatDet] FOREIGN KEY ([RawMat]) REFERENCES [dbo].[RawMatDet] ([RawMat]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_QuoteParam_QuoteList...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteParam]
+ ADD CONSTRAINT [FK_QuoteParam_QuoteList] FOREIGN KEY ([QuoteType], [CodQuote], [QuoteRev]) REFERENCES [dbo].[QuoteList] ([QuoteType], [CodQuote], [QuoteRev]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_QuoteWorkInt_QuoteList...';
+
+
+GO
+ALTER TABLE [dbo].[QuoteWorkInt]
+ ADD CONSTRAINT [FK_QuoteWorkInt_QuoteList] FOREIGN KEY ([QuoteType], [CodQuote], [QuoteRev]) REFERENCES [dbo].[QuoteList] ([QuoteType], [CodQuote], [QuoteRev]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_UTENTE_CDC...';
+
+
+GO
+ALTER TABLE [dbo].[UTENTE]
+ ADD CONSTRAINT [FK_UTENTE_CDC] FOREIGN KEY ([COD_CDC]) REFERENCES [dbo].[CDC] ([COD_CDC]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_DIRITTI_FUNZIONE...';
+
+
+GO
+ALTER TABLE [dbo].[DIRITTI]
+ ADD CONSTRAINT [FK_DIRITTI_FUNZIONE] FOREIGN KEY ([COD_FUNZIONE]) REFERENCES [dbo].[FUNZIONE] ([COD_FUNZIONE]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_DIRITTI_MODULO...';
+
+
+GO
+ALTER TABLE [dbo].[DIRITTI]
+ ADD CONSTRAINT [FK_DIRITTI_MODULO] FOREIGN KEY ([COD_MODULO]) REFERENCES [dbo].[MODULO] ([COD_MODULO]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating FK_DIRITTI_UTENTE...';
+
+
+GO
+ALTER TABLE [dbo].[DIRITTI]
+ ADD CONSTRAINT [FK_DIRITTI_UTENTE] FOREIGN KEY ([USER_NAME]) REFERENCES [dbo].[UTENTE] ([USER_NAME]) ON UPDATE CASCADE;
+
+
+GO
+PRINT N'Creating [dbo].[f_dtFromRaw]...';
+
+
+GO
+-- =============================================
+-- Author: S.E.Locatelli
+-- Create date: 2013.11.28
+-- Description: Conversione datetime da yyyyMMddHHmmssnn
+-- =============================================
+CREATE FUNCTION f_dtFromRaw
+(
+ -- Add the parameters for the function here
+ @origDt nvarchar(50)
+)
+RETURNS datetime
+AS
+BEGIN
+ DECLARE @output datetime
+ DECLARE @strDt NVARCHAR(50)
+
+ SELECT @strDt = LEFT(@origDt, 4) + '-' + SUBSTRING(@origDt, 5,2 ) + '-' + SUBSTRING(@origDt, 7,2 ) + ' ' + SUBSTRING(@origDt, 9,2 ) + ':' + SUBSTRING(@origDt, 11,2 ) + ':' + SUBSTRING(@origDt, 13,2 ) + '.' + SUBSTRING(@origDt, 15,2 ) +'0'
+
+ SELECT @output = CONVERT(DATETIME, @strDt, 121)
+
+ RETURN @output
+
+END
+GO
+PRINT N'Creating [dbo].[f_trim]...';
+
+
+GO
+/***************************************
+* FUNCTION f_trim
+*
+* trim completo: LTRIM(RTRIM(...))
+*
+* Steamware, S.E.L.
+* mod: 2013.05.10
+*
+****************************************/
+create FUNCTION [dbo].[f_trim] (@string NVARCHAR(MAX))
+RETURNS NVARCHAR(MAX) AS
+BEGIN
+
+ -- Prefix the required number of spaces to bulk up the string and then replace the spaces with the desired character
+ RETURN LTRIM(RTRIM(@string))
+
+
+END
+GO
+PRINT N'Creating [dbo].[f_getCodPackag_OLD]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E.Locatelli
+-- Create date: 2014.01.15
+-- Description: Recupera CodPackage dato CodItem e CodClient secondo albero decisionale
+-- SOSTITUITA da fun Table-value f_getDataCodPackag in QL_Update
+-- =============================================
+CREATE FUNCTION [dbo].[f_getCodPackag_OLD]
+(
+ @CodItem NVARCHAR(50),
+ @CodClient NVARCHAR(50)
+)
+RETURNS NVARCHAR(50)
+AS
+BEGIN
+ DECLARE @output NVARCHAR(50)
+ DECLARE @trovati INT = 0
+ -- setup iniziale: imposto a zero...
+ SET @output = '0'
+
+ SELECT @trovati = COUNT(*) FROM Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem
+ IF(@trovati > 0)
+ -- primo tentativo: cerco il package dato SIA cliente che ITEM
+ BEGIN
+ SELECT TOP 1 @output = CodPackag
+ FROM Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem
+ ORDER BY TotQta DESC
+ END
+ ELSE
+ -- secondo tentativo: se non lo trovo cerco per SOLO ITEM
+ BEGIN
+ SELECT TOP 1 @output = CodPackag
+ FROM Package2Item WHERE CodItem = @CodItem
+ ORDER BY TotQta DESC
+ END
+
+ RETURN @output
+
+END
+GO
+PRINT N'Creating [dbo].[f_padLeft]...';
+
+
+GO
+
+/***************************************
+* FUNCTION f_padLeft
+*
+* fornisce una stringa della lunghezza desiderata aggiungendo a sx il carattere richiesto alla @string originale
+*
+* Steamware, S.E.L.
+* mod: 2010.03.19
+*
+****************************************/
+CREATE FUNCTION [dbo].[f_padLeft] (@string VARCHAR(255), @desired_length INTEGER, @pad_character CHAR(1))
+RETURNS VARCHAR(255) AS
+BEGIN
+
+ -- Prefix the required number of spaces to bulk up the string and then replace the spaces with the desired character
+ RETURN CASE
+ WHEN LEN(@string) < @desired_length
+ THEN REPLACE(SPACE(@desired_length - LEN(@string)), ' ', @pad_character) + @string
+ ELSE @string
+ END
+
+END
+GO
+PRINT N'Creating [dbo].[f_padRight]...';
+
+
+GO
+/***************************************
+* FUNCTION f_padRight
+*
+* fornisce una stringa della lunghezza desiderata aggiungendo a sx il carattere richiesto alla @string originale
+*
+* Steamware, S.E.L.
+* mod: 2010.03.19
+*
+****************************************/
+CREATE FUNCTION [dbo].[f_padRight] (@string VARCHAR(255), @desired_length INTEGER, @pad_character CHAR(1))
+RETURNS VARCHAR(255) AS
+BEGIN
+
+ -- Prefix the required number of spaces to bulk up the string and then replace the spaces with the desired character
+ RETURN CASE
+ WHEN LEN(@string) < @desired_length
+ THEN @string + REPLACE(SPACE(@desired_length - LEN(@string)), ' ', @pad_character)
+ ELSE @string
+ END
+
+END
+GO
+PRINT N'Creating [dbo].[f_getSubstring]...';
+
+
+GO
+-- ================================================================
+-- Author : Steamware
+-- Create date: 2014-01-17
+--
+-- Description: Data una stringa con una serie di valori separati da un separatore ( es. ; )
+-- ritorna l'elemento nella posizione richiesta
+--
+-- esempio : SELECT dbo.f_GetSubstring('asda-fff-bbb','-' , 2)
+-- ================================================================
+CREATE FUNCTION [dbo].[f_getSubstring]
+(
+ @str_in NVARCHAR(4000), @separator NVARCHAR(4)= '-', @PosizValue INT = 1
+)
+RETURNS NVARCHAR(4000)
+AS
+BEGIN
+
+ DECLARE @Occurrences INT,
+ @Counter INT,
+ @tmpStr NVARCHAR(4000),
+ @str_out NVARCHAR(4000)
+
+ IF RIGHT(@str_in, DATALENGTH(@separator)/2 ) <> @separator
+ SET @str_out = @str_in + @separator ;
+ ELSE
+ SET @str_out = @str_in ;
+
+ -- calcolo il numero di elementi della nella stringa
+ SET @Occurrences = ( (DATALENGTH( REPLACE(@str_out, @separator, @separator+'#')) - DATALENGTH(@str_out)) ) / 2
+
+ -- se l'elemento richiesto esiste proseguo altrimenti ritorno NULL
+ IF @Occurrences >= @PosizValue AND @PosizValue <> 0
+ BEGIN
+
+ SET @tmpStr = @str_out ;
+ SET @Counter = 1 ;
+
+ WHILE @Counter <= @PosizValue
+ BEGIN
+ SET @Counter = @Counter + 1 ;
+ SET @str_out = SUBSTRING( @tmpStr, 1, CHARINDEX(@separator,@tmpStr) - 1) ;
+ -- metto via il resto della stringa
+ SET @tmpStr = SUBSTRING( @tmpStr, CHARINDEX(@separator,@tmpStr) + DATALENGTH(@separator)/2, 4000) ;
+
+ IF DATALENGTH(@tmpStr) = 0
+ BREAK
+ END
+
+ -- pulisco da caratteri NON voluti
+ --SET @str_out = REPLACE(@str_out, char(13), '') ; -- carriage return
+ --SET @str_out = REPLACE(@str_out, char(10), '') ; -- line feed
+ --SET @str_out = REPLACE(@str_out, char(9), '') ; -- tab
+ --SET @str_out = LTRIM ( RTRIM (@str_out) ) ; -- blank
+ END
+ ELSE
+ SET @str_out = NULL ;
+
+ RETURN @str_out
+
+END
+GO
+PRINT N'Creating [dbo].[f_getNewCodQuote]...';
+
+
+GO
+-- =============================================
+-- Author: S.E.Locatelli
+-- Create date: 2014.02.21
+-- Description: Retituisce un codice offerta valido da yyMMdd + incr
+-- =============================================
+CREATE FUNCTION [dbo].[f_getNewCodQuote]
+(
+)
+RETURNS INT
+AS
+BEGIN
+
+ DECLARE @output INT
+ DECLARE @oggi DATETIME = GETDATE()
+
+
+ SELECT @output = ISNULL(MAX(CodQuote) + 1,CAST(RIGHT(YEAR(@oggi),2) AS NVARCHAR) + dbo.f_padLeft(MONTH(@oggi), 2,'0') + dbo.f_padLeft(DAY(@oggi), 2,'0')+'0001')
+ FROM QuoteList
+ WHERE codquote LIKE CAST(RIGHT(YEAR(@oggi),2) AS NVARCHAR) + dbo.f_padLeft(MONTH(@oggi), 2,'0') + dbo.f_padLeft(DAY(@oggi), 2,'0') + '%'
+ AND (QuoteType = 'Q' OR QuoteType = 'S')
+
+ RETURN @output
+
+ /* altra modalità (valutare...)
+ -- calcolo prox valori "free" x cod Quote (QuoteRev parte a zero...)
+ SELECT @CodQuote = ISNULL(CodQuote, 0)
+ FROM QuoteList
+ WHERE QuoteType = 'Q'
+ AND CodQuote LIKE dbo.fnFormatDate (getdate(), 'YYMMDD') +'%'
+
+ -- se è vuoto prendo primo valore...
+ IF(@CodQuote = 0)
+ BEGIN
+ SELECT @CodQuote = dbo.fnFormatDate (getdate(), 'YYMMDD0000')
+ END
+
+
+ */
+
+
+END
+GO
+PRINT N'Creating [dbo].[fnFormatDate]...';
+
+
+GO
+-----------------------------------------------------------------------------
+-- SQL Server date formatting function – convert datetime to string
+-----------------------------------------------------------------------------
+-- SQL datetime functions
+-- SQL Server date formats
+-- T-SQL convert dates
+-- Formatting dates sql server
+CREATE FUNCTION dbo.fnFormatDate (@Datetime DATETIME, @FormatMask VARCHAR(32))
+RETURNS VARCHAR(32)
+AS
+BEGIN
+ DECLARE @StringDate VARCHAR(32)
+ SET @StringDate = @FormatMask
+ IF (CHARINDEX ('YYYY',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'YYYY',
+ DATENAME(YY, @Datetime))
+ IF (CHARINDEX ('YY',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'YY',
+ RIGHT(DATENAME(YY, @Datetime),2))
+ IF (CHARINDEX ('Month',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'Month',
+ DATENAME(MM, @Datetime))
+ IF (CHARINDEX ('MON',@StringDate COLLATE SQL_Latin1_General_CP1_CS_AS)>0)
+ SET @StringDate = REPLACE(@StringDate, 'MON',
+ LEFT(UPPER(DATENAME(MM, @Datetime)),3))
+ IF (CHARINDEX ('Mon',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'Mon',
+ LEFT(DATENAME(MM, @Datetime),3))
+ IF (CHARINDEX ('MM',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'MM',
+ RIGHT('0'+CONVERT(VARCHAR,DATEPART(MM, @Datetime)),2))
+ IF (CHARINDEX ('M',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'M',
+ CONVERT(VARCHAR,DATEPART(MM, @Datetime)))
+ IF (CHARINDEX ('DD',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'DD',
+ RIGHT('0'+DATENAME(DD, @Datetime),2))
+ IF (CHARINDEX ('D',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'D',
+ DATENAME(DD, @Datetime))
+RETURN @StringDate
+END
+GO
+PRINT N'Creating [dbo].[f_prt_getParameter]...';
+
+
+GO
+-- =============================================
+-- Author: G:A:R
+-- Create date:
+-- Description: estrazione valore del paramento passato
+-- =============================================
+CREATE FUNCTION f_prt_getParameter
+(
+ @par AS VARCHAR(50)
+ ,@val AS VARCHAR(50)
+ ,@endSepar AS VARCHAR(10) = '&'
+)
+RETURNS VARCHAR(50)
+AS
+BEGIN
+
+ DECLARE @Result VARCHAR(50)
+ DECLARE @Inizio INT;
+ DECLARE @Fine INT;
+
+ SET @par = '%'+ @par + '=%' -- '%QuoteType=%'
+
+ --;WITH CTE AS
+ --(
+ -- SELECT *, ( PATINDEX(@campo , Chiave) + LEN(@campo) - 2 ) As Inizio , CHARINDEX ( '&' ,Chiave , PATINDEX(@campo , Chiave) ) As Fine
+ -- FROM dbo.ReportPrintTicket
+ -- WHERE Ticket = 1 AND PATINDEX(@campo , Chiave) > 0
+ --)
+
+ SET @Inizio = PATINDEX(@par , @val )
+
+ IF @Inizio > 0
+ BEGIN
+ SET @Inizio = @Inizio + LEN(@par) - 2
+ SET @Fine = CASE WHEN ( CHARINDEX ( @endSepar , @val , @Inizio ) ) = 0
+ THEN LEN(@val)
+ ELSE CHARINDEX ( @endSepar , @val , @Inizio )
+ END ;
+
+ SELECT @Result = SUBSTRING( @val, @Inizio, @Fine-@Inizio )
+ END
+
+ RETURN @Result
+END
+GO
+PRINT N'Creating [dbo].[f_getDataCodPackag]...';
+
+
+GO
+
+
+
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014-01-30
+-- Description: Ritorna l'imballo e i dati associati ( sostituita da stored ma lasciata nel caso di query on-line )
+-- =============================================
+CREATE FUNCTION [dbo].[f_getDataCodPackag]
+(
+ @CodItem NVARCHAR(50),
+ @CodClient NVARCHAR(50)
+)
+RETURNS
+@Table TABLE
+(
+ [CodItem] [nvarchar](50) NOT NULL,
+ [CodClient] [nvarchar](50) NOT NULL,
+ [CodPackag] [nvarchar](50) NOT NULL,
+ [TotQta] [decimal](18, 3) NOT NULL,
+ [Weight] [decimal](18, 6) NOT NULL,
+ [Tare] [decimal](18, 6) NOT NULL,
+ [NumImb] [decimal](9, 6) NOT NULL,
+ [Durata] [decimal](18, 6) NOT NULL,
+ [LivPackag] [nvarchar](50) NOT NULL,
+ [LivPackagDet] [nvarchar](50) NOT NULL
+)
+AS
+BEGIN
+
+ DECLARE @output NVARCHAR(50)
+ DECLARE @trovati INT = 0
+ -- setup iniziale: imposto a zero...
+ SET @output = '0'
+
+ -- SELECT @trovati = COUNT(*) FROM Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem
+ --IF(@trovati > 0)
+
+ IF EXISTS ( SELECT * FROM dbo.Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem)
+ -- primo tentativo: cerco il package dato SIA cliente che ITEM
+ BEGIN
+ INSERT @Table
+ SELECT TOP 1 CodItem, CodClient , CodPackag, TotQta, Weight, Tare, NumImb, Durata
+ ,'Item-Client-Package', @CodItem + '-' + @CodClient + '-' + CodPackag
+ FROM dbo.Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem
+ ORDER BY TotQta DESC
+ END
+ ELSE IF EXISTS ( SELECT * FROM Package2Item WHERE CodItem = @CodItem )
+ -- secondo tentativo: se non lo trovo cerco per SOLO ITEM
+ BEGIN
+ INSERT @Table
+ SELECT TOP 1 CodItem, 'ND' AS CodClient , CodPackag, TotQta, Weight, Tare, NumImb, Durata
+ ,'Item-Package', @CodItem + '-' + CodPackag
+ FROM dbo.Package2Item WHERE CodItem = @CodItem
+ ORDER BY TotQta DESC
+ END
+ ELSE
+ -- secondo tentativo: se non lo trovo cerco per SOLO ITEM
+ BEGIN
+ INSERT @Table
+ SELECT TOP 1 'ND', 'ND' AS CodClient , CodPackag, TotQta, Weight, Tare, NumImb, Durata
+ ,'Package', CodPackag
+ FROM dbo.Package2 WHERE CodPackag = 0
+ END
+
+ RETURN
+END
+GO
+PRINT N'Creating [dbo].[v_selClient]...';
+
+
+GO
+CREATE VIEW dbo.v_selClient
+AS
+SELECT CodClient AS value, CASE WHEN LEN(ClientName) > 40 THEN SUBSTRING(ClientName, 0, 40) + '...' ELSE ClientName END + ' [' + CodClient + ']' AS label
+FROM dbo.ClientDet
+WHERE (CodClient <> '')
+GO
+PRINT N'Creating [dbo].[v_selIncoterms]...';
+
+
+GO
+CREATE VIEW dbo.v_selIncoterms
+AS
+SELECT CodInco AS value, CodInco + ' - ' + Descript AS label
+FROM dbo.Incoterms
+GO
+PRINT N'Creating [dbo].[v_selCons]...';
+
+
+GO
+CREATE VIEW dbo.v_selCons
+AS
+SELECT CodInco AS value, CodInco + ' - ' + Descript AS label
+FROM dbo.Incoterms
+GO
+PRINT N'Creating [dbo].[v_selRawMat]...';
+
+
+GO
+
+CREATE VIEW dbo.v_selRawMat
+AS
+SELECT RawMat AS value, RawMat AS label
+FROM dbo.RawMatDet
+WHERE (RawMat <> '')
+GO
+PRINT N'Creating [dbo].[v_QuoteFull_Q]...';
+
+
+GO
+CREATE VIEW dbo.v_QuoteFull_Q
+AS
+SELECT Vers
+ , QuoteType
+ , CodQuote
+ , QuoteRev
+ , IdxQState
+ , CodClient
+ , ClientName
+ , CodItem
+ , CodItemGroup
+ , RawMat
+ , UnitWeight
+ , BatchQty
+ , CodInco
+ , TranspZone
+ , KeyAM
+ , Note
+ , PriceOff
+ , CodClientAssoc
+ , ClientNameAssoc
+ , ItemDescr
+ , CodifProfilo
+ , ClasseMerc
+ , TipoDies
+ , CodDiesGroup
+ , DiamDies
+ , HoleNumDies
+ , DiesPrice
+ , DiesExpLife
+ , DiesEOLife
+ , DiesByClass
+ , NumDiesInList
+ , NumDiesExaust
+ , CodPlant
+ , KeyAMIL
+ , KgTeo
+ , NumSMED
+ , QuotaMan
+ , PRMWeight
+ , PWeight
+ , PTare
+ , LivPackage
+ , LivPackageDett
+ , RawMatCost
+ , RawMatExtraCost
+ , RawMatFullCost
+ , CodPackag
+ , PkgDesc
+ , FSR
+ , ProvvCost
+ , EECost
+ , GasCost
+ , DiesCost
+ , PackCost
+ , TranspCost
+ , SellCost01
+ , RefCost01
+ , SellCost04
+ , RefCost04
+ , WSR01
+ , MSR01
+ , NetProd01
+ , FC4UG01
+ , VC4UG01
+ , OH4UG01
+ , SC4UG01
+ , DSR
+ , NetProd04
+ , FC4UG04
+ , VC4UG04
+ , FVC
+ , Charge
+ , FVC + RawMatFullCost AS P_FVC
+ , FC4UG01 + OH4UG01 AS CPS
+ , FC4UG01 + OH4UG01 + FVC + RawMatFullCost AS P_CPS
+ , FC4UG04 + FVC + RawMatFullCost AS P_FC4UG04
+ , FVC + FC4UG01 + OH4UG01 + FC4UG04 AS FullCost
+ , FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost AS P_FullCost
+ , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS MinPrice
+ , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost) AS P_MinPrice
+ , PriceOff + RawMatFullCost AS P_PriceOff
+ , PriceOff - (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS NetMar
+ , CASE
+ WHEN (FC4UG01 + OH4UG01 + FC4UG04) = 0
+ THEN 0
+ ELSE (PriceOff - FVC) / (FC4UG01 + OH4UG01 + FC4UG04)
+ END AS FCShield
+ , CASE
+ WHEN PWeight = 0
+ THEN 0
+ ELSE (PRMWeight - PTare) * (PriceOff + RawMatFullCost) / PWeight
+ END AS PckSur
+ , valid
+ , errorScore
+ , DiesPrice_sim
+ , SamplePrice
+ , DiesFullCost
+ , DiesPriceClientQuote
+ , DiesTecLife
+ , DiesCommLife
+ , MonthSalesPrev
+ , SalesPrevCost
+ , DiesFinCost
+ , ClientQuoteReven
+ , ExtraDiscountDies
+ , WSR01_sim
+ , MSR01_sim
+ , NetProd01_sim
+ , DSR_sim
+ , FVC + FC4UG01 + OH4UG01 + FC4UG04 - PriceOff - ExtraDiscountDies AS NetMar_sim
+ , (PriceOff - FVC - ExtraDiscountDies) / (FC4UG01 + OH4UG01 + FC4UG04) AS FCShield_sim
+ , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) + ExtraDiscountDies AS MinPrice_sim
+ , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost) + ExtraDiscountDies AS P_MinPrice_sim
+FROM dbo.QuoteFull_S
+
+UNION
+
+SELECT Vers
+ , QuoteType
+ , CodQuote
+ , QuoteRev
+ , IdxQState
+ , CodClient
+ , ClientName
+ , CodItem
+ , CodItemGroup
+ , RawMat
+ , UnitWeight
+ , BatchQty
+ , CodInco
+ , TranspZone
+ , KeyAM
+ , Note
+ , PriceOff
+ , CodClientAssoc
+ , ClientNameAssoc
+ , ItemDescr
+ , CodifProfilo
+ , ClasseMerc
+ , TipoDies
+ , CodDiesGroup
+ , DiamDies
+ , HoleNumDies
+ , DiesPrice
+ , DiesExpLife
+ , DiesEOLife
+ , DiesByClass
+ , NumDiesInList
+ , NumDiesExaust
+ , CodPlant
+ , KeyAMIL
+ , KgTeo
+ , NumSMED
+ , QuotaMan
+ , PRMWeight
+ , PWeight
+ , PTare
+ , LivPackage
+ , LivPackageDett
+ , RawMatCost
+ , RawMatExtraCost
+ , RawMatFullCost
+ , CodPackag
+ , PkgDesc
+ , FSR
+ , ProvvCost
+ , EECost
+ , GasCost
+ , DiesCost
+ , PackCost
+ , TranspCost
+ , SellCost01
+ , RefCost01
+ , SellCost04
+ , RefCost04
+ , WSR01
+ , MSR01
+ , NetProd01
+ , FC4UG01
+ , VC4UG01
+ , OH4UG01
+ , SC4UG01
+ , DSR
+ , NetProd04
+ , FC4UG04
+ , VC4UG04
+ , FVC
+ , Charge
+ , FVC + RawMatFullCost AS P_FVC
+ , FC4UG01 + OH4UG01 AS CPS
+ , FC4UG01 + OH4UG01 + FVC + RawMatFullCost AS P_CPS
+ , FC4UG04 + FVC + RawMatFullCost AS P_FC4UG04
+ , FVC + FC4UG01 + OH4UG01 + FC4UG04 AS FullCost
+ , FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost AS P_FullCost
+ , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS MinPrice
+ , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost) AS P_MinPrice
+ , PriceOff + RawMatFullCost AS P_PriceOff
+ , PriceOff - (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS NetMar
+ , CASE
+ WHEN (FC4UG01 + OH4UG01 + FC4UG04) = 0
+ THEN 0
+ ELSE (PriceOff - FVC) / (FC4UG01 + OH4UG01 + FC4UG04)
+ END AS FCShield
+ , CASE
+ WHEN PWeight = 0
+ THEN 0
+ ELSE (PRMWeight - PTare) * (PriceOff + RawMatFullCost) / PWeight
+ END AS PckSur
+ , valid
+ , errorScore
+ , 0.0 AS DiesPrice_sim
+ , 0.0 AS SamplePrice
+ , 0.0 AS DiesFullCost
+ , 0.0 AS DiesPriceClientQuote
+ , 0.0 AS DiesTecLife
+ , 0.0 AS DiesCommLife
+ , 0.0 AS MonthSalesPrev
+ , 0.0 AS SalesPrevCost
+ , 0.0 AS DiesFinCost
+ , 0.0 AS ClientQuoteReven
+ , 0.0 AS ExtraDiscountDies
+ , 0.0 AS WSR01_sim
+ , 0.0 AS MSR01_sim
+ , 0.0 AS NetProd01_sim
+ , 0.0 AS DSR_sim
+ , 0.0 AS NetMar_sim
+ , 0.0 AS FCShield_sim
+ , 0.0 AS MinPrice_sim
+ , 0.0 AS P_MinPrice_sim
+FROM dbo.QuoteFull_Q
+GO
+PRINT N'Creating [dbo].[v_selItems]...';
+
+
+GO
+CREATE VIEW dbo.v_selItems
+AS
+SELECT CodItem AS value, CodItem + ' - ' + ItemDescr AS label
+FROM dbo.ItemDet
+WHERE (CodItem <> '')
+GO
+PRINT N'Creating [dbo].[v_pivot]...';
+
+
+GO
+
+CREATE VIEW [dbo].[v_pivot]
+AS
+
+WITH ctePivotQuoteP
+AS (
+ SELECT *
+ FROM (
+ SELECT QuoteType
+ , CodQuote
+ , QuoteRev
+ , Descr
+ , Parameter
+ FROM dbo.QuoteParam
+ ) AS SourceTable
+
+ PIVOT(MIN(Parameter) FOR Descr IN (
+ ItemDescr
+ , CodifProfilo
+ , ClasseMerc
+ , CodClientAssoc
+ , ClientNameAssoc
+ , CodDiesGroup
+ , TipoDies
+ , DiamDies
+ , HoleNumDies
+ , NumDiesInList
+ , NumDiesExaust
+ , CodPlant
+ , KeyAM
+ , KeyAMIL
+ , NumSMED
+ , KgTeo
+ , KgProdotti
+ , QuotaMan
+ , DiesPrice
+ , DiesExpLife
+ , DiesEOLife
+ , DiesByClass
+ , PkgDesc
+ , PRMWeight
+ , PWeight
+ , PTare
+ , TareStRatio
+ , LivPackage
+ , LivPackageDett
+ -- START nuovi campi x SIM
+ , DiesPrice_sim
+ , SamplePrice
+ , DiesFullCost
+ , DiesPriceClientQuote
+ , DiesTecLife
+ , DiesCommLife
+ , MonthSalesPrev
+ , SalesPrevCost
+ , DiesFinCost
+ , ClientQuoteReven
+ , ExtraDiscountDies
+ , WSR01_sim
+ , MSR01_sim
+ , NetProd01_sim
+ , DSR_sim
+ -- end nuovi campi x SIM
+ )
+ ) AS PivotData
+),
+-- =================================================
+-- PIVOT TABELLA QuoteOC
+-- =================================================
+ctePivotQuoteOC AS (
+ SELECT *
+ FROM (
+ SELECT QuoteType
+ , CodQuote
+ , QuoteRev
+ , Class01 + ProcessNum AS ClassProc
+ , C4UG
+ FROM dbo.QuoteOC
+ ) AS SourceTable
+ PIVOT(SUM(C4UG) FOR ClassProc IN
+ ( EE01
+ , GAS01
+ , MATRICE01
+ , VENDITA01
+ , ROTTAME01
+ , VENDITA04
+ , ROTTAME04
+ , IMBALLO04
+ , TRASPORTI04
+ , PROVVIGIONI04
+ )
+ ) AS PivotData
+)
+-- =================================================
+-- MAIN Select Tabella con INTO temp table
+-- =================================================
+SELECT 'V14.1' AS Vers
+ , QL.QuoteType
+ , QL.CodQuote
+ , QL.QuoteRev
+ , QL.IdxQState
+ , QL.CodClient
+ , CD.ClientName
+ , QL.CodItem
+ , QL.CodItemGroup
+ , QL.RawMat
+ , QL.UnitWeight
+ , QL.BatchQty
+ , QL.CodInco
+ , CD.TranspZone
+ , QL.KeyAM
+ , QL.Note
+ , QL.PriceOff
+ , QL.OrdDate
+ , QL.OrdNum
+ , QL.OrdRow
+ , QL.OrdPrice
+ , QL.OrdQty
+ , pQP.CodClientAssoc
+ , pQP.ClientNameAssoc
+ , pQP.ItemDescr
+ , pQP.CodifProfilo
+ , pQP.ClasseMerc
+ , pQP.TipoDies
+ , pQP.CodDiesGroup
+ , CONVERT(DECIMAL(18,6),pQP.DiamDies) AS DiamDies
+ , CONVERT(INT,pQP.HoleNumDies) AS HoleNumDies
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPrice),0) AS DiesPrice
+ , CONVERT(DECIMAL(18,6),pQP.DiesExpLife) AS DiesExpLife
+ , CONVERT(DECIMAL(18,6),pQP.DiesEOLife) AS DiesEOLife
+ , CONVERT(BIT, ISNULL(pQP.DiesByClass,0)) AS DiesByClass
+ , CONVERT(DECIMAL(18,6),pQP.NumDiesInList) AS NumDiesInList
+ , CONVERT(DECIMAL(18,6),pQP.NumDiesExaust) AS NumDiesExaust
+ , pQP.CodPlant
+ , pQP.KeyAMIL
+ , CONVERT(DECIMAL(18,6),pQP.KgTeo) AS KgTeo
+ , CONVERT(DECIMAL(18,6),pQP.NumSMED) AS NumSMED
+ , CONVERT(DECIMAL(18,6),pQP.QuotaMan) AS QuotaMan
+ , CONVERT(DECIMAL(18,6),pQP.PRMWeight) AS PRMWeight
+ , CONVERT(DECIMAL(18,6),pQP.PWeight) AS PWeight
+ , CONVERT(DECIMAL(18,6),pQP.PTare) AS PTare
+ , pQP.LivPackage
+ , pQP.LivPackageDett
+ -- START nuovi campi x SIM
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPrice_sim),0) AS DiesPrice_sim
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.SamplePrice),0) AS SamplePrice
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesFullCost),0) AS DiesFullCost
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPriceClientQuote),0) AS DiesPriceClientQuote
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesTecLife),0) AS DiesTecLife
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesCommLife),1) AS DiesCommLife
+ , ISNULL(CONVERT(INT,pQP.MonthSalesPrev),0) AS MonthSalesPrev
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.SalesPrevCost),0) AS SalesPrevCost
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesFinCost),0) AS DiesFinCost
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.ClientQuoteReven),0) AS ClientQuoteReven
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.ExtraDiscountDies),0) AS ExtraDiscountDies
+ , ISNULL(CONVERT(DECIMAL(9,8),pQP.WSR01_sim),0) AS WSR01_sim
+ , ISNULL(CONVERT(DECIMAL(9,8),pQP.MSR01_sim),0) AS MSR01_sim
+ , ISNULL(CONVERT(DECIMAL(9,3),pQP.NetProd01_sim),0) AS NetProd01_sim
+ , ISNULL(CONVERT(DECIMAL(9,8),pQP.DSR_sim),0) AS DSR_sim
+ -- end nuovi campi x SIM
+ , QRM.RawMatCost
+ , QRM.RawMatExtraCost
+ , QRM.RawMatCost + QRM.RawMatExtraCost AS RawMatFullCost -- fare campo calcolato ?!?
+ , QRM.CodPackag
+ , pQP.PkgDesc
+ , QRM.FSR
+ , ISNULL(pQOC.PROVVIGIONI04, 0) AS ProvvCost
+ , ISNULL(pQOC.EE01, 0) AS EECost
+ , ISNULL(pQOC.GAS01, 0) AS GasCost
+ , ISNULL(pQOC.MATRICE01, 0) AS DiesCost
+ , ISNULL(pQOC.IMBALLO04, 0) AS PackCost
+ , ISNULL(pQOC.TRASPORTI04, 0) AS TranspCost
+ , ISNULL(pQOC.VENDITA01, 0) AS SellCost01
+ , ISNULL(pQOC.ROTTAME01, 0) AS RefCost01
+ , ISNULL(pQOC.VENDITA04, 0) AS SellCost04
+ , ISNULL(pQOC.ROTTAME04, 0) AS RefCost04
+ , QWI01.WSR AS WSR01
+ , QWI01.MSR AS MSR01
+ , QWI01.NetProd AS NetProd01
+ , QWI01.FC4UG AS FC4UG01
+ , QWI01.VC4UG AS VC4UG01
+ , QWI01.OH4UG AS OH4UG01
+ , QWI01.SC4UG AS SC4UG01
+ , 1 - (QWI01.DYR * QWI02.DYR * QWI03.DYR * QWI04.DYR) AS DSR
+ , QWI04.NetProd AS NetProd04
+ , QWI04.FC4UG AS FC4UG04
+ , QWI04.VC4UG AS VC4UG04
+ , ISNULL(pQOC.VENDITA01, 0) + ISNULL(pQOC.ROTTAME01, 0) + ISNULL(pQOC.VENDITA04, 0) + ISNULL(pQOC.ROTTAME04, 0) + ISNULL(pQOC.EE01, 0) + ISNULL(pQOC.GAS01, 0) + ISNULL(pQOC.MATRICE01, 0) + ISNULL(pQOC.IMBALLO04, 0) + ISNULL(pQOC.PROVVIGIONI04, 0) + ISNULL(pQOC.TRASPORTI04, 0) + QWI01.VC4UG + QWI04.VC4UG + QWI01.SC4UG AS FVC
+ , PD.Charge
+ , QL.valid
+ , QL.errorScore
+
+FROM dbo.QuoteList AS QL
+
+INNER JOIN dbo.ClientDet CD
+ ON QL.CodClient = CD.CodClient
+
+INNER JOIN ctePivotQuoteP AS pQP
+ ON QL.QuoteType = pQP.QuoteType
+ AND QL.CodQuote = pQP.CodQuote
+ AND QL.QuoteRev = pQP.QuoteRev
+
+INNER JOIN dbo.QuoteRM AS QRM
+ ON QL.QuoteType = QRM.QuoteType
+ AND QL.CodQuote = QRM.CodQuote
+ AND QL.QuoteRev = QRM.QuoteRev
+ AND QL.rawmat = QRM.RawMat
+
+INNER JOIN ctePivotQuoteOC AS pQOC
+ ON QL.QuoteType = pQOC.QuoteType
+ AND QL.CodQuote = pQOC.CodQuote
+ AND QL.QuoteRev = pQOC.QuoteRev
+
+INNER JOIN dbo.QuoteWorkInt AS QWI01
+ ON QL.QuoteType = QWI01.QuoteType
+ AND QL.CodQuote = QWI01.CodQuote
+ AND QL.QuoteRev = QWI01.QuoteRev
+ AND QWI01.ProcessNum = '01'
+INNER JOIN dbo.QuoteWorkInt AS QWI02
+ ON QL.QuoteType = QWI02.QuoteType
+ AND QL.CodQuote = QWI02.CodQuote
+ AND QL.QuoteRev = QWI02.QuoteRev
+ AND QWI02.ProcessNum = '02'
+INNER JOIN dbo.QuoteWorkInt AS QWI03
+ ON QL.QuoteType = QWI03.QuoteType
+ AND QL.CodQuote = QWI03.CodQuote
+ AND QL.QuoteRev = QWI03.QuoteRev
+ AND QWI03.ProcessNum = '03'
+INNER JOIN dbo.QuoteWorkInt AS QWI04
+ ON QL.QuoteType = QWI04.QuoteType
+ AND QL.CodQuote = QWI04.CodQuote
+ AND QL.QuoteRev = QWI04.QuoteRev
+ AND QWI04.ProcessNum = '04'
+INNER JOIN dbo.PlantsDet AS PD
+ ON PD.CodPlant = pQP.CodPlant
+GO
+PRINT N'Creating [dbo].[v_selDateStdCost]...';
+
+
+GO
+CREATE VIEW dbo.v_selDateStdCost
+AS
+SELECT DISTINCT CONVERT(date, LEFT(CodQuote, 6)) AS label, LEFT(CodQuote, 6) AS value
+FROM dbo.QuoteFull_C
+GO
+PRINT N'Creating [dbo].[v_selPackage]...';
+
+
+GO
+CREATE VIEW dbo.v_selPackage
+AS
+SELECT CodPackag AS value, PackagDesc AS label
+FROM dbo.PackagDet
+GO
+PRINT N'Creating [dbo].[v_selPlant]...';
+
+
+GO
+CREATE VIEW dbo.v_selPlant
+AS
+SELECT CodPlant AS value, Descript AS label
+FROM dbo.PlantsDet
+GO
+PRINT N'Creating [dbo].[v_StdCostList]...';
+
+
+GO
+CREATE VIEW dbo.v_StdCostList
+AS
+SELECT LEFT(CodQuote, 6) AS DataRif, Class01, Class02, CodItem, RawMat, CodPlant, CodDiesGroup, CodPackag, batchQty, CodInco, RawMatFullCost, FVC, FullCost
+FROM dbo.QuoteFull_C
+GO
+PRINT N'Creating [dbo].[v_listinoArticoli]...';
+
+
+GO
+CREATE VIEW dbo.v_listinoArticoli
+AS
+SELECT DISTINCT
+ GETDATE() AS DataRif, 'C' AS QuoteType, '' AS CodClient, dbo.DiesDet.CodItem, CASE WHEN dbo.ProductionLog.RawMat = '' THEN '6060' ELSE dbo.ProductionLog.RawMat END AS RawMat,
+ 2.00 + dbo.RawMatDet.ExtraMatCost AS RawMatCost, 1000 AS batchQty, 'EXW' AS CodInco
+FROM dbo.DiesDet INNER JOIN
+ dbo.ProductionLog ON dbo.DiesDet.CodDies = dbo.ProductionLog.CodDies INNER JOIN
+ dbo.RawMatDet ON dbo.ProductionLog.RawMat = dbo.RawMatDet.RawMat
+GO
+PRINT N'Creating [dbo].[v_MarginReport]...';
+
+
+GO
+
+
+CREATE VIEW [dbo].[v_MarginReport]
+AS
+SELECT Vers, CodClient, CodItem, RawMat, BatchQty, CodInco, KeyAM, CodDiesGroup, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED,
+ QuotaMan, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01,
+ RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, FVC + RawMatFullCost AS P_FVC,
+ FC4UG01 + OH4UG01 AS CPS, FC4UG01 + OH4UG01 + FVC + RawMatFullCost AS P_CPS, FC4UG04 + FVC + RawMatFullCost AS P_FC4UG04, FVC + FC4UG01 + OH4UG01 + FC4UG04 AS FullCost,
+ FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost AS P_FullCost, Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS MinPrice, Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost)
+ AS P_MinPrice, PriceOff - (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS NetMar, CASE WHEN (FC4UG01 + OH4UG01 + FC4UG04) = 0 THEN 0 ELSE (PriceOff - FVC) / (FC4UG01 + OH4UG01 + FC4UG04)
+ END AS FCShield, CASE WHEN PWeight = 0 THEN 0 ELSE (PRMWeight - PTare) * (PriceOff + RawMatFullCost) / PWeight END AS PckSur, valid, errorScore, OrdDate, OrdNum, OrdRow, OrdPrice,
+ PriceOff AS OrdTrasf, OrdQty AS OrdQty
+FROM dbo.QuoteFull_R
+GO
+PRINT N'Creating [dbo].[v_MarginReportStats]...';
+
+
+GO
+CREATE VIEW dbo.v_MarginReportStats
+AS
+SELECT MIN(OrdDate) AS FromDate, MAX(OrdDate) AS ToDate, COUNT(*) AS NumOrderRows, COUNT(DISTINCT OrdNum) AS NumOrders, COUNT(DISTINCT CodItem) AS NumItem, COUNT(DISTINCT CodClient)
+ AS NumClients
+FROM dbo.QuoteFull_R
+GO
+PRINT N'Creating [dbo].[v_MarginReportStatsNewData]...';
+
+
+GO
+CREATE VIEW dbo.[v_MarginReportStatsNewData]
+AS
+SELECT MIN(OrdDate) AS FromDate, MAX(OrdDate) AS ToDate, COUNT(*) AS NumOrderRows, COUNT(DISTINCT OrdNum) AS NumOrders, COUNT(DISTINCT CodItem) AS NumItem, COUNT(DISTINCT CodClient)
+ AS NumClients
+FROM ext.OrdersHistRaw
+GO
+PRINT N'Creating [dbo].[stp_packageCost]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2014.01.15
+-- Description: stp_packageCost
+-- SOSTITUITA da query + funzione
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_packageCost]
+(
+ @CodItem NVARCHAR(50) = '',
+ @CodClient NVARCHAR(50) = '',
+ @CodPackag NVARCHAR(50) = '',
+ @PDesc NVARCHAR(50) OUTPUT,
+ @RMWeight DECIMAL(9,4) OUTPUT,
+ @Weight DECIMAL(9,4) OUTPUT,
+ @Tare DECIMAL(9,4) OUTPUT,
+ @PackCost DECIMAL(9,6) OUTPUT,
+ @TareStRat DECIMAL(9,4) OUTPUT
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ DECLARE @trovati INT = 0,
+ @RMCost DECIMAL(9,3)
+
+ -- calcolo RMCost e RMWeight da tab PackageDet
+ SELECT @RMCost = RMCost, @RMWeight = RMWeight, @PDesc= PackagDesc
+ FROM PackagDet
+ WHERE CodPackag = @CodPackag
+
+ -- Calcolo peso e tara da selezione gerarchica
+ SELECT @trovati = COUNT(*)
+ FROM Package2ItemClient WHERE CodItem = @CodItem AND CodClient = @CodClient AND CodPackag = @CodPackag
+
+ IF(@trovati > 0)
+ -- primo tentativo: cerco il package dato SIA Cliente che Item che Package
+ BEGIN
+ SELECT TOP 1 @Weight = [Weight], @Tare = Tare
+ FROM Package2ItemClient WHERE CodItem = @CodItem AND CodClient = @CodClient AND CodPackag = @CodPackag
+ ORDER BY TotQta DESC
+ END
+ ELSE
+ -- secondo tentativo: se non lo trovo cerco per SOLO ITEM e package
+ BEGIN
+ SELECT @trovati = COUNT(*) FROM Package2Item WHERE CodItem = @CodItem AND CodPackag = @CodPackag
+ IF(@trovati > 0)
+ BEGIN
+ SELECT TOP 1 @Weight = [Weight], @Tare = Tare
+ FROM Package2Item WHERE CodItem = @CodItem AND CodPackag = @CodPackag
+ ORDER BY TotQta DESC
+ END
+ ELSE
+ BEGIN
+ SELECT @Weight = [Weight], @Tare = Tare
+ FROM Package2 WHERE CodPackag = @CodPackag
+ END
+ END
+
+
+ -- faccio ultimi calcoli!
+ SELECT @PackCost = @RMCost / @Weight, @TareStRat = (@RMWeight - @Tare) / @Weight
+
+END
+GO
+PRINT N'Creating [dbo].[stp_esplodiVocab]...';
+
+
+GO
+-- =============================================
+-- Author: S.E.Locatelli
+-- Create date: 2011-10-24
+-- Description:
+-- =============================================
+create PROCEDURE stp_esplodiVocab
+AS
+BEGIN
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ -- svuoto vocabolario
+ DELETE FROM ZZZ_VocabExpl
+
+ -- carico termini ITA
+ INSERT INTO ZZZ_VocabExpl(Lemma,IT)
+ SELECT Lemma, Traduzione AS IT
+ FROM Vocabolario
+ WHERE Lingua = 'IT'
+
+ -- update termini ENG
+ UPDATE ZZZ_VocabExpl
+ SET EN=ISNULL(v.Traduzione,ve.EN)
+ FROM ZZZ_VocabExpl ve INNER JOIN Vocabolario v ON ve.Lemma=v.Lemma
+ WHERE v.Lingua='EN'
+
+ -- update termini BRA
+ UPDATE ZZZ_VocabExpl
+ SET BR=ISNULL(v.Traduzione,ve.BR)
+ FROM ZZZ_VocabExpl ve INNER JOIN Vocabolario v ON ve.Lemma=v.Lemma
+ WHERE v.Lingua='BR'
+
+ -- update termini CHN
+ UPDATE ZZZ_VocabExpl
+ SET CN=ISNULL(v.Traduzione,ve.CN)
+ FROM ZZZ_VocabExpl ve INNER JOIN Vocabolario v ON ve.Lemma=v.Lemma
+ WHERE v.Lingua='CN'
+
+ -- update termini CHN
+ UPDATE ZZZ_VocabExpl
+ SET MX=ISNULL(v.Traduzione,ve.MX)
+ FROM ZZZ_VocabExpl ve INNER JOIN Vocabolario v ON ve.Lemma=v.Lemma
+ WHERE v.Lingua='MX'
+
+ -- update termini CHN
+ UPDATE ZZZ_VocabExpl
+ SET PL=ISNULL(v.Traduzione,ve.PL)
+ FROM ZZZ_VocabExpl ve INNER JOIN Vocabolario v ON ve.Lemma=v.Lemma
+ WHERE v.Lingua='PL'
+
+
+END
+GO
+PRINT N'Creating [dbo].[stp_VSCli_SearchLike]...';
+
+
+GO
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2014.02.11
+-- Description: Ricerca clienti
+-- =============================================
+CREATE PROCEDURE [dbo].stp_VSCli_SearchLike
+(
+ @value NVARCHAR(50)
+)
+
+AS
+SET NOCOUNT ON;
+
+SELECT value
+ ,label
+FROM v_selClient
+WHERE (value LIKE '%' + @value + '%')
+ OR (label LIKE '%' + @value + '%')
+GO
+PRINT N'Creating [dbo].[stp_QL_update_07_02]...';
+
+
+GO
+
+
+
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.01.22
+-- Description: aggiorna le tabelle QuoteList con i dati selezionati dalla TabProdSc
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_update_07_02]
+(
+ @QuoteType CHAR(1) = 'Q',
+ @CodQuote BIGINT = 0,
+ @QuoteRev INT = 0
+)
+AS
+BEGIN
+
+ SET NOCOUNT ON;
+
+ -- dichiaro valori da recuperare
+ DECLARE @strTemp NVARCHAR(50) = '' --stringa temporanea x variabili "locali"
+
+ DECLARE @valid BIT
+ DECLARE @CodDiesGroup NVARCHAR(50)
+ DECLARE @CodPlant NVARCHAR(50)
+ DECLARE @CodPlantFix NVARCHAR(50) = ''
+ DECLARE @HoleNum INT
+ -- ITEM
+ DECLARE @CodItem NVARCHAR(50) = '' --cod item
+ DECLARE @ItemDescr NVARCHAR(50) = '' -- descrizione item
+ DECLARE @CodifProfilo NVARCHAR(50) = '' -- Cod. Profilo
+ DECLARE @ClasseMerc NVARCHAR(50) = ''
+ DECLARE @CodClientAssoc NVARCHAR(50) = ''
+
+ DECLARE @KeyAM NVARCHAR(50) = ''
+ DECLARE @KeyAMI NVARCHAR(50) = ''
+ DECLARE @KeyAMIL NVARCHAR(50) = ''
+ DECLARE @NumSMED INT = 0 -- numero cambi
+ DECLARE @KgTeo DECIMAL(18, 6) = 0 -- kg totali
+ DECLARE @RawMat NVARCHAR(50)
+ DECLARE @ProdTeo DECIMAL(18,6)
+ DECLARE @ScTec DECIMAL(18,6)
+ DECLARE @BatchQty INT
+ DECLARE @MAC_SC DECIMAL(18,6) -- Messa a cento scarto cesoia
+ DECLARE @MAC_ST DECIMAL(18,6) -- Messa a cento scarto tecnico
+ DECLARE @MAC_IN DECIMAL(18,6) -- Messa a cento difettosità all'incestatura
+ DECLARE @MAC_IM DECIMAL(18,6) -- Messa a cento difettosità all'imballo
+ DECLARE @SSR DECIMAL(9,6) -- percentuale vendita rottame
+ DECLARE @DiesPrice DECIMAL(9,3) -- prezzo matrice
+ DECLARE @DiesEOLife DECIMAL(9,2) -- durata matrice
+ DECLARE @DiesExpLife DECIMAL(9,2) -- durata matrice
+ DECLARE @DiesPriceLife DECIMAL(18,6) -- Price/Life matrice
+ DECLARE @OCF01 DECIMAL(18,6) = 0 -- altri costi di fase 01
+ DECLARE @VCF01 DECIMAL(18,6) = 0 -- costi variabili di fase 01
+ DECLARE @VCF04 DECIMAL(18,6) = 0 -- costi variabili di fase 04
+ DECLARE @SellCostF01 DECIMAL(18,6) = 0 -- costo vendita fase 01
+ DECLARE @SellCostF04 DECIMAL(18,6) = 0 -- costo vendita fase 04
+ DECLARE @RefCostF01 DECIMAL(18,6) = 0 -- costo rifusione fase 01
+ DECLARE @RefCostF04 DECIMAL(18,6) = 0 -- costo rifusione fase 04
+ -- IMBALLO
+ DECLARE @CodPackag NVARCHAR(50) = '0' -- codice dell'imballo
+ DECLARE @CodClient NVARCHAR(50) = '' -- codice cliente
+ DECLARE @NumImb DECIMAL(9,6) = 0 -- num imballatori
+ DECLARE @PkgDesc NVARCHAR(50) = '' -- descrizione imballo
+ DECLARE @PRMWeight DECIMAL(9,4) = 0 -- peso dell'imballo
+ DECLARE @PWeight DECIMAL(9,4) = 0 -- peso del pacco
+ DECLARE @PTare DECIMAL(9,4) = 0 -- media delal tara di imballo dichiarata
+ DECLARE @PCost DECIMAL(9,6) = 0 -- costo unitario dell'imballo (al kg)
+ DECLARE @PTareStRatio DECIMAL(9,4) = 0 -- coefficiente di recupero tara/prodotto
+ DECLARE @PTotQta DECIMAL(18,3) = 0 -- Qta Kg Tot Imballati
+ DECLARE @PDurata DECIMAL(18,6) = 0 -- Tempo d'imballaggio
+ DECLARE @PLiv NVARCHAR(50) = '' -- Livello Search dati Imballo
+ DECLARE @PLivDett NVARCHAR(50) = '' -- Key Livello Search Dati Imballo
+ -- TRASPORTI
+ DECLARE @TranspZone NVARCHAR(50) = '' -- codice ZONA
+ DECLARE @TranspCost DECIMAL(9,6) -- costo di trasporto
+ DECLARE @HasTC INT
+
+ -- PROVVIGIONI
+ DECLARE @Provvig DECIMAL(9,6) -- provvigione agente
+
+ -- default: validità è true!
+ SET @valid = 1
+
+ -- =================================================
+ -- CREAZIONE TEMP TABLE
+ -- =================================================
+
+ -- elimino e ricreo #QuoteParam temp table...
+ IF OBJECT_ID('tempdb..#QuoteParam') IS NOT NULL
+ DROP TABLE #QuoteParam
+
+ CREATE TABLE #QuoteParam
+ (
+ [QuoteType] [char](1) NOT NULL,
+ [CodQuote] [bigint] NOT NULL,
+ [QuoteRev] [int] NOT NULL,
+ [NumP] [int] IDENTITY(1,1) NOT NULL,
+ [ProcessNum] [nvarchar](50) NOT NULL,
+ [Descr] [nvarchar](50) NOT NULL,
+ [Parameter] [nvarchar](100) NOT NULL,
+ --PRIMARY KEY
+ -- ( [NumP] ASC, [QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC ) WITH (PAD_INDEX = ON, FILLFACTOR = 90 )
+ )
+
+ -- elimino e ricreo #QuoteParam temp table...
+ IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL
+ DROP TABLE #QuoteWorkInt
+
+ CREATE TABLE #QuoteWorkInt
+ (
+ [QuoteType] [char](1) NOT NULL,
+ [CodQuote] [bigint] NOT NULL,
+ [QuoteRev] [int] NOT NULL,
+ [NumWI] [int] IDENTITY(1,1) NOT NULL,
+ [ProcessNum] [nvarchar](50) NOT NULL,
+ [CodPlant] [nvarchar](50) NOT NULL,
+ [Class01] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class02] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class03] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class04] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class05] [nvarchar](50) NOT NULL DEFAULT (''),
+ [NetProd] [decimal](9, 3) NOT NULL DEFAULT ((0)),
+ [WSR] [decimal](9, 8) NOT NULL DEFAULT ((0)),
+ [MSR] [decimal](9, 8) NOT NULL DEFAULT ((0)),
+ [DSR] [decimal](9, 8) NOT NULL DEFAULT ((0)),
+ [FC4UG] [decimal](9, 6) NOT NULL DEFAULT ((0)),
+ [VC4UG] [decimal](9, 6) NOT NULL DEFAULT ((0)),
+ [OH4UG] [decimal](9, 6) NOT NULL DEFAULT ((0)),
+ [SC4UG] [decimal](9, 6) NOT NULL DEFAULT ((0)),
+ [WYR] AS ((1)-[WSR]),
+ [MYR] AS ((1)-[MSR]),
+ [DYR] AS ((1)-[DSR]),
+ [WCR] AS ((1)/((1)-[WSR])),
+ [MCR] AS ((1)/((1)-[MSR])),
+ [DCR] AS ((1)/((1)-[DSR])),
+ [valid] [bit] NOT NULL DEFAULT((1)),
+ )
+
+ -- elimino e ricreo #QuoteParam temp table...
+ IF OBJECT_ID('tempdb..#QuoteOC') IS NOT NULL
+ DROP TABLE #QuoteOC
+
+ CREATE TABLE #QuoteOC
+ (
+ [QuoteType] [char](1) NOT NULL,
+ [CodQuote] [bigint] NOT NULL,
+ [QuoteRev] [int] NOT NULL,
+ [NumEx] [int] IDENTITY(1,1) NOT NULL,
+ [ProcessNum] [nvarchar](50) NOT NULL,
+ [CodPlant] [nvarchar](50) NOT NULL,
+ [Class01] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class02] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class03] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class04] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class05] [nvarchar](50) NOT NULL DEFAULT (''),
+ [TotQty] [decimal](18, 6) NOT NULL DEFAULT ((1)),
+ [TotCost] [decimal](18, 6) NOT NULL DEFAULT ((0)),
+ [Quota] [decimal](18, 6) NOT NULL DEFAULT ((1)),
+ [C4UG] AS (([TotCost]*[Quota])/[TotQty]),
+ [valid] [bit] NOT NULL DEFAULT ((1))
+ )
+
+ -- ===================================
+ -- INIZIO TRANSAZIONE
+ -- ===================================
+ SET XACT_ABORT ON;
+ BEGIN TRAN
+
+ ---------------------------------------
+ -- svuotamento iniziale
+ ---------------------------------------
+
+ -- elimino quote PARAMETRI!
+ DELETE FROM dbo.QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- elimino lavorazioni ESTERNE!
+ DELETE FROM dbo.QuoteWorkExt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- elimino lavorazioni INTERNE
+ DELETE FROM dbo.QuoteWorkInt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- elimino OtherCosts
+ DELETE FROM dbo.QuoteOC
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- se ci sono eccezioni nella tab dell'anagrafico articoli imposto il codPlant desiderato
+ SET @CodPlantFix = ISNULL ( ( SELECT id.CodPlant FROM dbo.ItemDet id
+ INNER JOIN dbo.QuoteList ql ON id.CodItem = ql.CodItem
+ WHERE ql.QuoteType = @QuoteType
+ AND ql.CodQuote = @CodQuote
+ AND ql.QuoteRev = @QuoteRev ), '' )
+
+ -- recupero da dati dell'offerta il valore del cliente
+ SELECT @CodClient = CodClient
+ FROM dbo.QuoteList
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- recupero dati!!
+ SELECT TOP 1 @CodItem = ql.CodItem
+ , @CodDiesGroup = tps.CodDiesGroup
+ , @CodPlant = CASE WHEN @CodPlantFix <> '' THEN @CodPlantFix ELSE tps.CodPlant END
+ , @HoleNum = tps.HoleNum
+ , @KeyAM = ql.KeyAM
+ , @KeyAMI = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000')
+ , @KeyAMIL = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + '-' + CAST(ISNULL(tps.HoleNum,0) AS NVARCHAR(10))
+ , @ProdTeo = tps.ProdTeo
+ , @ScTec = tps.ScTec
+ , @KgTeo = tps.KgTeo
+ , @NumSMED = tps.NumSMED
+ , @RawMat = ql.RawMat
+ , @BatchQty = ql.BatchQty
+ , @ItemDescr = i.ItemDescr
+ , @CodifProfilo = i.Class01
+ , @ClasseMerc = i.Class02
+ , @CodClientAssoc = i.Class03
+
+ FROM dbo.QuoteList ql
+ INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM
+ INNER JOIN dbo.ItemDet i ON ql.CodItem = i.CodItem
+ WHERE ql.QuoteType = @QuoteType
+ AND ql.CodQuote = @CodQuote
+ AND ql.QuoteRev = @QuoteRev
+ ORDER BY tps.KgTeo DESC
+
+ -- =================================================================================
+ -- recupero dall'offerta il valore del PACKAGE/IMBALLO scelto e i dati relativi
+ -- Secondo la logica Client-Item-Package ( vedi funzione )
+ -- =================================================================================
+ -- SET @CodPackag = ( SELECT dbo.f_getCodPackag( @CodItem , @CodClient ) )
+ -- attenzione è una function tabellare
+ SELECT @CodPackag = CodPackag, @PTotQta = TotQta, @PWeight = [Weight], @PTare = Tare,
+ @NumImb = NumImb, @PDurata = Durata, @PLiv = LivPackag , @PLivDett = LivPackagDet
+ FROM f_getDataCodPackag ( @CodItem, @CodClient)
+
+ -- e aggiorno il CodPackage in QuoteRM
+ UPDATE dbo.QuoteRM
+ SET CodPackag = @CodPackag
+ FROM dbo.QuoteRM
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'ItemDescr', @ItemDescr)
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'CodifProfilo', @CodifProfilo
+ --FROM dbo.ItemDet
+ --WHERE CodItem = @CodItem
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'ClasseMerc', @ClasseMerc
+ --FROM dbo.ItemDet
+ --WHERE CodItem = @CodItem
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'CodClientAssoc', @CodClientAssoc
+ --FROM dbo.ItemDet
+ --WHERE CodItem = @CodItem
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'ClientNameAssoc', ClientDet.ClientName
+ FROM dbo.ClientDet WHERE ClientDet.CodClient = @CodClientAssoc
+ --FROM dbo.ItemDet
+ --INNER JOIN dbo.ClientDet ON ItemDet.Class03 = ClientDet.CodClient
+ --WHERE CodItem = @CodItem
+
+ -- INFORMAZIONI su MATRICE
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'CodDiesGroup', @CodDiesGroup )
+
+ SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 1)
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'TipoDies', @strTemp)
+
+ SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 2)
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'DiamDies', @strTemp)
+
+ SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 3)
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'HoleNumDies', @strTemp)
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesInList', COUNT(CodDies)
+ FROM dbo.DiesDet
+ WHERE CodDiesGroup = @CodDiesGroup AND CodItem = @CodItem
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesExaust', COUNT(CodDies)
+ FROM dbo.DiesDet
+ WHERE CodDiesGroup = @CodDiesGroup AND Active = 0
+
+ -- inserisco parametri calcolati x lavorazione estruzione
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodPlant' , @CodPlant )
+ ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAM' , @KeyAM )
+ ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAMIL' , @KeyAMIL )
+ ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'NumSMED' , CONVERT(NVARCHAR(50) , @NumSMED ) )
+ ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KgTeo' , CONVERT(NVARCHAR(50) , @KgTeo ) )
+
+ --INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ --SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAM', @KeyAM
+ --INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ --SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAMIL', @KeyAMIL
+ --INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ --SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumSMED', @NumSMED
+ --INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ --SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KgTeo', @KgTeo
+
+ -- inserisco lavorazione estrusione!
+ INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, NetProd, WSR)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @ProdTeo, @ScTec
+
+ INSERT INTO #QuoteParam (QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KgProdotti', SUM(KgTeo)
+ FROM dbo.QuoteList ql
+ INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM
+ WHERE ql.QuoteType = @QuoteType
+ AND ql.CodQuote = @CodQuote
+ AND ql.QuoteRev = @QuoteRev
+
+ -- inserisco dati mancanti di MSR/CSR (scarto cesoia x estrusione) - DSR è NULLO x estrusione!
+ UPDATE #QuoteWorkInt
+ SET MSR = rmd.CSR
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.RawMatDet rmd ON qwi.Class03 = rmd.RawMat
+
+ -- calcolo i costi legati alla fase estrusione!
+ UPDATE #QuoteWorkInt
+ SET FC4UG = (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , VC4UG = (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , OH4UG = (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , SC4UG = cp.SC / ql.BatchQty
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum
+ INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev
+ WHERE qwi.ProcessNum = '01'
+
+ -- inserisco lavorazione incestatura!
+ INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '02', @CodPlant, @KeyAM, @KeyAMI, @RawMat
+
+ -- inserisco dati mancanti di DSR x incestatura come 1 - OUT/IN
+ UPDATE #QuoteWorkInt
+ SET DSR = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6))
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.TabDifett td ON qwi.Class02 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum
+ WHERE qwi.ProcessNum = '02' -- solo incestatura
+
+ -- inserisco lavorazione FORNO!
+ INSERT INTO #QuoteWorkInt(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '03', @CodPlant, @KeyAM, @KeyAMI, @RawMat
+
+ -- inserisco lavorazione imballo!
+ INSERT INTO #QuoteWorkInt(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @CodItem, @KeyAMI
+
+ -- calcolo produttività netta nella fase imballo
+-- UPDATE qwi
+-- SET NetProd = CASE ti.Durata WHEN 0 THEN 0 ELSE ti.TotOut / ti.Durata END
+-- FROM #QuoteWorkInt qwi
+-- INNER JOIN dbo.TabImbArt ti ON qwi.Class04 = ti.KeyA
+-- WHERE qwi.ProcessNum = '04' -- solo imballo
+
+ UPDATE qwi
+ SET NetProd = CASE @PDurata WHEN 0 THEN 0 ELSE @PTotQta / @PDurata END
+ FROM #QuoteWorkInt AS qwi
+-- INNER JOIN dbo.TabImbArt ti ON qwi.Class04 = ti.KeyA
+ WHERE qwi.ProcessNum = '04' -- solo imballo
+
+ -- ADESSO LO FACCIO GIA' NELLA FUNZIONE DI RECUPERO DATI PACKAGE f_getDataCodPackag
+ ---- Se Produttività netta ancora = 0 la leggo nella tabella Gruppo Imballo ( Packaging )
+ --IF ( SELECT NetProd FROM #QuoteWorkInt WHERE ProcessNum = '04' ) = 0
+ -- BEGIN
+ -- UPDATE qwi
+ -- SET NetProd = CASE ti.Durata WHEN 0 THEN 0 ELSE ti.TotOut / ti.Durata END
+ -- FROM #QuoteWorkInt qwi
+ -- INNER JOIN dbo.TabImbGrp ti ON ti.CodPackag = @CodPackag -- packag generico dell' offerta
+ -- WHERE qwi.ProcessNum = '04' -- solo imballo
+ -- END
+
+ -- salvo numero imballatori
+ --SELECT @NumImb = ISNULL(NumImb,0)
+ --FROM dbo.TabImbArt
+ --WHERE KeyA = @CodItem
+
+ -- parametro num imballatori
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'QuotaMan', @NumImb
+
+ -- parametro Livello search package/imballo
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'LivPackage', @PLiv
+
+ -- parametro Livello search package/imballo
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'LivPackageDett', @PLivDett
+
+ -- calcolo i costi legati alla fase di imballo!
+ UPDATE #QuoteWorkInt
+ SET FC4UG = ( ( cp.FC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd
+ , VC4UG = ( ( cp.VC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd
+ , OH4UG = ( ( cp.OH * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd
+ , SC4UG = cp.SC / ql.BatchQty
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum
+ INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev
+ WHERE qwi.ProcessNum = '04' -- solo imballo
+
+ -- inserisco dati mancanti di DSR x imballo come 1 - OUT/IN
+ UPDATE qwi
+ SET DSR = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6))
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.TabDifett td ON qwi.Class05 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum
+ WHERE qwi.ProcessNum = '04' -- solo imballo
+
+ -- recupero le MAC fase 01
+ SELECT @MAC_SC = MCR
+ ,@MAC_ST = WCR
+ FROM #QuoteWorkInt
+ WHERE ProcessNum = '01'
+
+ -- recupero le MAC fase 02
+ SELECT @MAC_IN = DCR
+ FROM #QuoteWorkInt
+ WHERE ProcessNum = '02'
+
+ -- recupero le MAC fase 04
+ SELECT @MAC_IM = DCR
+ FROM #QuoteWorkInt
+ WHERE ProcessNum = '04'
+
+ -- calcolo percentuale vendita rottame
+ SELECT @SSR = SSR
+ FROM dbo.RawMatDet
+ WHERE RawMat = @RawMat
+
+
+ -- NOTA : la transazione posso probabilmente iniziarla qui visto che è il
+ -- primo Update/insert/delete su tabelle non temporanee
+
+ -- update rese RawMat!
+ UPDATE dbo.QuoteRM
+ SET FCR = @MAC_SC * @MAC_ST * @MAC_IN * @MAC_IM
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND RawMat = @RawMat
+
+ -- inserisco i costi delle utilities in QuoteOC
+
+ -- inserisco altri costi x lavorazione estrusione! GAS ed EE
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, CodUtil, @RawMat, @BatchQty, UnitCost * @BatchQty, 1
+ FROM dbo.Utilities
+ WHERE CodPlant = @CodPlant
+
+
+ /*************************************************************
+ * MATRICE
+ *
+ * calcolo prezzo e durata matrice con procedura a 5 step...
+ * A) media ponderata prezzo ed ExpLife da DiesDet selezionando x CodItem + CodDiesGroup
+ * B) EOLLife x media ponderata su DiesDet dove Active = 0 e vita cmq superiore 5000 KG ( escludendo rotture accidentali )
+ * C) SE prezzo = 0 --> prendo prezzo da DiesGroupDet selezionando x CodDiesGroup
+ * D) Se EOL = 0 --> prendo ExpLife della singola matrice, se è 0 --> prendo EOLLife da DiesGroupDet selezionando x CodDiesGroup
+ * E) Calcolo Price / Life
+ *
+ *************************************************************/
+
+ -- (A) da DiesDet
+ SELECT @DiesPrice = SUM(ISNULL(Price, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)),
+ @DiesExpLife = SUM(ISNULL(ExpLife, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1))
+ FROM dbo.DiesDet
+ WHERE CodItem = @CodItem
+ AND CodDiesGroup = @CodDiesGroup
+ GROUP BY CodItem, CodDiesGroup
+
+ -- (B) da DiesDet
+ SELECT @DiesEOLife = AVG(ISNULL(ActLife, 0))
+ FROM dbo.DiesDet
+ WHERE CodItem = @CodItem
+ AND CodDiesGroup = @CodDiesGroup
+ AND Active = 0 -- solo matrici rottamate
+ AND ActLife > 5000 -- solo se hanno Life > 5000 Kg ( non rotture accidentali )
+ GROUP BY CodItem, CodDiesGroup
+
+ SET @DiesPrice = ISNULL(@DiesPrice,0)
+ SET @DiesExpLife = ISNULL(@DiesExpLife,0)
+ SET @DiesEOLife = ISNULL(@DiesEOLife,0)
+
+ -- (C) verifico se prezzo è OK...
+ IF (@DiesPrice = 0)
+ BEGIN
+ -- calcolo da DiesGroupDet
+ SELECT @DiesPrice = ISNULL(Price, 0)
+ FROM dbo.DiesGroupDet
+ WHERE CodDiesGroup = @CodDiesGroup
+ END
+
+ -- (D) verifico se vita è OK...
+ IF (@DiesEOLife = 0)
+ BEGIN
+ -- uso exp life articolo...
+ SET @DiesEOLife = @DiesExpLife
+ END
+ -- controllo che non sia nulla/vuota la durata...
+ IF (@DiesEOLife = 0)
+ BEGIN
+ SELECT @DiesEOLife = CASE WHEN EOLLife > 0 THEN EOLLife ELSE ExpLife END
+ FROM DiesGroupDet
+ WHERE CodDiesGroup = @CodDiesGroup
+ END
+
+ -- controllo che non sia nulla/vuota la durata...
+ IF ( @DiesEOLife = 0)
+ BEGIN
+ SET @DiesEOLife = 1 -- metto 1 kg che è sbagliato e mi fa esplodere prezzo matrice ma non blocca calcoli
+ END
+
+ -- (E) Calcolo price/life!
+ SET @DiesPriceLife = @DiesPrice / @DiesEOLife
+
+ -- (D) verifico se vita è OK...
+ IF (@DiesPriceLife = 0)
+ BEGIN
+ SET @DiesPriceLife = 1
+ SET @valid = 0
+ END
+
+ -- inserisco costi per Matrice: costo e durata da matrice, se non ci sono da gruppo, (anche solo uno dei due, ovviamente più facile trovare durata x matrice...)
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'MATRICE', @RawMat, @BatchQty, @DiesPriceLife * @BatchQty, 1, @valid
+
+
+ -- inserisco parametri calcolati x matrice
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesPrice', @DiesPrice
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesExpLife', @DiesExpLife
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesEOLife', @DiesEOLife
+
+ /*************************************************************
+ * VENDITA ROTTAME
+ *
+ * calcolo COSTO DI VENDITA PER LE 2 FASI ESTRUSIONE 01 ED IMBALLO 04
+ * - calcolo costi variabili fase 01 / 04
+ * - calcolo costo di vendita x fase 01 / 04
+ *************************************************************/
+
+ SELECT @OCF01 = SUM(ISNULL(C4UG,0))
+ FROM #QuoteOC
+
+ SELECT @VCF01 = @OCF01 + VC4UG
+ FROM #QuoteWorkInt
+ WHERE ProcessNum = '01'
+
+ SELECT @VCF04 = @OCF01 + SUM(VC4UG)
+ FROM #QuoteWorkInt
+
+ SELECT @SellCostF01 = ((@MAC_ST * @MAC_SC * @MAC_IN) - 1) * (q.RawMatCost + q.RawMatExtraCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01) -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 01)
+ , @RefCostF01 = -- ( (A - B) / 100 - C )
+ (
+ -- (A) = (costo pieno di acquisto + costi fase 1) * MAC * 100 (IN CENTESIMI)
+ ((q.RawMatCost + q.RawMatExtraCost + @VCF01) * (@MAC_ST * @MAC_SC * @MAC_IN * 100))
+ -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione))
+ - ((@MAC_ST * @MAC_SC * @MAC_IN * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 - rmd.ProcCost)
+ ) / 100 -- divido per 100 finale
+ -- (C) = sottraggo costo pieno alluminio
+ - (q.RawMatCost + q.RawMatExtraCost + @VCF01)
+ FROM dbo.RawMatDet rmd
+ INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+ AND q.RawMat = @RawMat
+
+ SELECT @SellCostF04 = ((@MAC_IM) - 1) * (q.RawMatCost + q.RawMatExtraCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01 + @VCF04) -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 04)
+ , @RefCostF04 = -- ( (A - B) / 100 - C )
+ (
+ -- (A) = (costo pieno di acquisto + costi variabili fase 1 e 4) * MAC * 100 (IN CENTESIMI)
+ ((q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) * (@MAC_IM * 100))
+ -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione))
+ - ((@MAC_IM * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04 - rmd.ProcCost)
+ ) / 100 -- divido per 100 finale
+ -- (C) = sottraggo costo pieno alluminio
+ - (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04)
+
+ -- NOTA: usiamo (q.RawMatCost + q.RawMatExtraCost + @VCF01) e non (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @RefCostF01) perché la differenza è minimale, si tratta di 10/20 PPM...
+
+ FROM dbo.RawMatDet rmd
+ INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+ AND q.RawMat = @RawMat
+
+ -- inserisco costi per VENDITA
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF01 * @BatchQty, @SSR
+
+ -- inserisco costi per ROTTAME
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF01 * @BatchQty, 1 - @SSR
+
+ -- inserisco costi per VENDITA
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF04 * @BatchQty, @SSR
+
+ -- inserisco costi per ROTTAME
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF04 * @BatchQty, 1 - @SSR
+
+ -- calcolo Package Cost e RMWeight da tab PackageDet
+ -- EXEC stp_packageCost @CodItem, @CodClient, @CodPackag, @PDesc=@PkgDesc OUTPUT, @RMWeight=@PRMWeight OUTPUT, @Weight=@PWeight OUTPUT, @Tare=@PTare OUTPUT, @PackCost=@PCost OUTPUT, @TareStRat=@PTareStRatio OUTPUT
+ -- stored sostituita perchè la maggior parte dei calcoli li ho già fatti
+ SELECT @PCost = RMCost / @PWeight
+ , @PRMWeight = RMWeight
+ , @PkgDesc = PackagDesc
+ , @PTareStRatio = ( RMWeight - @PTare) / @PWeight
+ FROM dbo.PackagDet
+ WHERE CodPackag = @CodPackag
+
+ -- inserisco costi per IMBALLO
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'IMBALLO', @RawMat, @BatchQty, @PCost * @BatchQty, 1
+
+
+ -- inserisco parametri calcolati x imballaggio
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PkgDesc', @PkgDesc
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PRMWeight', @PRMWeight
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PWeight', @PWeight
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PTare', @PTare
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'TareStRatio', @PTareStRatio
+
+
+ ---------------------------------------------
+ -- inserisco costi per TRASPORTI
+ ---------------------------------------------
+ -- recupero zona da cliente...
+ SELECT @TranspZone = TranspZone
+ FROM dbo.ClientDet
+ WHERE CodClient = @CodClient
+
+ -- recupero tipo di trasporto
+ SELECT @HasTC = ISNULL(i.HasTC, 0)
+ FROM dbo.QuoteList q INNER JOIN Incoterms i ON q.CodInco = i.CodInco
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+
+ -- recupero costi trasporto
+ SELECT @TranspCost = TranspCost
+ FROM dbo.TranspCostDet
+ WHERE TranspZone = @TranspZone
+
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'TRASPORTI', @RawMat, @BatchQty, @HasTC * @TranspCost * @BatchQty, 1
+
+
+ ---------------------------------------------
+ -- inserisco costi per PROVVIGIONI
+ ---------------------------------------------
+ SELECT @Provvig = ISNULL(a.QuotaProvvAg, 0)
+ FROM dbo.AgentsDet a
+ INNER JOIN ClientDet c ON a.CodAg = c.CodAg
+ INNER JOIN QuoteList q ON q.CodClient = c.CodClient
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+
+ -- inserisco costi per PROVVIGIONI
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'PROVVIGIONI', @RawMat, @BatchQty, @Provvig * @BatchQty, 1
+
+ /* ==================================================
+ CARICO TABELLE EFFETTIVE
+ ==================================================*/
+
+ -- carico quote parametri!
+ INSERT dbo.QuoteParam
+ SELECT * FROM #QuoteParam
+
+ -- carico lavorazioni INTERNE!
+ INSERT dbo.QuoteWorkInt -- ci sono valori calcolati quindi devo selezionare i campi
+ SELECT QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05
+ , NetProd, WSR, MSR, DSR, FC4UG, VC4UG, OH4UG, SC4UG, valid
+ FROM #QuoteWorkInt
+
+ -- carico OTHERCOSTS
+ INSERT dbo.QuoteOC -- ci sono valori calcolati quindi devo selezionare i campi
+ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, Class03, Class04
+ , Class05, TotQty, TotCost, Quota, valid
+ FROM #QuoteOC
+
+
+ COMMIT TRAN
+
+ --SELECT * FROM #QuoteParam
+ --SELECT * FROM #QuoteWorkInt
+ --SELECT * FROM #QuoteOC
+
+ -- elimino temp table...
+ IF OBJECT_ID('tempdb..#QuoteParam') IS NOT NULL
+ DROP TABLE #QuoteParam
+ IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL
+ DROP TABLE #QuoteWorkInt
+ IF OBJECT_ID('tempdb..#QuoteOC') IS NOT NULL
+ DROP TABLE #QuoteOC
+
+END
+GO
+PRINT N'Creating [dbo].[stp_QL_fullDataAll]...';
+
+
+GO
+-- =============================================
+-- STORED PROCEDURE stp_QL_fullDataAll
+--
+-- Author: Steamware
+-- Create date: 2014.02.07
+-- Description: Recupera tutti i dati di tutte le offerte salvate
+-- =============================================
+CREATE PROCEDURE dbo.stp_QL_fullDataAll
+
+AS
+SELECT *
+FROM v_QuoteFull_Q
+ORDER BY CodQuote DESC
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QL_update_30_01]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.01.22
+-- Description: aggiorna le tabelle QuoteList con i dati selezionati dalla TabProdSc
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_update_30_01]
+(
+ @QuoteType CHAR(1) = 'Q',
+ @CodQuote BIGINT = 0,
+ @QuoteRev INT = 0
+)
+AS
+BEGIN
+
+ SET NOCOUNT ON;
+
+ -- dichiaro valori da recuperare
+ DECLARE @strTemp NVARCHAR(50) = '' --stringa temporanea x variabili "locali"
+
+ DECLARE @valid BIT
+ DECLARE @CodDiesGroup NVARCHAR(50)
+ DECLARE @CodPlant NVARCHAR(50)
+ DECLARE @CodPlantFix NVARCHAR(50) = ''
+ DECLARE @HoleNum INT
+ DECLARE @CodItem NVARCHAR(50) = '' --cod item
+ DECLARE @ItemDescr NVARCHAR(50) = '' -- descrizione item
+ DECLARE @KeyAM NVARCHAR(50) = ''
+ DECLARE @KeyAMI NVARCHAR(50) = ''
+ DECLARE @KeyAMIL NVARCHAR(50) = ''
+ DECLARE @NumSMED INT = 0 -- numero cambi
+ DECLARE @KgTeo DECIMAL(18, 6) = 0 -- kg totali
+ DECLARE @RawMat NVARCHAR(50)
+ DECLARE @ProdTeo DECIMAL(18,6)
+ DECLARE @ScTec DECIMAL(18,6)
+ DECLARE @BatchQty INT
+ DECLARE @MAC_SC DECIMAL(18,6) -- Messa a cento scarto cesoia
+ DECLARE @MAC_ST DECIMAL(18,6) -- Messa a cento scarto tecnico
+ DECLARE @MAC_IN DECIMAL(18,6) -- Messa a cento difettosità all'incestatura
+ DECLARE @MAC_IM DECIMAL(18,6) -- Messa a cento difettosità all'imballo
+ DECLARE @SSR DECIMAL(9,6) -- percentuale vendita rottame
+ DECLARE @DiesPrice DECIMAL(9,3) -- prezzo matrice
+ DECLARE @DiesEOLife DECIMAL(9,2) -- durata matrice
+ DECLARE @DiesExpLife DECIMAL(9,2) -- durata matrice
+ DECLARE @DiesPriceLife DECIMAL(18,6) -- Price/Life matrice
+ DECLARE @OCF01 DECIMAL(18,6) = 0 -- altri costi di fase 01
+ DECLARE @VCF01 DECIMAL(18,6) = 0 -- costi variabili di fase 01
+ DECLARE @VCF04 DECIMAL(18,6) = 0 -- costi variabili di fase 04
+ DECLARE @SellCostF01 DECIMAL(18,6) = 0 -- costo vendita fase 01
+ DECLARE @SellCostF04 DECIMAL(18,6) = 0 -- costo vendita fase 04
+ DECLARE @RefCostF01 DECIMAL(18,6) = 0 -- costo rifusione fase 01
+ DECLARE @RefCostF04 DECIMAL(18,6) = 0 -- costo rifusione fase 04
+ -- IMBALLO
+ DECLARE @CodPackag NVARCHAR(50) = '0' -- codice dell'imballo
+ DECLARE @CodClient NVARCHAR(50) = '' -- codice cliente
+ DECLARE @NumImb DECIMAL(9,6) = 0 -- num imballatori
+ DECLARE @PkgDesc NVARCHAR(50) = '' -- descrizione imballo
+ DECLARE @PRMWeight DECIMAL(9,4) = 0 -- peso dell'imballo
+ DECLARE @PWeight DECIMAL(9,4) = 0 -- peso del pacco
+ DECLARE @PTare DECIMAL(9,4) = 0 -- media delal tara di imballo dichiarata
+ DECLARE @PCost DECIMAL(9,6) = 0 -- costo unitario dell'imballo (al kg)
+ DECLARE @PTareStRatio DECIMAL(9,4) = 0 -- coefficiente di recupero tara/prodotto
+
+ -- TRASPORTI
+ DECLARE @TranspZone NVARCHAR(50) = '', -- codice ZONA
+ @TranspCost DECIMAL(9,6), -- costo di trasporto
+ @HasTC INT
+
+ -- PROVVIGIONI
+ DECLARE @Provvig DECIMAL(9,6) -- provvigione agente
+
+ -- default: validità è true!
+ SET @valid = 1
+
+ -- =================================================
+ -- CREAZIONE TEMP TABLE
+ -- =================================================
+
+ -- elimino e ricreo #QuoteParam temp table...
+ IF OBJECT_ID('tempdb..#QuoteParam') IS NOT NULL
+ DROP TABLE #QuoteParam
+
+ CREATE TABLE #QuoteParam
+ (
+ [QuoteType] [char](1) NOT NULL,
+ [CodQuote] [bigint] NOT NULL,
+ [QuoteRev] [int] NOT NULL,
+ [NumP] [int] IDENTITY(1,1) NOT NULL,
+ [ProcessNum] [nvarchar](50) NOT NULL,
+ [Descr] [nvarchar](50) NOT NULL,
+ [Parameter] [nvarchar](100) NOT NULL,
+ --PRIMARY KEY
+ -- ( [NumP] ASC, [QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC ) WITH (PAD_INDEX = ON, FILLFACTOR = 90 )
+ )
+
+ -- elimino e ricreo #QuoteParam temp table...
+ IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL
+ DROP TABLE #QuoteWorkInt
+
+ CREATE TABLE #QuoteWorkInt
+ (
+ [QuoteType] [char](1) NOT NULL,
+ [CodQuote] [bigint] NOT NULL,
+ [QuoteRev] [int] NOT NULL,
+ [NumWI] [int] IDENTITY(1,1) NOT NULL,
+ [ProcessNum] [nvarchar](50) NOT NULL,
+ [CodPlant] [nvarchar](50) NOT NULL,
+ [Class01] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class02] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class03] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class04] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class05] [nvarchar](50) NOT NULL DEFAULT (''),
+ [NetProd] [decimal](9, 3) NOT NULL DEFAULT ((0)),
+ [WSR] [decimal](9, 8) NOT NULL DEFAULT ((0)),
+ [MSR] [decimal](9, 8) NOT NULL DEFAULT ((0)),
+ [DSR] [decimal](9, 8) NOT NULL DEFAULT ((0)),
+ [FC4UG] [decimal](9, 6) NOT NULL DEFAULT ((0)),
+ [VC4UG] [decimal](9, 6) NOT NULL DEFAULT ((0)),
+ [OH4UG] [decimal](9, 6) NOT NULL DEFAULT ((0)),
+ [SC4UG] [decimal](9, 6) NOT NULL DEFAULT ((0)),
+ [WYR] AS ((1)-[WSR]),
+ [MYR] AS ((1)-[MSR]),
+ [DYR] AS ((1)-[DSR]),
+ [WCR] AS ((1)/((1)-[WSR])),
+ [MCR] AS ((1)/((1)-[MSR])),
+ [DCR] AS ((1)/((1)-[DSR])),
+ [valid] [bit] NOT NULL DEFAULT((1)),
+ )
+
+ -- elimino e ricreo #QuoteParam temp table...
+ IF OBJECT_ID('tempdb..#QuoteOC') IS NOT NULL
+ DROP TABLE #QuoteOC
+
+ CREATE TABLE #QuoteOC
+ (
+ [QuoteType] [char](1) NOT NULL,
+ [CodQuote] [bigint] NOT NULL,
+ [QuoteRev] [int] NOT NULL,
+ [NumEx] [int] IDENTITY(1,1) NOT NULL,
+ [ProcessNum] [nvarchar](50) NOT NULL,
+ [CodPlant] [nvarchar](50) NOT NULL,
+ [Class01] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class02] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class03] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class04] [nvarchar](50) NOT NULL DEFAULT (''),
+ [Class05] [nvarchar](50) NOT NULL DEFAULT (''),
+ [TotQty] [decimal](18, 6) NOT NULL DEFAULT ((1)),
+ [TotCost] [decimal](18, 6) NOT NULL DEFAULT ((0)),
+ [Quota] [decimal](18, 6) NOT NULL DEFAULT ((1)),
+ [C4UG] AS (([TotCost]*[Quota])/[TotQty]),
+ [valid] [bit] NOT NULL DEFAULT ((1))
+ )
+
+ -- ===================================
+ -- INIZIO TRANSAZIONE
+ -- ===================================
+ SET XACT_ABORT ON;
+ BEGIN TRAN
+
+ ---------------------------------------
+ -- svuotamento iniziale
+ ---------------------------------------
+
+ -- elimino lavorazioni esterne!
+ DELETE
+ FROM dbo.QuoteWorkExt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- se ci sono eccezioni nella tab dell'anagrafico articoli imposto il codPlant desiderato
+ SET @CodPlantFix = ISNULL ( ( SELECT id.CodPlant FROM dbo.ItemDet id INNER JOIN dbo.QuoteList ql ON id.CodItem = ql.CodItem
+ WHERE ql.QuoteType = @QuoteType
+ AND ql.CodQuote = @CodQuote
+ AND ql.QuoteRev = @QuoteRev ), '' )
+
+ -- recupero da dati dell'offerta il valore del cliente
+ SELECT @CodClient = CodClient
+ FROM dbo.QuoteList
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- recupero dati!!
+ SELECT TOP 1 @CodItem = ql.CodItem
+ , @CodDiesGroup = tps.CodDiesGroup
+ , @CodPlant = CASE WHEN @CodPlantFix <> '' THEN @CodPlantFix ELSE tps.CodPlant END
+ , @HoleNum = tps.HoleNum
+ , @KeyAM = ql.KeyAM
+ , @KeyAMI = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000')
+ , @KeyAMIL = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + '-' + CAST(ISNULL(tps.HoleNum,0) AS NVARCHAR(10))
+ , @ProdTeo = tps.ProdTeo
+ , @ScTec = tps.ScTec
+ , @KgTeo = tps.KgTeo
+ , @NumSMED = tps.NumSMED
+ , @RawMat = ql.RawMat
+ , @BatchQty = ql.BatchQty
+ , @ItemDescr= i.ItemDescr
+ FROM dbo.QuoteList ql
+ INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM
+ INNER JOIN dbo.ItemDet i ON ql.CodItem = i.CodItem
+ WHERE ql.QuoteType = @QuoteType
+ AND ql.CodQuote = @CodQuote
+ AND ql.QuoteRev = @QuoteRev
+ ORDER BY tps.KgTeo DESC
+
+ -- recupero da dati dell'offerta il valore del package scelto
+ SET @CodPackag = ( SELECT dbo.f_getCodPackag( @CodItem , @CodClient ) )
+
+ -- e aggiorno QuoteRM
+ UPDATE dbo.QuoteRM
+ SET CodPackag = @CodPackag
+ FROM dbo.QuoteRM
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'ItemDescr', @ItemDescr)
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'CodifProfilo', Class01
+ FROM dbo.ItemDet
+ WHERE CodItem = @CodItem
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'ClasseMerc', Class02
+ FROM dbo.ItemDet
+ WHERE CodItem = @CodItem
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'CodClientAssoc', Class03
+ FROM dbo.ItemDet
+ WHERE CodItem = @CodItem
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'ClientNameAssoc', ClientDet.ClientName
+ FROM dbo.ItemDet INNER JOIN ClientDet ON ItemDet.Class03=ClientDet.CodClient
+ WHERE CodItem = @CodItem
+
+ -- INFORMAZIONI su MATRICE
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'CodDiesGroup', @CodDiesGroup)
+
+ SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 1) --@strTemp = SUBSTRING(@CodDiesGroup, 0, CHARINDEX('-', @CodDiesGroup)) -- !!!fare con finc Gian
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'TipoDies', @strTemp)
+
+ SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 2) --@strTemp = SUBSTRING(REPLACE(@CodDiesGroup, @strTemp,''), 2, CHARINDEX('-', @CodDiesGroup)) -- !!!fare con finc Gian
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'DiamDies', @strTemp)
+
+ SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 3) --@strTemp = SUBSTRING(REPLACE(@CodDiesGroup, @strTemp,''), 5, CHARINDEX('-', @CodDiesGroup)) -- !!!fare con finc Gian
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'HoleNumDies', @strTemp)
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesInList', COUNT(CodDies)
+ FROM dbo.DiesDet
+ WHERE CodDiesGroup = @CodDiesGroup AND CodItem = @CodItem
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesExaust', COUNT(CodDies)
+ FROM dbo.DiesDet
+ WHERE CodDiesGroup = @CodDiesGroup AND Active = 0
+
+ -- inserisco parametri calcolati x lavorazione estruzione
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'CodPlant', @CodPlant
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAM', @KeyAM
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAMIL', @KeyAMIL
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumSMED', @NumSMED
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KgTeo', @KgTeo
+
+ -- tolto: è duplicato di HoleNumDies
+ --INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ --SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'HoleNum', @HoleNum
+
+ -- inserisco lavorazione estrusione!
+ INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, NetProd, WSR)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @ProdTeo, @ScTec
+
+ INSERT INTO #QuoteParam (QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KgProdotti', SUM(KgTeo)
+ FROM dbo.QuoteList ql
+ INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM
+ WHERE ql.QuoteType = @QuoteType
+ AND ql.CodQuote = @CodQuote
+ AND ql.QuoteRev = @QuoteRev
+
+ --SELECT @cont = @cont + 1
+ --INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ --SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'NumLotti', COUNT(*)
+ --FROM QuoteList ql INNER JOIN TabProdSc tps ON ql.KeyAM = tps.KeyAM
+ --WHERE ql.QuoteType = @QuoteType
+ -- AND ql.CodQuote = @CodQuote
+ -- AND ql.QuoteRev = @QuoteRev
+
+ -- inserisco dati mancanti di MSR/CSR (scarto cesoia x estrusione) - DSR è NULLO x estrusione!
+ UPDATE qwi
+ SET MSR = rmd.CSR
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.RawMatDet rmd ON qwi.Class03 = rmd.RawMat
+
+ -- calcolo i costi legati alla fase estrusione!
+ UPDATE qwi
+ SET FC4UG = (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , VC4UG = (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , OH4UG = (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , SC4UG = cp.SC / ql.BatchQty
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum
+ INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev
+ WHERE qwi.ProcessNum = '01'
+
+ -- inserisco lavorazione incestatura!
+ INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '02', @CodPlant, @KeyAM, @KeyAMI, @RawMat
+
+ -- inserisco dati mancanti di DSR x incestatura come 1 - OUT/IN
+ UPDATE qwi
+ SET DSR = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6))
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.TabDifett td ON qwi.Class02 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum
+ WHERE qwi.ProcessNum = '02' -- solo incestatura
+
+ -- inserisco lavorazione FORNO!
+ INSERT INTO #QuoteWorkInt(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '03', @CodPlant, @KeyAM, @KeyAMI, @RawMat
+
+ -- inserisco lavorazione imballo!
+ INSERT INTO #QuoteWorkInt(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @CodItem, @KeyAMI
+
+ -- calcolo produttività netta nella fase imballo
+ UPDATE qwi
+ SET NetProd = CASE ti.Durata WHEN 0 THEN 0 ELSE ti.TotOut / ti.Durata END
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.TabImbArt ti ON qwi.Class04 = ti.KeyA
+ WHERE qwi.ProcessNum = '04' -- solo imballo
+
+ -- Se Produttività netta ancora = 0 la leggo nella tabella Gruppo Imballo ( Packaging )
+ IF ( SELECT NetProd FROM #QuoteWorkInt WHERE ProcessNum = '04' ) = 0
+ BEGIN
+ UPDATE qwi
+ SET NetProd = CASE ti.Durata WHEN 0 THEN 0 ELSE ti.TotOut / ti.Durata END
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.TabImbGrp ti ON ti.CodPackag = @CodPackag -- packag generico dell' offerta
+ WHERE qwi.ProcessNum = '04' -- solo imballo
+ END
+
+ -- salvo numero imballatori
+ SELECT @NumImb = ISNULL(NumImb,0)
+ FROM dbo.TabImbArt
+ WHERE KeyA = @CodItem
+
+ -- parametro num imballatori
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'QuotaMan', @NumImb
+
+ -- calcolo i costi legati alla fase di imballo!
+ -- QUI VA FATTO CALCOLO PUNTUALE SU quotaPlant tramite Articolo-Cliente / Articolo / Packaging
+ UPDATE qwi
+ SET FC4UG = (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , VC4UG = (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , OH4UG = (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , SC4UG = cp.SC / ql.BatchQty
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum
+ INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev
+ WHERE qwi.ProcessNum = '04' -- solo imballo
+
+ -- inserisco dati mancanti di DSR x incestatura come 1 - OUT/IN
+ UPDATE qwi
+ SET DSR = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6))
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.TabDifett td ON qwi.Class05 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum
+ WHERE qwi.ProcessNum = '04' -- solo imballo
+
+ -- recupero le MAC fase 01
+ SELECT
+ @MAC_SC = MCR
+ ,@MAC_ST = WCR
+ FROM #QuoteWorkInt WITH (NOLOCK)
+ WHERE ProcessNum = '01'
+
+ -- recupero le MAC fase 02
+ SELECT
+ @MAC_IN = DCR
+ FROM #QuoteWorkInt WITH (NOLOCK)
+ WHERE ProcessNum = '02'
+
+ -- recupero le MAC fase 04
+ SELECT
+ @MAC_IM = DCR
+ FROM #QuoteWorkInt WITH (NOLOCK)
+ WHERE ProcessNum = '04'
+
+ -- calcolo percentuale vendita rottame
+ SELECT @SSR = SSR
+ FROM dbo.RawMatDet
+ WHERE RawMat = @RawMat
+
+
+ -- NOTA : la transazione posso probabilmente iniziarla qui visto che è il
+ -- primo Update/insert/delete su tabelle non temporanee
+
+ -- update rese RawMat!
+ UPDATE dbo.QuoteRM
+ SET FCR = @MAC_SC * @MAC_ST * @MAC_IN * @MAC_IM
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND RawMat = @RawMat
+
+ -- inserisco i costi delle utilities in QuoteOC
+
+ -- inserisco altri costi x lavorazione estrusione! GAS ed EE
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, CodUtil, @RawMat, @BatchQty, UnitCost * @BatchQty, 1
+ FROM dbo.Utilities
+ WHERE CodPlant = @CodPlant
+
+
+ /*************************************************************
+ * MATRICE
+ *
+ * calcolo prezzo e durata matrice con procedura a 5 step...
+ * A) media ponderata prezzo ed ExpLife da DiesDet selezionando x CodItem + CodDiesGroup
+ * B) EOLLife x media ponderata su DiesDet dove Active = 0
+ * C) SE prezzo = 0 --> prendo prezzo da DiesGroupDet selezionando x CodDiesGroup
+ * D) Se EOL = 0 --> prendo ExpLife della singola matrice, se è 0 --> prendo EOLLife da DiesGroupDet selezionando x CodDiesGroup
+ * E) Calcolo Price / Life
+ *
+ *************************************************************/
+
+ -- (A) da DiesDet
+ SELECT @DiesPrice = SUM(ISNULL(Price, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)),
+ @DiesExpLife = SUM(ISNULL(ExpLife, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1))
+ FROM dbo.DiesDet
+ WHERE CodItem = @CodItem
+ AND CodDiesGroup = @CodDiesGroup
+ GROUP BY CodItem, CodDiesGroup
+
+ -- (B) da DiesDet
+ SELECT @DiesEOLife = AVG(ISNULL(ActLife, 0))
+ FROM dbo.DiesDet
+ WHERE CodItem = @CodItem
+ AND CodDiesGroup = @CodDiesGroup
+ AND Active = 0
+ GROUP BY CodItem, CodDiesGroup
+
+ SET @DiesPrice = ISNULL(@DiesPrice,0)
+ SET @DiesExpLife = ISNULL(@DiesExpLife,0)
+ SET @DiesEOLife = ISNULL(@DiesEOLife,0)
+
+ -- (C) verifico se prezzo è OK...
+ IF (@DiesPrice = 0)
+ BEGIN
+ -- calcolo da DiesGroupDet
+ SELECT @DiesPrice = ISNULL(Price, 0)
+ FROM DiesGroupDet
+ WHERE CodDiesGroup = @CodDiesGroup
+ END
+
+ -- (D) verifico se vita è OK...
+ IF (@DiesEOLife = 0)
+ BEGIN
+ -- uso exp life articolo...
+ SET @DiesEOLife = @DiesExpLife
+ END
+ -- controllo che non sia nulla/vuota la durata...
+ IF (@DiesEOLife = 0)
+ BEGIN
+ SELECT @DiesEOLife = CASE WHEN EOLLife > 0 THEN EOLLife ELSE ExpLife END
+ FROM DiesGroupDet
+ WHERE CodDiesGroup = @CodDiesGroup
+ END
+
+ -- controllo che non sia nulla/vuota la durata...
+ IF (@DiesEOLife = 0)
+ BEGIN
+ SET @DiesEOLife = 1 -- metto 1 kg che è sbagliato e mi fa esplodere prezzo matrice ma non blocca calcoli
+ END
+
+ -- (E) Calcolo price/life!
+ SET @DiesPriceLife = @DiesPrice / @DiesEOLife
+
+ -- (D) verifico se vita è OK...
+ IF (@DiesPriceLife = 0)
+ BEGIN
+ SET @DiesPriceLife = 1
+ SET @valid = 0
+ END
+
+ -- inserisco costi per Matrice: costo e durata da matrice, se non ci sono da gruppo, (anche solo uno dei due, ovviamente più facile trovare durata x matrice...)
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'MATRICE', @RawMat, @BatchQty, @DiesPriceLife * @BatchQty, 1, @valid
+
+
+ -- inserisco parametri calcolati x matrice
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesPrice', @DiesPrice
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesExpLife', @DiesExpLife
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesEOLife', @DiesEOLife
+
+ /*************************************************************
+ * VENDITA ROTTAME
+ *
+ * calcolo COSTO DI VENDITA PER LE 2 FASI ESTRUSIONE 01 ED IMBALLO 04
+ * - calcolo costi variabili fase 01 / 04
+ * - calcolo costo di vendita x fase 01 / 04
+ *************************************************************/
+
+ SELECT @OCF01 = SUM(ISNULL(C4UG,0))
+ FROM #QuoteOC WITH (NOLOCK)
+
+ SELECT @VCF01 = @OCF01 + VC4UG
+ FROM #QuoteWorkInt
+ WHERE ProcessNum = '01'
+
+ SELECT @VCF04 = @OCF01 + SUM(VC4UG)
+ FROM #QuoteWorkInt
+
+ SELECT @SellCostF01 = ((@MAC_ST * @MAC_SC * @MAC_IN) - 1) * (q.RawMatCost + q.RawMatExtraCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01) -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 01)
+ , @RefCostF01 = -- ( (A - B) / 100 - C )
+ (
+ -- (A) = (costo pieno di acquisto + costi fase 1) * MAC * 100 (IN CENTESIMI)
+ ((q.RawMatCost + q.RawMatExtraCost + @VCF01) * (@MAC_ST * @MAC_SC * @MAC_IN * 100))
+ -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione))
+ - ((@MAC_ST * @MAC_SC * @MAC_IN * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 - rmd.ProcCost)
+ ) / 100 -- divido per 100 finale
+ -- (C) = sottraggo costo pieno alluminio
+ - (q.RawMatCost + q.RawMatExtraCost + @VCF01)
+ FROM dbo.RawMatDet rmd
+ INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+ AND q.RawMat = @RawMat
+
+ SELECT @SellCostF04 = ((@MAC_IM) - 1) * (q.RawMatCost + q.RawMatExtraCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01 + @VCF04) -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 04)
+ , @RefCostF04 = -- ( (A - B) / 100 - C )
+ (
+ -- (A) = (costo pieno di acquisto + costi variabili fase 1 e 4) * MAC * 100 (IN CENTESIMI)
+ ((q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) * (@MAC_IM * 100))
+ -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione))
+ - ((@MAC_IM * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04 - rmd.ProcCost)
+ ) / 100 -- divido per 100 finale
+ -- (C) = sottraggo costo pieno alluminio
+ - (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04)
+
+ -- NOTA: usiamo (q.RawMatCost + q.RawMatExtraCost + @VCF01) e non (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @RefCostF01) perché la differenza è minimale, si tratta di 10/20 PPM...
+
+ FROM RawMatDet rmd INNER JOIN QuoteRM q ON q.RawMat = rmd.RawMat
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+ AND q.RawMat = @RawMat
+
+ -- inserisco costi per VENDITA
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF01 * @BatchQty, @SSR
+
+ -- inserisco costi per ROTTAME
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF01 * @BatchQty, 1 - @SSR
+
+ -- inserisco costi per VENDITA
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF04 * @BatchQty, @SSR
+
+ -- inserisco costi per ROTTAME
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF04 * @BatchQty, 1 - @SSR
+
+ EXEC stp_packageCost @CodItem, @CodClient, @CodPackag, @PDesc=@PkgDesc OUTPUT, @RMWeight=@PRMWeight OUTPUT, @Weight=@PWeight OUTPUT, @Tare=@PTare OUTPUT, @PackCost=@PCost OUTPUT, @TareStRat=@PTareStRatio OUTPUT
+
+ -- inserisco costi per IMBALLO
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'IMBALLO', @RawMat, @BatchQty, @PCost * @BatchQty, 1
+
+
+ -- inserisco parametri calcolati x imballaggio
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PkgDesc', @PkgDesc
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PRMWeight', @PRMWeight
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PWeight', @PWeight
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PTare', @PTare
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'TareStRatio', @PTareStRatio
+
+
+ ---------------------------------------------
+ -- inserisco costi per TRASPORTI
+ ---------------------------------------------
+ -- recupero zona da cliente...
+ SELECT @TranspZone = TranspZone
+ FROM dbo.ClientDet
+ WHERE CodClient = @CodClient
+
+ -- recupero tipo di trasporto
+ SELECT @HasTC = ISNULL(i.HasTC, 0)
+ FROM dbo.QuoteList q INNER JOIN Incoterms i ON q.CodInco = i.CodInco
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+
+ -- recupero costi trasporto
+ SELECT @TranspCost = TranspCost
+ FROM dbo.TranspCostDet
+ WHERE TranspZone = @TranspZone
+
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'TRASPORTI', @RawMat, @BatchQty, @HasTC * @TranspCost * @BatchQty, 1
+
+
+ ---------------------------------------------
+ -- inserisco costi per PROVVIGIONI
+ ---------------------------------------------
+ SELECT @Provvig = ISNULL(a.QuotaProvvAg, 0)
+ FROM dbo.AgentsDet a
+ INNER JOIN ClientDet c ON a.CodAg = c.CodAg
+ INNER JOIN QuoteList q ON q.CodClient = c.CodClient
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+
+ -- inserisco costi per PROVVIGIONI
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'PROVVIGIONI', @RawMat, @BatchQty, @Provvig * @BatchQty, 1
+
+ /* ==================================================
+ CANCELLO E CARICO TABELLE EFFETTIVE
+ ==================================================*/
+
+ -- elimino e carico parametri!
+ DELETE FROM dbo.QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT dbo.QuoteParam
+ SELECT * FROM #QuoteParam WITH (NOLOCK)
+
+ -- elimino e carico lavorazioni interne!
+ DELETE FROM dbo.QuoteWorkInt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT dbo.QuoteWorkInt -- ci sono valori calcolati quindi devo selezionare i campi
+ SELECT QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05
+ , NetProd, WSR, MSR, DSR, FC4UG, VC4UG, OH4UG, SC4UG, valid
+ FROM #QuoteWorkInt WITH (NOLOCK)
+
+ -- elimino e carico OtherCosts
+ DELETE FROM dbo.QuoteOC
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT dbo.QuoteOC -- ci sono valori calcolati quindi devo selezionare i campi
+ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, Class03, Class04
+ , Class05, TotQty, TotCost, Quota, valid
+ FROM #QuoteOC WITH (NOLOCK)
+
+
+ COMMIT TRAN
+
+ --SELECT * FROM #QuoteParam
+ --SELECT * FROM #QuoteWorkInt
+ --SELECT * FROM #QuoteOC
+
+ -- elimino temp table...
+ IF OBJECT_ID('tempdb..#QuoteParam') IS NOT NULL
+ DROP TABLE #QuoteParam
+ IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL
+ DROP TABLE #QuoteWorkInt
+ IF OBJECT_ID('tempdb..#QuoteOC') IS NOT NULL
+ DROP TABLE #QuoteOC
+
+END
+GO
+PRINT N'Creating [dbo].[stp_QL_update_SAM]...';
+
+
+GO
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.12.13
+-- Description: aggiorna tabella QuoteList con i dati selezionati dalla TabProdSc
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_update_SAM]
+(
+ @QuoteType CHAR(1) = 'Q',
+ @CodQuote BIGINT = 0,
+ @QuoteRev INT = 0
+)
+AS
+BEGIN
+
+ SET NOCOUNT ON;
+ SET XACT_ABORT ON;
+
+ BEGIN TRAN
+
+ -- dichiaro valori da recuperare
+ DECLARE @cont INT = 0 -- contatore x numeri consecutivi...
+ DECLARE @strTemp NVARCHAR(50) = '' --stringa temporanea x variabili "locali"
+
+ DECLARE @valid BIT
+ DECLARE @CodDiesGroup NVARCHAR(50)
+ DECLARE @CodPlant NVARCHAR(50)
+ DECLARE @CodPlantFix NVARCHAR(50) = ''
+ DECLARE @HoleNum INT
+ DECLARE @CodItem NVARCHAR(50) = '' --cod item
+ DECLARE @ItemDescr NVARCHAR(50) = '' -- descrizione item
+ DECLARE @KeyAM NVARCHAR(50) = ''
+ DECLARE @KeyAMI NVARCHAR(50) = ''
+ DECLARE @KeyAMIL NVARCHAR(50) = ''
+ DECLARE @NumSMED INT = 0 -- numero cambi
+ DECLARE @KgTeo DECIMAL(18, 6) = 0 -- kg totali
+ DECLARE @RawMat NVARCHAR(50)
+ DECLARE @ProdTeo DECIMAL(18,6)
+ DECLARE @ScTec DECIMAL(18,6)
+ DECLARE @BatchQty INT
+ DECLARE @MAC_SC DECIMAL(18,6) -- Messa a cento scarto cesoia
+ DECLARE @MAC_ST DECIMAL(18,6) -- Messa a cento scarto tecnico
+ DECLARE @MAC_IN DECIMAL(18,6) -- Messa a cento difettosità all'incestatura
+ DECLARE @MAC_IM DECIMAL(18,6) -- Messa a cento difettosità all'imballo
+ DECLARE @SSR DECIMAL(9,6) -- percentuale vendita rottame
+ DECLARE @DiesPrice DECIMAL(9,3) -- prezzo matrice
+ DECLARE @DiesEOLife DECIMAL(9,2) -- durata matrice
+ DECLARE @DiesExpLife DECIMAL(9,2) -- durata matrice
+ DECLARE @DiesPriceLife DECIMAL(18,6) -- Price/Life matrice
+ DECLARE @OCF01 DECIMAL(18,6) = 0 -- altri costi di fase 01
+ DECLARE @VCF01 DECIMAL(18,6) = 0 -- costi variabili di fase 01
+ DECLARE @VCF04 DECIMAL(18,6) = 0 -- costi variabili di fase 04
+ DECLARE @SellCostF01 DECIMAL(18,6) = 0 -- costo vendita fase 01
+ DECLARE @SellCostF04 DECIMAL(18,6) = 0 -- costo vendita fase 04
+ DECLARE @RefCostF01 DECIMAL(18,6) = 0 -- costo rifusione fase 01
+ DECLARE @RefCostF04 DECIMAL(18,6) = 0 -- costo rifusione fase 04
+ -- IMBALLO
+ DECLARE @CodPackag NVARCHAR(50) = '0' -- codice dell'imballo
+ DECLARE @CodClient NVARCHAR(50) = '' -- codice cliente
+ DECLARE @NumImb DECIMAL(9,6) = 0 -- num imballatori
+ DECLARE @PkgDesc NVARCHAR(50) = '' -- descrizione imballo
+ DECLARE @PRMWeight DECIMAL(9,4) = 0 -- peso dell'imballo
+ DECLARE @PWeight DECIMAL(9,4) = 0 -- peso del pacco
+ DECLARE @PTare DECIMAL(9,4) = 0 -- media delal tara di imballo dichiarata
+ DECLARE @PCost DECIMAL(9,6) = 0 -- costo unitario dell'imballo (al kg)
+ DECLARE @PTareStRatio DECIMAL(9,4) = 0 -- coefficiente di recupero tara/prodotto
+
+ -- TRASPORTI
+ DECLARE @TranspZone NVARCHAR(50) = '', -- codice ZONA
+ @TranspCost DECIMAL(9,6), -- costo di trasporto
+ @HasTC INT
+
+ -- PROVVIGIONI
+ DECLARE @Provvig DECIMAL(9,6) -- provvigione agente
+
+
+ -- default: validità è true!
+ SET @valid = 1
+
+
+ ---------------------------------------
+ -- svuotamento iniziale
+ ---------------------------------------
+ -- elimino parametri!
+ DELETE
+ FROM dbo.QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- elimino lavorazioni interne!
+ DELETE
+ FROM dbo.QuoteWorkInt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- elimino preventivamente OtherCosts già inseriti!
+ DELETE
+ FROM dbo.QuoteOC
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- elimino lavorazioni esterne!
+ DELETE
+ FROM dbo.QuoteWorkExt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- se ci sono eccezioni nella tab dell'anagrafico articoli imposto il codPlant desiderato
+ SET @CodPlantFix = ISNULL ( ( SELECT id.CodPlant FROM dbo.ItemDet id INNER JOIN dbo.QuoteList ql ON id.CodItem = ql.CodItem
+ WHERE ql.QuoteType = @QuoteType
+ AND ql.CodQuote = @CodQuote
+ AND ql.QuoteRev = @QuoteRev ), '' )
+
+ -- recupero da dati dell'offerta il valore del cliente
+ SELECT @CodClient = CodClient
+ FROM dbo.QuoteList
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+
+ -- recupero da dati dell'offerta il valore del package scelto
+ SELECT @CodPackag = CodPackag
+ FROM dbo.QuoteRM
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- recupero dati!!
+ SELECT TOP 1 @CodItem = ql.CodItem
+ , @CodDiesGroup = tps.CodDiesGroup
+ , @CodPlant = CASE WHEN @CodPlantFix <> '' THEN @CodPlantFix ELSE tps.CodPlant END
+ , @HoleNum = tps.HoleNum
+ , @KeyAM = ql.KeyAM
+ , @KeyAMI = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000')
+ , @KeyAMIL = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + '-' + CAST(ISNULL(tps.HoleNum,0) AS NVARCHAR(10))
+ , @ProdTeo = tps.ProdTeo
+ , @ScTec = tps.ScTec
+ , @KgTeo = tps.KgTeo
+ , @NumSMED = tps.NumSMED
+ , @RawMat = ql.RawMat
+ , @BatchQty = ql.BatchQty
+ , @ItemDescr= i.ItemDescr
+ FROM dbo.QuoteList ql
+ INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM
+ INNER JOIN dbo.ItemDet i ON ql.CodItem = i.CodItem
+ WHERE ql.QuoteType = @QuoteType
+ AND ql.CodQuote = @CodQuote
+ AND ql.QuoteRev = @QuoteRev
+ ORDER BY tps.KgTeo DESC
+
+
+ -- inserisco note sull'articolo
+ SELECT @cont = ISNULL(MAX(NumP),0) + 1
+ FROM dbo.QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'ItemDescr', @ItemDescr)
+
+ SELECT @cont = @cont + 1
+ INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'CodifProfilo', Class01
+ FROM dbo.ItemDet
+ WHERE CodItem = @CodItem
+
+ SELECT @cont = @cont + 1
+ INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'ClasseMerc', Class02
+ FROM dbo.ItemDet
+ WHERE CodItem = @CodItem
+
+ SELECT @cont = @cont + 1
+ INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'ClienteAssoc', Class03
+ FROM dbo.ItemDet
+ WHERE CodItem = @CodItem
+
+ -- INFORMAZIONI su MATRICE
+ SELECT @cont = @cont + 1
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'CodDiesGroup', @CodDiesGroup)
+
+ SELECT @cont = @cont + 1
+ SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 1) --@strTemp = SUBSTRING(@CodDiesGroup, 0, CHARINDEX('-', @CodDiesGroup)) -- !!!fare con finc Gian
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'TipoDies', @strTemp)
+
+ SELECT @cont = @cont + 1
+ SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 2) --@strTemp = SUBSTRING(REPLACE(@CodDiesGroup, @strTemp,''), 2, CHARINDEX('-', @CodDiesGroup)) -- !!!fare con finc Gian
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'DiamDies', @strTemp)
+
+ SELECT @cont = @cont + 1
+ SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 3) --@strTemp = SUBSTRING(REPLACE(@CodDiesGroup, @strTemp,''), 5, CHARINDEX('-', @CodDiesGroup)) -- !!!fare con finc Gian
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'HoleNumDies', @strTemp)
+
+ SELECT @cont = @cont + 1
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'NumDiesInList', COUNT(CodDies)
+ FROM dbo.DiesDet
+ WHERE CodDiesGroup = @CodDiesGroup AND CodItem = @CodItem
+
+ SELECT @cont = @cont + 1
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'NumDiesExaust', COUNT(CodDies)
+ FROM dbo.DiesDet
+ WHERE CodDiesGroup = @CodDiesGroup AND Active = 0
+
+
+ -- inserisco lavorazione estrusione!
+ INSERT INTO dbo.QuoteWorkInt(QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03, NetProd, WSR)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumWI),0) + 1, '01', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @ProdTeo, @ScTec
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+
+ -- inserisco parametri calcolati x lavorazione estruzione
+ INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'CodPlant', @CodPlant
+ FROM dbo.QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'KeyAM', @KeyAM
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'KeyAMIL', @KeyAMIL
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'NumCambi', @NumSMED
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'KgTeo', @KgTeo
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'HoleNum', @HoleNum
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ SELECT @cont = ISNULL(MAX(NumP),0) + 1
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'KgProdotti', SUM(KgTeo)
+ FROM QuoteList ql
+ INNER JOIN TabProdSc tps ON ql.KeyAM = tps.KeyAM
+ WHERE ql.QuoteType = @QuoteType
+ AND ql.CodQuote = @CodQuote
+ AND ql.QuoteRev = @QuoteRev
+
+ --SELECT @cont = @cont + 1
+ --INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ --SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'NumLotti', COUNT(*)
+ --FROM QuoteList ql INNER JOIN TabProdSc tps ON ql.KeyAM = tps.KeyAM
+ --WHERE ql.QuoteType = @QuoteType
+ -- AND ql.CodQuote = @CodQuote
+ -- AND ql.QuoteRev = @QuoteRev
+
+ -- inserisco dati mancanti di MSR/CSR (scarto cesoia x estrusione) - DSR è NULLO x estrusione!
+ UPDATE qwi
+ SET MSR = rmd.CSR
+ FROM dbo.QuoteWorkInt qwi
+ INNER JOIN RawMatDet rmd ON qwi.Class03 = rmd.RawMat
+ WHERE qwi.QuoteType = @QuoteType
+ AND qwi.CodQuote = @CodQuote
+ AND qwi.QuoteRev = @QuoteRev
+
+ -- calcolo i costi legati alla fase estrusione!
+ UPDATE qwi
+ SET FC4UG = (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , VC4UG = (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , OH4UG = (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , SC4UG = cp.SC / ql.BatchQty
+ FROM dbo.QuoteWorkInt qwi
+ INNER JOIN Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum
+ INNER JOIN QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev
+ WHERE qwi.QuoteType = @QuoteType
+ AND qwi.CodQuote = @CodQuote
+ AND qwi.QuoteRev = @QuoteRev
+
+ -- inserisco lavorazione incestatura!
+ INSERT INTO QuoteWorkInt(QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumWI),0) + 1, '02', @CodPlant, @KeyAM, @KeyAMI, @RawMat
+ FROM dbo.QuoteWorkInt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+
+ -- inserisco dati mancanti di DSR x incestatura come 1 - OUT/IN
+ UPDATE qwi
+ SET DSR = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6))
+ FROM dbo.QuoteWorkInt qwi
+ INNER JOIN dbo.TabDifett td ON qwi.Class02 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum
+ WHERE qwi.ProcessNum = '02' -- solo incestatura
+
+ -- inserisco lavorazione FORNO!
+ INSERT INTO dbo.QuoteWorkInt(QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumWI),0) + 1, '03', @CodPlant, @KeyAM, @KeyAMI, @RawMat
+ FROM dbo.QuoteWorkInt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- inserisco lavorazione imballo!
+ INSERT INTO dbo.QuoteWorkInt(QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumWI),0) + 1, '04', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @CodItem, @KeyAMI
+ FROM dbo.QuoteWorkInt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- calcolo produttività netta nella fase imballo
+ UPDATE qwi
+ SET NetProd = ti.TotOut/ ti.Durata
+ FROM dbo.QuoteWorkInt qwi
+ INNER JOIN TabImbArt ti ON qwi.Class04 = ti.KeyA
+
+ -- salvo numero imballatori
+ SELECT @NumImb = ISNULL(NumImb,0)
+ FROM TabImbArt
+ WHERE KeyA = @CodItem
+
+ -- parametro num imballatori
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'NumImballatori', @NumImb
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- calcolo i costi legati alla fase di imballo!
+ UPDATE qwi
+ SET FC4UG = (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , VC4UG = (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , OH4UG = (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
+ , SC4UG = cp.SC / ql.BatchQty
+ FROM dbo.QuoteWorkInt qwi
+ INNER JOIN Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum
+ INNER JOIN QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev
+ WHERE qwi.ProcessNum = '04' -- solo imballo
+
+
+ -- inserisco dati mancanti di DSR x incestatura come 1 - OUT/IN
+ UPDATE qwi
+ SET DSR = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6))
+ FROM dbo.QuoteWorkInt qwi
+ INNER JOIN TabDifett td ON qwi.Class05 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum
+ WHERE qwi.ProcessNum = '04' -- solo imballo
+
+
+ -- recupero le MAC fase 01
+ SELECT
+ @MAC_SC = MCR
+ ,@MAC_ST = WCR
+ FROM dbo.QuoteWorkInt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND ProcessNum = '01'
+
+ -- recupero le MAC fase 02
+ SELECT
+ @MAC_IN = DCR
+ FROM dbo.QuoteWorkInt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND ProcessNum = '02'
+
+ -- recupero le MAC fase 04
+ SELECT
+ @MAC_IM = DCR
+ FROM dbo.QuoteWorkInt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND ProcessNum = '04'
+
+ -- calcolo percentuale vendita rottame
+ SELECT @SSR = SSR
+ FROM dbo.RawMatDet
+ WHERE RawMat = @RawMat
+
+ -- update rese RawMat!
+ UPDATE dbo.QuoteRM
+ SET FCR = @MAC_SC * @MAC_ST * @MAC_IN * @MAC_IM
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND RawMat = @RawMat
+
+
+
+
+ -- inserisco i costi delle utilities in QuoteOC
+
+ -- inserisco altri costi x lavorazione estrusione! GAS ed EE
+ INSERT INTO dbo.QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ROW_NUMBER() OVER(ORDER BY CodUtil ASC) AS Row, '01', @CodPlant, CodUtil, @RawMat, @BatchQty, UnitCost * @BatchQty, 1
+ FROM dbo.Utilities
+ WHERE CodPlant = @CodPlant
+
+
+ /*************************************************************
+ * MATRICE
+ *
+ * calcolo prezzo e durata matrice con procedura a 5 step...
+ * A) media ponderata prezzo ed ExpLife da DiesDet selezionando x CodItem + CodDiesGroup
+ * B) EOLLife x media ponderata su DiesDet dove Active = 0
+ * C) SE prezzo = 0 --> prendo prezzo da DiesGroupDet selezionando x CodDiesGroup
+ * D) Se EOL = 0 --> prendo ExpLife della singola matrice, se è 0 --> prendo EOLLife da DiesGroupDet selezionando x CodDiesGroup
+ * E) Calcolo Price / Life
+ *
+ *************************************************************/
+
+ -- (A) da DiesDet
+ SELECT @DiesPrice = SUM(ISNULL(Price, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)),
+ @DiesExpLife = SUM(ISNULL(ExpLife, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1))
+ FROM dbo.DiesDet
+ WHERE CodItem = @CodItem
+ AND CodDiesGroup = @CodDiesGroup
+ GROUP BY CodItem, CodDiesGroup
+
+ -- (B) da DiesDet
+ SELECT @DiesEOLife = AVG(ISNULL(ActLife, 0))
+ FROM dbo.DiesDet
+ WHERE CodItem = @CodItem
+ AND CodDiesGroup = @CodDiesGroup
+ AND Active = 0
+ GROUP BY CodItem, CodDiesGroup
+
+ SET @DiesPrice = ISNULL(@DiesPrice,0)
+ SET @DiesExpLife = ISNULL(@DiesExpLife,0)
+ SET @DiesEOLife = ISNULL(@DiesEOLife,0)
+
+ -- (C) verifico se prezzo è OK...
+ IF (@DiesPrice = 0)
+ BEGIN
+ -- calcolo da DiesGroupDet
+ SELECT @DiesPrice = ISNULL(Price, 0)
+ FROM DiesGroupDet
+ WHERE CodDiesGroup = @CodDiesGroup
+ END
+
+ -- (D) verifico se vita è OK...
+ IF (@DiesEOLife = 0)
+ BEGIN
+ -- uso exp life articolo...
+ SET @DiesEOLife = @DiesExpLife
+ END
+ -- controllo che non sia nulla/vuota la durata...
+ IF (@DiesEOLife = 0)
+ BEGIN
+ SELECT @DiesEOLife = CASE WHEN EOLLife > 0 THEN EOLLife ELSE ExpLife END
+ FROM DiesGroupDet
+ WHERE CodDiesGroup = @CodDiesGroup
+ END
+
+ -- controllo che non sia nulla/vuota la durata...
+ IF (@DiesEOLife = 0)
+ BEGIN
+ SELECT @DiesEOLife = 1 -- metto 1 kg che è sbagliato e mi fa esplodere prezzo matrice ma non blocca calcoli
+ END
+
+ -- (E) Calcolo price/life!
+ SET @DiesPriceLife = @DiesPrice / @DiesEOLife
+
+ -- (D) verifico se vita è OK...
+ IF (@DiesPriceLife = 0)
+ BEGIN
+ SET @DiesPriceLife = 1
+ SET @valid = 0
+ END
+
+ -- inserisco costi per Matrice: costo e durata da matrice, se non ci sono da gruppo, (anche solo uno dei due, ovviamente più facile trovare durata x matrice...)
+ INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '01', @CodPlant, 'MATRICE', @RawMat, @BatchQty, @DiesPriceLife * @BatchQty, 1, @valid
+ FROM QuoteOC
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+
+ -- inserisco parametri calcolati x matrice
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'DiesPrice', @DiesPrice
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'DiesExpLife', @DiesExpLife
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'DiesEOLife', @DiesEOLife
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ /*************************************************************
+ * VENDITA ROTTAME
+ *
+ * calcolo COSTO DI VENDITA PER LE 2 FASI ESTRUSIONE 01 ED IMBALLO 04
+ * - calcolo costi variabili fase 01 / 04
+ * - calcolo costo di vendita x fase 01 / 04
+ *************************************************************/
+
+ SELECT @OCF01 = SUM(ISNULL(C4UG,0))
+ FROM QuoteOC
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ SELECT @VCF01 = @OCF01 + VC4UG
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND ProcessNum = '01'
+
+ SELECT @VCF04 = @OCF01 + SUM(VC4UG)
+ FROM dbo.QuoteWorkInt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ SELECT @SellCostF01 = ((@MAC_ST * @MAC_SC * @MAC_IN) - 1) * (q.RawMatCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01) -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 01)
+ , @RefCostF01 = -- ( (A - B) / 100 - C )
+ (
+ -- (A) = (costo pieno di acquisto + costi fase 1) * MAC * 100 (IN CENTESIMI)
+ ((q.RawMatCost + q.RawMatExtraCost + @VCF01) * (@MAC_ST * @MAC_SC * @MAC_IN * 100))
+ -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione))
+ - ((@MAC_ST * @MAC_SC * @MAC_IN * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 - rmd.ProcCost)
+ ) / 100 -- divido per 100 finale
+ -- (C) = sottraggo costo pieno alluminio
+ - (q.RawMatCost + q.RawMatExtraCost + @VCF01)
+ FROM dbo.RawMatDet rmd
+ INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+ AND q.RawMat = @RawMat
+
+ SELECT @SellCostF04 = ((@MAC_IM) - 1) * (q.RawMatCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01 + @VCF04) -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 04)
+ , @RefCostF04 = -- ( (A - B) / 100 - C )
+ (
+ -- (A) = (costo pieno di acquisto + costi fase 1) * MAC * 100 (IN CENTESIMI)
+ ((q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) * (@MAC_IM * 100))
+ -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione))
+ - ((@MAC_IM * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04 - rmd.ProcCost)
+ ) / 100 -- divido per 100 finale
+ -- (C) = sottraggo costo pieno alluminio
+ - (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04)
+
+ -- NOTA: usiamo (q.RawMatCost + q.RawMatExtraCost + @VCF01) e non (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @RefCostF01) perché la differenza è minimale, si tratta di 10/20 PPM...
+
+ FROM RawMatDet rmd INNER JOIN QuoteRM q ON q.RawMat = rmd.RawMat
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+ AND q.RawMat = @RawMat
+
+ -- inserisco costi per VENDITA
+ INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '01', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF01 * @BatchQty, @SSR
+ FROM QuoteOC
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- inserisco costi per ROTTAME
+ INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '01', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF01 * @BatchQty, 1 - @SSR
+ FROM QuoteOC
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- inserisco costi per VENDITA
+ INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF04 * @BatchQty, @SSR
+ FROM QuoteOC
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- inserisco costi per ROTTAME
+ INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF04 * @BatchQty, 1 - @SSR
+ FROM dbo.QuoteOC
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+
+ EXEC stp_packageCost @CodItem, @CodClient, @CodPackag, @PDesc=@PkgDesc OUTPUT, @RMWeight=@PRMWeight OUTPUT, @Weight=@PWeight OUTPUT, @Tare=@PTare OUTPUT, @PackCost=@PCost OUTPUT, @TareStRat=@PTareStRatio OUTPUT
+
+ -- inserisco costi per IMBALLO
+ INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'IMBALLO', @RawMat, @BatchQty, @PCost * @BatchQty, 1
+ FROM dbo.QuoteOC
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- inserisco parametri calcolati x imballaggio
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'PkgDesc', @PkgDesc
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'RMWeight', @PRMWeight
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'PWeight', @PWeight
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'PTare', @PTare
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'TareStRatio', @PTareStRatio
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+
+ ---------------------------------------------
+ -- inserisco costi per TRASPORTI
+ ---------------------------------------------
+ -- recupero zona da cliente...
+ SELECT @TranspZone = TranspZone
+ FROM dbo.ClientDet
+ WHERE CodClient = @CodClient
+
+ -- recupero tipo di trasporto
+ SELECT @HasTC = ISNULL(i.HasTC, 0)
+ FROM QuoteList q INNER JOIN Incoterms i ON q.CodInco = i.CodInco
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+
+ -- recupero costi trasporto
+ SELECT @TranspCost = TranspCost
+ FROM dbo.TranspCostDet
+ WHERE TranspZone = @TranspZone
+
+ INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'TRASPORTI', @RawMat, @BatchQty, @HasTC * @TranspCost * @BatchQty, 1
+ FROM dbo.QuoteOC
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+
+ ---------------------------------------------
+ -- inserisco costi per PROVVIGIONI
+ ---------------------------------------------
+ SELECT @Provvig = ISNULL(a.QuotaProvvAg, 0)
+ FROM dbo.AgentsDet a
+ INNER JOIN ClientDet c ON a.CodAg = c.CodAg
+ INNER JOIN QuoteList q ON q.CodClient = c.CodClient
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+
+ -- inserisco costi per PROVVIGIONI
+ INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'PROVVIGIONI', @RawMat, @BatchQty, @Provvig * @BatchQty, 1
+ FROM dbo.QuoteOC
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+
+
+ COMMIT TRAN
+
+END
+GO
+PRINT N'Creating [dbo].[stp_QL_getByKey]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.02.23
+-- Description: recupera riga QL
+-- =============================================
+CREATE PROCEDURE dbo.stp_QL_getByKey
+(
+ @QuoteType CHAR(1) = 'Q'
+ ,@CodQuote BIGINT = 0
+ ,@QuoteRev INT = 0
+)
+AS
+
+SELECT *
+FROM QuoteList
+WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QRM_getByKey]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.02.23
+-- Description: recupera riga QRM
+-- =============================================
+create PROCEDURE dbo.stp_QRM_getByKey
+(
+ @QuoteType CHAR(1) = 'Q'
+ ,@CodQuote BIGINT = 0
+ ,@QuoteRev INT = 0
+ ,@NumRM INT = 0
+)
+AS
+
+SELECT *
+FROM QuoteRM
+WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND NumRM = @NumRM
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_VSRM_SearchLike]...';
+
+
+GO
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2014.02.18
+-- Description: Ricerca materiale Al
+-- =============================================
+create PROCEDURE [dbo].stp_VSRM_SearchLike
+(
+ @value NVARCHAR(50)
+)
+
+AS
+SET NOCOUNT ON;
+
+SELECT value
+ ,label
+FROM v_selRawMat
+WHERE (value LIKE '%' + @value + '%')
+ OR (label LIKE '%' + @value + '%')
+GO
+PRINT N'Creating [dbo].[stp_QuoteFull_delete]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.02.23
+-- Description: upelimina tutti i record di un offerta
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QuoteFull_delete]
+(
+ @Original_QuoteType CHAR(1) = 'Q'
+ ,@Original_CodQuote BIGINT = 0
+ ,@Original_QuoteRev INT = 0
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN tran
+ -- elimino da QuoteFull
+ DELETE
+ FROM QuoteFull_Q
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+ -- elimino da tab child
+ DELETE
+ FROM QuoteWorkExt
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+ DELETE
+ FROM QuoteWorkInt
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+ DELETE
+ FROM QuoteOC
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+ DELETE
+ FROM QuoteParam
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+ -- elimino le 2 master: RM e list...
+ DELETE
+ FROM QuoteRM
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+ DELETE
+ FROM QuoteList
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+COMMIT tran
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_TD_upsert]...';
+
+
+GO
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.12.17
+-- Description: Crea TabDifett (tabella difettosità)
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_TD_upsert]
+(
+ @dateFrom DATETIME, -- data da cui iniziare a caricare
+ @dateTo DATETIME -- data fino a cui caricare
+)
+AS
+BEGIN
+
+ SET XACT_ABORT ON;
+ BEGIN TRAN
+
+ SET NOCOUNT ON;
+
+ -- svuoto tabella...
+ TRUNCATE TABLE TabDifett
+
+ -- riempio di nuovo valori!
+ INSERT INTO TabDifett
+ SELECT
+ dd.CodItem + '-' + pl.RawMat + '-' + pl.CodPlant as KeyAMI
+ , pl.ProcessNum
+ , dd.CodItem, pl.RawMat, pl.CodPlant
+ , SUM(NumOUT) as TotOUT
+ , SUM(NumIN) as TotIn
+ FROM ProductionLog pl INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies
+ WHERE pl.ProcessNum IN ('02', '04')
+ AND pl.okDi = 1
+ -- and pl.EventType=1
+ AND pl.EventStart BETWEEN @dateFrom AND @dateTo
+ GROUP BY dd.CodItem, pl.RawMat, pl.CodPlant, pl.ProcessNum
+ ORDER BY dd.CodItem, pl.RawMat, pl.ProcessNum--, SUM(NumOUT) DESC
+
+ -- salvo nuova revisione dati di produzione...
+ INSERT INTO RevHistory
+ SELECT 'P', ISNULL(MAX(RevNum),0) + 1, GETDATE(), 'Aggiornamento dati di produzione x fasi 02/03 ' + CONVERT(NVARCHAR(20), @dateFrom, 120) + ' --> ' +CONVERT(NVARCHAR(20), @dateTo, 120)
+ FROM RevHistory
+ WHERE RevType = 'P'
+
+ COMMIT TRAN
+
+END
+GO
+PRINT N'Creating [dbo].[stp_TI_upsert]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.12.20
+-- Description: Crea TabImb (tabella imballi)
+-- NON SERVE PIU' le due tabelle sono state inglobate in Package2/Item/Client
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_TI_upsert]
+(
+ @dateFrom DATETIME, -- data da cui iniziare a caricare
+ @dateTo DATETIME -- data fino a cui caricare
+)
+AS
+BEGIN
+
+ SET XACT_ABORT ON;
+ BEGIN TRAN
+
+ SET NOCOUNT ON;
+
+ -- svuoto tabella...
+ TRUNCATE TABLE TabImbArt
+ TRUNCATE TABLE TabImbGrp
+
+ -- riempio di nuovo valori x articolo!
+ INSERT INTO TabImbArt
+ SELECT
+ dd.CodItem as KeyA
+ , ROUND(SUM(QtyOUT* QuotaMan) / CASE WHEN SUM(QtyOUT) = 0 THEN 1 ELSE SUM(QtyOUT) END,0) as NumImb
+ , SUM(QtyOUT) AS TotOut
+ , SUM(Duration) AS Durata
+ FROM ProductionLog pl INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies
+ WHERE pl.ProcessNum = '04'
+ AND pl.okPr = 1 AND pl.okQM = 1
+ AND pl.EventStart BETWEEN @dateFrom AND @dateTo
+ GROUP BY dd.CodItem
+ ORDER BY dd.CodItem
+
+
+ -- riempio di nuovo valori x gruppo imballo!
+ INSERT INTO TabImbGrp
+ SELECT
+ pl.CodPackag
+ , ROUND(SUM(QtyOUT* QuotaMan) / CASE WHEN SUM(QtyOUT) = 0 THEN 1 ELSE SUM(QtyOUT) END,0) as NumImb
+ , SUM(QtyOUT) AS TotOut
+ , SUM(Duration) AS Durata
+ FROM ProductionLog pl INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies
+ WHERE pl.ProcessNum = '04'
+ AND pl.okPr = 1 AND pl.okQM = 1
+ AND pl.EventStart BETWEEN @dateFrom AND @dateTo
+ GROUP BY pl.CodPackag
+ ORDER BY pl.CodPackag
+
+ -- salvo nuova revisione dati di produzione...
+ 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'
+
+ COMMIT TRAN
+
+END
+GO
+PRINT N'Creating [dbo].[stp_TPS_upsert]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.12.13
+-- Description: Crea TabProdSc (tabella produttività/scarti)
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_TPS_upsert]
+(
+ @dateFrom DATETIME, -- data da cui iniziare a caricare
+ @dateTo DATETIME -- data fino a cui caricare
+)
+AS
+BEGIN
+
+ SET XACT_ABORT ON;
+ BEGIN TRAN
+
+ SET NOCOUNT ON;
+
+ -- svuoto tabella...
+ TRUNCATE TABLE TabProdSc
+
+ -- riempio di nuovo valori! chiave AMIL
+ INSERT INTO TabProdSc
+ SELECT
+ dd.CodItem + '-' + pl.RawMat + '-' + pl.CodPlant + '-' + CAST(dd.HoleNum AS NVARCHAR(19)) AS KeyAMIL
+ , dd.CodDiesGroup
+ , dd.CodItem + '-' + pl.RawMat AS KeyAM
+ , dd.CodItem, pl.RawMat, pl.CodPlant, dd.HoleNum
+ , 0 AS NumSMED -- numero cambi, da sistemare...
+ , SUM(QtyOUT) AS KgTeorici
+ , SUM(QtyIN) AS KgLordi
+ , SUM(Duration) AS Durata
+ FROM ProductionLog pl
+ INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies
+ WHERE pl.ProcessNum='01' and pl.EventType=1
+ AND pl.okPr = 1
+ AND pl.okSc = 1
+ AND pl.EventStart BETWEEN @dateFrom AND @dateTo
+ GROUP BY dd.CodItem, pl.RawMat, dd.CodDiesGroup, pl.CodPlant, dd.HoleNum
+ ORDER BY dd.CodItem, pl.RawMat, dd.CodDiesGroup, SUM(QtyOUT) DESC
+
+ -- riempio di nuovo valori! chiave CMIL
+ INSERT INTO TabProdSc
+ SELECT
+ id.CodItemGroup + '-' + pl.RawMat + '-' + pl.CodPlant + '-' + CAST(dd.HoleNum AS NVARCHAR(19)) AS KeyAMIL
+ , dd.CodDiesGroup
+ , id.CodItemGroup + '-' + pl.RawMat AS KeyAM
+ , id.CodItemGroup, pl.RawMat, pl.CodPlant, dd.HoleNum
+ , 0 AS NumSMED -- numero cambi, da sistemare...
+ , SUM(QtyOUT) AS KgTeorici
+ , SUM(QtyIN) AS KgLordi
+ , SUM(Duration) AS Durata
+ FROM ProductionLog pl INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies
+ INNER JOIN ItemDet id ON dd.CodItem = id.CodItem
+ WHERE pl.ProcessNum='01' and pl.EventType=1
+ AND pl.okPr = 1 AND pl.okSc = 1
+ AND pl.EventStart BETWEEN @dateFrom AND @dateTo
+ GROUP BY id.CodItemGroup, pl.RawMat, dd.CodDiesGroup, pl.CodPlant, dd.HoleNum
+ ORDER BY id.CodItemGroup, pl.RawMat, dd.CodDiesGroup, SUM(QtyOUT) DESC
+
+
+ -- calcolo cambi SMED
+
+ -- con cte
+ ; WITH cteCambiPre
+ AS
+ (
+ SELECT
+ ROW_NUMBER() OVER(ORDER BY CodPlant, EventStart ASC) AS Row,
+ CodPlant, RawMat, EventStart, ProcessNum, CodDies, CodClient, OrderNum, BatchNum
+ FROM ProductionLog pl
+ WHERE pl.ProcessNum='01' and pl.EventType=1
+ AND pl.okPr = 1 AND pl.okSc = 1
+ AND pl.EventStart BETWEEN @dateFrom AND @dateTo
+ )
+ , cteCambi
+ AS
+ (
+ -- PARTE AMIL
+ SELECT dd.CodItem + '-' + a.RawMat + '-' + a.CodPlant + '-' + CAST(dd.HoleNum AS NVARCHAR(19)) as KeyAMIL
+ , dd.CodDiesGroup
+ , a.*
+ --, b.Row
+ --, ISNULL(b.Row, 0) AS Cambio -- se 0 c'è cambio
+ --, CASE ISNULL(b.Row, 0) WHEN 0 THEN 1 ELSE 0 END AS Cambio2
+ , CASE ISNULL(b.Row, 0) WHEN 0 THEN 1 ELSE 0 END AS Cambio2
+ FROM cteCambiPre AS a
+ LEFT JOIN cteCambiPre AS b
+ ON a.Row-1 = b.Row
+ AND a.CodPlant = b.CodPlant AND a.CodDies = b.CodDies
+ INNER JOIN DiesDet dd ON a.CodDies=dd.CodDies
+ WHERE b.Row IS NULL -- se voglio vedere solo i cambi
+ --ORDER BY a.CodPlant, a.EventStart
+
+ UNION
+ -- PARTE CMIL
+ SELECT id.CodItemGroup + '-' + a.RawMat + '-' + a.CodPlant + '-' + CAST(dd.HoleNum AS NVARCHAR(19)) as KeyAMIL
+ , dd.CodDiesGroup
+ , a.*
+ --, b.Row
+ --, ISNULL(b.Row, 0) AS Cambio -- se 0 c'è cambio
+ --, CASE ISNULL(b.Row, 0) WHEN 0 THEN 1 ELSE 0 END AS Cambio2
+ , CASE ISNULL(b.Row, 0) WHEN 0 THEN 1 ELSE 0 END AS Cambio2
+ FROM cteCambiPre AS a
+ LEFT JOIN cteCambiPre AS b
+ ON a.Row-1 = b.Row
+ AND a.CodPlant = b.CodPlant AND a.CodDies = b.CodDies
+ INNER JOIN DiesDet dd ON a.CodDies=dd.CodDies
+ INNER JOIN ItemDet id ON dd.CodItem = id.CodItem
+ WHERE b.Row IS NULL -- se voglio vedere solo i cambi
+ --ORDER BY a.CodPlant, a.EventStart
+ )
+ UPDATE tps
+ SET NumSMED = cc.NumSMED
+ FROM TabProdSc tps
+ INNER JOIN (
+ SELECT KeyAMIL, CodDiesGroup, SUM(Cambio2) as NumSMED
+ FROM cteCambi
+ GROUP BY KeyAMIL, CodDiesGroup
+ --ORDER BY KeyAMIL, CodDiesGroup
+ ) AS cc
+ ON tps.KeyAMIL= cc.KeyAMIL AND tps.CodDiesGroup = cc.CodDiesGroup
+
+
+
+-- -- altro metodo, forse + veloce...
+-- DROP TABLE test
+
+-- CREATE TABLE [dbo].[test](
+-- [Row] [bigint] IDENTITY(1,1) NOT NULL,
+-- [CodPlant] [nvarchar](50) NOT NULL,
+-- [EventStart] [datetime] NOT NULL,
+-- [ProcessNum] [nvarchar](50) NOT NULL,
+-- [CodDies] [nvarchar](50) NOT NULL,
+-- [CodClient] [nvarchar](50) NOT NULL,
+-- [OrderNum] [nvarchar](50) NOT NULL,
+-- [BatchNum] [nvarchar](50) NOT NULL,
+-- CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED
+-- (
+-- [Row] ASC
+-- )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
+-- ) ON [PRIMARY]
+
+
+-- INSERT INTO TEST
+-- SELECT CodPlant, EventStart, ProcessNum, CodDies, CodClient, OrderNum, BatchNum
+-- FROM ProductionLog pl
+-- WHERE pl.ProcessNum='01' and pl.EventType=1
+-- ORDER BY CodPlant, EventStart
+
+---- SELECT * FROM Test
+
+-- SELECT a.*
+-- , b.Row
+-- , ISNULL(b.Row, 0) AS Cambio -- se 0 c'è cambio
+-- , CASE ISNULL(b.Row, 0) WHEN 0 THEN 1 ELSE 0 END AS Cambio2
+-- FROM test AS a
+-- LEFT JOIN test AS b
+-- ON a.Row - 1 = b.Row -- aggancio record precedente
+-- AND a.CodPlant = b.CodPlant AND a.CodDies = b.CodDies
+-- WHERE b.Row IS NULL -- solo i cambi
+-- ORDER BY a.CodPlant, a.EventStart
+
+
+
+ -- salvo nuova revisione dati di produzione...
+ INSERT INTO RevHistory
+ SELECT 'P', ISNULL(MAX(RevNum),0) + 1, GETDATE(), 'Aggiornamento dati di produzione fase 01 ' + CONVERT(NVARCHAR(20), @dateFrom, 120) + ' --> ' +CONVERT(NVARCHAR(20), @dateTo, 120)
+ FROM RevHistory
+ WHERE RevType = 'P'
+
+ COMMIT TRAN
+
+END
+GO
+PRINT N'Creating [dbo].[stp_VSItem_SearchLike]...';
+
+
+GO
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2014.02.18
+-- Description: Ricerca items
+-- =============================================
+CREATE PROCEDURE [dbo].stp_VSItem_SearchLike
+(
+ @value NVARCHAR(50)
+)
+
+AS
+SET NOCOUNT ON;
+
+SELECT value
+ ,label
+FROM v_selItems
+WHERE (value LIKE '%' + @value + '%')
+ OR (label LIKE '%' + @value + '%')
+ORDER BY value
+GO
+PRINT N'Creating [dbo].[stp_QL_fullDataSearch]...';
+
+
+GO
+-- =============================================
+-- STORED PROCEDURE stp_QL_fullDataSearch
+--
+-- Author: Steamware
+-- Mod date: 2014.02.11
+-- Description: Recupera tutti i dati dalle tab QuoteList x avere schema con ricerca x cliente, item, materiale
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_fullDataSearch]
+(
+ @CodClient NVARCHAR(50) = ''
+ , @CodItem NVARCHAR(50) = ''
+ , @RawMat NVARCHAR(50) = ''
+ , @DataMin DATETIME
+ , @DataMax DATETIME
+ , @qtaMin INT = 0
+ , @qtaMax INT = 999999
+ , @QuoteType CHAR(1) = '*'
+ , @IdxQState INT = '-1'
+)
+AS
+SET NOCOUNT ON
+
+-- cte x selezionare solo ultime revisioni...
+;WITH myCte AS
+(
+ SELECT QuoteType, CodQuote, MAX(QuoteRev) AS QuoteRev
+ FROM QuoteList
+ GROUP BY QuoteType, CodQuote
+)
+-- calcolo con aggiunta campi sommati...
+SELECT vq.*
+FROM v_QuoteFull_Q vq
+ INNER JOIN myCte mc ON vq.QuoteType = mc.QuoteType AND vq.CodQuote = mc.CodQuote AND vq.QuoteRev = mc.QuoteRev
+WHERE vq.CodClient = CASE WHEN ISNULL(@CodClient,'') = '' THEN vq.CodClient ELSE @CodClient END
+ AND vq.CodItem = CASE WHEN ISNULL(@CodItem,'') = '' THEN vq.CodItem ELSE @CodItem END
+ AND vq.RawMat = CASE WHEN ISNULL(@RawMat,'') = '' THEN vq.RawMat ELSE @RawMat END
+ AND vq.CodQuote BETWEEN CONVERT(NVARCHAR(30), @DataMin, 12)*10000 AND (CONVERT(NVARCHAR(30), @DataMax, 12) +1 )*10000
+ AND vq.BatchQty BETWEEN @qtaMin AND @qtaMax
+ AND vq.QuoteType = CASE WHEN @QuoteType = '*' THEN vq.QuoteType ELSE @QuoteType END
+ AND vq.IdxQState = CASE WHEN @IdxQState = -1 THEN vq.IdxQState ELSE @IdxQState END
+ORDER BY CodQuote DESC
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QSP_upsert]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware - S.E.L.
+-- Create date: 2014.05.16
+-- Description: update di un record in QL (Full) TIPO SIMULAZIONE e poi aggiorna a cascata
+-- =============================================
+create PROCEDURE [dbo].[stp_QSP_upsert]
+(
+ @QuoteType CHAR(1) = 'S',
+ @CodQuote BIGINT = 0 ,
+ @QuoteRev INT = 0 ,
+ @NomePar NVARCHAR(50) = '' ,
+ @ValPar NVARCHAR(50) = ''
+)
+AS
+BEGIN
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ -- variabili
+ DECLARE @trovati INT = 0
+
+ -- inserisco CodDiesGroup
+ SELECT @trovati = COUNT(*)
+ FROM QuoteSimPar
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND NomePar = @NomePar
+ IF(@trovati = 0)
+ BEGIN
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ VALUES(@QuoteType, @CodQuote, @QuoteRev, @NomePar, @ValPar)
+ END
+ ELSE
+ BEGIN
+ UPDATE QuoteSimPar
+ SET ValPar = @ValPar
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND NomePar = @NomePar
+ END
+END
+GO
+PRINT N'Creating [dbo].[stp_RMD_getByKey]...';
+
+
+GO
+CREATE PROCEDURE [dbo].stp_RMD_getByKey
+(
+ @RawMat nvarchar(50)
+)
+AS
+ SET NOCOUNT ON;
+SELECT RawMat, ProcCost, ProcYield, CSR, SSR, SSVA, SSVR, ExtraMatCost, ExtraServCost
+FROM RawMatDet
+WHERE (RawMat = @RawMat)
+GO
+PRINT N'Creating [dbo].[stp_RPT_insertNew]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.04.28
+-- Description: insert record di stampa
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_RPT_insertNew]
+(
+ @Ticket INT,
+ @Report NVARCHAR(50),
+ @Chiave NVARCHAR(250),
+ @UserReq NVARCHAR(50),
+ @DataReq DATETIME,
+ @deleteOld BIT = 0
+)
+AS
+
+SET NOCOUNT OFF;
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- se richiesto elimino record vecchi (utile x togliere segnaposto iniziale)
+ IF(@deleteOld = 1)
+ BEGIN
+ DELETE FROM ReportPrintTicket WHERE Ticket = @Ticket
+ END
+
+ INSERT INTO ReportPrintTicket (Ticket, Report, Chiave, UserReq, DataReq)
+ VALUES (@Ticket, @Report, @Chiave, @UserReq, @DataReq)
+
+COMMIT TRAN
+GO
+PRINT N'Creating [dbo].[stp_RPT_reserveTicket]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.04.28
+-- Description: riserva un record per insert richiesta di stampa
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_RPT_reserveTicket]
+(
+ @Report nvarchar(50),
+ @UserReq nvarchar(50)
+
+)
+AS
+SET NOCOUNT OFF;
+
+DECLARE @Ticket int = 0
+ , @Chiave nvarchar(250) = '-'
+ , @DataReq datetime = GETDATE()
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ SELECT @Ticket = MAX(Ticket)
+ FROM ReportPrintTicket
+
+ SET @Ticket = ISNULL(@Ticket, 0) + 1
+
+ INSERT INTO [dbo].[ReportPrintTicket] ([Ticket], [Report], [Chiave], [UserReq], [DataReq])
+ VALUES (@Ticket, @Report, @Chiave, @UserReq, @DataReq)
+
+COMMIT TRAN
+
+SELECT Ticket, Report, Chiave, UserReq, DataReq, DataPrint
+FROM ReportPrintTicket
+WHERE Ticket = @Ticket
+GO
+PRINT N'Creating [dbo].[stp_SC2C_countRemaining]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.27
+-- Description: conteggio StandardCostList ancora da processare
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_SC2C_countRemaining]
+AS
+
+DECLARE @Date AS SMALLDATETIME = CONVERT(SMALLDATETIME,CONVERT(CHAR(8), GETDATE(), 112))
+
+SELECT COUNT(*) as RecordsIn
+FROM dbo.CostList
+WHERE DateList = @Date AND QuoteType = 'C' AND CodQuote = 0
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_SC2C_deleteForDate]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.29
+-- Description: cancellazione Cost List per data
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_SC2C_deleteForDate]
+ @Date SMALLDATETIME
+AS
+BEGIN
+
+ SET NOCOUNT ON;
+
+ DECLARE @CodQuoteDateMin BIGINT,
+ @CodQuoteDateMax BIGINT;
+
+ SET @Date = CONVERT(SMALLDATETIME,CONVERT(CHAR(8), @Date, 112))
+ SET @CodQuoteDateMin = CONVERT( BIGINT, ( RIGHT(YEAR(@Date),2) + dbo.f_padLeft(MONTH(@Date), 2,'0') + dbo.f_padLeft(DAY(@Date), 2,'0') + dbo.f_padLeft(0, 8,'0') ) )
+ SET @CodQuoteDateMax = CONVERT( BIGINT, ( RIGHT(YEAR(@Date),2) + dbo.f_padLeft(MONTH(@Date), 2,'0') + dbo.f_padLeft(DAY(@Date), 2,'0') + dbo.f_padLeft(9, 8,'9') ) )
+
+ -- cancello i dati di carico
+ DELETE FROM dbo.CostList WHERE DateList = @Date AND QuoteType = 'C'
+
+ DELETE FROM dbo.QuoteOC WHERE QuoteType = 'C' AND CodQuote >= @CodQuoteDateMin AND CodQuote <= @CodQuoteDateMax
+ DELETE FROM dbo.QuoteParam WHERE QuoteType = 'C' AND CodQuote >= @CodQuoteDateMin AND CodQuote <= @CodQuoteDateMax
+ DELETE FROM dbo.QuoteWorkExt WHERE QuoteType = 'C' AND CodQuote >= @CodQuoteDateMin AND CodQuote <= @CodQuoteDateMax
+ DELETE FROM dbo.QuoteWorkInt WHERE QuoteType = 'C' AND CodQuote >= @CodQuoteDateMin AND CodQuote <= @CodQuoteDateMax
+ DELETE FROM dbo.QuoteRM WHERE QuoteType = 'C' AND CodQuote >= @CodQuoteDateMin AND CodQuote <= @CodQuoteDateMax
+ DELETE FROM dbo.QuoteList WHERE QuoteType = 'C' AND CodQuote >= @CodQuoteDateMin AND CodQuote <= @CodQuoteDateMax
+ DELETE FROM dbo.QuoteFull_C WHERE QuoteType = 'C' AND CodQuote >= @CodQuoteDateMin AND CodQuote <= @CodQuoteDateMax
+
+ -- RIPULISCO TUTTO
+ -- TRUNCATE TABLE CostList
+ -- TRUNCATE TABLE dbo.QuoteFull_C
+
+RETURN
+
+END
+GO
+PRINT N'Creating [dbo].[stp_QL_fullDataCount]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware
+-- Mod date: 2014.05.23
+-- Description: conteggio totale record QL
+-- =============================================
+CREATE PROCEDURE dbo.stp_QL_fullDataCount
+(
+ @CodClient NVARCHAR(50) = ''
+ , @CodItem NVARCHAR(50) = ''
+ , @RawMat NVARCHAR(50) = ''
+ , @DataMin DATETIME
+ , @DataMax DATETIME
+ , @qtaMin INT = 0
+ , @qtaMax INT = 999999
+ , @QuoteType CHAR(1) = '*'
+ , @IdxQState INT = '-1'
+)
+AS
+SET NOCOUNT ON
+
+SELECT COUNT(DISTINCT CodQuote) AS num
+FROM v_QuoteFull_Q vq
+WHERE vq.CodClient = CASE WHEN ISNULL(@CodClient,'') = '' THEN vq.CodClient ELSE @CodClient END
+ AND vq.CodItem = CASE WHEN ISNULL(@CodItem,'') = '' THEN vq.CodItem ELSE @CodItem END
+ AND vq.RawMat = CASE WHEN ISNULL(@RawMat,'') = '' THEN vq.RawMat ELSE @RawMat END
+ AND vq.CodQuote BETWEEN CONVERT(NVARCHAR(30), @DataMin, 12)*10000 AND (CONVERT(NVARCHAR(30), @DataMax, 12) +1 )*10000
+ AND vq.BatchQty BETWEEN @qtaMin AND @qtaMax
+ AND vq.QuoteType = CASE WHEN @QuoteType = '*' THEN vq.QuoteType ELSE @QuoteType END
+ AND vq.IdxQState = CASE WHEN @IdxQState = -1 THEN vq.IdxQState ELSE @IdxQState END
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QLF_getLast]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware - S.E.L.
+-- Create date: 2014.04.17
+-- Description: recupera ultimo record del tipo richiesto
+-- =============================================
+create PROCEDURE [dbo].[stp_QLF_getLast]
+AS
+
+SELECT TOP 1 *
+FROM v_QuoteFull_Q
+ORDER BY CodQuote DESC
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QLF_getMinMax]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware - S.E.L.
+-- Create date: 2014.04.23
+-- Description: recupera record min/max per qta batch dato intervallo di analisi
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLF_getMinMax]
+(
+ @DateMin INT, -- formato aammgg
+ @DateMax INT -- formato aammgg
+)
+AS
+
+WITH cteMin AS
+(
+SELECT TOP 1 *
+FROM v_QuoteFull_Q
+WHERE CodQuote BETWEEN @DateMin AND @DateMax
+ORDER BY BatchQty
+)
+, cteMax AS
+(
+SELECT TOP 1 *
+FROM v_QuoteFull_Q
+WHERE CodQuote BETWEEN @DateMin AND @DateMax
+ORDER BY BatchQty DESC
+)
+
+SELECT * FROM cteMin
+UNION
+SELECT * FROM cteMax
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QLF_revHist]...';
+
+
+GO
+-- =============================================
+-- STORED PROCEDURE stp_QLF_revHist
+--
+-- Author: Steamware
+-- Create date: 2014.04.29
+-- Description: Recupera tutte le revisioni di un offerta
+-- =============================================
+create PROCEDURE stp_QLF_revHist
+(
+ @QuoteType CHAR(1) = 'Q'
+ , @CodQuote BIGINT = 0
+)
+AS
+SET NOCOUNT ON
+
+-- calcolo con aggiunta campi sommati...
+SELECT vq.*
+FROM v_QuoteFull_Q vq
+WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ORDER BY QuoteRev DESC
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QLR_getByDate]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.27
+-- Description: elaborazione OrdersHist
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLR_getByDate]
+(
+ @DataRif INT
+)
+AS
+BEGIN
+
+SET NOCOUNT ON;
+
+SELECT *
+FROM v_StdCostList
+WHERE DataRif = @DataRif
+
+END
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_checkOffers4Item]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.05.11
+-- Description: elenco dati produzione x item indicato
+-- =============================================
+CREATE PROCEDURE dbo.stp_checkOffers4Item (@CodItem NVARCHAR(50) = '')
+AS
+SELECT rmd.RawMat
+ , ISNULL(@CodItem,'-') AS CodItem
+ , COUNT(pl.EventStart) AS numRec
+FROM RawMatDet rmd
+LEFT JOIN (
+ SELECT pl.EventStart
+ , pl.RawMat
+ FROM ProductionLog pl
+ INNER JOIN DiesDet dd
+ ON pl.CodDies = dd.CodDies
+ WHERE dd.CodItem = @CodItem
+ AND ISNULL(pl.RawMat, '') <> ''
+ ) AS pl
+ ON rmd.RawMat = pl.RawMat
+WHERE ISNULL(rmd.RawMat, '') <>''
+GROUP BY rmd.RawMat
+ORDER BY rmd.RawMat
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_getDataCodPackag]...';
+
+
+GO
+-- =============================================
+-- Author: G.A.R.
+-- Mad. date: 2014-06-06
+-- Description: Ritorna il package e i dati associati dove presenti
+-- sostituisce la relativa funzione UDF f_getDataCodPackag
+-- =============================================
+CREATE PROCEDURE [stp_getDataCodPackag]
+
+ @CodItem NVARCHAR(50),
+ @CodClient NVARCHAR(50),
+ -- output variable
+ @CodPackag NVARCHAR(50) OUTPUT,
+ @TotQta DECIMAL(18, 3) OUTPUT,
+ @Weight DECIMAL(18, 6) OUTPUT,
+ @Tare DECIMAL(18, 6) OUTPUT,
+ @NumImb DECIMAL(9, 6) OUTPUT,
+ @Durata DECIMAL(18, 6) OUTPUT,
+ @LivPackag NVARCHAR(50) OUTPUT,
+ @LivPackagDet NVARCHAR(50) OUTPUT
+AS
+BEGIN
+
+ SET NOCOUNT ON;
+ SET XACT_ABORT ON;
+
+ IF EXISTS ( SELECT * FROM dbo.Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem)
+ -- primo tentativo: cerco il package dato SIA cliente che ITEM
+ BEGIN
+ SELECT TOP 1 @CodPackag = CodPackag, @TotQta = TotQta, @Weight = Weight, @Tare = Tare, @NumImb = NumImb, @Durata = Durata
+ ,@LivPackag = 'Item-Client-Package' , @LivPackagDet = @CodItem + '-' + @CodClient + '-' + CodPackag
+ FROM dbo.Package2ItemClient
+ WHERE CodClient = @CodClient AND CodItem = @CodItem
+ ORDER BY TotQta DESC
+ END
+ ELSE IF EXISTS ( SELECT * FROM Package2Item WHERE CodItem = @CodItem )
+ -- secondo tentativo: se non lo trovo cerco per SOLO ITEM
+ BEGIN
+ SELECT TOP 1 @CodPackag = CodPackag, @TotQta = TotQta, @Weight = Weight, @Tare = Tare, @NumImb = NumImb, @Durata = Durata
+ ,@LivPackag = 'Item-Package', @LivPackagDet = @CodItem + '-' + CodPackag
+ FROM dbo.Package2Item WHERE CodItem = @CodItem
+ ORDER BY TotQta DESC
+ END
+ ELSE
+ -- secondo tentativo: se non lo trovo cerco per SOLO ITEM
+ BEGIN
+ SELECT TOP 1 @CodPackag = CodPackag, @TotQta = TotQta, @Weight = Weight, @Tare = Tare, @NumImb = NumImb, @Durata = Durata
+ ,@LivPackag = 'Package', @LivPackagDet = CodPackag
+ FROM dbo.Package2 WHERE CodPackag = 0
+ END
+END
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_OH_countRemaining]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.27
+-- Description: conteggio OrdersHist ancora da processare
+-- =============================================
+CREATE PROCEDURE dbo.stp_OH_countRemaining
+AS
+
+
+SELECT COUNT(*) as RecordsIn
+FROM dbo.OrdersHist
+WHERE CodQuote = 0
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_PL_getByListLingua]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware
+-- Mod date: 2014.05.23
+-- Description: elenco calori x picklist data lingua e CodList
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_PL_getByListLingua]
+(
+ @CodList NVARCHAR(50) = '',
+ @Lingua NVARCHAR(3) = 'IT'
+)
+AS
+SET NOCOUNT ON
+
+SELECT pl.Value, ISNULL(v.Traduzione, '_'+pl.Lemma+'_') as Label
+FROM PickList pl
+ LEFT OUTER JOIN Vocabolario v ON pl.Lemma = v.Lemma
+WHERE pl.CodList = @CodList
+ AND ISNULL(v.Lingua, @Lingua) = @Lingua
+ORDER BY NumOrd
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_prt_dsQuoteFull_byChiave]...';
+
+
+GO
+-- =============================================
+-- STORED PROCEDURE stp_prt_dsQuoteFull_Q_Data
+--
+-- Author: Steamware
+-- Mod date: 2014.05.23
+-- Description: dataset stp_prt_dsQuoteFull_Q_Data per reportOffers
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_prt_dsQuoteFull_byChiave]
+(
+ @Chiave AS NVARCHAR(50) = ''
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+/*
+ Se decidiamo di separare le traduzioni dei lemmi tra Applicazione e stampa basta usare la prima cte come insert
+ nella tabella vocabolario e poi sostituire la cte con la tabella vocabolario stessa
+*/
+
+SELECT
+ -- chiave
+ Vers
+ , QuoteType
+ , CodQuote
+ , QuoteRev
+ -- valori
+ , IdxQState
+ , CodClient
+ , ClientName
+ , CodItem
+ , CodItemGroup
+ , RawMat
+ , UnitWeight
+ , BatchQty
+ , CodInco
+ , TranspZone
+ , KeyAM
+ , Note
+ , PriceOff
+ , CodClientAssoc
+ , ClientNameAssoc
+ , ItemDescr
+ , CodifProfilo
+ , ClasseMerc
+ , TipoDies
+ , CodDiesGroup
+ , DiamDies
+ , HoleNumDies
+ , DiesPrice
+ , DiesExpLife
+ , DiesEOLife
+ , DiesByClass
+ , NumDiesInList
+ , NumDiesExaust
+ , CodPlant
+ , KeyAMIL
+ , KgTeo
+ , NumSMED
+ , QuotaMan
+ , PRMWeight
+ , PWeight
+ , PTare
+ , LivPackage
+ , LivPackageDett
+ , RawMatCost
+ , RawMatExtraCost
+ , RawMatFullCost
+ , CodPackag
+ , PkgDesc
+ , FSR
+ , ProvvCost
+ , EECost
+ , GasCost
+ , DiesCost
+ , PackCost
+ , TranspCost
+ , SellCost01
+ , RefCost01
+ , SellCost04
+ , RefCost04
+ , WSR01
+ , MSR01
+ , NetProd01
+ , FC4UG01
+ , VC4UG01
+ , OH4UG01
+ , SC4UG01
+ , DSR
+ , NetProd04
+ , FC4UG04
+ , VC4UG04
+ , FVC
+ , Charge
+ , P_FVC
+ , CPS
+ , P_CPS
+ , P_FC4UG04
+ , FullCost
+ , P_FullCost
+ , MinPrice
+ , P_MinPrice
+ , P_PriceOff
+ , NetMar
+ , FCShield
+ , PckSur
+ , valid
+ , errorScore
+ , DiesPrice_sim
+ , SamplePrice
+ , DiesFullCost
+ , DiesPriceClientQuote
+ , DiesTecLife
+ , DiesCommLife
+ , MonthSalesPrev
+ , SalesPrevCost
+ , DiesFinCost
+ , ClientQuoteReven
+ , ExtraDiscountDies
+ , WSR01_sim
+ , MSR01_sim
+ , NetProd01_sim
+ , DSR_sim
+ , NetMar_sim
+ , FCShield_sim
+ , MinPrice_sim
+ , P_MinPrice_sim
+
+FROM dbo.v_QuoteFull_Q
+WHERE QuoteType = dbo.f_prt_getParameter ( 'QuoteType', @Chiave , '&')
+ AND CodQuote = dbo.f_prt_getParameter ( 'CodQuote' , @Chiave , '&')
+ AND QuoteRev = dbo.f_prt_getParameter ( 'QuoteRev' , @Chiave +'&' , '&')
+
+
+END
+GO
+PRINT N'Creating [dbo].[stp_prt_dsQuoteFull_Q_Data]...';
+
+
+GO
+-- =============================================
+-- STORED PROCEDURE stp_prt_dsQuoteFull_Q_Data
+--
+-- Author: Steamware
+-- Mod date: 2014.04.28
+-- Description: dataset stp_prt_dsQuoteFull_Q_Data per reportOffers
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_prt_dsQuoteFull_Q_Data]
+ @Ticket AS INT = 1
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+/*
+ Se decidiamo di separare le traduzioni dei lemmi tra Applicazione e stampa basta usare la prima cte come insert
+ nella tabella vocabolario e poi sostituire la cte con la tabella vocabolario stessa
+*/
+
+SELECT
+ -- chiave
+ Vers
+ , QuoteType
+ , CodQuote
+ , QuoteRev
+ -- valori
+ , IdxQState
+ , CodClient
+ , ClientName
+ , CodItem
+ , CodItemGroup
+ , RawMat
+ , UnitWeight
+ , BatchQty
+ , CodInco
+ , TranspZone
+ , KeyAM
+ , Note
+ , PriceOff
+ , CodClientAssoc
+ , ClientNameAssoc
+ , ItemDescr
+ , CodifProfilo
+ , ClasseMerc
+ , TipoDies
+ , CodDiesGroup
+ , DiamDies
+ , HoleNumDies
+ , DiesPrice
+ , DiesExpLife
+ , DiesEOLife
+ , DiesByClass
+ , NumDiesInList
+ , NumDiesExaust
+ , CodPlant
+ , KeyAMIL
+ , KgTeo
+ , NumSMED
+ , QuotaMan
+ , PRMWeight
+ , PWeight
+ , PTare
+ , LivPackage
+ , LivPackageDett
+ , RawMatCost
+ , RawMatExtraCost
+ , RawMatFullCost
+ , CodPackag
+ , PkgDesc
+ , FSR
+ , ProvvCost
+ , EECost
+ , GasCost
+ , DiesCost
+ , PackCost
+ , TranspCost
+ , SellCost01
+ , RefCost01
+ , SellCost04
+ , RefCost04
+ , WSR01
+ , MSR01
+ , NetProd01
+ , FC4UG01
+ , VC4UG01
+ , OH4UG01
+ , SC4UG01
+ , DSR
+ , NetProd04
+ , FC4UG04
+ , VC4UG04
+ , FVC
+ , Charge
+ , P_FVC
+ , CPS
+ , P_CPS
+ , P_FC4UG04
+ , FullCost
+ , P_FullCost
+ , MinPrice
+ , P_MinPrice
+ , P_PriceOff
+ , NetMar
+ , FCShield
+ , PckSur
+ , valid
+ , errorScore
+ , DiesPrice_sim
+ , SamplePrice
+ , DiesFullCost
+ , DiesPriceClientQuote
+ , DiesTecLife
+ , DiesCommLife
+ , MonthSalesPrev
+ , SalesPrevCost
+ , DiesFinCost
+ , ClientQuoteReven
+ , ExtraDiscountDies
+ , WSR01_sim
+ , MSR01_sim
+ , NetProd01_sim
+ , DSR_sim
+ , NetMar_sim
+ , FCShield_sim
+ , MinPrice_sim
+ , P_MinPrice_sim
+
+FROM dbo.v_QuoteFull_Q AS qf
+INNER JOIN dbo.ReportPrintTicket AS prt
+ ON qf.QuoteType = dbo.f_prt_getParameter ( 'QuoteType', prt.Chiave , '&')
+ AND qf.CodQuote = dbo.f_prt_getParameter ( 'CodQuote' , prt.Chiave , '&')
+ AND qf.QuoteRev = dbo.f_prt_getParameter ( 'QuoteRev' , prt.Chiave +'&' , '&')
+ AND prt.Ticket = @Ticket
+
+
+/* OLD VERSION
+WITH Cte AS -- carico i lemmi dei campi che mi servono per la stampa
+(
+SELECT Lingua,
+ 'prt1_'+ Lemma AS Lemma,
+ CASE WHEN @Lingua = 'LB'
+ THEN Lemma
+ ELSE Traduzione END
+ AS Traduzione -- il lemma corrisponde ai campi
+FROM Vocabolario
+WHERE Lemma IN ( 'ClientName'
+ ,'CodClient'
+ ,'CodItem'
+ ,'ItemDescr'
+ ,'CodifProfilo'
+ ,'ClasseMerc'
+ ,'CodClientAssoc'
+ ,'ClientNameAssoc'
+ ,'CodItemGroup'
+ ,'UnitWeight'
+ ,'RawMat'
+ ,'RawMatCost'
+ ,'RawMatExtraCost'
+ ,'RawMatFullCost'
+ ,'RawMatCost'
+ ,'RawMatExtraCost'
+ ,'BatchQty'
+ ,'ProvvCost'
+ ,'CodInco','TipoDies'
+ ,'CodDiesGroup'
+ ,'DiamDies'
+ ,'DiesPrice'
+ ,'HoleNumDies'
+ ,'DiesExpLife'
+ ,'NumDiesInList'
+ ,'DiesEOLife'
+ ,'NumDiesExaust'
+ ,'CodPlant'
+ ,'HoleNumDies'
+ ,'KeyAMIL'
+ ,'KgTeo'
+ ,'WSR01'
+ ,'NumSMED'
+ ,'MSR01'
+ ,'NetProd01'
+ ,'CodPackag'
+ ,'NetProd04'
+ ,'QuotaMan'
+ ,'LivPackage'
+ ,'LivPackageDet'
+ ,'PkgDesc'
+ ,'PRMWeight'
+ ,'DSR'
+ ,'PWeight'
+ ,'PTare'
+ ,'FSR'
+ ,'RefCost01'
+ ,'SellCost01'
+ ,'EECost'
+ ,'GasCost'
+ ,'DiesCost'
+ ,'RefCost04'
+ ,'SellCost04'
+ ,'PackCost'
+ ,'ProvvCost'
+ ,'TranspCost'
+ ,'VC4UG01'
+ ,'VC4UG04'
+ ,'SC4UG01'
+ ,'FVC'
+ ,'P_FVC'
+ ,'CPS'
+ ,'P_CPS'
+ ,'FC4UG04'
+ ,'P_FC4UG04'
+ ,'FullCost'
+ ,'P_FullCost'
+ ,'MinPrice'
+ ,'P_MinPrice'
+ ,'Charge'
+ ,'PriceOff'
+ ,'P_PriceOff'
+ ,'NetMar'
+ ,'FCShield'
+ ,'PckSur'
+ )
+),
+ctepvt AS ( -- faccio pivot dei lemmi e loro traduzioni
+ SELECT
+ Lingua,
+ prt1_BatchQty,
+ prt1_Charge,
+ prt1_ClasseMerc,
+ prt1_ClientName,
+ prt1_ClientNameAssoc,
+ prt1_CodClient,
+ prt1_CodClientAssoc,
+ prt1_CodDiesGroup,
+ prt1_CodifProfilo,
+ prt1_CodInco,
+ prt1_CodItem,
+ prt1_CodItemGroup,
+ prt1_CodPackag,
+ prt1_CodPlant,
+ prt1_CPS,
+ prt1_DiamDies,
+ prt1_DiesCost,
+ prt1_DiesEOLife,
+ prt1_DiesExpLife,
+ prt1_DiesPrice,
+ prt1_DSR,
+ prt1_EECost,
+ prt1_FC4UG04,
+ prt1_FCShield,
+ prt1_FSR,
+ prt1_FullCost,
+ prt1_FVC,
+ prt1_GasCost,
+ prt1_HoleNumDies,
+ prt1_ItemDescr,
+ prt1_KeyAMIL,
+ prt1_KgTeo,
+ prt1_LivPackage,
+ prt1_LivPackageDet,
+ prt1_MinPrice,
+ prt1_MSR01,
+ prt1_NetMar,
+ prt1_NetProd01,
+ prt1_NetProd04,
+ prt1_NumDiesExaust,
+ prt1_NumDiesInList,
+ prt1_NumSMED,
+ prt1_P_CPS,
+ prt1_P_FC4UG04,
+ prt1_P_FullCost,
+ prt1_P_FVC,
+ prt1_P_MinPrice,
+ prt1_P_PriceOff,
+ prt1_PackCost,
+ prt1_PckSur,
+ prt1_PkgDesc,
+ prt1_PriceOff,
+ prt1_PRMWeight,
+ prt1_ProvvCost,
+ prt1_PTare,
+ prt1_PWeight,
+ prt1_QuotaMan,
+ prt1_RawMat,
+ prt1_RawMatCost,
+ prt1_RawMatExtraCost,
+ prt1_RawMatFullCost,
+ prt1_RefCost01,
+ prt1_RefCost04,
+ prt1_SC4UG01,
+ prt1_SellCost01,
+ prt1_SellCost04,
+ prt1_TipoDies,
+ prt1_TranspCost,
+ prt1_UnitWeight,
+ prt1_VC4UG01,
+ prt1_VC4UG04,
+ prt1_WSR01
+ FROM ( SELECT * FROM cte
+ WHERE Lemma Like 'prt1%' ) AS tab -- al momento non serve ma se mettiamo i lemmi separati con prt1_ in vocabolario
+ PIVOT ( MIN ( Traduzione ) -- possiamo semplicemente sostituire la tab vocabolario alla cte
+ FOR Lemma IN (
+ prt1_BatchQty,
+ prt1_Charge,
+ prt1_ClasseMerc,
+ prt1_ClientName,
+ prt1_ClientNameAssoc,
+ prt1_CodClient,
+ prt1_CodClientAssoc,
+ prt1_CodDiesGroup,
+ prt1_CodifProfilo,
+ prt1_CodInco,
+ prt1_CodItem,
+ prt1_CodItemGroup,
+ prt1_CodPackag,
+ prt1_CodPlant,
+ prt1_CPS,
+ prt1_DiamDies,
+ prt1_DiesCost,
+ prt1_DiesEOLife,
+ prt1_DiesExpLife,
+ prt1_DiesPrice,
+ prt1_DSR,
+ prt1_EECost,
+ prt1_FC4UG04,
+ prt1_FCShield,
+ prt1_FSR,
+ prt1_FullCost,
+ prt1_FVC,
+ prt1_GasCost,
+ prt1_HoleNumDies,
+ prt1_ItemDescr,
+ prt1_KeyAMIL,
+ prt1_KgTeo,
+ prt1_LivPackage,
+ prt1_LivPackageDet,
+ prt1_MinPrice,
+ prt1_MSR01,
+ prt1_NetMar,
+ prt1_NetProd01,
+ prt1_NetProd04,
+ prt1_NumDiesExaust,
+ prt1_NumDiesInList,
+ prt1_NumSMED,
+ prt1_P_CPS,
+ prt1_P_FC4UG04,
+ prt1_P_FullCost,
+ prt1_P_FVC,
+ prt1_P_MinPrice,
+ prt1_P_PriceOff,
+ prt1_PackCost,
+ prt1_PckSur,
+ prt1_PkgDesc,
+ prt1_PriceOff,
+ prt1_PRMWeight,
+ prt1_ProvvCost,
+ prt1_PTare,
+ prt1_PWeight,
+ prt1_QuotaMan,
+ prt1_RawMat,
+ prt1_RawMatCost,
+ prt1_RawMatExtraCost,
+ prt1_RawMatFullCost,
+ prt1_RefCost01,
+ prt1_RefCost04,
+ prt1_SC4UG01,
+ prt1_SellCost01,
+ prt1_SellCost04,
+ prt1_TipoDies,
+ prt1_TranspCost,
+ prt1_UnitWeight,
+ prt1_VC4UG01,
+ prt1_VC4UG04,
+ prt1_WSR01 ) ) AS pvt
+)
+SELECT
+ -- chiave
+ Vers
+ ,QuoteType
+ ,CodQuote
+ ,QuoteRev
+ -- valori
+ ,BatchQty
+ ,Charge
+ ,ClasseMerc
+ ,ClientName
+ ,ClientNameAssoc
+ ,CodClient
+ ,CodClientAssoc
+ ,CodDiesGroup
+ ,CodifProfilo
+ ,CodInco
+ ,CodItem
+ ,CodItemGroup
+ ,CodPackag
+ ,CodPlant
+ ,CPS
+ ,DiamDies
+ ,DiesCost
+ ,DiesEOLife
+ ,DiesExpLife
+ ,DiesPrice
+ ,DSR
+ ,EECost
+ ,FC4UG01
+ ,FC4UG04
+ ,FCShield
+ ,FSR
+ ,FullCost
+ ,FVC
+ ,GasCost
+ ,HoleNumDies
+ ,IdxQState
+ ,ItemDescr
+ ,KeyAM
+ ,KeyAMIL
+ ,KgTeo
+ ,LivPackage
+ ,LivPackageDett
+ ,MinPrice
+ ,MSR01
+ ,NetMar
+ ,NetProd01
+ ,NetProd04
+ ,Note
+ ,NumDiesExaust
+ ,NumDiesInList
+ ,NumSMED
+ ,OH4UG01
+ ,P_CPS
+ ,P_FC4UG04
+ ,P_FullCost
+ ,P_FVC
+ ,P_MinPrice
+ ,P_PriceOff
+ ,PackCost
+ ,PckSur
+ ,PkgDesc
+ ,PriceOff
+ ,PRMWeight
+ ,ProvvCost
+ ,PTare
+ ,PWeight
+ ,QuotaMan
+ ,RawMat
+ ,RawMatCost
+ ,RawMatExtraCost
+ ,RawMatFullCost
+ ,RefCost01
+ ,RefCost04
+ ,SC4UG01
+ ,SellCost01
+ ,SellCost04
+ ,TipoDies
+ ,TranspCost
+ ,UnitWeight
+ ,VC4UG01
+ ,VC4UG04
+ ,WSR01
+ -- lemmi x traduzione etichette campi
+ ,ctepvt.*
+FROM dbo.v_QuoteFull_Q
+INNER JOIN ctepvt
+-- ON ctepvt.Lingua = 'EN' -- qui va messa la variabile della lingua di stampa
+-- ON ctepvt.Lingua = @Lingua -- 'EN' -- qui va messa la variabile della lingua di stampa
+ON ctepvt.Lingua = CASE WHEN @Lingua = 'LB' -- se richiede le Label dei campi estraggo i lemmi in inglese
+ THEN 'EN'
+ ELSE @Lingua
+ END
+*/
+
+END
+GO
+PRINT N'Creating [dbo].[stp_QFC_creaListino]...';
+
+
+GO
+
+
+
+-- =============================================
+-- STORED PROCEDURE stp_QFC_creaListino
+--
+-- Author: Steamware
+-- Mod date: 2014.05.26
+-- Description: crea un nuovo listino di costi
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QFC_creaListino]
+(
+ @RawMatCost DECIMAL(18,6) = 2,
+ @BatchQty INT = 1000
+)
+AS
+
+SET NOCOUNT ON
+
+-- questo è l'elenco delle cose da processare, in temp table / Cte x "scorrere" tutto?
+SELECT DISTINCT
+
+ CONVERT(CHAR(8), GETDATE(), 112) AS DateList
+ , die.CodItem AS CodItem
+ , CASE WHEN pl.RawMat = '' -- al momento li escludo perchè poi non ho dati sugli scarti
+ THEN '6060'
+ ELSE pl.RawMat
+ END AS RawMat
+ , @RawMatCost AS RawMatCost
+ , rm.ExtraMatCost AS RawMatExtraCost
+ , @BatchQty AS batchQty
+ , 'EXW' AS CodInco
+
+-- 'C' AS QuoteType
+-- , '' AS CodClient --'' / '05000000001' in alternativa come default
+
+FROM dbo.DiesDet AS die
+
+INNER JOIN dbo.ProductionLog AS pl
+ ON die.CodDies = pl.CodDies
+
+INNER JOIN dbo.RawMatDet AS rm
+ ON pl.RawMat = rm.RawMat
+
+INNER JOIN dbo.TabProdSc AS sc -- escludo record che non hanno dati di scarto produzione
+ ON sc.KeyAM = ( die.CodItem + '-' + pl.RawMat)
+
+WHERE ( pl.RawMat <> '' AND pl.RawMat IS NOT NULL ) -- escludo righe di produzione senza RawMat ( es. fermi o altro )
+-- AND ( die.ActLife <> 0 ) -- escludo matrici senza dati ( es. vecchie matrici senza dati attuali o nuove che non hanno ancora prodotto )
+
+--AND die.CodItem = '3DI05194'
+ORDER BY die.CodItem
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QL_delete]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2013.01.23
+-- Description: elimina record QuoteList
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_delete]
+(
+ @QuoteType_orig CHAR(1) = 'Q',
+ @CodQuote_orig BIGINT = 0,
+ @QuoteRev_orig INT = 0
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+
+ DELETE
+ FROM QuoteFull_Q
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+
+ DELETE
+ FROM QuoteFull_S
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ DELETE
+ FROM QuoteFull_R
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ DELETE
+ FROM QuoteWorkExt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ DELETE
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ DELETE
+ FROM QuoteOC
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ DELETE
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ DELETE
+ FROM QuoteRM
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ DELETE
+ FROM QuoteList
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+COMMIT TRAN
+
+
+RETURN
+GO
+PRINT N'Creating [ext].[stp_mergePackage2ItemClient]...';
+
+
+GO
+
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.11.27
+-- Description: Procedura per import dati in Package2ItemClient da dati ProductionLogRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergePackage2ItemClient]
+(
+ @source NVARCHAR(20) = 'ProductionLog', -- nome della tabella sorgente tra ProductionLogRaw e ItemsRaw
+ @dateFrom DATETIME, -- data da cui iniziare a caricare
+ @dateTo DATETIME -- data fino a cui caricare
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- import con MERGE... verifico tipo di caricamento richiesto!
+ IF @source = 'ProductionLog' -- carico da tracciato produzione
+ BEGIN
+ MERGE INTO Package2ItemClient AS Target
+ USING (
+ --SELECT dd.CodItem, plr.CodClient, plr.CodPackag, SUM(QtyOUT) AS TotQta, COUNT(*) AS NumEv
+ -- , SUM(QtyOUT) / COUNT(*) AS PesoMedio
+ -- , SUM(QtyEXT) / COUNT(*) AS TaraMedia
+ --FROM ext.ProductionLogRaw plr
+ -- INNER JOIN DiesDet dd ON plr.CodDies = dd.CodDies
+ -- WHERE ISNULL(plr.CodPackag, '') <> ''
+ --GROUP BY dd.CodItem, plr.CodClient, plr.CodPackag
+ SELECT
+ dd.CodItem
+ , pl.CodClient
+ , pl.CodPackag
+ , SUM(QtyOUT) AS TotQta
+ -- , COUNT(*) AS NumEv
+ , SUM(QtyOUT) / COUNT(*) AS PesoMedio
+ , SUM(QtyEXT) / COUNT(*) AS TaraMedia
+ -- dati produttività imballo
+ , ROUND(SUM(QtyOUT* QuotaMan) / CASE WHEN SUM(QtyOUT) = 0 THEN 1 ELSE SUM(QtyOUT) END,0) as NumImb
+ , SUM(Duration) AS Durata
+ FROM dbo.ProductionLog pl
+ INNER JOIN dbo.DiesDet dd ON pl.CodDies=dd.CodDies
+
+ WHERE pl.ProcessNum = '04'
+ AND pl.okPr = 1 AND pl.okQM = 1
+ AND ISNULL(pl.CodPackag, '') <> ''
+ AND pl.EventStart BETWEEN @dateFrom AND @dateTo
+ GROUP BY dd.CodItem, pl.CodClient, pl.CodPackag
+
+ )
+ AS Source
+ ON Target.CodItem = Source.CodItem AND Target.CodClient = Source.CodClient AND Target.CodPackag = Source.CodPackag
+ WHEN MATCHED THEN
+ UPDATE SET TotQta = Source.TotQta
+ , [Weight] = Source.PesoMedio
+ , Tare = Source.TaraMedia
+ , NumImb = Source.NumImb
+ , Durata = Source.Durata
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (CodItem, CodClient, CodPackag, TotQta, [Weight], Tare, NumImb, Durata)
+ VALUES (CodItem, CodClient, CodPackag, TotQta, PesoMedio, TaraMedia, NumImb, Durata)
+ WHEN NOT MATCHED BY SOURCE THEN
+ DELETE
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ END
+ --ELSE IF @source = 'ItemsRaw' -- carico da anagrafica
+ -- BEGIN
+ -- MERGE INTO Item2PackageClient AS Target
+ -- USING (SELECT CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup FROM ItemsRaw)
+ -- AS Source
+ -- ON Target.CodItem = Source.CodItem
+ -- WHEN MATCHED THEN
+ -- UPDATE SET ItemDescr = Source.ItemDescr, CodPlant = Source.CodPlant, UnitWeight = Source.UnitWeight, CodItemGroup = Source.CodItemGroup
+ -- WHEN NOT MATCHED BY TARGET THEN
+ -- INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup)
+ -- OUTPUT $action INTO @SummaryOfChanges;
+
+ -- END
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_mergePackage2Item]...';
+
+
+GO
+
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2014.01.15
+-- Description: Procedura per import dati in Package2Item da dati ProductionLogRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergePackage2Item]
+(
+ @source NVARCHAR(20) = 'ProductionLog', -- nome della tabella sorgente tra ProductionLogRaw e ItemsRaw
+ @dateFrom DATETIME, -- data da cui iniziare a caricare
+ @dateTo DATETIME -- data fino a cui caricare
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- import con MERGE... verifico tipo di caricamento richiesto!
+ IF @source = 'ProductionLog' -- carico da tracciato produzione
+ BEGIN
+ MERGE INTO Package2Item AS Target
+ USING (
+ --SELECT dd.CodItem, plr.CodPackag, SUM(QtyOUT) AS TotQta, COUNT(*) AS NumEv
+ -- , SUM(QtyOUT) / COUNT(*) AS PesoMedio
+ -- , SUM(QtyEXT) / COUNT(*) AS TaraMedia
+ --FROM ext.ProductionLogRaw plr
+ -- INNER JOIN DiesDet dd ON plr.CodDies = dd.CodDies
+ -- WHERE ISNULL(plr.CodPackag, '') <> ''
+ --GROUP BY dd.CodItem, plr.CodPackag
+ SELECT
+ dd.CodItem
+ , pl.CodPackag
+ , SUM(QtyOUT) AS TotQta
+ -- , COUNT(*) AS NumEv
+ , SUM(QtyOUT) / COUNT(*) AS PesoMedio
+ , SUM(QtyEXT) / COUNT(*) AS TaraMedia
+ -- dati produttività imballo
+ , ROUND(SUM(QtyOUT* QuotaMan) / CASE WHEN SUM(QtyOUT) = 0 THEN 1 ELSE SUM(QtyOUT) END,0) as NumImb
+ , SUM(Duration) AS Durata
+ FROM ProductionLog pl
+ INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies
+ WHERE pl.ProcessNum = '04'
+ AND pl.okPr = 1 AND pl.okQM = 1
+ AND ISNULL(pl.CodPackag, '') <> ''
+ AND pl.EventStart BETWEEN @dateFrom AND @dateTo
+ GROUP BY dd.CodItem, pl.CodPackag
+ )
+ AS Source
+ ON Target.CodItem = Source.CodItem AND Target.CodPackag = Source.CodPackag
+ WHEN MATCHED THEN
+ UPDATE SET TotQta = Source.TotQta
+ , [Weight] = Source.PesoMedio
+ , Tare = Source.TaraMedia
+ , NumImb = Source.NumImb
+ , Durata = Source.Durata
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (CodItem, CodPackag, TotQta, [Weight], Tare, NumImb, Durata)
+ VALUES (CodItem, CodPackag, TotQta, PesoMedio, TaraMedia, NumImb, Durata)
+ WHEN NOT MATCHED BY SOURCE THEN
+ DELETE
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ END
+ --ELSE IF @source = 'ItemsRaw' -- carico da anagrafica
+ -- BEGIN
+ -- MERGE INTO Item2Package AS Target
+ -- USING (SELECT CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup FROM ItemsRaw)
+ -- AS Source
+ -- ON Target.CodItem = Source.CodItem
+ -- WHEN MATCHED THEN
+ -- UPDATE SET ItemDescr = Source.ItemDescr, CodPlant = Source.CodPlant, UnitWeight = Source.UnitWeight, CodItemGroup = Source.CodItemGroup
+ -- WHEN NOT MATCHED BY TARGET THEN
+ -- INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup)
+ -- OUTPUT $action INTO @SummaryOfChanges;
+
+ -- END
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_mergeItemDet]...';
+
+
+GO
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.11.27
+-- Description: Procedura per import dati in ItemDet da dati ProductionLogRaw/ItemsRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergeItemDet]
+(
+ @source NVARCHAR(20) = 'ProductionLogRaw' -- nome della tabella sorgente tra ProductionLogRaw e ItemsRaw
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- import con MERGE... verifico tipo di caricamento richiesto!
+ IF @source = 'ProductionLogRaw' -- carico da tracciato produzione
+ BEGIN
+ --MERGE INTO ItemDet AS Target
+ --USING (SELECT DISTINCT CodItem FROM ext.ProductionLogRaw)
+ -- AS Source
+ --ON Target.CodItem = Source.CodItem
+ ----WHEN MATCHED THEN
+ ---- UPDATE SET ClientName = Source.ClientName
+ --WHEN NOT MATCHED BY TARGET THEN
+ -- INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, '#### - ' + CodItem, '', 0, '')
+ --OUTPUT $action INTO @SummaryOfChanges;
+ select 1
+ END
+ ELSE IF @source = 'ItemsRaw' -- carico da anagrafica
+ BEGIN
+ MERGE INTO ItemDet AS Target
+ USING (SELECT CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup, Class01, Class02, Class03, Class04, Class05 FROM ext.ItemsRaw)
+ AS Source
+ ON Target.CodItem = Source.CodItem
+ WHEN MATCHED THEN
+ UPDATE SET ItemDescr = Source.ItemDescr, CodPlant = Source.CodPlant, UnitWeight = Source.UnitWeight, CodItemGroup = Source.CodItemGroup, Class01 = Source.Class01, Class02 = Source.Class02, Class03 = Source.Class03, Class04 = Source.Class04, Class05 = Source.Class05
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup, Class01, Class02, Class03, Class04, Class05) VALUES (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup, Class01, Class02, Class03, Class04, Class05)
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ END
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_mergeClientDet]...';
+
+
+GO
+
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.11.27
+-- Description: Procedura per import dati in ClientDet da dati ProductionLogRaw/ClientsRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergeClientDet]
+(
+ @source NVARCHAR(20) = 'ProductionLogRaw' -- nome della tabella sorgente tra ProductionLogRaw e ClientsRaw
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- import con MERGE... verifico tipo di caricamento richiesto!
+ IF @source = 'ProductionLogRaw' -- carico da tracciato produzione
+ BEGIN
+ MERGE INTO ClientDet AS Target
+ USING (SELECT DISTINCT CodClient FROM ext.ProductionLogRaw)
+ AS Source
+ ON Target.CodClient = Source.CodClient
+ --WHEN MATCHED THEN
+ -- UPDATE SET ClientName = Source.ClientName
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (CodClient, ClientName, CodAg, ZipCode, City, [State], Nation, TranspZone) VALUES (CodClient, '#### - ' + CodClient, '', '', '', '', '', '')
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ END
+ ELSE IF @source = 'ClientsRaw' -- carico da anagrafica
+ BEGIN
+ MERGE INTO ClientDet AS Target
+ USING (SELECT DISTINCT CodClient, ClientName, CodAg, ZipCode, City, [State], Nation, TranspZone FROM ext.ClientsRaw)
+ AS Source
+ ON Target.CodClient = Source.CodClient
+ WHEN MATCHED THEN
+ UPDATE SET ClientName = Source.ClientName, CodAg = Source.CodAg, ZipCode = Source.ZipCode, City = Source.City, [State] = Source.[State], Nation = Source.Nation, TranspZone = Source.TranspZone
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (CodClient, ClientName, CodAg, ZipCode, City, [State], Nation, TranspZone) VALUES (CodClient, ClientName, CodAg, ZipCode, City, [State], Nation, TranspZone)
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ END
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_mergeTranspCostDet]...';
+
+
+GO
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2014.01.16
+-- Description: Procedura per import dati in ClientDet da dati ProductionLogRaw/ClientsRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergeTranspCostDet]
+(
+ @source NVARCHAR(20) = 'TranspCostRaw' -- nome della tabella sorgente tra ProductionLogRaw e ClientsRaw
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- import con MERGE... verifico tipo di caricamento richiesto!
+ IF @source = 'TranspCostRaw' -- carico da anagrafica
+ BEGIN
+ MERGE INTO TranspCostDet AS Target
+ USING (SELECT DISTINCT TranspZone, TranspCost FROM ext.TranspCostRaw)
+ AS Source
+ ON Target.TranspZone = Source.TranspZone
+ WHEN MATCHED THEN
+ UPDATE SET TranspCost = Source.TranspCost
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (TranspZone, TranspCost) VALUES (TranspZone, TranspCost)
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ END
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_mergePackage2ItemClient_OLD]...';
+
+
+GO
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.11.27
+-- Description: Procedura per import dati in Package2ItemClient da dati ProductionLogRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergePackage2ItemClient_OLD]
+(
+ @source NVARCHAR(20) = 'ProductionLogRaw' -- nome della tabella sorgente tra ProductionLogRaw e ItemsRaw
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+
+ ---- Create a temporary table variable to hold the output actions.
+ --DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- -- import con MERGE... verifico tipo di caricamento richiesto!
+ --IF @source = 'ProductionLogRaw' -- carico da tracciato produzione
+ -- BEGIN
+ -- MERGE INTO Package2ItemClient AS Target
+ -- USING (
+ -- SELECT dd.CodItem, plr.CodClient, plr.CodPackag, SUM(QtyOUT) AS TotQta, COUNT(*) AS NumEv
+ -- , SUM(QtyOUT) / COUNT(*) AS PesoMedio
+ -- , SUM(QtyEXT) / COUNT(*) AS TaraMedia
+ -- FROM ext.ProductionLogRaw plr
+ -- INNER JOIN DiesDet dd ON plr.CodDies = dd.CodDies
+ -- WHERE ISNULL(plr.CodPackag, '') <> ''
+ -- GROUP BY dd.CodItem, plr.CodClient, plr.CodPackag
+ -- )
+ -- AS Source
+ -- ON Target.CodItem = Source.CodItem AND Target.CodClient = Source.CodClient AND Target.CodPackag = Source.CodPackag
+ -- WHEN MATCHED THEN
+ -- UPDATE SET TotQty = Source.TotQta
+ -- , [Weight] = Source.PesoMedio
+ -- , Tare = Source.TaraMedia
+ -- WHEN NOT MATCHED BY TARGET THEN
+ -- INSERT (CodItem, CodClient, CodPackag, TotQty, [Weight], Tare) VALUES (CodItem, CodClient, CodPackag, TotQta, PesoMedio, TaraMedia)
+ -- OUTPUT $action INTO @SummaryOfChanges;
+
+ -- END
+ ----ELSE IF @source = 'ItemsRaw' -- carico da anagrafica
+ ---- BEGIN
+ ---- MERGE INTO Item2PackageClient AS Target
+ ---- USING (SELECT CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup FROM ItemsRaw)
+ ---- AS Source
+ ---- ON Target.CodItem = Source.CodItem
+ ---- WHEN MATCHED THEN
+ ---- UPDATE SET ItemDescr = Source.ItemDescr, CodPlant = Source.CodPlant, UnitWeight = Source.UnitWeight, CodItemGroup = Source.CodItemGroup
+ ---- WHEN NOT MATCHED BY TARGET THEN
+ ---- INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup)
+ ---- OUTPUT $action INTO @SummaryOfChanges;
+
+ ---- END
+
+ ---- Query the results of the table variable.
+ --SELECT Change, COUNT(*) AS CountPerChange
+ --FROM @SummaryOfChanges
+ --GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_mergePackage2]...';
+
+
+GO
+
+
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2014.01.15
+-- Description: Procedura per import dati in Package2Item da dati ProductionLogRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergePackage2]
+(
+ @source NVARCHAR(20) = 'ProductionLog', -- nome della tabella sorgente tra ProductionLogRaw e ItemsRaw
+ @dateFrom DATETIME, -- data da cui iniziare a caricare
+ @dateTo DATETIME -- data fino a cui caricare
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- import con MERGE... verifico tipo di caricamento richiesto!
+ IF @source = 'ProductionLog' -- carico da tracciato produzione
+ BEGIN
+ MERGE INTO Package2 AS Target
+ USING (
+ --SELECT plr.CodPackag, SUM(QtyOUT) AS TotQta, COUNT(*) AS NumEv
+ -- , SUM(QtyOUT) / COUNT(*) AS PesoMedio
+ -- , SUM(QtyEXT) / COUNT(*) AS TaraMedia
+ --FROM ext.ProductionLogRaw plr
+ -- INNER JOIN DiesDet dd ON plr.CodDies = dd.CodDies
+ -- WHERE ISNULL(plr.CodPackag, '') <> ''
+ --GROUP BY plr.CodPackag
+ SELECT
+ pl.CodPackag
+ , SUM(QtyOUT) AS TotQta
+-- , COUNT(*) AS NumEv
+ , SUM(QtyOUT) / COUNT(*) AS PesoMedio
+ , SUM(QtyEXT) / COUNT(*) AS TaraMedia
+
+ -- dati produttività imballo
+ , ROUND(SUM(QtyOUT * QuotaMan) / CASE WHEN SUM(QtyOUT) = 0 THEN 1 ELSE SUM(QtyOUT) END,0) as NumImb
+ -- , SUM(QtyOUT) AS TotOut -- unificata a TotQta
+ , SUM(Duration) AS Durata
+ FROM ProductionLog pl
+ INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies
+ WHERE pl.ProcessNum = '04'
+ AND pl.okPr = 1 AND pl.okQM = 1
+ AND ISNULL(pl.CodPackag, '') <> '' -- cmq filtro righe con package VUOTO
+ AND pl.EventStart BETWEEN @dateFrom AND @dateTo
+ GROUP BY pl.CodPackag
+ )
+ AS Source
+ ON Target.CodPackag = Source.CodPackag
+ WHEN MATCHED THEN
+ UPDATE SET TotQta = Source.TotQta
+ , [Weight] = Source.PesoMedio
+ , Tare = Source.TaraMedia
+ , NumImb = Source.NumImb
+ , Durata = Source.Durata
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (CodPackag, TotQta, [Weight], Tare, NumImb, Durata)
+ VALUES (CodPackag, TotQta, PesoMedio, TaraMedia, NumImb, Durata)
+ WHEN NOT MATCHED BY SOURCE THEN
+ DELETE
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ END
+ --ELSE IF @source = 'ItemsRaw' -- carico da anagrafica
+ -- BEGIN
+ -- MERGE INTO Item2Package AS Target
+ -- USING (SELECT CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup FROM ItemsRaw)
+ -- AS Source
+ -- ON Target.CodItem = Source.CodItem
+ -- WHEN MATCHED THEN
+ -- UPDATE SET ItemDescr = Source.ItemDescr, CodPlant = Source.CodPlant, UnitWeight = Source.UnitWeight, CodItemGroup = Source.CodItemGroup
+ -- WHEN NOT MATCHED BY TARGET THEN
+ -- INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup)
+ -- OUTPUT $action INTO @SummaryOfChanges;
+
+ -- END
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_filterProductionLogRow]...';
+
+
+GO
+
+
+-- =============================================
+-- Author:
+-- Create date: 2013.11.29
+-- Description: Procedura per pulizia dati della tabella ext.ProductionLogRaw
+--
+-- Use:
+-- EXECUTE ext.stp_filterProductionLogRow 0 -- selezione record
+-- EXECUTE ext.stp_filterProductionLogRow 1 -- cancellazione record
+--
+-- SELECT * FROM tmp.ExcludeCondFilter -- Tabella con i filtri
+-- SELECT * FROM ext.ProductionLogRaw_KO -- Tabella dove eseguo delete
+--
+-- =============================================
+CREATE PROCEDURE [ext].[stp_filterProductionLogRow]
+(
+ @flgDelete AS TINYINT = 0 -- 0 = solo select 1 = fa delete
+)
+AS
+BEGIN
+
+-- DECLARE @flgDelete AS TINYINT = 1; -- 0
+
+ DECLARE @Sql AS NVARCHAR(MAX) = '';
+ DECLARE @TotRighe AS INT = 0;
+ DECLARE @Riga AS INT = 1;
+ DECLARE @WhereCond AS NVARCHAR(4000);
+
+ IF OBJECT_ID('tempdb..#tmpTable') IS NOT NULL
+ DROP TABLE #tmpTable
+
+ -- creo sql di base x select o delete
+ IF @flgDelete = 0 -- voglio fare solo select
+ SET @Sql = 'SELECT * FROM ext.ProductionLogRaw WHERE 1=0' -- per test
+ ELSE
+ SET @Sql = 'DELETE FROM ext.ProductionLogRaw
+ WITH (TABLOCK)
+ OUTPUT deleted.* INTO ext.ProductionLogRaw_KO -- salvo i record cancellati in tabella KO
+ ( EventStart, EventEnd, CodPlant, ProcessNum, NrPos, CodDies, CodClient, OrderNum, BatchNum, ProcessType, EventType, RawMat, CodPackag, QtyIN, QtyOUT, QtyEXT, NumIN, NumOUT, QuotaPlant, QuotaMan, Tags )
+ WHERE 1=0'
+
+ -- carico in tabella i filtri ( record da cancellare )
+ SELECT ROW_NUMBER() OVER ( ORDER BY TableName, FieldName) AS Riga, *
+ INTO #tmpTable
+ FROM tmp.ExcludeCondFilter
+ WHERE TableName = 'ProductionLogRaw'
+
+ SET @TotRighe = @@ROWCOUNT;
+
+ -- accodo le condizioni di where allo statement iniziale ( collegate con OR )
+ IF @TotRighe > 0
+ BEGIN
+ WHILE @Riga <= @TotRighe
+ BEGIN
+ SELECT @WhereCond = WhereCond FROM #tmpTable WHERE Riga = @Riga
+
+ SET @Sql = @Sql + ' OR ' + @WhereCond;
+ SET @Riga = @Riga + 1;
+ END
+ END
+
+ -- Ritorno la select eseguita
+ SELECT @Sql
+ -- =======================================================
+ -- Eseguo la select/delete e ritorno i record elaborati
+ -- =======================================================
+ EXEC sp_executesql @Sql
+ SELECT @@ROWCOUNT
+
+-- SELECT * FROM ext.ProductionLogRaw_KO
+
+ IF OBJECT_ID('tempdb..#tmpTable') IS NOT NULL
+ DROP TABLE #tmpTable
+END
+GO
+PRINT N'Creating [ext].[stp_mergePackagDet]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.11.29
+-- Description: Procedura per import dati in PackagDet da dati ProductionLogRaw/PackagRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergePackagDet]
+(
+ @source NVARCHAR(20) = 'ProductionLogRaw' -- nome della tabella sorgente tra ProductionLogRaw e PackagRaw
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- import con MERGE... verifico tipo di caricamento richiesto!
+ IF @source = 'ProductionLogRaw' -- carico da tracciato produzione
+ BEGIN
+ MERGE INTO PackagDet AS Target
+ USING (SELECT DISTINCT CodPackag FROM ext.ProductionLogRaw)
+ AS Source
+ ON Target.CodPackag = Source.CodPackag
+ --WHEN MATCHED THEN
+ -- UPDATE SET PackagName = Source.PackagName
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (CodPackag, PackagDesc, RMCost, RMWeight) VALUES (CodPackag, '#### - ' + CodPackag, 0, 0)
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ END
+ ELSE IF @source = 'PackagRaw' -- carico da anagrafica
+ BEGIN
+ MERGE INTO PackagDet AS Target
+ USING (SELECT CodPackag, PackagDesc, RMCost, RMWeight FROM ext.PackagRaw)
+ AS Source
+ ON Target.CodPackag = Source.CodPackag
+ WHEN MATCHED THEN
+ UPDATE SET PackagDesc = Source.PackagDesc, RMCost = Source.RMCost, RMWeight = Source.RMWeight
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (CodPackag, PackagDesc, RMCost, RMWeight) VALUES (CodPackag, PackagDesc, RMCost, RMWeight)
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ END
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_mergeDiesGroupDet]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2014.01.08
+-- Description: Procedura per import dati in DiesDet da dati DiesGroupRaw
+-- Il caricamento principale avviene tramite DiesRaw, questa
+-- serve solo per completare i dati mancanti
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergeDiesGroupDet]
+
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ SET XACT_ABORT ON
+
+ BEGIN TRAN
+
+ -- vado ad aggiornare i dati dei gruppi di matrici SOLO x i campi <> 0 ( li ritengo come non passati )
+ MERGE INTO dbo.DiesGroupDet AS Target
+ USING ( SELECT * FROM ext.DiesGroupRaw )
+ AS Source
+ ON Target.CodDiesGroup = Source.CodDiesGroup
+ WHEN MATCHED THEN
+ UPDATE SET Price = CASE Source.Price WHEN 0 THEN Target.Price ELSE Source.Price END
+ , QtyTot = CASE Source.QtyTot WHEN 0 THEN Target.QtyTot ELSE Source.QtyTot END
+ , QtyEOL = CASE Source.QtyEOL WHEN 0 THEN Target.QtyEOL ELSE Source.QtyEOL END
+ , ExpLife = CASE Source.ExpLife WHEN 0 THEN Target.ExpLife ELSE Source.ExpLife END
+ , EOLLife = CASE Source.EOLLife WHEN 0 THEN Target.EOLLife ELSE Source.EOLLife END
+ , DateMod = GETDATE()
+ , UserMod = 'UPDATE_DiesGroupRaw'
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT ( CodDiesGroup, Price, QtyTot, QtyEOL, ExpLife, EOLLife, DateMod, UserMod )
+ VALUES ( Source.CodDiesGroup, Source.Price, Source.QtyTot, Source.QtyEOL, Source.ExpLife, Source.EOLLife, GETDATE(), 'INSERT_DiesGroupRaw' )
+-- VALUES ( CodDiesGroup, 0, 1, 0, 0.1, 0.1 ) -- mi da errori in calcoli successivi altrimenti con 0 a ExpLife e EOLLife
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ COMMIT TRAN
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_mergeAgentsDet]...';
+
+
+GO
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.12.03
+-- Description: Procedura per import dati in AgentsDet da dati ClientsRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergeAgentsDet]
+(
+ @source NVARCHAR(20) = 'ClientsRaw' -- nome della tabella sorgente tra ProductionLogRaw e AgentssRaw
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- import con MERGE... verifico tipo di caricamento richiesto!
+ IF @source = 'ClientsRaw' -- carico da anagrafica
+ BEGIN
+ MERGE INTO AgentsDet AS Target
+ USING (SELECT DISTINCT CodAg FROM ext.ClientsRaw)
+ AS Source
+ ON Target.CodAg = Source.CodAg
+ --WHEN MATCHED THEN
+ -- UPDATE SET AgentsName = Source.AgentsName, CodAg = Source.CodAg, ZipCode = Source.ZipCode, City = Source.City, [State] = Source.[State], Nation = Source.Nation
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (CodAg, Firstname, Lastname, QuotaProvvAg) VALUES (CodAg, '#### - '+ CodAg, '#### - ' + CodAg, 0)
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ END
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_updateProductionLog]...';
+
+
+GO
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.11.29
+-- Description: Procedura per import dati in ProductionLog da dati ProductionLogRaw
+--
+-- ATTENZIONE: dato l'intervallo temporale in ext.ProductionLogRaw eventuali dati precedenti in dbo.ProductionLog saranno eliminati
+-- =============================================
+CREATE PROCEDURE [ext].[stp_updateProductionLog]
+
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @deleted INT = 0
+ ,@inserted INT = 0
+ ,@fromDate DATETIME = GETDATE()
+ ,@toDate DATETIME = GETDATE()
+
+ -- primo step: calcolo inizio/fine periodo...
+ SELECT @fromDate=MIN(EventStart), @toDate=MAX(EventStart) FROM ext.ProductionLogRaw
+
+
+ -- secondo step: elimino dal tracciato tutti i dati dal periodo indicato
+ DELETE FROM dbo.ProductionLog
+ WHERE EventStart BETWEEN @fromDate AND @toDate
+
+ SELECT @deleted = ISNULL(@@ROWCOUNT,0)
+
+ -- inserisco i nuovi dati
+ INSERT INTO dbo.ProductionLog
+ SELECT * FROM ext.ProductionLogRaw
+
+ SELECT @inserted = ISNULL(@@ROWCOUNT,0)
+
+ -- riporto in output quanto eliminato/inserito
+ SELECT @deleted as RecDeleted, @inserted as RecInserted
+
+END
+GO
+PRINT N'Creating [ext].[stp_mergeRawMat]...';
+
+
+GO
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.12.02
+-- Description: Procedura per import dati in PackagDet da dati ProductionLogRaw/PackagRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergeRawMat]
+(
+ @source NVARCHAR(20) = 'ProductionLogRaw' -- nome della tabella sorgente tra ProductionLogRaw e PackagRaw
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- import con MERGE... verifico tipo di caricamento richiesto!
+ IF @source = 'ProductionLogRaw' -- carico da tracciato produzione
+ BEGIN
+ MERGE INTO RawMatDet AS Target
+ USING (SELECT DISTINCT RawMat FROM ext.ProductionLogRaw)
+ AS Source
+ ON Target.RawMat = Source.RawMat
+ --WHEN MATCHED THEN
+ -- UPDATE SET PackagName = Source.PackagName
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (RawMat, ProcCost, ProcYield, CSR) VALUES (RawMat, 0, 0, 0)
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ END
+ --ELSE IF @source = 'PackagRaw' -- carico da anagrafica
+ -- BEGIN
+ -- MERGE INTO PackagDet AS Target
+ -- USING (SELECT CodPackag, PackagDesc, RMCost, RMWeight, Tare, FullWeight FROM ext.PackagRaw)
+ -- AS Source
+ -- ON Target.CodPackag = Source.CodPackag
+ -- WHEN MATCHED THEN
+ -- UPDATE SET PackagDesc = Source.PackagDesc, RMCost = Source.RMCost, RMWeight = Source.RMWeight, Tare = Source.Tare, FullWeight = Source.FullWeight
+ -- WHEN NOT MATCHED BY TARGET THEN
+ -- INSERT (CodPackag, PackagDesc, RMCost, RMWeight, Tare, FullWeight) VALUES (CodPackag, PackagDesc, RMCost, RMWeight, Tare, FullWeight)
+ -- OUTPUT $action INTO @SummaryOfChanges;
+
+ -- END
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_mergePackage2_OLD]...';
+
+
+GO
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2014.01.15
+-- Description: Procedura per import dati in Package2Item da dati ProductionLogRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergePackage2_OLD]
+(
+ @source NVARCHAR(20) = 'ProductionLogRaw' -- nome della tabella sorgente tra ProductionLogRaw e ItemsRaw
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+
+ ---- Create a temporary table variable to hold the output actions.
+ --DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- -- import con MERGE... verifico tipo di caricamento richiesto!
+ --IF @source = 'ProductionLogRaw' -- carico da tracciato produzione
+ -- BEGIN
+ -- MERGE INTO Package2 AS Target
+ -- USING (
+ -- SELECT plr.CodPackag, SUM(QtyOUT) AS TotQta, COUNT(*) AS NumEv
+ -- , SUM(QtyOUT) / COUNT(*) AS PesoMedio
+ -- , SUM(QtyEXT) / COUNT(*) AS TaraMedia
+ -- FROM ext.ProductionLogRaw plr
+ -- INNER JOIN DiesDet dd ON plr.CodDies = dd.CodDies
+ -- WHERE ISNULL(plr.CodPackag, '') <> ''
+ -- GROUP BY plr.CodPackag
+ -- )
+ -- AS Source
+ -- ON Target.CodPackag = Source.CodPackag
+ -- WHEN MATCHED THEN
+ -- UPDATE SET TotQty = Source.TotQta
+ -- , [Weight] = Source.PesoMedio
+ -- , Tare = Source.TaraMedia
+ -- WHEN NOT MATCHED BY TARGET THEN
+ -- INSERT (CodPackag, TotQty, [Weight], Tare) VALUES (CodPackag, TotQta, PesoMedio, TaraMedia)
+ -- OUTPUT $action INTO @SummaryOfChanges;
+
+ -- END
+ ----ELSE IF @source = 'ItemsRaw' -- carico da anagrafica
+ ---- BEGIN
+ ---- MERGE INTO Item2Package AS Target
+ ---- USING (SELECT CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup FROM ItemsRaw)
+ ---- AS Source
+ ---- ON Target.CodItem = Source.CodItem
+ ---- WHEN MATCHED THEN
+ ---- UPDATE SET ItemDescr = Source.ItemDescr, CodPlant = Source.CodPlant, UnitWeight = Source.UnitWeight, CodItemGroup = Source.CodItemGroup
+ ---- WHEN NOT MATCHED BY TARGET THEN
+ ---- INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup)
+ ---- OUTPUT $action INTO @SummaryOfChanges;
+
+ ---- END
+
+ ---- Query the results of the table variable.
+ --SELECT Change, COUNT(*) AS CountPerChange
+ --FROM @SummaryOfChanges
+ --GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_mergePackage2Item_OLD]...';
+
+
+GO
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2014.01.15
+-- Description: Procedura per import dati in Package2Item da dati ProductionLogRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergePackage2Item_OLD]
+(
+ @source NVARCHAR(20) = 'ProductionLogRaw' -- nome della tabella sorgente tra ProductionLogRaw e ItemsRaw
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+
+ ---- Create a temporary table variable to hold the output actions.
+ --DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- -- import con MERGE... verifico tipo di caricamento richiesto!
+ --IF @source = 'ProductionLogRaw' -- carico da tracciato produzione
+ -- BEGIN
+ -- MERGE INTO Package2Item AS Target
+ -- USING (
+ -- SELECT dd.CodItem, plr.CodPackag, SUM(QtyOUT) AS TotQta, COUNT(*) AS NumEv
+ -- , SUM(QtyOUT) / COUNT(*) AS PesoMedio
+ -- , SUM(QtyEXT) / COUNT(*) AS TaraMedia
+ -- FROM ext.ProductionLogRaw plr
+ -- INNER JOIN DiesDet dd ON plr.CodDies = dd.CodDies
+ -- WHERE ISNULL(plr.CodPackag, '') <> ''
+ -- GROUP BY dd.CodItem, plr.CodPackag
+ -- )
+ -- AS Source
+ -- ON Target.CodItem = Source.CodItem AND Target.CodPackag = Source.CodPackag
+ -- WHEN MATCHED THEN
+ -- UPDATE SET TotQty = Source.TotQta
+ -- , [Weight] = Source.PesoMedio
+ -- , Tare = Source.TaraMedia
+ -- WHEN NOT MATCHED BY TARGET THEN
+ -- INSERT (CodItem, CodPackag, TotQty, [Weight], Tare) VALUES (CodItem, CodPackag, TotQta, PesoMedio, TaraMedia)
+ -- OUTPUT $action INTO @SummaryOfChanges;
+
+ -- END
+ ----ELSE IF @source = 'ItemsRaw' -- carico da anagrafica
+ ---- BEGIN
+ ---- MERGE INTO Item2Package AS Target
+ ---- USING (SELECT CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup FROM ItemsRaw)
+ ---- AS Source
+ ---- ON Target.CodItem = Source.CodItem
+ ---- WHEN MATCHED THEN
+ ---- UPDATE SET ItemDescr = Source.ItemDescr, CodPlant = Source.CodPlant, UnitWeight = Source.UnitWeight, CodItemGroup = Source.CodItemGroup
+ ---- WHEN NOT MATCHED BY TARGET THEN
+ ---- INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup)
+ ---- OUTPUT $action INTO @SummaryOfChanges;
+
+ ---- END
+
+ ---- Query the results of the table variable.
+ --SELECT Change, COUNT(*) AS CountPerChange
+ --FROM @SummaryOfChanges
+ --GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_mergeCost2Plant]...';
+
+
+GO
+
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.12.03
+-- Description: Procedura per import dati in Cost2Plant da dati ProductionLogRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergeCost2Plant]
+(
+ @source NVARCHAR(20) = 'ProductionLogRaw' -- nome della tabella sorgente tra ProductionLogRaw
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- import con MERGE... verifico tipo di caricamento richiesto!
+ IF @source = 'ProductionLogRaw' -- carico da tracciato produzione
+ BEGIN
+ MERGE INTO Cost2Plant AS Target
+ USING (SELECT DISTINCT CodPlant, ProcessNum FROM ext.ProductionLogRaw)
+ AS Source
+ ON Target.CodPlant = Source.CodPlant
+ --WHEN MATCHED THEN
+ -- UPDATE SET PackagName = Source.PackagName
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (CodPlant, ProcessNum, FC, VC, OH, SC, QuotaPlantStd, QuotaManStd) VALUES (CodPlant, ProcessNum, 0,0,0,0,1,1 ) --> i valori sono stati caricati a mano???
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ END
+ --ELSE IF @source = 'PackagRaw' -- carico da anagrafica
+ -- BEGIN
+ -- MERGE INTO PackagDet AS Target
+ -- USING (SELECT CodPackag, PackagDesc, RMCost, RMWeight, Tare, FullWeight FROM ext.PackagRaw)
+ -- AS Source
+ -- ON Target.CodPackag = Source.CodPackag
+ -- WHEN MATCHED THEN
+ -- UPDATE SET PackagDesc = Source.PackagDesc, RMCost = Source.RMCost, RMWeight = Source.RMWeight, Tare = Source.Tare, FullWeight = Source.FullWeight
+ -- WHEN NOT MATCHED BY TARGET THEN
+ -- INSERT (CodPackag, PackagDesc, RMCost, RMWeight, Tare, FullWeight) VALUES (CodPackag, PackagDesc, RMCost, RMWeight, Tare, FullWeight)
+ -- OUTPUT $action INTO @SummaryOfChanges;
+
+ -- END
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_mergeDiesDet]...';
+
+
+GO
+
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.12.02
+-- Description: Procedura per import dati in DiesDet da dati ProductionLogRaw/DiesRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergeDiesDet]
+
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ SET XACT_ABORT ON
+
+ BEGIN tran
+
+ -- =======================================
+ -- ora aggiungiamo eventuali item mancanti
+ -- =======================================
+ MERGE INTO ItemDet AS Target
+ USING (SELECT DISTINCT CodItem FROM ext.DiesRaw)
+ AS Source
+ ON Target.CodItem = Source.CodItem
+ --WHEN MATCHED THEN
+ -- UPDATE SET ClientName = Source.ClientName
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, '#### - ' + CodItem, '', 0, '')
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ -- =================================================
+ -- Carico i dati dei GRUPPI DI MATRICI ( DiesGroupDet ) mancanti
+ -- =================================================
+ MERGE INTO dbo.DiesGroupDet AS Target
+ USING (
+ SELECT CodDiesGroup
+ , ISNULL ( AVG( Price ),0) AS Price -- prezzo medio ( valori nulli non considerati )
+ , COUNT (*) AS QtyTot -- N. Matrici nel gruppo
+ , COUNT ( CASE Active WHEN 0 THEN 1 END ) AS QtyEOL -- Qta Matrici rottamate
+ , ISNULL( AVG( ExpLife ), 0 ) AS ExpLife -- Vita stimata matrice ( iniziale )
+ , ISNULL( AVG ( CASE WHEN Active = 0 AND ActLife > 5000 THEN ActLife END ),0 ) AS EOLLife -- solo Matrici rottamate e vita > 5000KG
+ FROM ext.DiesRaw
+ GROUP BY CodDiesGroup
+ ) AS Source
+ ON Target.CodDiesGroup = Source.CodDiesGroup
+ --WHEN MATCHED THEN
+ -- UPDATE SET CodDiesGroup = Source.CodDiesGroup, Price = Source.Price, QtyTot = Source.QtyTot
+ -- , QtyEOL = Source.QtyEOL, ExpLife = Source.ExpLife, EOLLife = Source.EOLLife
+ -- , DateMod = GETDATE(), UserMod = 'IMPORT_DiesRaw'
+
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT ( CodDiesGroup, Price, QtyTot, QtyEOL, ExpLife, EOLLife, DateMod ,UserMod )
+ VALUES ( CodDiesGroup, Source.Price, Source.QtyTot, Source.QtyEOL, Source.ExpLife, Source.EOLLife, GETDATE(), 'IMPORT_DiesRaw' ) -- mi da errori in calcoli successivi altrimenti con zero a ExpLife e EOLLife
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ -- =======================================
+ -- ora carico i dati delle singole matrici
+ -- =======================================
+ MERGE INTO DiesDet AS Target
+ USING (SELECT CodDies, HoleNum, CodItem, CodDiesGroup, Price, ExpLife, ActLife, Active FROM ext.DiesRaw)
+ AS Source
+ ON Target.CodDies = Source.CodDies
+ WHEN MATCHED THEN
+ UPDATE SET HoleNum = Source.HoleNum, CodItem = Source.CodItem, CodDiesGroup = Source.CodDiesGroup, Price = Source.Price, ExpLife = Source.ExpLife, ActLife = Source.ActLife, Active = Source.Active
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (CodDies, HoleNum, CodItem, CodDiesGroup, Price, ExpLife, ActLife, Active) VALUES (CodDies, HoleNum, CodItem, CodDiesGroup, Price, ExpLife, ActLife, Active)
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ -- =================================================
+ -- Aggiorno i dati dei GRUPPI DI MATRICI ( DiesGroupDet )
+ -- con tutti i dati presenti in dbo.DiesDet ( nel caso di aggiornamento parziale )
+ -- =================================================
+ MERGE INTO dbo.DiesGroupDet AS Target
+ USING (
+ SELECT CodDiesGroup
+ , ISNULL ( AVG( Price ),0) AS Price -- prezzo medio ( valori nulli non considerati )
+ , COUNT (*) AS QtyTot -- N. Matrici nel gruppo
+ , COUNT ( CASE Active WHEN 0 THEN 1 END ) AS QtyEOL -- Qta Matrici rottamate
+ , ISNULL( AVG( ExpLife ), 0 ) AS ExpLife -- Vita stimata matrice ( iniziale )
+ , ISNULL( AVG ( CASE WHEN Active = 0 AND ActLife > 5000 THEN ActLife END ),0 ) AS EOLLife -- solo Matrici rottamate e vita > 5000KG
+ FROM dbo.DiesDet
+ GROUP BY CodDiesGroup
+ ) AS Source
+ ON Target.CodDiesGroup = Source.CodDiesGroup
+ WHEN MATCHED THEN
+ UPDATE SET CodDiesGroup = Source.CodDiesGroup, Price = Source.Price, QtyTot = Source.QtyTot
+ , QtyEOL = Source.QtyEOL, ExpLife = Source.ExpLife, EOLLife = Source.EOLLife
+ , DateMod = GETDATE(), UserMod = 'UPDATE_DiesDet'
+
+ WHEN NOT MATCHED BY TARGET THEN -- nel caso siano mancanti
+ INSERT ( CodDiesGroup, Price, QtyTot, QtyEOL, ExpLife, EOLLife, DateMod ,UserMod )
+ VALUES ( CodDiesGroup, Source.Price, Source.QtyTot, Source.QtyEOL, Source.ExpLife, Source.EOLLife, GETDATE(), 'IMPORT_DiesDet' )
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ ---- a questo punto calcolo il VERO update dalle inforamzioni di dbo.DiesDet --> dbo.DiesGroupDet
+ --MERGE INTO dbo.DiesGroupDet AS Target
+ --USING (
+ -- SELECT coddiesgroup,
+ -- Avg(Isnull(price, 0)) AS Price,
+ -- Count(*) AS QtyTot,
+ -- Count(*) - Sum(Active) AS QtyEOL,
+ -- Avg(Isnull(ExpLife, 0.1)) AS ExpLife, -- mi da errori in calcoli successivi altrimenti con zero a ExpLife e EOLLife
+ -- Sum(Isnull(ActLife * (1 - Active), 0)) / (Count(*) - Sum(Active)) AS EOLLife
+ -- FROM dbo.DiesDet
+ -- WHERE ActLife > 5000
+ -- GROUP BY CodDiesGroup
+ -- HAVING Count(*) > Sum(Active) -- ci siano rottamate
+ -- )
+ -- AS Source
+ --ON Target.CodDiesGroup = Source.CodDiesGroup
+ --WHEN MATCHED THEN
+ -- UPDATE SET Price = Source.Price, QtyTot = Source.QtyTot, QtyEOL = Source.QtyEOL, ExpLife = Source.ExpLife, EOLLife = Source.EOLLife
+ --OUTPUT $action INTO @SummaryOfChanges;
+
+ COMMIT tran
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_mergePlantsDet]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.12.03
+-- Description: Procedura per import dati in PlantsDet da dati ProductionLogRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergePlantsDet]
+(
+ @source NVARCHAR(20) = 'ProductionLogRaw' -- nome della tabella sorgente tra ProductionLogRaw e PackagRaw
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- import con MERGE... verifico tipo di caricamento richiesto!
+ IF @source = 'ProductionLogRaw' -- carico da tracciato produzione
+ BEGIN
+ MERGE INTO PlantsDet AS Target
+ USING (SELECT DISTINCT CodPlant FROM ext.ProductionLogRaw)
+ AS Source
+ ON Target.CodPlant = Source.CodPlant
+ --WHEN MATCHED THEN
+ -- UPDATE SET PackagName = Source.PackagName
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT (CodPlant, Descript) VALUES (CodPlant, 'Plant - ' + CodPlant)
+ OUTPUT $action INTO @SummaryOfChanges;
+
+ END
+ --ELSE IF @source = 'PackagRaw' -- carico da anagrafica
+ -- BEGIN
+ -- MERGE INTO PackagDet AS Target
+ -- USING (SELECT CodPackag, PackagDesc, RMCost, RMWeight, Tare, FullWeight FROM ext.PackagRaw)
+ -- AS Source
+ -- ON Target.CodPackag = Source.CodPackag
+ -- WHEN MATCHED THEN
+ -- UPDATE SET PackagDesc = Source.PackagDesc, RMCost = Source.RMCost, RMWeight = Source.RMWeight, Tare = Source.Tare, FullWeight = Source.FullWeight
+ -- WHEN NOT MATCHED BY TARGET THEN
+ -- INSERT (CodPackag, PackagDesc, RMCost, RMWeight, Tare, FullWeight) VALUES (CodPackag, PackagDesc, RMCost, RMWeight, Tare, FullWeight)
+ -- OUTPUT $action INTO @SummaryOfChanges;
+
+ -- END
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
+GO
+PRINT N'Creating [ext].[stp_mergeOrdersHist]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.22
+-- Description: Procedura per import dati in OrdersHist da dati OrdersHistRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergeOrdersHist]
+(
+ @source NVARCHAR(20) = 'OrdersHistRaw' -- nome della tabella sorgente
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- import con MERGE... verifico tipo di caricamento richiesto!
+ IF @source = 'OrdersHistRaw' -- carico da tracciato produzione
+ BEGIN
+
+ MERGE INTO dbo.OrdersHist AS Target
+ USING(
+ SELECT OrdNum,
+ OrdRow,
+ OrdDate,
+ CodClient,
+ CodItem,
+ RawMat,
+ RawMatCost,
+ BatchQty,
+ CodInco,
+ OrdPrice,
+ RawMatExtraCost,
+ PriceOff,
+ OrdQty,
+ ProvvCost
+ FROM ext.OrdersHistRaw ) AS Source
+ ON Target.Ordnum = Source.Ordnum AND Target.Ordrow = Source.Ordrow
+
+ -- non faccio aggiornamento dei dati oppure potrei farlo solo per le righe non elaborate cioè con Codquote non valorizzato
+ --WHEN MATCHED
+ --THEN UPDATE SET
+ -- Orddate = Source.OrdDate,
+ -- Codclient = Source.CodClient,
+ -- Coditem = Source.CodItem,
+ -- Rawmat = Source.RawMat,
+ -- Rawmatcost = Source.RawMatCost,
+ -- Batchqty = Source.BatchQty,
+ -- Codinco = Source.CodInco,
+ -- Ordprice = Source.OrdPrice,
+ -- Quotetype = Source.QuoteType,
+ -- Codquote = Source.CodQuote,
+ -- Quoterev = Source.QuoteRev,
+ -- Endcalc = Source.EndCalc
+
+ WHEN NOT MATCHED BY TARGET
+ THEN INSERT ( OrdNum,
+ OrdRow,
+ OrdDate,
+ CodClient,
+ CodItem,
+ RawMat,
+ RawMatCost,
+ BatchQty,
+ CodInco,
+ OrdPrice,
+ RawMatExtraCost,
+ PriceOff,
+ OrdQty,
+ ProvvCost
+ --,Quotetype
+ --,Codquote
+ --,Quoterev
+ --,Endcalc
+ )
+ VALUES( OrdNum, OrdRow, OrdDate, CodClient, CodItem, RawMat, RawMatCost, BatchQty, CodInco, OrdPrice, RawMatExtraCost, PriceOff, OrdQty, ProvvCost ) -- , QuoteType, CodQuote, QuoteRev, EndCalc )
+ OUTPUT $action INTO @SummaryOfChanges;
+ END
+
+ -- aggiorno indici tabella ( attenzione durata per tabelle grandi )
+ ALTER INDEX ALL ON dbo.OrdersHist
+ REBUILD WITH ( FILLFACTOR = 100, SORT_IN_TEMPDB = ON ) ; -- ,STATISTICS_NORECOMPUTE = ON )
+
+ -- aggiorno statistiche tabella
+ UPDATE STATISTICS dbo.OrdersHist WITH FULLSCAN;
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
+GO
+PRINT N'Creating [tmp].[importItemsRaw]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.11.29
+-- Description: Procedura per import dati in tabella tmp da file csv
+-- =============================================
+CREATE PROCEDURE [tmp].[importItemsRaw]
+(
+ @fileType NVARCHAR(50) = 'ItemsRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'ItemsRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE tmp.ItemsRaw
+
+ -- carico dati bulk!
+ BULK INSERT tmp.ItemsRaw
+ FROM 'e:\test\ItemsRaw.csv'
+ WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorItems.log')
+ --WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorItems.log', CODEPAGE = '1252')
+
+ SELECT COUNT(*) as RecordsIn FROM tmp.ItemsRaw
+
+ END
+
+END
+GO
+PRINT N'Creating [tmp].[convertTranspCostRaw]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.11.28
+-- Description: Procedura per conversioen e tipizzazione dati da tmp a ext x TranspCostRaw
+-- =============================================
+CREATE PROCEDURE [tmp].[convertTranspCostRaw]
+(
+ @fileType NVARCHAR(50) = 'TranspCostRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'TranspCostRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE ext.TranspCostRaw
+
+ -- inserisco con cast valori...
+ INSERT ext.TranspCostRaw
+ WITH (TABLOCK)
+ (TranspZone, TranspCost)
+ SELECT
+ TranspZone,
+ MAX(CAST( CAST( REPLACE( '0' + TranspCost,',','.' )AS float )AS decimal( 18,9 ))) AS TranspCost
+ FROM tmp.TranspCostRaw
+ GROUP BY TranspZone
+
+ SELECT COUNT(*) as RecordsIn FROM ext.TranspCostRaw
+ END
+
+END
+GO
+PRINT N'Creating [tmp].[importDiesGroupRaw]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.12.02
+-- Description: Procedura per import dati in tabella tmp da file csv
+-- =============================================
+CREATE PROCEDURE [tmp].[importDiesGroupRaw]
+(
+ @fileType NVARCHAR(50) = 'DiesGroupRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'DiesGroupRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE tmp.DiesGroupRaw
+
+ -- carico dati bulk!
+ BULK INSERT tmp.DiesGroupRaw
+ FROM 'e:\test\DiesGroupRaw.csv'
+ WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorDiesGroup.log')
+ --WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorDiesGroup.log', CODEPAGE = '1252')
+
+ SELECT COUNT(*) as RecordsIn FROM tmp.DiesGroupRaw
+
+ END
+
+END
+GO
+PRINT N'Creating [tmp].[importTranspCostRaw]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2014.01.16
+-- Description: Procedura per import dati in tabella tmp da file csv
+-- =============================================
+create PROCEDURE [tmp].[importTranspCostRaw]
+(
+ @fileType NVARCHAR(50) = 'TranspCostRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'TranspCostRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE tmp.TranspCostRaw
+
+ -- carico dati bulk!
+ BULK INSERT tmp.TranspCostRaw
+ FROM 'e:\test\TranspCostRaw.csv'
+ WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorTranspCost.log')
+ --WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorTranspCost.log', CODEPAGE = '1252')
+
+ SELECT COUNT(*) as RecordsIn FROM tmp.TranspCostRaw
+
+ END
+
+END
+GO
+PRINT N'Creating [tmp].[convertDiesRaw]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.12.02
+-- Description: Procedura per conversione e tipizzazione dati da tmp a ext x DiesRaw
+-- =============================================
+CREATE PROCEDURE [tmp].[convertDiesRaw]
+(
+ @fileType NVARCHAR(50) = 'DiesRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'DiesRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE ext.DiesRaw
+
+ -- inserisco con cast valori...
+ INSERT ext.DiesRaw
+ WITH (TABLOCK)
+ ( CodDies, HoleNum, CodItem, CodDiesGroup, Price, ExpLife, ActLife, Active )
+ SELECT
+ CodDies,
+ CAST(ISNULL(HoleNum,0) AS INT) AS HoleNum,
+ CodItem,
+ CodDiesGroup,
+ CAST( CAST( REPLACE( '0' + Price,',','.' )AS float )AS decimal( 9,3 )) AS Price,
+ CAST( CAST( REPLACE( '0' + ExpLife,',','.' )AS float )AS decimal( 9,2 )) AS ExpLife,
+ CAST( CAST( REPLACE( '0' + ActLife,',','.' )AS float )AS decimal( 9,2 )) AS ActLife,
+ CAST(ISNULL(Active,0) AS INT) AS Active
+ FROM tmp.DiesRaw;
+
+ SELECT COUNT(*) as RecordsIn FROM ext.DiesRaw
+ END
+
+END
+GO
+PRINT N'Creating [tmp].[convertClientsRaw]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.11.28
+-- Description: Procedura per conversioen e tipizzazione dati da tmp a ext x ClientsRaw
+-- =============================================
+CREATE PROCEDURE [tmp].[convertClientsRaw]
+(
+ @fileType NVARCHAR(50) = 'ClientsRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'ClientsRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE ext.ClientsRaw
+
+ -- inserisco con cast valori...
+ INSERT ext.ClientsRaw
+ WITH (TABLOCK)
+ ( CodClient, ClientName, CodAg, ZipCode, City, [State], Nation, TranspZone)
+ SELECT
+ CodClient,
+ ClientName,
+ CodAg,
+ ZipCode,
+ City,
+ [State],
+ Nation,
+ TranspZone
+ FROM tmp.ClientsRaw;
+
+ SELECT COUNT(*) as RecordsIn FROM ext.ClientsRaw
+ END
+
+END
+GO
+PRINT N'Creating [tmp].[importDiesRaw]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.12.02
+-- Description: Procedura per import dati in tabella tmp da file csv
+-- =============================================
+create PROCEDURE [tmp].[importDiesRaw]
+(
+ @fileType NVARCHAR(50) = 'DiesRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'DiesRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE tmp.DiesRaw
+
+ -- carico dati bulk!
+ BULK INSERT tmp.DiesRaw
+ FROM 'e:\test\DiesRaw.csv'
+ WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorDies.log')
+ --WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorDies.log', CODEPAGE = '1252')
+
+ SELECT COUNT(*) as RecordsIn FROM tmp.DiesRaw
+
+ END
+
+END
+GO
+PRINT N'Creating [tmp].[convertItemsRaw]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.11.28
+-- Description: Procedura per conversioen e tipizzazione dati da tmp a ext x ItemsRaw
+-- =============================================
+CREATE PROCEDURE [tmp].[convertItemsRaw]
+(
+ @fileType NVARCHAR(50) = 'ItemsRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'ItemsRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE ext.ItemsRaw
+
+ -- inserisco con cast valori...
+ INSERT ext.ItemsRaw
+ WITH (TABLOCK)
+ ( CodItem, ItemDescr, UnitWeight, CodPlant, CodItemGroup, Class01, Class02, Class03, Class04, Class05 )
+ SELECT DISTINCT
+ CodItem,
+ ItemDescr,
+ CAST( CAST( REPLACE( '0' + UnitWeight,',','.' )AS float )AS decimal( 9,3 )) AS UnitWeight,
+ CodPlant,
+ CodItemGroup,
+ Class01,
+ Class02,
+ Class03,
+ Class04,
+ Class05
+ FROM tmp.ItemsRaw;
+
+ SELECT COUNT(*) as RecordsIn FROM ext.ItemsRaw
+ END
+
+END
+GO
+PRINT N'Creating [tmp].[convertDiesGroupRaw]...';
+
+
+GO
+
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2014.01.08
+-- Description: Procedura per conversione e tipizzazione dati da tmp a ext x DiesGroupRaw
+-- =============================================
+CREATE PROCEDURE [tmp].[convertDiesGroupRaw]
+(
+ @fileType NVARCHAR(50) = 'DiesGroupRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'DiesGroupRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE ext.DiesGroupRaw
+
+ -- inserisco con cast valori...
+ INSERT ext.DiesGroupRaw
+ WITH (TABLOCK)
+ ( CodDiesGroup, Price, QtyTot, QtyEOL, ExpLife, EOLLife)
+ SELECT
+ CodDiesGroup,
+ CAST( CAST( REPLACE( '0' + REPLACE(Price,'.',''),',','.' ) AS float )AS decimal( 9,3 )) AS Price,
+ CAST(ISNULL(QtyTot,0) AS INT) AS QtyTot,
+ CAST(ISNULL(QtyEOL,0) AS INT) AS QtyEOL,
+ CAST( CAST( REPLACE( '0' + REPLACE(ExpLife,'.',''),',','.' ) AS float )AS decimal( 9,2 )) AS ExpLife,
+ CAST( CAST( REPLACE( '0' + REPLACE(EOLLife,'.',''),',','.' ) AS float )AS decimal( 9,2 )) AS EOLLife
+ FROM tmp.DiesGroupRaw;
+
+ SELECT COUNT(*) as RecordsIn FROM ext.DiesGroupRaw
+ END
+
+END
+GO
+PRINT N'Creating [tmp].[convertPackagRaw]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.11.29
+-- Description: Procedura per conversioen e tipizzazione dati da tmp a ext x PackagRaw
+-- =============================================
+CREATE PROCEDURE [tmp].[convertPackagRaw]
+(
+ @fileType NVARCHAR(50) = 'PackagRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'PackagRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE ext.PackagRaw
+
+ -- inserisco con cast valori...
+ INSERT ext.PackagRaw
+ WITH (TABLOCK)
+ ( CodPackag, PackagDesc, RMCost, RMWeight, Tare, FullWeight )
+ SELECT
+ CodPackag,
+ PackagDesc,
+ CAST( CAST( REPLACE( '0' + RMCost,',','.' )AS float )AS decimal( 9,3 )) AS RMCost,
+ CAST( CAST( REPLACE( '0' + RMWeight,',','.' )AS float )AS decimal( 9,4 )) AS RMWeight,
+ CAST( CAST( REPLACE( '0' + Tare,',','.' )AS float )AS decimal( 9,4 )) AS Tare,
+ CAST( CAST( REPLACE( '0' + FullWeight,',','.' )AS float )AS decimal( 9,4 )) AS FullWeight
+ FROM tmp.PackagRaw;
+
+ SELECT COUNT(*) as RecordsIn FROM ext.PackagRaw
+ END
+
+END
+GO
+PRINT N'Creating [tmp].[importPackagRaw]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.11.29
+-- Description: Procedura per import dati in tabella tmp da file csv
+-- =============================================
+create PROCEDURE [tmp].[importPackagRaw]
+(
+ @fileType NVARCHAR(50) = 'PackagRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'PackagRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE tmp.PackagRaw
+
+ -- carico dati bulk!
+ BULK INSERT tmp.PackagRaw
+ FROM 'e:\test\PackagRaw.csv'
+ WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorPackag.log')
+ --WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorPackag.log', CODEPAGE = '1252')
+
+ SELECT COUNT(*) as RecordsIn FROM tmp.PackagRaw
+
+ END
+
+END
+GO
+PRINT N'Creating [tmp].[convertProductionLogRaw]...';
+
+
+GO
+
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.11.28
+-- Description: Procedura per conversioen e tipizzazione dati da tmp a ext x ProductionLogRaw
+-- =============================================
+CREATE PROCEDURE [tmp].[convertProductionLogRaw]
+(
+ @fileType NVARCHAR(50) = 'ProductionLogRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'ProductionLogRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE ext.ProductionLogRaw
+
+ -- inserisco con cast valori...
+ INSERT ext.ProductionLogRaw
+ WITH (TABLOCK)
+ ( EventStart, EventEnd, CodPlant, ProcessNum, NrPos, CodDies, CodClient, OrderNum, BatchNum, ProcessType, EventType, RawMat, CodPackag, QtyIN, QtyOUT, QtyEXT, NumIN, NumOUT, QuotaPlant, QuotaMan, Tags, okPr, okQM, okSc, okDi )
+
+ SELECT
+ dbo.f_dtFromRaw( EventStart ) AS EventStart, -- record nulli sono già stati cancellati
+ dbo.f_dtFromRaw( EventEnd ) AS EventEnd, -- record nulli sono già stati cancellati
+ dbo.f_trim(ISNULL(CodPlant ,'')),
+ dbo.f_trim(ISNULL(ProcessNum ,'')),
+ dbo.f_trim(ISNULL(NrPos ,'')),
+ dbo.f_trim(ISNULL(CodDies ,'')),
+ dbo.f_trim(ISNULL(CodClient ,'')),
+ dbo.f_trim(ISNULL(OrderNum ,'')),
+ dbo.f_trim(ISNULL(BatchNum ,'')),
+ dbo.f_trim(ISNULL(ProcessType,'')),
+ dbo.f_trim(ISNULL(EventType ,'')),
+ dbo.f_trim(ISNULL(RawMat ,'')),
+ dbo.f_trim(ISNULL(CodPackag ,'')),
+ CAST( CAST( REPLACE( '0' + ISNULL(QtyIN,'') ,',','.' ) AS float ) AS decimal( 18,4 )) AS QtyIN,
+ CAST( CAST( REPLACE( '0' + ISNULL(QtyOUT,''),',','.' ) AS float ) AS decimal( 18,4 )) AS QtyOUT,
+ CAST( CAST( REPLACE( '0' + ISNULL(QtyEXT,''),',','.' ) AS float ) AS decimal( 18,4 )) AS QtyEXT,
+ CAST( ISNULL(NumIN ,'') AS int )AS NumIN,
+ CAST( ISNULL(NumOUT ,'') AS int )AS NumOUT,
+ CAST( CAST( REPLACE( '0' + ISNULL(QuotaPlant,''),',','.' ) AS float )AS decimal( 9,4 )) AS QuotaPlant,
+ CAST( CAST( REPLACE( '0' + ISNULL(QuotaMan,''),',','.' ) AS float )AS decimal( 9,4 )) AS QuotaMan,
+ dbo.f_trim(ISNULL(Tags ,'')),
+ okPr,
+ okQM,
+ okSc,
+ okDi
+ FROM tmp.ProductionLogRaw;
+
+ SELECT COUNT(*) as RecordsIn FROM ext.ProductionLogRaw
+ END
+
+END
+GO
+PRINT N'Creating [tmp].[importProductionLogRaw]...';
+
+
+GO
+
+
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Create date: 2013.11.28
+-- Description: Procedura per import dati in tabelal tmp da file csv
+--
+-- TRUNCATE TABLE tmp.ProductionLogRaw_KO
+--
+-- =============================================
+CREATE PROCEDURE [tmp].[importProductionLogRaw]
+(
+ @fileType NVARCHAR(50) = 'ProductionLogRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'ProductionLogRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE tmp.ProductionLogRaw
+
+ -- carico dati bulk!
+ BULK INSERT tmp.ProductionLogRaw
+ FROM 'e:\test\ProductRaw.csv'
+
+ WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorProduct.log')
+ --WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorProduct.log', CODEPAGE = '1252')
+
+ -- ===============================================================================
+ -- pulisco l tabella dai record con chiave duplicata ( se doppi li elimino tutti )
+ -- ===============================================================================
+ SET XACT_ABORT ON;
+ BEGIN TRAN
+
+ -- salvo i dati con chiave duplicata
+ INSERT INTO tmp.ProductionLogRaw_KO
+ SELECT Prod.*, GETDATE() FROM tmp.ProductionLogRaw AS Prod
+ INNER JOIN
+ (
+ SELECT EventStart, EventEnd, CodPlant, ProcessNum, NrPos, CodDies
+ FROM tmp.ProductionLogRaw
+ GROUP BY EventStart, EventEnd, CodPlant, ProcessNum, NrPos, CodDies
+ HAVING COUNT(*)>1
+ ) AS Dupl ON Prod.EventStart = Dupl.EventStart AND
+ Prod.EventEnd = Dupl.EventEnd AND
+ Prod.CodPlant = Dupl.CodPlant AND
+ Prod.ProcessNum = Dupl.ProcessNum AND
+ Prod.NrPos = Dupl.NrPos AND
+ Prod.CodDies = Dupl.CodDies
+
+ -- Cancello i record con chiave duplicata
+ DELETE Prod
+ WITH (TABLOCK)
+ FROM tmp.ProductionLogRaw AS Prod
+ INNER JOIN
+ (
+ SELECT EventStart, EventEnd, CodPlant, ProcessNum, NrPos, CodDies
+ FROM tmp.ProductionLogRaw
+ GROUP BY EventStart, EventEnd, CodPlant, ProcessNum, NrPos, CodDies
+ HAVING COUNT(*)>1
+ ) AS Dupl ON Prod.EventStart = Dupl.EventStart AND
+ Prod.EventEnd = Dupl.EventEnd AND
+ Prod.CodPlant = Dupl.CodPlant AND
+ Prod.ProcessNum = Dupl.ProcessNum AND
+ Prod.NrPos = Dupl.NrPos AND
+ Prod.CodDies = Dupl.CodDies
+
+ -- ===============================================================================
+ -- pulisco la tabella dai record con date non corrette
+ -- ===============================================================================
+ DELETE FROM tmp.ProductionLogRaw
+ WITH (TABLOCK)
+ OUTPUT deleted.* INTO tmp.ProductionLogRaw_KO -- salvo i record cancellati in tabella KO
+ ( EventStart, EventEnd, CodPlant, ProcessNum, NrPos, CodDies, CodClient, OrderNum, BatchNum, ProcessType, EventType, RawMat
+ , CodPackag, QtyIN, QtyOUT, QtyEXT, NumIN, NumOUT, QuotaPlant, QuotaMan, Tags, okPr, okQM, okSc, okDi )
+ WHERE EventStart >= EventEnd
+ OR CONVERT( BIGINT , EventStart ) + 68000000000000 <= EventEnd -- record che darebbero errore poi nel datediff > 68 anni
+ OR EventStart IS NULL
+ OR EventEnd IS NULL
+
+-- SELECT * FROM tmp.ProductionLogRaw_KO
+
+ --ROLLBACK
+ COMMIT
+
+ SELECT COUNT(*) AS RecordsIn FROM tmp.ProductionLogRaw
+
+ END
+END
+GO
+PRINT N'Creating [tmp].[importClientsRaw]...';
+
+
+GO
+
+
+
+-- =============================================
+-- Author: S.E. Locatelli
+-- Mod. date: 2013.11.29
+-- Description: Procedura per import dati in tabella tmp da file csv
+-- =============================================
+CREATE PROCEDURE [tmp].[importClientsRaw]
+(
+ @fileType NVARCHAR(50) = 'ClientsRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'ClientsRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE tmp.ClientsRaw
+
+ -- carico dati bulk!
+ BULK INSERT tmp.ClientsRaw
+ FROM 'e:\test\ClientsRaw.csv'
+ WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorClients.log')
+ --WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorClients.log', CODEPAGE = '1252')
+
+ SELECT COUNT(*) as RecordsIn FROM tmp.ClientsRaw
+
+ END
+
+END
+GO
+PRINT N'Creating [tmp].[convertOrdersHistRaw]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.22
+-- Description: Procedura per conversione e tipizzazione dati da tmp a ext x OrdersHistRaw
+-- =============================================
+CREATE PROCEDURE [tmp].[convertOrdersHistRaw]
+(
+ @fileType NVARCHAR(50) = 'OrdersHistRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'OrdersHistRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE ext.OrdersHistRaw
+
+ -- inserisco con cast valori...
+ INSERT ext.OrdersHistRaw
+ WITH (TABLOCK)
+ ( OrdNum, OrdRow, OrdDate, CodClient, CodItem, RawMat, RawMatCost, BatchQty, CodInco, OrdPrice, RawMatExtraCost, PriceOff, OrdQty, ProvvCost)
+ SELECT
+ OrdNum,
+ OrdRow,
+ dbo.f_dtFromRaw( OrdDate ) AS OrdDate,
+ CodClient,
+ CodItem,
+ RawMat,
+ CONVERT( DECIMAL( 18,6 ), CONVERT ( FLOAT , REPLACE( '0' + REPLACE(RawMatCost,'.',''),',','.' ) )) AS RawMatCost,
+ CONVERT(INT, CONVERT ( FLOAT , REPLACE( '0' + REPLACE(BatchQty,'.',''),',','.' ) )) AS BatchQty, -- lotto
+ CodInco,
+ CONVERT( DECIMAL( 18,6 ), CONVERT ( FLOAT , REPLACE( '0' + REPLACE(OrdPrice,'.',''),',','.' ) )) AS OrdPrice,
+ CONVERT( DECIMAL( 18,6 ), CONVERT ( FLOAT , REPLACE( '0' + REPLACE(RawMatExtraCost,'.',''),',','.' ) )) AS RawMatExtraCost,
+ CONVERT( DECIMAL( 9,6 ), CONVERT ( FLOAT , REPLACE( '0' + REPLACE(PriceOff,'.',''),',','.' ) )) AS PriceOff, -- trasformazione
+ CONVERT( INT, CONVERT ( FLOAT , REPLACE( '0' + REPLACE(OrdQty,'.',''),',','.' ) )) AS OrdQty,
+ CONVERT( DECIMAL( 9,6 ), CONVERT ( FLOAT , REPLACE( '0' + REPLACE(ProvvCost,'.',''),',','.' ) )) AS ProvvCost -- provvigioni
+ FROM tmp.OrdersHistRaw;
+
+ SELECT COUNT(*) as RecordsIn FROM ext.OrdersHistRaw
+ END
+
+END
+GO
+PRINT N'Creating [tmp].[importOrdersHistRaw]...';
+
+
+GO
+-- =============================================
+-- Author: S.E. Locatelli
+-- mod. date: 2014.05.22
+-- Description: Procedura per import dati in tabella tmp da file csv
+--
+-- TRUNCATE TABLE [tmp].[OrdersHistRaw]
+--
+-- =============================================
+CREATE PROCEDURE [tmp].[importOrdersHistRaw]
+(
+ @fileType NVARCHAR(50) = 'OrdersHistRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'OrdersHistRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE tmp.OrdersHistRaw
+
+ -- carico dati bulk!
+ BULK INSERT tmp.OrdersHistRaw
+ FROM 'e:\test\MarginRep_Import.csv'
+ WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorOrdersHist.log')
+ --WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorProduct.log', CODEPAGE = '1252')
+
+ SELECT COUNT(*) AS RecordsIn FROM tmp.OrdersHistRaw
+ END
+END
+GO
+PRINT N'Creating [voc].[stp_insNewLemma]...';
+
+
+GO
+/*************************************
+* STORED PROCEDURE stp_insNewLemma
+*
+* inseriemtno lemma vocabolario
+*
+* mod : 14/05/2012
+* aut : S.E. Locatelli
+**************************************/
+CREATE PROCEDURE [voc].[stp_insNewLemma]
+(
+ @lemma NVARCHAR(50),
+ @traduzione NVARCHAR(500),
+ @OverWrite CHAR(1) = 'Y' -- Y/N Per forzarne inserimento anche se già presente
+)
+AS
+
+-- elimino se c'era già e se richiesto...
+IF @OverWrite = 'Y'
+BEGIN
+ DELETE FROM Vocabolario
+ WHERE lemma = @lemma
+END
+
+-- inserisco x tutte le lingue attive...
+INSERT INTO Vocabolario
+SELECT lingua, @lemma, @traduzione
+FROM Lingue
+
+SELECT *
+FROM Vocabolario
+WHERE lemma = @lemma
+
+RETURN
+GO
+PRINT N'Creating [voc].[stp_getByLingua]...';
+
+
+GO
+
+CREATE PROCEDURE [voc].[stp_getByLingua]
+(
+ @Lingua nvarchar(3)
+)
+AS
+ SET NOCOUNT ON;
+SELECT Lingua, Lemma, Traduzione
+FROM Vocabolario
+WHERE (Lingua = @Lingua)
+GO
+PRINT N'Creating [voc].[stp_getByLinguaLemmaLike]...';
+
+
+GO
+
+
+/*************************************
+* STORED PROCEDURE stp_getByLemmaLike
+*
+* elenco record da ricerca LIKE su lemma
+*
+* mod : 2014.04.28
+* aut : S.E. Locatelli
+**************************************/
+CREATE PROCEDURE [voc].[stp_getByLinguaLemmaLike]
+(
+ @Lingua NVARCHAR(3),
+ @search NVARCHAR(50)
+)
+AS
+
+SET NOCOUNT ON;
+SELECT Lingua, Lemma
+ ,CASE WHEN @Lingua = 'LB' THEN CONVERT(NVARCHAR(500),Lemma)
+ ELSE Traduzione END
+ AS Traduzione -- la traduzione corrisponde ai campi/lemmi x i report
+FROM Vocabolario
+WHERE (Lemma LIKE @search + '%')
+ AND ( Lingua = CASE WHEN @Lingua = 'LB' -- se richiede le Label dei campi estraggo i lemmi in inglese
+ THEN 'EN'
+ ELSE @Lingua
+ END )
+
+/* OLD
+SELECT Lingua, Lemma, Traduzione
+FROM Vocabolario
+WHERE (Lemma LIKE @search + '%')
+ AND (Lingua = @Lingua)
+*/
+GO
+PRINT N'Creating [voc].[stp_updateQuery]...';
+
+
+GO
+
+CREATE PROCEDURE [voc].[stp_updateQuery]
+(
+ @Traduzione nvarchar(500),
+ @Original_Lingua nvarchar(3),
+ @Original_Lemma nvarchar(50)
+)
+AS
+ SET NOCOUNT OFF;
+UPDATE [dbo].[Vocabolario] SET [Traduzione] = @Traduzione WHERE ([Lingua] = @Original_Lingua) AND ([Lemma] = @Original_Lemma)
+GO
+PRINT N'Creating [voc].[stp_upsertLemma]...';
+
+
+GO
+/*************************************
+* STORED PROCEDURE stp_upsertLemma
+*
+* upsert record lemma
+*
+* mod : 14/05/2012
+* aut : S.E. Locatelli
+**************************************/
+create PROCEDURE [voc].[stp_upsertLemma]
+(
+ @Lingua NVARCHAR(3),
+ @Lemma NVARCHAR(50),
+ @Traduzione NVARCHAR(500)
+)
+AS
+
+-- effettuo merge x upsert!
+
+ MERGE Vocabolario AS target
+ USING (SELECT @Lingua, @Lemma, @Traduzione) AS source (Lingua, Lemma, Traduzione)
+ ON (target.Lingua = source.Lingua AND target.Lemma = source.Lemma)
+ WHEN MATCHED THEN
+ UPDATE SET Traduzione = source.traduzione
+ WHEN NOT MATCHED THEN
+ INSERT (Lingua, Lemma, Traduzione)
+ VALUES (source.Lingua, source.Lemma, source.Traduzione);
+
+RETURN
+GO
+PRINT N'Creating [voc].[stp_voUpdateLemmiReport]...';
+
+
+GO
+-- =============================================
+-- Author: Samuele Locatelli
+-- Create date: 2014.05.09
+-- Description: riallinea le traduzioni dei report ai termini corrispondenti a video
+-- =============================================
+CREATE PROCEDURE voc.stp_voUpdateLemmiReport
+AS
+BEGIN
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ -- mostro situazione iniziale
+ SELECT *
+ FROM Vocabolario v1
+ inner join vocabolario v ON replace(v1.Lemma, 'C2P_prt1_','') = v.Lemma AND v1.Lingua = v.Lingua
+ WHERE v1.lemma LIKE 'C2P_prt1_%'
+
+ -- update!
+ UPDATE v1
+ SET traduzione = v.traduzione
+ FROM Vocabolario v1
+ INNER JOIN vocabolario v ON replace(v1.Lemma, 'C2P_prt1_','') = v.Lemma AND v1.Lingua = v.Lingua
+ WHERE v1.lemma LIKE 'C2P_prt1_%'
+
+
+ -- mostro situazione finale
+ SELECT *
+ FROM Vocabolario v1
+ inner join vocabolario v ON replace(v1.Lemma, 'C2P_prt1_','') = v.Lemma AND v1.Lingua = v.Lingua
+ WHERE v1.lemma LIKE 'C2P_prt1_%'
+
+END
+GO
+PRINT N'Creating [dbo].[stp_QL_update]...';
+
+
+GO
+
+
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.06.06
+-- Description: aggiorna le tabelle QuoteList con i dati selezionati dalla TabProdSc
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_update]
+(
+ @QuoteType CHAR(1) = 'Q',
+ @CodQuote BIGINT = 0,
+ @QuoteRev INT = 0
+)
+AS
+BEGIN
+
+ SET NOCOUNT ON;
+
+ -- dichiaro valori da recuperare
+ DECLARE @strTemp NVARCHAR(50) = '' --stringa temporanea x variabili "locali"
+ , @valid BIT -- bit validità generico totale
+ , @validStep BIT -- bit validità generico singolo step
+ , @errorScore INT -- punteggio errori (1 per errore o anche punti diversi x "Peso", da valutare
+ , @CodDiesGroup NVARCHAR(50)
+ , @CodPlant NVARCHAR(50)
+ , @CodPlantFix NVARCHAR(50) = ''
+ , @HoleNum INT
+
+ -- ITEM
+ DECLARE @CodItem NVARCHAR(50) = '' -- cod item
+ , @ItemDescr NVARCHAR(50) = '' -- descrizione item
+ , @CodifProfilo NVARCHAR(50) = '' -- Cod. Profilo
+ , @ClasseMerc NVARCHAR(50) = ''
+ , @CodClientAssoc NVARCHAR(50) = ''
+ , @KeyAM NVARCHAR(50) = ''
+ , @KeyAMI NVARCHAR(50) = ''
+ , @KeyAMIL NVARCHAR(50) = ''
+ , @NumSMED INT = 0 -- numero cambi
+ , @KgTeo DECIMAL(18, 6) = 0 -- kg totali
+ , @RawMat NVARCHAR(50)
+ , @ProdTeo DECIMAL(18,6)
+ , @ScTec DECIMAL(18,6)
+ , @BatchQty INT
+ , @MAC_SC DECIMAL(18,6) -- Messa a cento scarto cesoia
+ , @MAC_ST DECIMAL(18,6) -- Messa a cento scarto tecnico
+ , @MAC_IN DECIMAL(18,6) -- Messa a cento difettosità all'incestatura
+ , @MAC_IM DECIMAL(18,6) -- Messa a cento difettosità all'imballo
+ , @MAC_SC_sim DECIMAL(18,6) = 0 -- Messa a cento scarto cesoia - SIMULAZIONE
+ , @MAC_ST_sim DECIMAL(18,6) = 0 -- Messa a cento scarto tecnico - SIMULAZIONE
+ , @MAC_IN_sim DECIMAL(18,6) = 0 -- Messa a cento difettosità all'incestatura - SIMULAZIONE
+ , @MAC_IM_sim DECIMAL(18,6) = 0 -- Messa a cento difettosità all'imballo - SIMULAZIONE
+ , @FCR_sim DECIMAL(18,6) = 0 -- Messa a cento complessiva - SIMULAZIONE
+ , @SSR DECIMAL(9,6) -- percentuale vendita rottame
+ , @DiesPrice DECIMAL(9,3) -- prezzo matrice
+ , @DiesEOLife DECIMAL(9,2) -- durata matrice
+ , @DiesExpLife DECIMAL(9,2) -- durata matrice
+ , @DiesPriceLife DECIMAL(18,6) -- Price/Life matrice
+ , @DiesByClass BIT = 0 -- definisce se i dati della matrice siano calcolati puntualmente (0) o per classe (1)
+ , @OCF01 DECIMAL(18,6) = 0 -- altri costi di fase 01
+ , @VCF01 DECIMAL(18,6) = 0 -- costi variabili di fase 01
+ , @VCF04 DECIMAL(18,6) = 0 -- costi variabili di fase 04
+ , @SellCostF01 DECIMAL(18,6) = 0 -- costo vendita fase 01
+ , @SellCostF04 DECIMAL(18,6) = 0 -- costo vendita fase 04
+ , @RefCostF01 DECIMAL(18,6) = 0 -- costo rifusione fase 01
+ , @RefCostF04 DECIMAL(18,6) = 0 -- costo rifusione fase 04
+ -- IMBALLO
+ DECLARE @CodPackag NVARCHAR(50) = '0' -- codice dell'imballo
+ , @CodClient NVARCHAR(50) = '' -- codice cliente
+ , @NumImb DECIMAL(9,6) = 0 -- num imballatori
+ , @PkgDesc NVARCHAR(50) = '' -- descrizione imballo
+ , @PRMWeight DECIMAL(9,4) = 0 -- peso dell'imballo
+ , @PWeight DECIMAL(9,4) = 0 -- peso del pacco
+ , @PTare DECIMAL(9,4) = 0 -- media delal tara di imballo dichiarata
+ , @PCost DECIMAL(9,6) = 0 -- costo unitario dell'imballo (al kg)
+ , @PTareStRatio DECIMAL(9,4) = 0 -- coefficiente di recupero tara/prodotto
+ , @PTotQta DECIMAL(18,3) = 0 -- Qta Kg Tot Imballati
+ , @PDurata DECIMAL(18,6) = 0 -- Tempo d'imballaggio
+ , @PLiv NVARCHAR(50) = '' -- Livello Search dati Imballo
+ , @PLivDett NVARCHAR(50) = '' -- Key Livello Search Dati Imballo
+ -- TRASPORTI
+ DECLARE @TranspZone NVARCHAR(50) = '' -- codice ZONA
+ , @TranspCost DECIMAL(9,6) = 0 -- costo di trasporto
+ , @HasTC INT
+
+ -- PROVVIGIONI
+ DECLARE @Provvig DECIMAL(9,6) -- provvigione agente
+
+ -- default: validità è true!
+ SET @valid = 1
+ -- default: error score è nullo
+ SET @errorScore = 0
+
+ -- =================================================
+ -- CREAZIONE TEMP TABLE
+ -- =================================================
+
+ -- elimino e ricreo #QuoteParam temp table... NON Serve nella stored
+ --IF OBJECT_ID('tempdb..#QuoteParam') IS NOT NULL
+ -- DROP TABLE #QuoteParam
+
+ CREATE TABLE #Quoteparam
+ (
+ Quotetype CHAR( 1 ) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
+ Codquote BIGINT NOT NULL,
+ Quoterev INT NOT NULL,
+ Nump INT IDENTITY( 1,1 ) NOT NULL,
+ Processnum NVARCHAR( 50 ) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
+ Descr NVARCHAR( 50 ) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
+ Parameter NVARCHAR( 100 ) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT(''),
+ --PRIMARY KEY
+ -- ( QuoteType ASC, CodQuote ASC, QuoteRev ASC ) WITH (PAD_INDEX = ON, FILLFACTOR = 99 )
+ );
+
+ -- oppure creo l'indice successivamente
+ --CREATE CLUSTERED INDEX #ix_Quoteparam ON #Quoteparam (QuoteType ASC, CodQuote ASC, QuoteRev ASC)
+ --WITH (PAD_INDEX = ON, FILLFACTOR = 100)
+
+ --CREATE STATISTICS [#ix_QuoteType_CodQuote] ON #Quoteparam ([QuoteType], [CodQuote], [QuoteRev])
+
+ -- elimino e ricreo ##QuoteWorkInt temp table...
+ --IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL DROP TABLE #QuoteWorkInt
+
+ CREATE TABLE #QuoteWorkInt
+ (
+ QuoteType CHAR(1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
+ CodQuote BIGINT NOT NULL,
+ QuoteRev INT NOT NULL,
+ NumWI INT IDENTITY(1,1) NOT NULL,
+ ProcessNum NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
+ CodPlant NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
+ Class01 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''),
+ Class02 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''),
+ Class03 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''),
+ Class04 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''),
+ Class05 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''),
+ NetProd DECIMAL(9, 3) NOT NULL DEFAULT ((0)),
+ WSR DECIMAL(9, 8) NOT NULL DEFAULT ((0)),
+ MSR DECIMAL(9, 8) NOT NULL DEFAULT ((0)),
+ DSR DECIMAL(9, 8) NOT NULL DEFAULT ((0)),
+ FC4UG DECIMAL(9, 6) NOT NULL DEFAULT ((0)),
+ VC4UG DECIMAL(9, 6) NOT NULL DEFAULT ((0)),
+ OH4UG DECIMAL(9, 6) NOT NULL DEFAULT ((0)),
+ SC4UG DECIMAL(9, 6) NOT NULL DEFAULT ((0)),
+ -- campi calcolati
+ WYR AS ((1)-WSR),
+ MYR AS ((1)-MSR),
+ DYR AS ((1)-DSR),
+ WCR AS ( CASE WHEN ((1)-WSR)=0 THEN 1 ELSE (1)/((1)-WSR) END ),
+ MCR AS ( CASE WHEN ((1)-MSR)=0 THEN 1 ELSE (1)/((1)-MSR) END ),
+ DCR AS ( CASE WHEN ((1)-DSR)=0 THEN 1 ELSE (1)/((1)-DSR) END ),
+ valid BIT NOT NULL DEFAULT((1)),
+ )
+
+-- elimino e ricreo #QuoteOC temp table...
+--IF OBJECT_ID('tempdb..#QuoteOC') IS NOT NULL DROP TABLE #QuoteOC
+
+ CREATE TABLE #QuoteOC
+ (
+ QuoteType CHAR(1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
+ CodQuote BIGINT NOT NULL,
+ QuoteRev INT NOT NULL,
+ NumEx INT IDENTITY(1,1) NOT NULL,
+ ProcessNum NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''),
+ CodPlant NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''),
+ Class01 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''),
+ Class02 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''),
+ Class03 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''),
+ Class04 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''),
+ Class05 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''),
+ TotQty DECIMAL(18, 6) NOT NULL DEFAULT ((1)),
+ TotCost DECIMAL(18, 6) NOT NULL DEFAULT ((0)),
+ Quota DECIMAL(18, 6) NOT NULL DEFAULT ((1)),
+ C4UG AS ( CASE WHEN TotQty= 0 THEN 0 ELSE (TotCost*Quota) / TotQty END ),
+ valid BIT NOT NULL DEFAULT ((1))
+ )
+
+ -- ===================================
+ -- INIZIO TRANSAZIONE
+ -- ===================================
+ SET XACT_ABORT ON;
+ BEGIN TRAN
+
+ ---------------------------------------
+ -- svuotamento iniziale
+ ---------------------------------------
+
+ -- elimino quote PARAMETRI!
+ DELETE FROM dbo.QuoteParam
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- elimino lavorazioni ESTERNE!
+ DELETE FROM dbo.QuoteWorkExt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- elimino lavorazioni INTERNE
+ DELETE FROM dbo.QuoteWorkInt
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- elimino OtherCosts
+ DELETE FROM dbo.QuoteOC
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ -- se ci sono eccezioni nella tab dell'anagrafico articoli imposto il codPlant desiderato
+ SET @CodPlantFix = ISNULL ( ( SELECT id.CodPlant FROM dbo.ItemDet id
+ INNER JOIN dbo.QuoteList ql ON id.CodItem = ql.CodItem
+ WHERE ql.QuoteType = @QuoteType
+ AND ql.CodQuote = @CodQuote
+ AND ql.QuoteRev = @QuoteRev ), '' )
+
+ -- recupero da dati dell'offerta il valore del cliente
+ SELECT @CodClient = CodClient
+ FROM dbo.QuoteList
+ WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
+
+ IF (@QuoteType IN ('Q', 'R','C' ) ) -- Quotation, Reddittivity, Cost List
+ BEGIN
+ -- recupero dati!!
+ SELECT TOP 1 @CodItem = ql.CodItem
+ , @CodDiesGroup = tps.CodDiesGroup
+ , @CodPlant = CASE WHEN @CodPlantFix <> '' THEN @CodPlantFix ELSE tps.CodPlant END
+ , @HoleNum = tps.HoleNum
+ , @KeyAM = ql.KeyAM
+ , @KeyAMI = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000')
+ , @KeyAMIL = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + '-' + CAST(ISNULL(tps.HoleNum,0) AS NVARCHAR(10))
+ , @ProdTeo = tps.ProdTeo
+ , @ScTec = tps.ScTec
+ , @KgTeo = tps.KgTeo
+ , @NumSMED = tps.NumSMED
+ , @RawMat = ql.RawMat
+ , @BatchQty = ql.BatchQty
+ , @ItemDescr = i.ItemDescr
+ , @CodifProfilo = i.Class01
+ , @ClasseMerc = i.Class02
+ , @CodClientAssoc = i.Class03
+
+ FROM dbo.QuoteList ql
+ INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM
+ INNER JOIN dbo.ItemDet i ON ql.CodItem = i.CodItem
+ WHERE ql.QuoteType = @QuoteType
+ AND ql.CodQuote = @CodQuote
+ AND ql.QuoteRev = @QuoteRev
+ ORDER BY tps.KgTeo DESC
+
+ -- =================================================================================
+ -- recupero dall'offerta il valore del PACKAGE/IMBALLO scelto e i dati relativi
+ -- Secondo la logica Client-Item-Package ( vedi funzione )
+ -- =================================================================================
+ -- SET @CodPackag = ( SELECT dbo.f_getCodPackag( @CodItem , @CodClient ) )
+ -- attenzione è una function tabellare
+ --SELECT @CodPackag = CodPackag, @PTotQta = TotQta, @PWeight = Weight, @PTare = Tare,
+ -- @NumImb = NumImb, @PDurata = Durata, @PLiv = LivPackag , @PLivDett = LivPackagDet
+ --FROM f_getDataCodPackag ( @CodItem, @CodClient)
+
+ EXEC dbo.stp_getDataCodPackag @CodItem, @CodClient, @CodPackag = @CodPackag OUT, @TotQta = @PTotQta OUT, @Weight = @PWeight OUT, @Tare = @PTare OUT,
+ @NumImb = @NumImb OUT, @Durata = @PDurata OUT, @LivPackag = @PLiv OUT, @LivPackagDet = @PLivDett OUT
+
+ END
+ -- --------------------------------------------------------------------------------------------
+ -- se offerta tipo 'S' non recupero dati da storico ma li cerco da tabella apposita..
+ -- --------------------------------------------------------------------------------------------
+ ELSE IF (@QuoteType = 'S')
+ BEGIN
+ -- salvo i parametri da QuoteSimPar a #Quoteparam
+ INSERT INTO #Quoteparam(Quotetype, CodQuote, QuoteRev ,ProcessNum, Descr, Parameter)
+ SELECT Quotetype, CodQuote, QuoteRev, '01' AS ProcessNum, NomePar AS Descr, ValPar AS Parameter
+ FROM dbo.QuoteSimPar
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND NomePar NOT IN ('CodDiesGroup', 'CodPlant')
+
+ -- recupero parametri da SIM iniziali......
+ ;WITH myCTE as
+ ( -- Pivot table
+ SELECT CodDiesGroup, CodPlant, CodPackag, NetProd01_sim
+ FROM
+ ( SELECT NomePar, ValPar
+ FROM dbo.QuoteSimPar
+ WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev ) AS SourceTable
+ PIVOT ( MIN(ValPar) FOR NomePar IN ( CodDiesGroup, CodPlant, CodPackag, NetProd01_sim )
+ ) AS PivotTable
+ )
+
+ SELECT @CodDiesGroup = CodDiesGroup,
+ @CodPlant = CodPlant,
+ @CodPackag = ISNULL(CodPackag, 0),
+ @ProdTeo = NetProd01_sim
+ FROM myCTE
+
+ SELECT @CodDiesGroup = ISNULL(@CodDiesGroup, '')
+ SELECT @CodPlant = ISNULL(@CodPlant, '')
+ SELECT @HoleNum = dbo.f_getSubstring(@CodDiesGroup, '-', 3)
+
+ SELECT TOP 1 @CodItem = ql.CodItem
+ , @KeyAM = ql.KeyAM
+ , @KeyAMI = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000')
+ , @KeyAMIL = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + '-' + CAST(ISNULL(@HoleNum,0) AS NVARCHAR(10))
+ , @ScTec = 0
+ , @KgTeo = 0
+ , @NumSMED = 0
+ , @RawMat = ql.RawMat
+ , @BatchQty = ql.BatchQty
+ , @ItemDescr = i.ItemDescr
+ , @CodifProfilo = i.Class01
+ , @ClasseMerc = i.Class02
+ , @CodClientAssoc = i.Class03
+
+ FROM dbo.QuoteList ql
+ INNER JOIN dbo.ItemDet i ON ql.CodItem = i.CodItem
+ WHERE ql.QuoteType = @QuoteType
+ AND ql.CodQuote = @CodQuote
+ AND ql.QuoteRev = @QuoteRev
+
+ -- provo a caricare dati produzione da KeyAMIL + CodDiesGroup
+ SELECT TOP 1 @ScTec = ISNULL(ScTec, 0)
+ , @KgTeo = ISNULL(KgTeo, 0)
+ , @NumSMED = ISNULL(NumSMED, 0)
+ , @ProdTeo = ISNULL(ProdTeo, 0)
+ FROM dbo.TabProdSc
+ WHERE KeyAMIL = @KeyAMIL
+ AND CodDiesGroup = @CodDiesGroup
+
+
+ -- =================================================================================
+ -- carico dati package generali
+ -- =================================================================================
+
+ SELECT @PTotQta = TotQta, @PWeight = Weight, @PTare = Tare, @NumImb = NumImb, @PDurata = Durata
+ , @PLiv = 'Package', @PLivDett= CodPackag
+ FROM dbo.Package2 WHERE CodPackag = @CodPackag
+
+ --SELECT @CodPackag = CodPackag, @PTotQta = TotQta, @PWeight = Weight, @PTare = Tare,
+ -- @NumImb = NumImb, @PDurata = Durata, @PLiv = LivPackag , @PLivDett = LivPackagDet
+ --FROM f_getDataCodPackag ( @CodItem, @CodClient)
+
+ END
+
+ -- e aggiorno il CodPackage in QuoteRM
+ UPDATE dbo.QuoteRM
+ SET CodPackag = ISNULL(@CodPackag,'')
+ FROM dbo.QuoteRM
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'ItemDescr', @ItemDescr )
+ , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodifProfilo', @CodifProfilo )
+ , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'ClasseMerc', @ClasseMerc )
+ , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodClientAssoc', @CodClientAssoc )
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'ClientNameAssoc', ClientDet.ClientName
+ FROM dbo.ClientDet
+ WHERE ClientDet.CodClient = @CodClientAssoc
+
+ -- INFORMAZIONI su MATRICE
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'CodDiesGroup', ISNULL(@CodDiesGroup, '') )
+
+ SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 1)
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'TipoDies', ISNULL(@strTemp, '') )
+
+ SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 2)
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'DiamDies', CASE WHEN ISNULL(@strTemp,'') = '' THEN 1 ELSE @strTemp END )
+
+ SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 3)
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'HoleNumDies', ISNULL(@strTemp, 1) )
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesInList', COUNT(CodDies)
+ FROM dbo.DiesDet
+ WHERE CodDiesGroup = @CodDiesGroup AND CodItem = @CodItem
+
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesExaust', COUNT(CodDies)
+ FROM dbo.DiesDet
+ WHERE CodDiesGroup = @CodDiesGroup AND Active = 0
+
+ -- fix valori null!!
+ SET @CodPlant = ISNULL(@CodPlant, '')
+ SET @KeyAM = ISNULL(@KeyAM, '')
+ SET @KeyAMIL = ISNULL(@KeyAMIL, '')
+ SET @NumSMED = ISNULL(@NumSMED, 0)
+ SET @BatchQty = ISNULL(@BatchQty, 0)
+ SET @KgTeo = ISNULL(@KgTeo, 0)
+ SET @RawMat = ISNULL(@RawMat, '')
+ SET @ProdTeo = ISNULL(@ProdTeo, 0)
+ SET @ScTec = ISNULL(@ScTec, 0)
+
+ -- inserisco parametri calcolati x lavorazione estrusione
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodPlant' , @CodPlant)
+ ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAM' , @KeyAM)
+ ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAMIL' , @KeyAMIL)
+ ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'NumSMED' , CONVERT(NVARCHAR(100) , @NumSMED))
+ ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KgTeo' , CONVERT(NVARCHAR(100) , @KgTeo))
+
+ -- -----------------------------------------
+ ---- inserisco lavorazione estrusione!
+ -- -----------------------------------------
+ -- *** verifica errori ***
+ SELECT @errorScore = @errorScore + CASE WHEN @ProdTeo = 0 THEN 1 ELSE 0 END,
+ @valid = CASE WHEN @ProdTeo = 0 THEN 0 ELSE @valid END
+
+ INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, NetProd, WSR, valid)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @ProdTeo, @ScTec, @valid
+
+ INSERT INTO #QuoteParam (QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KgProdotti', ISNULL(SUM(KgTeo),0)
+ FROM dbo.QuoteList ql
+ INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM
+ WHERE ql.QuoteType = @QuoteType
+ AND ql.CodQuote = @CodQuote
+ AND ql.QuoteRev = @QuoteRev
+
+ -- inserisco dati mancanti di MSR/CSR (scarto cesoia x estrusione) - DSR è NULLO x estrusione!
+ UPDATE #QuoteWorkInt
+ SET MSR = rmd.CSR
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.RawMatDet rmd ON qwi.Class03 = rmd.RawMat
+
+ -- calcolo i costi legati alla fase estrusione!
+ UPDATE #QuoteWorkInt
+ SET FC4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd END
+ , VC4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd END
+ , OH4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd END
+ , SC4UG = CASE WHEN ql.BatchQty = 0 THEN -99 ELSE cp.SC / ql.BatchQty END
+ , valid = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 OR ql.BatchQty = 0 THEN 0 ELSE qwi.valid END -- attenzione che è già impostato sopra
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum
+ INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev
+ WHERE qwi.ProcessNum = '01'
+
+ -- *** verifica errori ***
+ SELECT @errorScore = @errorScore + CASE WHEN valid = 0 THEN 1 ELSE 0 END,
+ @valid = CASE WHEN valid = 0 THEN 0 ELSE @valid END
+ FROM #QuoteWorkInt qwi
+ --INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum
+ --INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev
+ WHERE qwi.ProcessNum = '01'
+
+ -- inserisco lavorazione incestatura!
+ INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '02', @CodPlant, @KeyAM, @KeyAMI, @RawMat
+
+ -- inserisco dati mancanti di DSR x incestatura come 1 - OUT/IN
+ UPDATE #QuoteWorkInt
+ SET DSR = CASE td.TotIN WHEN 0 THEN -99 ELSE 1 - CAST(td.TotOUT AS DECIMAL(18,6)) / CAST(td.TotIN AS DECIMAL(18,6)) END ,
+ valid = CASE td.TotIN WHEN 0 THEN 0 ELSE 1 END
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.TabDifett td ON qwi.Class02 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum
+ WHERE qwi.ProcessNum = '02' -- solo incestatura
+
+ -- *** verifica errori ***
+ SELECT @errorScore = @errorScore + CASE WHEN qwi.valid = 0 THEN 1 ELSE 0 END,
+ @valid = CASE WHEN qwi.valid = 0 THEN 0 ELSE @valid END
+ FROM #QuoteWorkInt qwi
+-- INNER JOIN dbo.TabDifett td ON qwi.Class02 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum
+ WHERE qwi.ProcessNum = '02' -- solo incestatura
+
+ -- inserisco lavorazione FORNO!
+ INSERT INTO #QuoteWorkInt(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '03', @CodPlant, @KeyAM, @KeyAMI, @RawMat
+
+ -- inserisco lavorazione imballo!
+ INSERT INTO #QuoteWorkInt(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @CodItem, @KeyAMI
+
+ UPDATE qwi
+ SET NetProd = CASE @PDurata WHEN 0 THEN 0 ELSE @PTotQta / @PDurata END,
+ valid = CASE WHEN @PDurata = 0 OR @PTotQta = 0 THEN 0 ELSE 1 END -- @PTotQta non può essere mai = 0
+ FROM #QuoteWorkInt AS qwi
+-- INNER JOIN dbo.TabImbArt ti ON qwi.Class04 = ti.KeyA
+ WHERE qwi.ProcessNum = '04' -- solo imballo
+
+ -- *** controllo errori
+ SELECT @errorScore = @errorScore + CASE WHEN @PDurata = 0 OR @PTotQta = 0 OR @PWeight = 0 THEN 1 ELSE 0 END, -- verificare @PWeight -> dove salvo l'errore?
+ @valid = CASE WHEN @PDurata = 0 OR @PTotQta = 0 OR @PWeight = 0 THEN 0 ELSE @valid END
+
+ -- parametro num imballatori
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'QuotaMan', @NumImb
+
+ -- parametro Livello search package/imballo
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'LivPackage', @PLiv
+
+ -- parametro Livello search package/imballo
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'LivPackageDett', @PLivDett
+
+ -- calcolo i costi legati alla fase di imballo!
+ UPDATE #QuoteWorkInt
+ SET FC4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE ( ( cp.FC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd END
+ , VC4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE ( ( cp.VC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd END
+ , OH4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE ( ( cp.OH * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd END
+ , SC4UG = CASE WHEN ql.BatchQty = 0 THEN -99 ELSE cp.SC / ql.BatchQty END
+ , valid = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 OR ql.BatchQty = 0 THEN 0 ELSE 1 END
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum
+ INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev
+ WHERE qwi.ProcessNum = '04' -- solo imballo
+
+ -- *** verifica errori ***
+ SELECT @errorScore = @errorScore + CASE WHEN qwi.valid = 0 THEN 1 ELSE 0 END,
+ @valid = CASE WHEN qwi.valid = 0 THEN 0 ELSE @valid END
+ FROM #QuoteWorkInt qwi
+ --INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum
+ --INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev
+ WHERE qwi.ProcessNum = '04' -- solo imballo
+
+ -- inserisco dati mancanti di DSR x imballo come 1 - OUT/IN
+ UPDATE #QuoteWorkInt
+ SET DSR = 1 - ( CASE WHEN CAST(td.TotIN AS DECIMAL(18,6)) = 0 THEN 1 ELSE CAST(td.TotOUT AS DECIMAL(18,6)) / CAST(td.TotIN AS DECIMAL(18,6)) END ) ,
+ valid = CASE WHEN td.TotIN = 0 THEN 0 ELSE 1 END
+ FROM #QuoteWorkInt qwi
+ INNER JOIN dbo.TabDifett td ON qwi.Class05 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum
+ WHERE qwi.ProcessNum = '04' -- solo imballo
+
+ -- *** verifica errori ***
+ SELECT @errorScore = @errorScore + CASE WHEN qwi.valid = 0 THEN 1 ELSE 0 END,
+ @valid = CASE WHEN qwi.valid = 0 THEN 0 ELSE @valid END
+ FROM #QuoteWorkInt qwi
+ --INNER JOIN dbo.TabDifett td ON qwi.Class05 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum
+ WHERE qwi.ProcessNum = '04' -- solo imballo
+
+ -- recupero le MAC fase 01
+ SELECT @MAC_SC = MCR
+ ,@MAC_ST = WCR
+ FROM #QuoteWorkInt
+ WHERE ProcessNum = '01'
+
+ -- recupero le MAC fase 02
+ SELECT @MAC_IN = DCR
+ FROM #QuoteWorkInt
+ WHERE ProcessNum = '02'
+
+ -- recupero le MAC fase 04
+ SELECT @MAC_IM = DCR
+ FROM #QuoteWorkInt
+ WHERE ProcessNum = '04'
+
+ -- calcolo percentuale vendita rottame
+ SELECT @SSR = SSR
+ FROM dbo.RawMatDet
+ WHERE RawMat = @RawMat
+
+
+ -- NOTA : la transazione posso probabilmente iniziarla qui visto che è il
+ -- primo Update/insert/delete su tabelle non temporanee delete a parte
+ IF (@QuoteType = 'S')
+ BEGIN
+ -- recupero i 3 scarti...
+ DECLARE @WSR01_sim DECIMAL(18,6) = 0
+ DECLARE @MSR01_sim DECIMAL(18,6) = 0
+ DECLARE @DSR_sim DECIMAL(18,6) = 0
+
+ -- recupero parametri da SIM iniziali......
+ ;WITH myCTE2 as
+ (
+ -- Pivot table
+ SELECT WSR01_sim, MSR01_sim, DSR_sim
+ FROM
+ (SELECT NomePar, ValPar
+ FROM dbo.QuoteSimPar
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ ) AS SourceTable
+ PIVOT
+ ( MIN(ValPar)
+ FOR NomePar IN
+ (
+ WSR01_sim, MSR01_sim, DSR_sim
+ )
+ ) AS PivotTable
+ )
+
+ SELECT @MAC_ST_sim = 1 / (1 - CONVERT(DECIMAL(18,6), WSR01_sim)),
+ @MAC_SC_sim = 1 / (1 - CONVERT(DECIMAL(18,6), MSR01_sim)),
+ @MAC_IN_sim = 1,
+ @MAC_IM_sim = 1 / (1 - CONVERT(DECIMAL(18,6), DSR_sim))
+ FROM myCTE2
+
+ -- salvo la messa a cento da simulazione in variabile
+ SET @FCR_sim = CASE WHEN ( @MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim * @MAC_IM_sim ) = 0
+ THEN 1
+ ELSE ( @MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim * @MAC_IM_sim )
+ END
+
+ -- salvo in tabella!
+ UPDATE dbo.QuoteRM
+ SET FCR = ISNULL(@FCR_sim,1)
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND RawMat = @RawMat
+ END
+ ELSE
+ BEGIN
+ -- update rese RawMat!
+ UPDATE dbo.QuoteRM
+ SET FCR = @MAC_SC * @MAC_ST * @MAC_IN * @MAC_IM
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND RawMat = @RawMat
+ END
+ -- inserisco i costi delle utilities in QuoteOC
+
+ -- inserisco altri costi x lavorazione estrusione! GAS ed EE
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, CodUtil, @RawMat, @BatchQty, ISNULL(UnitCost * @BatchQty, 0), 1
+ FROM dbo.Utilities
+ WHERE CodPlant = @CodPlant
+
+ -- *** controllo errori - se non trovo costi GAS ed EE segnalo errore
+ IF @@ROWCOUNT = 0
+ SET @validStep = 0;
+ ELSE
+ SET @validStep = 1;
+
+ SELECT @errorScore = @errorScore + CASE WHEN @validStep = 0 THEN 1 ELSE 0 END,
+ @valid = CASE WHEN @validStep = 0 THEN 0 ELSE @valid END
+
+ /*************************************************************
+ * MATRICE
+ *
+ * calcolo prezzo e durata matrice con procedura a 5 step...
+ * A) media ponderata prezzo ed ExpLife da DiesDet selezionando x CodItem + CodDiesGroup
+ * B) EOLLife x media ponderata su DiesDet dove Active = 0 e vita cmq superiore 5000 KG ( escludendo rotture accidentali )
+ * C) SE prezzo = 0 --> prendo prezzo da DiesGroupDet selezionando x CodDiesGroup
+ * D) Se EOL = 0 --> prendo ExpLife della singola matrice, se è 0 --> prendo EOLLife da DiesGroupDet selezionando x CodDiesGroup
+ * E) Calcolo Price / Life
+ *
+ *************************************************************/
+
+ -- se sono in simulazione leggo tutto direttamente da tab dbo.DiesGroupDet
+ IF (@QuoteType = 'S')
+ BEGIN
+ SELECT @DiesPrice = Price,
+ @DiesExpLife = ExpLife,
+ @DiesEOLife = CASE WHEN EOLLife > 0 THEN EOLLife ELSE ExpLife END,
+ @DiesByClass = 1 -- imposto come calcolata matrice da gruppo
+ FROM DiesGroupDet
+ WHERE CodDiesGroup = @CodDiesGroup
+ END
+
+ ELSE
+ BEGIN
+
+ -- (A) da DiesDet
+ SELECT @DiesPrice = CASE WHEN SUM(ISNULL(ActLife, 1)) <> 0 THEN SUM(ISNULL(Price, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)) END,
+ @DiesExpLife = CASE WHEN SUM(ISNULL(ActLife, 1)) <> 0 THEN SUM(ISNULL(ExpLife, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)) END
+ FROM dbo.DiesDet
+ WHERE CodItem = @CodItem
+ AND CodDiesGroup = @CodDiesGroup
+ GROUP BY CodItem, CodDiesGroup
+
+ -- (B) da DiesDet
+ SELECT @DiesEOLife = AVG( ISNULL(ActLife, 0))
+ FROM dbo.DiesDet
+ WHERE CodItem = @CodItem
+ AND CodDiesGroup = @CodDiesGroup
+ AND Active = 0 -- solo matrici rottamate
+ AND ActLife > 5000 -- solo se hanno Life > 5000 Kg ( non rotture accidentali )
+ GROUP BY CodItem, CodDiesGroup
+ END
+
+ -- continuo!
+ SET @DiesPrice = ISNULL(@DiesPrice,0)
+ SET @DiesExpLife = ISNULL(@DiesExpLife,0)
+ SET @DiesEOLife = ISNULL(@DiesEOLife,0)
+ SET @validStep = 1
+
+ -- (C) verifico se prezzo è OK...
+ IF (@DiesPrice = 0)
+ BEGIN
+ -- calcolo da DiesGroupDet
+ SELECT @DiesPrice = ISNULL(Price, 0), @DiesByClass = 1 -- imposto come calcolata matrice da gruppo
+ FROM dbo.DiesGroupDet
+ WHERE CodDiesGroup = @CodDiesGroup
+ END
+
+ -- (D) verifico se vita è OK...
+ IF (@DiesEOLife = 0)
+ BEGIN
+ -- uso exp life articolo...
+ SET @DiesEOLife = @DiesExpLife
+ END
+
+ -- controllo che non sia nulla/vuota la durata...
+ IF (@DiesEOLife = 0)
+ BEGIN
+ SELECT @DiesEOLife = CASE WHEN EOLLife > 0 THEN EOLLife ELSE ExpLife END,
+ @DiesByClass = 1 -- imposto come calcolata matrice da gruppo
+ FROM dbo.DiesGroupDet
+ WHERE CodDiesGroup = @CodDiesGroup
+ END
+
+ -- controllo che non sia nulla/vuota la durata...
+ IF ( @DiesEOLife > 0 AND @DiesPrice > 0 )
+ BEGIN
+ -- (E) Calcolo price/life!
+ SET @DiesPriceLife = @DiesPrice / @DiesEOLife
+ END
+ ELSE
+ BEGIN
+ SET @DiesPriceLife = 0 -- metto a zero il DiesPriceLife
+ SET @validStep = 0 -- indico che valore non è valido ( ND excel )
+ END
+
+ -- se è una simulazione uso cmq i valori caricati e non calcolati
+ IF (@QuoteType = 'S')
+ BEGIN
+ -- recupero i costi matrice da simulazione
+ DECLARE @DiesPrice_sim DECIMAL(9,3) = 0
+ DECLARE @DiesCommLife DECIMAL(9,2) = 0 -- questa mi serve dopo?
+ DECLARE @DiesTecLife DECIMAL(9,2) = 0
+
+ ;WITH myCTE2 as
+ ( -- Pivot table
+ SELECT DiesPrice_sim, DiesCommLife, DiesTecLife
+ FROM
+ ( SELECT NomePar, ValPar
+ FROM dbo.QuoteSimPar
+ WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
+ ) AS SourceTable
+ PIVOT ( MIN(ValPar) FOR NomePar IN ( DiesPrice_sim, DiesCommLife, DiesTecLife )
+ ) AS PivotTable
+ )
+ SELECT @DiesPrice_sim = DiesPrice_sim,
+ @DiesCommLife = DiesCommLife,
+ @DiesTecLife = DiesTecLife
+ FROM myCTE2
+
+ IF ( ISNULL(@DiesPrice_sim,0) = 0 OR ISNULL(@DiesTecLife,0) = 0 )
+ BEGIN
+ SET @DiesPriceLife = 0
+ SET @validStep = 0
+ END
+ ELSE
+ BEGIN
+ SET @DiesPriceLife = @DiesPrice_sim / @DiesTecLife
+ SET @validStep = 1 -- potrebbe essere stato messo = 0 da Quote non di simulazione
+ END
+ END
+
+ -- inserisco costi per Matrice: costo e durata da matrice, se non ci sono da gruppo, (anche solo uno dei due, ovviamente più facile trovare durata x matrice...)
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'MATRICE', @RawMat, @BatchQty, ISNULL(@DiesPriceLife * @BatchQty, 0), 1, @validStep
+
+ -- *** controllo errori
+ SELECT @errorScore = @errorScore + CASE WHEN @validStep = 0 THEN 1 ELSE 0 END,
+ @valid = CASE WHEN @validStep = 0 THEN 0 ELSE @valid END
+
+ -- inserisco parametri calcolati x matrice
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesPrice', CONVERT(NVARCHAR(100), @DiesPrice) )
+ ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesExpLife', CONVERT(NVARCHAR(100), @DiesExpLife) )
+ ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesEOLife', CONVERT(NVARCHAR(100), @DiesEOLife) )
+ ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesByClass', CONVERT(NVARCHAR(100), ISNULL(@DiesByClass,0)) )
+
+ /*************************************************************
+ * VENDITA ROTTAME
+ *
+ * calcolo COSTO DI VENDITA PER LE 2 FASI ESTRUSIONE 01 ED IMBALLO 04
+ * - calcolo costi variabili fase 01 / 04
+ * - calcolo costo di vendita x fase 01 / 04
+ *************************************************************/
+
+ SELECT @OCF01 = SUM(ISNULL(C4UG,0))
+ FROM #QuoteOC
+
+ SELECT @VCF01 = @OCF01 + VC4UG
+ FROM #QuoteWorkInt
+ WHERE ProcessNum = '01'
+
+ SELECT @VCF04 = @OCF01 + SUM(VC4UG)
+ FROM #QuoteWorkInt
+
+ SELECT @SellCostF01 = CASE WHEN @QuoteType = 'S' THEN ((@MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim) - 1) ELSE ((@MAC_ST * @MAC_SC * @MAC_IN) - 1) END
+ * (q.RawMatCost + q.RawMatExtraCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01)
+ -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 01)
+ , @RefCostF01 = -- ( (A - B) / 100 - C )
+ (
+ -- (A) = (costo pieno di acquisto + costi fase 1) * MAC * 100 (IN CENTESIMI)
+ ((q.RawMatCost + q.RawMatExtraCost + @VCF01) *
+ CASE WHEN @QuoteType = 'S' THEN (@MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim * 100) ELSE (@MAC_ST * @MAC_SC * @MAC_IN * 100) END
+ )
+ -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione))
+ - CASE WHEN @QuoteType = 'S' THEN ((@MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim * 100) - 100) ELSE ((@MAC_ST * @MAC_SC * @MAC_IN * 100) - 100) END
+ * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 - rmd.ProcCost)
+ ) / 100 -- divido per 100 finale
+ -- (C) = sottraggo costo pieno alluminio
+ - (q.RawMatCost + q.RawMatExtraCost + @VCF01)
+ FROM dbo.RawMatDet rmd
+ INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+ AND q.RawMat = @RawMat
+
+ SELECT @SellCostF04 = CASE WHEN @QuoteType = 'S' THEN ((@MAC_IM_sim) - 1) ELSE ((@MAC_IM) - 1) END
+ * (q.RawMatCost + q.RawMatExtraCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01 + @VCF04)
+ -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 01 e fase 04)
+ , @RefCostF04 = -- ( (A - B) / 100 - C )
+ (
+ -- (A) = (costo pieno di acquisto + costi variabili fase 1 e 4) * MAC * 100 (IN CENTESIMI)
+ ((q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) *
+ CASE WHEN @QuoteType = 'S' THEN (@MAC_IM_sim * 100) ELSE (@MAC_IM * 100) END
+ )
+ -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione))
+ - CASE WHEN @QuoteType = 'S' THEN ((@MAC_IM_sim * 100) - 100) ELSE ((@MAC_IM * 100) - 100) END
+ * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04 - rmd.ProcCost)
+ ) / 100 -- divido per 100 finale
+ -- (C) = sottraggo costo pieno alluminio
+ - (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04)
+
+ -- NOTA: usiamo (q.RawMatCost + q.RawMatExtraCost + @VCF01) e non (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @RefCostF01) perché la differenza è minimale, si tratta di 10/20 PPM...
+
+ FROM dbo.RawMatDet rmd
+ INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+ AND q.RawMat = @RawMat
+
+ -- inserisco costi per VENDITA
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'VENDITA', @RawMat, @BatchQty, ISNULL(@SellCostF01 * @BatchQty, 0), @SSR )
+ -- inserisco costi per ROTTAME
+ ,( @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, ISNULL(@RefCostF01 * @BatchQty, 0), 1 - @SSR )
+ -- inserisco costi per VENDITA
+ ,( @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'VENDITA', @RawMat, @BatchQty, ISNULL(@SellCostF04 * @BatchQty, 0), @SSR )
+ -- inserisco costi per ROTTAME
+ ,( @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, ISNULL(@RefCostF04 * @BatchQty, 0), 1 - @SSR )
+
+ -- calcolo Package Cost e RMWeight da tab PackageDet
+ -- EXEC stp_packageCost @CodItem, @CodClient, @CodPackag, @PDesc=@PkgDesc OUTPUT, @RMWeight=@PRMWeight OUTPUT, @Weight=@PWeight OUTPUT, @Tare=@PTare OUTPUT, @PackCost=@PCost OUTPUT, @TareStRat=@PTareStRatio OUTPUT
+ -- stored sostituita perchè la maggior parte dei calcoli li ho già fatti
+ SELECT @PCost = CASE @PWeight WHEN 0 THEN 0 ELSE RMCost / @PWeight END
+ , @PRMWeight = RMWeight
+ , @PkgDesc = PackagDesc
+ , @PTareStRatio = CASE @PWeight WHEN 0 THEN 0 ELSE ( RMWeight - @PTare) / @PWeight END
+ FROM dbo.PackagDet
+ WHERE CodPackag = @CodPackag
+
+ -- inserisco costi per IMBALLO
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'IMBALLO', @RawMat, @BatchQty, ISNULL(@PCost * @BatchQty, 0), 1, CASE WHEN ISNULL(@PCost * @BatchQty, 0) = 0 THEN 0 ELSE 1 END
+
+ -- *** controllo errori - costo imballo non può essere = 0
+ SELECT @errorScore = @errorScore + CASE WHEN ISNULL(@PCost * @BatchQty, 0) = 0 THEN 1 ELSE 0 END,
+ @valid = CASE WHEN ISNULL(@PCost * @BatchQty, 0) = 0 THEN 0 ELSE @valid END
+
+ -- inserisco parametri calcolati x imballaggio
+ INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
+ VALUES ( @QuoteType, @CodQuote, @QuoteRev, '04', 'PkgDesc', @PkgDesc )
+ ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PRMWeight', CONVERT(NVARCHAR(100), @PRMWeight ) )
+ ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PWeight', CONVERT(NVARCHAR(100), @PWeight ) )
+ ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PTare', CONVERT(NVARCHAR(100), @PTare) )
+ ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'TareStRatio', CONVERT(NVARCHAR(100), @PTareStRatio ) )
+
+
+ ---------------------------------------------
+ -- inserisco costi per TRASPORTI
+ ---------------------------------------------
+ -- recupero tipo di trasporto ( se ha costi o meno )
+ SELECT @HasTC = i.HasTC
+ FROM dbo.QuoteList q
+ INNER JOIN dbo.Incoterms i ON q.CodInco = i.CodInco
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+
+ -- Se non trovo @HasTC setto i valori in modo che diano errore
+ IF @HasTC IS NULL
+ BEGIN
+ SET @HasTC = 1
+ SET @TranspCost = 0
+ END
+ ELSE
+ BEGIN
+ -- recupero zona da cliente...
+ SELECT @TranspZone = TranspZone
+ FROM dbo.ClientDet
+ WHERE CodClient = @CodClient
+
+ -- recupero costi trasporto
+ SELECT @TranspCost = TranspCost -- se non lo trova rimane a 0
+ FROM dbo.TranspCostDet
+ WHERE TranspZone = @TranspZone
+ END
+
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'TRASPORTI', @RawMat, @BatchQty, ISNULL(@HasTC * @TranspCost * @BatchQty, 0), 1
+ , CASE WHEN @HasTC = 1 AND @TranspCost = 0 THEN 0 ELSE 1 END
+
+ -- *** controllo errori - se previsti costi imballo allora devo avere il costo <> 0
+ SELECT @errorScore = @errorScore + CASE WHEN @HasTC = 1 AND @TranspCost = 0 THEN 1 ELSE 0 END,
+ @valid = CASE WHEN @HasTC = 1 AND @TranspCost = 0 THEN 0 ELSE @valid END
+
+
+ ---------------------------------------------
+ -- inserisco costi per PROVVIGIONI
+ ---------------------------------------------
+ IF @QuoteType = 'R' -- SOLO se R prima leggo dai dati caricati negli ordini
+ BEGIN
+ SELECT @Provvig = CONVERT(DECIMAL(9,6),ValPar) FROM dbo.QuoteSimPar
+ WHERE NomePar = 'ProvvCost'
+ AND QuoteType=@QuoteType AND CodQuote=@CodQuote AND QuoteRev=@QuoteRev
+ END
+
+ -- leggo da tabella agenti
+ IF ISNULL(@Provvig, 0) = 0
+ BEGIN
+ SELECT @Provvig = ISNULL(a.QuotaProvvAg, 0)
+ FROM dbo.AgentsDet a
+ INNER JOIN dbo.ClientDet c ON a.CodAg = c.CodAg
+ INNER JOIN dbo.QuoteList q ON q.CodClient = c.CodClient
+ WHERE q.QuoteType = @QuoteType
+ AND q.CodQuote = @CodQuote
+ AND q.QuoteRev = @QuoteRev
+ END
+
+ -- fix eventuali valori null
+ SET @Provvig = ISNULL(@Provvig, 0)
+
+ -- inserisco costi per PROVVIGIONI
+ INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'PROVVIGIONI', @RawMat, @BatchQty, ISNULL(@Provvig * @BatchQty, 0), 1
+
+ /* ==================================================
+ CARICO TABELLE EFFETTIVE
+ ==================================================*/
+
+ -- carico quote parametri!
+ INSERT dbo.QuoteParam
+ SELECT * FROM #QuoteParam
+
+ -- carico lavorazioni INTERNE!
+ INSERT dbo.QuoteWorkInt -- ci sono valori calcolati quindi devo selezionare i campi
+ SELECT QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05
+ , NetProd, WSR, MSR, DSR, FC4UG, VC4UG, OH4UG, SC4UG, valid
+ FROM #QuoteWorkInt
+
+ ---- *** verifica errori ***
+ SELECT DISTINCT @errorScore = @errorScore + CASE WHEN TotQty = 0 THEN 1 ELSE 0 END,
+ @valid = CASE WHEN TotQty = 0 THEN 0 ELSE @valid END
+ FROM #QuoteOC
+
+ ---- carico OTHERCOSTS
+ INSERT dbo.QuoteOC -- ci sono valori calcolati quindi devo selezionare i campi
+ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02
+ , Class03, Class04, Class05
+ , CASE TotQty WHEN 0 THEN 1 ELSE TotQty END -- evito errore in campo calcolato se TotQty = 0
+ , TotCost, Quota, valid
+ FROM #QuoteOC
+
+ -- update valori di errore generale
+ UPDATE dbo.QuoteList
+ SET valid = @valid
+ , errorScore = @errorScore
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+ COMMIT TRAN;
+
+ --SELECT COUNT(*) FROM #QuoteParam
+ --SELECT COUNT(*) FROM #QuoteWorkInt
+ --SELECT COUNT(*) FROM #QuoteOC
+
+ -- elimino temp table... NON serve nella stored
+ --IF OBJECT_ID('tempdb..#QuoteParam') IS NOT NULL
+ -- DROP TABLE #QuoteParam
+ --IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL
+ -- DROP TABLE #QuoteWorkInt
+ --IF OBJECT_ID('tempdb..#QuoteOC') IS NOT NULL
+ -- DROP TABLE #QuoteOC
+
+END
+GO
+PRINT N'Creating [dbo].[stp_zzz_scratch]...';
+
+
+GO
+
+
+
+
+
+
+-- =============================================
+-- 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
+GO
+PRINT N'Creating [dbo].[stp_QL_fullDataUpdate]...';
+
+
+GO
+
+
+
+
+-- =============================================
+-- STORED PROCEDURE stp_QL_fullDataUpdate
+--
+-- Author: Steamware
+-- Create date: 2014.01.27
+-- Description: Recupera tutti i dati dalle tab QuoteList x avere schema x report/gestioen web
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_fullDataUpdate] (
+ @QuoteType CHAR(1) = 'Q'
+ , @CodQuote BIGINT = 0
+ , @QuoteRev INT = 0
+ , @DoUpdate CHAR(1) = 'N' -- se si debba fare ricalcolo Y/N
+ )
+AS
+SET NOCOUNT ON
+
+/* va rifatta struttura:
+*
+* tab temporanea
+* calcolo parametri
+* salvataggio in QuoteList dei 3 valori di sunto
+* calcolo dei valori aggregati e restituzione riga risultati finali
+*
+* ATTENZIONE NON CONTROLLA IL CAMPO VALID DEVE ESSERE SEMPRE 1 PER ESSERE VALIDO
+*
+*/
+
+
+--DECLARE @FullCost DECIMAL(9,6)
+-- , @MinPrice DECIMAL(9,6)
+IF (@DoUpdate = 'Y')
+BEGIN
+ EXEC dbo.stp_QL_update @QuoteType
+ , @CodQuote
+ , @QuoteRev
+END
+
+
+-- inserire in tabelle: QuoteFull_Q (quotazioni/preventivi)
+-- inserire in tabelle: QuoteFull_R (resoconto di commessa)
+-- inserire in tabelle: QuoteFull_S (simulazioni)
+
+-- elimino eventuale temp table...
+IF OBJECT_ID('tempdb..#TempFullData') IS NOT NULL
+ DROP TABLE #TempFullData;
+
+
+-- Costruisco la "superselect" di tutti i valori necessari...
+
+-- =================================================
+-- PIVOT TABELLA QuoteParameter
+-- =================================================
+;WITH ctePivotQuoteP
+AS (
+ SELECT *
+ FROM (
+ SELECT QuoteType
+ , CodQuote
+ , QuoteRev
+ , Descr
+ , Parameter
+ FROM dbo.QuoteParam
+ WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType AND QuoteRev = @QuoteRev
+ ) AS SourceTable
+
+ PIVOT(MIN(Parameter) FOR Descr IN (
+ ItemDescr
+ , CodifProfilo
+ , ClasseMerc
+ , CodClientAssoc
+ , ClientNameAssoc
+ , CodDiesGroup
+ , TipoDies
+ , DiamDies
+ , HoleNumDies
+ , NumDiesInList
+ , NumDiesExaust
+ , CodPlant
+ , KeyAM
+ , KeyAMIL
+ , NumSMED
+ , KgTeo
+ , KgProdotti
+ , QuotaMan
+ , DiesPrice
+ , DiesExpLife
+ , DiesEOLife
+ , DiesByClass
+ , PkgDesc
+ , PRMWeight
+ , PWeight
+ , PTare
+ , TareStRatio
+ , LivPackage
+ , LivPackageDett
+ -- START nuovi campi x SIM
+ , DiesPrice_sim
+ , SamplePrice
+ , DiesFullCost
+ , DiesPriceClientQuote
+ , DiesTecLife
+ , DiesCommLife
+ , MonthSalesPrev
+ , SalesPrevCost
+ , DiesFinCost
+ , ClientQuoteReven
+ , ExtraDiscountDies
+ , WSR01_sim
+ , MSR01_sim
+ , NetProd01_sim
+ , DSR_sim
+ -- end nuovi campi x SIM
+ )
+ ) AS PivotData
+),
+-- =================================================
+-- PIVOT TABELLA QuoteOC
+-- =================================================
+ctePivotQuoteOC AS (
+ SELECT *
+ FROM (
+ SELECT QuoteType
+ , CodQuote
+ , QuoteRev
+ , Class01 + ProcessNum AS ClassProc
+ , C4UG
+ FROM dbo.QuoteOC
+ WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType AND QuoteRev = @QuoteRev
+ ) AS SourceTable
+ PIVOT(SUM(C4UG) FOR ClassProc IN
+ ( EE01
+ , GAS01
+ , MATRICE01
+ , VENDITA01
+ , ROTTAME01
+ , VENDITA04
+ , ROTTAME04
+ , IMBALLO04
+ , TRASPORTI04
+ , PROVVIGIONI04
+ )
+ ) AS PivotData
+)
+-- =================================================
+-- MAIN Select Tabella con INTO temp table
+-- =================================================
+SELECT 'V14.1' AS Vers
+ , QL.QuoteType
+ , QL.CodQuote
+ , QL.QuoteRev
+ , QL.IdxQState
+ , QL.CodClient
+ , ISNULL(CD.ClientName,N'') AS ClientName
+ , QL.CodItem
+ , QL.CodItemGroup
+ , QL.RawMat
+ , QL.UnitWeight
+ , QL.BatchQty
+ , QL.CodInco
+ , ISNULL(CD.TranspZone,N'') AS TranspZone
+ , QL.KeyAM
+ , QL.Note
+ , QL.PriceOff
+ , QL.OrdDate
+ , QL.OrdNum
+ , QL.OrdRow
+ , QL.OrdPrice
+ , QL.OrdQty
+ , pQP.CodClientAssoc
+ , pQP.ClientNameAssoc
+ , pQP.ItemDescr
+ , pQP.CodifProfilo
+ , pQP.ClasseMerc
+ , pQP.TipoDies
+ , pQP.CodDiesGroup
+ , CONVERT(DECIMAL(18,6),pQP.DiamDies) AS DiamDies
+ , CONVERT(INT,pQP.HoleNumDies) AS HoleNumDies
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPrice),0) AS DiesPrice
+ , CONVERT(DECIMAL(18,6),pQP.DiesExpLife) AS DiesExpLife
+ , CONVERT(DECIMAL(18,6),pQP.DiesEOLife) AS DiesEOLife
+ , CONVERT(BIT, ISNULL(pQP.DiesByClass,0)) AS DiesByClass
+ , CONVERT(DECIMAL(18,6),pQP.NumDiesInList) AS NumDiesInList
+ , CONVERT(DECIMAL(18,6),pQP.NumDiesExaust) AS NumDiesExaust
+ , pQP.CodPlant
+ , pQP.KeyAMIL
+ , CONVERT(DECIMAL(18,6),pQP.KgTeo) AS KgTeo
+ , CONVERT(DECIMAL(18,6),pQP.NumSMED) AS NumSMED
+ , CONVERT(DECIMAL(18,6),pQP.QuotaMan) AS QuotaMan
+ , CONVERT(DECIMAL(18,6),pQP.PRMWeight) AS PRMWeight
+ , CONVERT(DECIMAL(18,6),pQP.PWeight) AS PWeight
+ , CONVERT(DECIMAL(18,6),pQP.PTare) AS PTare
+ , pQP.LivPackage
+ , pQP.LivPackageDett
+ -- START nuovi campi x SIM
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPrice_sim),0) AS DiesPrice_sim
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.SamplePrice),0) AS SamplePrice
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesFullCost),0) AS DiesFullCost
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPriceClientQuote),0) AS DiesPriceClientQuote
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesTecLife),0) AS DiesTecLife
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesCommLife),1) AS DiesCommLife
+ , ISNULL(CONVERT(INT,pQP.MonthSalesPrev),0) AS MonthSalesPrev
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.SalesPrevCost),0) AS SalesPrevCost
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesFinCost),0) AS DiesFinCost
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.ClientQuoteReven),0) AS ClientQuoteReven
+ , ISNULL(CONVERT(DECIMAL(18,6),pQP.ExtraDiscountDies),0) AS ExtraDiscountDies
+ , ISNULL(CONVERT(DECIMAL(9,8),pQP.WSR01_sim),0) AS WSR01_sim
+ , ISNULL(CONVERT(DECIMAL(9,8),pQP.MSR01_sim),0) AS MSR01_sim
+ , ISNULL(CONVERT(DECIMAL(9,3),pQP.NetProd01_sim),0) AS NetProd01_sim
+ , ISNULL(CONVERT(DECIMAL(9,8),pQP.DSR_sim),0) AS DSR_sim
+ -- end nuovi campi x SIM
+ , QRM.RawMatCost
+ , QRM.RawMatExtraCost
+ , QRM.RawMatCost + QRM.RawMatExtraCost AS RawMatFullCost -- fare campo calcolato ?!?
+ , QRM.CodPackag
+ , pQP.PkgDesc
+ , QRM.FSR
+ , ISNULL(pQOC.PROVVIGIONI04, 0) AS ProvvCost
+ , ISNULL(pQOC.EE01, 0) AS EECost
+ , ISNULL(pQOC.GAS01, 0) AS GasCost
+ , ISNULL(pQOC.MATRICE01, 0) AS DiesCost
+ , ISNULL(pQOC.IMBALLO04, 0) AS PackCost
+ , ISNULL(pQOC.TRASPORTI04, 0) AS TranspCost
+ , ISNULL(pQOC.VENDITA01, 0) AS SellCost01
+ , ISNULL(pQOC.ROTTAME01, 0) AS RefCost01
+ , ISNULL(pQOC.VENDITA04, 0) AS SellCost04
+ , ISNULL(pQOC.ROTTAME04, 0) AS RefCost04
+ , QWI01.WSR AS WSR01
+ , QWI01.MSR AS MSR01
+ , QWI01.NetProd AS NetProd01
+ , QWI01.FC4UG AS FC4UG01
+ , QWI01.VC4UG AS VC4UG01
+ , QWI01.OH4UG AS OH4UG01
+ , QWI01.SC4UG AS SC4UG01
+ , 1 - (QWI01.DYR * QWI02.DYR * QWI03.DYR * QWI04.DYR) AS DSR
+ , QWI04.NetProd AS NetProd04
+ , QWI04.FC4UG AS FC4UG04
+ , QWI04.VC4UG AS VC4UG04
+ , ISNULL(pQOC.VENDITA01, 0) + ISNULL(pQOC.ROTTAME01, 0) + ISNULL(pQOC.VENDITA04, 0) + ISNULL(pQOC.ROTTAME04, 0) + ISNULL(pQOC.EE01, 0) + ISNULL(pQOC.GAS01, 0) + ISNULL(pQOC.MATRICE01, 0) + ISNULL(pQOC.IMBALLO04, 0) + ISNULL(pQOC.PROVVIGIONI04, 0) + ISNULL(pQOC.TRASPORTI04, 0) + QWI01.VC4UG + QWI04.VC4UG + QWI01.SC4UG AS FVC
+ , PD.Charge
+ , QL.valid
+ , QL.errorScore
+
+INTO #TempFullData -- carico in temp table
+FROM dbo.QuoteList AS QL
+
+LEFT JOIN dbo.ClientDet CD -- non voglio che non crei record x mancanza Cliente
+ ON QL.CodClient = CD.CodClient
+
+INNER JOIN ctePivotQuoteP AS pQP
+ ON QL.QuoteType = pQP.QuoteType
+ AND QL.CodQuote = pQP.CodQuote
+ AND QL.QuoteRev = pQP.QuoteRev
+
+INNER JOIN dbo.QuoteRM AS QRM
+ ON QL.QuoteType = QRM.QuoteType
+ AND QL.CodQuote = QRM.CodQuote
+ AND QL.QuoteRev = QRM.QuoteRev
+ AND QL.rawmat = QRM.RawMat
+
+INNER JOIN ctePivotQuoteOC AS pQOC
+ ON QL.QuoteType = pQOC.QuoteType
+ AND QL.CodQuote = pQOC.CodQuote
+ AND QL.QuoteRev = pQOC.QuoteRev
+
+INNER JOIN dbo.QuoteWorkInt AS QWI01
+ ON QL.QuoteType = QWI01.QuoteType
+ AND QL.CodQuote = QWI01.CodQuote
+ AND QL.QuoteRev = QWI01.QuoteRev
+ AND QWI01.ProcessNum = '01'
+INNER JOIN dbo.QuoteWorkInt AS QWI02
+ ON QL.QuoteType = QWI02.QuoteType
+ AND QL.CodQuote = QWI02.CodQuote
+ AND QL.QuoteRev = QWI02.QuoteRev
+ AND QWI02.ProcessNum = '02'
+INNER JOIN dbo.QuoteWorkInt AS QWI03
+ ON QL.QuoteType = QWI03.QuoteType
+ AND QL.CodQuote = QWI03.CodQuote
+ AND QL.QuoteRev = QWI03.QuoteRev
+ AND QWI03.ProcessNum = '03'
+INNER JOIN dbo.QuoteWorkInt AS QWI04
+ ON QL.QuoteType = QWI04.QuoteType
+ AND QL.CodQuote = QWI04.CodQuote
+ AND QL.QuoteRev = QWI04.QuoteRev
+ AND QWI04.ProcessNum = '04'
+INNER JOIN dbo.PlantsDet AS PD
+ ON PD.CodPlant = pQP.CodPlant
+
+---- salvo i dati dell'ordine: FullCost, MinPrice, PriceOff (se zero lo pongo uguale a MinPrice)
+--UPDATE QuoteList
+--SET FullCost = @FullCost
+-- , MinPrice = @MinPrice
+-- , PriceOff = CASE WHEN ISNULL(PriceOff,0) = 0 THEN @MinPrice ELSE PriceOff END
+--WHERE QuoteType = @QuoteType
+-- AND CodQuote = @CodQuote
+-- AND QuoteRev = @QuoteRev
+
+-- SELECT TOP 1000 * FROM #TempFullData
+
+IF @QuoteType = 'Q'
+ BEGIN
+ IF OBJECT_ID('QuoteFull_Q') IS NULL -- CREATE TABLE QuoteFull_Q da eliminare quando Tabella Definitiva
+ SELECT * INTO dbo.QuoteFull_Q FROM #TempFullData
+ ELSE
+ BEGIN
+ --DELETE dbo.QuoteFull_Q WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
+ DELETE dbo.QuoteFull_Q WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
+ INSERT INTO dbo.QuoteFull_Q (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore)
+ SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore
+ FROM #TempFullData
+ END
+ END
+
+ELSE IF @QuoteType = 'R'
+ BEGIN
+ IF OBJECT_ID('QuoteFull_R') IS NULL -- CREATE TABLE QuoteFull_R da eliminare quando Tabella Definitiva
+ SELECT * INTO dbo.QuoteFull_R FROM #TempFullData
+ ELSE
+ BEGIN
+ DELETE dbo.QuoteFull_R WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
+ INSERT INTO dbo.QuoteFull_R (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, OrdDate, OrdNum, OrdRow, OrdPrice, OrdQty, valid, errorScore)
+ SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, OrdDate, OrdNum, OrdRow, OrdPrice, OrdQty, valid, errorScore
+-- FROM [dbo].[v_pivot]
+ FROM #TempFullData
+ END
+ END
+
+ELSE IF @QuoteType = 'S'
+ BEGIN
+ IF OBJECT_ID('QuoteFull_S') IS NULL -- CREATE TABLE QuoteFull_S da eliminare quando Tabella Definitiva
+ SELECT * INTO dbo.QuoteFull_S FROM #TempFullData
+ ELSE
+ BEGIN
+ DELETE dbo.QuoteFull_S WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
+ INSERT INTO dbo.QuoteFull_S (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice_sim, DiesPrice, SamplePrice, DiesFullCost, DiesPriceClientQuote, DiesExpLife, DiesEOLife, DiesTecLife, DiesCommLife, MonthSalesPrev, SalesPrevCost, DiesFinCost, ClientQuoteReven, ExtraDiscountDies, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01_sim, WSR01, MSR01_sim, MSR01, NetProd01_sim, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR_sim, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore)
+ SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice_sim, DiesPrice, SamplePrice, (DiesPrice_sim + SamplePrice) AS DiesFullCost, DiesPriceClientQuote, DiesExpLife, DiesEOLife, DiesTecLife, DiesCommLife, MonthSalesPrev
+ -- se DiesCommLife è NULLA è messa a 1 sopra
+ ,CASE WHEN ( DiesTecLife = 0 OR DiesCommLife = 0 )
+ THEN 0
+ ELSE ( (((DiesTecLife % DiesCommLife) / DiesTecLife) * ( DiesPrice_sim + SamplePrice) ) / DiesTecLife )
+ END AS SalesPrevCost
+ ,CASE WHEN DiesCommLife > 0
+ THEN ((((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1))) / DiesCommLife )
+ ELSE ((((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1))) / 1 )
+ END AS DiesFinCost
+ ,CASE WHEN DiesTecLife > 0
+ THEN ( -DiesPriceClientQuote / DiesTecLife )
+ ELSE -DiesPriceClientQuote
+ END AS ClientQuoteReven
+ ,CASE WHEN ( DiesTecLife = 0 OR DiesCommLife = 0 )
+ THEN 0
+ ELSE (((((DiesTecLife % DiesCommLife) / DiesTecLife ) * (DiesPrice_sim+SamplePrice)) / DiesTecLife
+ +(((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote) * (power((1.05),MonthSalesPrev/(12))-(1))) / DiesCommLife )
+ - DiesPriceClientQuote / DiesTecLife )
+ END AS ExtraDiscountDies
+
+ -- CALCOLI OLD Version
+ --((((DiesTecLife%DiesCommLife)/case when DiesTecLife=(0) then (1) else DiesTecLife end)*(DiesPrice+SamplePrice))/case when DiesTecLife=(0) then (1) else DiesTecLife end) AS SalesPrevCost,
+ --((((DiesPrice+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1)))/case when DiesCommLife>(0) then DiesCommLife else (1) end) AS DiesFinCost,
+ --( -DiesPriceClientQuote/case when DiesTecLife>(0) then DiesTecLife else (1) end) AS ClientQuoteReven,
+ --(((((DiesTecLife%DiesCommLife)/case when DiesTecLife=(0) then (1) else DiesTecLife end)*(DiesPrice+SamplePrice))/case when DiesTecLife=(0) then (1) else DiesTecLife end+(((DiesPrice+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1)))/case when DiesCommLife>(0) then DiesCommLife else (1) end)-DiesPriceClientQuote/case when DiesTecLife>(0) then DiesTecLife else (1) end) AS ExtraDiscountDies,
+
+ ,DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01_sim, WSR01, MSR01_sim, MSR01, NetProd01_sim, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR_sim, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore
+
+ FROM #TempFullData
+ END
+ END
+ELSE IF @QuoteType = 'C'
+ BEGIN
+ DELETE dbo.QuoteFull_C WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
+ INSERT INTO dbo.QuoteFull_C ( Vers, QuoteType, CodQuote, QuoteRev, Class01, Class02, CodItem, RawMat, CodPlant, CodDiesGroup, CodPackag, batchQty, CodInco, RawMatFullCost, FVC, FullCost, valid, errorScore )
+ SELECT Vers, QuoteType, CodQuote, QuoteRev, CodifProfilo, ClasseMerc, tmp.CodItem, RawMat, tmp.CodPlant, CodDiesGroup, CodPackag, batchQty, CodInco, RawMatFullCost, FVC, FVC + FC4UG01 + OH4UG01 + FC4UG04 AS FullCost, valid, errorScore
+ FROM #TempFullData AS tmp
+END
+
+-- elimino temp table...
+--IF OBJECT_ID('tempdb..#TempFullData') IS NOT NULL
+-- DROP TABLE #TempFullData
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QL_insNew]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.02.21
+-- Description: inserisce un nuovo record QuoteList
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_insNew]
+(
+ @QuoteType CHAR(1) = 'Q',
+ @CodClient NVARCHAR(50) = '',
+ @CodItem NVARCHAR(50) = '',
+ @RawMat NVARCHAR(50),
+ @RawMatCost DECIMAL(18, 6),
+ @RawMatExtraCost DECIMAL(18, 6),
+ @BatchQty INT,
+ @CodInco NVARCHAR(5),
+ @Note NVARCHAR(2500)
+)
+AS
+
+-- variabili
+DECLARE @CodQuote BIGINT = 0,
+ @QuoteRev INT = 0
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- calcolo nuovo record odierno
+ SELECT @CodQuote = dbo.f_getNewCodQuote()
+
+ -- inserisco riga in QuoteList
+ INSERT INTO QuoteList(QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @CodClient, CodItem, UnitWeight, @BatchQty, CodItemGroup, @RawMat, @CodInco, @Note
+ FROM ItemDet
+ WHERE CodItem = @CodItem
+
+ -- ora inserisco in QuoteRM
+ INSERT INTO QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, 1, @RawMat, @RawMatCost, @RawMatExtraCost)
+
+ -- ricalcolo!
+ EXEC stp_QL_fullDataUpdate @QuoteType
+ , @CodQuote
+ , @QuoteRev
+ , 'N'
+
+COMMIT TRAN
+
+-- seleziono intera riga!
+SELECT *
+FROM QuoteList
+WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QLS_UpdDiesPar]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware - S.E.L.
+-- Create date: 2014.05.20
+-- Description: update di un record in QL (Full) TIPO SIMULAZIONE e poi aggiorna a cascata
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLS_UpdDiesPar]
+(
+ @Original_QuoteType CHAR(1) = 'S',
+ @Original_CodQuote BIGINT = 0,
+ @Original_QuoteRev INT = 0,
+ @SamplePrice DECIMAL(18, 6),
+ @DiesPriceClientQuote DECIMAL(18, 6),
+ @DiesCommLife DECIMAL(18, 6),
+ @MonthSalesPrev INT
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- @SamplePrice
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'SamplePrice', @SamplePrice
+
+ -- @DiesPriceClientQuote
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'DiesPriceClientQuote', @DiesPriceClientQuote
+
+ -- @DiesCommLife
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'DiesCommLife', @DiesCommLife
+
+ -- @MonthSalesPrev
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'MonthSalesPrev', @MonthSalesPrev
+
+
+ -- update dei valori calcolati!
+ EXEC stp_QL_fullDataUpdate @Original_QuoteType
+ ,@Original_CodQuote
+ ,@Original_QuoteRev
+ ,'Y'
+
+COMMIT TRAN
+
+
+-- seleziono intera riga!
+
+SELECT *
+FROM v_QuoteFull_Q
+WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QLS_UpdExtrPar]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware - S.E.L.
+-- Create date: 2014.05.16
+-- Description: update di un record in QL (Full) TIPO SIMULAZIONE e poi aggiorna a cascata
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLS_UpdExtrPar]
+(
+ @Original_QuoteType CHAR(1) = 'S',
+ @Original_CodQuote BIGINT = 0,
+ @Original_QuoteRev INT = 0,
+ @TipoDies NVARCHAR(50) = '',
+ @DiamDies INT = 1,
+ @HoleNumDies INT = 1,
+ @CodPlant NVARCHAR(50),
+ @DiesPrice_sim DECIMAL(18, 6),
+ @DiesTecLife DECIMAL(18, 6),
+ @WSR01_sim DECIMAL(9, 8),
+ @MSR01_sim DECIMAL(9, 8),
+ @NetProd01_sim DECIMAL(9, 3)
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- dichiaro e calcolo valore complessivo...
+ DECLARE @CodDiesGroup NVARCHAR(50) = ''
+
+ SELECT @CodDiesGroup = @TipoDies + '-' + CAST(@DiamDies AS VARCHAR(50)) + '-' + CAST(@HoleNumDies AS VARCHAR(50)) + '-' + CodItemGroup
+ FROM QuoteList
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+
+ -- @CodDiesGroup
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'CodDiesGroup', @CodDiesGroup
+
+ -- @CodPlant
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'CodPlant', @CodPlant
+
+ -- @DiesPrice_sim
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'DiesPrice_sim', @DiesPrice_sim
+
+ -- @DiesTecLife
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'DiesTecLife', @DiesTecLife
+
+ -- @WSR01_sim
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'WSR01_sim', @WSR01_sim
+
+ -- @MSR01_sim
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'MSR01_sim', @MSR01_sim
+
+ -- @NetProd01_sim
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'NetProd01_sim', @NetProd01_sim
+
+
+ -- update dei valori calcolati!
+ EXEC stp_QL_fullDataUpdate @Original_QuoteType
+ ,@Original_CodQuote
+ ,@Original_QuoteRev
+ ,'Y'
+
+COMMIT TRAN
+
+
+-- seleziono intera riga!
+
+SELECT *
+FROM v_QuoteFull_Q
+WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QLS_UpdHead]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware - S.E.L.
+-- Create date: 2014.05.16
+-- Description: update di un record in QL (Full) TIPO SIMULAZIONE e poi aggiorna a cascata
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLS_UpdHead]
+(
+ @Original_QuoteType CHAR(1) = 'S',
+ @Original_CodQuote BIGINT = 0,
+ @Original_QuoteRev INT = 0,
+ @CodClient NVARCHAR(50) = '',
+ @CodItem NVARCHAR(50) = '',
+ @UnitWeight DECIMAL(9, 3) = 0,
+ @CodItemGroup NVARCHAR(50) = '',
+ @RawMat NVARCHAR(50),
+ @RawMatCost DECIMAL(18, 6),
+ @RawMatExtraCost DECIMAL(18, 6),
+ @BatchQty INT,
+ @CodInco NVARCHAR(5),
+ @Note NVARCHAR(2500) = ''
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+ -- aggiorno valori QuoteList!
+ UPDATE QuoteList
+ SET CodClient = @CodClient
+ , CodItem = @CodItem
+ , RawMat = @RawMat
+ , BatchQty = @BatchQty
+ , CodInco = @CodInco
+ , Note = ISNULL(@Note,'')
+ , CodItemGroup= @CodItemGroup
+ , UnitWeight = @UnitWeight
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+ -- aggiorno valori QuoteRM
+ UPDATE QuoteRM
+ SET RawMat = @RawMat
+ , RawMatCost = @RawMatCost
+ , RawMatExtraCost = @RawMatExtraCost
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+
+ -- @CodDiesGroup
+ DECLARE @CodDiesGroup NVARCHAR(50) = ''
+ SELECT @CodDiesGroup = ValPar
+ FROM QuoteSimPar
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+ AND NomePar = 'CodDiesGroup'
+
+ -- scambio ultimo valore
+ SELECT @CodDiesGroup = ISNULL(REPLACE(@CodDiesGroup, '-' + dbo.f_GetSubstring(@CodDiesGroup,'-' , 4), '-'+@CodItemGroup), '' )
+
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'CodDiesGroup', @CodDiesGroup
+
+
+ -- update dei valori calcolati!
+ EXEC stp_QL_fullDataUpdate @Original_QuoteType
+ ,@Original_CodQuote
+ ,@Original_QuoteRev
+ ,'Y'
+
+COMMIT TRAN
+
+
+-- seleziono intera riga!
+
+SELECT *
+FROM v_QuoteFull_Q
+WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QLS_UpdPackPar]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware - S.E.L.
+-- Create date: 2014.05.20
+-- Description: update di un record in QL (Full) TIPO SIMULAZIONE e poi aggiorna a cascata
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLS_UpdPackPar]
+(
+ @Original_QuoteType CHAR(1) = 'S',
+ @Original_CodQuote BIGINT = 0,
+ @Original_QuoteRev INT = 0,
+ @CodPackag NVARCHAR(50),
+ @DSR_sim DECIMAL(9, 8)
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- @CodPackag
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'CodPackag', @CodPackag
+
+ -- @DSR_sim
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'DSR_sim', @DSR_sim
+
+
+ -- update dei valori calcolati!
+ EXEC stp_QL_fullDataUpdate @Original_QuoteType
+ ,@Original_CodQuote
+ ,@Original_QuoteRev
+ ,'Y'
+
+COMMIT TRAN
+
+
+-- seleziono intera riga!
+
+SELECT *
+FROM v_QuoteFull_Q
+WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_SC2C_insertForDate]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.29
+-- Description: creazione dati base per Cost List per data odierna
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_SC2C_insertForDate]
+ @RawMatCost DECIMAL(18,6) = 2,
+ @BatchQty INT = 1000
+AS
+BEGIN
+
+DECLARE @Date AS SMALLDATETIME = CONVERT( SMALLDATETIME,CONVERT(CHAR(8), GETDATE(), 112) ) ;
+
+-- ===========================================================
+-- se non esiste, CREO DATI LISTINO COSTI per il giorno
+-- ===========================================================
+IF NOT EXISTS( SELECT * FROM dbo.CostList WHERE QuoteType = 'C' AND DateList = @Date )
+ BEGIN
+ INSERT INTO dbo.CostList WITH (TABLOCK) ( DateList,CodItem,RawMat,RawMatCost,RawMatExtraCost,batchQty,CodInco )
+ EXEC dbo.stp_QFC_creaListino @RawmatCost , @BatchQty
+
+ -- aggiorno statistiche tabella
+ UPDATE STATISTICS dbo.CostList WITH FULLSCAN;
+ END
+
+RETURN
+
+END
+GO
+PRINT N'Creating [dbo].[stp_QL_makeSim]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware
+-- Mod date: 2014.05.21
+-- Description: modifica una quotazione da Q ad S in QuoteList e ricalcola
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_makeSim]
+(
+ @CodQuote_orig BIGINT = 0,
+ @QuoteRev_orig INT = 0
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- passo x definizione a 'S'
+ DECLARE @QuoteType_orig CHAR(1) = 'Q',
+ @QuoteType CHAR(1) = 'S'
+
+ -- elimino record in QuoteFull_Q
+ DELETE
+ FROM QuoteFull_Q
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ -- carico alcuni dati accessori precompilando...
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, Descr, Parameter
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND Descr IN ('CodDiesGroup', 'CodPlant')
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'DiesTecLife', Parameter
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND Descr = 'KgTeo'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'DiesPrice_sim', Parameter
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND Descr = 'DiesPrice'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'CodPackag', CodPackag
+ FROM QuoteRM
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'NetProd01_sim', NetProd
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '01'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'MSR01_sim', MSR
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '01'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'WSR01_sim', WSR
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '01'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'DSR_sim', DSR
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '04'
+
+ -- update riga in QuoteList
+ UPDATE QuoteList
+ SET QuoteType = @QuoteType
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ -- ricalcolo!
+ EXEC stp_QL_fullDataUpdate @QuoteType
+ , @CodQuote_orig
+ , @QuoteRev_orig
+ , 'Y'
+COMMIT TRAN
+
+-- seleziono intera riga!
+SELECT *
+FROM QuoteList
+WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QL_newRev]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.04.23
+-- Description: duplica record QuoteList generando una NUOVA REVISIONE
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_newRev]
+(
+ @QuoteType CHAR(1) = 'Q',
+ @CodQuote BIGINT = 0,
+ @QuoteRev_orig INT = 0
+)
+AS
+
+-- variabili
+DECLARE @QuoteRev INT = 0
+
+SET @QuoteRev = @QuoteRev_orig + 1
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- inserisco riga in QuoteList
+ INSERT INTO QuoteList(QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note)
+ SELECT QuoteType, @CodQuote, @QuoteRev as QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note
+ FROM QuoteList
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev_orig
+
+ -- ora inserisco in QuoteRM
+ INSERT INTO QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
+ SELECT QuoteType, @CodQuote, @QuoteRev as QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost
+ FROM QuoteRM
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev_orig
+
+ -- ricalcolo!
+ EXEC stp_QL_fullDataUpdate @QuoteType
+ ,@CodQuote
+ ,@QuoteRev
+ ,'Y'
+COMMIT TRAN
+
+-- seleziono intera riga!
+SELECT *
+FROM QuoteList
+WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QLC_insNew]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.26
+-- Description: elaborazione dbo.QuoteFull_C ( listino )
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLC_insNew]
+(
+ @row2proc INT = 100,
+ @Note NVARCHAR(2500) = '',
+ @QuoteType CHAR(1) = 'C' -- per il momento è fisso = 'C'
+)
+AS
+BEGIN
+
+SET NOCOUNT ON;
+
+-- declare variabili
+DECLARE @CodQuote AS BIGINT,
+ @QuoteRev AS INT = 0,
+ @OrdNum AS NVARCHAR(50),
+ @OrdRow AS NVARCHAR(50),
+ @CodItem AS NVARCHAR(50),
+ @CodClient AS NVARCHAR(50) = '',
+ @RawMat AS NVARCHAR(50),
+ @RawMatCost AS DECIMAL(18,6) = 0,
+ @BatchQty AS INT = 0,
+ @RawMatExtraCost AS DECIMAL(18,6),
+ @CodInco AS NVARCHAR(5),
+ @PriceOff AS DECIMAL(9,6),
+ @OrdDate As DATETIME,
+ @OrdPrice AS DECIMAL(9,6),
+ @OrdQty AS INT,
+ @oggi AS DATETIME = GETDATE(),
+ @LastIdx AS INT,
+ @noRow AS CHAR(1) = 'N',
+ @TotRow AS INT = 0,
+ @Date AS SMALLDATETIME = CONVERT(SMALLDATETIME,CONVERT(CHAR(8), GETDATE(), 112))
+
+SET XACT_ABORT ON;
+
+SET @QuoteType = 'C' -- per il momento non lascio parametrico il quotetype = C - Costi
+
+-- se non esiste il contatore creo il record contatore
+IF NOT EXISTS ( SELECT * FROM dbo.ContatoriQuote WHERE Flusso = @QuoteType )
+ INSERT INTO dbo.ContatoriQuote SELECT @QuoteType, 0
+
+/* viene fatta da altra stored
+-- ===========================================================
+-- se non esiste, CREO LISTINO per il giorno carico listino
+-- ===========================================================
+IF NOT EXISTS( SELECT * FROM dbo.CostList
+ WHERE QuoteType = @QuoteType AND DateList = @Date )
+ -- AND LEFT(CodQuote,6) = CONVERT( BIGINT, ( RIGHT(YEAR(@oggi),2) + dbo.f_padLeft(MONTH(@oggi), 2,'0') + dbo.f_padLeft(DAY(@oggi), 2,'0') ) ) )
+ BEGIN
+ INSERT INTO dbo.CostList WITH (TABLOCK) ( DateList,CodItem,RawMat,RawMatCost,RawMatExtraCost,batchQty,CodInco )
+ EXEC dbo.stp_QFC_creaListino @RawmatCost , @BatchQty
+ END
+*/
+
+-- verifico se ci sono record da elaborare
+IF EXISTS ( SELECT * FROM dbo.CostList WHERE QuoteType = @QuoteType AND CodQuote = 0 )
+ SET @noRow = 'N'
+
+WHILE( @noRow = 'N' AND @row2proc > 0)
+BEGIN
+ -- ===========================================================
+ -- stacco il CodQuote da usare e sbocco la tabella ( in realtà perdo un numero se poi non faccio insert )
+ -- se non eseguo procedure multiple contemporanee non serve
+ -- ===========================================================
+ DECLARE @Table TABLE ( LastIdx INT )
+ BEGIN TRAN;
+ UPDATE dbo.ContatoriQuote
+ SET LastIdx = ( LastIdx % 1000000 ) + 1 -- si resetta dopo 1.000.000 righe ( in pratica ho tot righe al giorno )
+ OUTPUT inserted.LastIdx INTO @Table
+ WHERE Flusso = @QuoteType
+
+ SELECT @LastIdx = MAX(LastIdx) FROM @Table
+ SELECT @CodQuote = CONVERT( BIGINT, ( RIGHT(YEAR(@oggi),2) + dbo.f_padLeft(MONTH(@oggi), 2,'0') + dbo.f_padLeft(DAY(@oggi), 2,'0') + dbo.f_padLeft(@LastIdx, 8,'0') ) )
+ COMMIT;
+
+
+ -- ===========================================================
+ -- elaboro il primo ordine "libero" assegnando il CodQuote
+ -- se da errore la transazione mi annulla il codquote e quindi rimane elaborabile
+ -- altrimenti metto l'assegnazione nella tran precedente e poi decido cosa fare con quelli non completati con data EndCalc = NULL
+ -- ===========================================================
+ -- SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -- SERIALIZABLE; -- REPEATABLE READ;
+ BEGIN TRANSACTION;
+
+ -- leggo il primo record da elaborare e assegno il CodQuote
+ WITH cteFree AS
+ ( -- leggo il primo ordine da elaborare e assegno il CodQuote
+ SELECT TOP(1) CodItem, RawMat FROM dbo.CostList WHERE DateList = @Date AND QuoteType = @QuoteType AND CodQuote = 0
+ )
+ UPDATE dbo.CostList
+ SET CodQuote = @CodQuote,
+ QuoteType = @QuoteType
+ FROM dbo.CostList AS ls
+ INNER JOIN cteFree AS cte
+ ON ls.DateList = @Date AND ls.CodItem = cte.CodItem AND ls.RawMat = cte.RawMat
+-- OPTION (RECOMPILE)
+
+ -- leggo i valori di calcolo
+ SET @CodItem = NULL
+ SELECT @CodItem = CodItem,
+ @BatchQty = batchQty,
+ @RawMat = RawMat,
+ @RawMatCost = RawMatCost,
+ @RawMatExtraCost = RawMatExtraCost,
+ @CodInco = CodInco
+ FROM dbo.CostList
+ WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote
+ OPTION (RECOMPILE);
+
+ -- imposto il Cliente a non specificato ( CUSTOMER ND )
+ SET @CodClient = '00000000000'
+
+ IF @CodItem IS NOT NULL
+ BEGIN
+
+ -- -------------------------------------------------------
+ -- inserisco dati per elaborazione in QuoteList e QuoteRM
+ -- -------------------------------------------------------
+ INSERT INTO dbo.QuoteList( QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note )
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @CodClient, CodItem, UnitWeight, @BatchQty, CodItemGroup, @RawMat, @CodInco, @Note
+ FROM dbo.ItemDet
+ WHERE CodItem = @CodItem
+
+ INSERT INTO dbo.QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, 1, @RawMat, @RawMatCost, @RawMatExtraCost)
+
+ -- -------------------------------------------------------
+ -- ricalcolo!
+ -- -------------------------------------------------------
+ EXEC dbo.stp_QL_fullDataUpdate @QuoteType , @CodQuote , @QuoteRev, 'Y';
+
+ -- aggiorno data-ora fine elaborazione
+ UPDATE dbo.CostList
+ SET EndCalc = GETDATE()
+ WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote
+
+ --SELECT * FROM dbo.QuoteList WHERE QuoteType = 'C' AND CodQuote = @CodQuote
+ --SELECT * FROM dbo.QuoteRM WHERE QuoteType = 'C' AND CodQuote = @CodQuote
+ --SELECT TOP(1000) * FROM dbo.QuoteFull_C WHERE QuoteType = 'C' AND CodQuote = @CodQuote
+ END
+ ELSE
+ SET @noRow = 'Y' -- fine righe da elaborare
+
+ COMMIT TRAN
+ SET @row2proc = @row2proc - 1
+
+/*
+ SET @TotRow = @TotRow -1 -- decremento righe da leggere
+
+ COMMIT TRAN;
+ END TRY
+ BEGIN CATCH
+ SELECT 'Error'
+ ,@CodItem
+ ,@CodClient
+ ,@BatchQty
+ ,@RawMat
+ ,@RawMatCost
+ ,@RawMatExtraCost
+ ,@CodInco
+ , @TotRow
+-- ROLLBACK
+
+ DECLARE @ErrorMessage NVARCHAR(4000);
+ DECLARE @ErrorSeverity INT;
+ DECLARE @ErrorState INT;
+
+ SELECT @ErrorMessage = ERROR_MESSAGE() + ' Error Number: ' + CONVERT( Varchar(10) , ERROR_NUMBER())
+ + ' Severity: ' + CONVERT( Varchar(10) , ERROR_SEVERITY() ) + ' : '
+ + ISNULL(ERROR_PROCEDURE(),'stored?')
+ + ' Line: ' + CONVERT(VARCHAR(100),ERROR_LINE()),
+
+ @ErrorSeverity = 8, -- ERROR_SEVERITY(),
+ @ErrorState = ERROR_STATE();
+
+ RAISERROR (@ErrorMessage, -- Message text.
+ @ErrorSeverity, -- Severity.
+ @ErrorState -- State.
+ );
+
+ SET @TotRow = @TotRow -1 -- decremento righe da leggere
+ END CATCH
+*/
+
+END -- END WHILE
+
+RETURN
+END
+
+/*
+-- Pulizia Tabelle di appoggio x QuoteType = 'C'
+
+TRUNCATE TABLE CostList
+DELETE FROM dbo.QuoteOC WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteParam WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteWorkExt WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteWorkInt WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteRM WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteList WHERE QuoteType = 'C'
+
+SELECT TOP 1000 * FROM dbo.QuoteList WHERE QuoteType = 'C' -- AND CodQuote = '14052600000001'
+SELECT * FROM dbo.QuoteRM WHERE QuoteType = 'C' -- AND CodQuote = '14052600000001'
+SELECT TOP 1000 * FROM dbo.QuoteOC WHERE QuoteType = 'C' -- AND CodQuote = '14052600000002'
+SELECT TOP 1000 * FROM dbo.QuoteParam WHERE QuoteType = 'C' -- AND CodQuote = '14052600000993'
+SELECT TOP 1000 * FROM dbo.QuoteWorkInt WHERE QuoteType = 'C' -- AND CodQuote = '14052600000993'
+
+SELECT * FROM CostList
+SELECT * FROM dbo.QuoteFull_C WHERE QuoteType = 'C'
+
+SELECT TOP 1000 * FROM ItemDet WHERE CodItem = '1BQ00012'
+
+-- RIPULISCO TUTTO
+TRUNCATE TABLE dbo.QuoteFull_C
+
+UPDATE dbo.ContatoriQuote
+SET LastIdx = 0 WHERE Flusso = 'C'
+
+*/
+GO
+PRINT N'Creating [dbo].[stp_QLC_insNew_OLD]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.26
+-- Description: elaborazione dbo.QuoteFull_C ( listino )
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLC_insNew_OLD]
+(
+ @RawMatCost DECIMAL(18,6) = 2,
+ @BatchQty INT = 1000,
+ @QuoteType CHAR(1) = 'C', -- non usato al momento
+ @Note NVARCHAR(2500) = '',
+ @row2proc INT = 100
+)
+AS
+
+SET NOCOUNT ON;
+
+-- declare variabili
+DECLARE @CodQuote AS BIGINT,
+ @QuoteRev AS INT = 0,
+ @OrdNum AS NVARCHAR(50),
+ @OrdRow AS NVARCHAR(50),
+ @CodItem AS NVARCHAR(50),
+ @CodClient AS NVARCHAR(50),
+ @RawMat AS NVARCHAR(50),
+ @RawMatExtraCost AS DECIMAL(18,6),
+ @CodInco AS NVARCHAR(5),
+ @PriceOff AS DECIMAL(9,6),
+ @OrdDate As DATETIME,
+ @OrdPrice AS DECIMAL(9,6),
+ @OrdQty AS INT,
+ @oggi AS DATETIME = GETDATE(),
+ @LastIdx AS INT,
+ @noRow AS CHAR(1) = 'N',
+ @TotRow AS INT = 0
+
+SET XACT_ABORT ON;
+
+SET @QuoteType = 'C' -- per il momento non lascio parametrico il quotetype = C - Costi
+
+-- se non esiste il contatore creo il record
+IF NOT EXISTS ( SELECT * FROM dbo.ContatoriQuote WHERE Flusso = @QuoteType )
+ INSERT INTO dbo.ContatoriQuote SELECT @QuoteType, 0
+
+-- creo il listino da elaborare
+CREATE TABLE #temp (
+ [IdxRiga] [int] IDENTITY(1,1),
+-- [DataRif] [datetime] NOT NULL, -- CodQuote ha già la data
+-- [QuoteType] [char](1) NOT NULL,
+-- [CodClient] [nvarchar](50) NOT NULL,
+ [CodItem] [nvarchar](50) NOT NULL,
+ [RawMat] [nvarchar](50) NOT NULL,
+ [RawMatCost] [decimal](18, 6) NULL,
+ [RawMatExtraCost] [decimal](18, 6) NULL,
+ [batchQty] [int] NULL,
+ [CodInco] [nvarchar](5) NOT NULL
+
+ PRIMARY KEY ( [IdxRiga] ) WITH (PAD_INDEX = ON, FILLFACTOR = 100)
+) ON [PRIMARY]
+
+INSERT INTO #temp ( CodItem,RawMat,RawMatCost,RawMatExtraCost,batchQty,CodInco )
+EXEC dbo.stp_QFC_creaListino @RawmatCost , @BatchQty
+
+SET @TotRow = @@ROWCOUNT -- metto via record da elaborare
+
+SELECT @TotRow
+-- SELECT @TotRow = COUNT(*) FROM #temp WHERE QuoteType = @QuoteType
+
+-- SET @TotRow = 100 -- elaboro solo 1000 x test
+
+SELECT TOP 100 * FROM #temp ORDER BY [IdxRiga] DESC
+
+WHILE( @TotRow > 0 )
+BEGIN
+ -- ===========================================================
+ -- stacco il CodQuote da usare e sbocco la tabella ( in realtà perdo un numero se poi non faccio insert )
+ -- se non eseguo procedure multiple contemporanee non serve
+ -- ===========================================================
+ DECLARE @Table TABLE ( LastIdx INT )
+ BEGIN TRAN;
+ UPDATE dbo.ContatoriQuote
+ SET LastIdx = ( LastIdx % 1000000 ) + 1 -- si resetta dopo 1.000.000 righe ( in pratica ho tot righe al giorno )
+ OUTPUT inserted.LastIdx INTO @Table
+ WHERE Flusso = @QuoteType
+
+ SELECT @LastIdx = MAX(LastIdx) FROM @Table
+ SELECT @CodQuote = CONVERT( BIGINT, ( RIGHT(YEAR(@oggi),2) + dbo.f_padLeft(MONTH(@oggi), 2,'0') + dbo.f_padLeft(DAY(@oggi), 2,'0') + dbo.f_padLeft(@LastIdx, 8,'0') ) )
+ COMMIT;
+
+ -- ===========================================================
+ -- elaboro il record in sequenza
+ -- ===========================================================
+ -- SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -- SERIALIZABLE; -- REPEATABLE READ;
+ BEGIN TRY
+-- BEGIN TRANSACTION;
+
+ -- leggo i valori di calcolo
+ SELECT @CodItem = CodItem,
+ @BatchQty = batchQty,
+ @RawMat = RawMat,
+ @RawMatCost = RawMatCost,
+ @RawMatExtraCost = RawMatExtraCost,
+ @CodInco = CodInco
+ FROM #temp
+ WHERE IdxRiga = @TotRow
+
+ IF @CodItem IS NOT NULL
+ BEGIN
+
+ -- -------------------------------------------------------
+ -- inserisco dati per elaborazione in QuoteList e QuoteRM
+ -- -------------------------------------------------------
+ INSERT INTO dbo.QuoteList( QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note )
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @CodClient, CodItem, UnitWeight, @BatchQty, CodItemGroup, @RawMat, @CodInco, @Note
+ FROM dbo.ItemDet
+ WHERE CodItem = @CodItem
+
+ INSERT INTO dbo.QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, 1, @RawMat, @RawMatCost, @RawMatExtraCost)
+
+ -- -------------------------------------------------------
+ -- ricalcolo!
+ -- -------------------------------------------------------
+
+ EXEC dbo.stp_QL_fullDataUpdate @QuoteType , @CodQuote , @QuoteRev, 'Y';
+
+ --SELECT * FROM dbo.QuoteList WHERE QuoteType = 'C' AND CodQuote = @CodQuote
+ --SELECT * FROM dbo.QuoteRM WHERE QuoteType = 'C' AND CodQuote = @CodQuote
+ --SELECT TOP(1000) * FROM dbo.QuoteFull_C WHERE QuoteType = 'C' AND CodQuote = @CodQuote
+ END
+
+ SET @TotRow = @TotRow -1 -- decremento righe da leggere
+
+-- COMMIT TRAN;
+ END TRY
+ BEGIN CATCH
+ SELECT 'Error'
+ ,@CodItem
+ ,@CodClient
+ ,@BatchQty
+ ,@RawMat
+ ,@RawMatCost
+ ,@RawMatExtraCost
+ ,@CodInco
+ , @TotRow
+-- ROLLBACK
+
+ DECLARE @ErrorMessage NVARCHAR(4000);
+ DECLARE @ErrorSeverity INT;
+ DECLARE @ErrorState INT;
+
+ SELECT @ErrorMessage = ERROR_MESSAGE() + ' Error Number: ' + CONVERT( Varchar(10) , ERROR_NUMBER())
+ + ' Severity: ' + CONVERT( Varchar(10) , ERROR_SEVERITY() ) + ' : '
+ + ISNULL(ERROR_PROCEDURE(),'stored?')
+ + ' Line: ' + CONVERT(VARCHAR(100),ERROR_LINE()),
+
+ @ErrorSeverity = 8, -- ERROR_SEVERITY(),
+ @ErrorState = ERROR_STATE();
+
+ RAISERROR (@ErrorMessage, -- Message text.
+ @ErrorSeverity, -- Severity.
+ @ErrorState -- State.
+ );
+
+
+ SET @TotRow = @TotRow -1 -- decremento righe da leggere
+ END CATCH
+
+END -- END WHILE
+
+/*
+-- Pulizia Tabelle di appoggio x QuoteType = 'C'
+
+DELETE FROM dbo.QuoteOC WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteParam WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteWorkExt WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteWorkInt WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteRM WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteList WHERE QuoteType = 'C'
+
+SELECT TOP 1000 * FROM dbo.QuoteList WHERE QuoteType = 'C' AND CodQuote = '14052600000001'
+SELECT * FROM dbo.QuoteRM WHERE QuoteType = 'C' AND CodQuote = '14052600000001'
+SELECT TOP 1000 * FROM dbo.QuoteOC WHERE QuoteType = 'C' AND CodQuote = '14052600000002'
+SELECT TOP 1000 * FROM dbo.QuoteParam WHERE QuoteType = 'C' AND CodQuote = '14052600000993'
+SELECT TOP 1000 * FROM dbo.QuoteWorkInt WHERE QuoteType = 'C' AND CodQuote = '14052600000993'
+
+SELECT TOP 1000 * FROM ItemDet WHERE CodItem = '1BQ00012'
+
+SELECT * FROM dbo.QuoteFull_C WHERE QuoteType = 'C'
+
+-- RIPULISCO TUTTO
+TRUNCATE TABLE dbo.QuoteFull_C
+
+UPDATE dbo.ContatoriQuote
+SET LastIdx = 0 WHERE Flusso = 'C'
+
+*/
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QLF_Insert]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware - S.E.L.
+-- Create date: 2014.04.16
+-- Description: insert di un record in QL (Full) e poi aggiorna a cascata
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLF_Insert]
+(
+ @QuoteType CHAR(1) = 'Q',
+ @CodClient NVARCHAR(50) = '',
+ @CodItem NVARCHAR(50) = '',
+ @RawMat NVARCHAR(50),
+ @RawMatCost DECIMAL(18, 6),
+ @RawMatExtraCost DECIMAL(18, 6),
+ @BatchQty INT,
+ @CodInco NVARCHAR(5),
+ @Note NVARCHAR(2500) = ''
+)
+AS
+
+-- variabili
+DECLARE @CodQuote BIGINT = 0,
+ @QuoteRev INT = 0
+
+-- check QTA: deve essere > 0 !!!
+IF(@BatchQty = 0)
+BEGIN
+ SET @BatchQty = 1
+END
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- calcolo nuovo record odierno
+ SELECT @CodQuote = dbo.f_getNewCodQuote()
+
+ -- inserisco riga in QuoteList
+ INSERT INTO QuoteList(QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @CodClient, CodItem, UnitWeight, @BatchQty, CodItemGroup, @RawMat, @CodInco, @Note
+ FROM ItemDet
+ WHERE CodItem = @CodItem
+
+ -- ora inserisco in QuoteRM
+ INSERT INTO QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, 1, @RawMat, @RawMatCost, @RawMatExtraCost)
+
+ -- ricalcolo!
+ EXEC stp_QL_fullDataUpdate @QuoteType
+ ,@CodQuote
+ ,@QuoteRev
+ ,'Y'
+
+COMMIT TRAN
+
+-- seleziono intera riga!
+SELECT *
+FROM v_QuoteFull_Q
+WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QLR_insNew]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.22
+-- Description: elaborazione OrdersHist Redditivity
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLR_insNew]
+(
+ @QuoteType CHAR(1) = 'R',
+ @Note NVARCHAR(2500) = '',
+ @row2proc INT = 100
+)
+AS
+BEGIN
+
+SET NOCOUNT ON;
+
+-- declare variabili
+DECLARE @CodQuote AS BIGINT,
+ @QuoteRev AS INT = 0,
+ @OrdNum AS NVARCHAR(50),
+ @OrdRow AS NVARCHAR(50),
+ @CodItem AS NVARCHAR(50),
+ @CodClient AS NVARCHAR(50),
+ @BatchQty AS INT,
+ @RawMat AS NVARCHAR(50),
+ @RawMatCost AS DECIMAL(18,6),
+ @RawMatExtraCost AS DECIMAL(18,6),
+ @CodInco AS NVARCHAR(5),
+ @PriceOff AS DECIMAL(9,6),
+ @OrdDate As DATETIME,
+ @OrdPrice AS DECIMAL(9,6),
+ @OrdQty AS INT,
+ @ProvvCost AS DECIMAL(9,6),
+ @oggi AS DATETIME = GETDATE(),
+ @LastIdx AS INT,
+ @noRow AS CHAR(1) = 'N'
+
+SET XACT_ABORT ON;
+
+SET @QuoteType = 'R' -- per il momento non lascio parametrico il quotetype R - redditività
+
+-- se non esiste il contatore creo il record
+IF NOT EXISTS ( SELECT * FROM dbo.ContatoriQuote WHERE Flusso = @QuoteType )
+ INSERT INTO dbo.ContatoriQuote SELECT @QuoteType, 0
+
+-- verifico se ci sono record da elaborare
+IF EXISTS ( SELECT * FROM dbo.OrdersHist WHERE CodQuote = 0 )
+ SET @noRow = 'N'
+
+WHILE( @noRow = 'N' AND @row2proc > 0)
+BEGIN
+ -- ===========================================================
+ -- stacco il CodQuote da usare e sbocco la tabella ( in realtà perdo un numero se poi non faccio insert )
+ -- se non eseguo procedure multiple contemporanee non serve
+ -- ===========================================================
+ -- SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -- credo non serva con OUTPUT
+ DECLARE @Table TABLE ( LastIdx INT )
+ BEGIN TRAN;
+ UPDATE dbo.ContatoriQuote
+ SET LastIdx = ( LastIdx % 1000000 ) + 1 -- si resetta dopo 1.000.000 righe ( in pratica ho tot righe x giorno )
+ OUTPUT inserted.LastIdx INTO @Table
+ WHERE Flusso = @QuoteType
+
+ SELECT @LastIdx = MAX(LastIdx) FROM @Table
+ SELECT @CodQuote = CONVERT( BIGINT, ( RIGHT(YEAR(@oggi),2) + dbo.f_padLeft(MONTH(@oggi), 2,'0') + dbo.f_padLeft(DAY(@oggi), 2,'0') + dbo.f_padLeft(@LastIdx, 8,'0') ) )
+ COMMIT;
+
+ -- ===========================================================
+ -- elaboro il primo ordine "libero" assegnando il CodQuote
+ -- se da errore la transazione mi annulla il codquote e quindi rimane elaborabile
+ -- altrimenti metto l'assegnazione nella tran precedente e poi decido cosa fare con quelli non completati con data EndCalc = NULL
+ -- ===========================================================
+ -- SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -- SERIALIZABLE; -- REPEATABLE READ;
+ BEGIN TRANSACTION;
+
+ -- leggo il primo ordine da elaborare e assegno il CodQuote
+ WITH cteOrderFree AS
+ ( -- leggo il primo ordine da elaborare e assegno il CodQuote
+ SELECT TOP(1) OrdNum, OrdRow FROM dbo.OrdersHist WHERE CodQuote = 0
+ )
+ UPDATE Ord
+ SET CodQuote = @CodQuote,
+ QuoteType = @QuoteType
+ FROM dbo.OrdersHist AS ord
+ INNER JOIN cteOrderFree AS cte
+ ON ord.OrdNum = cte.OrdNum AND ord.OrdRow = cte.OrdRow
+
+
+ -- leggo i valori di calcolo
+ SET @OrdNum = NULL
+ SELECT @OrdNum = OrdNum,
+ @OrdRow = OrdRow ,
+ @CodItem = hi.CodItem,
+ @CodClient = CodClient,
+ @BatchQty = BatchQty,
+ @RawMat = RawMat,
+ @RawMatCost = RawMatCost,
+ @RawMatExtraCost = RawMatExtraCost,
+ @CodInco = CodInco,
+ @PriceOff = PriceOff,
+ @OrdPrice = OrdPrice,
+ @OrdDate = OrdDate,
+ @OrdQty = OrdQty,
+ @ProvvCost = ProvvCost
+ FROM dbo.OrdersHist hi
+ INNER JOIN dbo.ItemDet AS It ON hi.CodItem = it.CodItem -- deve esistere il codice in anagrafica altrimenti non lo elaboro
+ WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType
+ OPTION (RECOMPILE)
+
+ IF @OrdNum IS NOT NULL -- record precedente trovato
+ BEGIN
+
+ -- inserisco riga in QuoteList
+ INSERT INTO dbo.QuoteList( QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note, PriceOff, OrdNum, OrdRow, OrdDate, OrdPrice, OrdQty )
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @CodClient, CodItem, UnitWeight, @BatchQty, CodItemGroup, @RawMat, @CodInco, @Note , @PriceOff, @OrdNum, @OrdRow, @OrdDate ,@OrdPrice, @OrdQty
+ FROM dbo.ItemDet
+ WHERE CodItem = @CodItem
+
+ -- ora inserisco in QuoteRM
+ INSERT INTO dbo.QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, 1, @RawMat, @RawMatCost, @RawMatExtraCost)
+
+ -- ora inserisco ProvvCost in QuoteSimPar che mi serve dopo nei calcoli dopo
+ INSERT INTO dbo.QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, 'ProvvCost', @ProvvCost)
+
+ -- ricalcolo!
+ EXEC dbo.stp_QL_fullDataUpdate @QuoteType , @CodQuote , @QuoteRev, 'Y';
+
+ -- aggiorno data-ora fine elaborazione
+ UPDATE dbo.OrdersHist
+ SET EndCalc = GETDATE()
+ WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType;
+
+ --SELECT * FROM dbo.OrdersHist WHERE QuoteType = 'R' AND CodQuote = @CodQuote
+ --SELECT * FROM dbo.QuoteList WHERE QuoteType = 'R' AND CodQuote = @CodQuote
+ --SELECT * FROM dbo.QuoteRM WHERE QuoteType = 'R' AND CodQuote = @CodQuote
+ --SELECT TOP(1000) * FROM dbo.QuoteFull_R WHERE QuoteType = 'R' AND CodQuote = @CodQuote
+ END
+ ELSE
+ SET @noRow = 'Y' -- fine righe da elaborare
+
+ COMMIT TRAN;
+ SET @row2proc = @row2proc - 1
+
+END -- END WHILE
+
+RETURN
+
+END
+
+/*
+-- Pulizia Tabelle di appoggio x QuoteType = 'R'
+
+DELETE FROM dbo.QuoteOC WHERE QuoteType = 'R'
+DELETE FROM dbo.QuoteParam WHERE QuoteType = 'R'
+DELETE FROM dbo.QuoteWorkExt WHERE QuoteType = 'R'
+DELETE FROM dbo.QuoteWorkInt WHERE QuoteType = 'R'
+DELETE FROM dbo.QuoteRM WHERE QuoteType = 'R'
+DELETE FROM dbo.QuoteList WHERE QuoteType = 'R'
+DELETE FROM dbo.QuoteSimPar WHERE QuoteType = 'R'
+
+SELECT TOP 1000 * FROM dbo.QuoteList WHERE QuoteType = 'R'
+SELECT TOP 1000 * FROM dbo.QuoteRM WHERE QuoteType = 'R'
+SELECT TOP 1000 * FROM dbo.QuoteOC WHERE QuoteType = 'R'
+SELECT TOP 1000 * FROM dbo.QuoteParam WHERE QuoteType = 'R'
+SELECT TOP 1000 * FROM dbo.QuoteWorkExt WHERE QuoteType = 'R'
+SELECT TOP 1000 * FROM dbo.QuoteWorkInt WHERE QuoteType = 'R'
+
+SELECT * FROM dbo.OrdersHist
+SELECT * FROM dbo.QuoteFull_R WHERE QuoteType = 'R'
+
+-- RIPULISCO TUTTO
+TRUNCATE TABLE dbo.QuoteFull_R
+
+UPDATE dbo.OrdersHist
+SET CodQuote = 0
+
+UPDATE dbo.ContatoriQuote
+SET LastIdx = 0 WHERE Flusso = 'R'
+
+-- SE RICARICO DA ZERO GLI ORDINI
+TRUNCATE TABLE dbo.OrdersHist
+
+*/
+GO
+PRINT N'Creating [dbo].[stp_QL_clone]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.04.23
+-- Description: duplica record QuoteList
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_clone]
+(
+ @QuoteType CHAR(1) = 'Q',
+ @QuoteType_orig CHAR(1) = 'Q',
+ @CodQuote_orig BIGINT = 0,
+ @QuoteRev_orig INT = 0
+)
+AS
+
+-- variabili
+DECLARE @CodQuote BIGINT = 0,
+ @QuoteRev INT = 0
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- calcolo nuovo record odierno
+ SELECT @CodQuote = dbo.f_getNewCodQuote()
+
+ -- inserisco riga in QuoteList
+ INSERT INTO QuoteList(QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note, PriceOff)
+ SELECT @QuoteType, @CodQuote, @QuoteRev as QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, 'CLONE - ' + Note, PriceOff
+ FROM QuoteList
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ -- ora inserisco in QuoteRM
+ INSERT INTO QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
+ SELECT @QuoteType, @CodQuote, @QuoteRev as QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost
+ FROM QuoteRM
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+
+
+ -- se la scheda di destinazione è simulazione
+ IF(@QuoteType = 'S')
+ BEGIN
+ IF(@QuoteType_orig = 'S')
+ -- se partenza è S duplico dati accessori...
+ BEGIN
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, NomePar, ValPar
+ FROM QuoteSimPar
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ END
+ ELSE
+ -- se partenza è Q carico alcuni dati accessori precompilando...
+ BEGIN
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, Descr, Parameter
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND Descr IN ('CodDiesGroup', 'CodPlant')
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, 'DiesTecLife', Parameter
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND Descr = 'KgTeo'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, 'DiesPrice_sim', Parameter
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND Descr = 'DiesPrice'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, 'CodPackag', CodPackag
+ FROM QuoteRM
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, 'NetProd01_sim', NetProd
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '01'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, 'MSR01_sim', MSR
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '01'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, 'WSR01_sim', WSR
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '01'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, 'DSR_sim', DSR
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '04'
+ END
+ END
+
+ -- ricalcolo!
+ EXEC stp_QL_fullDataUpdate @QuoteType
+ ,@CodQuote
+ ,@QuoteRev
+ ,'Y'
+COMMIT TRAN
+
+-- seleziono intera riga!
+SELECT *
+FROM QuoteList
+WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QuoteFull_Q_update]...';
+
+
+GO
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.02.07
+-- Description: update valori tab QuoteList
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QuoteFull_Q_update] (
+ @Original_QuoteType CHAR(1) = 'Q'
+ ,@Original_CodQuote BIGINT = 0
+ ,@Original_QuoteRev INT = 0
+ ,@PriceOff DECIMAL(9, 6) = 0
+ )
+AS
+BEGIN
+
+-- aggiorno valori!
+ UPDATE QuoteList
+ SET PriceOff = @PriceOff
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+ -- update dei valori calcolati!
+ EXEC stp_QL_fullDataUpdate @Original_QuoteType
+ ,@Original_CodQuote
+ ,@Original_QuoteRev
+END
+GO
+PRINT N'Creating [dbo].[stp_test]...';
+
+
+GO
+
+
+CREATE PROCEDURE [dbo].[stp_test]
+AS
+ -- Test per funzionamento temp table
+ SELECT TOP 1 * INTO #QuoteParam FROM dbo.ClientDet
+ EXEC stp_QL_update 'Q', 1312130001, 0 --WITH RECOMPILE
+ SELECT * FROM #QuoteParam
+ DROP TABLE #QuoteParam
+GO
+PRINT N'Creating [dbo].[stp_QLF_UpdCosts]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware - S.E.L.
+-- Create date: 2014.04.15
+-- Description: update di un record in QL (Full) e poi aggiorna a cascata
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLF_UpdCosts]
+(
+ @Original_QuoteType CHAR(1) = 'Q',
+ @Original_CodQuote BIGINT = 0,
+ @Original_QuoteRev INT = 0,
+ @PriceOff DECIMAL(18, 6)
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- aggiorno valori QuoteList!
+ UPDATE QuoteList
+ SET PriceOff = @PriceOff
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+
+ -- update dei valori calcolati!
+ EXEC stp_QL_fullDataUpdate @Original_QuoteType
+ ,@Original_CodQuote
+ ,@Original_QuoteRev
+ ,'Y'
+
+COMMIT TRAN
+
+
+-- seleziono intera riga!
+
+SELECT *
+FROM v_QuoteFull_Q
+WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QLF_UpdHead]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware - S.E.L.
+-- Create date: 2014.04.11
+-- Description: update di un record in QL (Full) e poi aggiorna a cascata
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLF_UpdHead]
+(
+ @Original_QuoteType CHAR(1) = 'Q',
+ @Original_CodQuote BIGINT = 0,
+ @Original_QuoteRev INT = 0,
+ @CodClient NVARCHAR(50) = '',
+ @CodItem NVARCHAR(50) = '',
+ @RawMat NVARCHAR(50),
+ @RawMatCost DECIMAL(18, 6),
+ @RawMatExtraCost DECIMAL(18, 6),
+ @BatchQty INT,
+ @CodInco NVARCHAR(5),
+ @Note NVARCHAR(2500) = ''
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- aggiorno valori QuoteList!
+ UPDATE ql
+ SET CodClient = @CodClient
+ , CodItem = @CodItem
+ , RawMat = @RawMat
+ , BatchQty = @BatchQty
+ , CodInco = @CodInco
+ , Note = @Note
+ , CodItemGroup= id.CodItemGroup
+ , UnitWeight = id.UnitWeight
+ FROM QuoteList ql
+ INNER JOIN ItemDet id ON id.CodItem = @CodItem
+ WHERE ql.QuoteType = @Original_QuoteType
+ AND ql.CodQuote = @Original_CodQuote
+ AND ql.QuoteRev = @Original_QuoteRev
+
+ -- aggiorno valori QuoteRM
+ UPDATE QuoteRM
+ SET RawMat = @RawMat
+ , RawMatCost = @RawMatCost
+ , RawMatExtraCost = @RawMatExtraCost
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+ -- update dei valori calcolati!
+ EXEC stp_QL_fullDataUpdate @Original_QuoteType
+ ,@Original_CodQuote
+ ,@Original_QuoteRev
+ ,'Y'
+
+COMMIT TRAN
+
+
+-- seleziono intera riga!
+
+SELECT *
+FROM v_QuoteFull_Q
+WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QLF_UpdQState]...';
+
+
+GO
+
+-- =============================================
+-- Author: Steamware - S.E.L.
+-- Create date: 2014.04.16
+-- Description: update di un record in QL (Full) e poi aggiorna a cascata
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLF_UpdQState]
+(
+ @Original_QuoteType CHAR(1) = 'Q',
+ @Original_CodQuote BIGINT = 0,
+ @Original_QuoteRev INT = 0,
+ @IdxQState INT
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- aggiorno valori QuoteList!
+ UPDATE QuoteList
+ SET IdxQState = @IdxQState
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+
+ -- update dei valori calcolati!
+ EXEC stp_QL_fullDataUpdate @Original_QuoteType
+ ,@Original_CodQuote
+ ,@Original_QuoteRev
+ ,'Y'
+
+COMMIT TRAN
+
+
+-- seleziono intera riga!
+
+SELECT *
+FROM v_QuoteFull_Q
+WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_QL_fullData]...';
+
+
+GO
+-- =============================================
+-- STORED PROCEDURE stp_QL_fullData
+--
+-- Author: Steamware
+-- Create date: 2014.01.27
+-- Description: Recupera tutti i dati dalle tab QuoteList x avere schema x report/gestioen web
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_fullData] (
+ @QuoteType CHAR(1) = 'Q'
+ , @CodQuote BIGINT = 0
+ , @QuoteRev INT = 0
+ , @DoUpdate CHAR(1) = 'N' -- se si debba fare ricalcolo Y/N
+ )
+AS
+SET NOCOUNT ON
+
+IF(@QuoteType <> '' AND @DoUpdate = 'N')
+BEGIN
+ EXEC stp_QL_fullDataUpdate @QuoteType
+ , @CodQuote
+ , @QuoteRev
+ , @DoUpdate
+END
+
+---- calcolo con aggiunta campi sommati...
+--SELECT *
+-- , FVC + RawMatFullCost AS P_FVC
+-- , FC4UG01 + OH4UG01 AS CPS
+-- , FC4UG01 + OH4UG01 + FVC + RawMatFullCost AS P_CPS
+-- , FC4UG04 + FVC + RawMatFullCost AS P_FC4UG04
+-- , FVC + FC4UG01 + OH4UG01 + FC4UG04 AS FullCost
+-- , FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost AS P_FullCost
+-- , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS MinPrice
+-- , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost) AS P_MinPrice
+-- , PriceOff + RawMatFullCost AS P_PriceOff
+-- , (FVC + FC4UG01 + OH4UG01 + FC4UG04) - PriceOff AS NetMar
+-- , (PriceOff - FVC) / (FC4UG01 + OH4UG01 + FC4UG04) AS FCShield
+-- , (PRMWeight - Ptare) * (PriceOff + RawMatFullCost) / Pweight AS PckSur
+--FROM QuoteFull_Q
+--WHERE QuoteType = @QuoteType
+-- AND CodQuote = @CodQuote
+-- AND QuoteRev = @QuoteRev
+
+-- calcolo con aggiunta campi sommati...
+SELECT *
+FROM v_QuoteFull_Q
+WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+RETURN
+GO
+PRINT N'Creating [dbo].[stp_zzz_scratchDatiDemo]...';
+
+
+GO
+
+
+
+-- =============================================
+-- Author: G.A.R.
+-- Create date: 2014.05.12
+-- Description: Procedura sostituzione dati con dati DEMO
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_zzz_scratchDatiDemo]
+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 --- QUI NON SERVER DATI GIA' CARICATI
+ -- ==========================================
+ -- 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 EXT ( da Char a Tipi corretti ) cancella e carica da Tabelle TMP
+ -- ===========================================================
+ 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
+-- exec tmp.convertDiesGroupRaw 'DiesDet' -- integro i gruppi mancanti ??? TOLTO
+
+ 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... prob. non serve più
+ --select *
+ ----delete
+ --from ext.ProductionLogRaw where DATEDIFF(YEAR,EventStart,EventEnd)> 10
+
+ -- =======================================
+ -- cancello le tabelle che ricarico
+ -- =======================================
+
+ -- exec ext.stp_mergeAgentsDet -- NON DEMO campi non modificati x DEMO
+
+ TRUNCATE TABLE dbo.ProductionLog
+ TRUNCATE TABLE dbo.Package2ItemClient
+ TRUNCATE TABLE dbo.Package2Item
+ TRUNCATE TABLE dbo.Cost2Plant -- forse meglio non cancellarli e sostituirli in import? ma se non li ho in anagrafica non riesco!!!
+ DELETE FROM dbo.PlantsDet
+ DELETE FROM dbo.ClientDet
+
+ exec ext.stp_mergeClientDet 'ProductionLogRaw'
+ exec ext.stp_mergeClientDet 'ClientsRaw'
+
+ -- exec ext.stp_mergeTranspCostDet 'TranspCostRaw' -- NON DEMO
+ exec ext.stp_mergePlantsDet
+ -- exec ext.stp_mergeCost2Plant non carica i valori caricati a mano dopo
+
+ TRUNCATE TABLE dbo.DiesDet
+ DELETE FROM dbo.DiesGroupDet
+ DELETE FROM dbo.ItemDet
+ exec ext.stp_mergeItemDet 'ItemsRaw'
+ exec ext.stp_mergePackagDet 'ProductionLogRaw' -- 'PackagRaw'
+
+ exec ext.stp_mergeDiesDet
+ -- se ricarico diesgroup... ricarico solo i campi che nel file sono <> ''
+ exec ext.stp_mergeDiesGroupDet
+
+ DELETE FROM dbo.RawMatDet
+ exec ext.stp_mergeRawMat
+ exec ext.stp_updateProductionLog
+
+ --DECLARE @dateFrom AS DateTime;
+ --DECLARE @dateTo AS DateTime;
+
+ --SET @dateFrom = '20100101'
+ --SET @dateTo = '20130929'
+ exec ext.stp_mergePackage2ItemClient 'ProductionLog', @dateFrom, @dateTo
+ exec ext.stp_mergePackage2Item 'ProductionLog', @dateFrom, @dateTo
+ exec ext.stp_mergePackage2 'ProductionLog', @dateFrom, @dateTo
+
+ -- =========================================================================
+ -- aggiorno CodPlan nelle Utilities ( sono state caricate a mano ??? )
+ -- =========================================================================
+ SELECT * FROM utilities
+ UPDATE Utilities
+ SET CodPlant = tp.CodPlantNew
+ FROM Utilities AS u
+ INNER JOIN TrascPlan tp ON u.CodPlant = tp.CodPlant
+
+ ---- 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!!!
+ -- ===========================
+
+ TRUNCATE TABLE [dbo].[QuoteWorkInt]
+ TRUNCATE TABLE [dbo].[QuoteWorkExt]
+ TRUNCATE TABLE [dbo].QuoteParam
+ TRUNCATE TABLE [dbo].QuoteOC
+ TRUNCATE TABLE [dbo].[QuoteFull_Q]
+
+ --TRUNCATE TABLE [dbo].QuoteRM -- controllare prima di cancellare
+ --DELETE FROM QuoteList
+
+ SELECT * FROM QuoteList
+ SELECT TOP 1000 * FROM QuoteRM
+
+ --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
+ -- ==========================================
+ --DECLARE @dateFrom AS DateTime;
+ --DECLARE @dateTo AS DateTime;
+ --SET @dateFrom = '20100101'
+ --SET @dateTo = '20130929'
+
+ 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
+
+ SELECT TOP 1000 * FROM TabProdSc
+ SELECT TOP 1000 * FROM TabDifett
+
+ -- ==========================================
+ -- 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'
+ -- AND RevNum = 1 -- mod. 14/05 GCARLO altrimenti ne crea una per ogni riga di RevHistory
+
+ --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
+
+/*
+ ARRIVATO QUI - da errore la funzione f_getSubstring perchè ritorna NULL al posto di '' ??? riga della stored 295 dovuto a trasformazione dei gruppi Dies - sistemato
+*/
+
+ -- prima aggiorno i dati di Cost2Plant che non si sa da dove arrivano ( caricati a mano??? )
+
+ SELECT TOP 1000 * FROM Cost2Plant
+ SELECT TOP 1000 * FROM Proxima_C2P.dbo.Cost2Plant
+ SELECT * from TrascPlan
+
+ DELETE FROM Cost2Plant
+
+ INSERT INTO Cost2Plant
+ SELECT t.CodPlantNew, ProcessNum, FC, VC, OH, SC, QuotaPlantStd, QuotaManStd
+ FROM Proxima_C2P.dbo.Cost2Plant AS cp
+ LEFT JOIN TrascPlan AS t ON cp.CodPlant = t.CodPlant
+
+ -- GCARLO DEVO creare la riga per il test, la copio da quella di sviluppo e agg. i dati di demo
+ SELECT TOP 1000 * FROM QuoteList
+ SELECT TOP 1000 * FROM QuoteRM
+ SELECT TOP 1000 * FROM Proxima_C2P.dbo.QuoteList
+ SELECT TOP 1000 * FROM Proxima_C2P.dbo.QuoteRM WHERE CodQuote = '1402050001'
+
+ -- creo righe di test
+ INSERT QuoteList
+ SELECT QuoteType, CodQuote, QuoteRev, IdxQState, CodClientNew, CodItemNew, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, Note, PriceOff, OrdDate, OrdNum, OrdRow, OrdPrice, valid, errorScore
+ FROM Proxima_C2P.[dbo].[QuoteList] AS q
+ INNER JOIN [dbo].[TrascClient] AS tc ON q.CodClient = tc.CodClient
+ INNER JOIN dbo.TrascItem AS ti ON q.CodItem = ti.CodItem
+
+ INSERT QuoteRM
+ SELECT QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost, CodPackag, FCR, valid
+ FROM Proxima_C2P.[dbo].[QuoteRM]
+
+ UPDATE QuoteList
+ SET CodClient = ( SELECT CodClientNew FROM TrascClient WHERE CodClient = '05000000382' )
+ ,CodItem = ( SELECT CodItemNew FROM TrascItem WHERE CodItem = '3DI05376' )
+ WHERE CodQuote = '1402050001'
+
+ -- *** ESEGUO L'AGGIORNAMENTO ****
+
+ DECLARE @QuoteType CHAR(1) = 'Q',
+ @CodQuote BIGINT = 1402050001,
+ @QuoteRev INT = 0,
+ @PriceOff DECIMAL(9, 6) = 0
+
+ -- EXEC stp_QL_update 'Q', 1402050001, 0 -- <<<<< ERRORE
+ -- EXECUTE dbo.stp_QuoteFull_Q_update 'Q', 1402050001, 0, 0.1 -- crea il record in QuoteFull_Q
+
+ EXEC stp_QL_update @QuoteType, @CodQuote, @QuoteRev
+ SELECT @PriceOff = PriceOff FROM QuoteList WHERE CodQuote= @CodQuote AND QuoteRev = @QuoteRev
+ EXECUTE dbo.stp_QuoteFull_Q_update @QuoteType, @CodQuote, @QuoteRev -- crea il record in QuoteFull_Q
+
+ 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
+GO
+PRINT N'Creating [dbo].[QuoteOC].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Altri costi (diretti-indiretti)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC].[QuoteType].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo di preventivo: Q = quote, S = simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC', @level2type = N'COLUMN', @level2name = N'QuoteType';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC].[CodQuote].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero nel formato yyMMddnnnn dove nnn è incrementale giornaliero', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC', @level2type = N'COLUMN', @level2name = N'CodQuote';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC].[NumEx].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'progressivo del costo OTHER', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC', @level2type = N'COLUMN', @level2name = N'NumEx';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC].[ProcessNum].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Tipo risorsa (e lavorazione): 01 .. 04', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC', @level2type = N'COLUMN', @level2name = N'ProcessNum';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC].[CodPlant].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice impianto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC', @level2type = N'COLUMN', @level2name = N'CodPlant';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC].[Class01].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Riclass. 01, tipo di costo :
+- UTIL (EE/GAS)
+- ROTTAME (costo rifusione + quota perdita x ri-vendita)
+- CONS
+- TRASP
+- PROVV
+- EXTRA', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC', @level2type = N'COLUMN', @level2name = N'Class01';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC].[Class02].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Riclass. 02, codice di ricerca per tipo di costo extra, es se consumabili è codice matrice', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC', @level2type = N'COLUMN', @level2name = N'Class02';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC].[Class03].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Riclass. 03', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC', @level2type = N'COLUMN', @level2name = N'Class03';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC].[Class04].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Riclass. 04', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC', @level2type = N'COLUMN', @level2name = N'Class04';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC].[Class05].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Riclass. 05', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC', @level2type = N'COLUMN', @level2name = N'Class05';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC].[TotQty].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'quantità totale di riferimento', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC', @level2type = N'COLUMN', @level2name = N'TotQty';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC].[TotCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Costo totale di riferimento', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC', @level2type = N'COLUMN', @level2name = N'TotCost';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC].[Quota].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Quota di impiego', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC', @level2type = N'COLUMN', @level2name = N'Quota';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteOC].[C4UG].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Costo pro quota di impiego (per matrici, imballi,...)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteOC', @level2type = N'COLUMN', @level2name = N'C4UG';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkExt].[QuoteType].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo di preventivo: Q = quote, S = simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkExt', @level2type = N'COLUMN', @level2name = N'QuoteType';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkExt].[CodQuote].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero nel formato yyMMddnnnn dove nnn è incrementale giornaliero', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkExt', @level2type = N'COLUMN', @level2name = N'CodQuote';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkExt].[NumWE].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'progressivo interno', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkExt', @level2type = N'COLUMN', @level2name = N'NumWE';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkExt].[EWC4UG].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'External Work Cost FOR Unit of Good, quota dei costi fissi per unità di prodotto finito (Copertura Costo Struttura e Linea)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkExt', @level2type = N'COLUMN', @level2name = N'EWC4UG';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkExt].[UM].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Unità di misura di riferimento per il costo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkExt', @level2type = N'COLUMN', @level2name = N'UM';
+
+
+GO
+PRINT N'Creating [dbo].[Package2Item].[CodItem].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Package2Item', @level2type = N'COLUMN', @level2name = N'CodItem';
+
+
+GO
+PRINT N'Creating [dbo].[Package2Item].[TotQta].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Quantità totale lavorata', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Package2Item', @level2type = N'COLUMN', @level2name = N'TotQta';
+
+
+GO
+PRINT N'Creating [dbo].[Package2Item].[Weight].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Peso medio', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Package2Item', @level2type = N'COLUMN', @level2name = N'Weight';
+
+
+GO
+PRINT N'Creating [dbo].[Package2Item].[Tare].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Tara', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Package2Item', @level2type = N'COLUMN', @level2name = N'Tare';
+
+
+GO
+PRINT N'Creating [dbo].[Package2ItemClient].[CodItem].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Package2ItemClient', @level2type = N'COLUMN', @level2name = N'CodItem';
+
+
+GO
+PRINT N'Creating [dbo].[Package2ItemClient].[CodClient].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Package2ItemClient', @level2type = N'COLUMN', @level2name = N'CodClient';
+
+
+GO
+PRINT N'Creating [dbo].[Package2ItemClient].[TotQta].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Quantità totale lavorata', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Package2ItemClient', @level2type = N'COLUMN', @level2name = N'TotQta';
+
+
+GO
+PRINT N'Creating [dbo].[Package2ItemClient].[Weight].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Peso medio', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Package2ItemClient', @level2type = N'COLUMN', @level2name = N'Weight';
+
+
+GO
+PRINT N'Creating [dbo].[Package2ItemClient].[Tare].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Tara', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Package2ItemClient', @level2type = N'COLUMN', @level2name = N'Tare';
+
+
+GO
+PRINT N'Creating [dbo].[PackagDet].[RMCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Raw Material Cost - costo dei materiali', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'PackagDet', @level2type = N'COLUMN', @level2name = N'RMCost';
+
+
+GO
+PRINT N'Creating [dbo].[PackagDet].[RMWeight].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'kg peso medio', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'PackagDet', @level2type = N'COLUMN', @level2name = N'RMWeight';
+
+
+GO
+PRINT N'Creating [dbo].[PlantsDet].[CodPlant].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice impianto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'PlantsDet', @level2type = N'COLUMN', @level2name = N'CodPlant';
+
+
+GO
+PRINT N'Creating [dbo].[PlantsDet].[Descript].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'descrizione impianto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'PlantsDet', @level2type = N'COLUMN', @level2name = N'Descript';
+
+
+GO
+PRINT N'Creating [dbo].[PlantsDet].[Charge].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Over Head costo €/h per CDC + FASE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'PlantsDet', @level2type = N'COLUMN', @level2name = N'Charge';
+
+
+GO
+PRINT N'Creating [dbo].[RevHistory].[RevType].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Tipo di revisione indicata coem S.C.P --> in C = costi di contab industriale, P = da ProductionLog, S = Sistema di calcolo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RevHistory', @level2type = N'COLUMN', @level2name = N'RevType';
+
+
+GO
+PRINT N'Creating [dbo].[RevHistory].[RevNum].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'incrementale del numero di revisione', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RevHistory', @level2type = N'COLUMN', @level2name = N'RevNum';
+
+
+GO
+PRINT N'Creating [dbo].[RevHistory].[DateRev].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'data revisione', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RevHistory', @level2type = N'COLUMN', @level2name = N'DateRev';
+
+
+GO
+PRINT N'Creating [dbo].[RevHistory].[Description].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'descrizione revisione', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RevHistory', @level2type = N'COLUMN', @level2name = N'Description';
+
+
+GO
+PRINT N'Creating [dbo].[DiesGroupDet].[CodDiesGroup].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice CLASSE matrice, es tipo + diametro', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'DiesGroupDet', @level2type = N'COLUMN', @level2name = N'CodDiesGroup';
+
+
+GO
+PRINT N'Creating [dbo].[DiesGroupDet].[Price].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'prezzo di acquisto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'DiesGroupDet', @level2type = N'COLUMN', @level2name = N'Price';
+
+
+GO
+PRINT N'Creating [dbo].[DiesGroupDet].[QtyTot].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Totale matrici del gruppo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'DiesGroupDet', @level2type = N'COLUMN', @level2name = N'QtyTot';
+
+
+GO
+PRINT N'Creating [dbo].[DiesGroupDet].[QtyEOL].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero rottamate nel gruppo (End Of Life)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'DiesGroupDet', @level2type = N'COLUMN', @level2name = N'QtyEOL';
+
+
+GO
+PRINT N'Creating [dbo].[DiesGroupDet].[ExpLife].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Durata attesa in kg PREVISTA', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'DiesGroupDet', @level2type = N'COLUMN', @level2name = N'ExpLife';
+
+
+GO
+PRINT N'Creating [dbo].[DiesGroupDet].[EOLLife].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Durata attuale (delle rottamate, media) in kg', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'DiesGroupDet', @level2type = N'COLUMN', @level2name = N'EOLLife';
+
+
+GO
+PRINT N'Creating [dbo].[Cost2Plant].[CodPlant].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice impianto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Cost2Plant', @level2type = N'COLUMN', @level2name = N'CodPlant';
+
+
+GO
+PRINT N'Creating [dbo].[Cost2Plant].[ProcessNum].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice fase, da qui si crea anagrafica fasi distinct', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Cost2Plant', @level2type = N'COLUMN', @level2name = N'ProcessNum';
+
+
+GO
+PRINT N'Creating [dbo].[Cost2Plant].[FC].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Costo Fissi €/h per CDC + FASE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Cost2Plant', @level2type = N'COLUMN', @level2name = N'FC';
+
+
+GO
+PRINT N'Creating [dbo].[Cost2Plant].[VC].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Costi Variabili €/h per CDC + FASE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Cost2Plant', @level2type = N'COLUMN', @level2name = N'VC';
+
+
+GO
+PRINT N'Creating [dbo].[Cost2Plant].[OH].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Over Head costo €/h per CDC + FASE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Cost2Plant', @level2type = N'COLUMN', @level2name = N'OH';
+
+
+GO
+PRINT N'Creating [dbo].[Cost2Plant].[SC].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costoSETUP €/cambio per CDC + FASE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Cost2Plant', @level2type = N'COLUMN', @level2name = N'SC';
+
+
+GO
+PRINT N'Creating [dbo].[Cost2Plant].[QuotaPlantStd].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'indicazione della quota macchina per produrre quanto registrato', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Cost2Plant', @level2type = N'COLUMN', @level2name = N'QuotaPlantStd';
+
+
+GO
+PRINT N'Creating [dbo].[Cost2Plant].[QuotaManStd].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'indicazione della quota uomo per produrre quanto registrato', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Cost2Plant', @level2type = N'COLUMN', @level2name = N'QuotaManStd';
+
+
+GO
+PRINT N'Creating [dbo].[ClientDet].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Client Details Table', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ClientDet';
+
+
+GO
+PRINT N'Creating [dbo].[ClientDet].[CodClient].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ClientDet', @level2type = N'COLUMN', @level2name = N'CodClient';
+
+
+GO
+PRINT N'Creating [dbo].[ClientDet].[ClientName].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Ragione Sociale', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ClientDet', @level2type = N'COLUMN', @level2name = N'ClientName';
+
+
+GO
+PRINT N'Creating [dbo].[ClientDet].[CodAg].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice agente...', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ClientDet', @level2type = N'COLUMN', @level2name = N'CodAg';
+
+
+GO
+PRINT N'Creating [dbo].[ClientDet].[ZipCode].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'cap', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ClientDet', @level2type = N'COLUMN', @level2name = N'ZipCode';
+
+
+GO
+PRINT N'Creating [dbo].[ClientDet].[City].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'città', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ClientDet', @level2type = N'COLUMN', @level2name = N'City';
+
+
+GO
+PRINT N'Creating [dbo].[ClientDet].[State].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'stato/provincia', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ClientDet', @level2type = N'COLUMN', @level2name = N'State';
+
+
+GO
+PRINT N'Creating [dbo].[ClientDet].[Nation].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'nazione', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ClientDet', @level2type = N'COLUMN', @level2name = N'Nation';
+
+
+GO
+PRINT N'Creating [dbo].[ClientDet].[TranspZone].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Classificazione cliente (es zona, provincia...) x incrocio con tab costi trasporto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ClientDet', @level2type = N'COLUMN', @level2name = N'TranspZone';
+
+
+GO
+PRINT N'Creating [dbo].[AgentsDet].[CodAg].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice agente...', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'AgentsDet', @level2type = N'COLUMN', @level2name = N'CodAg';
+
+
+GO
+PRINT N'Creating [dbo].[AgentsDet].[Lastname].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Cognome', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'AgentsDet', @level2type = N'COLUMN', @level2name = N'Lastname';
+
+
+GO
+PRINT N'Creating [dbo].[AgentsDet].[Firstname].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Nome', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'AgentsDet', @level2type = N'COLUMN', @level2name = N'Firstname';
+
+
+GO
+PRINT N'Creating [dbo].[AgentsDet].[QuotaProvvAg].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Provvigione come €/kg', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'AgentsDet', @level2type = N'COLUMN', @level2name = N'QuotaProvvAg';
+
+
+GO
+PRINT N'Creating [dbo].[Utilities].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costo unitario per unità di PF (€/kg)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Utilities';
+
+
+GO
+PRINT N'Creating [dbo].[Utilities].[CodUtil].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice dell''utility (Energia elettrica / gas)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Utilities', @level2type = N'COLUMN', @level2name = N'CodUtil';
+
+
+GO
+PRINT N'Creating [dbo].[Utilities].[CodPlant].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice impianto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Utilities', @level2type = N'COLUMN', @level2name = N'CodPlant';
+
+
+GO
+PRINT N'Creating [dbo].[Utilities].[UnitCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Costo al kg per impianto ed utility', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Utilities', @level2type = N'COLUMN', @level2name = N'UnitCost';
+
+
+GO
+PRINT N'Creating [dbo].[Incoterms].[CodInco].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Codice Incoterms', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Incoterms', @level2type = N'COLUMN', @level2name = N'CodInco';
+
+
+GO
+PRINT N'Creating [dbo].[Incoterms].[Descript].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Descrizione Incoterms', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Incoterms', @level2type = N'COLUMN', @level2name = N'Descript';
+
+
+GO
+PRINT N'Creating [dbo].[Incoterms].[HasTC].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Indica se ha costi di trasporto (1) o non lil ha (0)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Incoterms', @level2type = N'COLUMN', @level2name = N'HasTC';
+
+
+GO
+PRINT N'Creating [dbo].[TranspCostDet].[TranspZone].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Classificazione cliente (es zona, provincia...) x incrocio con tab costi trasporto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TranspCostDet', @level2type = N'COLUMN', @level2name = N'TranspZone';
+
+
+GO
+PRINT N'Creating [dbo].[TranspCostDet].[TranspCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costi di traporto €/kg', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TranspCostDet', @level2type = N'COLUMN', @level2name = N'TranspCost';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteRM].[QuoteType].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo di preventivo: Q = quote, S = simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteRM', @level2type = N'COLUMN', @level2name = N'QuoteType';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteRM].[CodQuote].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero nel formato yyMMddnnnn dove nnn è incrementale giornaliero', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteRM', @level2type = N'COLUMN', @level2name = N'CodQuote';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteRM].[NumRM].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'progressivo interno', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteRM', @level2type = N'COLUMN', @level2name = N'NumRM';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteRM].[RawMat].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice MP', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteRM', @level2type = N'COLUMN', @level2name = N'RawMat';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteRM].[RawMatCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costo della MP €/kg', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteRM', @level2type = N'COLUMN', @level2name = N'RawMatCost';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteRM].[RawMatExtraCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costo degli extra della MP €/kg', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteRM', @level2type = N'COLUMN', @level2name = N'RawMatExtraCost';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteRM].[FCR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Tasso di conversione TOTALE, messa al cento, quantità di MP necessaria per produrre un unità di prodotto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteRM', @level2type = N'COLUMN', @level2name = N'FCR';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteRM].[FYR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'FULL Yield Ratio, percentuale RESA TOTALE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteRM', @level2type = N'COLUMN', @level2name = N'FYR';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteRM].[FSR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'FULL Scrape Ratio, percentuale scarto TOTALE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteRM', @level2type = N'COLUMN', @level2name = N'FSR';
+
+
+GO
+PRINT N'Creating [dbo].[ItemDet].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Item Details Table', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ItemDet';
+
+
+GO
+PRINT N'Creating [dbo].[ItemDet].[CodItem].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ItemDet', @level2type = N'COLUMN', @level2name = N'CodItem';
+
+
+GO
+PRINT N'Creating [dbo].[ItemDet].[UnitWeight].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'peso espresso come g/m (grammi / metro)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ItemDet', @level2type = N'COLUMN', @level2name = N'UnitWeight';
+
+
+GO
+PRINT N'Creating [dbo].[ItemDet].[CodItemGroup].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'classe raggruppamento (es complessità disegno)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ItemDet', @level2type = N'COLUMN', @level2name = N'CodItemGroup';
+
+
+GO
+PRINT N'Creating [dbo].[ItemDet].[Class01].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ItemDet', @level2type = N'COLUMN', @level2name = N'Class01';
+
+
+GO
+PRINT N'Creating [dbo].[v_selClient].[MS_DiagramPane1]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
+Begin DesignProperties =
+ Begin PaneConfigurations =
+ Begin PaneConfiguration = 0
+ NumPanes = 4
+ Configuration = "(H (1[40] 4[20] 2[20] 3) )"
+ End
+ Begin PaneConfiguration = 1
+ NumPanes = 3
+ Configuration = "(H (1 [50] 4 [25] 3))"
+ End
+ Begin PaneConfiguration = 2
+ NumPanes = 3
+ Configuration = "(H (1 [50] 2 [25] 3))"
+ End
+ Begin PaneConfiguration = 3
+ NumPanes = 3
+ Configuration = "(H (4 [30] 2 [40] 3))"
+ End
+ Begin PaneConfiguration = 4
+ NumPanes = 2
+ Configuration = "(H (1 [56] 3))"
+ End
+ Begin PaneConfiguration = 5
+ NumPanes = 2
+ Configuration = "(H (2 [66] 3))"
+ End
+ Begin PaneConfiguration = 6
+ NumPanes = 2
+ Configuration = "(H (4 [50] 3))"
+ End
+ Begin PaneConfiguration = 7
+ NumPanes = 1
+ Configuration = "(V (3))"
+ End
+ Begin PaneConfiguration = 8
+ NumPanes = 3
+ Configuration = "(H (1[56] 4[18] 2) )"
+ End
+ Begin PaneConfiguration = 9
+ NumPanes = 2
+ Configuration = "(H (1 [75] 4))"
+ End
+ Begin PaneConfiguration = 10
+ NumPanes = 2
+ Configuration = "(H (1[66] 2) )"
+ End
+ Begin PaneConfiguration = 11
+ NumPanes = 2
+ Configuration = "(H (4 [60] 2))"
+ End
+ Begin PaneConfiguration = 12
+ NumPanes = 1
+ Configuration = "(H (1) )"
+ End
+ Begin PaneConfiguration = 13
+ NumPanes = 1
+ Configuration = "(V (4))"
+ End
+ Begin PaneConfiguration = 14
+ NumPanes = 1
+ Configuration = "(V (2))"
+ End
+ ActivePaneConfig = 0
+ End
+ Begin DiagramPane =
+ Begin Origin =
+ Top = 0
+ Left = 0
+ End
+ Begin Tables =
+ Begin Table = "ClientDet"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 258
+ Right = 208
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ Begin ColumnWidths = 9
+ Width = 284
+ Width = 1500
+ Width = 11790
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 11
+ Column = 1440
+ Alias = 900
+ Table = 1170
+ Output = 720
+ Append = 1400
+ NewValue = 1170
+ SortType = 1350
+ SortOrder = 1410
+ GroupBy = 1350
+ Filter = 1350
+ Or = 1350
+ Or = 1350
+ Or = 1350
+ End
+ End
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selClient';
+
+
+GO
+PRINT N'Creating [dbo].[v_selClient].[MS_DiagramPaneCount]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selClient';
+
+
+GO
+PRINT N'Creating [dbo].[Package2].[TotQta].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Quantità totale lavorata', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Package2', @level2type = N'COLUMN', @level2name = N'TotQta';
+
+
+GO
+PRINT N'Creating [dbo].[Package2].[Weight].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Peso medio', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Package2', @level2type = N'COLUMN', @level2name = N'Weight';
+
+
+GO
+PRINT N'Creating [dbo].[Package2].[Tare].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Tara', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Package2', @level2type = N'COLUMN', @level2name = N'Tare';
+
+
+GO
+PRINT N'Creating [dbo].[v_selIncoterms].[MS_DiagramPaneCount]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selIncoterms';
+
+
+GO
+PRINT N'Creating [dbo].[v_selIncoterms].[MS_DiagramPane1]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
+Begin DesignProperties =
+ Begin PaneConfigurations =
+ Begin PaneConfiguration = 0
+ NumPanes = 4
+ Configuration = "(H (1[40] 4[20] 2[20] 3) )"
+ End
+ Begin PaneConfiguration = 1
+ NumPanes = 3
+ Configuration = "(H (1 [50] 4 [25] 3))"
+ End
+ Begin PaneConfiguration = 2
+ NumPanes = 3
+ Configuration = "(H (1 [50] 2 [25] 3))"
+ End
+ Begin PaneConfiguration = 3
+ NumPanes = 3
+ Configuration = "(H (4 [30] 2 [40] 3))"
+ End
+ Begin PaneConfiguration = 4
+ NumPanes = 2
+ Configuration = "(H (1 [56] 3))"
+ End
+ Begin PaneConfiguration = 5
+ NumPanes = 2
+ Configuration = "(H (2 [66] 3))"
+ End
+ Begin PaneConfiguration = 6
+ NumPanes = 2
+ Configuration = "(H (4 [50] 3))"
+ End
+ Begin PaneConfiguration = 7
+ NumPanes = 1
+ Configuration = "(V (3))"
+ End
+ Begin PaneConfiguration = 8
+ NumPanes = 3
+ Configuration = "(H (1[56] 4[18] 2) )"
+ End
+ Begin PaneConfiguration = 9
+ NumPanes = 2
+ Configuration = "(H (1 [75] 4))"
+ End
+ Begin PaneConfiguration = 10
+ NumPanes = 2
+ Configuration = "(H (1[66] 2) )"
+ End
+ Begin PaneConfiguration = 11
+ NumPanes = 2
+ Configuration = "(H (4 [60] 2))"
+ End
+ Begin PaneConfiguration = 12
+ NumPanes = 1
+ Configuration = "(H (1) )"
+ End
+ Begin PaneConfiguration = 13
+ NumPanes = 1
+ Configuration = "(V (4))"
+ End
+ Begin PaneConfiguration = 14
+ NumPanes = 1
+ Configuration = "(V (2))"
+ End
+ ActivePaneConfig = 0
+ End
+ Begin DiagramPane =
+ Begin Origin =
+ Top = 0
+ Left = 0
+ End
+ Begin Tables =
+ Begin Table = "Incoterms"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 119
+ Right = 208
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ Begin ColumnWidths = 9
+ Width = 284
+ Width = 1500
+ Width = 5055
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 11
+ Column = 1440
+ Alias = 900
+ Table = 1170
+ Output = 720
+ Append = 1400
+ NewValue = 1170
+ SortType = 1350
+ SortOrder = 1410
+ GroupBy = 1350
+ Filter = 1350
+ Or = 1350
+ Or = 1350
+ Or = 1350
+ End
+ End
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selIncoterms';
+
+
+GO
+PRINT N'Creating [dbo].[v_selCons].[MS_DiagramPaneCount]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selCons';
+
+
+GO
+PRINT N'Creating [dbo].[v_selCons].[MS_DiagramPane1]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
+Begin DesignProperties =
+ Begin PaneConfigurations =
+ Begin PaneConfiguration = 0
+ NumPanes = 4
+ Configuration = "(H (1[41] 4[20] 2[10] 3) )"
+ End
+ Begin PaneConfiguration = 1
+ NumPanes = 3
+ Configuration = "(H (1 [50] 4 [25] 3))"
+ End
+ Begin PaneConfiguration = 2
+ NumPanes = 3
+ Configuration = "(H (1 [50] 2 [25] 3))"
+ End
+ Begin PaneConfiguration = 3
+ NumPanes = 3
+ Configuration = "(H (4 [30] 2 [40] 3))"
+ End
+ Begin PaneConfiguration = 4
+ NumPanes = 2
+ Configuration = "(H (1 [56] 3))"
+ End
+ Begin PaneConfiguration = 5
+ NumPanes = 2
+ Configuration = "(H (2 [66] 3))"
+ End
+ Begin PaneConfiguration = 6
+ NumPanes = 2
+ Configuration = "(H (4 [50] 3))"
+ End
+ Begin PaneConfiguration = 7
+ NumPanes = 1
+ Configuration = "(V (3))"
+ End
+ Begin PaneConfiguration = 8
+ NumPanes = 3
+ Configuration = "(H (1[56] 4[18] 2) )"
+ End
+ Begin PaneConfiguration = 9
+ NumPanes = 2
+ Configuration = "(H (1 [75] 4))"
+ End
+ Begin PaneConfiguration = 10
+ NumPanes = 2
+ Configuration = "(H (1[66] 2) )"
+ End
+ Begin PaneConfiguration = 11
+ NumPanes = 2
+ Configuration = "(H (4 [60] 2))"
+ End
+ Begin PaneConfiguration = 12
+ NumPanes = 1
+ Configuration = "(H (1) )"
+ End
+ Begin PaneConfiguration = 13
+ NumPanes = 1
+ Configuration = "(V (4))"
+ End
+ Begin PaneConfiguration = 14
+ NumPanes = 1
+ Configuration = "(V (2))"
+ End
+ ActivePaneConfig = 0
+ End
+ Begin DiagramPane =
+ Begin Origin =
+ Top = 0
+ Left = 0
+ End
+ Begin Tables =
+ Begin Table = "Incoterms"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 119
+ Right = 208
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ Begin ColumnWidths = 9
+ Width = 284
+ Width = 840
+ Width = 4620
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 11
+ Column = 1440
+ Alias = 900
+ Table = 1170
+ Output = 720
+ Append = 1400
+ NewValue = 1170
+ SortType = 1350
+ SortOrder = 1410
+ GroupBy = 1350
+ Filter = 1350
+ Or = 1350
+ Or = 1350
+ Or = 1350
+ End
+ End
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selCons';
+
+
+GO
+PRINT N'Creating [dbo].[DiesDet].[CodDies].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice matrice', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'DiesDet', @level2type = N'COLUMN', @level2name = N'CodDies';
+
+
+GO
+PRINT N'Creating [dbo].[DiesDet].[CodItem].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'DiesDet', @level2type = N'COLUMN', @level2name = N'CodItem';
+
+
+GO
+PRINT N'Creating [dbo].[DiesDet].[CodDiesGroup].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice CLASSE matrice, es tipo + diametro; nota: massima numerosità pari a numero articoli, minima numerosità 1', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'DiesDet', @level2type = N'COLUMN', @level2name = N'CodDiesGroup';
+
+
+GO
+PRINT N'Creating [dbo].[DiesDet].[Price].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'prezzo di acquisto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'DiesDet', @level2type = N'COLUMN', @level2name = N'Price';
+
+
+GO
+PRINT N'Creating [dbo].[DiesDet].[TestCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costo di prove e correzioni', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'DiesDet', @level2type = N'COLUMN', @level2name = N'TestCost';
+
+
+GO
+PRINT N'Creating [dbo].[DiesDet].[ExpLife].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Durata attesa in kg PREVISTA', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'DiesDet', @level2type = N'COLUMN', @level2name = N'ExpLife';
+
+
+GO
+PRINT N'Creating [dbo].[DiesDet].[ActLife].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Durata attuale (delle rottamate, media) in kg', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'DiesDet', @level2type = N'COLUMN', @level2name = N'ActLife';
+
+
+GO
+PRINT N'Creating [dbo].[DiesDet].[Active].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Stato: 1 = disponibile, 0 = rottamata', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'DiesDet', @level2type = N'COLUMN', @level2name = N'Active';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[EventStart].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'inizio evento - formato INT 16 cifre yyyyMMddHHmmssnn dove nn = centesimi di sec oppure 00', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'EventStart';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[EventEnd].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'fine evento - formato INT 16 cifre yyyyMMddHHmmssnn dove nn = centesimi di sec oppure 00', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'EventEnd';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[CodPlant].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice impianto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'CodPlant';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[ProcessNum].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice fase, da qui si crea anagrafica fasi distinct', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'ProcessNum';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[CodDies].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice matrice', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'CodDies';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[CodClient].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'CodClient';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[OrderNum].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'rif codice ordine', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'OrderNum';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[BatchNum].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice lotto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'BatchNum';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[ProcessType].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice del TIPO di fase, x raggruppamento funzionale', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'ProcessType';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[EventType].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo evento: produzione, prova, guasto, setup...', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'EventType';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[RawMat].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice MP', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'RawMat';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[CodPackag].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice imballo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'CodPackag';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[QtyIN].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'kg materiale in ingresso', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'QtyIN';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[QtyOUT].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'kg materiale BUONO prodotto in OUTput', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'QtyOUT';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[QtyEXT].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'kg materiale dbora che fa parte dell''OUT, es imballi/tara', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'QtyEXT';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[NumIN].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'qta materiale in ingresso', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'NumIN';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[NumOUT].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'qta materiale BUONO prodotto in OUTput', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'NumOUT';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[QuotaPlant].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'indicazione della quota macchina per produrre quanto registrato', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'QuotaPlant';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[QuotaMan].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'indicazione della quota uomo per produrre quanto registrato', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'QuotaMan';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[Tags].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'categorie LIBERE, separatore #', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'Tags';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[Duration].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Durata espressa in ore', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'Duration';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[okPr].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo produttività', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'okPr';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[okQM].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo quota MAN', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'okQM';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[okSc].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo scarti', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'okSc';
+
+
+GO
+PRINT N'Creating [dbo].[ProductionLog].[okDi].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo difettosità', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'okDi';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_Q].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Quotation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_Q';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_Q].[IdxQState].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Stato offerta: 0 = D raft, 1 = C ompleted / in approvazione, 2 = A pprouved, 3 = R eleased', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_Q', @level2type = N'COLUMN', @level2name = N'IdxQState';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_Q].[TranspZone].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Classificazione cliente (es zona, provincia...) x incrocio con tab costi trasporto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_Q', @level2type = N'COLUMN', @level2name = N'TranspZone';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_Q].[PriceOff].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Prezzo Offerto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_Q', @level2type = N'COLUMN', @level2name = N'PriceOff';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_Q].[errorScore].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'punteggio complessivo errori in procedure di calcolo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_Q', @level2type = N'COLUMN', @level2name = N'errorScore';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[QuoteType].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo di preventivo: Q = quote, S = simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'QuoteType';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[CodQuote].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero nel formato yyMMddnnnn dove nnn è incrementale giornaliero', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'CodQuote';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[IdxQState].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Stato offerta: 0 = D raft, 1 = C ompleted / in approvazione, 2 = A pprouved, 3 = R eleased', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'IdxQState';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[CodClient].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'CodClient';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[CodItem].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'CodItem';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[CodItemGroup].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'classe raggruppamento (es complessità disegno)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'CodItemGroup';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[RawMat].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice MP', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'RawMat';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[UnitWeight].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'peso espresso come g/m (grammi / metro)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'UnitWeight';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[BatchQty].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Quantità lotto kg', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'BatchQty';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[CodInco].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Codice Incoterms', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'CodInco';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[PriceOff].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Prezzo Offerto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'PriceOff';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[OrdDate].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'data dell''ordine', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'OrdDate';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[OrdNum].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero ordine', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'OrdNum';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[OrdRow].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'riga ordine', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'OrdRow';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[OrdPrice].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Prezzo finale ordine', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'OrdPrice';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteList].[errorScore].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'punteggio complessivo errori in procedure di calcolo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'errorScore';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteParam].[QuoteType].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo di preventivo: Q = quote, S = simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteParam', @level2type = N'COLUMN', @level2name = N'QuoteType';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteParam].[CodQuote].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero nel formato yyMMddnnnn dove nnn è incrementale giornaliero', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteParam', @level2type = N'COLUMN', @level2name = N'CodQuote';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteParam].[NumP].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'progressivo interno', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteParam', @level2type = N'COLUMN', @level2name = N'NumP';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteParam].[ProcessNum].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Tipo risorsa (e lavorazione): 01 .. 04', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteParam', @level2type = N'COLUMN', @level2name = N'ProcessNum';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[QuoteType].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo di preventivo: Q = quote, S = simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'QuoteType';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[CodQuote].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero nel formato yyMMddnnnn dove nnn è incrementale giornaliero', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'CodQuote';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[NumWI].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'progressivo interno', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'NumWI';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[ProcessNum].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Tipo risorsa (e lavorazione): estrusione/imballo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'ProcessNum';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[CodPlant].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice impianto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'CodPlant';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[Class01].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Riclass. 01, ARTICOLO + MATERIALE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'Class01';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[Class02].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Riclass. 02, codice di ricerca per prod - es cod imballo o Chiave di ricerca Articolo/ClasseArt + RawMat+ Impianto + NumLuci', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'Class02';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[Class03].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Riclass. 03, tipo imballo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'Class03';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[Class04].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Riclass. 04', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'Class04';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[Class05].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Riclass. 05', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'Class05';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[NetProd].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Produttivita netta (teorica) kg/h', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'NetProd';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[WSR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Work Scrape Ratio, percentuale scarto della lavorazione (tecnico)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'WSR';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[MSR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Material Scrape Ratio, percentuale scarto legato alla MP (cesoia x alx)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'MSR';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[DSR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Defect Scrape Ratio, percentuale scarto per difettosità prodotto (qualità)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'DSR';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[FC4UG].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Fixed Cost FOR Unit of Good, quota dei costi fissi per unità di prodotto finito (Copertura Costo Struttura e Linea)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'FC4UG';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[VC4UG].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Variables Cost FOR Unit of Good, quota dei costi variabili per unità di prodotto finito (Costo del personale x Alx)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'VC4UG';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[OH4UG].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'OH Cost FOR Unit of Good, quota dei costi Over Head per unità di prodotto finito', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'OH4UG';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[SC4UG].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Setup Cost FOR Unit of Good, quota dei costi di setup per unità di prodotto finito (costo cambio matrice x Alx)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'SC4UG';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[WYR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Work Yield Ratio, percentuale RESA della lavorazione (tecnico), 1 - scarto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'WYR';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[MYR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Material Yield Ratio, percentuale RESA legato alla MP (cesoia x alx), 1 - scarto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'MYR';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[DYR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Defect Yield Ratio, percentuale RESA per difettosità prodotto (qualità), 1 - scarto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'DYR';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[WCR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Work Conversion Ratio, Messa a Cento, 1 / RESA', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'WCR';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[MCR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Material Conversion Ratio, Messa a Cento, 1 / RESA', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'MCR';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteWorkInt].[DCR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Defect Conversion Ratio, Messa a Cento, 1 / RESA', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'DCR';
+
+
+GO
+PRINT N'Creating [dbo].[RawMatDet].[RawMat].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice MP', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RawMatDet', @level2type = N'COLUMN', @level2name = N'RawMat';
+
+
+GO
+PRINT N'Creating [dbo].[RawMatDet].[ProcCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costo del processo di rifusione €/kg', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RawMatDet', @level2type = N'COLUMN', @level2name = N'ProcCost';
+
+
+GO
+PRINT N'Creating [dbo].[RawMatDet].[ProcYield].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'resa del processo di rifusione %', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RawMatDet', @level2type = N'COLUMN', @level2name = N'ProcYield';
+
+
+GO
+PRINT N'Creating [dbo].[RawMatDet].[CSR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Cut Scrape Ratio, percentuale scarto cesoia', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RawMatDet', @level2type = N'COLUMN', @level2name = N'CSR';
+
+
+GO
+PRINT N'Creating [dbo].[RawMatDet].[SSR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Scrape Sell Ratio, percentuale di vendita dello scarto ( da 0 a 1)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RawMatDet', @level2type = N'COLUMN', @level2name = N'SSR';
+
+
+GO
+PRINT N'Creating [dbo].[RawMatDet].[SSVA].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Scrape Sell Value - ABSOLUTE, valore di vendita dello scarto ASSOLUTO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RawMatDet', @level2type = N'COLUMN', @level2name = N'SSVA';
+
+
+GO
+PRINT N'Creating [dbo].[RawMatDet].[SSVR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Scrape Sell Value - RELATIVE come valore % del valore lega', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RawMatDet', @level2type = N'COLUMN', @level2name = N'SSVR';
+
+
+GO
+PRINT N'Creating [dbo].[RawMatDet].[ExtraMatCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Costo extra di acquisto del materiale', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RawMatDet', @level2type = N'COLUMN', @level2name = N'ExtraMatCost';
+
+
+GO
+PRINT N'Creating [dbo].[RawMatDet].[ExtraServCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Costo extra dei servizi sul materiale (es ultrasuoni)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RawMatDet', @level2type = N'COLUMN', @level2name = N'ExtraServCost';
+
+
+GO
+PRINT N'Creating [dbo].[TabProdSc].[ProdTeo].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'produttività teorica (kgTeorici / durata h)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TabProdSc', @level2type = N'COLUMN', @level2name = N'ProdTeo';
+
+
+GO
+PRINT N'Creating [dbo].[TabProdSc].[ScTec].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'scarto tecnico: 1 - (KgTeorici/ISNULL(KgLordi,1))', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TabProdSc', @level2type = N'COLUMN', @level2name = N'ScTec';
+
+
+GO
+PRINT N'Creating [dbo].[v_QuoteFull_Q].[MS_DiagramPane1]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
+Begin DesignProperties =
+ Begin PaneConfigurations =
+ Begin PaneConfiguration = 0
+ NumPanes = 4
+ Configuration = "(H (1[40] 4[20] 2[20] 3) )"
+ End
+ Begin PaneConfiguration = 1
+ NumPanes = 3
+ Configuration = "(H (1 [50] 4 [25] 3))"
+ End
+ Begin PaneConfiguration = 2
+ NumPanes = 3
+ Configuration = "(H (1 [50] 2 [25] 3))"
+ End
+ Begin PaneConfiguration = 3
+ NumPanes = 3
+ Configuration = "(H (4 [30] 2 [40] 3))"
+ End
+ Begin PaneConfiguration = 4
+ NumPanes = 2
+ Configuration = "(H (1 [56] 3))"
+ End
+ Begin PaneConfiguration = 5
+ NumPanes = 2
+ Configuration = "(H (2 [66] 3))"
+ End
+ Begin PaneConfiguration = 6
+ NumPanes = 2
+ Configuration = "(H (4 [50] 3))"
+ End
+ Begin PaneConfiguration = 7
+ NumPanes = 1
+ Configuration = "(V (3))"
+ End
+ Begin PaneConfiguration = 8
+ NumPanes = 3
+ Configuration = "(H (1[56] 4[18] 2) )"
+ End
+ Begin PaneConfiguration = 9
+ NumPanes = 2
+ Configuration = "(H (1 [75] 4))"
+ End
+ Begin PaneConfiguration = 10
+ NumPanes = 2
+ Configuration = "(H (1[66] 2) )"
+ End
+ Begin PaneConfiguration = 11
+ NumPanes = 2
+ Configuration = "(H (4 [60] 2))"
+ End
+ Begin PaneConfiguration = 12
+ NumPanes = 1
+ Configuration = "(H (1) )"
+ End
+ Begin PaneConfiguration = 13
+ NumPanes = 1
+ Configuration = "(V (4))"
+ End
+ Begin PaneConfiguration = 14
+ NumPanes = 1
+ Configuration = "(V (2))"
+ End
+ ActivePaneConfig = 0
+ End
+ Begin DiagramPane =
+ Begin Origin =
+ Top = -672
+ Left = 0
+ End
+ Begin Tables =
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ Begin ColumnWidths = 101
+ Width = 284
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ ', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_QuoteFull_Q';
+
+
+GO
+PRINT N'Creating [dbo].[v_QuoteFull_Q].[MS_DiagramPaneCount]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 2, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_QuoteFull_Q';
+
+
+GO
+PRINT N'Creating [dbo].[v_QuoteFull_Q].[MS_DiagramPane2]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane2', @value = N' Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 11
+ Column = 1440
+ Alias = 900
+ Table = 1170
+ Output = 720
+ Append = 1400
+ NewValue = 1170
+ SortType = 1350
+ SortOrder = 1410
+ GroupBy = 1350
+ Filter = 1350
+ Or = 1350
+ Or = 1350
+ Or = 1350
+ End
+ End
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_QuoteFull_Q';
+
+
+GO
+PRINT N'Creating [dbo].[v_selItems].[MS_DiagramPane1]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
+Begin DesignProperties =
+ Begin PaneConfigurations =
+ Begin PaneConfiguration = 0
+ NumPanes = 4
+ Configuration = "(H (1[40] 4[20] 2[20] 3) )"
+ End
+ Begin PaneConfiguration = 1
+ NumPanes = 3
+ Configuration = "(H (1 [50] 4 [25] 3))"
+ End
+ Begin PaneConfiguration = 2
+ NumPanes = 3
+ Configuration = "(H (1 [50] 2 [25] 3))"
+ End
+ Begin PaneConfiguration = 3
+ NumPanes = 3
+ Configuration = "(H (4 [30] 2 [40] 3))"
+ End
+ Begin PaneConfiguration = 4
+ NumPanes = 2
+ Configuration = "(H (1 [56] 3))"
+ End
+ Begin PaneConfiguration = 5
+ NumPanes = 2
+ Configuration = "(H (2 [66] 3))"
+ End
+ Begin PaneConfiguration = 6
+ NumPanes = 2
+ Configuration = "(H (4 [50] 3))"
+ End
+ Begin PaneConfiguration = 7
+ NumPanes = 1
+ Configuration = "(V (3))"
+ End
+ Begin PaneConfiguration = 8
+ NumPanes = 3
+ Configuration = "(H (1[56] 4[18] 2) )"
+ End
+ Begin PaneConfiguration = 9
+ NumPanes = 2
+ Configuration = "(H (1 [75] 4))"
+ End
+ Begin PaneConfiguration = 10
+ NumPanes = 2
+ Configuration = "(H (1[66] 2) )"
+ End
+ Begin PaneConfiguration = 11
+ NumPanes = 2
+ Configuration = "(H (4 [60] 2))"
+ End
+ Begin PaneConfiguration = 12
+ NumPanes = 1
+ Configuration = "(H (1) )"
+ End
+ Begin PaneConfiguration = 13
+ NumPanes = 1
+ Configuration = "(V (4))"
+ End
+ Begin PaneConfiguration = 14
+ NumPanes = 1
+ Configuration = "(V (2))"
+ End
+ ActivePaneConfig = 0
+ End
+ Begin DiagramPane =
+ Begin Origin =
+ Top = 0
+ Left = 0
+ End
+ Begin Tables =
+ Begin Table = "ItemDet"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 254
+ Right = 208
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ Begin ColumnWidths = 9
+ Width = 284
+ Width = 1500
+ Width = 4635
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 11
+ Column = 1440
+ Alias = 900
+ Table = 1170
+ Output = 720
+ Append = 1400
+ NewValue = 1170
+ SortType = 1350
+ SortOrder = 1410
+ GroupBy = 1350
+ Filter = 1350
+ Or = 1350
+ Or = 1350
+ Or = 1350
+ End
+ End
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selItems';
+
+
+GO
+PRINT N'Creating [dbo].[v_selItems].[MS_DiagramPaneCount]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selItems';
+
+
+GO
+PRINT N'Creating [dbo].[TrascDies].[Note]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella per Trascodifica dati in Dati DEMO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TrascDies';
+
+
+GO
+PRINT N'Creating [dbo].[TrascItem].[Note]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella per Trascodifica dati in Dati DEMO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TrascItem';
+
+
+GO
+PRINT N'Creating [dbo].[TrascPlan].[Note]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella per Trascodifica dati in Dati DEMO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TrascPlan';
+
+
+GO
+PRINT N'Creating [dbo].[OrdersHist].[OrdNum].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero ordine', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'OrdNum';
+
+
+GO
+PRINT N'Creating [dbo].[OrdersHist].[OrdRow].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'riga ordine', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'OrdRow';
+
+
+GO
+PRINT N'Creating [dbo].[OrdersHist].[OrdDate].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'data dell''ordine', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'OrdDate';
+
+
+GO
+PRINT N'Creating [dbo].[OrdersHist].[CodClient].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'CodClient';
+
+
+GO
+PRINT N'Creating [dbo].[OrdersHist].[CodItem].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'CodItem';
+
+
+GO
+PRINT N'Creating [dbo].[OrdersHist].[RawMat].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice MP', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'RawMat';
+
+
+GO
+PRINT N'Creating [dbo].[OrdersHist].[RawMatCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costo della MP €/kg', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'RawMatCost';
+
+
+GO
+PRINT N'Creating [dbo].[OrdersHist].[BatchQty].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Quantità lotto kg', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'BatchQty';
+
+
+GO
+PRINT N'Creating [dbo].[OrdersHist].[CodInco].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Codice Incoterms', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'CodInco';
+
+
+GO
+PRINT N'Creating [dbo].[OrdersHist].[OrdPrice].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Prezzo finale ordine', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'OrdPrice';
+
+
+GO
+PRINT N'Creating [dbo].[OrdersHist].[QuoteType].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo di preventivo: Q = quote, S = simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'QuoteType';
+
+
+GO
+PRINT N'Creating [dbo].[OrdersHist].[CodQuote].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero nel formato yyMMddnnnn dove nnn è incrementale giornaliero', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'CodQuote';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_R].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Resa', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_R';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_R].[IdxQState].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Stato offerta: 0 = D raft, 1 = C ompleted / in approvazione, 2 = A pprouved, 3 = R eleased', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_R', @level2type = N'COLUMN', @level2name = N'IdxQState';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_R].[TranspZone].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Classificazione cliente (es zona, provincia...) x incrocio con tab costi trasporto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_R', @level2type = N'COLUMN', @level2name = N'TranspZone';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_R].[PriceOff].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Prezzo Offerto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_R', @level2type = N'COLUMN', @level2name = N'PriceOff';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_R].[errorScore].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'punteggio complessivo errori in procedure di calcolo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_R', @level2type = N'COLUMN', @level2name = N'errorScore';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[DiesPrice_sim].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costo matrice per SIMULAZIONE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'DiesPrice_sim';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[SamplePrice].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costo prove', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'SamplePrice';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[DiesFullCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costo prove', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'DiesFullCost';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[DiesTecLife].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Durata tecnica stimata', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'DiesTecLife';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[DiesCommLife].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Durata commerciale in kg', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'DiesCommLife';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[MonthSalesPrev].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Durata commerciale in mesi prevista', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'MonthSalesPrev';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[SalesPrevCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costi per durata commerciale', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'SalesPrevCost';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[DiesFinCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'oneri finanziari anticipo matrice', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'DiesFinCost';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[ClientQuoteReven].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Ricavo quota cliente', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'ClientQuoteReven';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[ExtraDiscountDies].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Ricavo quota cliente', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'ExtraDiscountDies';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[WSR01_sim].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'scarto tecnico SIMULAZIONE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'WSR01_sim';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[WSR01].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'scarto tecnico medio AMIL', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'WSR01';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[MSR01_sim].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'scarto cesoia SIMULAZIONE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'MSR01_sim';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[MSR01].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'scarto cesoia medio AMIL', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'MSR01';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[NetProd01_sim].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'produttività teorica SIMULAZIONE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'NetProd01_sim';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[NetProd01].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'produttività teorica medio AMIL', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'NetProd01';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[DSR_sim].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'scarto medio SIMULAZIONE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'DSR_sim';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteFull_S].[DSR].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'scarto medio AMI', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'DSR';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteSimPar].[QuoteType].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo di preventivo: Q = quote, S = simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteSimPar', @level2type = N'COLUMN', @level2name = N'QuoteType';
+
+
+GO
+PRINT N'Creating [dbo].[QuoteSimPar].[CodQuote].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero nel formato yyMMddnnnn dove nnn è incrementale giornaliero', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteSimPar', @level2type = N'COLUMN', @level2name = N'CodQuote';
+
+
+GO
+PRINT N'Creating [dbo].[ReportPrintTicket].[Ticket].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Ticket univoco per stampa', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ReportPrintTicket', @level2type = N'COLUMN', @level2name = N'Ticket';
+
+
+GO
+PRINT N'Creating [dbo].[ReportPrintTicket].[Chiave].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'chiave multipla richiesta (specifica epr report)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ReportPrintTicket', @level2type = N'COLUMN', @level2name = N'Chiave';
+
+
+GO
+PRINT N'Creating [dbo].[ReportPrintTicket].[UserReq].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'user richiesta', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ReportPrintTicket', @level2type = N'COLUMN', @level2name = N'UserReq';
+
+
+GO
+PRINT N'Creating [dbo].[ReportPrintTicket].[DataReq].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'data richiesta', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ReportPrintTicket', @level2type = N'COLUMN', @level2name = N'DataReq';
+
+
+GO
+PRINT N'Creating [dbo].[ReportPrintTicket].[DataPrint].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'data stampa', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ReportPrintTicket', @level2type = N'COLUMN', @level2name = N'DataPrint';
+
+
+GO
+PRINT N'Creating [dbo].[TrascClass01].[Note]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella per Trascodifica dati in Dati DEMO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TrascClass01';
+
+
+GO
+PRINT N'Creating [dbo].[TrascClass02].[Note]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella per Trascodifica dati in Dati DEMO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TrascClass02';
+
+
+GO
+PRINT N'Creating [dbo].[TrascClass03].[Note]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella per Trascodifica dati in Dati DEMO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TrascClass03';
+
+
+GO
+PRINT N'Creating [dbo].[TrascClient].[Note]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella per Trascodifica dati in Dati DEMO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TrascClient';
+
+
+GO
+PRINT N'Creating [dbo].[v_pivot].[MS_DiagramPaneCount]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_pivot';
+
+
+GO
+PRINT N'Creating [dbo].[v_pivot].[MS_DiagramPane1]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
+Begin DesignProperties =
+ Begin PaneConfigurations =
+ Begin PaneConfiguration = 0
+ NumPanes = 4
+ Configuration = "(H (1[40] 4[20] 2[20] 3) )"
+ End
+ Begin PaneConfiguration = 1
+ NumPanes = 3
+ Configuration = "(H (1 [50] 4 [25] 3))"
+ End
+ Begin PaneConfiguration = 2
+ NumPanes = 3
+ Configuration = "(H (1 [50] 2 [25] 3))"
+ End
+ Begin PaneConfiguration = 3
+ NumPanes = 3
+ Configuration = "(H (4 [30] 2 [40] 3))"
+ End
+ Begin PaneConfiguration = 4
+ NumPanes = 2
+ Configuration = "(H (1 [56] 3))"
+ End
+ Begin PaneConfiguration = 5
+ NumPanes = 2
+ Configuration = "(H (2 [66] 3))"
+ End
+ Begin PaneConfiguration = 6
+ NumPanes = 2
+ Configuration = "(H (4 [50] 3))"
+ End
+ Begin PaneConfiguration = 7
+ NumPanes = 1
+ Configuration = "(V (3))"
+ End
+ Begin PaneConfiguration = 8
+ NumPanes = 3
+ Configuration = "(H (1[56] 4[18] 2) )"
+ End
+ Begin PaneConfiguration = 9
+ NumPanes = 2
+ Configuration = "(H (1 [75] 4))"
+ End
+ Begin PaneConfiguration = 10
+ NumPanes = 2
+ Configuration = "(H (1[66] 2) )"
+ End
+ Begin PaneConfiguration = 11
+ NumPanes = 2
+ Configuration = "(H (4 [60] 2))"
+ End
+ Begin PaneConfiguration = 12
+ NumPanes = 1
+ Configuration = "(H (1) )"
+ End
+ Begin PaneConfiguration = 13
+ NumPanes = 1
+ Configuration = "(V (4))"
+ End
+ Begin PaneConfiguration = 14
+ NumPanes = 1
+ Configuration = "(V (2))"
+ End
+ ActivePaneConfig = 0
+ End
+ Begin DiagramPane =
+ Begin Origin =
+ Top = 0
+ Left = 0
+ End
+ Begin Tables =
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 11
+ Column = 1440
+ Alias = 900
+ Table = 1170
+ Output = 720
+ Append = 1400
+ NewValue = 1170
+ SortType = 1350
+ SortOrder = 1410
+ GroupBy = 1350
+ Filter = 1350
+ Or = 1350
+ Or = 1350
+ Or = 1350
+ End
+ End
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_pivot';
+
+
+GO
+PRINT N'Creating [dbo].[v_selDateStdCost].[MS_DiagramPaneCount]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selDateStdCost';
+
+
+GO
+PRINT N'Creating [dbo].[v_selDateStdCost].[MS_DiagramPane1]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
+Begin DesignProperties =
+ Begin PaneConfigurations =
+ Begin PaneConfiguration = 0
+ NumPanes = 4
+ Configuration = "(H (1[40] 4[20] 2[20] 3) )"
+ End
+ Begin PaneConfiguration = 1
+ NumPanes = 3
+ Configuration = "(H (1 [50] 4 [25] 3))"
+ End
+ Begin PaneConfiguration = 2
+ NumPanes = 3
+ Configuration = "(H (1 [50] 2 [25] 3))"
+ End
+ Begin PaneConfiguration = 3
+ NumPanes = 3
+ Configuration = "(H (4 [30] 2 [40] 3))"
+ End
+ Begin PaneConfiguration = 4
+ NumPanes = 2
+ Configuration = "(H (1 [56] 3))"
+ End
+ Begin PaneConfiguration = 5
+ NumPanes = 2
+ Configuration = "(H (2 [66] 3))"
+ End
+ Begin PaneConfiguration = 6
+ NumPanes = 2
+ Configuration = "(H (4 [50] 3))"
+ End
+ Begin PaneConfiguration = 7
+ NumPanes = 1
+ Configuration = "(V (3))"
+ End
+ Begin PaneConfiguration = 8
+ NumPanes = 3
+ Configuration = "(H (1[56] 4[18] 2) )"
+ End
+ Begin PaneConfiguration = 9
+ NumPanes = 2
+ Configuration = "(H (1 [75] 4))"
+ End
+ Begin PaneConfiguration = 10
+ NumPanes = 2
+ Configuration = "(H (1[66] 2) )"
+ End
+ Begin PaneConfiguration = 11
+ NumPanes = 2
+ Configuration = "(H (4 [60] 2))"
+ End
+ Begin PaneConfiguration = 12
+ NumPanes = 1
+ Configuration = "(H (1) )"
+ End
+ Begin PaneConfiguration = 13
+ NumPanes = 1
+ Configuration = "(V (4))"
+ End
+ Begin PaneConfiguration = 14
+ NumPanes = 1
+ Configuration = "(V (2))"
+ End
+ ActivePaneConfig = 0
+ End
+ Begin DiagramPane =
+ Begin Origin =
+ Top = 0
+ Left = 0
+ End
+ Begin Tables =
+ Begin Table = "QuoteFull_C"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 136
+ Right = 213
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 11
+ Column = 1440
+ Alias = 900
+ Table = 1170
+ Output = 720
+ Append = 1400
+ NewValue = 1170
+ SortType = 1350
+ SortOrder = 1410
+ GroupBy = 1350
+ Filter = 1350
+ Or = 1350
+ Or = 1350
+ Or = 1350
+ End
+ End
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selDateStdCost';
+
+
+GO
+PRINT N'Creating [dbo].[v_selPackage].[MS_DiagramPaneCount]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selPackage';
+
+
+GO
+PRINT N'Creating [dbo].[v_selPackage].[MS_DiagramPane1]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
+Begin DesignProperties =
+ Begin PaneConfigurations =
+ Begin PaneConfiguration = 0
+ NumPanes = 4
+ Configuration = "(H (1[40] 4[20] 2[20] 3) )"
+ End
+ Begin PaneConfiguration = 1
+ NumPanes = 3
+ Configuration = "(H (1 [50] 4 [25] 3))"
+ End
+ Begin PaneConfiguration = 2
+ NumPanes = 3
+ Configuration = "(H (1 [50] 2 [25] 3))"
+ End
+ Begin PaneConfiguration = 3
+ NumPanes = 3
+ Configuration = "(H (4 [30] 2 [40] 3))"
+ End
+ Begin PaneConfiguration = 4
+ NumPanes = 2
+ Configuration = "(H (1 [56] 3))"
+ End
+ Begin PaneConfiguration = 5
+ NumPanes = 2
+ Configuration = "(H (2 [66] 3))"
+ End
+ Begin PaneConfiguration = 6
+ NumPanes = 2
+ Configuration = "(H (4 [50] 3))"
+ End
+ Begin PaneConfiguration = 7
+ NumPanes = 1
+ Configuration = "(V (3))"
+ End
+ Begin PaneConfiguration = 8
+ NumPanes = 3
+ Configuration = "(H (1[56] 4[18] 2) )"
+ End
+ Begin PaneConfiguration = 9
+ NumPanes = 2
+ Configuration = "(H (1 [75] 4))"
+ End
+ Begin PaneConfiguration = 10
+ NumPanes = 2
+ Configuration = "(H (1[66] 2) )"
+ End
+ Begin PaneConfiguration = 11
+ NumPanes = 2
+ Configuration = "(H (4 [60] 2))"
+ End
+ Begin PaneConfiguration = 12
+ NumPanes = 1
+ Configuration = "(H (1) )"
+ End
+ Begin PaneConfiguration = 13
+ NumPanes = 1
+ Configuration = "(V (4))"
+ End
+ Begin PaneConfiguration = 14
+ NumPanes = 1
+ Configuration = "(V (2))"
+ End
+ ActivePaneConfig = 0
+ End
+ Begin DiagramPane =
+ Begin Origin =
+ Top = 0
+ Left = 0
+ End
+ Begin Tables =
+ Begin Table = "PackagDet"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 136
+ Right = 208
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ Begin ColumnWidths = 9
+ Width = 284
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 11
+ Column = 1440
+ Alias = 900
+ Table = 1170
+ Output = 720
+ Append = 1400
+ NewValue = 1170
+ SortType = 1350
+ SortOrder = 1410
+ GroupBy = 1350
+ Filter = 1350
+ Or = 1350
+ Or = 1350
+ Or = 1350
+ End
+ End
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selPackage';
+
+
+GO
+PRINT N'Creating [dbo].[v_selPlant].[MS_DiagramPaneCount]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selPlant';
+
+
+GO
+PRINT N'Creating [dbo].[v_selPlant].[MS_DiagramPane1]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
+Begin DesignProperties =
+ Begin PaneConfigurations =
+ Begin PaneConfiguration = 0
+ NumPanes = 4
+ Configuration = "(H (1[40] 4[20] 2[20] 3) )"
+ End
+ Begin PaneConfiguration = 1
+ NumPanes = 3
+ Configuration = "(H (1 [50] 4 [25] 3))"
+ End
+ Begin PaneConfiguration = 2
+ NumPanes = 3
+ Configuration = "(H (1 [50] 2 [25] 3))"
+ End
+ Begin PaneConfiguration = 3
+ NumPanes = 3
+ Configuration = "(H (4 [30] 2 [40] 3))"
+ End
+ Begin PaneConfiguration = 4
+ NumPanes = 2
+ Configuration = "(H (1 [56] 3))"
+ End
+ Begin PaneConfiguration = 5
+ NumPanes = 2
+ Configuration = "(H (2 [66] 3))"
+ End
+ Begin PaneConfiguration = 6
+ NumPanes = 2
+ Configuration = "(H (4 [50] 3))"
+ End
+ Begin PaneConfiguration = 7
+ NumPanes = 1
+ Configuration = "(V (3))"
+ End
+ Begin PaneConfiguration = 8
+ NumPanes = 3
+ Configuration = "(H (1[56] 4[18] 2) )"
+ End
+ Begin PaneConfiguration = 9
+ NumPanes = 2
+ Configuration = "(H (1 [75] 4))"
+ End
+ Begin PaneConfiguration = 10
+ NumPanes = 2
+ Configuration = "(H (1[66] 2) )"
+ End
+ Begin PaneConfiguration = 11
+ NumPanes = 2
+ Configuration = "(H (4 [60] 2))"
+ End
+ Begin PaneConfiguration = 12
+ NumPanes = 1
+ Configuration = "(H (1) )"
+ End
+ Begin PaneConfiguration = 13
+ NumPanes = 1
+ Configuration = "(V (4))"
+ End
+ Begin PaneConfiguration = 14
+ NumPanes = 1
+ Configuration = "(V (2))"
+ End
+ ActivePaneConfig = 0
+ End
+ Begin DiagramPane =
+ Begin Origin =
+ Top = 0
+ Left = 0
+ End
+ Begin Tables =
+ Begin Table = "PlantsDet"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 119
+ Right = 208
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ Begin ColumnWidths = 9
+ Width = 284
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 11
+ Column = 1440
+ Alias = 900
+ Table = 1170
+ Output = 720
+ Append = 1400
+ NewValue = 1170
+ SortType = 1350
+ SortOrder = 1410
+ GroupBy = 1350
+ Filter = 1350
+ Or = 1350
+ Or = 1350
+ Or = 1350
+ End
+ End
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selPlant';
+
+
+GO
+PRINT N'Creating [dbo].[v_StdCostList].[MS_DiagramPaneCount]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_StdCostList';
+
+
+GO
+PRINT N'Creating [dbo].[v_StdCostList].[MS_DiagramPane1]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
+Begin DesignProperties =
+ Begin PaneConfigurations =
+ Begin PaneConfiguration = 0
+ NumPanes = 4
+ Configuration = "(H (1[41] 4[20] 2[8] 3) )"
+ End
+ Begin PaneConfiguration = 1
+ NumPanes = 3
+ Configuration = "(H (1 [50] 4 [25] 3))"
+ End
+ Begin PaneConfiguration = 2
+ NumPanes = 3
+ Configuration = "(H (1 [50] 2 [25] 3))"
+ End
+ Begin PaneConfiguration = 3
+ NumPanes = 3
+ Configuration = "(H (4 [30] 2 [40] 3))"
+ End
+ Begin PaneConfiguration = 4
+ NumPanes = 2
+ Configuration = "(H (1 [56] 3))"
+ End
+ Begin PaneConfiguration = 5
+ NumPanes = 2
+ Configuration = "(H (2 [66] 3))"
+ End
+ Begin PaneConfiguration = 6
+ NumPanes = 2
+ Configuration = "(H (4 [50] 3))"
+ End
+ Begin PaneConfiguration = 7
+ NumPanes = 1
+ Configuration = "(V (3))"
+ End
+ Begin PaneConfiguration = 8
+ NumPanes = 3
+ Configuration = "(H (1[56] 4[18] 2) )"
+ End
+ Begin PaneConfiguration = 9
+ NumPanes = 2
+ Configuration = "(H (1 [75] 4))"
+ End
+ Begin PaneConfiguration = 10
+ NumPanes = 2
+ Configuration = "(H (1[66] 2) )"
+ End
+ Begin PaneConfiguration = 11
+ NumPanes = 2
+ Configuration = "(H (4 [60] 2))"
+ End
+ Begin PaneConfiguration = 12
+ NumPanes = 1
+ Configuration = "(H (1) )"
+ End
+ Begin PaneConfiguration = 13
+ NumPanes = 1
+ Configuration = "(V (4))"
+ End
+ Begin PaneConfiguration = 14
+ NumPanes = 1
+ Configuration = "(V (2))"
+ End
+ ActivePaneConfig = 0
+ End
+ Begin DiagramPane =
+ Begin Origin =
+ Top = 0
+ Left = 0
+ End
+ Begin Tables =
+ Begin Table = "QuoteFull_C"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 136
+ Right = 213
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ Begin ColumnWidths = 16
+ Width = 284
+ Width = 2205
+ Width = 2250
+ Width = 1200
+ Width = 915
+ Width = 720
+ Width = 1065
+ Width = 1230
+ Width = 840
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 11
+ Column = 1440
+ Alias = 900
+ Table = 1170
+ Output = 720
+ Append = 1400
+ NewValue = 1170
+ SortType = 1350
+ SortOrder = 1410
+ GroupBy = 1350
+ Filter = 1350
+ Or = 1350
+ Or = 1350
+ Or = 1350
+ End
+ End
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_StdCostList';
+
+
+GO
+PRINT N'Creating [dbo].[v_listinoArticoli].[MS_DiagramPaneCount]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_listinoArticoli';
+
+
+GO
+PRINT N'Creating [dbo].[v_listinoArticoli].[MS_DiagramPane1]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
+Begin DesignProperties =
+ Begin PaneConfigurations =
+ Begin PaneConfiguration = 0
+ NumPanes = 4
+ Configuration = "(H (1[40] 4[20] 2[20] 3) )"
+ End
+ Begin PaneConfiguration = 1
+ NumPanes = 3
+ Configuration = "(H (1 [50] 4 [25] 3))"
+ End
+ Begin PaneConfiguration = 2
+ NumPanes = 3
+ Configuration = "(H (1 [50] 2 [25] 3))"
+ End
+ Begin PaneConfiguration = 3
+ NumPanes = 3
+ Configuration = "(H (4 [30] 2 [40] 3))"
+ End
+ Begin PaneConfiguration = 4
+ NumPanes = 2
+ Configuration = "(H (1 [56] 3))"
+ End
+ Begin PaneConfiguration = 5
+ NumPanes = 2
+ Configuration = "(H (2 [66] 3))"
+ End
+ Begin PaneConfiguration = 6
+ NumPanes = 2
+ Configuration = "(H (4 [50] 3))"
+ End
+ Begin PaneConfiguration = 7
+ NumPanes = 1
+ Configuration = "(V (3))"
+ End
+ Begin PaneConfiguration = 8
+ NumPanes = 3
+ Configuration = "(H (1[56] 4[18] 2) )"
+ End
+ Begin PaneConfiguration = 9
+ NumPanes = 2
+ Configuration = "(H (1 [75] 4))"
+ End
+ Begin PaneConfiguration = 10
+ NumPanes = 2
+ Configuration = "(H (1[66] 2) )"
+ End
+ Begin PaneConfiguration = 11
+ NumPanes = 2
+ Configuration = "(H (4 [60] 2))"
+ End
+ Begin PaneConfiguration = 12
+ NumPanes = 1
+ Configuration = "(H (1) )"
+ End
+ Begin PaneConfiguration = 13
+ NumPanes = 1
+ Configuration = "(V (4))"
+ End
+ Begin PaneConfiguration = 14
+ NumPanes = 1
+ Configuration = "(V (2))"
+ End
+ ActivePaneConfig = 0
+ End
+ Begin DiagramPane =
+ Begin Origin =
+ Top = 0
+ Left = 0
+ End
+ Begin Tables =
+ Begin Table = "ProductionLog"
+ Begin Extent =
+ Top = 26
+ Left = 424
+ Bottom = 347
+ Right = 594
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ Begin Table = "DiesDet"
+ Begin Extent =
+ Top = 77
+ Left = 128
+ Bottom = 247
+ Right = 298
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ Begin Table = "RawMatDet"
+ Begin Extent =
+ Top = 138
+ Left = 703
+ Bottom = 360
+ Right = 873
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ Begin ColumnWidths = 13
+ Width = 284
+ Width = 2055
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 11
+ Column = 1440
+ Alias = 900
+ Table = 1170
+ Output = 720
+ Append = 1400
+ NewValue = 1170
+ SortType = 1350
+ SortOrder = 1410
+ GroupBy = 1350
+ Filter = 1350
+ Or = 1350
+ Or = 1350
+ Or = 1350
+ End
+ End
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_listinoArticoli';
+
+
+GO
+PRINT N'Creating [dbo].[v_MarginReport].[MS_DiagramPaneCount]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 2, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_MarginReport';
+
+
+GO
+PRINT N'Creating [dbo].[v_MarginReport].[MS_DiagramPane2]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane2', @value = N'
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 11
+ Column = 12180
+ Alias = 1725
+ Table = 1170
+ Output = 720
+ Append = 1400
+ NewValue = 1170
+ SortType = 1350
+ SortOrder = 1410
+ GroupBy = 1350
+ Filter = 1350
+ Or = 1350
+ Or = 1350
+ Or = 1350
+ End
+ End
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_MarginReport';
+
+
+GO
+PRINT N'Creating [dbo].[v_MarginReport].[MS_DiagramPane1]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
+Begin DesignProperties =
+ Begin PaneConfigurations =
+ Begin PaneConfiguration = 0
+ NumPanes = 4
+ Configuration = "(H (1[25] 4[31] 2[14] 3) )"
+ End
+ Begin PaneConfiguration = 1
+ NumPanes = 3
+ Configuration = "(H (1 [50] 4 [25] 3))"
+ End
+ Begin PaneConfiguration = 2
+ NumPanes = 3
+ Configuration = "(H (1 [50] 2 [25] 3))"
+ End
+ Begin PaneConfiguration = 3
+ NumPanes = 3
+ Configuration = "(H (4 [30] 2 [40] 3))"
+ End
+ Begin PaneConfiguration = 4
+ NumPanes = 2
+ Configuration = "(H (1 [56] 3))"
+ End
+ Begin PaneConfiguration = 5
+ NumPanes = 2
+ Configuration = "(H (2 [66] 3))"
+ End
+ Begin PaneConfiguration = 6
+ NumPanes = 2
+ Configuration = "(H (4 [50] 3))"
+ End
+ Begin PaneConfiguration = 7
+ NumPanes = 1
+ Configuration = "(V (3))"
+ End
+ Begin PaneConfiguration = 8
+ NumPanes = 3
+ Configuration = "(H (1[56] 4[18] 2) )"
+ End
+ Begin PaneConfiguration = 9
+ NumPanes = 2
+ Configuration = "(H (1 [75] 4))"
+ End
+ Begin PaneConfiguration = 10
+ NumPanes = 2
+ Configuration = "(H (1[66] 2) )"
+ End
+ Begin PaneConfiguration = 11
+ NumPanes = 2
+ Configuration = "(H (4 [60] 2))"
+ End
+ Begin PaneConfiguration = 12
+ NumPanes = 1
+ Configuration = "(H (1) )"
+ End
+ Begin PaneConfiguration = 13
+ NumPanes = 1
+ Configuration = "(V (4))"
+ End
+ Begin PaneConfiguration = 14
+ NumPanes = 1
+ Configuration = "(V (2))"
+ End
+ ActivePaneConfig = 0
+ End
+ Begin DiagramPane =
+ Begin Origin =
+ Top = 0
+ Left = 0
+ End
+ Begin Tables =
+ Begin Table = "QuoteFull_R"
+ Begin Extent =
+ Top = 5
+ Left = 30
+ Bottom = 226
+ Right = 213
+ End
+ DisplayFlags = 280
+ TopColumn = 69
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ Begin ColumnWidths = 109
+ Width = 284
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 2445
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_MarginReport';
+
+
+GO
+PRINT N'Creating [dbo].[v_MarginReportStats].[MS_DiagramPaneCount]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_MarginReportStats';
+
+
+GO
+PRINT N'Creating [dbo].[v_MarginReportStats].[MS_DiagramPane1]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
+Begin DesignProperties =
+ Begin PaneConfigurations =
+ Begin PaneConfiguration = 0
+ NumPanes = 4
+ Configuration = "(H (1[40] 4[20] 2[20] 3) )"
+ End
+ Begin PaneConfiguration = 1
+ NumPanes = 3
+ Configuration = "(H (1 [50] 4 [25] 3))"
+ End
+ Begin PaneConfiguration = 2
+ NumPanes = 3
+ Configuration = "(H (1 [50] 2 [25] 3))"
+ End
+ Begin PaneConfiguration = 3
+ NumPanes = 3
+ Configuration = "(H (4 [30] 2 [40] 3))"
+ End
+ Begin PaneConfiguration = 4
+ NumPanes = 2
+ Configuration = "(H (1 [56] 3))"
+ End
+ Begin PaneConfiguration = 5
+ NumPanes = 2
+ Configuration = "(H (2 [66] 3))"
+ End
+ Begin PaneConfiguration = 6
+ NumPanes = 2
+ Configuration = "(H (4 [50] 3))"
+ End
+ Begin PaneConfiguration = 7
+ NumPanes = 1
+ Configuration = "(V (3))"
+ End
+ Begin PaneConfiguration = 8
+ NumPanes = 3
+ Configuration = "(H (1[56] 4[18] 2) )"
+ End
+ Begin PaneConfiguration = 9
+ NumPanes = 2
+ Configuration = "(H (1 [75] 4))"
+ End
+ Begin PaneConfiguration = 10
+ NumPanes = 2
+ Configuration = "(H (1[66] 2) )"
+ End
+ Begin PaneConfiguration = 11
+ NumPanes = 2
+ Configuration = "(H (4 [60] 2))"
+ End
+ Begin PaneConfiguration = 12
+ NumPanes = 1
+ Configuration = "(H (1) )"
+ End
+ Begin PaneConfiguration = 13
+ NumPanes = 1
+ Configuration = "(V (4))"
+ End
+ Begin PaneConfiguration = 14
+ NumPanes = 1
+ Configuration = "(V (2))"
+ End
+ ActivePaneConfig = 0
+ End
+ Begin DiagramPane =
+ Begin Origin =
+ Top = 0
+ Left = 0
+ End
+ Begin Tables =
+ Begin Table = "QuoteFull_R"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 273
+ Right = 237
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 12
+ Column = 1440
+ Alias = 900
+ Table = 1170
+ Output = 720
+ Append = 1400
+ NewValue = 1170
+ SortType = 1350
+ SortOrder = 1410
+ GroupBy = 1350
+ Filter = 1350
+ Or = 1350
+ Or = 1350
+ Or = 1350
+ End
+ End
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_MarginReportStats';
+
+
+GO
+PRINT N'Creating [dbo].[v_MarginReportStatsNewData].[MS_DiagramPaneCount]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_MarginReportStatsNewData';
+
+
+GO
+PRINT N'Creating [dbo].[v_MarginReportStatsNewData].[MS_DiagramPane1]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
+Begin DesignProperties =
+ Begin PaneConfigurations =
+ Begin PaneConfiguration = 0
+ NumPanes = 4
+ Configuration = "(H (1[40] 4[20] 2[20] 3) )"
+ End
+ Begin PaneConfiguration = 1
+ NumPanes = 3
+ Configuration = "(H (1 [50] 4 [25] 3))"
+ End
+ Begin PaneConfiguration = 2
+ NumPanes = 3
+ Configuration = "(H (1 [50] 2 [25] 3))"
+ End
+ Begin PaneConfiguration = 3
+ NumPanes = 3
+ Configuration = "(H (4 [30] 2 [40] 3))"
+ End
+ Begin PaneConfiguration = 4
+ NumPanes = 2
+ Configuration = "(H (1 [56] 3))"
+ End
+ Begin PaneConfiguration = 5
+ NumPanes = 2
+ Configuration = "(H (2 [66] 3))"
+ End
+ Begin PaneConfiguration = 6
+ NumPanes = 2
+ Configuration = "(H (4 [50] 3))"
+ End
+ Begin PaneConfiguration = 7
+ NumPanes = 1
+ Configuration = "(V (3))"
+ End
+ Begin PaneConfiguration = 8
+ NumPanes = 3
+ Configuration = "(H (1[56] 4[18] 2) )"
+ End
+ Begin PaneConfiguration = 9
+ NumPanes = 2
+ Configuration = "(H (1 [75] 4))"
+ End
+ Begin PaneConfiguration = 10
+ NumPanes = 2
+ Configuration = "(H (1[66] 2) )"
+ End
+ Begin PaneConfiguration = 11
+ NumPanes = 2
+ Configuration = "(H (4 [60] 2))"
+ End
+ Begin PaneConfiguration = 12
+ NumPanes = 1
+ Configuration = "(H (1) )"
+ End
+ Begin PaneConfiguration = 13
+ NumPanes = 1
+ Configuration = "(V (4))"
+ End
+ Begin PaneConfiguration = 14
+ NumPanes = 1
+ Configuration = "(V (2))"
+ End
+ ActivePaneConfig = 0
+ End
+ Begin DiagramPane =
+ Begin Origin =
+ Top = 0
+ Left = 0
+ End
+ Begin Tables =
+ Begin Table = "OrdersHistRaw (ext)"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 298
+ Right = 219
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ Begin ColumnWidths = 9
+ Width = 284
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ Width = 1500
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 12
+ Column = 1440
+ Alias = 900
+ Table = 1170
+ Output = 720
+ Append = 1400
+ NewValue = 1170
+ SortType = 1350
+ SortOrder = 1410
+ GroupBy = 1350
+ Filter = 1350
+ Or = 1350
+ Or = 1350
+ Or = 1350
+ End
+ End
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_MarginReportStatsNewData';
+
+
+GO
+PRINT N'Creating [ext].[ClientsRaw].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ClientsRaw';
+
+
+GO
+PRINT N'Creating [ext].[ClientsRaw].[CodClient].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'CodClient';
+
+
+GO
+PRINT N'Creating [ext].[ClientsRaw].[ClientName].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Ragione Sociale', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'ClientName';
+
+
+GO
+PRINT N'Creating [ext].[ClientsRaw].[CodAg].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice agente...', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'CodAg';
+
+
+GO
+PRINT N'Creating [ext].[ClientsRaw].[ZipCode].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'cap', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'ZipCode';
+
+
+GO
+PRINT N'Creating [ext].[ClientsRaw].[City].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'città', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'City';
+
+
+GO
+PRINT N'Creating [ext].[ClientsRaw].[State].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'stato/provincia', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'State';
+
+
+GO
+PRINT N'Creating [ext].[ClientsRaw].[Nation].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'nazione', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'Nation';
+
+
+GO
+PRINT N'Creating [ext].[ClientsRaw].[TranspZone].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Classificazione cliente (es zona, provincia...) x incrocio con tab costi trasporto', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'TranspZone';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[EventStart].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'inizio evento - formato INT 16 cifre yyyyMMddHHmmssnn dove nn = centesimi di sec oppure 00', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'EventStart';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[EventEnd].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'fine evento - formato INT 16 cifre yyyyMMddHHmmssnn dove nn = centesimi di sec oppure 00', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'EventEnd';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[CodPlant].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice impianto', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'CodPlant';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[ProcessNum].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice fase, da qui si crea anagrafica fasi distinct', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'ProcessNum';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[CodDies].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice matrice', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'CodDies';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[CodClient].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'CodClient';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[OrderNum].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'rif codice ordine', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'OrderNum';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[BatchNum].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice lotto', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'BatchNum';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[ProcessType].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice del TIPO di fase, x raggruppamento funzionale', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'ProcessType';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[EventType].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo evento: produzione, prova, guasto, setup...', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'EventType';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[RawMat].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice MP', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'RawMat';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[CodPackag].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice imballo', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'CodPackag';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[QtyIN].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'kg materiale in ingresso', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'QtyIN';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[QtyOUT].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'kg materiale BUONO prodotto in OUTput', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'QtyOUT';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[QtyEXT].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'kg materiale extra che fa parte dell''OUT, es imballi/tara', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'QtyEXT';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[NumIN].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'qta materiale in ingresso', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'NumIN';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[NumOUT].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'qta materiale BUONO prodotto in OUTput', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'NumOUT';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[QuotaPlant].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'indicazione della quota macchina per produrre quanto registrato', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'QuotaPlant';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[QuotaMan].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'indicazione della quota uomo per produrre quanto registrato', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'QuotaMan';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[Tags].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'categorie LIBERE, separatore #', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'Tags';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[okPr].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo produttività', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'okPr';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[okQM].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo quota MAN', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'okQM';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[okSc].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo scarti', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'okSc';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw].[okDi].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo difettosità', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'okDi';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw_KO].[okPr].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo produttività', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw_KO', @level2type = N'COLUMN', @level2name = N'okPr';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw_KO].[okQM].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo quota MAN', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw_KO', @level2type = N'COLUMN', @level2name = N'okQM';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw_KO].[okSc].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo scarti', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw_KO', @level2type = N'COLUMN', @level2name = N'okSc';
+
+
+GO
+PRINT N'Creating [ext].[ProductionLogRaw_KO].[okDi].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo difettosità', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ProductionLogRaw_KO', @level2type = N'COLUMN', @level2name = N'okDi';
+
+
+GO
+PRINT N'Creating [ext].[ItemsRaw].[CodItem].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ItemsRaw', @level2type = N'COLUMN', @level2name = N'CodItem';
+
+
+GO
+PRINT N'Creating [ext].[ItemsRaw].[CodItemGroup].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'calsse raggruppamento (es complessità disegno)', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ItemsRaw', @level2type = N'COLUMN', @level2name = N'CodItemGroup';
+
+
+GO
+PRINT N'Creating [ext].[ItemsRaw].[Class01].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'ItemsRaw', @level2type = N'COLUMN', @level2name = N'Class01';
+
+
+GO
+PRINT N'Creating [ext].[PackagRaw].[RMCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Raw Material Cost - costo dei materiali', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'PackagRaw', @level2type = N'COLUMN', @level2name = N'RMCost';
+
+
+GO
+PRINT N'Creating [ext].[PackagRaw].[RMWeight].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'kg peso medio', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'PackagRaw', @level2type = N'COLUMN', @level2name = N'RMWeight';
+
+
+GO
+PRINT N'Creating [ext].[PackagRaw].[Tare].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'kg tara standard', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'PackagRaw', @level2type = N'COLUMN', @level2name = N'Tare';
+
+
+GO
+PRINT N'Creating [ext].[PackagRaw].[FullWeight].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'peso medio del pacco (compelssivo)', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'PackagRaw', @level2type = N'COLUMN', @level2name = N'FullWeight';
+
+
+GO
+PRINT N'Creating [tmp].[ProductionLogRaw_KO].[okPr].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo produttività', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ProductionLogRaw_KO', @level2type = N'COLUMN', @level2name = N'okPr';
+
+
+GO
+PRINT N'Creating [tmp].[ProductionLogRaw_KO].[okQM].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo quota MAN', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ProductionLogRaw_KO', @level2type = N'COLUMN', @level2name = N'okQM';
+
+
+GO
+PRINT N'Creating [tmp].[ProductionLogRaw_KO].[okSc].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo scarti', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ProductionLogRaw_KO', @level2type = N'COLUMN', @level2name = N'okSc';
+
+
+GO
+PRINT N'Creating [tmp].[ProductionLogRaw_KO].[okDi].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo difettosità', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ProductionLogRaw_KO', @level2type = N'COLUMN', @level2name = N'okDi';
+
+
+GO
+PRINT N'Creating [tmp].[ClientsRaw].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ClientsRaw';
+
+
+GO
+PRINT N'Creating [tmp].[ClientsRaw].[CodClient].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'CodClient';
+
+
+GO
+PRINT N'Creating [tmp].[ClientsRaw].[ClientName].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Ragione Sociale', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'ClientName';
+
+
+GO
+PRINT N'Creating [tmp].[ClientsRaw].[CodAg].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice agente...', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'CodAg';
+
+
+GO
+PRINT N'Creating [tmp].[ClientsRaw].[ZipCode].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'cap', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'ZipCode';
+
+
+GO
+PRINT N'Creating [tmp].[ClientsRaw].[City].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'città', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'City';
+
+
+GO
+PRINT N'Creating [tmp].[ClientsRaw].[State].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'stato/provincia', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'State';
+
+
+GO
+PRINT N'Creating [tmp].[ClientsRaw].[Nation].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'nazione', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'Nation';
+
+
+GO
+PRINT N'Creating [tmp].[ClientsRaw].[TranspZone].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Classificazione cliente (es zona, provincia...) x incrocio con tab costi trasporto', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ClientsRaw', @level2type = N'COLUMN', @level2name = N'TranspZone';
+
+
+GO
+PRINT N'Creating [tmp].[ItemsRaw].[CodItem].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ItemsRaw', @level2type = N'COLUMN', @level2name = N'CodItem';
+
+
+GO
+PRINT N'Creating [tmp].[ItemsRaw].[CodItemGroup].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'calsse raggruppamento (es complessità disegno)', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ItemsRaw', @level2type = N'COLUMN', @level2name = N'CodItemGroup';
+
+
+GO
+PRINT N'Creating [tmp].[ItemsRaw].[Class01].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ItemsRaw', @level2type = N'COLUMN', @level2name = N'Class01';
+
+
+GO
+PRINT N'Creating [tmp].[ProductionLogRaw].[okPr].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo produttività', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'okPr';
+
+
+GO
+PRINT N'Creating [tmp].[ProductionLogRaw].[okQM].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo quota MAN', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'okQM';
+
+
+GO
+PRINT N'Creating [tmp].[ProductionLogRaw].[okSc].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo scarti', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'okSc';
+
+
+GO
+PRINT N'Creating [tmp].[ProductionLogRaw].[okDi].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo difettosità', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'ProductionLogRaw', @level2type = N'COLUMN', @level2name = N'okDi';
+
+
+GO
+PRINT N'Creating [tmp].[PackagRaw].[RMCost].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Raw Material Cost - costo dei materiali', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'PackagRaw', @level2type = N'COLUMN', @level2name = N'RMCost';
+
+
+GO
+PRINT N'Creating [tmp].[PackagRaw].[RMWeight].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'kg peso medio', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'PackagRaw', @level2type = N'COLUMN', @level2name = N'RMWeight';
+
+
+GO
+PRINT N'Creating [tmp].[PackagRaw].[Tare].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'kg tara standard', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'PackagRaw', @level2type = N'COLUMN', @level2name = N'Tare';
+
+
+GO
+PRINT N'Creating [tmp].[PackagRaw].[FullWeight].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'peso medio del pacco (compelssivo)', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'PackagRaw', @level2type = N'COLUMN', @level2name = N'FullWeight';
+
+
+GO
+PRINT N'Creating [tmp].[OrdersHistRaw].[Note]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Import storico ordini per Quote_C', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'OrdersHistRaw';
+
+
+GO
+PRINT N'Creating [tmp].[OrdersHistRaw].[OrdPrice].[MS_Description]...';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Prezzo finale ordine', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'OrdersHistRaw', @level2type = N'COLUMN', @level2name = N'OrdPrice';
+
+
+GO
+DECLARE @VarDecimalSupported AS BIT;
+
+SELECT @VarDecimalSupported = 0;
+
+IF ((ServerProperty(N'EngineEdition') = 3)
+ AND (((@@microsoftversion / power(2, 24) = 9)
+ AND (@@microsoftversion & 0xffff >= 3024))
+ OR ((@@microsoftversion / power(2, 24) = 10)
+ AND (@@microsoftversion & 0xffff >= 1600))))
+ SELECT @VarDecimalSupported = 1;
+
+IF (@VarDecimalSupported > 0)
+ BEGIN
+ EXECUTE sp_db_vardecimal_storage_format N'$(DatabaseName)', 'ON';
+ END
+
+
+GO
+ALTER DATABASE [$(DatabaseName)]
+ SET MULTI_USER
+ WITH ROLLBACK IMMEDIATE;
+
+
+GO
+PRINT N'Update complete.';
+
+
+GO
diff --git a/C2P_Project/bin/Output/C2P_Project.dll b/C2P_Project/bin/Output/C2P_Project.dll
new file mode 100644
index 0000000..d74c093
Binary files /dev/null and b/C2P_Project/bin/Output/C2P_Project.dll differ
diff --git a/C2P_Report/C2P_Report.csproj b/C2P_Report/C2P_Report.csproj
index dfc5c8b..aef69f5 100644
--- a/C2P_Report/C2P_Report.csproj
+++ b/C2P_Report/C2P_Report.csproj
@@ -109,6 +109,7 @@
Designer
+
@@ -127,6 +128,9 @@
Web.config
+
+ Web.config
+
Web.config
diff --git a/C2P_Report/Properties/PublishProfiles/DEMO.pubxml b/C2P_Report/Properties/PublishProfiles/DEMO.pubxml
new file mode 100644
index 0000000..dea2b80
--- /dev/null
+++ b/C2P_Report/Properties/PublishProfiles/DEMO.pubxml
@@ -0,0 +1,40 @@
+
+
+
+
+ MSDeploy
+ Release
+ Any CPU
+
+ True
+ False
+ https://demo.steamwarewin.local.net:8172/MsDeploy.axd
+ Default Web Site/C2P_Report
+
+ True
+ WMSVC
+ False
+ steamwarewin\administrator
+ <_SavePWD>True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/C2P_Report/Reports/ReportOffers_Q.rdlc b/C2P_Report/Reports/ReportOffers_Q.rdlc
index 2355f44..36c572b 100644
--- a/C2P_Report/Reports/ReportOffers_Q.rdlc
+++ b/C2P_Report/Reports/ReportOffers_Q.rdlc
@@ -388,7 +388,7 @@
System.Decimal
- ="http://c2p.steamware.net/C2P_Drawings/" & Fields!CodItem.Value & ".png"
+ ="http://10.74.82.218/C2P_Drawings/" & Fields!CodItem.Value & ".png"
valid
diff --git a/C2P_Report/Reports/ReportOffers_S.rdlc b/C2P_Report/Reports/ReportOffers_S.rdlc
index 2355f44..36c572b 100644
--- a/C2P_Report/Reports/ReportOffers_S.rdlc
+++ b/C2P_Report/Reports/ReportOffers_S.rdlc
@@ -388,7 +388,7 @@
System.Decimal
- ="http://c2p.steamware.net/C2P_Drawings/" & Fields!CodItem.Value & ".png"
+ ="http://10.74.82.218/C2P_Drawings/" & Fields!CodItem.Value & ".png"
valid
diff --git a/C2P_Report/Web.DEMO.config b/C2P_Report/Web.DEMO.config
new file mode 100644
index 0000000..afdc08e
--- /dev/null
+++ b/C2P_Report/Web.DEMO.config
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/C2P_Report/bin/C2P_Report.dll b/C2P_Report/bin/C2P_Report.dll
index e309b72..54d885a 100644
Binary files a/C2P_Report/bin/C2P_Report.dll and b/C2P_Report/bin/C2P_Report.dll differ