RaiseError does not always produces pop up window

  • I have a developer that has a RaiseError condition in his trigger that does not always produces a pop up window when the condition occurs.  He know it happening, because a rollback does occur.  Does anyone have any ideas why the popup doesn't always occur or how to trap the condition?

  • Are you sure it is the trigger causing it and not so other piece. For instance if you have a unique constraint on the table and break that condition the trigger will not fire because the constraint is evaulated first.

  • The only constraint on the table is the primary key.  And the developer is sure its not a duplicate key.

  • Can you post the DDL of your table and the trigger?

    Also, can you provide details o how the inserts are being done, what is the process?

  • inserts are being done through a vendor program... but here's the trigger..

    -- Trigger Name: BAF_CMSARTICOLI_INSERT_UPDATE

    --

    --

    -- Description: BAF_CMSARTICOLI_INSERT_UPDATE SQL trigger will Inserted or Updated columns in the CDS Article Master --  Table, CMSARTICOLI.

    --

    --

    -- Revision Date  Author   Revision Description

    -- 09-Oct-2005  Mark T Coble  Trigger Created.

    --

    -- 20-Dec-2005  Mike Purvis  Put in check for ARFLO2 (Control Style). If ARFLO2 is not populated

    --      then set the Control Style ML (ARMFO2) to '' otherwise set it to 2M.

    --

    -- 20-Dec-2005  Mark T Coble  Corrected the update of USRCreationDate.

    --

    -- 28-Dec-2005  Mark T Coble  Map USRYarnCategoryTubeColorCode to IGCODK which is in the INFAG00F table

    --       for ML 60 and ML 70.

    --

    -- 28-Dec-2005  Mike Purvis  Corrected the code for ML20 & ML30 when LoomBeamStyle is different from

    --                                              the code of the ML20

    --

    -- 28-Dec-2005  Mark T Coble  Set short description to be equal to the first 15 characters of

    --      USRYarnDescription and set extended description equal to the first 35

    --      characters of the USRYarnDescription for ML60, ML70 and ML80.

    --

    -- 30-Dec-2005  Mark T Coble  To calculate the number of days for ML GT we are changing all

    --      Scheduled Dates to be the Trial Date.  We will calculate the

    --      difference between the Trail date and Actual Dates.

    --

    -- 30-Dec-2005  Mark T Coble  On ML10 and MLFT changed the mapping of ends/inch from USRFinishedEndsInchAvg

    --      to ARFICM and picks/inch from USRFinishedPicksInchAvg to ARINFN.

    --

    -- 02-Jan-2006  Mike Purvis  On ML10 if Market (CODICELINEA) = 'GW' Government change prefix of

    --      Finishing Routing Code to FG or if Maximum Widteh (ARATMN) > 69 change

    --      prefix of Finishing Routing Code to FW.

    --

    --

    -- 04-Jan-2006  Mark T Coble  Added USRFinishEvaluationFormulaCode and USRFinishEvaluationTempHandStandard

    --      to ML 10 and ML FT.

    -- 

    --

    -- 05-Jan-2006  Mike Purvis  Changed to populate DCFLCS Warp Ends in the Bill Of Material Detail.

    --      GTEX uses ARFLCT (total warp ends) if DCFLCS is not populated. Also

    --      Changed to populate DCCART Picks in the Bill of Material Detail for

    --      for fill yarns.

    --

    --

    -- 06-Jan-2006  Mike Purvis  Changed to insert the Control Style into the USRControlStyleTable

    --      on the ML 2M if it doesn't already exists.

    --

    --

    -- 09-Jan-2006  Mike Purvis  Changed the code to Delete the BOM Header and Details to include

    --      the wildcard character %.

    --

    --

    -- 09-Jan-2006  Mark T Coble  Map USRGreigeSizeFormulaCode from the USRGreigeSizeFormulaTable

    --      to ARFL08, to be exported to GTEX.

    --

    --

    --

    -- 09-Jan-2006  Mike Purvis  Changed the code to Delete the BOM Header and Details to only include

    --      the first 12 characters of the code.

    --

    --

    -- 12-Jan-2006  Mark T Coble  Map Dents/Inch from USRGreigeDentsInch to ARPTTN for ML 20.

    --

    --

    -- 16-Jan-2006  Mark T Coble  Update USRCutsBatchRoll with INFAG00F.IGCODA.

    --

    --

    -- 18-Jan-2006  Mike Purvis  Changed the ML 10 (Finished Fabric) code for the Finishing Routing.

    --      If the Country of Origin is MX and the Primary Vendor is 569000 (Hurt)

    --      then use the Hurt version of the Routing.

    --

    --

    -- 24-Jan-2006  Mike Purvis  Changed the ML 20 code for the Greige Routing to use ARFU10 rather

    --      than USRCntryOfOrgCode.

    --

    --

    -- 25-Jan-2006  Mark T Coble  Set null values to 0 for ML 10 and ML FT.

    --

    --

    -- 26-Jan-2006  Mark & Mike  Capture Create Date for all MLs on INFAG table. Also Capture Air Space

    --      on the ML 20 INFAG Table records.

    --

    --

    -- 27-Jan-2006  Mike Purvis  Check to not create BOM records for ML 10, 20, & 30 products that

    --      don't have valid vendors. Also changed the ML20 code to move the

    --      selects for capturing the Greige Routing Code before the update of the

    --      Article Master and set the field in the ML20 record.

    --

    -- 02-Feb-2006  Mike Purvis  On ML10 if Market (CODICELINEA) = 'GS' Government change prefix of

    --      Finishing Routing Code to FG.

    --

    --

    -- 10-Feb-2006  Mike Purvis  Various enhancements for Product Development. 

    --

    --

    -- 15-Feb-2006  Mark T Coble  Calculate shrinkage loss for ML 10 and Ml FT.

    --

    --

    -- 17-Feb-2006  Mike Purvis  Fixed divide by zero error

    --

    --

    -- 20-Feb-2006  Mark T Coble  Changed USRFinishEvaluationFormulaCode from a len of 4 to 5.

    --

    --

    -- 20-Feb-2006  Mark T Coble  Calculate finished ends/inch for ML 10 and ML FT.

    --

    --

    -- 22-Feb-2006   Mike Purvis  Changed to default for Ends Per Inch fields to be 1 rather than 0.

    --

    --

    -- 28-Feb-2006  Mike Purvis  Changed to test for Hurt and Casimires with just the first six numbers of vendor.

    --

    --

    -- 01-Mar-2006  Mark T Coble  Only calculate shrinkage loss if USRFinishedPicksInchAvg > 1.

    --

    --

    CREATE TRIGGER BAF_CMSARTICOLI_INSERT_UPDATE ON CMSARTICOLI

    FOR INSERT, UPDATE

    AS

    -- Declare local variables.

    --

    Declare

     @Mlivarticolo     varchar(2)

     ,@Codicecomponente    varchar(28)

     ,@USRCareCode    varchar(5)

     ,@TRATTAMENTOCANDEGGIO  varchar(1)  -- Care Code Bleaching

     ,@TRATTAMENTOLAVAGGIOSECCO  varchar(1)  -- Care Code Dry Cleaning

     ,@TRATTAMENTOASCIUGATURA  varchar(1)  -- Care Code Drying

     ,@TRATTAMENTOSTIRO   varchar(1)  -- Care Code Ironing

     ,@TRATTAMENTOLAVAGGIO   varchar(1)  -- Care Code Washing

     ,@ARTAUS     varchar(20)  -- U.S. Customs Tariff

     ,@ARFL01     varchar(3)  -- Tariffs Category Code

     ,@UpdateUserID    varchar(50)

     ,@USREndUseProfileCode   varchar(4)

     ,@USRFinishCode    varchar(3)

     ,@USRFinishDesc    varchar(25)

     ,@USRFinishDescriptionOverride   varchar(25)

     ,@ARAGMN     float  -- Finished Width Min Inches (nn.nn)

     ,@ARATMN     float  -- Finished Width Max Inches (nn.nn)

     ,@ARPSGR     float  -- Weight Min Oz/Sq Yd (nnn.nn)

     ,@ARDMAT     float  -- Weight Mid Oz/Sq Yd (nnn.nn)

     ,@ARATMX     float  -- Finished Width Cuttable (nn.nn)

     ,@USRFillStretchPercentMax   float  -- (nnn)

     ,@USRFillStretchPercentMin   float  -- (nnn)

     ,@USRFinishedEndsInchMax    float  -- (nnn)

     ,@USRFinishedEndsInchMin    float  -- (nnn)

     ,@USRFinishedPicksInchMax    float  -- (nnn)

     ,@USRFinishedPicksInchMin    float  -- (nnn)

     ,@USRMaxWtOzSqYd     float  -- (nnn.nn)

     ,@USRWarpStretchPercentMax   float  -- (nnn)

     ,@USRWarpStretchPercentMin   float  -- (nnn)

     ,@USRMidWidInches    float  -- (nnnn.nn)

     ,@USRCutWidCM    float  -- (nnn)

     ,@USRMinWidCM    float  -- (nnn)

     ,@USRMaxWidCM    float  -- (nnn)

     ,@USRMidWidCM    float  -- (nnn)

     ,@USRMinWtOzLnYd    float  -- (nnn.nn)

     ,@USRMaxWtOzLnYd    float  -- (nnn.nn)

     ,@ARPSFI     float  -- Finished Weight Mid Oz/Ln Yd (nnn.nn)

     ,@USRMinWtGrSqMtr    float  -- (nnn)

     ,@USRMaxWtGrSqMeter   float  -- (nnn)

     ,@USRMidWtGrSqMeter    float  -- (nnn)

     ,@USRMinWtGrLnMater    float  -- (nnn)

     ,@USRMaxWtGrLnMeter   float  -- (nnn)

     ,@USRMidWtGrLnMeter    float  -- (nnn)

     ,@USRFinishedEndsInchAvg   float  -- (nnn)

     ,@USRFinishedPicksInchAvg   float  -- (nnn)

     ,@USRFinishedEndsCMMin   float  -- (nnn)

     ,@USRFinishedEndsCMMax   float  -- (nnn)

     ,@USRFinishedEndsCMAvg   float  -- (nnn)

     ,@USRFinishedPicksCMMin   float  -- (nnn)

     ,@USRFinishedPicksCMMax   float  -- (nnn)

     ,@USRFinishedPicksCMAvg   float  -- (nnn)

     ,@USRAverageYarnNumber   float  -- (nnnnnn)

     ,@USRYarnCategoryActive   varchar(1)

     ,@ARFG02     varchar(2)

     ,@USRCntryOfOrgCode    varchar(2)

     ,@Descrizionecomponente   varchar(35)

     ,@USRYarnCategoryDyeCode   varchar(5)

     ,@ARMDMN     float  -- Min Production Quan

     ,@USRYarnCategoryEstablishedDate  datetime

     ,@USRYarnCategoryStandardYdsLb  float

     ,@ARDSBR     varchar(15) -- Short Description

     ,@ARTPPD     varchar(1) -- Manufactured/Purchased

     ,@CODICEFORNITORE    varchar(8)

     ,@ARTITL     float  -- Actal Denier

     ,@USRCreationDate    datetime

     ,@USRRevisionDate    datetime

     ,@USRPieceDyeStockDye   varchar(10)

     ,@USRFinishLeadTime    smallint

     ,@ARFLO2     varchar(28) -- ARFLO2 is Control Style

     ,@ARTPTT     varchar(10) -- Yarn Unit Count

     ,@USRYarnCategoryYarnCountUnitEquivalFactor float

     ,@USRYarnCategoryEquivalSingleCount  float

     ,@ARQU03     float  -- lb/Week/Machine

     ,@USRGreigeEndsCM    float

     ,@ARFICM     float  -- Ends/Inch

     ,@USRGreigePicksCM    float

     ,@ARINFN     float  -- Picks/Inch

     ,@ARINCM     float

     ,@USRGreigeReedSpreadCM   float

     ,@ARAPTT     float  -- Reed Spread In Inches

     ,@USRGreigeCutLengthMinBatchRoll  float

     ,@USRGreigeCutLengthMin   float

    -- 16-Jan-2006 MtC

     ,@USRCutsBatchRoll   float

     ,@USRGreigeCutLength    float

     ,@USRBeckLoadInPounds   float

     ,@USRGreigeCutLengthMaxBatchRoll  float

     ,@USRGreigeCutLengthMax   float

     ,@USRGreigeStopsTotal    float

     ,@USRGreigeStopsCatchCord   float

     ,@USRGreigeStopsFill    float

     ,@USRGreigeStopsLeno    float

     ,@USRGreigeStopsOther   float

     ,@USRGreigeStopsWarp   float

     ,@USRGreigePlanningYarnNetFactor  float

     ,@USRGreigePlanningYarnStretchFactor  float

     ,@USRGreigePlanningYarnTakeupFactor  float

     ,@USRGreigePlanningStdSetLength  float

     ,@USRGreigeDentsCM    float

     ,@USRGreigeDentsInch    float

     ,@USRGreigePlanningStdBeamsPerSet  float

     ,@USRGreigePlanningStdLoomBeamLen  float

     ,@ARDSTD     float  -- ML20 - Cut Len Mid/Batch Roll Yds

             -- ML10 - Beck Loading Yards

     ,@USRGreigeYarnCategoryRevisionStdYdslb float

     ,@USRGreigeYarnCategoryRevision01  varchar(20)

     ,@USRGreigeYarnCategoryRevision02  varchar(20) 

     ,@USRGreigeYarnCategoryRevision03  varchar(20) 

     ,@USRGreigeYarnCategoryRevision04  varchar(20) 

     ,@USRGreigeYarnCategoryRevision05  varchar(20) 

     ,@USRGreigeYarnCategoryRevision06  varchar(20) 

     ,@USRGreigeYarnCategoryRevision07  varchar(20) 

     ,@USRGreigeYarnCategoryRevision08  varchar(20) 

     ,@USRGreigeYarnCategoryRevision09  varchar(20) 

     ,@USRGreigeYarnCategoryRevision10  varchar(20) 

     ,@USRGreigeYarnCategoryRevision11  varchar(20) 

     ,@USRGreigeYarnCategoryRevision12  varchar(20) 

     ,@USRGreigeYarnCategoryRevision13  varchar(20) 

     ,@USRGreigeYarnCategoryRevision14  varchar(20) 

     ,@USRGreigeYarnCategoryRevision15  varchar(20) 

     ,@USRGreigeYarnCategoryRevision16  varchar(20) 

     ,@USRGreigeYarnCategoryRevision17  varchar(20) 

     ,@USRGreigeYarnCategoryRevision18  varchar(20) 

     ,@USRGreigeYarnCategoryRevision19  varchar(20) 

     ,@USRGreigeYarnCategoryRevision20  varchar(20) 

     ,@USRGreigeYarnType01   varchar(1)

     ,@USRGreigeYarnType02   varchar(1)

     ,@USRGreigeYarnType03   varchar(1)

     ,@USRGreigeYarnType04   varchar(1)

     ,@USRGreigeYarnType05   varchar(1)

     ,@USRGreigeYarnType06   varchar(1)

     ,@USRGreigeYarnType07   varchar(1)

     ,@USRGreigeYarnType08   varchar(1)

     ,@USRGreigeYarnType09   varchar(1)

     ,@USRGreigeYarnType10   varchar(1)

     ,@USRGreigeYarnType11   varchar(1)

     ,@USRGreigeYarnType12   varchar(1)

     ,@USRGreigeYarnType13   varchar(1)

     ,@USRGreigeYarnType14   varchar(1)

     ,@USRGreigeYarnType15   varchar(1)

     ,@USRGreigeYarnType16   varchar(1)

     ,@USRGreigeYarnType17   varchar(1)

     ,@USRGreigeYarnType18   varchar(1)

     ,@USRGreigeYarnType19   varchar(1)

     ,@USRGreigeYarnType20   varchar(1)

     ,@USRGreigeYarnSequence01   varchar(1)

     ,@USRGreigeYarnSequence02   varchar(1)

     ,@USRGreigeYarnSequence03   varchar(1)

     ,@USRGreigeYarnSequence04   varchar(1)

     ,@USRGreigeYarnSequence05   varchar(1)

     ,@USRGreigeYarnSequence06   varchar(1)

     ,@USRGreigeYarnSequence07   varchar(1)

     ,@USRGreigeYarnSequence08   varchar(1)

     ,@USRGreigeYarnSequence09   varchar(1)

     ,@USRGreigeYarnSequence10   varchar(1)

     ,@USRGreigeYarnSequence11   varchar(1)

     ,@USRGreigeYarnSequence12   varchar(1)

     ,@USRGreigeYarnSequence13   varchar(1)

     ,@USRGreigeYarnSequence14   varchar(1)

     ,@USRGreigeYarnSequence15   varchar(1)

     ,@USRGreigeYarnSequence16   varchar(1)

     ,@USRGreigeYarnSequence17   varchar(1)

     ,@USRGreigeYarnSequence18   varchar(1)

     ,@USRGreigeYarnSequence19   varchar(1)

     ,@USRGreigeYarnSequence20   varchar(1)

     ,@USRGreigeYarnEndsPicks01   float

     ,@USRGreigeYarnEndsPicks02   float

     ,@USRGreigeYarnEndsPicks03   float

     ,@USRGreigeYarnEndsPicks04   float

     ,@USRGreigeYarnEndsPicks05   float

     ,@USRGreigeYarnEndsPicks06   float

     ,@USRGreigeYarnEndsPicks07   float

     ,@USRGreigeYarnEndsPicks08   float

     ,@USRGreigeYarnEndsPicks09   float

     ,@USRGreigeYarnEndsPicks10   float

     ,@USRGreigeYarnEndsPicks11   float

     ,@USRGreigeYarnEndsPicks12   float

     ,@USRGreigeYarnEndsPicks13   float

     ,@USRGreigeYarnEndsPicks14   float

     ,@USRGreigeYarnEndsPicks15   float

     ,@USRGreigeYarnEndsPicks16   float

     ,@USRGreigeYarnEndsPicks17   float

     ,@USRGreigeYarnEndsPicks18   float

     ,@USRGreigeYarnEndsPicks19   float

     ,@USRGreigeYarnEndsPicks20   float

     ,@USRGreigeYarnWt100Yds01   float

     ,@USRGreigeYarnWt100Yds02   float

     ,@USRGreigeYarnWt100Yds03   float

     ,@USRGreigeYarnWt100Yds04   float

     ,@USRGreigeYarnWt100Yds05   float

     ,@USRGreigeYarnWt100Yds06   float

     ,@USRGreigeYarnWt100Yds07   float

     ,@USRGreigeYarnWt100Yds08   float

     ,@USRGreigeYarnWt100Yds09   float

     ,@USRGreigeYarnWt100Yds10   float

     ,@USRGreigeYarnWt100Yds11   float

     ,@USRGreigeYarnWt100Yds12   float

     ,@USRGreigeYarnWt100Yds13   float

     ,@USRGreigeYarnWt100Yds14   float

     ,@USRGreigeYarnWt100Yds15   float

     ,@USRGreigeYarnWt100Yds16   float

     ,@USRGreigeYarnWt100Yds17   float

     ,@USRGreigeYarnWt100Yds18   float

     ,@USRGreigeYarnWt100Yds19   float

     ,@USRGreigeYarnWt100Yds20   float

     ,@USRGreigeYarnTotWarpSelvWt100Yds float

     ,@USRGreigeYarnTotFillWt100Yds  float

     ,@USRGreigeYarnTotWt100Yds   float

     ,@USRGreigeYarnTotWarpSelvEndsPicks float

     ,@USRGreigeYarnTotFillEndsPicks  float

     ,@USRGreigeBoiloffWarpShrinkagePercent float

     ,@USRGreigeBoiloffFillShrinkagePercent  float

     ,@USRGreigeBoiloffBeforePicks   float

     ,@USRGreigeBoiloffBeforeWidth   float

     ,@USRGreigeBoiloffAfterPicks   float

     ,@USRGreigeBoiloffAfterWidth   float

     ,@USRGreigeLoomBeamStyleRevision  varchar(28)

    -- Local variables for ML FT

    --

     ,@ML20CodeFromMLFT    varchar(8)

     ,@ML20FabricDesc    varchar(35)

     ,@ML20ARFL06    varchar(3)

     ,@ML20TypeWeave    varchar(35)

     ,@ML20Market     varchar(2)

     ,@ML20RDCode    varchar(20)

     ,@ML20FiberContent    varchar(3)

     ,@ML20GreigeYarnCategoryRevision01  varchar(20)

     ,@ML20GreigeYarnCategoryRevision02  varchar(20)

     ,@ML20GreigeYarnCategoryRevision03  varchar(20)

     ,@ML20GreigeYarnCategoryRevision04  varchar(20)

     ,@ML20GreigeYarnCategoryRevision05  varchar(20)

     ,@ML20GreigeYarnCategoryRevision06  varchar(20)

     ,@ML20GreigeYarnCategoryRevision07  varchar(20)

     ,@ML20GreigeYarnCategoryRevision08  varchar(20)

     ,@ML20GreigeYarnCategoryRevision09  varchar(20)

     ,@ML20GreigeYarnCategoryRevision10  varchar(20)

     ,@ML20GreigeYarnCategoryRevision11  varchar(20)

     ,@ML20GreigeYarnCategoryRevision12  varchar(20)

     ,@ML20GreigeYarnCategoryRevision13  varchar(20)

     ,@ML20GreigeYarnCategoryRevision14  varchar(20)

     ,@ML20GreigeYarnCategoryRevision15  varchar(20)

     ,@ML20GreigeYarnCategoryRevision16  varchar(20)

     ,@ML20GreigeYarnCategoryRevision17  varchar(20)

     ,@ML20GreigeYarnCategoryRevision18  varchar(20)

     ,@ML20GreigeYarnCategoryRevision19  varchar(20)

     ,@ML20GreigeYarnCategoryRevision20  varchar(20)

     ,@ML20GreigeYarnType01   varchar(1)

     ,@ML20GreigeYarnType02   varchar(1)

     ,@ML20GreigeYarnType03   varchar(1)

     ,@ML20GreigeYarnType04   varchar(1)

     ,@ML20GreigeYarnType05   varchar(1)

     ,@ML20GreigeYarnType06   varchar(1)

     ,@ML20GreigeYarnType07   varchar(1)

     ,@ML20GreigeYarnType08   varchar(1)

     ,@ML20GreigeYarnType09   varchar(1)

     ,@ML20GreigeYarnType10   varchar(1)

     ,@ML20GreigeYarnType11   varchar(1)

     ,@ML20GreigeYarnType12   varchar(1)

     ,@ML20GreigeYarnType13   varchar(1)

     ,@ML20GreigeYarnType14   varchar(1)

     ,@ML20GreigeYarnType15   varchar(1)

     ,@ML20GreigeYarnType16   varchar(1)

     ,@ML20GreigeYarnType17   varchar(1)

     ,@ML20GreigeYarnType18   varchar(1)

     ,@ML20GreigeYarnType19   varchar(1)

     ,@ML20GreigeYarnType20   varchar(1)

     ,@ML20GreigeYarnSequence01   varchar(1)

     ,@ML20GreigeYarnSequence02   varchar(1)

     ,@ML20GreigeYarnSequence03   varchar(1)

     ,@ML20GreigeYarnSequence04   varchar(1)

     ,@ML20GreigeYarnSequence05   varchar(1)

     ,@ML20GreigeYarnSequence06   varchar(1)

     ,@ML20GreigeYarnSequence07   varchar(1)

     ,@ML20GreigeYarnSequence08   varchar(1)

     ,@ML20GreigeYarnSequence09   varchar(1)

     ,@ML20GreigeYarnSequence10   varchar(1)

     ,@ML20GreigeYarnSequence11   varchar(1)

     ,@ML20GreigeYarnSequence12   varchar(1)

     ,@ML20GreigeYarnSequence13   varchar(1)

     ,@ML20GreigeYarnSequence14   varchar(1)

     ,@ML20GreigeYarnSequence15   varchar(1)

     ,@ML20GreigeYarnSequence16   varchar(1)

     ,@ML20GreigeYarnSequence17   varchar(1)

     ,@ML20GreigeYarnSequence18   varchar(1)

     ,@ML20GreigeYarnSequence19   varchar(1)

     ,@ML20GreigeYarnSequence20   varchar(1)

     ,@ML20GreigeYarnEndsPicks01   float

     ,@ML20GreigeYarnEndsPicks02   float

     ,@ML20GreigeYarnEndsPicks03   float

     ,@ML20GreigeYarnEndsPicks04   float

     ,@ML20GreigeYarnEndsPicks05   float

     ,@ML20GreigeYarnEndsPicks06   float

     ,@ML20GreigeYarnEndsPicks07   float

     ,@ML20GreigeYarnEndsPicks08   float

     ,@ML20GreigeYarnEndsPicks09   float

     ,@ML20GreigeYarnEndsPicks10   float

     ,@ML20GreigeYarnEndsPicks11   float

     ,@ML20GreigeYarnEndsPicks12   float

     ,@ML20GreigeYarnEndsPicks13   float

     ,@ML20GreigeYarnEndsPicks14   float

     ,@ML20GreigeYarnEndsPicks15   float

     ,@ML20GreigeYarnEndsPicks16   float

     ,@ML20GreigeYarnEndsPicks17   float

     ,@ML20GreigeYarnEndsPicks18   float

     ,@ML20GreigeYarnEndsPicks19   float

     ,@ML20GreigeYarnEndsPicks20   float

     ,@ML20GreigeYarnWt100Yds01   float

     ,@ML20GreigeYarnWt100Yds02   float

     ,@ML20GreigeYarnWt100Yds03   float

     ,@ML20GreigeYarnWt100Yds04   float

     ,@ML20GreigeYarnWt100Yds05   float

     ,@ML20GreigeYarnWt100Yds06   float

     ,@ML20GreigeYarnWt100Yds07   float

     ,@ML20GreigeYarnWt100Yds08   float

     ,@ML20GreigeYarnWt100Yds09   float

     ,@ML20GreigeYarnWt100Yds10   float

     ,@ML20GreigeYarnWt100Yds11   float

     ,@ML20GreigeYarnWt100Yds12   float

     ,@ML20GreigeYarnWt100Yds13   float

     ,@ML20GreigeYarnWt100Yds14   float

     ,@ML20GreigeYarnWt100Yds15   float

     ,@ML20GreigeYarnWt100Yds16   float

     ,@ML20GreigeYarnWt100Yds17   float

     ,@ML20GreigeYarnWt100Yds18   float

     ,@ML20GreigeYarnWt100Yds19   float

     ,@ML20GreigeYarnWt100Yds20   float

     ,@ML20CommerceFabricType    varchar(4)

     ,@ML20ARFG09    varchar(3)

     ,@ML20DiscountFabricType    varchar(3)

     ,@ML20GreigeCostStatus   varchar(10)

     ,@ARLRKG     float

     ,@USRCalculatedYardsToWeave  int

     ,@USRExperWeaveReqSampleBeckYds  int

     ,@USRGreigeExperWeaveRequestStatus varchar(10)

     ,@USRPreparationYards    int

     ,@PrepYardsReal    real

     ,@USRRequestedCutsToWeave   int

     ,@USRRequestedYardsToWeave  int

     ,@USRYardsForLab    int

     ,@USRExperWeaveReqActualDateDrawReady datetime

     ,@USRExperWeaveReqActualDateFill  datetime

     ,@USRExperWeaveReqActualDateInLoom datetime

     ,@USRExperWeaveReqActualDateOutOfLoom datetime

     ,@USRExperWeaveReqActualDateShipFirst datetime

     ,@USRExperWeaveReqActualDateSlashReady datetime 

     ,@USRExperWeaveReqActualDateWarp  datetime

     ,@USRExperWeaveReqActualDateWarpReady datetime

     ,@USRExperWeaveReqScheDateDrawReady datetime

     ,@USRExperWeaveReqScheDateFill  datetime

     ,@USRExperWeaveReqScheDateInLoom datetime

     ,@USRExperWeaveReqScheDateOutOfLoom datetime

     ,@USRExperWeaveReqScheDateShipFirst datetime

     ,@USRExperWeaveReqScheDateSlashReady datetime

     ,@USRExperWeaveReqScheDateWarp  datetime

     ,@USRExperWeaveReqScheDateWarpReady datetime

     ,@USRExperWeaveReqNumOfDaysDrawReady int

     ,@USRExperWeaveReqNumOfDaysFill  int

     ,@USRExperWeaveReqNumOfDaysInLoom int

     ,@USRExperWeaveReqNumOfDaysOutOfLoom int

     ,@USRExperWeaveReqNumOfDaysShipFirst int

     ,@USRExperWeaveReqNumOfDaysSlashReady int

     ,@USRExperWeaveReqNumOfDaysWarp int

     ,@USRExperWeaveReqNumOfDaysWarpReady int

     ,@ML30Code      varchar(28)

     ,@CODICEDIVISIONE    varchar(2)

     ,@CODICELINEA    varchar(2)

     ,@TIPOPRODOTTO    varchar(3)

     ,@ARCOMP     varchar(3)

     ,@ARFLCT     int

     ,@ARLGCT     real

     ,@ARHHCT     real

     ,@YarnRecNo    float

     ,@YarnCatRev    varchar(20)

     ,@YarnType    varchar(1)

     ,@YarnWtLb100Yd   float -- nn.nn

     ,@YarnSequence   varchar(1)

     ,@USRGreiDyeFactFiberDyeCategory01 varchar(1)

     ,@USRGreiDyeFactFiberDyeCategory02 varchar(1)

     ,@USRGreiDyeFactFiberDyeCategory03 varchar(1)

     ,@USRGreiDyeFactFiberDyeCategory04 varchar(1)

     ,@USRGreiDyeFactFiberDyeCategory05 varchar(1)

     ,@USRGreiDyeFactFiberDyeCategory06 varchar(1)

     ,@USRGreiDyeFactFiberDyeCategory07 varchar(1)

     ,@USRGreiDyeFactFiberDyeCategory08 varchar(1)

     ,@USRGreiDyeFactFiberDyeCategory09 varchar(1)

     ,@USRGreiDyeFactFiberDyeCategory10 varchar(1)

     ,@USRGreiDyeFactFiberPercent01  float -- nnn

     ,@USRGreiDyeFactFiberPercent02  float -- nnn

     ,@USRGreiDyeFactFiberPercent03  float -- nnn

     ,@USRGreiDyeFactFiberPercent04  float -- nnn

     ,@USRGreiDyeFactFiberPercent05  float -- nnn

     ,@USRGreiDyeFactFiberPercent06  float -- nnn

     ,@USRGreiDyeFactFiberPercent07  float -- nnn

     ,@USRGreiDyeFactFiberPercent08  float -- nnn

     ,@USRGreiDyeFactFiberPercent09  float -- nnn

     ,@USRGreiDyeFactFiberPercent10  float -- nnn

     ,@USRGreiDyeFactFiberType01  varchar(5)

     ,@USRGreiDyeFactFiberType02  varchar(5)

     ,@USRGreiDyeFactFiberType03  varchar(5)

     ,@USRGreiDyeFactFiberType04  varchar(5)

     ,@USRGreiDyeFactFiberType05  varchar(5)

     ,@USRGreiDyeFactFiberType06  varchar(5)

     ,@USRGreiDyeFactFiberType07  varchar(5)

     ,@USRGreiDyeFactFiberType08  varchar(5)

     ,@USRGreiDyeFactFiberType09  varchar(5)

     ,@USRGreiDyeFactFiberType10  varchar(5)

     ,@USRGreiDyeFactFiberTradeName01 varchar(10)

     ,@USRGreiDyeFactFiberTradeName02 varchar(10)

     ,@USRGreiDyeFactFiberTradeName03 varchar(10)

     ,@USRGreiDyeFactFiberTradeName04 varchar(10)

     ,@USRGreiDyeFactFiberTradeName05 varchar(10)

     ,@USRGreiDyeFactFiberTradeName06 varchar(10)

     ,@USRGreiDyeFactFiberTradeName07 varchar(10)

     ,@USRGreiDyeFactFiberTradeName08 varchar(10)

     ,@USRGreiDyeFactFiberTradeName09 varchar(10)

     ,@USRGreiDyeFactFiberTradeName10 varchar(10)

     ,@USRGreiDyeFactFiberGramsLinearYd01 float -- nnn.nn

     ,@USRGreiDyeFactFiberGramsLinearYd02 float -- nnn.nn

     ,@USRGreiDyeFactFiberGramsLinearYd03 float -- nnn.nn

     ,@USRGreiDyeFactFiberGramsLinearYd04 float -- nnn.nn

     ,@USRGreiDyeFactFiberGramsLinearYd05 float -- nnn.nn

     ,@USRGreiDyeFactFiberGramsLinearYd06 float -- nnn.nn

     ,@USRGreiDyeFactFiberGramsLinearYd07 float -- nnn.nn

     ,@USRGreiDyeFactFiberGramsLinearYd08 float -- nnn.nn

     ,@USRGreiDyeFactFiberGramsLinearYd09 float -- nnn.nn

     ,@USRGreiDyeFactFiberGramsLinearYd10 float -- nnn.nn

     ,@USRGreiDyeFactTotGrLinearYdByDayCat1 float -- nnn.nn

     ,@USRGreiDyeFactTotGrLinearYdByDayCat2 float -- nnn.nn

     ,@USRGreiDyeFactTotGrLinearYdByDayCat3 float -- nnn.nn

     ,@USRGreiDyeFactTotGrLinearYdByDayCat4 float -- nnn.nn

     ,@USRGreiDyeFactTotGrLinearYdByDayCat5 float -- nnn.nn

     ,@USRGreiDyeFactTotGrLinearYdByDayCat6 float -- nnn.nn

     ,@USRGreiDyeFactTotGrLinearYdByDayCat7 float -- nnn.nn

     ,@USRGreiDyeFactTotGrLinearYdByDayCat8 float -- nnn.nn

     ,@USRGreiDyeFactTotGrLinearYdByDayCat9 float -- nnn.nn

     ,@USRGreiDyeFactTotGrLinearYdByDayCat10 float -- nnn.nn

     ,@USRGreiDyeFactTotGrLinearYd  float -- nnn.nn

     ,@USRGreiDyeFactTotWt100Yds  float -- nnnnn.nn

    --

    -- Local Variables for BOM Automation

     ,@Suffissodb    varchar(2)

     ,@SuffissodbInt    smallint

     ,@NUMSEQUENZA    int

     ,@NUMALTERNATIVA    int

     ,@IS_GHOST    bit

     ,@COMPCRIT    bit

     ,@FABBISOGNO    real

     ,@FABBISOGNO01     real

     ,@FABBISOGNO02     real

     ,@FABBISOGNO03     real

     ,@FABBISOGNO04     real

     ,@FABBISOGNO05     real

     ,@FABBISOGNO06     real

     ,@CML2MydsPerML10   real

     ,@LbsPerYdFill    real

     ,@LbsPerYdWarp    real

     ,@MLIVCOMPONENTE   varchar(2)

     ,@BOMCODICECOMPONENTE   varchar(28)

     ,@MLCode    varchar(28)

     ,@BOMMlivarticolo   varchar(2)

     ,@CODICEARTICOLO    varchar(28)

     ,@DCIDFL    varchar(1)

     ,@DCFLFT    varchar(1)

     ,@Currentdate    smalldatetime

     ,@USRFinishRouting   varchar(5)

     ,@USRGreigeRouting   varchar(5)

     ,@USRLoomBeamRouting   varchar(5)

     ,@USRYarnRouting   varchar(5)

     ,@CODICEDESTINAZIONE   varchar(2)

     ,@ComponentML    varchar(2)

     ,@ComponentMLCode   varchar(28)

     ,@CurDate    nvarchar(25)

     ,@Yarn01ML    varchar(2)

     ,@Yarn01Code    varchar(28)

     ,@Yarn01Ply    int

     ,@Yarn01Denier    real

     ,@Yarn01PlyDenier   real    

     ,@Yarn02ML    varchar(2)

     ,@Yarn02Code    varchar(28)

     ,@Yarn02Ply    int

     ,@Yarn02Denier    real

     ,@Yarn02PlyDenier   real    

     ,@Yarn03ML    varchar(2)

     ,@Yarn03Code    varchar(28)

     ,@Yarn03Ply    int

     ,@Yarn03Denier    real

     ,@Yarn03PlyDenier   real    

     ,@Yarn04ML    varchar(2)

     ,@Yarn04Code    varchar(28)

     ,@Yarn04Ply    int

     ,@Yarn04Denier    real

     ,@Yarn04PlyDenier   real    

     ,@Yarn05ML    varchar(2)

     ,@Yarn05Code    varchar(28)

     ,@Yarn05Ply    int

     ,@Yarn05Denier    real

     ,@Yarn05PlyDenier   real    

     ,@Yarn06ML    varchar(2)

     ,@Yarn06Code    varchar(28)

     ,@Yarn06Ply    int

     ,@Yarn06Denier    real

     ,@Yarn06PlyDenier   real 

     ,@Yarn07ML    varchar(2)

     ,@Yarn07Code    varchar(28)

     ,@Yarn08ML    varchar(2)

     ,@Yarn08Code    varchar(28)

     ,@Yarn09ML    varchar(2)

     ,@Yarn09Code    varchar(28)

     ,@Yarn10ML    varchar(2)

     ,@Yarn10Code    varchar(28)

     ,@Yarn11ML    varchar(2)

     ,@Yarn11Code    varchar(28)

     ,@Yarn12ML    varchar(2)

     ,@Yarn12Code    varchar(28)

     ,@Yarn13ML    varchar(2)

     ,@Yarn13Code    varchar(28)

     ,@Yarn14ML    varchar(2)

     ,@Yarn14Code    varchar(28)

     ,@Yarn15ML    varchar(2)

     ,@Yarn15Code    varchar(28)

     ,@Yarn16ML    varchar(2)

     ,@Yarn16Code    varchar(28)

     ,@Yarn17ML    varchar(2)

     ,@Yarn17Code    varchar(28)

     ,@Yarn18ML    varchar(2)

     ,@Yarn18Code    varchar(28)

     ,@Yarn19ML    varchar(2)

     ,@Yarn19Code    varchar(28)

     ,@Yarn20ML    varchar(2)

     ,@Yarn20Code    varchar(28)

     ,@FillWasteFactor   real

     ,@USRFinishPlanningFactorsTotal  float--decimal(3,1)

      ,@USRGreigePlanningYarnFillWasteFactor  decimal(3,1)

     ,@USRWorstedOrSynthetic   varchar(2)

     ,@YarnML     varchar(2)

     ,@ARFL06     varchar(3)  -- ARFL06 is Loom Type

     ,@USRAutoCreateML60BOMFlag  varchar(1)

     ,@NumberOfComponents   smallint

     ,@TotalDenier    real 

     ,@ML70YarnCount    real  

     ,@USRYarnCategoryYarnCountDenierFactor real

     ,@x     float

     ,@y     float

     ,@z     float

     ,@ARNRLI    smallint   -- ARNRLI is Harness

     ,@StdNbrSectionBeams   int

     ,@USRWarpStyleGroup   varchar(5)

     ,@USRFinishPlanningShrinkageWorkingLoss   float

     ,@USRFinishPlanningShrinkageLoss        float

     ,@USRFinishPlanningWorkingLoss  float

     ,@USRFinishPlanningSecondsPercentage float

     ,@USRGreigePlanningGreigeSecondsPercentage float

     ,@USRGreigeYdsToEstFinishYds  float

     ,@USRYarnDescription   varchar(65)

     ,@USRGreigeYdsToSellableYds  float

     ,@USRControlStyleDescription  varchar(35)

     ,@ARFG10    varchar(3)

     ,@USRControlStyle   varchar(28)

     ,@ARGGCC    float

     ,@ARMFO2    varchar(2)

     ,@USRYarnCategoryTubeColorCode  varchar(2)

    -- 28-Dec-2005

     ,@Bypass_ML30_BOM   varchar(1)

    -- 30-Dec-2005 MtC

     ,@USRTrialDate    datetime

    -- 04-Jan-2006 MtC

     ,@USRFinishEvaluationTempHandStandard varchar(9)

     ,@USRFinishEvaluationFormulaCode varchar(5)

    -- 05-Jan-2006 MDP

     ,@DCFLCS    int

     ,@DCCART    decimal(5,2)  -- Picks nnnnnn.nn

     ,@EndsPicks    float

    -- 09-Jan-2006 MtC

     ,@ARFL07    varchar(3) -- Greige Size Formula, key on USRGreigeSizeFormulaTable

     ,@ARFL08    varchar(3) -- Size Formula Code to be exported to GTEX.

     ,@USRGreigeSizeFormulaCode  int  -- Size Formula Code is a column on the USRGreigeSizeFormulaTable

    -- 12-Jan-2006 MtC

     ,@ARPTTN    varchar(6) -- Dents/Inch

    -- 24-Jan-2006 MDP

     ,@ARFU10    varchar(10)

    -- 26-Jan-2006 MtC

     ,@USRGreigeAirspacePercent  float

     ,@USRControlStyleEstdate  datetime

     ,@Numeric_YYMMDD   int

    -- 27-Jan-2006 MDP

     ,@CreateBom    varchar(1)

    -- 10-Feb-2006 MDP

     ,@USRFTOriginationDate   datetime

    -- 15-Feb-2006 MtC

     ,@TOTAL_PICKS    float

    -- 20-Feb-2006 MtC

     ,@TOTAL_ENDS    float

     

    -- Set the local variables to be equal to the inserted variables from the record to be inserted or updated by user input.

    --

    Select  @Mlivarticolo = Inserted.Mlivarticolo

     ,@Codicecomponente = Inserted.Codicecomponente

     ,@USRCareCode = Inserted.USRCareCode

     ,@ARTAUS = Inserted.ARTAUS

     ,@UpdateUserID = Inserted.OPERATORE

     ,@USREndUseProfileCode = Inserted.USREndUseProfileCode

     ,@USRFinishCode = SUBSTRING(Inserted.Codicecomponente, 7, 3)

     ,@USRFinishDescriptionOverride = USRFinishDescriptionOverride

     ,@ARAGMN = Inserted.ARAGMN

     ,@ARATMN = Inserted.ARATMN

     ,@ARPSGR = Inserted.ARPSGR

     ,@ARDMAT = Inserted.ARDMAT

     ,@ARATMX = Inserted.ARATMX

     ,@USRFillStretchPercentMax = Inserted.USRFillStretchPercentMax

     ,@USRFillStretchPercentMin = Inserted.USRFillStretchPercentMin

     ,@USRFinishedEndsInchMax = Inserted.USRFinishedEndsInchMax

     ,@USRFinishedEndsInchMin = Inserted.USRFinishedEndsInchMin

     ,@USRFinishedPicksInchMax = Inserted.USRFinishedPicksInchMax

     ,@USRFinishedPicksInchMin = Inserted.USRFinishedPicksInchMin

     ,@USRMaxWtOzSqYd = Inserted.USRMaxWtOzSqYd

     ,@USRWarpStretchPercentMax = Inserted.USRWarpStretchPercentMax

     ,@USRWarpStretchPercentMin = Inserted.USRWarpStretchPercentMin

     ,@USRMidWidInches = Inserted.USRMidWidInches

     ,@USRCutWidCM = Inserted.USRCutWidCM

     ,@USRMinWidCM = Inserted.USRMinWidCM

     ,@USRMaxWidCM = Inserted.USRMaxWidCM

     ,@USRMidWidCM = Inserted.USRMidWidCM

     ,@USRMinWtOzLnYd = Inserted.USRMinWtOzLnYd

     ,@USRMaxWtOzLnYd = Inserted.USRMaxWtOzLnYd

     ,@ARPSFI = Inserted.ARPSFI

     ,@USRMinWtGrSqMtr = Inserted.USRMinWtGrSqMtr

     ,@USRMaxWtGrSqMeter = Inserted.USRMaxWtGrSqMeter

     ,@USRMidWtGrSqMeter = Inserted.USRMidWtGrSqMeter

     ,@USRMinWtGrLnMater = Inserted.USRMinWtGrLnMater

     ,@USRMaxWtGrLnMeter = Inserted.USRMaxWtGrLnMeter

     ,@USRMidWtGrLnMeter = Inserted.USRMidWtGrLnMeter

     ,@USRFinishedEndsInchAvg = Inserted.USRFinishedEndsInchAvg

     ,@USRFinishedPicksInchAvg = Inserted.USRFinishedPicksInchAvg

     ,@USRFinishedEndsCMMin = Inserted.USRFinishedEndsCMMin

     ,@USRFinishedEndsCMMax = Inserted.USRFinishedEndsCMMax

     ,@USRFinishedEndsCMAvg = Inserted.USRFinishedEndsCMAvg

     ,@USRFinishedPicksCMMin = Inserted.USRFinishedPicksCMMin

     ,@USRFinishedPicksCMMax = Inserted.USRFinishedPicksCMMax

     ,@USRFinishedPicksCMAvg = Inserted.USRFinishedPicksCMAvg

     ,@USRAverageYarnNumber = Inserted.USRAverageYarnNumber

     ,@USRYarnCategoryActive = Inserted.USRYarnCategoryActive

     ,@ARFG02 = Inserted.ARFG02

     ,@USRCntryOfOrgCode = Inserted.USRCntryOfOrgCode

     ,@Descrizionecomponente = Inserted.Descrizionecomponente

     ,@USRYarnCategoryDyeCode = Inserted.USRYarnCategoryDyeCode

     ,@ARMDMN = Inserted.ARMDMN

     ,@USRYarnCategoryEstablishedDate = Inserted.USRYarnCategoryEstablishedDate

     ,@USRYarnCategoryStandardYdsLb = Inserted.USRYarnCategoryStandardYdsLb

     ,@ARDSBR = Inserted.ARDSBR

     ,@CODICEFORNITORE = Inserted.CODICEFORNITORE

     ,@ARTITL = Inserted.ARTITL

     ,@ARTPTT = Inserted.ARTPTT

     ,@USRYarnCategoryEquivalSingleCount = Inserted.USRYarnCategoryEquivalSingleCount

     ,@ARQU03 = Inserted.ARQU03

     ,@ARFICM = Inserted.ARFICM

     ,@ARINFN = Inserted.ARINFN

     ,@ARAPTT = Inserted.ARAPTT

     ,@USRBeckLoadInPounds = Inserted.USRBeckLoadInPounds

     ,@USRGreigeStopsCatchCord = Inserted.USRGreigeStopsCatchCord

     ,@USRGreigeStopsFill = Inserted.USRGreigeStopsFill

     ,@USRGreigeStopsLeno = Inserted.USRGreigeStopsLeno

     ,@USRGreigeStopsOther = Inserted.USRGreigeStopsOther

     ,@USRGreigeStopsWarp = Inserted.USRGreigeStopsWarp

     ,@USRGreigePlanningYarnStretchFactor = Inserted.USRGreigePlanningYarnStretchFactor

     ,@USRGreigePlanningYarnTakeupFactor = Inserted.USRGreigePlanningYarnTakeupFactor

     ,@USRGreigeDentsInch = Inserted.USRGreigeDentsInch

     ,@USRGreigePlanningStdBeamsPerSet = Inserted.USRGreigePlanningStdBeamsPerSet

     ,@USRGreigePlanningStdLoomBeamLen = Inserted.USRGreigePlanningStdLoomBeamLen

     ,@USRGreigeYarnCategoryRevision01 = Inserted.USRGreigeYarnCategoryRevision01

     ,@USRGreigeYarnCategoryRevision02 = Inserted.USRGreigeYarnCategoryRevision02

     ,@USRGreigeYarnCategoryRevision03 = Inserted.USRGreigeYarnCategoryRevision03

     ,@USRGreigeYarnCategoryRevision04 = Inserted.USRGreigeYarnCategoryRevision04

     ,@USRGreigeYarnCategoryRevision05 = Inserted.USRGreigeYarnCategoryRevision05

     ,@USRGreigeYarnCategoryRevision06 = Inserted.USRGreigeYarnCategoryRevision06

     ,@USRGreigeYarnCategoryRevision07 = Inserted.USRGreigeYarnCategoryRevision07

     ,@USRGreigeYarnCategoryRevision08 = Inserted.USRGreigeYarnCategoryRevision08

     ,@USRGreigeYarnCategoryRevision09 = Inserted.USRGreigeYarnCategoryRevision09

     ,@USRGreigeYarnCategoryRevision10 = Inserted.USRGreigeYarnCategoryRevision10

     ,@USRGreigeYarnCategoryRevision11 = Inserted.USRGreigeYarnCategoryRevision11

     ,@USRGreigeYarnCategoryRevision12 = Inserted.USRGreigeYarnCategoryRevision12

     ,@USRGreigeYarnCategoryRevision13 = Inserted.USRGreigeYarnCategoryRevision13

     ,@USRGreigeYarnCategoryRevision14 = Inserted.USRGreigeYarnCategoryRevision14

     ,@USRGreigeYarnCategoryRevision15 = Inserted.USRGreigeYarnCategoryRevision15

     ,@USRGreigeYarnCategoryRevision16 = Inserted.USRGreigeYarnCategoryRevision16

     ,@USRGreigeYarnCategoryRevision17 = Inserted.USRGreigeYarnCategoryRevision17

     ,@USRGreigeYarnCategoryRevision18 = Inserted.USRGreigeYarnCategoryRevision18 

     ,@USRGreigeYarnCategoryRevision19 = Inserted.USRGreigeYarnCategoryRevision19

     ,@USRGreigeYarnCategoryRevision20 = Inserted.USRGreigeYarnCategoryRevision20

     ,@USRGreigeYarnType01 = Inserted.USRGreigeYarnType01

     ,@USRGreigeYarnType02 = Inserted.USRGreigeYarnType02

     ,@USRGreigeYarnType03 = Inserted.USRGreigeYarnType03

     ,@USRGreigeYarnType04 = Inserted.USRGreigeYarnType04

     ,@USRGreigeYarnType05 = Inserted.USRGreigeYarnType05

     ,@USRGreigeYarnType06 = Inserted.USRGreigeYarnType06

     ,@USRGreigeYarnType07 = Inserted.USRGreigeYarnType07

     ,@USRGreigeYarnType08 = Inserted.USRGreigeYarnType08

     ,@USRGreigeYarnType09 = Inserted.USRGreigeYarnType09

     ,@USRGreigeYarnType10 = Inserted.USRGreigeYarnType10

     ,@USRGreigeYarnType11 = Inserted.USRGreigeYarnType11

     ,@USRGreigeYarnType12 = Inserted.USRGreigeYarnType12

     ,@USRGreigeYarnType13 = Inserted.USRGreigeYarnType13

     ,@USRGreigeYarnType14 = Inserted.USRGreigeYarnType14

     ,@USRGreigeYarnType15 = Inserted.USRGreigeYarnType15

     ,@USRGreigeYarnType16 = Inserted.USRGreigeYarnType16

     ,@USRGreigeYarnType17 = Inserted.USRGreigeYarnType17

     ,@USRGreigeYarnType18 = Inserted.USRGreigeYarnType18

     ,@USRGreigeYarnType19 = Inserted.USRGreigeYarnType19

     ,@USRGreigeYarnType20 = Inserted.USRGreigeYarnType20

     ,@USRGreigeYarnSequence01 = Inserted.USRGreigeYarnSequence01

     ,@USRGreigeYarnSequence02 = Inserted.USRGreigeYarnSequence02

     ,@USRGreigeYarnSequence03 = Inserted.USRGreigeYarnSequence03

     ,@USRGreigeYarnSequence04 = Inserted.USRGreigeYarnSequence04

     ,@USRGreigeYarnSequence05 = Inserted.USRGreigeYarnSequence05

     ,@USRGreigeYarnSequence06 = Inserted.USRGreigeYarnSequence06

     ,@USRGreigeYarnSequence07 = Inserted.USRGreigeYarnSequence07

     ,@USRGreigeYarnSequence08 = Inserted.USRGreigeYarnSequence08

     ,@USRGreigeYarnSequence09 = Inserted.USRGreigeYarnSequence09

     ,@USRGreigeYarnSequence10 = Inserted.USRGreigeYarnSequence10

     ,@USRGreigeYarnSequence11 = Inserted.USRGreigeYarnSequence11

     ,@USRGreigeYarnSequence12 = Inserted.USRGreigeYarnSequence12

     ,@USRGreigeYarnSequence13 = Inserted.USRGreigeYarnSequence13

     ,@USRGreigeYarnSequence14 = Inserted.USRGreigeYarnSequence14

     ,@USRGreigeYarnSequence15 = Inserted.USRGreigeYarnSequence15

     ,@USRGreigeYarnSequence16 = Inserted.USRGreigeYarnSequence16

     ,@USRGreigeYarnSequence17 = Inserted.USRGreigeYarnSequence17

     ,@USRGreigeYarnSequence18 = Inserted.USRGreigeYarnSequence18

     ,@USRGreigeYarnSequence19 = Inserted.USRGreigeYarnSequence19

     ,@USRGreigeYarnSequence20 = Inserted.USRGreigeYarnSequence20

     ,@USRGreigeYarnEndsPicks01 = Inserted.USRGreigeYarnEndsPicks01

     ,@USRGreigeYarnEndsPicks02 = Inserted.USRGreigeYarnEndsPicks02

     ,@USRGreigeYarnEndsPicks03 = Inserted.USRGreigeYarnEndsPicks03

     ,@USRGreigeYarnEndsPicks04 = Inserted.USRGreigeYarnEndsPicks04

     ,@USRGreigeYarnEndsPicks05 = Inserted.USRGreigeYarnEndsPicks05

     ,@USRGreigeYarnEndsPicks06 = Inserted.USRGreigeYarnEndsPicks06

     ,@USRGreigeYarnEndsPicks07 = Inserted.USRGreigeYarnEndsPicks07

     ,@USRGreigeYarnEndsPicks08 = Inserted.USRGreigeYarnEndsPicks08

     ,@USRGreigeYarnEndsPicks09 = Inserted.USRGreigeYarnEndsPicks09

     ,@USRGreigeYarnEndsPicks10 = Inserted.USRGreigeYarnEndsPicks10

     ,@USRGreigeYarnEndsPicks11 = Inserted.USRGreigeYarnEndsPicks11

     ,@USRGreigeYarnEndsPicks12 = Inserted.USRGreigeYarnEndsPicks12

     ,@USRGreigeYarnEndsPicks13 = Inserted.USRGreigeYarnEndsPicks13

     ,@USRGreigeYarnEndsPicks14 = Inserted.USRGreigeYarnEndsPicks14

     ,@USRGreigeYarnEndsPicks15 = Inserted.USRGreigeYarnEndsPicks15

     ,@USRGreigeYarnEndsPicks16 = Inserted.USRGreigeYarnEndsPicks16

     ,@USRGreigeYarnEndsPicks17 = Inserted.USRGreigeYarnEndsPicks17

     ,@USRGreigeYarnEndsPicks18 = Inserted.USRGreigeYarnEndsPicks18

     ,@USRGreigeYarnEndsPicks19 = Inserted.USRGreigeYarnEndsPicks19

     ,@USRGreigeYarnEndsPicks20 = Inserted.USRGreigeYarnEndsPicks20

     ,@USRGreigeBoiloffBeforePicks = Inserted.USRGreigeBoiloffBeforePicks

     ,@USRGreigeBoiloffBeforeWidth = Inserted.USRGreigeBoiloffBeforeWidth

     ,@USRGreigeBoiloffAfterPicks = Inserted.USRGreigeBoiloffAfterPicks

     ,@USRGreigeBoiloffAfterWidth = Inserted.USRGreigeBoiloffAfterWidth

     ,@USRGreigeLoomBeamStyleRevision = Inserted.USRGreigeLoomBeamStyleRevision

     ,@USRCalculatedYardsToWeave = Inserted.USRCalculatedYardsToWeave

     ,@USRExperWeaveReqSampleBeckYds = Inserted.USRExperWeaveReqSampleBeckYds

     ,@USRGreigeExperWeaveRequestStatus = Inserted.USRGreigeExperWeaveRequestStatus

     ,@USRPreparationYards = Inserted.USRPreparationYards

     ,@USRRequestedCutsToWeave = Inserted.USRRequestedCutsToWeave

     ,@USRRequestedYardsToWeave = Inserted.USRRequestedYardsToWeave

     ,@USRYardsForLab = Inserted.USRYardsForLab

     ,@USRExperWeaveReqActualDateDrawReady = Inserted.USRExperWeaveReqActualDateDrawReady

     ,@USRExperWeaveReqActualDateFill = Inserted.USRExperWeaveReqActualDateFill

     ,@USRExperWeaveReqActualDateInLoom = Inserted.USRExperWeaveReqActualDateInLoom

     ,@USRExperWeaveReqActualDateOutOfLoom = Inserted.USRExperWeaveReqActualDateOutOfLoom

     ,@USRExperWeaveReqActualDateShipFirst = Inserted.USRExperWeaveReqActualDateShipFirst

     ,@USRExperWeaveReqActualDateSlashReady = Inserted.USRExperWeaveReqActualDateSlashReady 

     ,@USRExperWeaveReqActualDateWarp = Inserted.USRExperWeaveReqActualDateWarp

     ,@USRExperWeaveReqActualDateWarpReady = Inserted.USRExperWeaveReqActualDateWarpReady

     ,@USRExperWeaveReqScheDateDrawReady = Inserted.USRExperWeaveReqScheDateDrawReady

     ,@USRExperWeaveReqScheDateFill = Inserted.USRExperWeaveReqScheDateFill

     ,@USRExperWeaveReqScheDateInLoom = Inserted.USRExperWeaveReqScheDateInLoom

     ,@USRExperWeaveReqScheDateOutOfLoom = Inserted.USRExperWeaveReqScheDateOutOfLoom

     ,@USRExperWeaveReqScheDateShipFirst = Inserted.USRExperWeaveReqScheDateShipFirst

     ,@USRExperWeaveReqScheDateSlashReady = Inserted.USRExperWeaveReqScheDateSlashReady

     ,@USRExperWeaveReqScheDateWarp = Inserted.USRExperWeaveReqScheDateWarp

     ,@USRExperWeaveReqScheDateWarpReady = Inserted.USRExperWeaveReqScheDateWarpReady

     ,@ARCOMP = inserted.ARCOMP

     ,@CODICELINEA = inserted.CODICELINEA

     ,@TIPOPRODOTTO = inserted.TIPOPRODOTTO

     ,@ARFLO2 = Inserted.ARFLO2

     ,@USRPieceDyeStockDye = Inserted.USRPieceDyeStockDye  

     ,@ARGGCC = Inserted.ARGGCC

     ,@USRFinishPlanningFactorsTotal = Inserted.USRFinishPlanningFactorsTotal

     ,@USRGreigePlanningYarnNetFactor = Inserted.USRGreigePlanningYarnNetFactor

     ,@USRGreigePlanningYarnFillWasteFactor = Inserted.USRGreigePlanningYarnFillWasteFactor

     ,@CODICEDIVISIONE = Inserted.CODICEDIVISIONE

     ,@ARFL06 = Inserted.ARFL06

     ,@USRAutoCreateML60BOMFlag = Inserted.USRAutoCreateML60BOMFlag

     ,@Yarn01Ply = Inserted.USRYarnProcessedSinglePlys01

     ,@Yarn02Ply = Inserted.USRYarnProcessedSinglePlys02

     ,@Yarn03Ply = Inserted.USRYarnProcessedSinglePlys03

     ,@Yarn04Ply = Inserted.USRYarnProcessedSinglePlys04

     ,@Yarn05Ply = Inserted.USRYarnProcessedSinglePlys05

     ,@Yarn06Ply = Inserted.USRYarnProcessedSinglePlys06

     ,@ARNRLI = Inserted.ARNRLI

     ,@StdNbrSectionBeams = Inserted.USRGreigePlanningStdNbrOfSectionBeams

     ,@USRWarpStyleGroup = Inserted.USRWarpStyleGroup

     ,@USRFinishPlanningShrinkageLoss = Inserted.USRFinishPlanningShrinkageLoss

     ,@USRFinishPlanningWorkingLoss = Inserted.USRFinishPlanningWorkingLoss

     ,@USRFinishPlanningSecondsPercentage = Inserted.USRFinishPlanningSecondsPercentage

     ,@USRGreigePlanningGreigeSecondsPercentage = Inserted.USRGreigePlanningGreigeSecondsPercentage

     ,@USRGreigeCutLength = Inserted.USRGreigeCutLength

     ,@USRYarnDescription = Inserted.USRYarnDescription

     ,@ARDSTD = Inserted.ARDSTD

     ,@USRControlStyleDescription = Inserted.USRControlStyleDescription

     ,@ARFG10 = Inserted.ARFG10

     ,@USRControlStyle = Inserted.USRControlStyle

     ,@USRCreationDate = Inserted.USRCreationDate

     ,@USRYarnCategoryTubeColorCode = Inserted.USRYarnCategoryTubeColorCode

    -- 30-Dec-2005 MtC

     ,@USRTrialDate = Inserted.USRTrialDate

    -- 04-Jan-2006 MtC

     ,@USRFinishEvaluationTempHandStandard = Inserted.USRFinishEvaluationTempHandStandard

     ,@USRFinishEvaluationFormulaCode = Inserted.USRFinishEvaluationFormulaCode

     ,@ARINCM = Inserted.ARINCM

    -- 09-Jan-2006

     ,@ARFL07 = Inserted.ARFL07

    -- 12-Jan-2006 MtC

     ,@ARPTTN = Inserted.ARPTTN

    -- 16-Jan-2006 MtC

     ,@USRCutsBatchRoll = Inserted.USRCutsBatchRoll

    -- 24-Jan-2006 MDP

     ,@ARFU10 = Inserted.ARFU10

    -- 26-Jan-2006 MtC

     ,@USRGreigeAirspacePercent = Inserted.USRGreigeAirspacePercent

     ,@USRControlStyleEstDate = Inserted.USRControlStyleEstDate

    -- 10-Feb-2006 MDP

     ,@USRFTOriginationDate = Inserted.USRFinishTrailOriginationDate

    From Inserted

     

    -- If doing an Insert or Copy (which is an insert) bypass the checks for locks, mandatory columns and operator checks.

    --

    If Update (Mlivarticolo) or Update(Codicecomponente)

    GOTO Process

    -- If CDS is locking or unlocking the record then do not update.

    --

    If Update (ID_USER_LOCK_PRODUCT) 

    GoTo Exit_Trigger

    -- If CDS is checking for mandatory fields to be exported to GTEX then do not update.

    --

    If Update (STATUSXHOST)

    GoTo Exit_Trigger

    -- If CDS is updating mandatory fields with default values then do not update.

    --

    If Update (ARALIV) -- Sales Tax Type

    GoTo Exit_Trigger

    -- If CDS is updating the Operator with the current User ID then don't update.

    --

    --If Update(OPERATORE)

    --GoTo Exit_Trigger

    Process:

    -- 10-Feb-2006 MDP

    -- If Division is not entered then set default for Division as 'BA' for all MacroLevels

    --

    If @CODICEDIVISIONE is Null or @CODICEDIVISIONE = ''

     Set @CODICEDIVISIONE = 'BA'

    -- Check Macro Level, Mlivarticolo, to determine processing needs.

    --

    IF @Mlivarticolo = '80' -- Purchased Yarns

     GoTo Process_ML80

    Else IF @Mlivarticolo = '70' -- Spun Yarns

     GoTo Process_ML70

    Else IF @Mlivarticolo = '60' -- Processed Synthetic Yarns

     GoTo Process_ML60

    Else IF @Mlivarticolo = '30' -- Loom Beams

     GoTo Process_ML30

    Else IF @Mlivarticolo = '20' -- Greige Style

     GoTo Process_ML20

    Else IF @Mlivarticolo = 'GT' -- Greige Trial

     GoTo Process_MLGT

    Else IF @Mlivarticolo = '2M' -- Control Style

     GoTo Process_ML2M

    Else IF @Mlivarticolo = '10' -- Finish Style

     GoTo Process_ML10

    Else IF @Mlivarticolo = 'FT' -- Finish Trial

     GoTo Process_MLFT

    Else

     GoTo Exit_Trigger

    -----------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------

    Process_ML80:  -- Purchased Yarns

    -- Perform calculations and data moves for ML 80, Purchased Yarns.

    -- Set short description to be equal to the first 15 characters of USRYarnDescription.

    -- Set extended description equal to the first 35 characters of the USRYarnDescription.

    --

    Set @Descrizionecomponente = SUBSTRING (@USRYarnDescription, 1, 35)

    Set @ARDSBR = SUBSTRING (@USRYarnDescription, 1, 15)

    -- If the manufacture/purchase flag is null then set to 'P'.

    --

    Select @ARTPPD = USRVendorTable.USRVendorMakeBuyIndicator

    From USRVendorTable

    Where USRVendorTable.CODICEFORNITORE = @CODICEFORNITORE

    If @ARTPPD is Null or @ARTPPD = ''

     Set @ARTPPD = 'P'

    -- If actual denier is greater than 0 the calculate Standard yards/pound.

    --

    --If @ARTITL > 0

    -- Set @ARMDMN = ROUND (4464600 / @ARTITL, 0)

    --Else

    -- Set @ARMDMN = 0

    If @ARTITL > 0

     Set @USRYarnCategoryStandardYdsLb = ROUND (4464600 / @ARTITL, 0)

    Else

     Set @USRYarnCategoryStandardYdsLb = 0

    --If Creation Date is null then set to the current system date.

    --

    If @USRCreationDate is Null or @USRCreationDate = ''

     Set @USRCreationDate = CONVERT(CHAR(12), GETDATE(), 101)

    -- If Established Date is null then set to the current system date.

    --

    If @USRYarnCategoryEstablishedDate is Null or  @USRYarnCategoryEstablishedDate = ''

     Set @USRYarnCategoryEstablishedDate = CONVERT(CHAR(12), GETDATE(), 101)

    -- If doing an Insert or Copy (which is an insert) for ML 80,

    -- then check to see if the Yarn Revision entered by the user already exist in the USRGreigeYarnCategoryRevisionTable.

    --

    If Update (Mlivarticolo) or Update(Codicecomponente)

     Begin

      -- Check to see if the Yarn Revision entered by the user already exist in the USRGreigeYarnCategoryRevisionTable.

      --

      If Exists  (Select 'Check to see if the yarn revision entered for ML 80 already exist in table USRGreigeYarnCategoryRevisionTable'

        From USRGreigeYarnCategoryRevisionTable

        Where SUBSTRING (USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision, 8, 10) =

         SUBSTRING (@Codicecomponente, 8, 10)

        And SUBSTRING (@Codicecomponente, 8, 10) <> '0000000000'

       &nbsp

        Begin

         RAISERROR ('A duplicate yarn revision was found and a rollback of this transaction will occur.', 11, 1)

         ROLLBACK TRANSACTION

         GoTo Exit_Trigger

        End

      Else

       -- If a unique Yarn Revision was entered, insert an entry in the  USRGreigeYarnCategoryRevisionTable

       -- using data from the CMSARTICOLI table for ML 80.

       --

       Begin

        Insert Into USRGreigeYarnCategoryRevisionTable

          (USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionActive

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionApprCode

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionCountryOfOrigin

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionDesc

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionDyeCode

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionEstDate

         &nbsp

        Select   @Codicecomponente

          ,@USRYarnCategoryActive

          ,@ARFG02

          ,@USRCntryOfOrgCode

          ,@USRYarnDescription

          ,@USRYarnCategoryDyeCode

          ,@USRYarnCategoryStandardYdsLb

          ,@USRYarnCategoryEstablishedDate

        From  CMSARTICOLI

        Where  CMSARTICOLI.Mlivarticolo = @Mlivarticolo

          and

          CMSARTICOLI.Codicecomponente = @Codicecomponente

        GoTo Skip_ML80_USRGreigeYarnCategoryRevisionTable_Update

       End

     End

    -- If the user is modifying a row for ML 80 then perform an update.

    --

    Update USRGreigeYarnCategoryRevisionTable

    Set USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision = @Codicecomponente

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionActive = @USRYarnCategoryActive

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionApprCode = @ARFG02

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionCountryOfOrigin = @USRCntryOfOrgCode

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionDesc = @USRYarnDescription

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionDyeCode = @USRYarnCategoryDyeCode

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb = @USRYarnCategoryStandardYdsLb

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionEstDate = @USRYarnCategoryEstablishedDate

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision = @Codicecomponente

    Skip_ML80_USRGreigeYarnCategoryRevisionTable_Update:

    Update CMSARTICOLI

    Set CMSARTICOLI.ARDSBR = @ARDSBR,

     CMSARTICOLI.Descrizionecomponente = @Descrizionecomponente,

     CMSARTICOLI.ARTPPD = @ARTPPD,

     CMSARTICOLI.USRYarnCategoryStandardYdsLb = @USRYarnCategoryStandardYdsLb,

     CMSARTICOLI.USRCreationDate = @USRCreationDate,

     CMSARTICOLI.USRYarnCategoryEstablishedDate = @USRYarnCategoryEstablishedDate,

     CMSARTICOLI.UM = 'LB'

     ,CMSARTICOLI.ARCDLV = 800

     ,CMSARTICOLI.USERCRT = @UpdateUserID

    -- 10-Feb-2006 MDP

     ,CMSARTICOLI.CODICEDIVISIONE = @CODICEDIVISIONE

    -- Defaults

     ,ARALIV = 'NO'

     ,ARDCLS = 'N'

     ,ARDISP = 'Y' 

     ,ARESCL = 'N'

     ,ARFLBC = 'N'

     ,ARRGLO = 'D'

     ,ARRGMG = '1'

     ,ARTPGS = 'P'

     ,ARTPTT = 'TD'

    Where CMSARTICOLI.Mlivarticolo = @Mlivarticolo

     and

     CMSARTICOLI.Codicecomponente = @Codicecomponente

    Set @Numeric_YYMMDD = convert (varchar, @USRYarnCategoryEstablishedDate, 12)

    -- Update the needed data in the INFAG00F table if the record already exist.

    --

    Update INFAG00F

    Set  INFAG00F.IGTPDC = 'AR'

     ,INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

     ,INFAG00F.IGCDP1 = ''

     ,INFAG00F.IGCDP2 = ''

     ,INFAG00F.IGTPFM = 'LAI'

     ,INFAG00F.IGCODB = @Numeric_YYMMDD

    Where INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

    -- Insert needed data into the INFAG00F table if the record does not exist.

    --

    Insert Into INFAG00F

      (IGTPDC  -- always equal to 'AR'

      ,IGCDEL  -- 'ML' + 'Code of the Componente'

      ,IGCDP1  -- always equal to blank

      ,IGCDP2  -- always equal to blank

      ,IGTPFM  -- always equal to 'LAI'

      ,IGCODB  -- Established Date of the Componente

     &nbsp

    Select  'AR'

      ,MLIVARTICOLO + CODICECOMPONENTE

      ,''

      ,''

      ,'LAI'

      ,@Numeric_YYMMDD

    From  CMSARTICOLI

    Where  CMSARTICOLI.Mlivarticolo = @Mlivarticolo

      and

      CMSARTICOLI.Codicecomponente = @Codicecomponente

    and not exists

      (Select ''

      From INFAG00F

      Where INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

     &nbsp

    GoTo Exit_Trigger

    -----------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------

    Process_ML70:  -- Spun Yarns

    -- Perform calculations and data moves for ML 70, Purchased Yarns.

    -- Set short description to be equal to the first 15 characters of USRYarnDescription.

    -- Set extended description equal to the first 35 characters of the USRYarnDescription.

    --

    Set @Descrizionecomponente = SUBSTRING (@USRYarnDescription, 1, 35)

    Set @ARDSBR = SUBSTRING (@USRYarnDescription, 1, 15)

    -- If the manufacture/purchase flag is null then set to 'P'.

    --

    Select @ARTPPD = USRVendorTable.USRVendorMakeBuyIndicator

    From USRVendorTable

    Where USRVendorTable.CODICEFORNITORE = @CODICEFORNITORE

    If @ARTPPD is Null or @ARTPPD = ''

     Set @ARTPPD = 'P'

    -- Select Yarn Count Unit Equivalence Factor based on the Yarn Count Unit.

    -- If Equival Single Count is greater than 0 the calculate Standard yards/pound.

    --

    Select @USRYarnCategoryYarnCountUnitEquivalFactor = USRYarnCategoryYarnCountUnitTable.USRYarnCategoryYarnCountUnitEquivalFactor

    From USRYarnCategoryYarnCountUnitTable

    Where USRYarnCategoryYarnCountUnitTable.ARTPTT = @ARTPTT

    If @USRYarnCategoryEquivalSingleCount > 0

     Set @USRYarnCategoryStandardYdsLb = ROUND (@USRYarnCategoryYarnCountUnitEquivalFactor * @USRYarnCategoryEquivalSingleCount, 0)

    Else

     Set @USRYarnCategoryStandardYdsLb = 0

    --If Creation Date is null then set to the current system date.

    --

    If @USRCreationDate is Null or @USRCreationDate = ''

     Set @USRCreationDate = CONVERT(CHAR(12), GETDATE(), 101)

    -- If Established Date is null then set to the current system date.

    --

    If @USRYarnCategoryEstablishedDate is Null or  @USRYarnCategoryEstablishedDate = ''

     Set @USRYarnCategoryEstablishedDate = CONVERT(CHAR(12), GETDATE(), 101)

    -- If doing an Insert or Copy (which is an insert) for ML 70,

    -- then check to see if the Yarn Revision entered by the user already exist in the USRGreigeYarnCategoryRevisionTable.

    --

    If Update (Mlivarticolo) or Update(Codicecomponente)

     Begin

      -- Check to see if the Yarn Revision entered by the user already exist in the USRGreigeYarnCategoryRevisionTable.

      --

      If Exists  (Select 'Check to see if the yarn revision entered for ML 70 already exist in table USRGreigeYarnCategoryRevisionTable'

        From USRGreigeYarnCategoryRevisionTable

        Where SUBSTRING (USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision, 8, 10) =

         SUBSTRING (@Codicecomponente, 8, 10)

        And SUBSTRING (@Codicecomponente, 8, 10) <> '0000000000'

       &nbsp

        Begin

         RAISERROR ('A duplicate yarn revision was found and a rollback of this transaction will occur.', 11, 1)

         ROLLBACK TRANSACTION

         GoTo Exit_Trigger

        End

      Else

       -- If a unique Yarn Revision was entered, insert an entry in the  USRGreigeYarnCategoryRevisionTable

       -- using data from the CMSARTICOLI table for ML 70.

       --

       Begin

        Insert Into USRGreigeYarnCategoryRevisionTable

          (USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionActive

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionApprCode

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionCountryOfOrigin

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionDesc

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionDyeCode

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionEstDate

         &nbsp

        Select  @Codicecomponente

          ,@USRYarnCategoryActive

          ,@ARFG02

          ,@USRCntryOfOrgCode

          ,@USRYarnDescription

          ,@USRYarnCategoryDyeCode

          ,@USRYarnCategoryStandardYdsLb

          ,@USRYarnCategoryEstablishedDate

        From  CMSARTICOLI

        Where  CMSARTICOLI.Mlivarticolo = @Mlivarticolo

          and

          CMSARTICOLI.Codicecomponente = @Codicecomponente

        GoTo Skip_ML70_USRGreigeYarnCategoryRevisionTable_Update

       End

     End

    -- If the user is modifying a row for ML 70 then perform an update.

    --

    Update USRGreigeYarnCategoryRevisionTable

    Set  USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision = @Codicecomponente

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionActive = @USRYarnCategoryActive

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionApprCode = @ARFG02

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionCountryOfOrigin = @USRCntryOfOrgCode

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionDesc = @USRYarnDescription

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionDyeCode = @USRYarnCategoryDyeCode

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb = @USRYarnCategoryStandardYdsLb

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionEstDate = @USRYarnCategoryEstablishedDate

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision = @Codicecomponente

    Skip_ML70_USRGreigeYarnCategoryRevisionTable_Update:

    Update CMSARTICOLI

    Set CMSARTICOLI.ARDSBR = @ARDSBR

     ,CMSARTICOLI.Descrizionecomponente = @Descrizionecomponente

     ,CMSARTICOLI.ARTPPD = @ARTPPD

     ,CMSARTICOLI.USRYarnCategoryStandardYdsLb = @USRYarnCategoryStandardYdsLb

     ,CMSARTICOLI.USRCreationDate = @USRCreationDate

     ,CMSARTICOLI.USRYarnCategoryEstablishedDate = @USRYarnCategoryEstablishedDate

     ,CMSARTICOLI.UM = 'LB'

     ,CMSARTICOLI.ARCDLV = 700

     ,CMSARTICOLI.USERCRT = @UpdateUserID

    -- 10-Feb-2006 MDP

     ,CMSARTICOLI.CODICEDIVISIONE = @CODICEDIVISIONE

    -- Defaults

     ,ARALIV = 'NO'

     ,ARDCLS = 'N'

     ,ARDISP = 'Y' 

     ,ARESCL = 'N'

     ,ARFLBC = 'N'

     ,ARRGLO = 'D'

     ,ARRGMG = '1'

     ,ARTPGS = 'P'

    Where CMSARTICOLI.Mlivarticolo = @Mlivarticolo

     and

     CMSARTICOLI.Codicecomponente = @Codicecomponente

    Set @Numeric_YYMMDD = convert (varchar, @USRYarnCategoryEstablishedDate, 12)

    -- Update the needed data in the INFAG00F table if the record already exist.

    --

    Update INFAG00F

    Set  INFAG00F.IGTPDC = 'AR'

     ,INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

     ,INFAG00F.IGCDP1 = ''

     ,INFAG00F.IGCDP2 = ''

     ,INFAG00F.IGTPFM = 'LAI'

     ,INFAG00F.IGCODK = @USRYarnCategoryTubeColorCode

     ,INFAG00F.IGCODB = @Numeric_YYMMDD

    Where INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

    -- Insert the needed data into the INFAG00F table if the record does not exist.

    --

    Insert Into INFAG00F

      (IGTPDC

      ,IGCDEL

      ,IGCDP1

      ,IGCDP2

      ,IGTPFM

      ,IGCODK

      ,IGCODB

     &nbsp

    Select  'AR'

      ,MLIVARTICOLO+CODICECOMPONENTE

      ,''

      ,''

      ,'LAI'

      ,@USRYarnCategoryTubeColorCode

      ,@Numeric_YYMMDD

    From  CMSARTICOLI

    Where  CMSARTICOLI.Mlivarticolo = @Mlivarticolo

      and

      CMSARTICOLI.Codicecomponente = @Codicecomponente

    and not exists

      (Select ''

      From INFAG00F

      Where INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

     &nbsp

    GoTo Exit_Trigger

    -----------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------

    Process_ML60:  -- Processed Yarns

    -- Perform calculations and data moves for ML 60, Purchased Yarns.

    -- Set short description to be equal to the first 15 characters of USRYarnDescription.

    -- Set extended description equal to the first 35 characters of the USRYarnDescription.

    --

    Set @Descrizionecomponente = SUBSTRING (@USRYarnDescription, 1, 35)

    Set @ARDSBR = SUBSTRING (@USRYarnDescription, 1, 15)

    -- If the manufacture/purchase flag is null then set to 'M'.

    --

    Select @ARTPPD = USRVendorTable.USRVendorMakeBuyIndicator

    From USRVendorTable

    Where USRVendorTable.CODICEFORNITORE = @CODICEFORNITORE

    If @ARTPPD is Null or @ARTPPD = ''

     Set @ARTPPD = 'P'

    -- If actual denier is greater than 0 the calculate Standard yards/pound.

    --

    If @ARTITL > 0

     Set @USRYarnCategoryStandardYdsLb = ROUND (4464600 / @ARTITL, 0)

    Else

     Set @USRYarnCategoryStandardYdsLb = 0

    --If Creation Date is null then set to the current system date.

    --

    If @USRCreationDate is Null or @USRCreationDate = ''

     Set @USRCreationDate = CONVERT(CHAR(12), GETDATE(), 101)

    -- If Established Date is null then set to the current system date.

    --

    If @USRYarnCategoryEstablishedDate is Null or  @USRYarnCategoryEstablishedDate = ''

     Set @USRYarnCategoryEstablishedDate = CONVERT(CHAR(12), GETDATE(), 101)

    -- If doing an Insert or Copy (which is an insert) for ML 60,

    -- then check to see if the Yarn Revision entered by the user already exist in the USRGreigeYarnCategoryRevisionTable.

    If Update (Mlivarticolo) or Update(Codicecomponente)

     Begin

      -- Check to see if the Yarn Revision entered by the user already exist in the USRGreigeYarnCategoryRevisionTable.

      --

      If Exists  (Select 'Check to see if the yarn revision entered for ML 60 already exist in table USRGreigeYarnCategoryRevisionTable'

        From USRGreigeYarnCategoryRevisionTable

        Where SUBSTRING (USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision, 8, 10) =

         SUBSTRING (@Codicecomponente, 8, 10)

        And SUBSTRING (@Codicecomponente, 8, 10) <> '0000000000'

       &nbsp

        Begin

         RAISERROR ('A duplicate yarn revision was found and a rollback of this transaction will occur.', 11, 1)

         ROLLBACK TRANSACTION

         GoTo Exit_Trigger

        End

      Else

       -- If a unique Yarn Revision was entered, insert an entry in the  USRGreigeYarnCategoryRevisionTable

       -- using data from the CMSARTICOLI table for ML 60.

       --

       Begin

        Insert Into USRGreigeYarnCategoryRevisionTable

          (USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionActive

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionApprCode

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionCountryOfOrigin

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionDesc

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionDyeCode

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

          ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionEstDate

         &nbsp

        Select   @Codicecomponente

          ,@USRYarnCategoryActive

          ,@ARFG02

          ,@USRCntryOfOrgCode

          ,@USRYarnDescription

          ,@USRYarnCategoryDyeCode

          ,@USRYarnCategoryStandardYdsLb

          ,@USRYarnCategoryEstablishedDate

        From  CMSARTICOLI

        Where  CMSARTICOLI.Mlivarticolo = @Mlivarticolo

          and

          CMSARTICOLI.Codicecomponente = @Codicecomponente

        GoTo Skip_ML60_USRGreigeYarnCategoryRevisionTable_Update

       End

     End

    -- If the user is modifying a row for ML 60 then perform an update.

    --

    Update USRGreigeYarnCategoryRevisionTable

    Set  USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision = @Codicecomponente

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionActive = @USRYarnCategoryActive

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionApprCode = @ARFG02

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionCountryOfOrigin = @USRCntryOfOrgCode

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionDesc = @USRYarnDescription

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionDyeCode = @USRYarnCategoryDyeCode

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb = @USRYarnCategoryStandardYdsLb

     ,USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionEstDate = @USRYarnCategoryEstablishedDate

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision = @Codicecomponente

    Skip_ML60_USRGreigeYarnCategoryRevisionTable_Update:

    Update CMSARTICOLI

    Set  CMSARTICOLI.ARDSBR = @ARDSBR

     ,CMSARTICOLI.Descrizionecomponente = @Descrizionecomponente

     ,CMSARTICOLI.ARTPPD = @ARTPPD

     ,CMSARTICOLI.USRYarnCategoryStandardYdsLb = @USRYarnCategoryStandardYdsLb

     ,CMSARTICOLI.USRCreationDate = @USRCreationDate

     ,CMSARTICOLI.USRYarnCategoryEstablishedDate = @USRYarnCategoryEstablishedDate

     ,CMSARTICOLI.ARMDMN = @ARMDMN

     ,CMSARTICOLI.UM = 'LB'

     ,CMSARTICOLI.ARCDLV = 600

     ,CMSARTICOLI.USERCRT = @UpdateUserID

    -- 10-Feb-2006 MDP

     ,CMSARTICOLI.CODICEDIVISIONE = @CODICEDIVISIONE

    -- Defaults

     ,ARALIV = 'NO'

     ,ARDCLS = 'N'

     ,ARDISP = 'Y' 

     ,ARESCL = 'N'

     ,ARFLBC = 'N'

     ,ARRGLO = 'D'

     ,ARRGMG = '1'

     ,ARTPGS = 'P'

     ,ARTPTT = 'TD'

    Where CMSARTICOLI.Mlivarticolo = @Mlivarticolo

     and

     CMSARTICOLI.Codicecomponente = @Codicecomponente

    Set @Numeric_YYMMDD = convert (varchar, @USRYarnCategoryEstablishedDate, 12)

    -- Update the needed data in the INFAG00F table if the record already exist.

    --

    Update INFAG00F

    Set  INFAG00F.IGTPDC = 'AR'

     ,INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

     ,INFAG00F.IGCDP1 = ''

     ,INFAG00F.IGCDP2 = ''

     ,INFAG00F.IGTPFM = 'LAI'

     ,INFAG00F.IGCODK = @USRYarnCategoryTubeColorCode

     ,INFAG00F.IGCODB = @Numeric_YYMMDD

    Where INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

    -- Insert the tube color (IGCODK) into the INFAG00F table if the record does not exist.

    --

    Insert Into INFAG00F

      (IGTPDC

      ,IGCDEL

      ,IGCDP1

      ,IGCDP2

      ,IGTPFM

      ,IGCODK

      ,IGCODB

     &nbsp

    Select  'AR'

      ,MLIVARTICOLO+CODICECOMPONENTE

      ,''

      ,''

      ,'LAI'

      ,@USRYarnCategoryTubeColorCode

      ,@Numeric_YYMMDD

    From  CMSARTICOLI

    Where  CMSARTICOLI.Mlivarticolo = @Mlivarticolo

      and

      CMSARTICOLI.Codicecomponente = @Codicecomponente

    and not exists

      (Select ''

      From INFAG00F

      Where INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

     &nbsp

    -- ML 60 Bill of Material Processing

    -- DELETE all existing BOM Detail and Header Records for the Product

    If exists

    (Select 1 

    From TESTATADISTINTA    

     where TESTATADISTINTA.MLIVARTICOLO = '60'

     and TESTATADISTINTA.CODICEARTICOLO = @Codicecomponente)

     BEGIN

      Delete

       From TESTATADISTINTA

       where TESTATADISTINTA.MLIVARTICOLO = '60'

       and TESTATADISTINTA.CODICEARTICOLO = @Codicecomponente

     END

    If exists

    (Select 1 

    From COMPONENTIXARTICOLO

     where COMPONENTIXARTICOLO.MLIVARTICOLO = '60'

     and COMPONENTIXARTICOLO.CODICEARTICOLO = @Codicecomponente)

     BEGIN

      Delete

       From COMPONENTIXARTICOLO

       where COMPONENTIXARTICOLO.MLIVARTICOLO = '60'

       and COMPONENTIXARTICOLO.CODICEARTICOLO = @Codicecomponente

     END

    -- If the product is made (manufactured) prepare the BOM Header and Detail

    If @ARTPPD = 'M'

     GOTO Check_Auto_Create_Flag

    Else

     GOTO Exit_Trigger

    Check_Auto_Create_Flag:

    If @USRAutoCreateML60BOMFlag = 'N'

     GOTO Exit_Trigger

    BOM_Process_ML60:

    Set @NumberOfComponents = 0

    Set @TotalDenier = 0

    -- Is there only one component? Then bypass the calculations & set LBS-Per = 1.

    If @USRGreigeYarnCategoryRevision01 > ' '

    Set @NumberOfComponents = @NumberOfComponents + 1

    If @USRGreigeYarnCategoryRevision02 > ' '

    Set @NumberOfComponents = @NumberOfComponents + 1

    If @USRGreigeYarnCategoryRevision03 > ' '

    Set @NumberOfComponents = @NumberOfComponents + 1

    If @USRGreigeYarnCategoryRevision04 > ' '

    Set @NumberOfComponents = @NumberOfComponents + 1

    If @USRGreigeYarnCategoryRevision05 > ' '

    Set @NumberOfComponents = @NumberOfComponents + 1

    If @USRGreigeYarnCategoryRevision06 > ' '

    Set @NumberOfComponents = @NumberOfComponents + 1

    If @NumberOfComponents = 0

    GOTO Exit_Trigger

    -- Get ML of the Component Yarns

    If @USRGreigeYarnCategoryRevision01 > ' '

    Begin

     If exists

     (Select 1 

     From Cmsarticoli    

      where Cmsarticoli.Mlivarticolo = '60'

      and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision01)

      Begin

       Set @Yarn01ML = '60'

       Set @Yarn01Code = @USRGreigeYarnCategoryRevision01

       If @NumberOfComponents = 1

        Begin

         Set @FABBISOGNO01 = 1

         GOTO ML60_BOM_Header_Detail_Processing

        End

       Else

        Begin

         Select @Yarn01Denier = Cmsarticoli.ARTITL

         From Cmsarticoli    

          where Cmsarticoli.Mlivarticolo = '60'

          and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision01

         Set @Yarn01PlyDenier = @Yarn01Ply * @Yarn01Denier

         Set @TotalDenier = @TotalDenier + @Yarn01PlyDenier

        End

      End

     Else

     Begin

      If exists

      (Select 1 

      From Cmsarticoli    

       where Cmsarticoli.Mlivarticolo = '70'

       and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision01)

       Begin

        Set @Yarn01ML = '70'

        Set @Yarn01Code = @USRGreigeYarnCategoryRevision01

        If @NumberOfComponents = 1

         Begin

          Set @FABBISOGNO01 = 1

          GOTO ML60_BOM_Header_Detail_Processing

         End

        Else

         Begin

          Select @ML70YarnCount = Cmsarticoli.ARTITL

           ,@ARTPTT = Cmsarticoli.ARTPTT

          From Cmsarticoli    

           where Cmsarticoli.Mlivarticolo = '70'

           and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision01

          Select @USRYarnCategoryYarnCountUnitEquivalFactor = USRYarnCategoryYarnCountUnitTable.USRYarnCategoryYarnCountUnitEquivalFactor

           ,@USRYarnCategoryYarnCountDenierFactor = USRYarnCategoryYarnCountUnitTable.USRYarnCategoryYarnCountDenierFactor

          From USRYarnCategoryYarnCountUnitTable

           Where USRYarnCategoryYarnCountUnitTable.ARTPTT = @ARTPTT

          If @ML70YarnCount > 0

           Begin

            Set @Yarn01Denier = @USRYarnCategoryYarnCountDenierFactor / @ML70YarnCount

            Set @Yarn01PlyDenier = @Yarn01Ply * @Yarn01Denier

            Set @TotalDenier = @TotalDenier + @Yarn01PlyDenier

           End

          Else

           Set @Yarn01PlyDenier = 0

         End

       End

      Else

       Begin

        If exists

        (Select 1 

        From Cmsarticoli    

         where Cmsarticoli.Mlivarticolo = '80'

         and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision01)

        Begin

         Set @Yarn01ML = '80'

         Set @Yarn01Code = @USRGreigeYarnCategoryRevision01

         If @NumberOfComponents = 1

          Begin

           Set @FABBISOGNO01 = 1

           GOTO ML60_BOM_Header_Detail_Processing

          End

         Else

          Begin

           Select @Yarn01Denier = Cmsarticoli.ARTITL

           From Cmsarticoli    

            where Cmsarticoli.Mlivarticolo = '80'

            and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision01

           Set @Yarn01PlyDenier = @Yarn01Ply * @Yarn01Denier

           Set @TotalDenier = @TotalDenier + @Yarn01PlyDenier

          End

        End    

        Else

         Begin

          Set @Yarn01ML = 'NO'

          Set @Yarn01Code = @USRGreigeYarnCategoryRevision01

          Set @Yarn01PlyDenier = 0

         End

       End

     End

    End

    If @USRGreigeYarnCategoryRevision02 > ' '

    Begin

     If exists

     (Select 1 

     From Cmsarticoli    

      where Cmsarticoli.Mlivarticolo = '60'

      and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision02)

      Begin

       Set @Yarn02ML = '60'

       Set @Yarn02Code = @USRGreigeYarnCategoryRevision02

       If @NumberOfComponents = 1

        Begin

         Set @FABBISOGNO02 = 1

         GOTO ML60_BOM_Header_Detail_Processing

        End

       Else

        Begin

         Select @Yarn02Denier = Cmsarticoli.ARTITL

         From Cmsarticoli    

          where Cmsarticoli.Mlivarticolo = '60'

          and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision02

         Set @Yarn02PlyDenier = @Yarn02Ply * @Yarn02Denier

         Set @TotalDenier = @TotalDenier + @Yarn02PlyDenier

        End

      End

     Else

     Begin

      If exists

      (Select 1 

      From Cmsarticoli    

       where Cmsarticoli.Mlivarticolo = '70'

       and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision02)

       Begin

        Set @Yarn02ML = '70'

        Set @Yarn02Code = @USRGreigeYarnCategoryRevision02

        If @NumberOfComponents = 1

         Begin

          Set @FABBISOGNO02 = 1

          GOTO ML60_BOM_Header_Detail_Processing

         End

        Else

         Begin

          Select @ML70YarnCount = Cmsarticoli.ARTITL

           ,@ARTPTT = Cmsarticoli.ARTPTT

          From Cmsarticoli    

           where Cmsarticoli.Mlivarticolo = '70'

           and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision02

          Select @USRYarnCategoryYarnCountUnitEquivalFactor = USRYarnCategoryYarnCountUnitTable.USRYarnCategoryYarnCountUnitEquivalFactor

           ,@USRYarnCategoryYarnCountDenierFactor = USRYarnCategoryYarnCountUnitTable.USRYarnCategoryYarnCountDenierFactor

          From USRYarnCategoryYarnCountUnitTable

           Where USRYarnCategoryYarnCountUnitTable.ARTPTT = @ARTPTT

          If @ML70YarnCount > 0

           Begin

            Set @Yarn02Denier = @USRYarnCategoryYarnCountDenierFactor / @ML70YarnCount

            Set @Yarn02PlyDenier = @Yarn02Ply * @Yarn02Denier

            Set @TotalDenier = @TotalDenier + @Yarn02PlyDenier

           End

          Else

           Set @Yarn02PlyDenier = 0

         End

       End

      Else

       Begin

        If exists

        (Select 1 

        From Cmsarticoli    

         where Cmsarticoli.Mlivarticolo = '80'

         and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision02)

        Begin

         Set @Yarn02ML = '80'

         Set @Yarn02Code = @USRGreigeYarnCategoryRevision02

         If @NumberOfComponents = 1

          Begin

           Set @FABBISOGNO02 = 1

           GOTO ML60_BOM_Header_Detail_Processing

          End

         Else

          Begin

           Select @Yarn02Denier = Cmsarticoli.ARTITL

           From Cmsarticoli    

            where Cmsarticoli.Mlivarticolo = '80'

            and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision02

           Set @Yarn02PlyDenier = @Yarn02Ply * @Yarn02Denier

           Set @TotalDenier = @TotalDenier + @Yarn02PlyDenier

          End

        End    

        Else

         Begin

          Set @Yarn02ML = 'NO'

          Set @Yarn02Code = @USRGreigeYarnCategoryRevision02

          Set @Yarn02PlyDenier = 0

         End

       End

     End

    End

    If @USRGreigeYarnCategoryRevision03 > ' '

    Begin

     If exists

     (Select 1 

     From Cmsarticoli    

      where Cmsarticoli.Mlivarticolo = '60'

      and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision03)

      Begin

       Set @Yarn03ML = '60'

       Set @Yarn03Code = @USRGreigeYarnCategoryRevision03

       If @NumberOfComponents = 1

        Begin

         Set @FABBISOGNO03 = 1

         GOTO ML60_BOM_Header_Detail_Processing

        End

       Else

        Begin

         Select @Yarn03Denier = Cmsarticoli.ARTITL

         From Cmsarticoli    

          where Cmsarticoli.Mlivarticolo = '60'

          and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision03

         Set @Yarn03PlyDenier = @Yarn03Ply * @Yarn03Denier

         Set @TotalDenier = @TotalDenier + @Yarn03PlyDenier

        End

      End

     Else

     Begin

      If exists

      (Select 1 

      From Cmsarticoli    

       where Cmsarticoli.Mlivarticolo = '70'

       and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision03)

       Begin

        Set @Yarn03ML = '70'

        Set @Yarn03Code = @USRGreigeYarnCategoryRevision03

        If @NumberOfComponents = 1

         Begin

          Set @FABBISOGNO03 = 1

          GOTO ML60_BOM_Header_Detail_Processing

         End

        Else

         Begin

          Select @ML70YarnCount = Cmsarticoli.ARTITL

           ,@ARTPTT = Cmsarticoli.ARTPTT

          From Cmsarticoli    

           where Cmsarticoli.Mlivarticolo = '70'

           and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision03

          Select @USRYarnCategoryYarnCountUnitEquivalFactor = USRYarnCategoryYarnCountUnitTable.USRYarnCategoryYarnCountUnitEquivalFactor

           ,@USRYarnCategoryYarnCountDenierFactor = USRYarnCategoryYarnCountUnitTable.USRYarnCategoryYarnCountDenierFactor

          From USRYarnCategoryYarnCountUnitTable

           Where USRYarnCategoryYarnCountUnitTable.ARTPTT = @ARTPTT

          If @ML70YarnCount > 0

           Begin

            Set @Yarn03Denier = @USRYarnCategoryYarnCountDenierFactor / @ML70YarnCount

            Set @Yarn03PlyDenier = @Yarn03Ply * @Yarn03Denier

            Set @TotalDenier = @TotalDenier + @Yarn03PlyDenier

           End

          Else

           Set @Yarn03PlyDenier = 0

         End

       End

      Else

       Begin

        If exists

        (Select 1 

        From Cmsarticoli    

         where Cmsarticoli.Mlivarticolo = '80'

         and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision03)

        Begin

         Set @Yarn03ML = '80'

         Set @Yarn03Code = @USRGreigeYarnCategoryRevision03

         If @NumberOfComponents = 1

          Begin

           Set @FABBISOGNO03 = 1

           GOTO ML60_BOM_Header_Detail_Processing

          End

         Else

          Begin

           Select @Yarn03Denier = Cmsarticoli.ARTITL

           From Cmsarticoli    

            where Cmsarticoli.Mlivarticolo = '80'

            and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision03

           Set @Yarn03PlyDenier = @Yarn03Ply * @Yarn03Denier

           Set @TotalDenier = @TotalDenier + @Yarn03PlyDenier

          End

        End    

        Else

         Begin

          Set @Yarn03ML = 'NO'

          Set @Yarn03Code = @USRGreigeYarnCategoryRevision03

          Set @Yarn03PlyDenier = 0

         End

       End

     End

    End

    If @USRGreigeYarnCategoryRevision04 > ' '

    Begin

     If exists

     (Select 1 

     From Cmsarticoli    

      where Cmsarticoli.Mlivarticolo = '60'

      and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision04)

      Begin

       Set @Yarn04ML = '60'

       Set @Yarn04Code = @USRGreigeYarnCategoryRevision04

       If @NumberOfComponents = 1

        Begin

         Set @FABBISOGNO04 = 1

         GOTO ML60_BOM_Header_Detail_Processing

        End

       Else

        Begin

         Select @Yarn04Denier = Cmsarticoli.ARTITL

         From Cmsarticoli    

          where Cmsarticoli.Mlivarticolo = '60'

          and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision04

         Set @Yarn04PlyDenier = @Yarn04Ply * @Yarn04Denier

         Set @TotalDenier = @TotalDenier + @Yarn04PlyDenier

        End

      End

     Else

     Begin

      If exists

      (Select 1 

      From Cmsarticoli    

       where Cmsarticoli.Mlivarticolo = '70'

       and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision04)

       Begin

        Set @Yarn04ML = '70'

        Set @Yarn04Code = @USRGreigeYarnCategoryRevision04

        If @NumberOfComponents = 1

         Begin

          Set @FABBISOGNO04 = 1

          GOTO ML60_BOM_Header_Detail_Processing

         End

        Else

         Begin

          Select @ML70YarnCount = Cmsarticoli.ARTITL

           ,@ARTPTT = Cmsarticoli.ARTPTT

          From Cmsarticoli    

           where Cmsarticoli.Mlivarticolo = '70'

           and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision04

          Select @USRYarnCategoryYarnCountUnitEquivalFactor = USRYarnCategoryYarnCountUnitTable.USRYarnCategoryYarnCountUnitEquivalFactor

           ,@USRYarnCategoryYarnCountDenierFactor = USRYarnCategoryYarnCountUnitTable.USRYarnCategoryYarnCountDenierFactor

          From USRYarnCategoryYarnCountUnitTable

           Where USRYarnCategoryYarnCountUnitTable.ARTPTT = @ARTPTT

          If @ML70YarnCount > 0

           Begin

            Set @Yarn04Denier = @USRYarnCategoryYarnCountDenierFactor / @ML70YarnCount

            Set @Yarn04PlyDenier = @Yarn04Ply * @Yarn04Denier

            Set @TotalDenier = @TotalDenier + @Yarn04PlyDenier

           End

          Else

           Set @Yarn04PlyDenier = 0

         End

       End

      Else

       Begin

        If exists

        (Select 1 

        From Cmsarticoli    

         where Cmsarticoli.Mlivarticolo = '80'

         and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision04)

        Begin

         Set @Yarn04ML = '80'

         Set @Yarn04Code = @USRGreigeYarnCategoryRevision04

         If @NumberOfComponents = 1

          Begin

           Set @FABBISOGNO04 = 1

           GOTO ML60_BOM_Header_Detail_Processing

          End

         Else

          Begin

           Select @Yarn04Denier = Cmsarticoli.ARTITL

           From Cmsarticoli    

            where Cmsarticoli.Mlivarticolo = '80'

            and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision04

           Set @Yarn04PlyDenier = @Yarn04Ply * @Yarn04Denier

           Set @TotalDenier = @TotalDenier + @Yarn04PlyDenier

          End

        End    

        Else

         Begin

          Set @Yarn04ML = 'NO'

          Set @Yarn04Code = @USRGreigeYarnCategoryRevision04

          Set @Yarn04PlyDenier = 0

         End

       End

     End

    End

    If @USRGreigeYarnCategoryRevision05 > ' '

    Begin

     If exists

     (Select 1 

     From Cmsarticoli    

      where Cmsarticoli.Mlivarticolo = '60'

      and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision05)

      Begin

       Set @Yarn05ML = '60'

       Set @Yarn05Code = @USRGreigeYarnCategoryRevision05

       If @NumberOfComponents = 1

        Begin

         Set @FABBISOGNO05 = 1

         GOTO ML60_BOM_Header_Detail_Processing

        End

       Else

        Begin

         Select @Yarn05Denier = Cmsarticoli.ARTITL

         From Cmsarticoli    

          where Cmsarticoli.Mlivarticolo = '60'

          and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision05

         Set @Yarn05PlyDenier = @Yarn05Ply * @Yarn05Denier

         Set @TotalDenier = @TotalDenier + @Yarn05PlyDenier

        End

      End

     Else

     Begin

      If exists

      (Select 1 

      From Cmsarticoli    

       where Cmsarticoli.Mlivarticolo = '70'

       and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision05)

       Begin

        Set @Yarn05ML = '70'

        Set @Yarn05Code = @USRGreigeYarnCategoryRevision05

        If @NumberOfComponents = 1

         Begin

          Set @FABBISOGNO05 = 1

          GOTO ML60_BOM_Header_Detail_Processing

         End

        Else

         Begin

          Select @ML70YarnCount = Cmsarticoli.ARTITL

           ,@ARTPTT = Cmsarticoli.ARTPTT

          From Cmsarticoli    

           where Cmsarticoli.Mlivarticolo = '70'

           and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision05

          Select @USRYarnCategoryYarnCountUnitEquivalFactor = USRYarnCategoryYarnCountUnitTable.USRYarnCategoryYarnCountUnitEquivalFactor

           ,@USRYarnCategoryYarnCountDenierFactor = USRYarnCategoryYarnCountUnitTable.USRYarnCategoryYarnCountDenierFactor

          From USRYarnCategoryYarnCountUnitTable

           Where USRYarnCategoryYarnCountUnitTable.ARTPTT = @ARTPTT

          If @ML70YarnCount > 0

           Begin

            Set @Yarn05Denier = @USRYarnCategoryYarnCountDenierFactor / @ML70YarnCount

            Set @Yarn05PlyDenier = @Yarn05Ply * @Yarn05Denier

            Set @TotalDenier = @TotalDenier + @Yarn05PlyDenier

           End

          Else

           Set @Yarn05PlyDenier = 0

         End

       End

      Else

       Begin

        If exists

        (Select 1 

        From Cmsarticoli    

         where Cmsarticoli.Mlivarticolo = '80'

         and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision05)

        Begin

         Set @Yarn05ML = '80'

         Set @Yarn05Code = @USRGreigeYarnCategoryRevision05

         If @NumberOfComponents = 1

          Begin

           Set @FABBISOGNO05 = 1

           GOTO ML60_BOM_Header_Detail_Processing

          End

         Else

          Begin

           Select @Yarn05Denier = Cmsarticoli.ARTITL

           From Cmsarticoli    

            where Cmsarticoli.Mlivarticolo = '80'

            and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision05

           Set @Yarn05PlyDenier = @Yarn05Ply * @Yarn05Denier

           Set @TotalDenier = @TotalDenier + @Yarn05PlyDenier

          End

        End    

        Else

         Begin

          Set @Yarn05ML = 'NO'

          Set @Yarn05Code = @USRGreigeYarnCategoryRevision05

          Set @Yarn05PlyDenier = 0

         End

       End

     End

    End

    If @USRGreigeYarnCategoryRevision06 > ' '

    Begin

     If exists

     (Select 1 

     From Cmsarticoli    

      where Cmsarticoli.Mlivarticolo = '60'

      and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision06)

      Begin

       Set @Yarn06ML = '60'

       Set @Yarn06Code = @USRGreigeYarnCategoryRevision06

       If @NumberOfComponents = 1

        Begin

         Set @FABBISOGNO06 = 1

         GOTO ML60_BOM_Header_Detail_Processing

        End

       Else

        Begin

         Select @Yarn06Denier = Cmsarticoli.ARTITL

         From Cmsarticoli    

          where Cmsarticoli.Mlivarticolo = '60'

          and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision06

         Set @Yarn06PlyDenier = @Yarn06Ply * @Yarn06Denier

         Set @TotalDenier = @TotalDenier + @Yarn06PlyDenier

        End

      End

     Else

     Begin

      If exists

      (Select 1 

      From Cmsarticoli    

       where Cmsarticoli.Mlivarticolo = '70'

       and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision06)

       Begin

        Set @Yarn06ML = '70'

        Set @Yarn06Code = @USRGreigeYarnCategoryRevision06

        If @NumberOfComponents = 1

         Begin

          Set @FABBISOGNO06 = 1

          GOTO ML60_BOM_Header_Detail_Processing

         End

        Else

         Begin

          Select @ML70YarnCount = Cmsarticoli.ARTITL

           ,@ARTPTT = Cmsarticoli.ARTPTT

          From Cmsarticoli    

           where Cmsarticoli.Mlivarticolo = '70'

           and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision06

          Select @USRYarnCategoryYarnCountUnitEquivalFactor = USRYarnCategoryYarnCountUnitTable.USRYarnCategoryYarnCountUnitEquivalFactor

           ,@USRYarnCategoryYarnCountDenierFactor = USRYarnCategoryYarnCountUnitTable.USRYarnCategoryYarnCountDenierFactor

          From USRYarnCategoryYarnCountUnitTable

           Where USRYarnCategoryYarnCountUnitTable.ARTPTT = @ARTPTT

          If @ML70YarnCount > 0

           Begin

            Set @Yarn06Denier = @USRYarnCategoryYarnCountDenierFactor / @ML70YarnCount

            Set @Yarn06PlyDenier = @Yarn06Ply * @Yarn06Denier

            Set @TotalDenier = @TotalDenier + @Yarn06PlyDenier

           End

          Else

           Set @Yarn06PlyDenier = 0

         End

       End

      Else

       Begin

        If exists

        (Select 1 

        From Cmsarticoli    

         where Cmsarticoli.Mlivarticolo = '80'

         and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision06)

        Begin

         Set @Yarn06ML = '80'

         Set @Yarn06Code = @USRGreigeYarnCategoryRevision06

         If @NumberOfComponents = 1

          Begin

           Set @FABBISOGNO06 = 1

           GOTO ML60_BOM_Header_Detail_Processing

          End

         Else

          Begin

           Select @Yarn06Denier = Cmsarticoli.ARTITL

           From Cmsarticoli    

            where Cmsarticoli.Mlivarticolo = '80'

            and Cmsarticoli.Codicecomponente = @USRGreigeYarnCategoryRevision06

           Set @Yarn06PlyDenier = @Yarn06Ply * @Yarn06Denier

           Set @TotalDenier = @TotalDenier + @Yarn06PlyDenier

          End

        End    

        Else

         Begin

          Set @Yarn06ML = 'NO'

          Set @Yarn06Code = @USRGreigeYarnCategoryRevision06

          Set @Yarn06PlyDenier = 0

         End

       End

     End

    End

      

    -- Calculate the lbs of each component needed to produce a lbs of the product

    If @Yarn01PlyDenier is null or @Yarn01PlyDenier = ''

     Set @Yarn01PlyDenier = 0

    If @Yarn02PlyDenier is null or @Yarn02PlyDenier = ''

     Set @Yarn02PlyDenier = 0

    If @Yarn03PlyDenier is null or @Yarn03PlyDenier = ''

     Set @Yarn03PlyDenier = 0

    If @Yarn04PlyDenier is null or @Yarn04PlyDenier = ''

     Set @Yarn04PlyDenier = 0

    If @Yarn05PlyDenier is null or @Yarn05PlyDenier = ''

     Set @Yarn05PlyDenier = 0

    If @Yarn06PlyDenier is null or @Yarn06PlyDenier = ''

     Set @Yarn06PlyDenier = 0

    If @TotalDenier is null or @TotalDenier = ''

     Begin

      Set @FABBISOGNO01 = 1

    Set @FABBISOGNO02 = 1

      Set @FABBISOGNO03 = 1

      Set @FABBISOGNO04 = 1

      Set @FABBISOGNO05 = 1

      Set @FABBISOGNO06 = 1

      GOTO ML60_BOM_Header_Detail_Processing

     End

    If @USRGreigeYarnCategoryRevision01 > ' '

     Set @FABBISOGNO01 = ROUND((@Yarn01PlyDenier / @TotalDenier), 5)

    If @USRGreigeYarnCategoryRevision02 > ' '

     Set @FABBISOGNO02 = ROUND((@Yarn02PlyDenier / @TotalDenier), 5)

    If @USRGreigeYarnCategoryRevision03 > ' '

     Set @FABBISOGNO03 = ROUND((@Yarn03PlyDenier / @TotalDenier), 5)

    If @USRGreigeYarnCategoryRevision04 > ' '

     Set @FABBISOGNO04 = ROUND((@Yarn04PlyDenier / @TotalDenier), 5)

    If @USRGreigeYarnCategoryRevision05 > ' '

     Set @FABBISOGNO05 = ROUND((@Yarn05PlyDenier / @TotalDenier), 5)

    If @USRGreigeYarnCategoryRevision06 > ' '

     Set @FABBISOGNO06 = ROUND((@Yarn06PlyDenier / @TotalDenier), 5)

    ML60_BOM_Header_Detail_Processing:

    Set @Currentdate = CONVERT(smalldatetime, GETDATE(), 101)

    Set @CurDate = CONVERT(CHAR(12), GETDATE(), 101)

    Set @Suffissodb = ' '

    Set @NUMSEQUENZA = 1

    Set @NUMALTERNATIVA = 0

    Set @IS_GHOST = 0

    Set @COMPCRIT = 0

    Set @USRYarnRouting = 'SR001'

    INSERT INTO TESTATADISTINTA

     (MLIVARTPADRE

     ,CODARTPADRE

     ,MLIVARTICOLO

     ,CODICEARTICOLO

     ,SUFFISSODB

     ,CODCICLO

     ,DATACREAZIONE

     ,OPERATORE

     ,TIMSTAMP)

     Values

     ('60'

     ,@Codicecomponente  

     ,'60'

     ,@Codicecomponente  

     ,@Suffissodb

     ,@USRYarnRouting

     ,@Currentdate

     ,'cdsbaftrigger'

     ,@curdate)

    If @USRGreigeYarnCategoryRevision01 > ' '

     GOTO ML60_COMP01_BOM

    Else

     GOTO END_ML60_COMP01_BOM

    ML60_COMP01_BOM:

    BEGIN

     INSERT INTO COMPONENTIXARTICOLO

              (MLIVARTICOLO

      ,CODICEARTICOLO

      ,SUFFISSODB

      ,NUMSEQUENZA

      ,NUMALTERNATIVA

      ,MLIVCOMPONENTE

      ,CODICECOMPONENTE

      ,IS_GHOST

      ,COMPCRIT

      ,FABBISOGNO

      ,STATO

      ,OPERATORE

      ,TIMSTAMP)

                Values

      ('60'

      ,@Codicecomponente  

    ,@Suffissodb

                ,@NUMSEQUENZA

      ,@NUMALTERNATIVA

      ,@Yarn01ML

      ,@Yarn01Code

      ,@IS_GHOST     

      ,@COMPCRIT

      ,@FABBISOGNO01

      ,'N'

      ,'cdstrigger'

      ,@curdate)

    END

    -- Increment the Sequence Number for multiple component yarns

    Set @NUMSEQUENZA = @NUMSEQUENZA + 1

    END_ML60_COMP01_BOM:

    If @USRGreigeYarnCategoryRevision02 > ' '

     GOTO ML60_COMP02_BOM

    Else

     GOTO END_ML60_COMP02_BOM

    ML60_COMP02_BOM:

    BEGIN

     INSERT INTO COMPONENTIXARTICOLO

              (MLIVARTICOLO

      ,CODICEARTICOLO

      ,SUFFISSODB

      ,NUMSEQUENZA

      ,NUMALTERNATIVA

      ,MLIVCOMPONENTE

      ,CODICECOMPONENTE

      ,IS_GHOST

      ,COMPCRIT

      ,FABBISOGNO

      ,STATO

      ,OPERATORE

      ,TIMSTAMP)

                Values

      ('60'

      ,@Codicecomponente  

    ,@Suffissodb

                ,@NUMSEQUENZA

      ,@NUMALTERNATIVA

      ,@Yarn02ML

      ,@Yarn02Code

      ,@IS_GHOST     

      ,@COMPCRIT

      ,@FABBISOGNO02

      ,'N'

      ,'cdstrigger'

      ,@curdate)

    END

    -- Increment the Sequence Number for multiple component yarns

    Set @NUMSEQUENZA = @NUMSEQUENZA + 1

    END_ML60_COMP02_BOM:

    If @USRGreigeYarnCategoryRevision03 > ' '

     GOTO ML60_COMP03_BOM

    Else

     GOTO END_ML60_COMP03_BOM

    ML60_COMP03_BOM:

    BEGIN

     INSERT INTO COMPONENTIXARTICOLO

              (MLIVARTICOLO

      ,CODICEARTICOLO

      ,SUFFISSODB

      ,NUMSEQUENZA

      ,NUMALTERNATIVA

      ,MLIVCOMPONENTE

      ,CODICECOMPONENTE

      ,IS_GHOST

      ,COMPCRIT

      ,FABBISOGNO

      ,STATO

      ,OPERATORE

      ,TIMSTAMP)

                Values

      ('60'

      ,@Codicecomponente  

    ,@Suffissodb

                ,@NUMSEQUENZA

      ,@NUMALTERNATIVA

      ,@Yarn03ML

      ,@Yarn03Code

      ,@IS_GHOST     

      ,@COMPCRIT

      ,@FABBISOGNO03

      ,'N'

      ,'cdstrigger'

      ,@curdate)

    END

    -- Increment the Sequence Number for multiple component yarns

    Set @NUMSEQUENZA = @NUMSEQUENZA + 1

    END_ML60_COMP03_BOM:

    If @USRGreigeYarnCategoryRevision04 > ' '

     GOTO ML60_COMP04_BOM

    Else

     GOTO END_ML60_COMP04_BOM

    ML60_COMP04_BOM:

    BEGIN

     INSERT INTO COMPONENTIXARTICOLO

              (MLIVARTICOLO

      ,CODICEARTICOLO

      ,SUFFISSODB

      ,NUMSEQUENZA

      ,NUMALTERNATIVA

      ,MLIVCOMPONENTE

      ,CODICECOMPONENTE

      ,IS_GHOST

      ,COMPCRIT

      ,FABBISOGNO

      ,STATO

      ,OPERATORE

      ,TIMSTAMP)

                Values

      ('60'

      ,@Codicecomponente  

    ,@Suffissodb

                ,@NUMSEQUENZA

      ,@NUMALTERNATIVA

      ,@Yarn04ML

      ,@Yarn04Code

      ,@IS_GHOST     

      ,@COMPCRIT

      ,@FABBISOGNO04

      ,'N'

      ,'cdstrigger'

      ,@curdate)

    END

    -- Increment the Sequence Number for multiple component yarns

    Set @NUMSEQUENZA = @NUMSEQUENZA + 1

    END_ML60_COMP04_BOM:

    If @USRGreigeYarnCategoryRevision05 > ' '

     GOTO ML60_COMP05_BOM

    Else

     GOTO END_ML60_COMP05_BOM

    ML60_COMP05_BOM:

    BEGIN

     INSERT INTO COMPONENTIXARTICOLO

              (MLIVARTICOLO

      ,CODICEARTICOLO

      ,SUFFISSODB

      ,NUMSEQUENZA

      ,NUMALTERNATIVA

      ,MLIVCOMPONENTE

      ,CODICECOMPONENTE

      ,IS_GHOST

      ,COMPCRIT

      ,FABBISOGNO

      ,STATO

      ,OPERATORE

      ,TIMSTAMP)

                Values

      ('60'

      ,@Codicecomponente  

    ,@Suffissodb

                ,@NUMSEQUENZA

      ,@NUMALTERNATIVA

      ,@Yarn05ML

      ,@Yarn05Code

      ,@IS_GHOST     

      ,@COMPCRIT

      ,@FABBISOGNO05

      ,'N'

      ,'cdstrigger'

      ,@curdate)

    END

    -- Increment the Sequence Number for multiple component yarns

    Set @NUMSEQUENZA = @NUMSEQUENZA + 1

    END_ML60_COMP05_BOM:

    If @USRGreigeYarnCategoryRevision06 > ' '

     GOTO ML60_COMP06_BOM

    Else

     GOTO END_ML60_COMP06_BOM

    ML60_COMP06_BOM:

    BEGIN

     INSERT INTO COMPONENTIXARTICOLO

              (MLIVARTICOLO

      ,CODICEARTICOLO

      ,SUFFISSODB

      ,NUMSEQUENZA

      ,NUMALTERNATIVA

      ,MLIVCOMPONENTE

      ,CODICECOMPONENTE

      ,IS_GHOST

      ,COMPCRIT

      ,FABBISOGNO

      ,STATO

      ,OPERATORE

      ,TIMSTAMP)

                Values

      ('60'

      ,@Codicecomponente  

      ,@Suffissodb

      ,@NUMSEQUENZA

      ,@NUMALTERNATIVA

      ,@Yarn06ML

      ,@Yarn06Code

      ,@IS_GHOST     

      ,@COMPCRIT

      ,@FABBISOGNO06

      ,'N'

      ,'cdstrigger'

      ,@curdate)

    END

    END_ML60_COMP06_BOM:

    GoTo Exit_Trigger

    -----------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------

    Process_ML30:  -- Loom Beam

    GoTo Exit_Trigger

    -----------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------

    Process_ML20:  -- Greige Style

    -- 27-Jan-2006 MDP

    Set @CreateBOM = 'Y'

    -- If the manufacture/purchase flag is null then set to 'M'.

    --

    Select @ARTPPD = USRVendorTable.USRVendorMakeBuyIndicator

    From USRVendorTable

    Where USRVendorTable.CODICEFORNITORE = @CODICEFORNITORE

    If @ARTPPD is Null or @ARTPPD = ''

    -- 27-Jan-2006 MDP

     Begin

      Set @ARTPPD = 'M'

      Set @CreateBOM = 'N'

     End

    -- 10-Feb-2006 MDP

    -- If the product is purchased and there is no loom type set loom type to 'N/A'

    --

    If @ARFL06 is Null or @ARFL06 = ''

     If @ARTPPD = 'P' or @CreateBOM = 'N'

      Set @ARFL06 = 'N/A'

    -- Perform calculations and data moves for ML 20, Greige Style.

    --

    Set @USRGreigeEndsCM = ROUND (@ARFICM / 2.54, 0)

    Set @USRGreigePicksCM = ROUND (@ARINFN / 2.54, 0)

    Set @USRGreigeReedSpreadCM = ROUND (@ARAPTT * 2.54, 0)

    --********************

    --********************

    --********************

    --

    -- Calculate the yarn weight per 100 yards for each yarn that has a yarn type of WARP or SELVAGE.

    --

    Set @USRGreigeYarnTotWarpSelvWt100Yds = 0

    Set @USRGreigeYarnTotWarpSelvEndsPicks = 0

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision01

    And @USRGreigeYarnCategoryRevision01 <> ''

    And (@USRGreigeYarnType01 = 'W'

     or

     @USRGreigeYarnType01 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds01 = ROUND ((@USRGreigeYarnEndsPicks01 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds01, 2)

     End

    If @USRGreigeYarnEndsPicks01 <> 0 and (@USRGreigeYarnType01 = 'W' or @USRGreigeYarnType01 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks01, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision02

    And @USRGreigeYarnCategoryRevision02 <> ''

    And (@USRGreigeYarnType02 = 'W'

     or

     @USRGreigeYarnType02 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds02 = ROUND ((@USRGreigeYarnEndsPicks02 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds02, 2)

     End

    If @USRGreigeYarnEndsPicks02 <> 0 and (@USRGreigeYarnType02 = 'W' or @USRGreigeYarnType02 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks02, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision03

    And @USRGreigeYarnCategoryRevision03 <> ''

    And (@USRGreigeYarnType03 = 'W'

     or

     @USRGreigeYarnType03 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds03 = ROUND ((@USRGreigeYarnEndsPicks03 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds03, 2)

     End

    If @USRGreigeYarnEndsPicks03 <> 0 and (@USRGreigeYarnType03 = 'W' or @USRGreigeYarnType03 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks03, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision04

    And @USRGreigeYarnCategoryRevision04 <> ''

    And (@USRGreigeYarnType04 = 'W'

     or

     @USRGreigeYarnType04 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds04 = ROUND ((@USRGreigeYarnEndsPicks04 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds04, 2)

     End

    If @USRGreigeYarnEndsPicks04 <> 0 and (@USRGreigeYarnType04 = 'W' or @USRGreigeYarnType04 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks04, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision05

    And @USRGreigeYarnCategoryRevision05 <> ''

    And (@USRGreigeYarnType05 = 'W'

     or

     @USRGreigeYarnType05 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds05 = ROUND ((@USRGreigeYarnEndsPicks05 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds05, 2)

     End

    If @USRGreigeYarnEndsPicks05 <> 0 and (@USRGreigeYarnType05 = 'W' or @USRGreigeYarnType05 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks05, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision06

    And @USRGreigeYarnCategoryRevision06 <> ''

    And (@USRGreigeYarnType06 = 'W'

     or

     @USRGreigeYarnType06 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds06 = ROUND ((@USRGreigeYarnEndsPicks06 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds06, 2)

     End

    If @USRGreigeYarnEndsPicks06 <> 0 and (@USRGreigeYarnType06 = 'W' or @USRGreigeYarnType06 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks06, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision07

    And @USRGreigeYarnCategoryRevision07 <> ''

    And (@USRGreigeYarnType07 = 'W'

     or

     @USRGreigeYarnType07 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds07 = ROUND ((@USRGreigeYarnEndsPicks07 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds07, 2)

     End

    If @USRGreigeYarnEndsPicks07 <> 0 and (@USRGreigeYarnType07 = 'W' or @USRGreigeYarnType07 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks07, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision08

    And @USRGreigeYarnCategoryRevision08 <> ''

    And (@USRGreigeYarnType08 = 'W'

     or

     @USRGreigeYarnType08 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds08 = ROUND ((@USRGreigeYarnEndsPicks08 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds08, 2)

     End

    If @USRGreigeYarnEndsPicks08 <> 0 and (@USRGreigeYarnType08 = 'W' or @USRGreigeYarnType08 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks08, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision09

    And @USRGreigeYarnCategoryRevision09 <> ''

    And (@USRGreigeYarnType09 = 'W'

     or

     @USRGreigeYarnType09 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds09 = ROUND ((@USRGreigeYarnEndsPicks09 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds09, 2)

     End

    If @USRGreigeYarnEndsPicks09 <> 0 and (@USRGreigeYarnType09 = 'W' or @USRGreigeYarnType09 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks09, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision10

    And @USRGreigeYarnCategoryRevision10 <> ''

    And (@USRGreigeYarnType10 = 'W'

     or

     @USRGreigeYarnType10 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds10 = ROUND ((@USRGreigeYarnEndsPicks10 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds10, 2)

     End

    If @USRGreigeYarnEndsPicks10 <> 0 and (@USRGreigeYarnType10 = 'W' or @USRGreigeYarnType10 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks10, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision11

    And @USRGreigeYarnCategoryRevision11 <> ''

    And (@USRGreigeYarnType11 = 'W'

     or

     @USRGreigeYarnType11 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds11 = ROUND ((@USRGreigeYarnEndsPicks11 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds11, 2)

     End

    If @USRGreigeYarnEndsPicks11 <> 0 and (@USRGreigeYarnType11 = 'W' or @USRGreigeYarnType11 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks11, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision12

    And @USRGreigeYarnCategoryRevision12 <> ''

    And (@USRGreigeYarnType12 = 'W'

     or

     @USRGreigeYarnType12 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds12 = ROUND ((@USRGreigeYarnEndsPicks12 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds12, 2)

     End

    If @USRGreigeYarnEndsPicks12 <> 0 and (@USRGreigeYarnType12 = 'W' or @USRGreigeYarnType12 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks12, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision13

    And @USRGreigeYarnCategoryRevision13 <> ''

    And (@USRGreigeYarnType13 = 'W'

     or

     @USRGreigeYarnType13 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds13 = ROUND ((@USRGreigeYarnEndsPicks13 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds13, 2)

     End

    If @USRGreigeYarnEndsPicks13 <> 0 and (@USRGreigeYarnType13 = 'W' or @USRGreigeYarnType13 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks13, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision14

    And @USRGreigeYarnCategoryRevision14 <> ''

    And (@USRGreigeYarnType14 = 'W'

     or

     @USRGreigeYarnType14 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds14 = ROUND ((@USRGreigeYarnEndsPicks14 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds14, 2)

     End

    If @USRGreigeYarnEndsPicks14 <> 0 and (@USRGreigeYarnType14 = 'W' or @USRGreigeYarnType14 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks14, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision15

    And @USRGreigeYarnCategoryRevision15 <> ''

    And (@USRGreigeYarnType15 = 'W'

     or

     @USRGreigeYarnType15 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds15 = ROUND ((@USRGreigeYarnEndsPicks15 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds15, 2)

     End

    If @USRGreigeYarnEndsPicks15 <> 0 and (@USRGreigeYarnType15 = 'W' or @USRGreigeYarnType15 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks15, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision16

    And @USRGreigeYarnCategoryRevision16 <> ''

    And (@USRGreigeYarnType16 = 'W'

     or

     @USRGreigeYarnType16 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds16 = ROUND ((@USRGreigeYarnEndsPicks16 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds16, 2)

     End

    If @USRGreigeYarnEndsPicks16 <> 0 and (@USRGreigeYarnType16 = 'W' or @USRGreigeYarnType16 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks16, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision17

    And @USRGreigeYarnCategoryRevision17 <> ''

    And (@USRGreigeYarnType17 = 'W'

     or

     @USRGreigeYarnType17 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds17 = ROUND ((@USRGreigeYarnEndsPicks17 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds17, 2)

     End

    If @USRGreigeYarnEndsPicks17 <> 0 and (@USRGreigeYarnType17 = 'W' or @USRGreigeYarnType17 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks17, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision18

    And @USRGreigeYarnCategoryRevision18 <> ''

    And (@USRGreigeYarnType18 = 'W'

     or

     @USRGreigeYarnType18 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds18 = ROUND ((@USRGreigeYarnEndsPicks18 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds18, 2)

     End

    If @USRGreigeYarnEndsPicks18 <> 0 and (@USRGreigeYarnType18 = 'W' or @USRGreigeYarnType18 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks18, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision19

    And @USRGreigeYarnCategoryRevision19 <> ''

    And (@USRGreigeYarnType19 = 'W'

     or

     @USRGreigeYarnType19 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds19 = ROUND ((@USRGreigeYarnEndsPicks19 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds19, 2)

     End

    If @USRGreigeYarnEndsPicks19 <> 0 and (@USRGreigeYarnType19 = 'W' or @USRGreigeYarnType19 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks19, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision20

    And @USRGreigeYarnCategoryRevision20 <> ''

    And (@USRGreigeYarnType20 = 'W'

     or

     @USRGreigeYarnType20 = 'S'

    &nbsp

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds20 = ROUND ((@USRGreigeYarnEndsPicks20 * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotWarpSelvWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnWt100Yds20, 2)

     End

    If @USRGreigeYarnEndsPicks20 <> 0 and (@USRGreigeYarnType20 = 'W' or @USRGreigeYarnType20 = 'S')

     Set @USRGreigeYarnTotWarpSelvEndsPicks = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks + @USRGreigeYarnEndsPicks20, 2)

    --********************

    --********************

    --********************

    --

    -- Calculate the yarn weight per 100 yards for each yarn that has a yarn type of FILL.

    -- ARAPTT = Reed Spread in inches.

    --

    Set @USRGreigeYarnTotFillWt100Yds = 0

    Set @USRGreigeYarnTotFillEndsPicks = 0

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision01

    And @USRGreigeYarnCategoryRevision01 <> ''

    And @USRGreigeYarnType01 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds01 = ROUND ((@USRGreigeYarnEndsPicks01 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds01, 2)

     End

    If @USRGreigeYarnEndsPicks01 <> 0 and @USRGreigeYarnType01 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks01, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision02

    And @USRGreigeYarnCategoryRevision02 <> ''

    And @USRGreigeYarnType02 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds02 = ROUND ((@USRGreigeYarnEndsPicks02 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds02, 2)

     End

    If @USRGreigeYarnEndsPicks02 <> 0 and @USRGreigeYarnType02 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks02, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision03

    And @USRGreigeYarnCategoryRevision03 <> ''

    And @USRGreigeYarnType03 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds03 = ROUND ((@USRGreigeYarnEndsPicks03 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds03, 2)

     End

    If @USRGreigeYarnEndsPicks03 <> 0 and @USRGreigeYarnType03 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks03, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision04

    And @USRGreigeYarnCategoryRevision04 <> ''

    And @USRGreigeYarnType04 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds04 = ROUND ((@USRGreigeYarnEndsPicks04 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds04, 2)

     End

    If @USRGreigeYarnEndsPicks04 <> 0 and @USRGreigeYarnType04 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks04, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision05

    And @USRGreigeYarnCategoryRevision05 <> ''

    And @USRGreigeYarnType05 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds05 = ROUND ((@USRGreigeYarnEndsPicks05 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds05, 2)

     End

    If @USRGreigeYarnEndsPicks05 <> 0 and @USRGreigeYarnType05 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks05, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision06

    And @USRGreigeYarnCategoryRevision06 <> ''

    And @USRGreigeYarnType06 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds06 = ROUND ((@USRGreigeYarnEndsPicks06 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds06, 2)

     End

    If @USRGreigeYarnEndsPicks06 <> 0 and @USRGreigeYarnType06 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks06, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision07

    And @USRGreigeYarnCategoryRevision07 <> ''

    And @USRGreigeYarnType07 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds07 = ROUND ((@USRGreigeYarnEndsPicks07 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds07, 2)

     End

    If @USRGreigeYarnEndsPicks07 <> 0 and @USRGreigeYarnType07 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks07, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision08

    And @USRGreigeYarnCategoryRevision08 <> ''

    And @USRGreigeYarnType08 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds08 = ROUND ((@USRGreigeYarnEndsPicks08 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds08, 2)

     End

    If @USRGreigeYarnEndsPicks08 <> 0 and @USRGreigeYarnType08 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks08, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision09

    And @USRGreigeYarnCategoryRevision09 <> ''

    And @USRGreigeYarnType09 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds09 = ROUND ((@USRGreigeYarnEndsPicks09 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds09, 2)

     End

    If @USRGreigeYarnEndsPicks09 <> 0 and @USRGreigeYarnType09 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks09, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision10

    And @USRGreigeYarnCategoryRevision10 <> ''

    And @USRGreigeYarnType10 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds10 = ROUND ((@USRGreigeYarnEndsPicks10 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds10, 2)

     End

    If @USRGreigeYarnEndsPicks10 <> 0 and @USRGreigeYarnType10 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks10, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision11

    And @USRGreigeYarnCategoryRevision11 <> ''

    And @USRGreigeYarnType11 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds11 = ROUND ((@USRGreigeYarnEndsPicks11 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds11, 2)

     End

    If @USRGreigeYarnEndsPicks11 <> 0 and @USRGreigeYarnType11 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks11, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision12

    And @USRGreigeYarnCategoryRevision12 <> ''

    And @USRGreigeYarnType12 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds12 = ROUND ((@USRGreigeYarnEndsPicks12 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds12, 2)

     End

    If @USRGreigeYarnEndsPicks12 <> 0 and @USRGreigeYarnType12 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks12, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision13

    And @USRGreigeYarnCategoryRevision13 <> ''

    And @USRGreigeYarnType13 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds13 = ROUND ((@USRGreigeYarnEndsPicks13 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds13, 2)

     End

    If @USRGreigeYarnEndsPicks13 <> 0 and @USRGreigeYarnType13 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks13, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision14

    And @USRGreigeYarnCategoryRevision14 <> ''

    And @USRGreigeYarnType14 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds14 = ROUND ((@USRGreigeYarnEndsPicks14 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds14, 2)

     End

    If @USRGreigeYarnEndsPicks14 <> 0 and @USRGreigeYarnType14 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks14, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision15

    And @USRGreigeYarnCategoryRevision15 <> ''

    And @USRGreigeYarnType15 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds15 = ROUND ((@USRGreigeYarnEndsPicks15 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds15, 2)

     End

    If @USRGreigeYarnEndsPicks15 <> 0 and @USRGreigeYarnType15 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks15, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision16

    And @USRGreigeYarnCategoryRevision16 <> ''

    And @USRGreigeYarnType16 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds16 = ROUND ((@USRGreigeYarnEndsPicks16 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds16, 2)

     End

    If @USRGreigeYarnEndsPicks16 <> 0 and @USRGreigeYarnType16 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks16, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision17

    And @USRGreigeYarnCategoryRevision17 <> ''

    And @USRGreigeYarnType17 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds17 = ROUND ((@USRGreigeYarnEndsPicks17 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds17, 2)

     End

    If @USRGreigeYarnEndsPicks17 <> 0 and @USRGreigeYarnType17 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks17, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision18

    And @USRGreigeYarnCategoryRevision18 <> ''

    And @USRGreigeYarnType18 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds18 = ROUND ((@USRGreigeYarnEndsPicks18 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds18, 2)

     End

    If @USRGreigeYarnEndsPicks18 <> 0 and @USRGreigeYarnType18 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks18, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision19

    And @USRGreigeYarnCategoryRevision19 <> ''

    And @USRGreigeYarnType19 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds19 = ROUND ((@USRGreigeYarnEndsPicks19 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds19, 2)

     End

    If @USRGreigeYarnEndsPicks19 <> 0 and @USRGreigeYarnType19 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks19, 2)

    --********************

    Set @USRGreigeYarnCategoryRevisionStdYdslb = 0

    Select @USRGreigeYarnCategoryRevisionStdYdslb =

     USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevisionStdYdslb

    From USRGreigeYarnCategoryRevisionTable

    Where USRGreigeYarnCategoryRevisionTable.USRGreigeYarnCategoryRevision =

     @USRGreigeYarnCategoryRevision20

    And @USRGreigeYarnCategoryRevision20 <> ''

    And @USRGreigeYarnType20 = 'F'

    If @USRGreigeYarnCategoryRevisionStdYdslb <> 0

     Begin

      Set @USRGreigeYarnWt100Yds20 = ROUND ((@USRGreigeYarnEndsPicks20 * @ARAPTT * 100) / @USRGreigeYarnCategoryRevisionStdYdslb, 2)

      Set @USRGreigeYarnTotFillWt100Yds = ROUND (@USRGreigeYarnTotFillWt100Yds + @USRGreigeYarnWt100Yds20, 2)

     End

    If @USRGreigeYarnEndsPicks20 <> 0 and @USRGreigeYarnType20 = 'F'

     Set @USRGreigeYarnTotFillEndsPicks = ROUND (@USRGreigeYarnTotFillEndsPicks + @USRGreigeYarnEndsPicks20, 2)

    --********************

    Set @USRGreigeYarnTotWt100Yds = ROUND (@USRGreigeYarnTotWarpSelvWt100Yds + @USRGreigeYarnTotFillWt100Yds, 2)

    If @USRGreigeYarnTotWt100Yds > 0.05

     Begin

      Set @USRGreigeCutLengthMin = ROUND (((@USRBeckLoadInPounds - 5) * 100) / @USRGreigeYarnTotWt100Yds, 0)

      Set @USRGreigeCutLength = ROUND ((@USRBeckLoadInPounds * 100) / @USRGreigeYarnTotWt100Yds, 0)

      Set @USRGreigeCutLengthMax = ROUND (((@USRBeckLoadInPounds + 5) * 100) / @USRGreigeYarnTotWt100Yds, 0)

     End

    Set @USRGreigeCutLengthMinBatchRoll = ROUND (@USRGreigeCutLengthMin * @USRCutsBatchRoll, 0)

    Set @ARDSTD = ROUND (@USRGreigeCutLength * @USRCutsBatchRoll, 0)

    Set @USRGreigeCutLengthMaxBatchRoll = ROUND (@USRGreigeCutLengthMax * @USRCutsBatchRoll, 0)

    -- Total Oz / Yd

    --

    Set @ARPSGR = ROUND (@USRGreigeYarnTotWt100Yds * 0.16, 2)

    -- ARPSGR can not be zero in G-TEX if zero set to .1

    If @ARPSGR = 0

     Set @ARPSGR = .1

    Set @USRGreigeDentsCM = ROUND (convert(float,@ARPTTN) / 2.54, 1)

    Set @USRGreigePlanningStdSetLength = ROUND (@USRGreigePlanningStdBeamsPerSet * @USRGreigePlanningStdLoomBeamLen, 0)

     

    If @USRCreationDate is Null or @USRCreationDate = ''

     Set @USRCreationDate = CONVERT(CHAR(12), GETDATE(), 101)

    Set @USRRevisionDate = CONVERT(CHAR(12), GETDATE(), 101)

    Set @USRGreigePlanningYarnNetFactor = ROUND((@USRGreigePlanningYarnTakeupFactor - @USRGreigePlanningYarnStretchFactor) + 1, 5)

    If @USRGreigeBoiloffBeforePicks <> 0

     Set @USRGreigeBoiloffWarpShrinkagePercent = ROUND ((@USRGreigeBoiloffAfterPicks - @USRGreigeBoiloffBeforePicks) / @USRGreigeBoiloffBeforePicks, 2)

    If @USRGreigeBoiloffBeforeWidth <> 0

     Set @USRGreigeBoiloffFillShrinkagePercent = ROUND ((@USRGreigeBoiloffBeforeWidth - @USRGreigeBoiloffAfterWidth) / @USRGreigeBoiloffBeforeWidth, 2)

    Set @USRGreigeStopsTotal = ROUND (@USRGreigeStopsCatchCord + @USRGreigeStopsFill + @USRGreigeStopsLeno + @USRGreigeStopsOther + @USRGreigeStopsWarp, 2)

    Set @ARMDMN = @USRGreigeCutLength

    Set @ARAGMN = ROUND (@ARATMN, 2)

    -- 12-Jan-2006 MtC

    --Set @ARPTTN = ROUND (@ARFICM, 0)

    If @USRGreigeLoomBeamStyleRevision is Null or @USRGreigeLoomBeamStyleRevision = ''

     Set @USRGreigeLoomBeamStyleRevision = @Codicecomponente

    If @ARFG10 is Null or @ARFG10 = ''

     Set @ARFG10 = 'OFF'

    If @ARATMN is Null or @ARATMN = '' or @ARATMN = 0

     Set @ARATMN = .1

    -- 20-Dec-2005 MDP

    If @ARFLO2 is Null or @ARFLO2 = '' or @ARFLO2 = '     '

     Set @ARMFO2 = ''

    Else

     Set @ARMFO2 = '2M'

    -- 09-Jan-2006 MtC

    --

    select @ARFL08 = convert (varchar(2), USRGreigeSizeFormulaCode)

    from USRGreigeSizeFormulaTable

    where ARFL07 = @ARFL07

    -- 27-Jan-2006 MDP

    -- Code needed to capture Greige Routing for Article and BOM

    Select

    @USRWorstedOrSynthetic = USRWorstedOrSynthetic

    From TIPOPRODOTTO where TIPOPRODOTTO.CODICE = @TIPOPRODOTTO

    Select

    @USRGreigeRouting = USRGreigeRoutingCode

    From USRGreigeRoutingTable where USRGreigeRoutingTable.USRWorstedOrSynthetic = @USRWorstedOrSynthetic

    -- 24-Jan-2006 MDP

    and USRGreigeRoutingTable.USRCntryOfOrgCode = SUBSTRING(@ARFU10, 1, 2)  

    and USRGreigeRoutingTable.USRLoomTypeARFL06 = @ARFL06 

    Update CMSARTICOLI

    Set  CMSARTICOLI.USRGreigeEndsCM = @USRGreigeEndsCM

     ,CMSARTICOLI.USRGreigePicksCM = @USRGreigePicksCM

     ,CMSARTICOLI.USRGreigeReedSpreadCM = @USRGreigeReedSpreadCM

     ,CMSARTICOLI.USRGreigeYarnWt100Yds01 = @USRGreigeYarnWt100Yds01

     ,CMSARTICOLI.USRGreigeYarnWt100Yds02 = @USRGreigeYarnWt100Yds02

     ,CMSARTICOLI.USRGreigeYarnWt100Yds03 = @USRGreigeYarnWt100Yds03

     ,CMSARTICOLI.USRGreigeYarnWt100Yds04 = @USRGreigeYarnWt100Yds04

     ,CMSARTICOLI.USRGreigeYarnWt100Yds05 = @USRGreigeYarnWt100Yds05

     ,CMSARTICOLI.USRGreigeYarnWt100Yds06 = @USRGreigeYarnWt100Yds06

     ,CMSARTICOLI.USRGreigeYarnWt100Yds07 = @USRGreigeYarnWt100Yds07

     ,CMSARTICOLI.USRGreigeYarnWt100Yds08 = @USRGreigeYarnWt100Yds08

     ,CMSARTICOLI.USRGreigeYarnWt100Yds09 = @USRGreigeYarnWt100Yds09

     ,CMSARTICOLI.USRGreigeYarnWt100Yds10 = @USRGreigeYarnWt100Yds10

     ,CMSARTICOLI.USRGreigeYarnWt100Yds11 = @USRGreigeYarnWt100Yds11

     ,CMSARTICOLI.USRGreigeYarnWt100Yds12 = @USRGreigeYarnWt100Yds12

     ,CMSARTICOLI.USRGreigeYarnWt100Yds13 = @USRGreigeYarnWt100Yds13

     ,CMSARTICOLI.USRGreigeYarnWt100Yds14 = @USRGreigeYarnWt100Yds14

     ,CMSARTICOLI.USRGreigeYarnWt100Yds15 = @USRGreigeYarnWt100Yds15

     ,CMSARTICOLI.USRGreigeYarnWt100Yds16 = @USRGreigeYarnWt100Yds16

     ,CMSARTICOLI.USRGreigeYarnWt100Yds17 = @USRGreigeYarnWt100Yds17

     ,CMSARTICOLI.USRGreigeYarnWt100Yds18 = @USRGreigeYarnWt100Yds18

     ,CMSARTICOLI.USRGreigeYarnWt100Yds19 = @USRGreigeYarnWt100Yds19

     ,CMSARTICOLI.USRGreigeYarnWt100Yds20 = @USRGreigeYarnWt100Yds20

     ,CMSARTICOLI.USRGreigeYarnTotWarpSelvWt100Yds = @USRGreigeYarnTotWarpSelvWt100Yds

     ,CMSARTICOLI.USRGreigeYarnTotFillWt100Yds = @USRGreigeYarnTotFillWt100Yds

     ,CMSARTICOLI.USRGreigeYarnTotWt100Yds = @USRGreigeYarnTotWt100Yds

     ,CMSARTICOLI.USRGreigeYarnTotWarpSelvEndsPicks = @USRGreigeYarnTotWarpSelvEndsPicks

     ,CMSARTICOLI.USRGreigeYarnTotFillEndsPicks = @USRGreigeYarnTotFillEndsPicks

     ,CMSARTICOLI.USRGreigeCutLengthMin = @USRGreigeCutLengthMin

     ,CMSARTICOLI.USRGreigeCutLength = @USRGreigeCutLength

     ,CMSARTICOLI.USRGreigeCutLengthMax = @USRGreigeCutLengthMax

     ,CMSARTICOLI.USRGreigeCutLengthMinBatchRoll = @USRGreigeCutLengthMinBatchRoll

     ,CMSARTICOLI.ARDSTD = @ARDSTD

     ,CMSARTICOLI.USRGreigeCutLengthMaxBatchRoll = @USRGreigeCutLengthMaxBatchRoll

     ,CMSARTICOLI.ARPSGR = @ARPSGR

     ,CMSARTICOLI.USRGreigeDentsCM = @USRGreigeDentsCM

     ,CMSARTICOLI.USRGreigePlanningStdSetLength = @USRGreigePlanningStdSetLength

     ,CMSARTICOLI.USRGreigePlanningYarnNetFactor = @USRGreigePlanningYarnNetFactor

     ,CMSARTICOLI.USRGreigeBoiloffWarpShrinkagePercent = @USRGreigeBoiloffWarpShrinkagePercent

     ,CMSARTICOLI.USRGreigeBoiloffFillShrinkagePercent = @USRGreigeBoiloffFillShrinkagePercent

     ,CMSARTICOLI.USRGreigeStopsTotal = @USRGreigeStopsTotal

     ,CMSARTICOLI.ARMDMN = @ARMDMN

     ,CMSARTICOLI.ARAGMN = @ARAGMN

     ,CMSARTICOLI.USRCreationDate = @USRCreationDate

     ,CMSARTICOLI.USRRevisionDate = @USRRevisionDate

     ,CMSARTICOLI.USRGreigeLoomBeamStyleRevision = @USRGreigeLoomBeamStyleRevision

     ,CMSARTICOLI.ARTPPD = @ARTPPD

     ,CMSARTICOLI.ARATMN = @ARATMN

     ,CMSARTICOLI.ARMFO2 = @ARMFO2

     ,CMSARTICOLI.UM = 'YD'

     ,CMSARTICOLI.ARCDLV = 200

     ,CMSARTICOLI.USERCRT = @UpdateUserID

    -- 27-Jan-2006 MDP

     ,CMSARTICOLI.USRGreigeRoutingCode = @USRGreigeRouting

    -- 10-Feb-2006 MDP

     ,CMSARTICOLI.CODICEDIVISIONE = @CODICEDIVISIONE

     ,CMSARTICOLI.ARFL06 = @ARFL06

    -- Defaults

     ,ARALIV = 'NO'

     ,ARDCLS = 'N'

     ,ARDISP = 'Y' 

     ,ARESCL = 'N'

     ,ARFLBC = 'N'

     ,ARRGLO = 'D'

     ,ARRGMG = '1'

     ,ARTPGS = 'P'

    -- 09-Jan-2006 MtC

     ,ARFL08 = @ARFL08

    Where CMSARTICOLI.Mlivarticolo = @Mlivarticolo

     and

     CMSARTICOLI.Codicecomponente = @Codicecomponente

    Set @Numeric_YYMMDD = convert (varchar, @USRCreationDate, 12)

    -- 16-Jan-2006 MtC

    --

    Update INFAG00F

    Set  INFAG00F.IGTPDC = 'AR'

     ,INFAG00F.IGTPFM = 'LAI'

     ,INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

     ,INFAG00F.IGCDP1 = ''

     ,INFAG00F.IGCDP2 = ''

     ,INFAG00F.IGCODA = @USRCutsBatchRoll

     ,INFAG00F.IGCODB = @Numeric_YYMMDD

     ,INFAG00F.IGCODC = @USRGreigeAirspacePercent

    Where INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

    Insert Into INFAG00F

      (IGTPDC

      ,IGTPFM

      ,IGCDEL

      ,IGCDP1

      ,IGCDP2

      ,IGCODA

      ,IGCODB

      ,IGCODC

     &nbsp

    Select  'AR'

      ,'LAI'

      ,MLIVARTICOLO+CODICECOMPONENTE

      ,''

      ,''

      ,@USRCutsBatchRoll

      ,@Numeric_YYMMDD

      ,@USRGreigeAirspacePercent

    From  CMSARTICOLI

    Where  CMSARTICOLI.Mlivarticolo = @Mlivarticolo

      and

      CMSARTICOLI.Codicecomponente = @Codicecomponente

    and not exists

      (Select ''

      From INFAG00F

      Where INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

     &nbsp

     

    ------------------------------------------------------------------------------

    ------------------------------------------------------------------------------

    ------------------------------------------------------------------------------

    --

    -- T h i s   s e c t i o n   o f   c o d e   w i l l   c o l l e c t  t h e   d a t a

    --

    -- n e e d e d   f o r   c a l c u l a t i n g   F i b e r   D y i n g   F a c t o r s .

    --

    --

    -- Create a temporary table to store unique yarns by Yarn Category Revision, Yarn Type and Yarn Wt.

    -- If a yarn has a Type of 'W' (Warp) or 'S' (Selvage) then combine the Yarn Wt (lbs/100 yds)

    -- and set the Type to 'W'.  First combine selvage yarns with like warp yarns.  Next combine

    -- the remaining selvage yarns with the most prominent warp yarn (by weight) that have not

    -- been flaged as having a selvage yarn added to it.  If all warp yarns have been flaged as having

    -- a selvage yarn added to them then combine the selvage yarn with the most prominent warp yarn (by weight).

    --

    create table #UniqueYarnsForFiberDyeFactors

      (YarnRecNo decimal(2,0) PRIMARY KEY

      ,YarnCatRev varchar(20)

      ,YarnType varchar(1)

      ,YarnWtLb100Yd float

      ,YarnSequence varchar(1)

      ,YarnSelvageInserted varchar(1)

     &nbsp

    -- Execute the unique yarn stored procedure to load the temp table #UniqueYarnsForFiberDyeFactors.

    --

    EXECUTE BAF_SP_Populate_Table_UniqueYarnsForFiberDyeFactors

     @MLIVARTICOLO = @MLIVARTICOLO

     ,@CODICECOMPONENTE = @CODICECOMPONENTE

     ,@20GreigeYarnCategoryRevision01 = @USRGreigeYarnCategoryRevision01

     ,@20GreigeYarnCategoryRevision02 = @USRGreigeYarnCategoryRevision02

     ,@20GreigeYarnCategoryRevision03 = @USRGreigeYarnCategoryRevision03

     ,@20GreigeYarnCategoryRevision04 = @USRGreigeYarnCategoryRevision04

     ,@20GreigeYarnCategoryRevision05 = @USRGreigeYarnCategoryRevision05

     ,@20GreigeYarnCategoryRevision06 = @USRGreigeYarnCategoryRevision06

     ,@20GreigeYarnCategoryRevision07 = @USRGreigeYarnCategoryRevision07

     ,@20GreigeYarnCategoryRevision08 = @USRGreigeYarnCategoryRevision08

     ,@20GreigeYarnCategoryRevision09 = @USRGreigeYarnCategoryRevision09

     ,@20GreigeYarnCategoryRevision10 = @USRGreigeYarnCategoryRevision10

     ,@20GreigeYarnCategoryRevision11 = @USRGreigeYarnCategoryRevision11

     ,@20GreigeYarnCategoryRevision12 = @USRGreigeYarnCategoryRevision12

     ,@20GreigeYarnCategoryRevision13 = @USRGreigeYarnCategoryRevision13

     ,@20GreigeYarnCategoryRevision14 = @USRGreigeYarnCategoryRevision14

     ,@20GreigeYarnCategoryRevision15 = @USRGreigeYarnCategoryRevision15

     ,@20GreigeYarnCategoryRevision16 = @USRGreigeYarnCategoryRevision16

     ,@20GreigeYarnCategoryRevision17 = @USRGreigeYarnCategoryRevision17

     ,@20GreigeYarnCategoryRevision18 = @USRGreigeYarnCategoryRevision18

     ,@20GreigeYarnCategoryRevision19 = @USRGreigeYarnCategoryRevision19

     ,@20GreigeYarnCategoryRevision20 = @USRGreigeYarnCategoryRevision20

     ,@20GreigeYarnWt100Yds01 = @USRGreigeYarnWt100Yds01

     ,@20GreigeYarnWt100Yds02 = @USRGreigeYarnWt100Yds02

     ,@20GreigeYarnWt100Yds03 = @USRGreigeYarnWt100Yds03

     ,@20GreigeYarnWt100Yds04 = @USRGreigeYarnWt100Yds04

     ,@20GreigeYarnWt100Yds05 = @USRGreigeYarnWt100Yds05

     ,@20GreigeYarnWt100Yds06 = @USRGreigeYarnWt100Yds06

     ,@20GreigeYarnWt100Yds07 = @USRGreigeYarnWt100Yds07

     ,@20GreigeYarnWt100Yds08 = @USRGreigeYarnWt100Yds08

     ,@20GreigeYarnWt100Yds09 = @USRGreigeYarnWt100Yds09

     ,@20GreigeYarnWt100Yds10 = @USRGreigeYarnWt100Yds10

     ,@20GreigeYarnWt100Yds11 = @USRGreigeYarnWt100Yds11

     ,@20GreigeYarnWt100Yds12 = @USRGreigeYarnWt100Yds12

     ,@20GreigeYarnWt100Yds13 = @USRGreigeYarnWt100Yds13

     ,@20GreigeYarnWt100Yds14 = @USRGreigeYarnWt100Yds14

     ,@20GreigeYarnWt100Yds15 = @USRGreigeYarnWt100Yds15

     ,@20GreigeYarnWt100Yds16 = @USRGreigeYarnWt100Yds16

     ,@20GreigeYarnWt100Yds17 = @USRGreigeYarnWt100Yds17

     ,@20GreigeYarnWt100Yds18 = @USRGreigeYarnWt100Yds18

     ,@20GreigeYarnWt100Yds19 = @USRGreigeYarnWt100Yds19

     ,@20GreigeYarnWt100Yds20 = @USRGreigeYarnWt100Yds20

     ,@20GreigeYarnType01 = @USRGreigeYarnType01

     ,@20GreigeYarnType02 = @USRGreigeYarnType02

     ,@20GreigeYarnType03 = @USRGreigeYarnType03

     ,@20GreigeYarnType04 = @USRGreigeYarnType04

     ,@20GreigeYarnType05 = @USRGreigeYarnType05

     ,@20GreigeYarnType06 = @USRGreigeYarnType06

     ,@20GreigeYarnType07 = @USRGreigeYarnType07

     ,@20GreigeYarnType08 = @USRGreigeYarnType08

     ,@20GreigeYarnType09 = @USRGreigeYarnType09

     ,@20GreigeYarnType10 = @USRGreigeYarnType10

     ,@20GreigeYarnType11 = @USRGreigeYarnType11

     ,@20GreigeYarnType12 = @USRGreigeYarnType12

     ,@20GreigeYarnType13 = @USRGreigeYarnType13

     ,@20GreigeYarnType14 = @USRGreigeYarnType14

     ,@20GreigeYarnType15 = @USRGreigeYarnType15

     ,@20GreigeYarnType16 = @USRGreigeYarnType16

     ,@20GreigeYarnType17 = @USRGreigeYarnType17

     ,@20GreigeYarnType18 = @USRGreigeYarnType18

     ,@20GreigeYarnType19 = @USRGreigeYarnType19

     ,@20GreigeYarnType20 = @USRGreigeYarnType20

     ,@20GreigeYarnSequence01 = @USRGreigeYarnSequence01

     ,@20GreigeYarnSequence02 = @USRGreigeYarnSequence02

     ,@20GreigeYarnSequence03 = @USRGreigeYarnSequence03

     ,@20GreigeYarnSequence04 = @USRGreigeYarnSequence04

     ,@20GreigeYarnSequence05 = @USRGreigeYarnSequence05

     ,@20GreigeYarnSequence06 = @USRGreigeYarnSequence06

     ,@20GreigeYarnSequence07 = @USRGreigeYarnSequence07

     ,@20GreigeYarnSequence08 = @USRGreigeYarnSequence08

     ,@20GreigeYarnSequence09 = @USRGreigeYarnSequence09

     ,@20GreigeYarnSequence10 = @USRGreigeYarnSequence10

     ,@20GreigeYarnSequence11 = @USRGreigeYarnSequence11

     ,@20GreigeYarnSequence12 = @USRGreigeYarnSequence12

     ,@20GreigeYarnSequence13 = @USRGreigeYarnSequence13

     ,@20GreigeYarnSequence14 = @USRGreigeYarnSequence14

     ,@20GreigeYarnSequence15 = @USRGreigeYarnSequence15

     ,@20GreigeYarnSequence16 = @USRGreigeYarnSequence16

     ,@20GreigeYarnSequence17 = @USRGreigeYarnSequence17

     ,@20GreigeYarnSequence18 = @USRGreigeYarnSequence18

     ,@20GreigeYarnSequence19 = @USRGreigeYarnSequence19

     ,@20GreigeYarnSequence20 = @USRGreigeYarnSequence20

     ,@20GreigeYarnTotWt100Yds = @USRGreigeYarnTotWt100Yds

    -- Now that the temp table #UniqueYarnsForFiberDyeFactors is loaded with unique yarns that exist on the ML20

    -- being updated or inserted, we can now start to check ML60, ML70 and ML80 to determine what fiber

    -- data is needed for the Fiber Dyeing Factors calculations.

    --

    --

    -- Create a temporary table to store unique fibers by Fiber Dye Category

    -- that are used in the yarns that are used in the ML20 being updated or inserted.

    --

    create table #UniqueFibersForFiberDyeFactors

      (FiberRecNo  decimal(2,0)

      ,FiberCode  varchar(6)

      ,FiberDyeCat  varchar(1)

      ,FiberPercentagePerYarn float

      ,FiberType  varchar(5)

      ,FiberTradeName  varchar(10)

      ,FiberWtLb100Yd  float

      ,FiberOriginalYarnCatRev varchar(20)

      ,FiberTakeUpFactor float

      ,FiberYarnType  varchar(1)

     &nbsp

    -- Because a greige style (ML20) can only have a max of 20 different yarns

    -- we must loop 20 time selecting each yarn from the temp table #UniqueYarnsForFiberDyeFactors.

    -- Each yarn category revision that exists on the ML20 will be passed to the stored procedure

    -- BAF_SP_Populate_Table_UniqueFibersForFiberDyeFactors.  The stored procedure will arrange and

    -- collect additional data needed for Fiber Dyeing Factor CALCULATIONS.

    -- See comments in stored procedure BAF_SP_Populate_Table_UniqueFibersForFiberDyeFactors.

    --

    set @YarnRecNo = 0

    start_of_loop:

    set @YarnRecNo = @YarnRecNo + 1

    if @YarnRecNo > 20

     goto exit_loop

    set @YarnCatRev = ''

    set @YarnType = ''

    set @YarnWtLb100Yd = 0

    select @YarnCatRev = uy.YarnCatRev

     ,@YarnType = uy.YarnType

     ,@YarnWtLb100Yd = uy.YarnWtLb100Yd

     ,@YarnSequence = uy.YarnSequence

    from #UniqueYarnsForFiberDyeFactors uy

    where uy.YarnRecNo = @YarnRecNo

    if @YarnCatRev <> ''

     execute BAF_SP_Populate_Table_UniqueFibersForFiberDyeFactors

      @SPYarnCatRev  = @YarnCatRev

      ,@SPYarnType  = @YarnType

      ,@SPYarnWtLb100Yd = @YarnWtLb100Yd

      ,@SPYarnTakeupFactor = 0

      ,@SPOriginalYarnCatRev = @YarnCatRev

      ,@SPYarnPly  = 0

    goto start_of_loop

    exit_loop:

    -- At this point the fiber percentage stored on the temp table #UniqueFibersForFiberDyeFactors

    -- could be one of two percent values.

    --

    -- If the yarns that exist on ML20 are from a ML80 yarns (purchased yarns) or from a ML70 yarns

    -- (spun yarns) the percentage will be the amount of each fiber used to create the ML80 yarn

    -- or the ML70 yarn.

    --

    -- If the yarns that exist on ML20 are a ML60 yarn the fiber percentage will be calculated depending

    -- on if the ML60 yarn is made of ML80 or ML70 yarns.

    --

    -- For ML80 yarns the percentage will calculated by carrying the ply from the original ML60 yarn

    -- that exist on the ML20.  Because a ML60 yarn can be created from other ML60 yarns we must keep

    -- the sum of plies form ML60 yarns as we drive down to the lowest level ML80 yarn.  From the ML80

    -- yarn multiply the drawn diner by the sum of the plies from ML60 yarns.

    --

    -- For ML70 yarns the percentage will calculated by also carrying the ply from the original ML60 yarn

    -- that exist on the ML20.  Again, because a ML60 yarn can be created from other ML60 yarns we must

    -- calculate the sum of the plies form ML60 yarns as we drive down to the lowest level ML70 yarn.

    -- From the ML70 yarn divide the Yarn Count Denier Factor by the Yarn Count to get the diner.

    -- Multiply the diner by the sum of the plies from ML60 yarns.

    --

    -- To get the correct fiber percentage of each fiber used to create each ML60 yarn that exist

    -- on the ML20 that will be used in calculating the fiber wt divide the fiber percentage by

    -- the sum of the fiber percentages where the original ML60 yarn category and revision are

    -- equal and the fiber yarn types ('W' or 'S') are equal.

    --

    --

    update #UniqueFibersForFiberDyeFactors

    set #UniqueFibersForFiberDyeFactors.FiberPercentagePerYarn =

     #UniqueFibersForFiberDyeFactors.FiberPercentagePerYarn /

       (select sum (uf2.FiberPercentagePerYarn)

       from #UniqueFibersForFiberDyeFactors uf2

       where uf2.FiberOriginalYarnCatRev = #UniqueFibersForFiberDyeFactors.FiberOriginalYarnCatRev

       and uf2.FiberYarnType = #UniqueFibersForFiberDyeFactors.FiberYarnType

      &nbsp

    where (select sum (uf3.FiberPercentagePerYarn)

     from #UniqueFibersForFiberDyeFactors uf3

     where uf3.FiberOriginalYarnCatRev = #UniqueFibersForFiberDyeFactors.FiberOriginalYarnCatRev

     and uf3.FiberYarnType = #UniqueFibersForFiberDyeFactors.FiberYarnType

    &nbsp <> 0

    -- Now create a temp table that will be used to store the fiber data by Dye Category, Fiber Type and Fiber Wt.

    --

    create table #UniqueFibersForFiberDyeFactors_2

      (FiberDyeCat  varchar(1)

      ,FiberType  varchar(5)

      ,FiberTradeName  varchar(10)

      ,FiberWtLb100Yd  float

     &nbsp

    -- Slect data from the first fiber temp table, #UniqueFibersForFiberDyeFactors, to be loaded to the second

    -- friber temp table, #UniqueFibersForFiberDyeFactors_2.  Calculate the fiber wt in grams/linier yard

    -- and sort by the calculated fiber wt.

    --

    insert into #UniqueFibersForFiberDyeFactors_2

     (FiberDyeCat

     ,FiberType

     ,FiberTradeName

     ,FiberWtLb100Yd

    &nbsp

    select uf1.FiberDyeCat

     ,uf1.FiberType

     ,uf1.FiberTradeName

     ,round (sum (((uf1.FiberWtLb100Yd * uf1.FiberTakeupFactor * 0.99 * uf1.FiberPercentagePerYarn) / 100) * 453.59237), 2)

    from #UniqueFibersForFiberDyeFactors uf1

    where uf1.FiberDyeCat = (select min(uf2.FiberDyeCat)

        from #UniqueFibersForFiberDyeFactors uf2

        where uf2.FiberDyeCat = uf1.FiberDyeCat

       &nbsp

    and uf1.FiberType =  (select min(uf2.FiberType)

        from #UniqueFibersForFiberDyeFactors uf2

        where uf2.FiberType = uf1.FiberType

       &nbsp

    group by uf1.FiberDyeCat,

      uf1.FiberType,

      uf1.FiberTradeName

    order by round (sum (((uf1.FiberWtLb100Yd * uf1.FiberTakeupFactor * 0.99 * uf1.FiberPercentagePerYarn) / 100) * 453.59237), 2) desc

    -- Initialize all Fiber Dying Factor local variables.

    --

    set @USRGreiDyeFactFiberDyeCategory01 = ''

    set @USRGreiDyeFactFiberDyeCategory02 = ''

    set @USRGreiDyeFactFiberDyeCategory03 = ''

    set @USRGreiDyeFactFiberDyeCategory04 = ''

    set @USRGreiDyeFactFiberDyeCategory05 = ''

    set @USRGreiDyeFactFiberDyeCategory06 = ''

    set @USRGreiDyeFactFiberDyeCategory07 = ''

    set @USRGreiDyeFactFiberDyeCategory08 = ''

    set @USRGreiDyeFactFiberDyeCategory09 = ''

    set @USRGreiDyeFactFiberDyeCategory10 = ''

    set @USRGreiDyeFactFiberPercent01 = 0

    set @USRGreiDyeFactFiberPercent02 = 0

    set @USRGreiDyeFactFiberPercent03 = 0

    set @USRGreiDyeFactFiberPercent04 = 0

    set @USRGreiDyeFactFiberPercent05 = 0

    set @USRGreiDyeFactFiberPercent06 = 0

    set @USRGreiDyeFactFiberPercent07 = 0

    set @USRGreiDyeFactFiberPercent08 = 0

    set @USRGreiDyeFactFiberPercent09 = 0

    set @USRGreiDyeFactFiberPercent10 = 0

    set @USRGreiDyeFactFiberType01 = ''

    set @USRGreiDyeFactFiberType02 = ''

    set @USRGreiDyeFactFiberType03 = ''

    set @USRGreiDyeFactFiberType04 = ''

    set @USRGreiDyeFactFiberType05 = ''

    set @USRGreiDyeFactFiberType06 = ''

    set @USRGreiDyeFactFiberType07 = ''

    set @USRGreiDyeFactFiberType08 = ''

    set @USRGreiDyeFactFiberType09 = ''

    set @USRGreiDyeFactFiberType10 = ''

    set @USRGreiDyeFactFiberTradeName01 = ''

    set @USRGreiDyeFactFiberTradeName02 = ''

    set @USRGreiDyeFactFiberTradeName03 = ''

    set @USRGreiDyeFactFiberTradeName04 = ''

    set @USRGreiDyeFactFiberTradeName05 = ''

    set @USRGreiDyeFactFiberTradeName06 = ''

    set @USRGreiDyeFactFiberTradeName07 = ''

    set @USRGreiDyeFactFiberTradeName08 = ''

    set @USRGreiDyeFactFiberTradeName09 = ''

    set @USRGreiDyeFactFiberTradeName10 = ''

    set @USRGreiDyeFactFiberGramsLinearYd01 = 0

    set @USRGreiDyeFactFiberGramsLinearYd02 = 0

    set @USRGreiDyeFactFiberGramsLinearYd03 = 0

    set @USRGreiDyeFactFiberGramsLinearYd04 = 0

    set @USRGreiDyeFactFiberGramsLinearYd05 = 0

    set @USRGreiDyeFactFiberGramsLinearYd06 = 0

    set @USRGreiDyeFactFiberGramsLinearYd07 = 0

    set @USRGreiDyeFactFiberGramsLinearYd08 = 0

    set @USRGreiDyeFactFiberGramsLinearYd09 = 0

    set @USRGreiDyeFactFiberGramsLinearYd10 = 0

    set @USRGreiDyeFactTotGrLinearYdByDayCat1 = 0

    set @USRGreiDyeFactTotGrLinearYdByDayCat2 = 0

    set @USRGreiDyeFactTotGrLinearYdByDayCat3 = 0

    set @USRGreiDyeFactTotGrLinearYdByDayCat4 = 0

    set @USRGreiDyeFactTotGrLinearYdByDayCat5 = 0

    set @USRGreiDyeFactTotGrLinearYdByDayCat6 = 0

    set @USRGreiDyeFactTotGrLinearYdByDayCat7 = 0

    set @USRGreiDyeFactTotGrLinearYdByDayCat8 = 0

    set @USRGreiDyeFactTotGrLinearYdByDayCat9 = 0

    set @USRGreiDyeFactTotGrLinearYdByDayCat10 = 0

    set @USRGreiDyeFactTotGrLinearYd = 0

    set @USRGreiDyeFactTotWt100Yds = 0

    -- Featch the rows stored in the temp table #UniqueFibersForFiberDyeFactors_2 to be dosplayed on the form.

    --

    declare FDF_Cursor cursor for

     select FiberDyeCat

      ,FiberType

      ,FiberTradeName

      ,FiberWtLb100Yd

     from #UniqueFibersForFiberDyeFactors_2

    open FDF_Cursor

     Fetch Next from FDF_Cursor into  @USRGreiDyeFactFiberDyeCategory01

          ,@USRGreiDyeFactFiberType01

          ,@USRGreiDyeFactFiberTradeName01

          ,@USRGreiDyeFactFiberGramsLinearYd01

     if @@fetch_status <> 0

      goto end_fetch

     Fetch Next from FDF_Cursor into  @USRGreiDyeFactFiberDyeCategory02

          ,@USRGreiDyeFactFiberType02

          ,@USRGreiDyeFactFiberTradeName02

          ,@USRGreiDyeFactFiberGramsLinearYd02

     if @@fetch_status <> 0

      goto end_fetch

     Fetch Next from FDF_Cursor into  @USRGreiDyeFactFiberDyeCategory03

          ,@USRGreiDyeFactFiberType03

          ,@USRGreiDyeFactFiberTradeName03

          ,@USRGreiDyeFactFiberGramsLinearYd03

     if @@fetch_status <> 0

      goto end_fetch

     Fetch Next from FDF_Cursor into  @USRGreiDyeFactFiberDyeCategory04

          ,@USRGreiDyeFactFiberType04

          ,@USRGreiDyeFactFiberTradeName04

          ,@USRGreiDyeFactFiberGramsLinearYd04

     if @@fetch_status <> 0

      goto end_fetch

     Fetch Next from FDF_Cursor into  @USRGreiDyeFactFiberDyeCategory05

          ,@USRGreiDyeFactFiberType05

          ,@USRGreiDyeFactFiberTradeName05

          ,@USRGreiDyeFactFiberGramsLinearYd05

     if @@fetch_status <> 0

      goto end_fetch

     Fetch Next from FDF_Cursor into  @USRGreiDyeFactFiberDyeCategory06

          ,@USRGreiDyeFactFiberType06

          ,@USRGreiDyeFactFiberTradeName06

          ,@USRGreiDyeFactFiberGramsLinearYd06

     if @@fetch_status <> 0

      goto end_fetch

     Fetch Next from FDF_Cursor into  @USRGreiDyeFactFiberDyeCategory07

          ,@USRGreiDyeFactFiberType07

          ,@USRGreiDyeFactFiberTradeName07

          ,@USRGreiDyeFactFiberGramsLinearYd07

     if @@fetch_status <> 0

      goto end_fetch

     Fetch Next from FDF_Cursor into  @USRGreiDyeFactFiberDyeCategory08

          ,@USRGreiDyeFactFiberType08

          ,@USRGreiDyeFactFiberTradeName08

          ,@USRGreiDyeFactFiberGramsLinearYd08

     if @@fetch_status <> 0

      goto end_fetch

     Fetch Next from FDF_Cursor into  @USRGreiDyeFactFiberDyeCategory09

          ,@USRGreiDyeFactFiberType09

          ,@USRGreiDyeFactFiberTradeName09

          ,@USRGreiDyeFactFiberGramsLinearYd09

     if @@fetch_status <> 0

      goto end_fetch

     Fetch Next from FDF_Cursor into  @USRGreiDyeFactFiberDyeCategory10

          ,@USRGreiDyeFactFiberType10

          ,@USRGreiDyeFactFiberTradeName10

          ,@USRGreiDyeFactFiberGramsLinearYd10

    end_fetch:

    close FDF_Cursor

    deallocate FDF_Cursor

    -- Sum Fiber wt by Fiber Dye category.

    --

    select @USRGreiDyeFactTotGrLinearYdByDayCat1 = round (sum ((((FiberWtLb100Yd * FiberTakeupFactor * 0.99 * FiberPercentagePerYarn) / 100) * 453.59237)), 2)

    from #UniqueFibersForFiberDyeFactors

    where FiberDyeCat = 1

    select @USRGreiDyeFactTotGrLinearYdByDayCat2 = round (sum ((((FiberWtLb100Yd * FiberTakeupFactor * 0.99 * FiberPercentagePerYarn) / 100) * 453.59237)), 2)

    from #UniqueFibersForFiberDyeFactors

    where FiberDyeCat = 2

    select @USRGreiDyeFactTotGrLinearYdByDayCat3 = round (sum ((((FiberWtLb100Yd * FiberTakeupFactor * 0.99 * FiberPercentagePerYarn) / 100) * 453.59237)), 2)

    from #UniqueFibersForFiberDyeFactors

    where FiberDyeCat = 3

    select @USRGreiDyeFactTotGrLinearYdByDayCat4 = round (sum ((((FiberWtLb100Yd * FiberTakeupFactor * 0.99 * FiberPercentagePerYarn) / 100) * 453.59237)), 2)

    from #UniqueFibersForFiberDyeFactors

    where FiberDyeCat = 4

    select @USRGreiDyeFactTotGrLinearYdByDayCat5 = round (sum ((((FiberWtLb100Yd * FiberTakeupFactor * 0.99 * FiberPercentagePerYarn) / 100) * 453.59237)), 2)

    from #UniqueFibersForFiberDyeFactors

    where FiberDyeCat = 5

    select @USRGreiDyeFactTotGrLinearYdByDayCat6 = round (sum ((((FiberWtLb100Yd * FiberTakeupFactor * 0.99 * FiberPercentagePerYarn) / 100) * 453.59237)), 2)

    from #UniqueFibersForFiberDyeFactors

    where FiberDyeCat = 6

    select @USRGreiDyeFactTotGrLinearYdByDayCat7 = round (sum ((((FiberWtLb100Yd * FiberTakeupFactor * 0.99 * FiberPercentagePerYarn) / 100) * 453.59237)), 2)

    from #UniqueFibersForFiberDyeFactors

    where FiberDyeCat = 7

    select @USRGreiDyeFactTotGrLinearYdByDayCat8 = round (sum ((((FiberWtLb100Yd * FiberTakeupFactor * 0.99 * FiberPercentagePerYarn) / 100) * 453.59237)), 2)

    from #UniqueFibersForFiberDyeFactors

    where FiberDyeCat = 8

    select @USRGreiDyeFactTotGrLinearYdByDayCat9 = round (sum ((((FiberWtLb100Yd * FiberTakeupFactor * 0.99 * FiberPercentagePerYarn) / 100) * 453.59237)), 2)

    from #UniqueFibersForFiberDyeFactors

    where FiberDyeCat = 9

    select @USRGreiDyeFactTotGrLinearYdByDayCat10 = round (sum ((((FiberWtLb100Yd * FiberTakeupFactor * 0.99 * FiberPercentagePerYarn) / 100) * 453.59237)), 2)

    from #UniqueFibersForFiberDyeFactors

    where FiberDyeCat = 10

    -- Sum Fiber Wt for all Fiber Dye Categories.

    --

    select @USRGreiDyeFactTotGrLinearYd = round (sum ((((FiberWtLb100Yd * FiberTakeupFactor * 0.99 * FiberPercentagePerYarn) / 100) * 453.59237)), 2)

    from #UniqueFibersForFiberDyeFactors

    -- Calculate the percentage of each fiber used to create the ML20 (greige style).

    --

    if @USRGreiDyeFactTotGrLinearYd <> 0

    begin

    set @USRGreiDyeFactFiberPercent01 = round ((@USRGreiDyeFactFiberGramsLinearYd01 / @USRGreiDyeFactTotGrLinearYd) * 100, 0)

    set @USRGreiDyeFactFiberPercent02 = round ((@USRGreiDyeFactFiberGramsLinearYd02 / @USRGreiDyeFactTotGrLinearYd) * 100, 0)

    set @USRGreiDyeFactFiberPercent03 = round ((@USRGreiDyeFactFiberGramsLinearYd03 / @USRGreiDyeFactTotGrLinearYd) * 100, 0)

    set @USRGreiDyeFactFiberPercent04 = round ((@USRGreiDyeFactFiberGramsLinearYd04 / @USRGreiDyeFactTotGrLinearYd) * 100, 0)

    set @USRGreiDyeFactFiberPercent05 = round ((@USRGreiDyeFactFiberGramsLinearYd05 / @USRGreiDyeFactTotGrLinearYd) * 100, 0)

    set @USRGreiDyeFactFiberPercent06 = round ((@USRGreiDyeFactFiberGramsLinearYd06 / @USRGreiDyeFactTotGrLinearYd) * 100, 0)

    set @USRGreiDyeFactFiberPercent07 = round ((@USRGreiDyeFactFiberGramsLinearYd07 / @USRGreiDyeFactTotGrLinearYd) * 100, 0)

    set @USRGreiDyeFactFiberPercent08 = round ((@USRGreiDyeFactFiberGramsLinearYd08 / @USRGreiDyeFactTotGrLinearYd) * 100, 0)

    set @USRGreiDyeFactFiberPercent09 = round ((@USRGreiDyeFactFiberGramsLinearYd09 / @USRGreiDyeFactTotGrLinearYd) * 100, 0)

    set @USRGreiDyeFactFiberPercent10 = round ((@USRGreiDyeFactFiberGramsLinearYd10 / @USRGreiDyeFactTotGrLinearYd) * 100, 0)

    end

    -- Convert Fiber Wt in grams/linear yard to pounds/100 yards.

    --

    -- 1 grams = 0.00220462262 pounds

    -- 1 pounds = 453.59237 grams

    --

    set @USRGreiDyeFactTotWt100Yds = round ((@USRGreiDyeFactTotGrLinearYd * 100) / 453.59237, 2)

    -- Update the ML20 Fiber Dying Factor data.

    --

    update CMSARTICOLI

    set CMSARTICOLI.USRGreiDyeFactFiberDyeCategory01 = @USRGreiDyeFactFiberDyeCategory01

     ,CMSARTICOLI.USRGreiDyeFactFiberDyeCategory02 = @USRGreiDyeFactFiberDyeCategory02

     ,CMSARTICOLI.USRGreiDyeFactFiberDyeCategory03 = @USRGreiDyeFactFiberDyeCategory03

     ,CMSARTICOLI.USRGreiDyeFactFiberDyeCategory04 = @USRGreiDyeFactFiberDyeCategory04

     ,CMSARTICOLI.USRGreiDyeFactFiberDyeCategory05 = @USRGreiDyeFactFiberDyeCategory05

     ,CMSARTICOLI.USRGreiDyeFactFiberDyeCategory06 = @USRGreiDyeFactFiberDyeCategory06

     ,CMSARTICOLI.USRGreiDyeFactFiberDyeCategory07 = @USRGreiDyeFactFiberDyeCategory07

     ,CMSARTICOLI.USRGreiDyeFactFiberDyeCategory08 = @USRGreiDyeFactFiberDyeCategory08

     ,CMSARTICOLI.USRGreiDyeFactFiberDyeCategory09 = @USRGreiDyeFactFiberDyeCategory09

     ,CMSARTICOLI.USRGreiDyeFactFiberDyeCategory10 = @USRGreiDyeFactFiberDyeCategory10

     ,CMSARTICOLI.USRGreiDyeFactFiberPercent01 = @USRGreiDyeFactFiberPercent01

     ,CMSARTICOLI.USRGreiDyeFactFiberPercent02 = @USRGreiDyeFactFiberPercent02

     ,CMSARTICOLI.USRGreiDyeFactFiberPercent03 = @USRGreiDyeFactFiberPercent03

     ,CMSARTICOLI.USRGreiDyeFactFiberPercent04 = @USRGreiDyeFactFiberPercent04

     ,CMSARTICOLI.USRGreiDyeFactFiberPercent05 = @USRGreiDyeFactFiberPercent05

     ,CMSARTICOLI.USRGreiDyeFactFiberPercent06 = @USRGreiDyeFactFiberPercent06

     ,CMSARTICOLI.USRGreiDyeFactFiberPercent07 = @USRGreiDyeFactFiberPercent07

     ,CMSARTICOLI.USRGreiDyeFactFiberPercent08 = @USRGreiDyeFactFiberPercent08

     ,CMSARTICOLI.USRGreiDyeFactFiberPercent09 = @USRGreiDyeFactFiberPercent09

     ,CMSARTICOLI.USRGreiDyeFactFiberPercent10 = @USRGreiDyeFactFiberPercent10

     ,CMSARTICOLI.USRGreiDyeFactFiberType01 = @USRGreiDyeFactFiberType01

     ,CMSARTICOLI.USRGreiDyeFactFiberType02 = @USRGreiDyeFactFiberType02

     ,CMSARTICOLI.USRGreiDyeFactFiberType03 = @USRGreiDyeFactFiberType03

     ,CMSARTICOLI.USRGreiDyeFactFiberType04 = @USRGreiDyeFactFiberType04

     ,CMSARTICOLI.USRGreiDyeFactFiberType05 = @USRGreiDyeFactFiberType05

     ,CMSARTICOLI.USRGreiDyeFactFiberType06 = @USRGreiDyeFactFiberType06

     ,CMSARTICOLI.USRGreiDyeFactFiberType07 = @USRGreiDyeFactFiberType07

     ,CMSARTICOLI.USRGreiDyeFactFiberType08 = @USRGreiDyeFactFiberType08

     ,CMSARTICOLI.USRGreiDyeFactFiberType09 = @USRGreiDyeFactFiberType09

     ,CMSARTICOLI.USRGreiDyeFactFiberType10 = @USRGreiDyeFactFiberType10

     ,CMSARTICOLI.USRGreiDyeFactFiberTradeName01 = @USRGreiDyeFactFiberTradeName01

     ,CMSARTICOLI.USRGreiDyeFactFiberTradeName02 = @USRGreiDyeFactFiberTradeName02

     ,CMSARTICOLI.USRGreiDyeFactFiberTradeName03 = @USRGreiDyeFactFiberTradeName03

     ,CMSARTICOLI.USRGreiDyeFactFiberTradeName04 = @USRGreiDyeFactFiberTradeName04

     ,CMSARTICOLI.USRGreiDyeFactFiberTradeName05 = @USRGreiDyeFactFiberTradeName05

     ,CMSARTICOLI.USRGreiDyeFactFiberTradeName06 = @USRGreiDyeFactFiberTradeName06

     ,CMSARTICOLI.USRGreiDyeFactFiberTradeName07 = @USRGreiDyeFactFiberTradeName07

     ,CMSARTICOLI.USRGreiDyeFactFiberTradeName08 = @USRGreiDyeFactFiberTradeName08

     ,CMSARTICOLI.USRGreiDyeFactFiberTradeName09 = @USRGreiDyeFactFiberTradeName09

     ,CMSARTICOLI.USRGreiDyeFactFiberTradeName10 = @USRGreiDyeFactFiberTradeName10

     ,CMSARTICOLI.USRGreiDyeFactFiberGramsLinearYd01 = @USRGreiDyeFactFiberGramsLinearYd01

     ,CMSARTICOLI.USRGreiDyeFactFiberGramsLinearYd02 = @USRGreiDyeFactFiberGramsLinearYd02

     ,CMSARTICOLI.USRGreiDyeFactFiberGramsLinearYd03 = @USRGreiDyeFactFiberGramsLinearYd03

     ,CMSARTICOLI.USRGreiDyeFactFiberGramsLinearYd04 = @USRGreiDyeFactFiberGramsLinearYd04

     ,CMSARTICOLI.USRGreiDyeFactFiberGramsLinearYd05 = @USRGreiDyeFactFiberGramsLinearYd05

     ,CMSARTICOLI.USRGreiDyeFactFiberGramsLinearYd06 = @USRGreiDyeFactFiberGramsLinearYd06

     ,CMSARTICOLI.USRGreiDyeFactFiberGramsLinearYd07 = @USRGreiDyeFactFiberGramsLinearYd07

     ,CMSARTICOLI.USRGreiDyeFactFiberGramsLinearYd08 = @USRGreiDyeFactFiberGramsLinearYd08

     ,CMSARTICOLI.USRGreiDyeFactFiberGramsLinearYd09 = @USRGreiDyeFactFiberGramsLinearYd09

     ,CMSARTICOLI.USRGreiDyeFactFiberGramsLinearYd10 = @USRGreiDyeFactFiberGramsLinearYd10

     ,CMSARTICOLI.USRGreiDyeFactTotGrLinearYdByDayCat1 = @USRGreiDyeFactTotGrLinearYdByDayCat1

     ,CMSARTICOLI.USRGreiDyeFactTotGrLinearYdByDayCat2 = @USRGreiDyeFactTotGrLinearYdByDayCat2

     ,CMSARTICOLI.USRGreiDyeFactTotGrLinearYdByDayCat3 = @USRGreiDyeFactTotGrLinearYdByDayCat3

     ,CMSARTICOLI.USRGreiDyeFactTotGrLinearYdByDayCat4 = @USRGreiDyeFactTotGrLinearYdByDayCat4

     ,CMSARTICOLI.USRGreiDyeFactTotGrLinearYdByDayCat5 = @USRGreiDyeFactTotGrLinearYdByDayCat5

     ,CMSARTICOLI.USRGreiDyeFactTotGrLinearYdByDayCat6 = @USRGreiDyeFactTotGrLinearYdByDayCat6

     ,CMSARTICOLI.USRGreiDyeFactTotGrLinearYdByDayCat7 = @USRGreiDyeFactTotGrLinearYdByDayCat7

     ,CMSARTICOLI.USRGreiDyeFactTotGrLinearYdByDayCat8 = @USRGreiDyeFactTotGrLinearYdByDayCat8

     ,CMSARTICOLI.USRGreiDyeFactTotGrLinearYdByDayCat9 = @USRGreiDyeFactTotGrLinearYdByDayCat9

     ,CMSARTICOLI.USRGreiDyeFactTotGrLinearYdByDayCat10 = @USRGreiDyeFactTotGrLinearYdByDayCat10

     ,CMSARTICOLI.USRGreiDyeFactTotGrLinearYd = @USRGreiDyeFactTotGrLinearYd

     ,CMSARTICOLI.USRGreiDyeFactTotWt100Yds = @USRGreiDyeFactTotWt100Yds

    where CMSARTICOLI.Mlivarticolo = @Mlivarticolo

    and CMSARTICOLI.Codicecomponente = @Codicecomponente

     

    -- Now that we are finished we can drop the temporary tables.

    --

    drop table #UniqueYarnsForFiberDyeFactors

    drop table #UniqueFibersForFiberDyeFactors

    drop table #UniqueFibersForFiberDyeFactors_2

    -- E n d   o f   c o d e   t o   c a l c u l a t e   F i b e r   D y i n g   F a c t o r s .

    --

    -----------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------

    -- Process ML30

    --

    -- Is there a Loom Beam Style?

    If @USRGreigeLoomBeamStyleRevision > ''

     Set @ML30Code = @USRGreigeLoomBeamStyleRevision

    Else

     Set @ML30Code = @Codicecomponente

    -- 28-Dec-2005

    Set @Bypass_ML30_BOM = 'N'

    -- Does Loom Beam Style equal Greige Style?

    -- 28-Dec-2005

    If @ML30Code = @Codicecomponente

     Begin

      If exists  -- Does the ML 30 record exist?

      (Select 1 

      From Cmsarticoli    

       where Cmsarticoli.Mlivarticolo = '30'

       and Cmsarticoli.Codicecomponente = @ML30Code)

        Begin

         DELETE FROM USRGreigeLoomBeamStyleRevisionTable  

           where USRGreigeLoomBeamStyleRevision =  @ML30Code 

         DELETE FROM  Cmsarticoli    

           where Cmsarticoli.Mlivarticolo = '30'

           and Cmsarticoli.Codicecomponente = @ML30Code

         GOTO Insert_ML30

    -- Need to also delete the BOM Header and Detail

        End

      Else

       GOTO Insert_ML30

     End

    Else

     Begin

      If exists  -- Does the ML 30 record exist?

       (Select 1 

       From Cmsarticoli    

       where Cmsarticoli.Mlivarticolo = '30'

       and Cmsarticoli.Codicecomponente = @ML30Code)

        Begin

         GOTO Check_for_ML30GrgStyle

        End

      Else

       Begin 

        RAISERROR ('LOOM BEAM STYLE DOES NOT EXIST - ML 30 NOT CREATED', 10, 1)

        GOTO Exit_Trigger

       End

     End 

    Check_for_ML30GrgStyle:

    -- 28-Dec-2005

    Set @Bypass_ML30_BOM = 'Y'

    -- Are there any ML 20 records that use a Loom Style for the ML 20 just updated?

    If (Select Count(*)

    From Cmsarticoli    

    where Cmsarticoli.Mlivarticolo = '20'

     and Cmsarticoli.USRGreigeLoomBeamStyleRevision = @Codicecomponente) > 0

      Begin 

       GOTO ML20_BOM_Process

      End

    Else 

     Begin 

      DELETE FROM USRGreigeLoomBeamStyleRevisionTable  

        where USRGreigeLoomBeamStyleRevision = @Codicecomponente

      DELETE FROM  Cmsarticoli    

       where Cmsarticoli.Mlivarticolo = '30'

       and Cmsarticoli.Codicecomponente = @Codicecomponente

    -- DELETE all existing ML 30 BOM Detail and Header Records for the Product

    -- 28-Dec-2005

      Begin

       If exists

        (Select 1 

        From TESTATADISTINTA    

         where TESTATADISTINTA.MLIVARTICOLO = '30'

         and TESTATADISTINTA.CODICEARTICOLO = @Codicecomponente)

       BEGIN

        Delete

         From TESTATADISTINTA

         where TESTATADISTINTA.MLIVARTICOLO = '30'

         and TESTATADISTINTA.CODICEARTICOLO = @Codicecomponente  

       END

      End

      Begin

       If exists

        (Select 1 

        From COMPONENTIXARTICOLO

         where COMPONENTIXARTICOLO.MLIVARTICOLO = '30'

         and COMPONENTIXARTICOLO.CODICEARTICOLO = @Codicecomponente)

       BEGIN

        Delete

         From COMPONENTIXARTICOLO

         where COMPONENTIXARTICOLO.MLIVARTICOLO = '30'

         and COMPONENTIXARTICOLO.CODICEARTICOLO = @Codicecomponente

       END

      End

      GOTO ML20_BOM_Process

     End

    Insert_ML30:

    Set @ARFLCT = ROUND (@USRGreigeYarnTotWarpSelvEndsPicks, 0)

    Set @ARLGCT = @USRGreigePlanningStdLoomBeamLen

    Set @ARHHCT = @ARATMN

    Set @ARMDMN = ROUND (@USRGreigePlanningStdSetLength, 0)

    INSERT INTO USRGreigeLoomBeamStyleRevisionTable

      (USRGreigeLoomBeamStyleRevision)

     VALUES

      (@ML30Code)

    INSERT INTO CMSARTICOLI

      (MLIVARTICOLO

      ,CODICECOMPONENTE

      ,DESCRIZIONECOMPONENTE

      ,ARDSAG

      ,CODICEDIVISIONE

      ,CODICELINEA

      ,CODICEFORNITORE

      ,ARFG02

      ,TIPOPRODOTTO

      ,ARFICM

      ,ARINFN

      ,ARFLCT

      ,ARCOMP

      ,ARLGCT

      ,ARHHCT

      ,USRGreigeEndsCM

      ,USRGreigePicksCM

      ,UM

      ,ARCDLV

      ,ARMDMN

      ,ARNRLI

      ,ARQU02

      ,ARQU01

      ,USRWarpStyleGroup

      ,ARTPPD

    -- 26-Jan-2006 MDP

      ,USRCreationDate

    -- Defaults

      ,ARALIV

      ,ARDCLS

      ,ARDISP 

      ,ARESCL

      ,ARFLBC

      ,ARRGLO

      ,ARRGMG

      ,ARTPGS)

     VALUES

      ('30'

      ,@ML30Code

      ,@Descrizionecomponente

      ,@Descrizionecomponente

      ,@CODICEDIVISIONE

      ,@CODICELINEA

      ,@CODICEFORNITORE

      ,@ARFG02

      ,@TIPOPRODOTTO

      ,@ARFICM

      ,@ARINFN

      ,@ARFLCT

      ,@ARCOMP

      ,@ARLGCT

      ,@ARHHCT

      ,@USRGreigeEndsCM

      ,@USRGreigePicksCM

      ,'YD'

      ,300

      ,@ARMDMN

      ,@ARNRLI

      ,@USRGreigePlanningStdBeamsPerSet

      ,@StdNbrSectionBeams

      ,@USRWarpStyleGroup

      ,@ARTPPD

    -- 26-Jan-2006 MDP

      ,@USRCreationDate

    -- Defaults

      ,'NO'

      ,'N'

      ,'Y' 

      ,'N'

      ,'N'

      ,'D'

      ,'1'

      ,'P')

    Set @Numeric_YYMMDD = convert (varchar, @USRCreationDate, 12)

    -- 26-Jan-2006 MDP

    --

    Update INFAG00F

    Set  INFAG00F.IGTPDC = 'AR'

     ,INFAG00F.IGTPFM = 'LAI'

     ,INFAG00F.IGCDEL = '30'+@ML30Code

     ,INFAG00F.IGCDP1 = ''

     ,INFAG00F.IGCDP2 = ''

     ,INFAG00F.IGCODB = @Numeric_YYMMDD

    Where INFAG00F.IGCDEL = '30'+@ML30Code

    Insert Into INFAG00F

      (IGTPDC

      ,IGTPFM

      ,IGCDEL

      ,IGCDP1

      ,IGCDP2

      ,IGCODB

     &nbsp

    Select  'AR'

      ,'LAI'

      ,'30'+CODICECOMPONENTE

      ,''

      ,''

      ,@Numeric_YYMMDD

    From  CMSARTICOLI

    Where  CMSARTICOLI.Mlivarticolo = '30'

      and

      CMSARTICOLI.Codicecomponente = @ML30Code

    and not exists

      (Select ''

      From INFAG00F

      Where INFAG00F.IGCDEL = '30'+@ML30Code

     &nbsp

     

    --  INSERT ML 20 & ML 30 BOM Processing here

    ML20_BOM_Process:

     

    -- ML 20 Bill of Material Processing

    -- DELETE all existing ML 20 BOM Detail and Header Records for the Product

    If exists

    (Select 1 

    From TESTATADISTINTA    

     where TESTATADISTINTA.MLIVARTICOLO = '20'

     and TESTATADISTINTA.CODICEARTICOLO = @Codicecomponente)

     BEGIN

      Delete

       From TESTATADISTINTA

       where TESTATADISTINTA.MLIVARTICOLO = '20'

       and TESTATADISTINTA.CODICEARTICOLO = @Codicecomponente

     END

    If exists

    (Select 1 

    From COMPONENTIXARTICOLO

     where COMPONENTIXARTICOLO.MLIVARTICOLO = '20'

     and COMPONENTIXARTICOLO.CODICEARTICOLO = @Codicecomponente)

     BEGIN

      Delete

       From COMPONENTIXARTICOLO

       where COMPONENTIXARTICOLO.MLIVARTICOLO = '20'

       and COMPONENTIXARTICOLO.CODICEARTICOLO = @Codicecomponente

     END

    -- 28-Dec-2005

    If @Bypass_ML30_BOM = 'Y'

     GOTO Bypass_ML30_Delete

    -- DELETE all existing ML 30 BOM Detail and Header Records for the Product

    If exists

    (Select 1 

    From TESTATADISTINTA    

     where TESTATADISTINTA.MLIVARTICOLO = '30'

     and TESTATADISTINTA.CODICEARTICOLO = @ML30Code)

     BEGIN

      Delete

       From TESTATADISTINTA

       where TESTATADISTINTA.MLIVARTICOLO = '30'

       and TESTATADISTINTA.CODICEARTICOLO = @ML30Code

     END

    If exists

    (Select 1 

    From COMPONENTIXARTICOLO

     where COMPONENTIXARTICOLO.MLIVARTICOLO = '30'

     and COMPONENTIXARTICOLO.CODICEARTICOLO = @ML30Code)

     BEGIN

      Delete

       From COMPONENTIXARTICOLO

       where COMPONENTIXARTICOLO.MLIVARTICOLO = '30'

       and COMPONENTIXARTICOLO.CODICEARTICOLO = @ML30Code

     END

    Bypass_ML30_Delete:

    -- If the product is made (manufactured) prepare the BOM Header and Detail

    -- Checked at the start of ML20 Process

    -- 27-Jan-2006 MDP

    If @CreateBOM = 'Y'

     GOTO Check_for_Bad_Yarn_Info

    Else

     GOTO Exit_Trigger

    Check_for_Bad_Yarn_Info:

    If @USRGreigeYarnCategoryRevision01 <> ''

     If  @USRGreigeYarnSequence01 is null or @USRGreigeYarnSequence01 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks01 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision02 <> ''

     If  @USRGreigeYarnSequence02 is null or @USRGreigeYarnSequence02 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks02 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision03 <> ''

     If  @USRGreigeYarnSequence03 is null or @USRGreigeYarnSequence03 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks03 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision04 <> ''

     If  @USRGreigeYarnSequence04 is null or @USRGreigeYarnSequence04 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks04 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision05 <> ''

     If  @USRGreigeYarnSequence05 is null or @USRGreigeYarnSequence05 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks05 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision06 <> ''

     If  @USRGreigeYarnSequence06 is null or @USRGreigeYarnSequence06 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks06 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision07 <> ''

     If  @USRGreigeYarnSequence07 is null or @USRGreigeYarnSequence07 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks07 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision08 <> ''

     If  @USRGreigeYarnSequence08 is null or @USRGreigeYarnSequence08 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks08 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision09 <> ''

     If  @USRGreigeYarnSequence09 is null or @USRGreigeYarnSequence09 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks09 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision10 <> ''

     If  @USRGreigeYarnSequence10 is null or @USRGreigeYarnSequence10 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks10 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision11 <> ''

     If  @USRGreigeYarnSequence11 is null or @USRGreigeYarnSequence11 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks11 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision12 <> ''

     If  @USRGreigeYarnSequence12 is null or @USRGreigeYarnSequence12 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks12 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision13 <> ''

     If  @USRGreigeYarnSequence13 is null or @USRGreigeYarnSequence13 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks13 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision14 <> ''

     If  @USRGreigeYarnSequence14 is null or @USRGreigeYarnSequence14 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks14 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision15 <> ''

     If  @USRGreigeYarnSequence15 is null or @USRGreigeYarnSequence15 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks15 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision16 <> ''

     If  @USRGreigeYarnSequence16 is null or @USRGreigeYarnSequence16 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks16 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision17 <> ''

     If  @USRGreigeYarnSequence17 is null or @USRGreigeYarnSequence17 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks17 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision18 <> ''

     If  @USRGreigeYarnSequence18 is null or @USRGreigeYarnSequence18 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks18 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision19 <> ''

     If  @USRGreigeYarnSequence19 is null or @USRGreigeYarnSequence19 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks19 = 0

       GOTO Exit_Trigger

    If @USRGreigeYarnCategoryRevision20 <> ''

     If  @USRGreigeYarnSequence20 is null or @USRGreigeYarnSequence20 = ''

      GOTO Exit_Trigger

     Else

      If @USRGreigeYarnEndsPicks20 = 0

       GOTO Exit_Trigger

    BOM_Process_ML20:

    -- The folowing code is in the build of the ML 30 product

    If @USRGreigeLoomBeamStyleRevision > ''

     Set @ML30Code = @USRGreigeLoomBeamStyleRevision

    Else

     Set @ML30Code = @Codicecomponente

    Set @Currentdate = CONVERT(smalldatetime, GETDATE(), 101)

    Set @CurDate = CONVERT(CHAR(12), GETDATE(), 101)

    Set @Suffissodb = ' '

    Set @NUMSEQUENZA = 1

    Set @NUMALTERNATIVA = 0

    Set @IS_GHOST = 0

    Set @COMPCRIT = 0

    -- Use Fill Waste Factor for Filling BOM

    Set @FillWasteFactor = 1 + (@USRGreigePlanningYarnFillWasteFactor / 100)

    Set @FABBISOGNO = Round(@USRGreigePlanningYarnNetFactor,5)

    INSERT INTO TESTATADISTINTA

     (MLIVARTPADRE

     ,CODARTPADRE

     ,MLIVARTICOLO

     ,CODICEARTICOLO

     ,SUFFISSODB

     ,CODCICLO

     ,DATACREAZIONE

     ,OPERATORE

     ,TIMSTAMP)

     Values

     ('20'

     ,@Codicecomponente  

     ,'20'

     ,@Codicecomponente  

     ,@Suffissodb

     ,@USRGreigeRouting

     ,@Currentdate

     ,'cdsbaftrigger'

     ,@curdate)

    INSERT INTO COMPONENTIXARTICOLO

          (MLIVARTICOLO

     ,CODICEARTICOLO

     ,SUFFISSODB

     ,NUMSEQUENZA

     ,NUMALTERNATIVA

     ,MLIVCOMPONENTE

     ,CODICECOMPONENTE

     ,IS_GHOST

     ,COMPCRIT

     ,FABBISOGNO

     ,STATO

     ,OPERATORE

     ,TIMSTAMP)

          Values

     ('20'

     ,@Codicecomponente  

          ,@Suffissodb

          ,@NUMSEQUENZA

     ,@NUMALTERNATIVA

     ,'30'

     ,@ML30Code

     ,@IS_GHOST     

     ,@COMPCRIT

     ,@FABBISOGNO

     ,'N'

     ,'cdsbaftrigger'

     ,@curdate)

    END_20_30_BOM:

    -- ML 20 BOM - Filling Yarn Products

    -- Create a temporary table to store unique yarns by Yarn Category Revision, Yarn Type and Yarn Wt/100 lb's.

    -- If a yarn has a Type of 'W' (Warp) or 'S' (Selvage) then combine the Yarn Wt/100 lb's and set the Type to 'W'.

    --

    create table #UniqueYarnsForBOM

      (YarnRecNo decimal(2,0) PRIMARY KEY

      ,YarnCatRev varchar(20)

      ,YarnType varchar(1)

      ,YarnWtLb100Yd decimal(5,2)

      ,YarnSequence varchar(1)

    -- 05-Jan-2006 MDP

      ,EndsPicks decimal(5,0)

     &nbsp

    EXECUTE BAF_SP_Populate_Table_UniqueYarnsForBOM

     @MLIVARTICOLO = @MLIVARTICOLO

     ,@CODICECOMPONENTE = @CODICECOMPONENTE

     ,@20GreigeYarnCategoryRevision01 = @USRGreigeYarnCategoryRevision01

     ,@20GreigeYarnCategoryRevision02 = @USRGreigeYarnCategoryRevision02

     ,@20GreigeYarnCategoryRevision03 = @USRGreigeYarnCategoryRevision03

     ,@20GreigeYarnCategoryRevision04 = @USRGreigeYarnCategoryRevision04

     ,@20GreigeYarnCategoryRevision05 = @USRGreigeYarnCategoryRevision05

     ,@20GreigeYarnCategoryRevision06 = @USRGreigeYarnCategoryRevision06

     ,@20GreigeYarnCategoryRevision07 = @USRGreigeYarnCategoryRevision07

     ,@20GreigeYarnCategoryRevision08 = @USRGreigeYarnCategoryRevision08

     ,@20GreigeYarnCategoryRevision09 = @USRGreigeYarnCategoryRevision09

     ,@20GreigeYarnCategoryRevision10 = @USRGreigeYarnCategoryRevision10

     ,@20GreigeYarnCategoryRevision11 = @USRGreigeYarnCategoryRevision11

     ,@20GreigeYarnCategoryRevision12 = @USRGreigeYarnCategoryRevision12

     ,@20GreigeYarnCategoryRevision13 = @USRGreigeYarnCategoryRevision13

     ,@20GreigeYarnCategoryRevision14 = @USRGreigeYarnCategoryRevision14

     ,@20GreigeYarnCategoryRevision15 = @USRGreigeYarnCategoryRevision15

     ,@20GreigeYarnCategoryRevision16 = @USRGreigeYarnCategoryRevision16

     ,@20GreigeYarnCategoryRevision17 = @USRGreigeYarnCategoryRevision17

     ,@20GreigeYarnCategoryRevision18 = @USRGreigeYarnCategoryRevision18

     ,@20GreigeYarnCategoryRevision19 = @USRGreigeYarnCategoryRevision19

     ,@20GreigeYarnCategoryRevision20 = @USRGreigeYarnCategoryRevision20

     ,@20GreigeYarnWt100Yds01 = @USRGreigeYarnWt100Yds01

     ,@20GreigeYarnWt100Yds02 = @USRGreigeYarnWt100Yds02

     ,@20GreigeYarnWt100Yds03 = @USRGreigeYarnWt100Yds03

     ,@20GreigeYarnWt100Yds04 = @USRGreigeYarnWt100Yds04

     ,@20GreigeYarnWt100Yds05 = @USRGreigeYarnWt100Yds05

     ,@20GreigeYarnWt100Yds06 = @USRGreigeYarnWt100Yds06

     ,@20GreigeYarnWt100Yds07 = @USRGreigeYarnWt100Yds07

     ,@20GreigeYarnWt100Yds08 = @USRGreigeYarnWt100Yds08

     ,@20GreigeYarnWt100Yds09 = @USRGreigeYarnWt100Yds09

     ,@20GreigeYarnWt100Yds10 = @USRGreigeYarnWt100Yds10

     ,@20GreigeYarnWt100Yds11 = @USRGreigeYarnWt100Yds11

     ,@20GreigeYarnWt100Yds12 = @USRGreigeYarnWt100Yds12

     ,@20GreigeYarnWt100Yds13 = @USRGreigeYarnWt100Yds13

     ,@20GreigeYarnWt100Yds14 = @USRGreigeYarnWt100Yds14

     ,@20GreigeYarnWt100Yds15 = @USRGreigeYarnWt100Yds15

     ,@20GreigeYarnWt100Yds16 = @USRGreigeYarnWt100Yds16

     ,@20GreigeYarnWt100Yds17 = @USRGreigeYarnWt100Yds17

     ,@20GreigeYarnWt100Yds18 = @USRGreigeYarnWt100Yds18

     ,@20GreigeYarnWt100Yds19 = @USRGreigeYarnWt100Yds19

     ,@20GreigeYarnWt100Yds20 = @USRGreigeYarnWt100Yds20

     ,@20GreigeYarnType01 = @USRGreigeYarnType01

     ,@20GreigeYarnType02 = @USRGreigeYarnType02

     ,@20GreigeYarnType03 = @USRGreigeYarnType03

     ,@20GreigeYarnType04 = @USRGreigeYarnType04

     ,@20GreigeYarnType05 = @USRGreigeYarnType05

     ,@20GreigeYarnType06 = @USRGreigeYarnType06

     ,@20GreigeYarnType07 = @USRGreigeYarnType07

     ,@20GreigeYarnType08 = @USRGreigeYarnType08

     ,@20GreigeYarnType09 = @USRGreigeYarnType09

     ,@20GreigeYarnType10 = @USRGreigeYarnType10

     ,@20GreigeYarnType11 = @USRGreigeYarnType11

     ,@20GreigeYarnType12 = @USRGreigeYarnType12

     ,@20GreigeYarnType13 = @USRGreigeYarnType13

     ,@20GreigeYarnType14 = @USRGreigeYarnType14

     ,@20GreigeYarnType15 = @USRGreigeYarnType15

     ,@20GreigeYarnType16 = @USRGreigeYarnType16

     ,@20GreigeYarnType17 = @USRGreigeYarnType17

     ,@20GreigeYarnType18 = @USRGreigeYarnType18

     ,@20GreigeYarnType19 = @USRGreigeYarnType19

     ,@20GreigeYarnType20 = @USRGreigeYarnType20

     ,@20GreigeYarnSequence01 = @USRGreigeYarnSequence01

     ,@20GreigeYarnSequence02 = @USRGreigeYarnSequence02

     ,@20GreigeYarnSequence03 = @USRGreigeYarnSequence03

     ,@20GreigeYarnSequence04 = @USRGreigeYarnSequence04

     ,@20GreigeYarnSequence05 = @USRGreigeYarnSequence05

     ,@20GreigeYarnSequence06 = @USRGreigeYarnSequence06

     ,@20GreigeYarnSequence07 = @USRGreigeYarnSequence07

     ,@20GreigeYarnSequence08 = @USRGreigeYarnSequence08

     ,@20GreigeYarnSequence09 = @USRGreigeYarnSequence09

     ,@20GreigeYarnSequence10 = @USRGreigeYarnSequence10

     ,@20GreigeYarnSequence11 = @USRGreigeYarnSequence11

     ,@20GreigeYarnSequence12 = @USRGreigeYarnSequence12

     ,@20GreigeYarnSequence13 = @USRGreigeYarnSequence13

     ,@20GreigeYarnSequence14 = @USRGreigeYarnSequence14

     ,@20GreigeYarnSequence15 = @USRGreigeYarnSequence15

     ,@20GreigeYarnSequence16 = @USRGreigeYarnSequence16

     ,@20GreigeYarnSequence17 = @USRGreigeYarnSequence17

     ,@20GreigeYarnSequence18 = @USRGreigeYarnSequence18

     ,@20GreigeYarnSequence19 = @USRGreigeYarnSequence19

     ,@20GreigeYarnSequence20 = @USRGreigeYarnSequence20

     ,@20GreigeYarnTotWt100Yds = @USRGreigeYarnTotWt100Yds

    -- 05-Jan-2006 MDP

     ,@20EndsPicks01 = @USRGreigeYarnEndsPicks01

     ,@20EndsPicks02 = @USRGreigeYarnEndsPicks02

     ,@20EndsPicks03 = @USRGreigeYarnEndsPicks03

     ,@20EndsPicks04 = @USRGreigeYarnEndsPicks04

     ,@20EndsPicks05 = @USRGreigeYarnEndsPicks05

     ,@20EndsPicks06 = @USRGreigeYarnEndsPicks06

     ,@20EndsPicks07 = @USRGreigeYarnEndsPicks07

     ,@20EndsPicks08 = @USRGreigeYarnEndsPicks08

     ,@20EndsPicks09 = @USRGreigeYarnEndsPicks09

     ,@20EndsPicks10 = @USRGreigeYarnEndsPicks10

     ,@20EndsPicks11 = @USRGreigeYarnEndsPicks11

     ,@20EndsPicks12 = @USRGreigeYarnEndsPicks12

     ,@20EndsPicks13 = @USRGreigeYarnEndsPicks13

     ,@20EndsPicks14 = @USRGreigeYarnEndsPicks14

     ,@20EndsPicks15 = @USRGreigeYarnEndsPicks15

     ,@20EndsPicks16 = @USRGreigeYarnEndsPicks16

     ,@20EndsPicks17 = @USRGreigeYarnEndsPicks17

     ,@20EndsPicks18 = @USRGreigeYarnEndsPicks18

     ,@20EndsPicks19 = @USRGreigeYarnEndsPicks19

     ,@20EndsPicks20 = @USRGreigeYarnEndsPicks20

    -- Now that we have loaded the unique yarns used in the ML20,

    -- We can use the temporary table to pull out the Filling Yarns to create the ML 20 BOM

    -- Later we will use the temp table to pull out the warp yarns to create the ML 30 BOM

    -- Use a Loop and the temp table #UniqueYarnsForBOM created above to build the BOM details for the Filling Yarns

    Set @YarnRecNo = 0

    Start_of_ML20_BOM_Loop:

    Set @YarnRecNo = @YarnRecNo + 1

    If @YarnRecNo > 20

     GOTO Exit_ML20_BOM_Loop

    -- Check to see if yarn 01 is populated from ml 20.

    --

    Set @YarnCatRev = ''

    Set @YarnType = ''

    Set @YarnWtLb100Yd = 0

    Set @YarnSequence = ''

    -- 05-Jan-2006 MDP

    Set @EndsPicks = 0

    Select @YarnCatRev = uy.YarnCatRev

     ,@YarnType = uy.YarnType

     ,@YarnWtLb100Yd = uy.YarnWtLb100Yd

     ,@YarnSequence = uy.YarnSequence

    -- 05-Jan-2006 MDP

     ,@EndsPicks = uy.EndsPicks

    from #UniqueYarnsForBOM uy

    where uy.YarnRecNo = @YarnRecNo

    If @YarnCatRev = ''

     GOTO Start_of_ML20_BOM_Loop 

    -- Is the Yarn a Fill yarn?

    If @YarnType <> 'F'

     GOTO Start_of_ML20_BOM_Loop 

    -- Get ML of the Yarn

    Set @YarnML = 'NO'

    If exists

    (Select 1 

    From Cmsarticoli    

      where Cmsarticoli.Mlivarticolo = '60'

      and Cmsarticoli.Codicecomponente = @YarnCatRev)

       Set @YarnML = '60'

    If exists

    (Select 1 

    From Cmsarticoli    

      where Cmsarticoli.Mlivarticolo = '70'

      and Cmsarticoli.Codicecomponente = @YarnCatRev)

       Set @YarnML = '70'

    If exists

    (Select 1 

    From Cmsarticoli    

      where Cmsarticoli.Mlivarticolo = '80'

      and Cmsarticoli.Codicecomponente = @YarnCatRev)

       Set @YarnML = '80'

    Set @DCIDFL = @YarnSequence

    Set @NUMSEQUENZA = @NUMSEQUENZA + 1

    Set @LbsPerYdFill = @FillWasteFactor * (@YarnWtLb100Yd / 100)

    Set @FABBISOGNO = Round(@LbsPerYdFill,5)

    -- 05-Jan-2006 MDP

    Set @DCCART = Round(@EndsPicks, 2)

    BEGIN

     INSERT INTO COMPONENTIXARTICOLO

              (MLIVARTICOLO

      ,CODICEARTICOLO

      ,SUFFISSODB

      ,NUMSEQUENZA

      ,NUMALTERNATIVA

      ,MLIVCOMPONENTE

      ,CODICECOMPONENTE

      ,IS_GHOST

      ,COMPCRIT

      ,CODICEDESTINAZIONE

      ,FABBISOGNO

      ,STATO

      ,OPERATORE

      ,TIMSTAMP

      ,DCIDFL

      ,DCFLFT

    -- 05-Jan-2006 MDP

      ,DCCART)

                Values

      ('20'

      ,@Codicecomponente  

                ,@Suffissodb

                ,@NUMSEQUENZA

      ,@NUMALTERNATIVA

      ,@YarnML

      ,@YarnCatRev

      ,@IS_GHOST     

      ,@COMPCRIT

      ,'TR'

      ,@FABBISOGNO

      ,'N'

      ,'cdstrigger'

      ,@curdate

      ,@DCIDFL

      ,'G'

    -- 05-Jan-2006 MDP

      ,@DCCART)

    END

    GOTO Start_of_ML20_BOM_Loop

    Exit_ML20_BOM_loop:

    -- 28-Dec-2005

    If @Bypass_ML30_BOM = 'Y'

     GOTO Exit_ML30_BOM_Loop

    -- ML 30 Bill of Material Processing

    Set @Currentdate = CONVERT(smalldatetime, GETDATE(), 101)

    Set @CurDate = CONVERT(CHAR(12), GETDATE(), 101)

    Set @Suffissodb = ' '

    Set @NUMSEQUENZA = 0

    Set @NUMALTERNATIVA = 0

    Set @IS_GHOST = 0

    Set @COMPCRIT = 0

    Set @USRLoomBeamRouting = 'LR001'

    INSERT INTO TESTATADISTINTA

     (MLIVARTPADRE

     ,CODARTPADRE

     ,MLIVARTICOLO

     ,CODICEARTICOLO

     ,SUFFISSODB

     ,CODCICLO

     ,DATACREAZIONE

     ,OPERATORE

     ,TIMSTAMP)

     Values

     ('30'

     ,@ML30Code  

     ,'30'

     ,@ML30Code  

     ,@Suffissodb

     ,@USRLoomBeamRouting

     ,@Currentdate

     ,'cdsbaftrigger'

     ,@curdate)

    -- ML 30 BOM - Warp Yarn Products

    -- Is Yarn a Warp or Selvage yarn?

    -- Use a Loop and the temp table #UniqueYarnsForBOM created in the ML20 processing

    -- to build the BOM details for the Warp Yarns

    Set @YarnRecNo = 0

    Start_of_ML30_BOM_Loop:

    Set @YarnRecNo = @YarnRecNo + 1

    If @YarnRecNo > 20

     GOTO Exit_ML30_BOM_Loop

    -- Check to see if yarn 01 is populated from ml 20.

    --

    Set @YarnCatRev = ''

    Set @YarnType = ''

    Set @YarnWtLb100Yd = 0

    Set @YarnSequence = ''

    -- 05-Jan-2006 MDP

    Set @EndsPicks = 0

    Select @YarnCatRev = uy.YarnCatRev

     ,@YarnType = uy.YarnType

     ,@YarnWtLb100Yd = uy.YarnWtLb100Yd

     ,@YarnSequence = uy.YarnSequence

    -- 05-Jan-2006 MDP

     ,@EndsPicks = uy.EndsPicks

    from #UniqueYarnsForBOM uy

    where uy.YarnRecNo = @YarnRecNo

    If @YarnCatRev = ''

     GOTO Start_of_ML30_BOM_Loop 

    -- Is the Yarn a Warp yarn? Note Stored Procedure changed Selvage to Warp

    If @YarnType = 'F'

     GOTO Start_of_ML30_BOM_Loop

    -- Set the DEST to OR for Warp Yarns and to OS for Selvage

    If @YarnType = 'W'

     Set @CODICEDESTINAZIONE = 'OR'

    Else

     Set @CODICEDESTINAZIONE = 'OS'

    -- Get ML of the Yarn

    Set @YarnML = 'NO'

    If exists

    (Select 1 

    From Cmsarticoli    

      where Cmsarticoli.Mlivarticolo = '60'

      and Cmsarticoli.Codicecomponente = @YarnCatRev)

       Set @YarnML = '60'

    If exists

    (Select 1 

    From Cmsarticoli    

      where Cmsarticoli.Mlivarticolo = '70'

      and Cmsarticoli.Codicecomponente = @YarnCatRev)

       Set @YarnML = '70'

    If exists

    (Select 1 

    From Cmsarticoli    

      where Cmsarticoli.Mlivarticolo = '80'

      and Cmsarticoli.Codicecomponente = @YarnCatRev)

       Set @YarnML = '80'

    Set @DCIDFL = @YarnSequence

    Set @NUMSEQUENZA = @NUMSEQUENZA + 1

    Set @LbsPerYdWarp = @YarnWtLb100Yd / 100

    Set @FABBISOGNO = Round(@LbsPerYdWarp,5)

    -- 05-Jan-2006 MDP

    Set @DCFLCS = Round(@EndsPicks, 0)

    INSERT INTO COMPONENTIXARTICOLO

              (MLIVARTICOLO

      ,CODICEARTICOLO

      ,SUFFISSODB

      ,NUMSEQUENZA

      ,NUMALTERNATIVA

      ,MLIVCOMPONENTE

      ,CODICECOMPONENTE

      ,IS_GHOST

      ,COMPCRIT

      ,CODICEDESTINAZIONE

      ,FABBISOGNO

      ,STATO

      ,OPERATORE

      ,TIMSTAMP

      ,DCIDFL

      ,DCFLFT

    -- 05-Jan-2006 MDP

      ,DCFLCS)

                Values

      ('30'

      ,@ML30Code  

           ,@Suffissodb

                ,@NUMSEQUENZA

      ,@NUMALTERNATIVA

      ,@YarnML

      ,@YarnCatRev

      ,@IS_GHOST     

      ,@COMPCRIT

      ,@CODICEDESTINAZIONE

      ,@FABBISOGNO

      ,'N'

      ,'cdstrigger'

      ,@curdate

      ,@DCIDFL

      ,'G'

    -- 05-Jan-2006 MDP

      ,@DCFLCS)

    GOTO Start_of_ML30_BOM_Loop

    Exit_ML30_BOM_Loop:

    -- Now that we are finished we can drop the temporary table.

    --

    drop table #UniqueYarnsForBOM

    GoTo Exit_Trigger

     

    -----------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------

    Process_MLGT:  -- Greige Trial

    If @USRRequestedYardsToWeave > 0

     Begin

      Set @USRCalculatedYardsToWeave = @USRRequestedYardsToWeave + @USRExperWeaveReqSampleBeckYds + @USRYardsForLab

      GOTO Calculate_Prep

     End

    If @USRRequestedCutsToWeave > 0

     If @USRGreigeExperWeaveRequestStatus = 'ISSUED' or @USRGreigeExperWeaveRequestStatus = 'COMPLETE'

      GOTO Get_Cut_Length

     Else

      Begin

       Set @USRCalculatedYardsToWeave = 0

       GOTO Calculate_Prep

     End

    Else

     Begin

      Set @USRCalculatedYardsToWeave = 0

      GOTO Calculate_Prep

     End

    Get_Cut_Length:

    Select @USRGreigeCutLength = USRGreigeCutLength from CMSarticoli

    Where Cmsarticoli.Mlivarticolo = '20'

      and Cmsarticoli.Codicecomponente = SUBSTRING(@Codicecomponente, 1, 8)

    Set @USRCalculatedYardsToWeave = (@USRRequestedCutsToWeave * @USRGreigeCutLength) + @USRExperWeaveReqSampleBeckYds + @USRYardsForLab

    Calculate_Prep:

    Set @PrepYardsReal = (@USRCalculatedYardsToWeave * 1.07) + 200.00

    Set @USRPreparationYards = ROUND(@PrepYardsReal, 0)

    -- 30-Dec-2005 MtC

    -- To calculate the number of days we are changing all Scheduled Dates to be the Trial Date.

    --

    -- Calculate Number of Days

    If @USRTrialDate = '1/1/1900'

     or @USRExperWeaveReqActualDateDrawReady = '1/1/1900'

      Set @USRExperWeaveReqNumOfDaysDrawReady = 0

    Else

     Set @USRExperWeaveReqNumOfDaysDrawReady = DateDiff(Day, @USRTrialDate,

           @USRExperWeaveReqActualDateDrawReady)

    If @USRTrialDate = '1/1/1900'

     or @USRExperWeaveReqActualDateFill = '1/1/1900'

      Set @USRExperWeaveReqNumOfDaysFill = 0

    Else

     Set @USRExperWeaveReqNumOfDaysFill = DateDiff(Day, @USRTrialDate,

           @USRExperWeaveReqActualDateFill)

    If @USRTrialDate = '1/1/1900'

     or @USRExperWeaveReqActualDateInLoom = '1/1/1900'

      Set @USRExperWeaveReqNumOfDaysInLoom = 0

    Else

     Set @USRExperWeaveReqNumOfDaysInLoom = DateDiff(Day, @USRTrialDate,

           @USRExperWeaveReqActualDateInLoom)

    If @USRTrialDate = '1/1/1900'

     or @USRExperWeaveReqActualDateOutOfLoom = '1/1/1900'

      Set @USRExperWeaveReqNumOfDaysOutOfLoom = 0

    Else

     Set @USRExperWeaveReqNumOfDaysOutOfLoom = DateDiff(Day, @USRTrialDate,

           @USRExperWeaveReqActualDateOutOfLoom)

    If @USRTrialDate = '1/1/1900'

     or @USRExperWeaveReqActualDateShipFirst = '1/1/1900'

      Set @USRExperWeaveReqNumOfDaysShipFirst = 0

    Else

     Set @USRExperWeaveReqNumOfDaysShipFirst = DateDiff(Day, @USRTrialDate,

           @USRExperWeaveReqActualDateShipFirst)

    If @USRTrialDate = '1/1/1900'

     or @USRExperWeaveReqActualDateSlashReady = '1/1/1900'

      Set @USRExperWeaveReqNumOfDaysSlashReady = 0

    Else

     Set @USRExperWeaveReqNumOfDaysSlashReady = DateDiff(Day, @USRTrialDate,

           @USRExperWeaveReqActualDateSlashReady)

    If @USRTrialDate = '1/1/1900'

     or @USRExperWeaveReqActualDateWarp = '1/1/1900'

      Set @USRExperWeaveReqNumOfDaysWarp = 0

    Else

     Set @USRExperWeaveReqNumOfDaysWarp = DateDiff(Day, @USRTrialDate,

           @USRExperWeaveReqActualDateWarp)

    If @USRTrialDate = '1/1/1900'

     or @USRExperWeaveReqActualDateWarpReady = '1/1/1900'

      Set @USRExperWeaveReqNumOfDaysWarpReady = 0

    Else

     Set @USRExperWeaveReqNumOfDaysWarpReady = DateDiff(Day, @USRTrialDate,

           @USRExperWeaveReqActualDateWarpReady)

    If @USRCreationDate is Null or @USRCreationDate = ''

     Set @USRCreationDate = CONVERT(CHAR(12), GETDATE(), 101)

    Update CMSARTICOLI

    Set USRCalculatedYardsToWeave = @USRCalculatedYardsToWeave

    ,USRPreparationYards = @USRPreparationYards

    ,USRExperWeaveReqNumOfDaysDrawReady = @USRExperWeaveReqNumOfDaysDrawReady

    ,USRExperWeaveReqNumOfDaysFill = @USRExperWeaveReqNumOfDaysFill

    ,USRExperWeaveReqNumOfDaysInLoom = @USRExperWeaveReqNumOfDaysInLoom

    ,USRExperWeaveReqNumOfDaysOutOfLoom = @USRExperWeaveReqNumOfDaysOutOfLoom

    ,USRExperWeaveReqNumOfDaysShipFirst = @USRExperWeaveReqNumOfDaysShipFirst

    ,USRExperWeaveReqNumOfDaysSlashReady = @USRExperWeaveReqNumOfDaysSlashReady

    ,USRExperWeaveReqNumOfDaysWarp = @USRExperWeaveReqNumOfDaysWarp

    ,USRExperWeaveReqNumOfDaysWarpReady = @USRExperWeaveReqNumOfDaysWarpReady

    ,USRCreationDate = @USRCreationDate

    ,UM = 'YD'

    ,CMSARTICOLI.USERCRT = @UpdateUserID

    -- 10-Feb-2006 MDP

     ,CMSARTICOLI.CODICEDIVISIONE = @CODICEDIVISIONE

    Where CMSARTICOLI.Mlivarticolo = @Mlivarticolo

     and

     CMSARTICOLI.Codicecomponente = @Codicecomponente

    GoTo Exit_Trigger

    -----------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------

    Process_ML2M:  -- Control Style

    If @USRCreationDate is Null or @USRCreationDate = ''

     Set @USRCreationDate = CONVERT(CHAR(12), GETDATE(), 101)

    Update CMSARTICOLI

    -- Defaults

    Set CMSARTICOLI.UM = 'YD'

     ,ARALIV = 'NO'

     ,ARDCLS = 'N'

     ,ARDISP = 'Y' 

     ,ARESCL = 'N'

     ,ARFLBC = 'N'

     ,ARRGLO = 'D'

     ,ARRGMG = '1'

     ,ARTPGS = 'P'

     ,ARTPPD = 'M'

     ,ARMFO2 = '2M'

     ,ARFLO2 = @Codicecomponente

     ,Descrizionecomponente = @USRControlStyleDescription

     ,ARATMN = .1

     ,ARAGMN = .1

     ,ARATMX = .1

     ,ARPSGR = .1

     ,ARDMAT = .1

     ,CMSARTICOLI.ARCDLV = 200

     ,CMSARTICOLI.USERCRT = @UpdateUserID

     ,USRCreationDate = @USRCreationDate

    -- 10-Feb-2006 MDP

     ,CMSARTICOLI.CODICEDIVISIONE = @CODICEDIVISIONE

    Where CMSARTICOLI.Mlivarticolo = @Mlivarticolo

     and

     CMSARTICOLI.Codicecomponente = @Codicecomponente

    Set @Numeric_YYMMDD = convert (varchar, @USRCreationDate, 12)

    -- Update the needed data in the INFAG00F table if the record already exist.

    --

    Update INFAG00F

    Set  INFAG00F.IGTPDC = 'AR'

     ,INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

     ,INFAG00F.IGCDP1 = ''

     ,INFAG00F.IGCDP2 = ''

     ,INFAG00F.IGTPFM = 'LAI'

     ,INFAG00F.IGCODB = @Numeric_YYMMDD

    Where INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

    -- Insert the tube color (IGCODK) into the INFAG00F table if the record does not exist.

    --

    Insert Into INFAG00F

      (IGTPDC

      ,IGCDEL

      ,IGCDP1

      ,IGCDP2

      ,IGTPFM

      ,IGCODB

     &nbsp

    Select  'AR'

      ,MLIVARTICOLO+CODICECOMPONENTE

      ,''

      ,''

      ,'LAI'

      ,@Numeric_YYMMDD

    From  CMSARTICOLI

    Where  CMSARTICOLI.Mlivarticolo = @Mlivarticolo

      and

      CMSARTICOLI.Codicecomponente = @Codicecomponente

    and not exists

      (Select ''

      From INFAG00F

      Where INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

     &nbsp

    -- 06-Jan-2006 MDP

    If not exists

    (Select 1 

    From USRControlStyleTable    

     where USRControlStyleTable.ARFLO2 = @Codicecomponente)

     BEGIN

      Insert INTO USRControlStyleTable

       (ARFLO2)

       Values

       (@Codicecomponente)

     END

    GoTo Exit_Trigger

    -----------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------

    Process_ML10:  -- Finish Style

    -- Set the local variables to be inserted or updated by user input in the article table equal to the new values entered for Care Instructions.

    --

    Select @TRATTAMENTOCANDEGGIO = TRATT_CANDEGGIO.COD_TRATT

    From TRATT_CANDEGGIO,

     USRCareCodeTable

    Where @USRCareCode = USRCareCodeTable.USRCareCode

     and

     TRATT_CANDEGGIO.CODIFICAAS = USRCareCodeTable.USRCareCodeBleaching

    Select @TRATTAMENTOLAVAGGIOSECCO = TRATT_SECCO.COD_TRATT

    From TRATT_SECCO,

     USRCareCodeTable

    Where @USRCareCode = USRCareCodeTable.USRCareCode

     and

     TRATT_SECCO.CODIFICAAS = USRCareCodeTable.USRCareCodeDryCleaning

    Select @TRATTAMENTOASCIUGATURA = TRATT_ASCIUGATURA.COD_TRATT

    From TRATT_ASCIUGATURA,

     USRCareCodeTable

    Where @USRCareCode = USRCareCodeTable.USRCareCode

     and

     TRATT_ASCIUGATURA.CODIFICAAS = USRCareCodeTable.USRCareCodeDrying

    Select @TRATTAMENTOSTIRO = TRATT_STIRO.COD_TRATT

    From TRATT_STIRO,

     USRCareCodeTable

    Where @USRCareCode = USRCareCodeTable.USRCareCode

     and

     TRATT_STIRO.CODIFICAAS = USRCareCodeTable.USRCareCodeIroning

    Select @TRATTAMENTOLAVAGGIO = TRATT_LAVAGGIO.COD_TRATT

    From TRATT_LAVAGGIO,

     USRCareCodeTable

    Where @USRCareCode = USRCareCodeTable.USRCareCode

     and

     TRATT_LAVAGGIO.CODIFICAAS = USRCareCodeTable.USRCareCodeWashing

    -- Set the local variables to be inserted or updated by user input in the article table equal to the new values entered for Tariffs Category Code.

    --

    Select @ARFL01 = USRUSCustomsTariffTable.USRARFL01TariffsCategoryCode

    From USRUSCustomsTariffTable

    Where @ARTAUS = USRUSCustomsTariffTable.ARTAUS

    -- Set local variables to be inserted or updated by user input in the article table equal to the new values entered for Finish Code.

    --

    Select @USRFinishDesc = USRFinishTable.USRFinishDesc

    From USRFinishTable

    Where @USRFinishCode = USRFinishTable.USRFinishCode

    -- Retrieve Finish Routing from the Finish Routing Table

    --

    -- If NULL numeric fields make zero

    If @ARGGCC is Null or @ARGGCC = ''

     Set @USRFinishLeadTime = 0

    Else

     Set @USRFinishLeadTime = ROUND(@ARGGCC, 0)

    -- 18-Jan-2006 MDP

    -- Country of Origin processing (if greige is woven elsewhere but Finished in Hurt)

    Set @USRCntryOfOrgCode = SUBSTRING(@Codicecomponente, 11, 2)

    If @CODICEFORNITORE like '569000%' -- Hurt Finishing

     Set @USRCntryOfOrgCode = 'US'

    Select

    @USRFinishRouting = USRFinishRoutingTable.USRFinishRoutingCode

    From USRFinishRoutingTable where USRFinishRoutingTable.USRPieceDyeStockDye = @USRPieceDyeStockDye

    -- 18-Jan-2006 MDP

    and USRFinishRoutingTable.USRCntryOfOrgCode = @USRCntryOfOrgCode  

    and USRFinishRoutingTable.USRFinishLeadTime = @USRFinishLeadTime 

    -- 02-Jan-2006

    -- If Government set Routing Prefix to 'FG' or If Maximum Width > 69 set routing Prefix to 'FW'

    -- 02-Feb-2006 MDP

    -- If Synthetic Government also set Routing Prefix to 'FG'

    -- 18-Jan-2006 MDP

    If @USRCntryOfOrgCode = 'US'

    Begin

    -- 02-Feb-2006 MDP

     If @codicelinea = 'GW' or @codicelinea = 'GS'

      Set @USRFinishRouting = 'FG' + SUBSTRING(@USRFinishRouting, 3,3)

     Else

      If @ARATMN > 69

       Set @USRFinishRouting = 'FW' + SUBSTRING(@USRFinishRouting, 3,3)

    End

    -- Perform calculations and data moves for ML 10, Finish Style.

    --

    Set @ARAGMN = ROUND (@ARAGMN, 2) -- Finished Width Min Inches (nn.nn)

    Set @ARATMN = ROUND (@ARATMN, 2) -- Finished Width Max Inches (nn.nn)

    Set @USRMidWidInches = ROUND ((@ARAGMN + @ARATMN) / 2, 2)

    Set @ARPSGR = ROUND (@ARPSGR, 2) -- Finished Weight Min Oz/Sq Yd (nn.nn)

    Set @USRFillStretchPercentMax = ROUND (@USRFillStretchPercentMax, 0)

    Set @USRFillStretchPercentMin = ROUND (@USRFillStretchPercentMin, 0)

    -- 20-Feb-2006 MtC

    --

    set @TOTAL_ENDS = 0

    if @USRGreigeYarnType01 = 'W' or @USRGreigeYarnType01 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks01

    if @USRGreigeYarnType02 = 'W' or @USRGreigeYarnType02 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks02

    if @USRGreigeYarnType03 = 'W' or @USRGreigeYarnType03 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks03

    if @USRGreigeYarnType04 = 'W' or @USRGreigeYarnType04 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks04

    if @USRGreigeYarnType05 = 'W' or @USRGreigeYarnType05 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks05

    if @USRGreigeYarnType06 = 'W' or @USRGreigeYarnType06 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks06

    if @USRGreigeYarnType07 = 'W' or @USRGreigeYarnType07 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks07

    if @USRGreigeYarnType08 = 'W' or @USRGreigeYarnType08 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks08

    if @USRGreigeYarnType09 = 'W' or @USRGreigeYarnType09 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks09

    if @USRGreigeYarnType10 = 'W' or @USRGreigeYarnType10 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks10

    if @USRGreigeYarnType11 = 'W' or @USRGreigeYarnType11 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks11

    if @USRGreigeYarnType12 = 'W' or @USRGreigeYarnType12 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks12

    if @USRGreigeYarnType13 = 'W' or @USRGreigeYarnType13 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks13

    if @USRGreigeYarnType14 = 'W' or @USRGreigeYarnType14 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks14

    if @USRGreigeYarnType15 = 'W' or @USRGreigeYarnType15 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks15

    if @USRGreigeYarnType16 = 'W' or @USRGreigeYarnType16 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks16

    if @USRGreigeYarnType17 = 'W' or @USRGreigeYarnType17 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks17

    if @USRGreigeYarnType18 = 'W' or @USRGreigeYarnType18 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks18

    if @USRGreigeYarnType19 = 'W' or @USRGreigeYarnType19 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks19

    if @USRGreigeYarnType20 = 'W' or @USRGreigeYarnType20 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks20

    -- 22-Feb-2006 MDP

    If @ARAGMN <> 0 

     Set @USRFinishedEndsInchMax = ROUND (@TOTAL_ENDS / @ARAGMN, 0) -- ARAGMN = Finished Width Min

    else

     Set @USRFinishedEndsInchMax = 0

    If @USRFinishedEndsInchMax > 999

     Set @USRFinishedEndsInchMax = 0

    If @ARATMN <> 0

     Set @USRFinishedEndsInchMin = ROUND (@TOTAL_ENDS / @ARATMN, 0) -- ARATMN = Finished Width Max

    else

     Set @USRFinishedEndsInchMin = 0

    If @USRFinishedEndsInchMin > 999

     Set @USRFinishedEndsInchMin = 0

    if @USRMidWidInches <> 0

     Set @ARFICM = ROUND (@TOTAL_ENDS / @USRMidWidInches, 0)  -- ARFICM = Finished Ends Per Inch Midpoint

    else

     Set @ARFICM = 0        

    If @ARFICM > 999

     Set @ARFICM = 0

    Set @ARINCM = ROUND (@ARINCM, 0)

    Set @ARINFN = ROUND (@ARINFN, 0)

    Set @USRMaxWtOzSqYd = ROUND (@USRMaxWtOzSqYd, 2)

    Set @USRWarpStretchPercentMax = ROUND (@USRWarpStretchPercentMax, 0)

    Set @USRWarpStretchPercentMin = ROUND (@USRWarpStretchPercentMin, 0)

    Set @USRCutWidCM = ROUND (@ARATMX * 2.54, 0)

    if @USRCutWidCM is null

     Set @USRCutWidCM = ROUND (0, 0)

    Set @USRMinWidCM = ROUND (@ARAGMN * 2.54, 0)

    Set @USRMaxWidCM = ROUND (@ARATMN * 2.54, 0)

    Set @USRMidWidCM = ROUND ((@USRMinWidCM + @USRMaxWidCM) / 2, 0)

    Set @ARDMAT = ROUND ((@ARPSGR + @USRMaxWtOzSqYd) / 2, 2) -- Finished Weight Mid Oz/Sq Yd

    Set @USRMinWtOzLnYd = ROUND ((@ARPSGR / 36) * @USRMidWidInches, 2)

    Set @USRMaxWtOzLnYd = ROUND ((@USRMaxWtOzSqYd / 36) * @USRMidWidInches, 2)

    Set @ARPSFI = ROUND ((@USRMinWtOzLnYd + @USRMaxWtOzLnYd) / 2, 2) -- Finish Weight Oz/Ln Yd

    Set @USRMinWtGrSqMtr = ROUND (@ARPSGR * 33.91, 0)

    Set @USRMaxWtGrSqMeter = ROUND (@USRMaxWtOzSqYd * 33.91, 0)

    Set @USRMidWtGrSqMeter = ROUND (((@USRMinWtGrSqMtr + @USRMaxWtGrSqMeter) / 2), 0)

    Set @USRMinWtGrLnMater = ROUND ((@USRMinWtGrSqMtr / 100) * @USRMinWidCM, 0)

    Set @USRMaxWtGrLnMeter = ROUND ((@USRMaxWtGrSqMeter / 100) * @USRMaxWidCM, 0)

    Set @USRMidWtGrLnMeter = ROUND ((@USRMinWtGrLnMater + @USRMaxWtGrLnMeter) / 2, 0)

    Set @USRFinishedPicksInchAvg = ROUND ((@ARINCM + @ARINFN) / 2, 0)

    if @USRFinishedPicksInchAvg is null

     Set @USRFinishedPicksInchAvg = ROUND (0, 0)

    Set @USRFinishedEndsCMMin = ROUND (@USRFinishedEndsInchMin / 2.54, 0)

    Set @USRFinishedEndsCMMax = ROUND (@USRFinishedEndsInchMax / 2.54, 0)

    Set @USRFinishedEndsCMAvg = ROUND ((@USRFinishedEndsCMMin + @USRFinishedEndsCMMax) / 2, 0)

    Set @USRFinishedPicksCMMin = ROUND (@ARINFN / 2.54, 0)

    if @USRFinishedPicksCMMin is null

     Set @USRFinishedPicksCMMin = ROUND (0, 0)

    Set @USRFinishedPicksCMMax = ROUND (@ARINCM / 2.54, 0)

    If @USRFinishedPicksCMMax is null

     Set @USRFinishedPicksCMMax = ROUND (0, 0)

    Set @USRFinishedPicksCMAvg = ROUND (((@USRFinishedPicksCMMin + @USRFinishedPicksCMMax) / 2), 0)

    if @USRFinishedPicksCMAvg is null

     Set @USRFinishedPicksCMAvg = ROUND (0, 0)

    If @USRMidWtGrSqMeter > 0

     Set @USRAverageYarnNumber = ROUND (((@USRFinishedEndsCMAvg + @USRFinishedPicksCMAvg) / @USRMidWtGrSqMeter) * 100, 0)

    -- 27-Jan-2006 MDP

    Set @CreateBOM = 'Y'

    -- If the manufacture/purchase flag is null then set to 'M'.

    --

    Select @ARTPPD = USRVendorTable.USRVendorMakeBuyIndicator

    From USRVendorTable

    Where USRVendorTable.CODICEFORNITORE = @CODICEFORNITORE

    If @ARTPPD is Null or @ARTPPD = ''

    -- 27-Jan-2006 MDP

     Begin

      Set @ARTPPD = 'M'

      Set @CreateBOM = 'N'

     End

     

    -- 15-Feb-2006 Mtc

    -- Calculate shrinkage loss

    --

    set @TOTAL_PICKS = 0

    if @USRGreigeYarnType01 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks01

    if @USRGreigeYarnType02 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks02

    if @USRGreigeYarnType03 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks03

    if @USRGreigeYarnType04 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks04

    if @USRGreigeYarnType05 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks05

    if @USRGreigeYarnType06 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks06

    if @USRGreigeYarnType07 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks07

    if @USRGreigeYarnType08 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks08

    if @USRGreigeYarnType09 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks09

    if @USRGreigeYarnType10 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks10

    if @USRGreigeYarnType11 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks11

    if @USRGreigeYarnType12 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks12

    if @USRGreigeYarnType13 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks13

    if @USRGreigeYarnType14 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks14

    if @USRGreigeYarnType15 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks15

    if @USRGreigeYarnType16 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks16

    if @USRGreigeYarnType17 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks17

    if @USRGreigeYarnType18 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks18

    if @USRGreigeYarnType19 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks19

    if @USRGreigeYarnType20 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks20

    -- 01-Mar-2006 MtC

    --

    if @USRFinishedPicksInchAvg > 1

     set @USRFinishPlanningShrinkageLoss = round (((@USRFinishedPicksInchAvg - @TOTAL_PICKS) / @USRFinishedPicksInchAvg) * 100, 1)

    else

     set @USRFinishPlanningShrinkageLoss = 0

     

    set @USRFinishPlanningShrinkageWorkingLoss = @USRFinishPlanningShrinkageLoss + @USRFinishPlanningWorkingLoss

    set @USRFinishPlanningFactorsTotal =

     round ((1.00 - (@USRFinishPlanningShrinkageWorkingLoss / 100)) *

      (1.00 - ((@USRGreigePlanningGreigeSecondsPercentage / 100) +

        (@USRFinishPlanningSecondsPercentage / 100))), 3)

    set @USRGreigeYdsToEstFinishYds = (1.00 - (@USRGreigePlanningGreigeSecondsPercentage / 100)) * @USRGreigeCutLength

    set @USRGreigeYdsToSellableYds = @USRGreigeCutLength * @USRFinishPlanningFactorsTotal

    set @ARMDMN = @ARDSTD

    If @USRCreationDate is Null or @USRCreationDate = ''

     Set @USRCreationDate = CONVERT(CHAR(12), GETDATE(), 101)

    -- Update the article table.

    --

    Update CMSARTICOLI

    Set  CMSARTICOLI.TRATTAMENTOCANDEGGIO = @TRATTAMENTOCANDEGGIO

     ,CMSARTICOLI.TRATTAMENTOLAVAGGIOSECCO = @TRATTAMENTOLAVAGGIOSECCO

     ,CMSARTICOLI.TRATTAMENTOASCIUGATURA = @TRATTAMENTOASCIUGATURA

     ,CMSARTICOLI.TRATTAMENTOSTIRO = @TRATTAMENTOSTIRO

     ,CMSARTICOLI.TRATTAMENTOLAVAGGIO = @TRATTAMENTOLAVAGGIO

     ,CMSARTICOLI.ARFL01 = @ARFL01

     ,CMSARTICOLI.USERCRT = @UpdateUserID

     ,CMSARTICOLI.ARAGMN = @ARAGMN -- Finished Width Min Inches (nn.nn)

     ,CMSARTICOLI.ARATMN = @ARATMN  -- Finished Width Max Inches (nn.nn)

     ,CMSARTICOLI.ARPSGR = @ARPSGR  -- inished Weight Min Oz/Sq Yd (nn.nn)

     ,CMSARTICOLI.USRFillStretchPercentMax = @USRFillStretchPercentMax

     ,CMSARTICOLI.USRFillStretchPercentMin = @USRFillStretchPercentMin

     ,CMSARTICOLI.USRFinishedEndsInchMax = @USRFinishedEndsInchMax

     ,CMSARTICOLI.USRFinishedEndsInchMin = @USRFinishedEndsInchMin

     ,CMSARTICOLI.ARINCM = @ARINCM

     ,CMSARTICOLI.ARINFN = @ARINFN

     ,CMSARTICOLI.USRMaxWtOzSqYd = @USRMaxWtOzSqYd

     ,CMSARTICOLI.USRWarpStretchPercentMax = @USRWarpStretchPercentMax

     ,CMSARTICOLI.USRWarpStretchPercentMin = @USRWarpStretchPercentMin

     ,CMSARTICOLI.USRMidWidInches = @USRMidWidInches

     ,CMSARTICOLI.USRCutWidCM = @USRCutWidCM

     ,CMSARTICOLI.USRMinWidCM = @USRMinWidCM

     ,CMSARTICOLI.USRMaxWidCM = @USRMaxWidCM

     ,CMSARTICOLI.USRMidWidCM = @USRMidWidCM

     ,CMSARTICOLI.ARDMAT = @ARDMAT  -- Finished Weight Mid Oz/Sq Yd (nn.nn)

     ,CMSARTICOLI.USRMinWtOzLnYd = @USRMinWtOzLnYd

     ,CMSARTICOLI.USRMaxWtOzLnYd = @USRMaxWtOzLnYd

     ,CMSARTICOLI.ARPSFI = @ARPSFI -- Finish Weight Oz/Ln Yd

     ,CMSARTICOLI.USRMinWtGrSqMtr = @USRMinWtGrSqMtr

     ,CMSARTICOLI.USRMaxWtGrSqMeter = @USRMaxWtGrSqMeter

     ,CMSARTICOLI.USRMidWtGrSqMeter = @USRMidWtGrSqMeter

     ,CMSARTICOLI.USRMinWtGrLnMater = @USRMinWtGrLnMater

     ,CMSARTICOLI.USRMaxWtGrLnMeter = @USRMaxWtGrLnMeter

     ,CMSARTICOLI.USRMidWtGrLnMeter = @USRMidWtGrLnMeter

     ,CMSARTICOLI.ARFICM = @ARFICM -- ENDS/INCH MID

     ,CMSARTICOLI.USRFinishedPicksInchAvg = @USRFinishedPicksInchAvg -- PICKS/INCH avg

     ,CMSARTICOLI.USRFinishedEndsCMMin = @USRFinishedEndsCMMin

     ,CMSARTICOLI.USRFinishedEndsCMMax = @USRFinishedEndsCMMax

     ,CMSARTICOLI.USRFinishedEndsCMAvg = @USRFinishedEndsCMAvg

     ,CMSARTICOLI.USRFinishedPicksCMMin = @USRFinishedPicksCMMin

     ,CMSARTICOLI.USRFinishedPicksCMMax = @USRFinishedPicksCMMax

     ,CMSARTICOLI.USRFinishedPicksCMAvg = @USRFinishedPicksCMAvg

     ,CMSARTICOLI.USRAverageYarnNumber = @USRAverageYarnNumber

     ,CMSARTICOLI.USRFinishRoutingCode = @USRFinishRouting

     ,CMSARTICOLI.ARTPPD = @ARTPPD

     ,CMSARTICOLI.UM = 'YD'

     ,CMSARTICOLI.ARCDLV = 100

     ,CMSARTICOLI.USRFinishPlanningFactorsTotal = @USRFinishPlanningFactorsTotal

     ,CMSARTICOLI.USRGreigeYdsToEstFinishYds = @USRGreigeYdsToEstFinishYds

     ,CMSARTICOLI.USRFinishPlanningShrinkageWorkingLoss = @USRFinishPlanningShrinkageWorkingLoss

     ,CMSARTICOLI.USRGreigeYdsToSellableYds = @USRGreigeYdsToSellableYds

     ,CMSARTICOLI.ARMDMN = @ARMDMN

     ,CMSARTICOLI.USRCreationDate = @USRCreationDate

    -- 10-Feb-2006 MDP

     ,CMSARTICOLI.CODICEDIVISIONE = @CODICEDIVISIONE

    -- Defaults

     ,ARALIV = 'NO'

     ,ARDCLS = 'N'

     ,ARDISP = 'Y' 

     ,ARESCL = 'N'

     ,ARFLBC = 'N'

     ,ARRGLO = 'D'

     ,ARRGMG = '1'

     ,ARTPGS = 'P'

     ,ARFG08 = 'IN'

    -- 15-Feb-2006 MtC

     ,USRFinishPlanningShrinkageLoss = @USRFinishPlanningShrinkageLoss

    Where CMSARTICOLI.Mlivarticolo = @Mlivarticolo

     and

     CMSARTICOLI.Codicecomponente = @Codicecomponente

    Update CMSARTICOLI

    Set CMSARTICOLI.USRFinishDescriptionOverride = @USRFinishDesc

    Where CMSARTICOLI.Mlivarticolo = @Mlivarticolo

     and

     CMSARTICOLI.Codicecomponente = @Codicecomponente

     and

     CMSARTICOLI.USRFinishDescriptionOverride = ''

    Set @Numeric_YYMMDD = convert (varchar, @USRCreationDate, 12)

    -- Update needed data in the INFAG00F table if the record already exist.

    --

    Update INFAG00F

    Set  INFAG00F.IGTPDC = 'AR'

     ,INFAG00F.IGTPFM = 'LAI'

     ,INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

     ,INFAG00F.IGCODL = @USREndUseProfileCode

     ,INFAG00F.IGCDP1 = ''

     ,INFAG00F.IGCDP2 = ''

     ,INFAG00F.IGCODM = STR (@USRWarpStretchPercentMin, 3) + '-' + STR (@USRWarpStretchPercentMax, 3)

     ,INFAG00F.IGCODN = STR (@USRFillStretchPercentMin, 3) + '-' + STR (@USRFillStretchPercentMax, 3)

     ,INFAG00F.IGCODA = @USRFinishPlanningShrinkageWorkingLoss

     ,INFAG00F.IGCODR = 'S' -- Yes

     ,INFAG00F.IGCODQ = '00'

     ,INFAG00F.IGCODO = @USRFinishEvaluationTempHandStandard

     ,INFAG00F.IGCODP = @USRFinishEvaluationFormulaCode

     ,INFAG00F.IGCODB = @Numeric_YYMMDD

    Where INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

    -- Insert the End Use Profile Code into the INFAG00F table if the record does not exist.

    --

    Insert Into INFAG00F

      (IGTPDC

      ,IGTPFM

      ,IGCDEL

      ,IGCODL

      ,IGCDP1

      ,IGCDP2

      ,IGCODM

      ,IGCODN

      ,IGCODA

      ,IGCODR

      ,IGCODQ

      ,IGCODO

      ,IGCODP

      ,IGCODB

     &nbsp

    Select  'AR'

      ,'LAI'

      ,MLIVARTICOLO+CODICECOMPONENTE

      ,USREndUseProfileCode

      ,''

      ,''

      ,STR (@USRWarpStretchPercentMin, 3) + '-' + STR (@USRWarpStretchPercentMax, 3)

      ,STR (@USRFillStretchPercentMin, 3) + '-' + STR (@USRFillStretchPercentMax, 3)

      ,USRFinishPlanningShrinkageWorkingLoss

      ,'S' -- Yes

      ,'00'

      ,@USRFinishEvaluationTempHandStandard

      ,@USRFinishEvaluationFormulaCode

      ,@Numeric_YYMMDD

    From  CMSARTICOLI

    Where  CMSARTICOLI.Mlivarticolo = @Mlivarticolo

      and

      CMSARTICOLI.Codicecomponente = @Codicecomponente

    and not exists

      (Select ''

      From INFAG00F

      Where INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

     &nbsp

    -- ML 10 Bill of Material Processing

    -- DELETE all existing BOM Detail and Header Records for the Product

    If exists

    (Select 1 

    From TESTATADISTINTA    

     where TESTATADISTINTA.MLIVARTICOLO = '10'

    -- 09-Jan-2006 MDP

     and TESTATADISTINTA.CODICEARTICOLO Like substring(@Codicecomponente,1,12) + ' %')

     BEGIN

      Delete

       From TESTATADISTINTA

       where TESTATADISTINTA.MLIVARTICOLO = '10'

    -- 09-Jan-2006 MDP

       and TESTATADISTINTA.CODICEARTICOLO Like substring(@Codicecomponente,1,12) + ' %'

     END

    If exists

    (Select 1 

    From COMPONENTIXARTICOLO

     where COMPONENTIXARTICOLO.MLIVARTICOLO = '10'

    -- 09-Jan-2006 MDP

     and COMPONENTIXARTICOLO.CODICEARTICOLO Like substring(@Codicecomponente,1,12) + ' %')

     BEGIN

      Delete

       From COMPONENTIXARTICOLO

       where COMPONENTIXARTICOLO.MLIVARTICOLO = '10'

    -- 09-Jan-2006 MDP

       and COMPONENTIXARTICOLO.CODICEARTICOLO Like substring(@Codicecomponente,1,12) + ' %'

     END

    If @CreateBOM = 'Y'

     GOTO Check_Control_Style

    Else

     GOTO Exit_Trigger

    Check_Control_Style:

    IF @USRControlStyle is Null or @USRControlStyle = ''

     GOTO Exit_Trigger

    BOM_Process_ML10:

    If @USRFinishPlanningFactorsTotal = 0

     Set @CML2MydsPerML10 = 1

    Else

     Set @CML2MydsPerML10 = 1 / @USRFinishPlanningFactorsTotal

    Set @Currentdate = CONVERT(smalldatetime, GETDATE(), 101)

    Set @CurDate = CONVERT(CHAR(12), GETDATE(), 101)

    Set @Suffissodb = ' '

    Set @NUMSEQUENZA = 1

    Set @NUMALTERNATIVA = 0

    Set @IS_GHOST = 0

    Set @COMPCRIT = 0

    Set @FABBISOGNO = Round(@CML2MydsPerML10,5)

    INSERT INTO TESTATADISTINTA

     (MLIVARTPADRE

     ,CODARTPADRE

     ,MLIVARTICOLO

     ,CODICEARTICOLO

     ,SUFFISSODB

     ,CODCICLO

     ,DATACREAZIONE

     ,OPERATORE

     ,TIMSTAMP)

     Values

     ('10'

     ,@Codicecomponente

     ,'10'

      ,(substring(@Codicecomponente,1,12) + ' *')  

     ,@Suffissodb

     ,@USRFinishRouting

     ,@Currentdate

     ,'cdsbaftrigger'

     ,@curdate)

    INSERT INTO COMPONENTIXARTICOLO

          (MLIVARTICOLO

     ,CODICEARTICOLO

     ,SUFFISSODB

     ,NUMSEQUENZA

     ,NUMALTERNATIVA

     ,MLIVCOMPONENTE

     ,CODICECOMPONENTE

     ,IS_GHOST

     ,COMPCRIT

     ,FABBISOGNO

     ,STATO

     ,OPERATORE

     ,TIMSTAMP)

          Values

     ('10'

      ,(substring(@Codicecomponente,1,12) + ' *')  

          ,@Suffissodb

          ,@NUMSEQUENZA

     ,@NUMALTERNATIVA

     ,'2M'

     ,@USRControlStyle

     ,@IS_GHOST     

     ,@COMPCRIT

     ,@FABBISOGNO

     ,'N'

     ,'cdsbaftrigger'

     ,@curdate)

     

    GOTO Exit_Trigger

    -----------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------

    Process_MLFT:  -- Finish Trial

    Set @ML20CodeFromMLFT = SUBSTRING(@Codicecomponente, 1, 8)

    If exists

    (Select 1 

    From Cmsarticoli    

     where Cmsarticoli.Mlivarticolo = '20'

     and Cmsarticoli.Codicecomponente = @ML20CodeFromMLFT)

      GOTO Continue_Process_MLFT

    Else

     Begin

      RAISERROR ('The Greige Style does not exists for this Finish Trial.  Add the Greige Style and update the Finish Trial.', 11, 1)

      GoTo Exit_Trigger

     End

    Continue_Process_MLFT:

    Select

    @ML20FabricDesc = Descrizionecomponente,

    @ML20ARFL06 = ARFL06,

    @ML20TypeWeave = USRTypeWeave,

    @ML20Market = CODICELINEA,

    @ML20RDCode = USRRDCode,

    @ML20FiberContent = ARCOMP,

    @ML20GreigeYarnCategoryRevision01 = USRGreigeYarnCategoryRevision01,

    @ML20GreigeYarnCategoryRevision02 = USRGreigeYarnCategoryRevision02, 

    @ML20GreigeYarnCategoryRevision03 = USRGreigeYarnCategoryRevision03, 

    @ML20GreigeYarnCategoryRevision04 = USRGreigeYarnCategoryRevision04, 

    @ML20GreigeYarnCategoryRevision05 = USRGreigeYarnCategoryRevision05, 

    @ML20GreigeYarnCategoryRevision06 = USRGreigeYarnCategoryRevision06, 

    @ML20GreigeYarnCategoryRevision07 = USRGreigeYarnCategoryRevision07, 

    @ML20GreigeYarnCategoryRevision08 = USRGreigeYarnCategoryRevision08, 

    @ML20GreigeYarnCategoryRevision09 = USRGreigeYarnCategoryRevision09, 

    @ML20GreigeYarnCategoryRevision10 = USRGreigeYarnCategoryRevision10, 

    @ML20GreigeYarnCategoryRevision11 = USRGreigeYarnCategoryRevision11, 

    @ML20GreigeYarnCategoryRevision12 = USRGreigeYarnCategoryRevision12, 

    @ML20GreigeYarnCategoryRevision13 = USRGreigeYarnCategoryRevision13, 

    @ML20GreigeYarnCategoryRevision14 = USRGreigeYarnCategoryRevision14, 

    @ML20GreigeYarnCategoryRevision15 = USRGreigeYarnCategoryRevision15, 

    @ML20GreigeYarnCategoryRevision16 = USRGreigeYarnCategoryRevision16, 

    @ML20GreigeYarnCategoryRevision17 = USRGreigeYarnCategoryRevision17, 

    @ML20GreigeYarnCategoryRevision18 = USRGreigeYarnCategoryRevision18, 

    @ML20GreigeYarnCategoryRevision19 = USRGreigeYarnCategoryRevision19, 

    @ML20GreigeYarnCategoryRevision20 = USRGreigeYarnCategoryRevision20, 

    @ML20GreigeYarnType01 = USRGreigeYarnType01,

    @ML20GreigeYarnType02 = USRGreigeYarnType02,

    @ML20GreigeYarnType03 = USRGreigeYarnType03,

    @ML20GreigeYarnType04 = USRGreigeYarnType04,

    @ML20GreigeYarnType05 = USRGreigeYarnType05,

    @ML20GreigeYarnType06 = USRGreigeYarnType06,

    @ML20GreigeYarnType07 = USRGreigeYarnType07,

    @ML20GreigeYarnType08 = USRGreigeYarnType08,

    @ML20GreigeYarnType09 = USRGreigeYarnType09,

    @ML20GreigeYarnType10 = USRGreigeYarnType10,

    @ML20GreigeYarnType11 = USRGreigeYarnType11,

    @ML20GreigeYarnType12 = USRGreigeYarnType12,

    @ML20GreigeYarnType13 = USRGreigeYarnType13,

    @ML20GreigeYarnType14 = USRGreigeYarnType14,

    @ML20GreigeYarnType15 = USRGreigeYarnType15,

    @ML20GreigeYarnType16 = USRGreigeYarnType16,

    @ML20GreigeYarnType17 = USRGreigeYarnType17,

    @ML20GreigeYarnType18 = USRGreigeYarnType18,

    @ML20GreigeYarnType19 = USRGreigeYarnType19,

    @ML20GreigeYarnType20 = USRGreigeYarnType20,

    @ML20GreigeYarnSequence01 = USRGreigeYarnSequence01,

    @ML20GreigeYarnSequence02 = USRGreigeYarnSequence02,

    @ML20GreigeYarnSequence03 = USRGreigeYarnSequence03,

    @ML20GreigeYarnSequence04 = USRGreigeYarnSequence04,

    @ML20GreigeYarnSequence05 = USRGreigeYarnSequence05,

    @ML20GreigeYarnSequence06 = USRGreigeYarnSequence06,

    @ML20GreigeYarnSequence07 = USRGreigeYarnSequence07,

    @ML20GreigeYarnSequence08 = USRGreigeYarnSequence08,

    @ML20GreigeYarnSequence09 = USRGreigeYarnSequence09,

    @ML20GreigeYarnSequence10 = USRGreigeYarnSequence10,

    @ML20GreigeYarnSequence11 = USRGreigeYarnSequence11,

    @ML20GreigeYarnSequence12 = USRGreigeYarnSequence12,

    @ML20GreigeYarnSequence13 = USRGreigeYarnSequence13,

    @ML20GreigeYarnSequence14 = USRGreigeYarnSequence14,

    @ML20GreigeYarnSequence15 = USRGreigeYarnSequence15,

    @ML20GreigeYarnSequence16 = USRGreigeYarnSequence16,

    @ML20GreigeYarnSequence17 = USRGreigeYarnSequence17,

    @ML20GreigeYarnSequence18 = USRGreigeYarnSequence18,

    @ML20GreigeYarnSequence19 = USRGreigeYarnSequence19,

    @ML20GreigeYarnSequence20 = USRGreigeYarnSequence20,

    @ML20GreigeYarnEndsPicks01 = USRGreigeYarnEndsPicks01,

    @ML20GreigeYarnEndsPicks02 = USRGreigeYarnEndsPicks02,

    @ML20GreigeYarnEndsPicks03 = USRGreigeYarnEndsPicks03,

    @ML20GreigeYarnEndsPicks04 = USRGreigeYarnEndsPicks04,

    @ML20GreigeYarnEndsPicks05 = USRGreigeYarnEndsPicks05,

    @ML20GreigeYarnEndsPicks06 = USRGreigeYarnEndsPicks06,

    @ML20GreigeYarnEndsPicks07 = USRGreigeYarnEndsPicks07,

    @ML20GreigeYarnEndsPicks08 = USRGreigeYarnEndsPicks08,

    @ML20GreigeYarnEndsPicks09 = USRGreigeYarnEndsPicks09,

    @ML20GreigeYarnEndsPicks10 = USRGreigeYarnEndsPicks10,

    @ML20GreigeYarnEndsPicks11 = USRGreigeYarnEndsPicks11,

    @ML20GreigeYarnEndsPicks12 = USRGreigeYarnEndsPicks12,

    @ML20GreigeYarnEndsPicks13 = USRGreigeYarnEndsPicks13,

    @ML20GreigeYarnEndsPicks14 = USRGreigeYarnEndsPicks14,

    @ML20GreigeYarnEndsPicks15 = USRGreigeYarnEndsPicks15,

    @ML20GreigeYarnEndsPicks16 = USRGreigeYarnEndsPicks16,

    @ML20GreigeYarnEndsPicks17 = USRGreigeYarnEndsPicks17,

    @ML20GreigeYarnEndsPicks18 = USRGreigeYarnEndsPicks18,

    @ML20GreigeYarnEndsPicks19 = USRGreigeYarnEndsPicks19,

    @ML20GreigeYarnEndsPicks20 = USRGreigeYarnEndsPicks20,

    @ML20GreigeYarnWt100Yds01 = USRGreigeYarnWt100Yds01,

    @ML20GreigeYarnWt100Yds02 = USRGreigeYarnWt100Yds02,

    @ML20GreigeYarnWt100Yds03 = USRGreigeYarnWt100Yds03,

    @ML20GreigeYarnWt100Yds04 = USRGreigeYarnWt100Yds04,

    @ML20GreigeYarnWt100Yds05 = USRGreigeYarnWt100Yds05,

    @ML20GreigeYarnWt100Yds06 = USRGreigeYarnWt100Yds06,

    @ML20GreigeYarnWt100Yds07 = USRGreigeYarnWt100Yds07,

    @ML20GreigeYarnWt100Yds08 = USRGreigeYarnWt100Yds08,

    @ML20GreigeYarnWt100Yds09 = USRGreigeYarnWt100Yds09,

    @ML20GreigeYarnWt100Yds10 = USRGreigeYarnWt100Yds10,

    @ML20GreigeYarnWt100Yds11 = USRGreigeYarnWt100Yds11,

    @ML20GreigeYarnWt100Yds12 = USRGreigeYarnWt100Yds12,

    @ML20GreigeYarnWt100Yds13 = USRGreigeYarnWt100Yds13,

    @ML20GreigeYarnWt100Yds14 = USRGreigeYarnWt100Yds14,

    @ML20GreigeYarnWt100Yds15 = USRGreigeYarnWt100Yds15,

    @ML20GreigeYarnWt100Yds16 = USRGreigeYarnWt100Yds16,

    @ML20GreigeYarnWt100Yds17 = USRGreigeYarnWt100Yds17,

    @ML20GreigeYarnWt100Yds18 = USRGreigeYarnWt100Yds18,

    @ML20GreigeYarnWt100Yds19 = USRGreigeYarnWt100Yds19,

    @ML20GreigeYarnWt100Yds20 = USRGreigeYarnWt100Yds20,

    @ML20CommerceFabricType = USRGreigeCostFactorCommerceFabricType,

    @ML20ARFG09 = ARFG09,

    @ML20DiscountFabricType = USRDiscountFabricType,

    @ML20GreigeCostStatus = USRGreigeCostStatus,

    @ARLRKG = ARLRKG,

    @USRPieceDyeStockDye = USRPieceDyeStockDye,

    @TIPOPRODOTTO = TIPOPRODOTTO,

    -- 10-Feb-2006 MDP

    @CODICEDIVISIONE = CODICEDIVISIONE

    From Cmsarticoli    

     where Cmsarticoli.Mlivarticolo = '20'

     and Cmsarticoli.Codicecomponente = @ML20CodeFromMLFT

    If @USRCreationDate is Null or @USRCreationDate = ''

     Begin

      Set @USRCreationDate = CONVERT(CHAR(12), GETDATE(), 101)

    -- 10-Feb-2006 MDP

      Set @USRFTOriginationDate = @USRCreationDate

     End

    -- Perform calculations and data moves for ML 10, Finish Style.

    --

    Set @ARAGMN = ROUND (@ARAGMN, 2) -- Finished Width Min Inches (nn.nn)

    Set @ARATMN = ROUND (@ARATMN, 2) -- Finished Width Max Inches (nn.nn)

    Set @USRMidWidInches = ROUND ((@ARAGMN + @ARATMN) / 2, 2)

    Set @ARPSGR = ROUND (@ARPSGR, 2) -- Finished Weight Min Oz/Sq Yd (nn.nn)

    Set @USRFillStretchPercentMax = ROUND (@USRFillStretchPercentMax, 0)

    Set @USRFillStretchPercentMin = ROUND (@USRFillStretchPercentMin, 0)

     

    -- 20-Feb-2006 MtC

    --

    set @TOTAL_ENDS = 0

    if @USRGreigeYarnType01 = 'W' or @USRGreigeYarnType01 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks01

    if @USRGreigeYarnType02 = 'W' or @USRGreigeYarnType02 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks02

    if @USRGreigeYarnType03 = 'W' or @USRGreigeYarnType03 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks03

    if @USRGreigeYarnType04 = 'W' or @USRGreigeYarnType04 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks04

    if @USRGreigeYarnType05 = 'W' or @USRGreigeYarnType05 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks05

    if @USRGreigeYarnType06 = 'W' or @USRGreigeYarnType06 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks06

    if @USRGreigeYarnType07 = 'W' or @USRGreigeYarnType07 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks07

    if @USRGreigeYarnType08 = 'W' or @USRGreigeYarnType08 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks08

    if @USRGreigeYarnType09 = 'W' or @USRGreigeYarnType09 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks09

    if @USRGreigeYarnType10 = 'W' or @USRGreigeYarnType10 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks10

    if @USRGreigeYarnType11 = 'W' or @USRGreigeYarnType11 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks11

    if @USRGreigeYarnType12 = 'W' or @USRGreigeYarnType12 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks12

    if @USRGreigeYarnType13 = 'W' or @USRGreigeYarnType13 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks13

    if @USRGreigeYarnType14 = 'W' or @USRGreigeYarnType14 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks14

    if @USRGreigeYarnType15 = 'W' or @USRGreigeYarnType15 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks15

    if @USRGreigeYarnType16 = 'W' or @USRGreigeYarnType16 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks16

    if @USRGreigeYarnType17 = 'W' or @USRGreigeYarnType17 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks17

    if @USRGreigeYarnType18 = 'W' or @USRGreigeYarnType18 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks18

    if @USRGreigeYarnType19 = 'W' or @USRGreigeYarnType19 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks19

    if @USRGreigeYarnType20 = 'W' or @USRGreigeYarnType20 = 'S'

    set @TOTAL_ENDS = @TOTAL_ENDS + @USRGreigeYarnEndsPicks20

    -- 22-Feb-2006 MDP

    If @ARAGMN <> 0 

     Set @USRFinishedEndsInchMax = ROUND (@TOTAL_ENDS / @ARAGMN, 0) -- ARAGMN = Finished Width Min

    else

     Set @USRFinishedEndsInchMax = 0

    If @USRFinishedEndsInchMax > 999

     Set @USRFinishedEndsInchMax = 0

    If @ARATMN <> 0

     Set @USRFinishedEndsInchMin = ROUND (@TOTAL_ENDS / @ARATMN, 0) -- ARATMN = Finished Width Max

    else

     Set @USRFinishedEndsInchMin = 0

    If @USRFinishedEndsInchMin > 999

     Set @USRFinishedEndsInchMin = 0

    if @USRMidWidInches <> 0

     Set @ARFICM = ROUND (@TOTAL_ENDS / @USRMidWidInches, 0)  -- ARFICM = Finished Ends Per Inch Midpoint

    else

     Set @ARFICM = 0        

    If @ARFICM > 999

     Set @ARFICM = 0

    If @ARINCM = 0

     Set @ARINCM = 1

    Set @ARINCM = ROUND (@ARINCM, 0)

    If @ARINFN = 0

     Set @ARINFN = 1

    Set @ARINFN = ROUND (@ARINFN, 0)

    Set @USRMaxWtOzSqYd = ROUND (@USRMaxWtOzSqYd, 2)

    Set @USRWarpStretchPercentMax = ROUND (@USRWarpStretchPercentMax, 0)

    Set @USRWarpStretchPercentMin = ROUND (@USRWarpStretchPercentMin, 0)

    Set @USRCutWidCM = ROUND (@ARATMX * 2.54, 0)

    if @USRCutWidCM is null

     Set @USRCutWidCM = ROUND (0, 0)

    Set @USRMinWidCM = ROUND (@ARAGMN * 2.54, 0)

    Set @USRMaxWidCM = ROUND (@ARATMN * 2.54, 0)

    Set @USRMidWidCM = ROUND ((@USRMinWidCM + @USRMaxWidCM) / 2, 0)

    Set @ARDMAT = ROUND ((@ARPSGR + @USRMaxWtOzSqYd) / 2, 2) -- Finished Weight Mid Oz/Sq Yd

    Set @USRMinWtOzLnYd = ROUND ((@ARPSGR / 36) * @USRMidWidInches, 2)

    Set @USRMaxWtOzLnYd = ROUND ((@USRMaxWtOzSqYd / 36) * @USRMidWidInches, 2)

    Set @ARPSFI = ROUND ((@USRMinWtOzLnYd + @USRMaxWtOzLnYd) / 2, 2) -- Finish Weight Oz/Ln Yd

    Set @USRMinWtGrSqMtr = ROUND (@ARPSGR * 33.91, 0)

    Set @USRMaxWtGrSqMeter = ROUND (@USRMaxWtOzSqYd * 33.91, 0)

    Set @USRMidWtGrSqMeter = ROUND (((@USRMinWtGrSqMtr + @USRMaxWtGrSqMeter) / 2), 0)

    Set @USRMinWtGrLnMater = ROUND ((@USRMinWtGrSqMtr / 100) * @USRMinWidCM, 0)

    Set @USRMaxWtGrLnMeter = ROUND ((@USRMaxWtGrSqMeter / 100) * @USRMaxWidCM, 0)

    Set @USRMidWtGrLnMeter = ROUND ((@USRMinWtGrLnMater + @USRMaxWtGrLnMeter) / 2, 0)

    Set @USRFinishedPicksInchAvg = ROUND ((@ARINCM + @ARINFN) / 2, 0)

    if @USRFinishedPicksInchAvg is null

     Set @USRFinishedPicksInchAvg = ROUND (0, 0)

    If @USRFinishedEndsCMMin = 0

     Set @USRFinishedEndsCMMin = 1

    Set @USRFinishedEndsCMMin = ROUND (@USRFinishedEndsInchMin / 2.54, 0)

    If @USRFinishedEndsCMMax = 0

     Set @USRFinishedEndsCMMax = 1

    Set @USRFinishedEndsCMMax = ROUND (@USRFinishedEndsInchMax / 2.54, 0)

    Set @USRFinishedEndsCMAvg = ROUND ((@USRFinishedEndsCMMin + @USRFinishedEndsCMMax) / 2, 0)

    Set @USRFinishedPicksCMMin = ROUND (@ARINFN / 2.54, 0)

    if @USRFinishedPicksCMMin is null

     Set @USRFinishedPicksCMMin = ROUND (0, 0)

    Set @USRFinishedPicksCMMax = ROUND (@ARINCM / 2.54, 0)

    If @USRFinishedPicksCMMax is null

     Set @USRFinishedPicksCMMax = ROUND (0, 0)

    Set @USRFinishedPicksCMAvg = ROUND (((@USRFinishedPicksCMMin + @USRFinishedPicksCMMax) / 2), 0)

    if @USRFinishedPicksCMAvg is null

     Set @USRFinishedPicksCMAvg = ROUND (0, 0)

     

    -- 15-Feb-2006 Mtc

    -- Calculate shrinkage loss

    --

    set @TOTAL_PICKS = 0

    if @USRGreigeYarnType01 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks01

    if @USRGreigeYarnType02 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks02

    if @USRGreigeYarnType03 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks03

    if @USRGreigeYarnType04 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks04

    if @USRGreigeYarnType05 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks05

    if @USRGreigeYarnType06 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks06

    if @USRGreigeYarnType07 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks07

    if @USRGreigeYarnType08 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks08

    if @USRGreigeYarnType09 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks09

    if @USRGreigeYarnType10 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks10

    if @USRGreigeYarnType11 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks11

    if @USRGreigeYarnType12 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks12

    if @USRGreigeYarnType13 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks13

    if @USRGreigeYarnType14 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks14

    if @USRGreigeYarnType15 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks15

    if @USRGreigeYarnType16 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks16

    if @USRGreigeYarnType17 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks17

    if @USRGreigeYarnType18 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks18

    if @USRGreigeYarnType19 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks19

    if @USRGreigeYarnType20 = 'F'

    set @TOTAL_PICKS = @TOTAL_PICKS + @USRGreigeYarnEndsPicks20

    -- 03-Mar-2006 MtC

    if @USRFinishedPicksInchAvg > 1

     set @USRFinishPlanningShrinkageLoss = round (((@USRFinishedPicksInchAvg - @TOTAL_PICKS) / @USRFinishedPicksInchAvg) * 100, 1)

    else

     set @USRFinishPlanningShrinkageLoss = 0

     

    -- 10-Feb-2006 MDP

    --

    -- Try to determine the Finish Routing Used Code from ML 10

    -- If NULL numeric fields make zero

    If @ARGGCC is Null or @ARGGCC = ''

     Set @USRFinishLeadTime = 0

    Else

     Set @USRFinishLeadTime = ROUND(@ARGGCC, 0)

    If @CODICEFORNITORE like '569000%' -- Hurt Finishing

     Set @USRCntryOfOrgCode = 'US'

    Else

     If @CODICEFORNITORE like '595000%' -- Casimires Finishing

      Set @USRCntryOfOrgCode = 'MX'

    Select

    @USRFinishRouting = USRFinishRoutingTable.USRFinishRoutingCode

    From USRFinishRoutingTable where USRFinishRoutingTable.USRPieceDyeStockDye = @USRPieceDyeStockDye

    -- 18-Jan-2006 MDP

    and USRFinishRoutingTable.USRCntryOfOrgCode = @USRCntryOfOrgCode  

    and USRFinishRoutingTable.USRFinishLeadTime = @USRFinishLeadTime 

    -- 02-Jan-2006

    -- If Government set Routing Prefix to 'FG' or If Maximum Width > 69 set routing Prefix to 'FW'

    -- 02-Feb-2006 MDP

    -- If Synthetic Government also set Routing Prefix to 'FG'

    -- 18-Jan-2006 MDP

    If @USRCntryOfOrgCode = 'US'

    Begin

    -- 02-Feb-2006 MDP

     If @codicelinea = 'GW' or @codicelinea = 'GS'

      Set @USRFinishRouting = 'FG' + SUBSTRING(@USRFinishRouting, 3,3)

     Else

      If @ARATMN > 69

       Set @USRFinishRouting = 'FW' + SUBSTRING(@USRFinishRouting, 3,3)

    End

    Update CMSARTICOLI

    Set Descrizionecomponente = @ML20FabricDesc

    ,ARDSAG = @ML20FabricDesc

    ,ARFL06 = @ML20ARFL06

    ,USRTypeWeave = @ML20TypeWeave

    ,CODICELINEA = @ML20Market

    ,USRRDCode = @ML20RDCode

    ,ARCOMP = @ML20FiberContent

    ,USRGreigeYarnCategoryRevision01 = @ML20GreigeYarnCategoryRevision01

    ,USRGreigeYarnCategoryRevision02 = @ML20GreigeYarnCategoryRevision02 

    ,USRGreigeYarnCategoryRevision03 = @ML20GreigeYarnCategoryRevision03 

    ,USRGreigeYarnCategoryRevision04 = @ML20GreigeYarnCategoryRevision04 

    ,USRGreigeYarnCategoryRevision05 = @ML20GreigeYarnCategoryRevision05 

    ,USRGreigeYarnCategoryRevision06 = @ML20GreigeYarnCategoryRevision06 

    ,USRGreigeYarnCategoryRevision07 = @ML20GreigeYarnCategoryRevision07 

    ,USRGreigeYarnCategoryRevision08 = @ML20GreigeYarnCategoryRevision08 

    ,USRGreigeYarnCategoryRevision09 = @ML20GreigeYarnCategoryRevision09 

    ,USRGreigeYarnCategoryRevision10 = @ML20GreigeYarnCategoryRevision10 

    ,USRGreigeYarnCategoryRevision11 = @ML20GreigeYarnCategoryRevision11 

    ,USRGreigeYarnCategoryRevision12 = @ML20GreigeYarnCategoryRevision12 

    ,USRGreigeYarnCategoryRevision13 = @ML20GreigeYarnCategoryRevision13 

    ,USRGreigeYarnCategoryRevision14 = @ML20GreigeYarnCategoryRevision14 

    ,USRGreigeYarnCategoryRevision15 = @ML20GreigeYarnCategoryRevision15 

    ,USRGreigeYarnCategoryRevision16 = @ML20GreigeYarnCategoryRevision16 

    ,USRGreigeYarnCategoryRevision17 = @ML20GreigeYarnCategoryRevision17 

    ,USRGreigeYarnCategoryRevision18 = @ML20GreigeYarnCategoryRevision18 

    ,USRGreigeYarnCategoryRevision19 = @ML20GreigeYarnCategoryRevision19 

    ,USRGreigeYarnCategoryRevision20 = @ML20GreigeYarnCategoryRevision20 

    ,USRGreigeYarnType01 = @ML20GreigeYarnType01

    ,USRGreigeYarnType02 = @ML20GreigeYarnType02

    ,USRGreigeYarnType03 = @ML20GreigeYarnType03

    ,USRGreigeYarnType04 = @ML20GreigeYarnType04

    ,USRGreigeYarnType05 = @ML20GreigeYarnType05

    ,USRGreigeYarnType06 = @ML20GreigeYarnType06

    ,USRGreigeYarnType07 = @ML20GreigeYarnType07

    ,USRGreigeYarnType08 = @ML20GreigeYarnType08

    ,USRGreigeYarnType09 = @ML20GreigeYarnType09

    ,USRGreigeYarnType10 = @ML20GreigeYarnType10

    ,USRGreigeYarnType11 = @ML20GreigeYarnType11

    ,USRGreigeYarnType12 = @ML20GreigeYarnType12

    ,USRGreigeYarnType13 = @ML20GreigeYarnType13

    ,USRGreigeYarnType14 = @ML20GreigeYarnType14

    ,USRGreigeYarnType15 = @ML20GreigeYarnType15

    ,USRGreigeYarnType16 = @ML20GreigeYarnType16

    ,USRGreigeYarnType17 = @ML20GreigeYarnType17

    ,USRGreigeYarnType18 = @ML20GreigeYarnType18

    ,USRGreigeYarnType19 = @ML20GreigeYarnType19

    ,USRGreigeYarnType20 = @ML20GreigeYarnType20

    ,USRGreigeYarnSequence01 = @ML20GreigeYarnSequence01

    ,USRGreigeYarnSequence02 = @ML20GreigeYarnSequence02

    ,USRGreigeYarnSequence03 = @ML20GreigeYarnSequence03

    ,USRGreigeYarnSequence04 = @ML20GreigeYarnSequence04

    ,USRGreigeYarnSequence05 = @ML20GreigeYarnSequence05

    ,USRGreigeYarnSequence06 = @ML20GreigeYarnSequence06

    ,USRGreigeYarnSequence07 = @ML20GreigeYarnSequence07

    ,USRGreigeYarnSequence08 = @ML20GreigeYarnSequence08

    ,USRGreigeYarnSequence09 = @ML20GreigeYarnSequence09

    ,USRGreigeYarnSequence10 = @ML20GreigeYarnSequence10

    ,USRGreigeYarnSequence11 = @ML20GreigeYarnSequence11

    ,USRGreigeYarnSequence12 = @ML20GreigeYarnSequence12

    ,USRGreigeYarnSequence13 = @ML20GreigeYarnSequence13

    ,USRGreigeYarnSequence14 = @ML20GreigeYarnSequence14

    ,USRGreigeYarnSequence15 = @ML20GreigeYarnSequence15

    ,USRGreigeYarnSequence16 = @ML20GreigeYarnSequence16

    ,USRGreigeYarnSequence17 = @ML20GreigeYarnSequence17

    ,USRGreigeYarnSequence18 = @ML20GreigeYarnSequence18

    ,USRGreigeYarnSequence19 = @ML20GreigeYarnSequence19

    ,USRGreigeYarnSequence20 = @ML20GreigeYarnSequence20

    ,USRGreigeYarnEndsPicks01 = @ML20GreigeYarnEndsPicks01

    ,USRGreigeYarnEndsPicks02 = @ML20GreigeYarnEndsPicks02

    ,USRGreigeYarnEndsPicks03 = @ML20GreigeYarnEndsPicks03

    ,USRGreigeYarnEndsPicks04 = @ML20GreigeYarnEndsPicks04

    ,USRGreigeYarnEndsPicks05 = @ML20GreigeYarnEndsPicks05

    ,USRGreigeYarnEndsPicks06 = @ML20GreigeYarnEndsPicks06

    ,USRGreigeYarnEndsPicks07 = @ML20GreigeYarnEndsPicks07

    ,USRGreigeYarnEndsPicks08 = @ML20GreigeYarnEndsPicks08

    ,USRGreigeYarnEndsPicks09 = @ML20GreigeYarnEndsPicks09

    ,USRGreigeYarnEndsPicks10 = @ML20GreigeYarnEndsPicks10

    ,USRGreigeYarnEndsPicks11 = @ML20GreigeYarnEndsPicks11

    ,USRGreigeYarnEndsPicks12 = @ML20GreigeYarnEndsPicks12

    ,USRGreigeYarnEndsPicks13 = @ML20GreigeYarnEndsPicks13

    ,USRGreigeYarnEndsPicks14 = @ML20GreigeYarnEndsPicks14

    ,USRGreigeYarnEndsPicks15 = @ML20GreigeYarnEndsPicks15

    ,USRGreigeYarnEndsPicks16 = @ML20GreigeYarnEndsPicks16

    ,USRGreigeYarnEndsPicks17 = @ML20GreigeYarnEndsPicks17

    ,USRGreigeYarnEndsPicks18 = @ML20GreigeYarnEndsPicks18

    ,USRGreigeYarnEndsPicks19 = @ML20GreigeYarnEndsPicks19

    ,USRGreigeYarnEndsPicks20 = @ML20GreigeYarnEndsPicks20

    ,USRGreigeYarnWt100Yds01 = @ML20GreigeYarnWt100Yds01

    ,USRGreigeYarnWt100Yds02 = @ML20GreigeYarnWt100Yds02

    ,USRGreigeYarnWt100Yds03 = @ML20GreigeYarnWt100Yds03

    ,USRGreigeYarnWt100Yds04 = @ML20GreigeYarnWt100Yds04

    ,USRGreigeYarnWt100Yds05 = @ML20GreigeYarnWt100Yds05

    ,USRGreigeYarnWt100Yds06 = @ML20GreigeYarnWt100Yds06

    ,USRGreigeYarnWt100Yds07 = @ML20GreigeYarnWt100Yds07

    ,USRGreigeYarnWt100Yds08 = @ML20GreigeYarnWt100Yds08

    ,USRGreigeYarnWt100Yds09 = @ML20GreigeYarnWt100Yds09

    ,USRGreigeYarnWt100Yds10 = @ML20GreigeYarnWt100Yds10

    ,USRGreigeYarnWt100Yds11 = @ML20GreigeYarnWt100Yds11

    ,USRGreigeYarnWt100Yds12 = @ML20GreigeYarnWt100Yds12

    ,USRGreigeYarnWt100Yds13 = @ML20GreigeYarnWt100Yds13

    ,USRGreigeYarnWt100Yds14 = @ML20GreigeYarnWt100Yds14

    ,USRGreigeYarnWt100Yds15 = @ML20GreigeYarnWt100Yds15

    ,USRGreigeYarnWt100Yds16 = @ML20GreigeYarnWt100Yds16

    ,USRGreigeYarnWt100Yds17 = @ML20GreigeYarnWt100Yds17

    ,USRGreigeYarnWt100Yds18 = @ML20GreigeYarnWt100Yds18

    ,USRGreigeYarnWt100Yds19 = @ML20GreigeYarnWt100Yds19

    ,USRGreigeYarnWt100Yds20 = @ML20GreigeYarnWt100Yds20

    ,USRGreigeCostFactorCommerceFabricType = @ML20CommerceFabricType

    ,ARFG09 = @ML20ARFG09

    ,USRDiscountFabricType = @ML20DiscountFabricType

    ,USRGreigeCostStatus = @ML20GreigeCostStatus

    ,ARLRKG = @ARLRKG

    ,UM = 'YD'

    ,CMSARTICOLI.USERCRT = @UpdateUserID

    ,CMSARTICOLI.USRCreationDate = @USRCreationDate

    ,CMSARTICOLI.ARAGMN = @ARAGMN -- Finished Width Min Inches (nn.nn)

    ,CMSARTICOLI.ARATMN = @ARATMN  -- Finished Width Max Inches (nn.nn)

    ,CMSARTICOLI.ARPSGR = @ARPSGR  -- inished Weight Min Oz/Sq Yd (nn.nn)

    ,CMSARTICOLI.USRFillStretchPercentMax = @USRFillStretchPercentMax

    ,CMSARTICOLI.USRFillStretchPercentMin = @USRFillStretchPercentMin

    ,CMSARTICOLI.USRFinishedEndsInchMax = @USRFinishedEndsInchMax

    ,CMSARTICOLI.USRFinishedEndsInchMin = @USRFinishedEndsInchMin

    ,CMSARTICOLI.ARINCM = @ARINCM

    ,CMSARTICOLI.ARINFN = @ARINFN

    ,CMSARTICOLI.USRMaxWtOzSqYd = @USRMaxWtOzSqYd

    ,CMSARTICOLI.USRWarpStretchPercentMax = @USRWarpStretchPercentMax

    ,CMSARTICOLI.USRWarpStretchPercentMin = @USRWarpStretchPercentMin

    ,CMSARTICOLI.USRMidWidInches = @USRMidWidInches

    ,CMSARTICOLI.USRCutWidCM = @USRCutWidCM

    ,CMSARTICOLI.USRMinWidCM = @USRMinWidCM

    ,CMSARTICOLI.USRMaxWidCM = @USRMaxWidCM

    ,CMSARTICOLI.USRMidWidCM = @USRMidWidCM

    ,CMSARTICOLI.ARDMAT = @ARDMAT  -- Finished Weight Mid Oz/Sq Yd (nn.nn)

    ,CMSARTICOLI.USRMinWtOzLnYd = @USRMinWtOzLnYd

    ,CMSARTICOLI.USRMaxWtOzLnYd = @USRMaxWtOzLnYd

    ,CMSARTICOLI.ARPSFI = @ARPSFI -- Finish Weight Oz/Ln Yd

    ,CMSARTICOLI.USRMinWtGrSqMtr = @USRMinWtGrSqMtr

    ,CMSARTICOLI.USRMaxWtGrSqMeter = @USRMaxWtGrSqMeter

    ,CMSARTICOLI.USRMidWtGrSqMeter = @USRMidWtGrSqMeter

    ,CMSARTICOLI.USRMinWtGrLnMater = @USRMinWtGrLnMater

    ,CMSARTICOLI.USRMaxWtGrLnMeter = @USRMaxWtGrLnMeter

    ,CMSARTICOLI.USRMidWtGrLnMeter = @USRMidWtGrLnMeter

    ,CMSARTICOLI.ARFICM = @ARFICM -- ENDS/INCH MID

    ,CMSARTICOLI.USRFinishedPicksInchAvg = @USRFinishedPicksInchAvg -- PICKS/INCH AVG

    ,CMSARTICOLI.USRFinishedEndsCMMin = @USRFinishedEndsCMMin

    ,CMSARTICOLI.USRFinishedEndsCMMax = @USRFinishedEndsCMMax

    ,CMSARTICOLI.USRFinishedEndsCMAvg = @USRFinishedEndsCMAvg

    ,CMSARTICOLI.USRFinishedPicksCMMin = @USRFinishedPicksCMMin

    ,CMSARTICOLI.USRFinishedPicksCMMax = @USRFinishedPicksCMMax

    ,CMSARTICOLI.USRFinishedPicksCMAvg = @USRFinishedPicksCMAvg

    ,CMSARTICOLI.USRPieceDyeStockDye = @USRPieceDyeStockDye

    ,CMSARTICOLI.TIPOPRODOTTO = @TIPOPRODOTTO

    -- 10-Feb-2006 MDP

    ,CMSARTICOLI.USRFinishTrailOriginationDate = @USRFTOriginationDate

    ,CMSARTICOLI.USRFinishRoutingCode = @USRFinishRouting

    ,CMSARTICOLI.CODICEDIVISIONE = @CODICEDIVISIONE

    -- 15-Feb-2006

    ,USRFinishPlanningShrinkageLoss = @USRFinishPlanningShrinkageLoss

    Where CMSARTICOLI.Mlivarticolo = @Mlivarticolo

     and

     CMSARTICOLI.Codicecomponente = @Codicecomponente

     

    -- Update the End Use Profile Code in the INFAG00F table if the record already exist.

    --

    Update INFAG00F

    Set  INFAG00F.IGTPDC = 'AR'

     ,INFAG00F.IGTPFM = 'LAI'

     ,INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

     ,INFAG00F.IGCDP1 = ''

     ,INFAG00F.IGCDP2 = ''

     ,INFAG00F.IGCODO = @USRFinishEvaluationTempHandStandard

     ,INFAG00F.IGCODP = @USRFinishEvaluationFormulaCode

    Where INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

    -- Insert the End Use Profile Code into the INFAG00F table if the record does not exist.

    --

    Insert Into INFAG00F

      (IGTPDC

      ,IGTPFM

      ,IGCDEL

      ,IGCDP1

      ,IGCDP2

      ,IGCODO

      ,IGCODP

     &nbsp

    Select  'AR'

      ,'LAI'

      ,MLIVARTICOLO+CODICECOMPONENTE

      ,''

      ,''

      ,@USRFinishEvaluationTempHandStandard

      ,@USRFinishEvaluationFormulaCode

    From  CMSARTICOLI

    Where  CMSARTICOLI.Mlivarticolo = @Mlivarticolo

      and

      CMSARTICOLI.Codicecomponente = @Codicecomponente

    and not exists

      (Select ''

      From INFAG00F

      Where INFAG00F.IGCDEL = @Mlivarticolo+@Codicecomponente

     &nbsp

     

    GoTo Exit_Trigger

    -----------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------

    -- Exit BAF_CMSARTICOLI_INSERT_UPDATE trigger.

    --

    Exit_Trigger:

     

Viewing 5 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic. Login to reply