From 0330e7a4bfba0c14ae5dce9ee000cd74e5466958 Mon Sep 17 00:00:00 2001 From: Marcus Lindvall Date: Mon, 23 Sep 2019 14:14:23 +0200 Subject: [PATCH] Commit Jeeves modifications for future tracking --- .dockerignore | 3 + .../Jeeves_Esales_AddOrderRow.spr | 852 ++++++++++++++++++ .../Jeeves_Esales_PlaceOrder.spr | 445 +++++++++ 3 files changed, 1300 insertions(+) create mode 100644 jeeves_sp_updates/Jeeves_Esales_AddOrderRow.spr create mode 100644 jeeves_sp_updates/Jeeves_Esales_PlaceOrder.spr diff --git a/.dockerignore b/.dockerignore index e6c5909..dbfcfe0 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,6 @@ +# Jeeves specific scripts +jeeves_sp_updates/ + # Git .git .gitignore diff --git a/jeeves_sp_updates/Jeeves_Esales_AddOrderRow.spr b/jeeves_sp_updates/Jeeves_Esales_AddOrderRow.spr new file mode 100644 index 0000000..8856ff2 --- /dev/null +++ b/jeeves_sp_updates/Jeeves_Esales_AddOrderRow.spr @@ -0,0 +1,852 @@ +SET ANSI_NULLS OFF +GO +SET QUOTED_IDENTIFIER OFF +GO +SET NOCOUNT ON +GO +PRINT 'Begin Jeeves_Esales_AddOrderRow' +GO +PRINT 'Begin Jeeves_Esales_AddOrderRow' +PRINT '***************************************************' +PRINT '* *' +PRINT '* Jeeves_Esales_AddOrderRow *' +PRINT '* *' +PRINT '***************************************************' +GO +IF OBJECT_ID( 'Jeeves_Esales_AddOrderRow', 'P' ) IS NOT NULL +BEGIN + DROP PROCEDURE Jeeves_Esales_AddOrderRow +END +GO +IF (SELECT COUNT(*) FROM xspr WHERE + SprTrgName = 'Jeeves_Esales_AddOrderRow' AND + SprTrgType = 'P' ) > 0 +BEGIN + UPDATE xspr SET beskrivning=beskrivning WHERE + SprTrgName = 'Jeeves_Esales_AddOrderRow' AND + SprTrgType = 'P' +END ELSE BEGIN + INSERT INTO xspr(SprTrgName,SprTrgType,RowCreatedDt) + VALUES('Jeeves_Esales_AddOrderRow' , 'P', GETDATE() ) +END +GO +---------------------------------------------------- + +CREATE procedure Jeeves_Esales_AddOrderRow + @c_ForetagKod smallint, + @c_OrderNumber int, + @c_webUserName Jeeves_StrVarChar64 = null, + @c_CompanyNo Jeeves_StrVarChar32 = null, + @c_PersSign Jeeves_StrVarChar6, + @c_LangID smallint = null, + @c_ItemNo Jeeves_StrVarChar32 = null, + @c_Qty Jeeves_Qty = 0, + @c_QtyAltEnh Jeeves_Qty = 0, + @c_RequestedDate Jeeves_StrVarChar10 = null, + @c_BatchId Jeeves_StrVarChar16 = null, + @c_ArtSerieNr Jeeves_StrVarChar32 = null, + @c_OrderType smallint = null, + @c_Run_Type char(1) = null, + @c_TemplateRowID int = null, + @c_Edit Jeeves_StrVarCharMax = null, + @c_EditExt Jeeves_StrVarCharMax = null, + @c_LagStalle Jeeves_StrVarChar10 = null, + @c_AltEnhetKod Jeeves_StrVarChar10 = null, + @c_AllocateAvailable smallint = 0, + @c_OverrideCreditLimit char(1) = 0, + @o_OrderRow int = null output, + @o_NextQty Jeeves_Qty = null output, + @o_NextDate DateTime = null output, + @o_LastQty Jeeves_Qty = null output, + @o_LastDate DateTime = null output, + @o_AllocatedQty Jeeves_Qty = null output, + @o_AllocatedDate DateTime = null output + +as + +set nocount on +--set ansi_warnings o f f +--set concat_null_yields_null o f f +--set ansi_nulls o f f +--set ansi_padding o f f + +declare @withPriceCalc char(1) +select @withPriceCalc = 'Y' + +declare @oh_OrdStat smallint, + @orp_OrdRadSt smallint, + @orp_OrdRadNr int, + @orp_vbordradsum money, + @orp_vb_prisinklmoms Jeeves_Amount, + @orp_Vb_Pris Jeeves_Amount, + @wr Jeeves_StrVarChar256, + @x int, + @dbe int, + @dbc int, + @dbp int, + @Enter_TranCount as int, + @NewLine as nvarchar(2), + @PgmId Jeeves_StrVarChar256, + @salj_saljare Jeeves_StrVarChar32, + @kus_kundrabatt float, + @kus_rabklass smallint, + @kus_Kreditsparr char(1), + @kus_kundsaldo money, + @kus_ordsum money, + @kus_kundkredlim money, + @kus_momskod smallint, + @kus_offnr Jeeves_StrVarChar10, + @kus_KundRabattKod0 char(1), + @kus_KundRabattKod1 char(1), + @kus_KundRabattKod2 char(1), + @kus_PrisListaKundSpec int, + @kus_KundKategoriKod smallint, + @kus_tradecalcmarkup float, + @kus_tradefsgmarkup float, + @kus_AddArtEjAktiv char(1), + @ar_ArtProdKlass Jeeves_StrVarChar4, + @ar_OrdvRabKod smallint, + @ar_artkundrabkod char(1), + @ar_artrabklass smallint, + @ar_momskod smallint, + @ar_ordTyp smallint, + @sy1_PrisListaInklMoms char(1), + @sy1_momskod smallint, + @oh_vbordsum money, + @oh_ordsum money, + @oh_lagstalle Jeeves_StrVarChar10, + @Today datetime, + @Momssats float, + @CompanyNo Jeeves_StrVarChar20, + @ContactNo int, + @prislista int, + @Saljare Jeeves_StrVarChar32, + @ar_artfsgforp float, + @ar_palaggdelforp float, + @ar_palaggdelforpbelopp char(1), + @ar_lagstalle Jeeves_StrVarChar10, + @sy1_lagstalle Jeeves_StrVarChar10, + @ValKurs ztCurrencyRate, + @valkod Jeeves_StrVarChar4, + @Samfaktutskr char(1), + @Allowpurchase char(1), + @PCode int, + @sy1_artbeskr_2_orp char(1), + @ArtBeskr Jeeves_StrVarChar64, + @ArtBeskr2 Jeeves_StrVarChar256, + @LangID smallint, + @DateAvailable DateTime, + @sy1_rbn char(1), + @sy1_PrisListaStaffling int, + @sy1_KodAlternativEnhet int, + @AltEnhetKod Jeeves_StrVarChar10, + @AltEnhetOmrFaktor ZtPurQty2Stock, + @InkAvt int, + @LevNr JEEVES_CompanyNo, + @ArtLevPrior smallint, + @ArtHuvudAvt JEEVES_Boolean, + @SALES170 JEEVES_Boolean, + @SALES190 smallint, + @SALES048 smallint, + @SALES007 smallint, + @KostBar Jeeves_StrVarChar8, + @KostStalleKod Jeeves_StrVarChar8, + @K4 Jeeves_StrVarChar8, + @K5 Jeeves_StrVarChar8, + @K6 Jeeves_StrVarChar8, + @K7 Jeeves_StrVarChar8, + @AutoRegel Jeeves_StrVarChar4, + @AnskaffningTillv smallint + +select @LangID = @c_LangID + +exec Jeeves_Esales_GetUserInfo + @c_IntrnCoNo = @c_ForetagKod, + @c_webUserName = @c_webUserName, + @c_CompanyNo = @c_CompanyNo, + @o_LangID = @LangID output, + @o_CompanyNo = @CompanyNo output, + @o_ContactNo = @ContactNo output, + @o_Prislista = @Prislista output, + @o_Saljare = @Saljare output, + @o_Valkod = @Valkod output, + @o_ValKurs = @Valkurs output + + +--Adding from a template +if (isnull(@c_TemplateRowID,-1) > -1) begin + if exists(select 1 from web_orp where ConnToSQLIDENTITY = @c_TemplateRowID) begin + declare cr_items cursor static forward_only local for + select artnr, ordantal from web_orp where ConnToSQLIDENTITY = @c_TemplateRowID + open cr_items + while 1=1 begin + fetch next from cr_items into + @c_ItemNo, + @c_Qty + + if @@Fetch_Status<>0 BREAK + if @@Error<>0 BREAK + + if ( isnull(@c_Qty,0) > 0) and (@c_ItemNo is not null) begin + exec @x = Jeeves_Esales_AddOrderRow + @c_ForetagKod = @c_ForetagKod, + @c_OrderNumber = @c_OrderNumber, + @c_webUserName = @c_webUserName, + @c_PersSign = @c_PersSign, + @c_LangID = @c_LangID, + @c_ItemNo = @c_ItemNo, + @c_Qty = @c_Qty, + @c_AllocateAvailable = @c_AllocateAvailable, + @c_OverrideCreditLimit = @c_OverrideCreditLimit, + @c_RequestedDate = @c_RequestedDate, + @c_BatchId = @c_BatchId, + @c_ArtSerieNr = @c_ArtSerieNr, + @c_OrderType = @c_OrderType + if @x<0 Break + End + End + close cr_items + deallocate cr_items + End + if @c_Run_Type = 'R' exec Jeeves_Esales_GetOrp @c_ForetagKod,@c_webUserName,@LangID,@c_OrderNumber + Return isnull(@x,0) +End + +if @c_qty <= 0 Return -210 +select @Today = getdate() +if @c_RequestedDate is null select @c_RequestedDate = convert(nvarchar(10),getdate(),112) + +---Get customer discount, pricelist, credit info from table kus +select @kus_kundrabatt = kundrabatt, + @kus_rabklass = rabklass, + @kus_Kreditsparr = kreditsparr, + @kus_kundsaldo = kus.kundsaldo, + @kus_ordsum = kus.ordsum, + @kus_kundkredlim = kus.kundkredlim, + @kus_momskod = kus.momskod, + @kus_offnr = offnr, + @Samfaktutskr = samfaktutskr, + @kus_KundRabattKod0 = kundrabattkod0, + @kus_KundRabattKod1 = kundrabattkod1, + @kus_KundRabattKod2 = kundrabattkod2, + @kus_PrisListaKundSpec = prislistakundspec, + @kus_KundKategoriKod = kundkategorikod, + @kus_tradecalcmarkup = tradekalkmarkup, + @kus_tradefsgmarkup = tradefsgmarkup, + @kus_AddArtEjAktiv = AddArtEjAktiv + from kus + where + ftgnr = @CompanyNo and + foretagkod = @c_ForetagKod + +--If customer credit is blocked then abort +if @kus_kreditsparr = '1' begin + exec Jeeves_GT @wr output,@c_ForetagKod,@LangID,1344,'Kunden �r kreditsp�rrad' + EXECUTE Jeeves_RaisError 21001, @wr + return -1344 +end + +--Get Item discount and descriptions from table ar +select @ar_ArtProdKlass = ar.artprodklass, + @ar_artrabklass = ar.artrabklass, + @ar_artkundrabkod = ar.artkundrabkod, + @ar_OrdvRabKod = ar.ordvrabkod, + @ar_momskod = ar.momskod, + @ar_palaggdelforp = isnull(ar.palaggdelforp,0), + @ar_palaggdelforpbelopp = ar.palaggdelforpbelopp, + @ar_artfsgforp = artfsgforp, + @ar_lagstalle = lagstalle, + @ar_ordTyp = ordTyp, + @Artbeskr = ArtBeskr, + @Artbeskr2 = ArtBeskr2, + @AnskaffningTillv = ar.AnskaffningTillv + from ar + where + ar.artnr = @c_ItemNo and + ar.foretagkod = @c_ForetagKod + + +--Assign from sy1 +select @sy1_PrisListaInklMoms = isnull(prislistainklmoms,0), + @sy1_momskod = momskod, + @sy1_lagstalle = sy1.lagstalle, + @sy1_artbeskr_2_orp = sy1.artbeskr_2_orp, + @sy1_rbn = sy1.sy1_rbn, + @sy1_PrisListaStaffling = PrisListaStaffling, + @sy1_KodAlternativEnhet = KodAlternativEnhet + from sy1 + where + sy1.foretagkod = @c_ForetagKod + + +select @AltEnhetKod = @c_AltEnhetKod + +--HACK: If ArtFsgForp is set, find matching AltEnhetKod +if isnull(@ar_artfsgforp,0) > 0 and @AltEnhetKod is NULL begin + if @sy1_KodAlternativEnhet = 2 begin + select @AltEnhetKod = xae.AltEnhetKod, @AltEnhetOmrFaktor = xae.AltEnhetOmrFaktor + from xare join xae + on (xare.AltEnhetKod = xae.AltEnhetKod) + where + xae.AltEnhetOmrFaktor = ROUND(@ar_artfsgforp, 6) and + xare.artnr = @c_ItemNo and + xare.foretagkod = @c_ForetagKod + if @AltEnhetKod is not NULL begin + --Abort from futher logic down the line + select @sy1_KodAlternativEnhet = 0 + end + end +end + +--Get Item alternative unit from table xae +if @sy1_KodAlternativEnhet = 1 begin + if @AltEnhetKod is not NULL begin + select @AltEnhetOmrFaktor = AltEnhetOmrFaktor + from xae + where + xae.AltEnhetKod = @AltEnhetKod and + xae.foretagkod = @c_ForetagKod + + end else begin + select @AltEnhetKod = AltEnhetKod, @AltEnhetOmrFaktor = AltEnhetOmrFaktor + from xae + where + xae.AltEnhetOrderStd = 1 and + xae.foretagkod = @c_ForetagKod + end +end + +--Get Item alternative unit from table xare +if @sy1_KodAlternativEnhet = 2 begin + if @AltEnhetKod is not NULL begin + select @AltEnhetOmrFaktor = AltEnhetOmrFaktor + from xare + where + xare.AltEnhetKod = @AltEnhetKod and + xare.artnr = @c_ItemNo and + xare.foretagkod = @c_ForetagKod + + end else begin + select @AltEnhetKod = AltEnhetKod, @AltEnhetOmrFaktor = AltEnhetOmrFaktor + from xare + where + xare.AltEnhetOrderStd = 1 and + xare.artnr = @c_ItemNo and + xare.foretagkod = @c_ForetagKod + end + + if @AltEnhetOmrFaktor is NULL begin + select @AltEnhetOmrFaktor = AltEnhetOmrFaktor + from xae + where + xae.AltEnhetKod = @AltEnhetKod and + xae.foretagkod = @c_ForetagKod + end +end + +if @AltEnhetKod is not NULL and @AltEnhetOmrFaktor > 0 begin + --Set the value that was not provided + if isnull(@c_QtyAltEnh,0) = 0 and isnull(@c_Qty,0) != 0 begin + select @c_QtyAltEnh = @c_Qty / @AltEnhetOmrFaktor + end + if isnull(@c_Qty,0) = 0 and isnull(@c_QtyAltEnh,0) != 0 begin + select @c_Qty = @c_QtyAltEnh * @AltEnhetOmrFaktor + end + --If both Qty and QtyAltEnh is provided then verify correct value provided + if @c_Qty > 0 and @c_QtyAltEnh > 0 begin + if ROUND(@c_Qty, 4) != ROUND(@c_QtyAltEnh * @AltEnhetOmrFaktor, 4) begin + EXECUTE Jeeves_RaisError 21001, 'Qty and QtyAltEnh must follow the AltEnhetOmrFaktor when both are provided' + return 50100 + end + end +end else begin + --Fallback if there is no alternative units + if isnull(@c_Qty,0) = 0 and isnull(@c_QtyAltEnh,0) != 0 begin + select @c_Qty = @c_QtyAltEnh + select @c_QtyAltEnh = 0 + end +end + + +select @Enter_TranCount = @@TranCount, + @NewLine=char(13)+char(10), + @dbp=@@ProcId + +--Calc pack markup +--TODO: Fix this, as somehow ar_artfsgforp was an int in this SP, which is wrong. And now this is broken. +if isnull(convert(integer,@ar_artfsgforp),0) > 0 begin + if ((select convert(integer,@c_Qty) % convert(integer,@ar_artfsgforp)) = 0) + select @ar_palaggdelforp = 0 +end + +if @c_OrderNumber is not NULL and @oh_OrdStat is NULL + select + @oh_OrdStat = [oh].[OrdStat], + @oh_vbordsum = oh.vbordsum, + @oh_ordsum = oh.ordsum, + @oh_lagstalle = oh.lagstalle + from [oh] where + [oh].[OrderNr] = @c_OrderNumber and + [oh].[ForetagKod] = @c_ForetagKod + +---Use order type from ar if available +select @c_orderType = isnull(@c_orderType, @ar_ordTyp) + +--Always use parameter if provided to the store procedure +--Use order location from ar table if present +select @c_Lagstalle = isnull(@c_Lagstalle,@ar_Lagstalle) + +--Use order location as default +if @c_Lagstalle is null select @c_lagstalle = @oh_Lagstalle + +declare + @QtyAvailable as decimal + +exec Jeeves_Ar_Disp_Test + @c_IntrnCoNo = @c_ForetagKod, + @ArtNr = @c_ItemNo, + @OrdAntal = @c_Qty, + @OrdDatum = @c_RequestedDate, + @LagStalle = @c_LagStalle, + @c_Return_Type='Y', + @o_DispQty = @QtyAvailable output, + @o_FirstQty = @o_NextQty output, + @o_FirstDate = @o_NextDate output, + @o_LastQty = @o_LastQty output, + @o_LastDate = @o_LastDate output + +if @o_NextQty is null begin + select @o_NextQty = 0 +end + +if @o_LastQty is null begin + select @o_LastQty = 0 +end + +-- if the AnskaffningTillv is larger than 0 (the product is produced by orders) then discard Jeeves_Ar_Disp_Test +if @AnskaffningTillv>0 begin + select @c_AllocateAvailable = 0 +end + +if @c_AllocateAvailable = 1 begin + + -- Place the order with the amount available on the requested date and + -- return information about the rest. + + if @c_RequestedDate = @o_NextDate begin + --If the first date and the requested date are the same, + --the on hand quantity will appear as first date quantity as well. + select @o_NextDate = null + select @o_NextQty = 0 + end + + --Prefer next to last. + if @o_NextQty = 0 or @o_NextQty is null begin + select @o_NextQty = @o_LastQty + select @o_NextDate = @o_LastDate + select @o_LastQty = 0 + select @o_LastDate = null + end + + --If there is nothing available on the requested date, use the next + if @QtyAvailable = 0 begin + select @c_Qty = @o_NextQty + select @DateAvailable = @o_NextDate + select @o_NextQty = @o_LastQty + select @o_NextDate = @o_LastDate + select @o_LastQty = 0 + select @o_LastDate = null + end else begin + --Only the amount available on the requested date should be allocated on the order row. + select @DateAvailable = @c_RequestedDate + select @c_Qty = @QtyAvailable + end + + if @o_NextQty = 0 begin + select @o_NextDate = null + end + + if @o_LastQty = 0 begin + select @o_LastDate = null + end + +end else begin + + --If everything is available immediately, set detaavailable to now + if(@QtyAvailable >= @c_Qty) begin + select @DateAvailable = @c_RequestedDate + end else begin + --Everything isn't available, if last quantity is 0, the rest is available on first date. + if @o_LastQty = 0 begin + select @DateAvailable = @o_NextDate + end else begin + --leave last date as date available, sice the order can't be delivered before that date. + select @DateAvailable = @o_LastDate + end + end + + select @o_NextQty = 0 + select @o_NextDate = null + select @o_LastQty = 0 + select @o_LastDate = null + +end + +--Pass the quantity that is placed on the order back to the caller. +select @o_AllocatedQty = @c_Qty +select @o_AllocatedDate = @DateAvailable + +select @InkAvt = al.InkAvt, @LevNr=al.FtgNr , @ArtLevPrior = al.ArtLevPrior, @ArtHuvudAvt =al.ArtHuvudAvt from al where al.ArtNr=@c_ItemNo and al.ArtHuvudAvt='1' and al.ForetagKod=@c_ForetagKod; + --@In_SALES170 JEEVES_Boolean=NULL, + --@In_SALES190 smallint=NULL, +select @SALES170 = dbo.Jeeves_FN_GetParam(@c_ForetagKod, 'SALES170', 'B',null) +select @SALES190 = dbo.Jeeves_FN_GetParam(@c_ForetagKod, 'SALES190', 'N',null) +select @SALES048 = dbo.Jeeves_FN_GetParam(@c_ForetagKod, 'SALES048', 'N',null) +select @SALES007 = dbo.Jeeves_FN_GetParam(@c_ForetagKod, 'SALES007', 'N',null) + + +--Get cost codes from sales person or location (the same way as UF_Oh_Get_InternKonton) + +if @SALES048 = 1 begin + --Get settings from inventory location + + select + @KostStalleKod = KostStalleKod, + @KostBar = KostBar, + @K4 = K4, + @K5 = K5, + @K6 = K6, + @K7 = K7, + @AutoRegel = AutoRegelForskott + from xb with (NoLock) where + ForetagKod = @c_ForetagKod + and LagStalle = @c_LagStalle; + +end else if @SALES048 = 2 begin + --Get settings from sales person + if @Saljare is not null begin + select + @KostStalleKod = KostStalleKod, + @KostBar = KostBar, + @K4 = K4, + @K5 = K5, + @K6 = K6, + @K7 = K7, + @AutoRegel = AutoRegelForskott + from salj with (NoLock) where + ForetagKod = @c_ForetagKod + and Saljare=@Saljare; + end +end else if @SALES048 = 3 begin + -- Try sales person first and then and add values + -- from location is not provided + + if @Saljare is not null begin + select + @KostStalleKod = KostStalleKod, + @KostBar = KostBar, + @K4 = K4, + @K5 = K5, + @K6 = K6, + @K7 = K7, + @AutoRegel = AutoRegelForskott + from salj with (NoLock) where + ForetagKod = @c_ForetagKod + and Saljare=@Saljare; + end + + select + @KostStalleKod = ISNULL(@KostStalleKod, KostStalleKod), + @KostBar = ISNULL(@KostBar, KostBar), + @K4 = ISNULL(@K4, K4), + @K5 = ISNULL(@K5, k5), + @K6 = ISNULL(@K6, K6), + @K7 = ISNULL(@K7, K7), + @AutoRegel = ISNULL(@AutoRegel, AutoRegelForskott) + from xb with (NoLock) where + ForetagKod = @c_ForetagKod + and LagStalle = @c_LagStalle; + +end + +--calculate fiscal year +declare @TodayDate datetime; +declare @redar integer; +declare @period integer; +declare @Just_BokfDat datetime; + set @TodayDate = convert(varchar(10), @Today, 112); + execute CalcPeriodP2P @todayDate, + null, + @redar output, + @period output, + @Just_BokfDat output, + @c_ForetagKod + +declare @startRow int +declare @endRow int +declare @maxRow int -- The highest row number in the discount row range. +declare @discountQty decimal(17,6) + +if @o_OrderRow is not null begin + --All rows that are grouped by being in the same decade should + --be updated with the discount, since they probably make up a split order row, + --and they should all be taken into account when calculating the discount. + --This is only relevant if a row number is provided. + + select @startRow = 10 * (@o_OrderRow / 10) -- yx->y0, e.g. 24->20 + select @endRow = @startRow + 9 + --The updated row is excluded from the sum but the new quantity is added directly to discountQty + select @discountQty = (isnull(sum(ordantal), 0) + @c_Qty), @maxRow = isnull(max(OrdRadNr), @startRow) from orp + where ForetagKod = @c_ForetagKod and OrderNr = @c_OrderNumber and OrdRadNr >= @StartRow and OrdRadNr <= @EndRow + and OrdRadNr <> @o_OrderRow and ArtNr =@c_ItemNo + + if @o_OrderRow > @maxRow begin + select @maxRow = @o_OrderRow + end +end else begin + select @discountQty = @c_qty + select @startRow = -1 +end + +if @withPriceCalc = 'Y' begin + declare @orp_ArtCirkaPris as Jeeves_Amount, + @orp_VolymRabatt as float, + @orp_KundRabatt as float, + @orp_Rabatt1 as float, + @orp_Rabatt2 as float, + @orp_Rabatt3 as float, + @orp_valkod as nvarchar(3), + @orp_valkurs as decimal(18,8), + @orp_ordDatum as datetime + + execute @x = Jeeves_orp_produkt_pris + @c_Foretagkod = @c_ForetagKod, + @ArtNr = @c_ItemNo, + @OrdAntal = @discountQty, + @ValKurs = @ValKurs, + @ValKod = @valkod, + @PrisLista = @Prislista, + @OrdDatum = @Today, + @ArtProdKlass = @ar_ArtProdKlass, + @offradnr = -32000, + @ArtRabKlass = @ar_ArtRabKlass, + @RabKlass = @kus_RabKlass, + @OrdvRabKod = @ar_OrdvRabKod, + @ArtKundRabKod = @ar_ArtKundRabKod, + @KundRabattKod0 = @kus_KundRabattKod0, + @KundRabattKod1 = @kus_KundRabattKod1, + @KundRabattKod2 = @kus_KundRabattKod2, + @In_PrisListaStaffling = @sy1_PrisListaStaffling, + @In_PrisListaKundSpec = @kus_PrisListaKundSpec, + @In_KundKategoriKod = @kus_KundKategoriKod, + @KundRabatt = @kus_KundRabatt, + @In_InkAvt = @InkAvt, + @In_LevNr = @LevNr, + @In_ArtLevPrior = @ArtLevPrior, + @In_ArtHuvudAvt = @ArtHuvudAvt, + @In_tradekalkmarkup = @kus_tradecalcmarkup, + @In_tradefsgmarkup = @kus_tradefsgmarkup, + @In_OrdBerLevDat = @DateAvailable, + @In_Sales170 = @SALES170, + @In_Sales190 = @SALES190, + @In_RedovisnAr = @redar, + @in_FtgNr = @CompanyNo, + @Logg = null, + @offnr = @kus_offnr, + @In_LagStalle = @c_Lagstalle, + @O_Svar_Pris_Valuta = @orp_Vb_Pris output, + @O_Svar_VolymRabatt = @orp_VolymRabatt output, + @O_Svar_KundRabatt = @orp_KundRabatt output, + @O_Svar_Rabatt1 = @orp_Rabatt1 output, + @O_Svar_Rabatt2 = @orp_Rabatt2 output, + @O_Svar_Rabatt3 = @orp_Rabatt3 output, + @O_Svar_CirkaPris_Valuta = @orp_ArtCirkaPris output + + if @ar_palaggdelforpbelopp = 1 begin + select @orp_vb_pris = @orp_vb_pris + @ar_palaggdelforp + end else begin + -- palaggdelforp is specified in percentage, so 80 should result in a factor of 1.8. + select @orp_vb_pris = @orp_vb_pris * (1 + 0.01 * @ar_palaggdelforp) + end +end + +---Calc VAT------------------------------------------------------ +if @kus_momskod = 0 begin + select @Momssats = 0 +end +else begin + if @ar_momskod is null select @ar_momskod = isnull(@kus_momskod,@sy1_momskod) + select @Momssats = x1.momssats + from x1 + where + momskod = @ar_momskod +end + +if @sy1_PrisListaInklMoms in ('1','3') begin + select @orp_vb_prisinklmoms = @orp_Vb_Pris + select @orp_vb_pris = @orp_vb_pris/(1.0+(@MomsSats/100.0)) +end +else begin + select @orp_vb_prisinklmoms = @orp_vb_pris * (1.0+(@Momssats/100.0)) +end +----------------------------------------------------------- + +---Check if creditlimit is reached +if @kus_kundkredlim > 0 and @c_OverrideCreditLimit = 0 begin + if (isnull(@oh_ordsum,0) + @kus_kundsaldo + @kus_ordsum + (@Orp_vb_pris*@c_qty)) > @kus_kundkredlim begin + exec Jeeves_GT @wr output,@c_ForetagKod,@LangID,3679,'Kundens kreditgr�ns �r �verskriden' + EXECUTE Jeeves_RaisError 21001, @wr + return -3679 + end +end + +begin tran + +select @oh_vbordsum = isnull(@oh_vbordsum, 0) + (@c_qty * @orp_Vb_Pris * ((100 - @orp_Rabatt1)/100) * ((100 - @orp_Rabatt2)/100) * ((100 - @orp_Rabatt3)/100) * ((100-@orp_kundrabatt)/100)) +select @oh_ordsum = 0 + +select @orp_ordradst = dbo.Jeeves_FN_GetParam (@c_ForetagKod,'WEBAPP018','N','10') +if @oh_OrdStat < @orp_ordradst select @orp_ordradst = @oh_OrdStat + + +if @sy1_artbeskr_2_orp = 1 begin + --Add description to orp row if artbeskr_2_orp flag is set. + + -- First try the old way. + select @Artbeskr = isnull(ArtBeskr, @Artbeskr), @Artbeskr2 = isnull(ArtBeskr2, @Artbeskr2) + from arb where + foretagkod = @c_ForetagKod + and sprakkod = @LangID + and artnr = @c_ItemNo + + --Override with modern translation with old transalation value as default + execute @ArtBeskr = Jeeves_FN_GetCustomerDropDownValue + @c_ForetagKod, + @LangID, + 'ar', + @c_ItemNo, + @ArtBeskr + +end +else begin + select @Artbeskr = null, @Artbeskr2 = null +end + +if @c_Qty <= 0 +begin + if @@TranCount > 0 ROLLBACK TRANSACTION + EXECUTE Jeeves_RaisError 50100, 'Jeeves_Esales_AddOrderRow' + while @@TranCount<@Enter_TranCount BEGIN TRANSACTION + return 50100 +end + +execute @x = Jeeves_Init_Insert_orp + @c_ForetagKod = @c_ForetagKod, + @c_OrderNr = @c_OrderNumber, + @c_FtgNr = @CompanyNo, + @c_ArtNr = @c_ItemNo, + @c_ArtSerieNr = @c_ArtSerieNr, + @c_BatchId = @c_BatchID, + @c_Edit = @c_Edit, + @c_EditExt = @c_EditExt, + @c_OrdBegLevDat = @c_RequestedDate, + @c_OrdBerLevDat = @DateAvailable, + @c_Lagstalle = @c_lagstalle, + @c_OrdAntal = @c_Qty, + @c_OrdAntalAltEnh = @c_QtyAltEnh, + @c_OrdTyp = @c_OrderType, + @c_ordradst = @orp_ordradst, + @c_PersSign = @c_PersSign, + @c_volymrabatt = @orp_VolymRabatt, + @c_KundRabatt = @orp_KundRabatt, + @c_Rabatt1 = @orp_Rabatt1, + @c_Rabatt2 = @orp_Rabatt2, + @c_Rabatt3 = @orp_Rabatt3, + @c_Saljare = @Saljare, + @c_vb_pris = @orp_Vb_Pris, + @c_vb_prisinklmoms = @orp_vb_prisinklmoms, + @c_rowcreatedby = @c_perssign, + @c_rowcreateddt = @Today, + @c_Valkod = @valkod, + @c_Valkurs = @valkurs, + @c_OrdRadNr = @o_OrderRow output, + @c_Artbeskr = @ArtBeskr, + @c_OrdArtBeskr = @ArtBeskr2, + @c_KostBar = @KostBar, + @c_KostStalleKod = @KostStalleKod, + @c_K4 = @K4, + @c_K5 = @K5, + @c_K6 = @K6, + @c_K7 = @K7, + @c_AutoRegel = @AutoRegel, + @c_AltEnhetKod = @AltEnhetKod; + +if (@@Error <> 0) or (@x < 0) begin + EXECUTE Jeeves_RaisError 21001, 'Error when creating order row' + Rollback tran + Return -100 +end + +--If the row created with a specific row number, the prices of other rows might be affected. +if @startRow >= 0 begin + declare @rowIndex as int + select @rowIndex = @startRow + while @rowIndex <= @maxRow begin + Update orp SET + orp.vb_pris = @orp_Vb_Pris, + orp.vb_prisinklmoms = @orp_vb_prisinklmoms, + orp.volymrabatt = @orp_VolymRabatt, + orp.KundRabatt = @orp_KundRabatt, + orp.Rabatt1 = @orp_Rabatt1, + orp.Rabatt2 = @orp_Rabatt2, + orp.Rabatt3 = @orp_Rabatt3, + orp.rowupdatedby= @c_PersSign, + orp.rowupdateddt = getdate() + Where ordernr = @c_OrderNumber and + foretagkod = @c_ForetagKod and + ordradnr = @rowIndex and + artnr = @c_ItemNo and + ordradnr <> @o_OrderRow + select @rowIndex = @rowIndex + 1 + end +end + +update oh set + oh.ordsum = @oh_ordsum, + oh.vbordsum = @oh_vbordsum +where + oh.ordernr = @c_OrderNumber and + oh.foretagkod = @c_ForetagKod + +if @@Error <> 0 begin + rollback tran + return -100 +end + +if @SALES007 = 1 AND @kus_AddArtEjAktiv <> '1' +BEGIN + exec JEEVES_Orp_Create_Tillagg @c_OrderNumber, @c_PersSign, @c_ForetagKod +END + +if @@Error <> 0 begin + rollback tran + return -100 +end + +commit tran + +--calculate ordervalue discount; +execute JEEVES_Oh_Kora @c_OrderNumber,NULL,2,null,@c_ForetagKod; +--make sure ordersum is updated; +execute JEEVES_Oh_OrderVarde @c_OrderNumber, @ValKurs, @sy1_rbn, @c_PersSign, @c_ForetagKod = @c_ForetagKod, @call_type = 4 + +if @c_Run_Type = 'R' exec Jeeves_Esales_GetOrp @c_ForetagKod,@c_webUserName,@LangID,@c_OrderNumber + +return 0 +GO +PRINT 'End Jeeves_Esales_AddOrderRow' +GO +PRINT 'End Jeeves_Esales_AddOrderRow' +GO + + diff --git a/jeeves_sp_updates/Jeeves_Esales_PlaceOrder.spr b/jeeves_sp_updates/Jeeves_Esales_PlaceOrder.spr new file mode 100644 index 0000000..5c43760 --- /dev/null +++ b/jeeves_sp_updates/Jeeves_Esales_PlaceOrder.spr @@ -0,0 +1,445 @@ +SET ANSI_NULLS OFF +GO +SET QUOTED_IDENTIFIER OFF +GO +SET NOCOUNT ON +GO +PRINT 'Begin Jeeves_Esales_PlaceOrder' +GO +PRINT 'Begin Jeeves_Esales_PlaceOrder' +PRINT '***************************************************' +PRINT '* *' +PRINT '* Jeeves_Esales_PlaceOrder *' +PRINT '* *' +PRINT '***************************************************' +GO +IF OBJECT_ID( 'Jeeves_Esales_PlaceOrder', 'P' ) IS NOT NULL +BEGIN + DROP PROCEDURE Jeeves_Esales_PlaceOrder +END +GO +IF (SELECT COUNT(*) FROM xspr WHERE + SprTrgName = 'Jeeves_Esales_PlaceOrder' AND + SprTrgType = 'P' ) > 0 +BEGIN + UPDATE xspr SET beskrivning=beskrivning WHERE + SprTrgName = 'Jeeves_Esales_PlaceOrder' AND + SprTrgType = 'P' +END ELSE BEGIN + INSERT INTO xspr(SprTrgName,SprTrgType,RowCreatedDt) + VALUES('Jeeves_Esales_PlaceOrder' , 'P', GETDATE() ) +END +GO +---------------------------------------------------- + +CREATE Procedure Jeeves_Esales_PlaceOrder + @c_ForetagKod smallint, + @c_OrderNumber int output, + @c_webUserName Jeeves_StrVarChar64 = null, + @c_CompanyNo Jeeves_StrVarChar32 = null, + @c_LangID smallint = null, + @c_LevSattKod smallint = null, + @c_kundref2 Jeeves_StrVarChar32 = null, + @c_kundbestnr Jeeves_StrVarChar32 = null, + @c_editext Jeeves_StrVarCharMax = null, + @c_CoName Jeeves_StrVarChar64 = null, + @c_Addr1 Jeeves_StrVarChar64 = null, + @c_Addr2 Jeeves_StrVarChar64 = null, + @c_PostalCode Jeeves_StrVarChar64 = null, + @c_City Jeeves_StrVarChar64 = null, + @c_ProvinceCode Jeeves_StrVarChar5 = null, + @c_CountryCode Jeeves_StrVarChar3 = null, + @c_godsmarke1 Jeeves_StrVarChar64 = null, + @c_godsmarke2 Jeeves_StrVarChar64 = null, + @c_godsmarke3 Jeeves_StrVarChar64 = null, + @c_godsmarke4 Jeeves_StrVarChar64 = null, + @c_TA_MailNotified Jeeves_StrVarChar64 = null, + @c_TA_PhonNotifiedNo Jeeves_StrVarChar64 = null, + @c_TA_SMSNotifiedNo Jeeves_StrVarChar64 = null, + @c_levforetolv char(1) = '0', + @c_withFreightCalc char(1) = 'Y', + @c_ordlevplats1 Jeeves_StrVarChar20 = null, + @c_vRef Jeeves_StrVarChar64 = null, + @c_orderStatus smallint = null, + @c_PartDeliveryAllowed smallint = null, + @c_text Jeeves_StrVarCharMax = null, + @c_PaymentType char(1) = '0' --0=invoice, 1=card + +As + +set nocount on + +declare @dbc int, + @ftgnr Jeeves_StrVarChar32, + @ftgkontaktnr int, + @org_ftgnr Jeeves_StrVarChar32, + @kp_ftgperson Jeeves_StrVarChar32, + @Momskod smallint, + @Levsattkod smallint, + @LevvillkKod smallint, + @Lagstalle Jeeves_StrVarChar10, + @Betkod Jeeves_StrVarChar2, + @Kreditorder Jeeves_Boolean, + @valkurs ztCurrencyRate, + @Ordsum Jeeves_Amount, + @PersSign Jeeves_StrVarChar32, + @Sy1_rbn char(1), + @sy1_FtgKontaktToErRef char(1), + @wi smallint, + @x7_ordstat smallint, + @wr Jeeves_StrVarChar256, + @kundref2 Jeeves_StrVarChar32, + @TA_MailNotified Jeeves_StrVarChar64, + @TA_PhonNotifiedNo Jeeves_StrVarChar64, + @TA_SMSNotifiedNo Jeeves_StrVarChar64, + /*Output från Jeeves_Calc_Frakt*/ + @out_Fraktkostnad JEEVES_Amount, + @out_ExpeditionKostnad JEEVES_Amount, + @Out_Fraktdebkod JEEVES_Boolean, + @Out_Ordervarde JEEVES_Amount, + @Out_Fraktvikt float, + @jvss_OrderReservation char(1), + @kpwid integer, + @OrdBerLevDat DateTime, + @SALES007 smallint, + @kus_AddArtEjAktiv char(1), + @OrdLevAdr4 Jeeves_StrVarChar64 + +exec Jeeves_Esales_GetUserInfo @c_IntrnCoNo = @c_ForetagKod, + @c_webUserName = @c_webUserName, + @c_CompanyNo = @c_CompanyNo, + @o_LangID = @c_LangID output, + @o_CompanyNo = @ftgnr output, + @o_ContactNo = @ftgkontaktnr output, + @o_OrgCompanyNo = @org_ftgnr output, + @o_kpwid = @kpwid output + +if (@c_ordlevplats1 = @ftgnr) select @c_ordlevplats1 = null + +if (@c_ordlevplats1 = '') select @c_ordlevplats1 = null + +-- concatenate postal code and city for order unique adresses +select @OrdLevAdr4 = @c_PostalCode + ' ' + @c_City +select @c_City = null + +select @kp_ftgperson = kp.ftgperson from kp + where + kp.foretagkod = @c_ForetagKod and + kp.ftgnr = @ftgnr and + kp.ftgkontaktnr = @ftgkontaktnr + +select @Momskod = momskod, + @Levsattkod = isnull(@c_LevSattKod, levsattkod), + @Kreditorder = kreditorder, + @Lagstalle = lagstalle, + @valkurs = valkurs, + @Ordsum = ordsum, + @Levvillkkod = levvillkkod, + @Betkod = betkod, + @PersSign = perssign, + @Kundref2 = kundref2, + @c_vRef = isnull(@c_vRef, vref), + @TA_MailNotified = TA_MailNotified, + @TA_PhonNotifiedNo = TA_PhonNotifiedNo, + @TA_SMSNotifiedNo = TA_SMSNotifiedNo + from oh where + oh.ordernr = @c_OrderNumber and + oh.foretagkod = @c_ForetagKod + +if @@Rowcount < 1 begin + exec Jeeves_GT @wr output,@c_ForetagKod,@c_LangID,1237,'Kundordern saknas' + EXECUTE Jeeves_RaisError 21001, @wr + return +end + +select @x7_ordstat = dbo.Jeeves_FN_GetParam(@c_ForetagKod,'WEBAPP003','N',null) + +--jeevesparamnumeric from jvss +-- where +-- jeevesparamname = N'WebOrderStatus' and +-- foretagkod = @c_ForetagKod + +--Use passed in value if available +select @x7_ordstat = isnull(@c_orderStatus, @x7_ordstat) + +select @jvss_OrderReservation = jvss.jeevesparamboolean from jvss + where + jvss.jeevesparamname = 'webapp010' and + jvss.foretagkod = @c_ForetagKod + +--select @orp_ordradstat = dbo.Jeeves_FN_GetParam (@c_IntrnCoNo,'WEBAPP018','N','10') + +select @Sy1_rbn = sy1_rbn, + @sy1_FtgKontaktToErRef=FtgKontaktToErRef + from sy1 + where sy1.foretagkod = @c_ForetagKod + +--if @c_kundref is null and FtgKontaktToErRef is true then insert Contact name as reference +if @c_kundref2 is null begin + if @sy1_FtgKontaktToErRef = '1' select @c_kundref2 = @kp_ftgperson +end + +if @c_vRef is null begin + if (@org_ftgnr <> @ftgnr) begin + select @c_vRef = ftgnamn from fr + where fr.ftgnr = @org_ftgnr and + fr.foretagkod = @c_ForetagKod + End +End + +execute @wi = Jeeves_oh_ordervarde + @In_OrderNr = @c_OrderNumber, + @In_ValKurs = @Valkurs, + @In_sy1_rbn = @Sy1_rbn, + @In_PersSign = @Perssign, + @Call_Type = 4, + @c_Foretagkod = @c_ForetagKod + +--The estimated delivery date of the order will be set to the earliest delivery date of a row. +select @OrdBerLevDat = min(OrdBerLevDat) from orp where foretagkod = @c_ForetagKod AND OrderNr = @c_OrderNumber + +begin tran + +exec @wi = Jeeves_oh_kora @c_OrderNumber,null,2,@c_ForetagKod + +if @Wi < 0 begin + Rollback tran + return @Wi +end + +select @SALES007 = dbo.Jeeves_FN_GetParam(@c_ForetagKod, 'SALES007', 'N',null) +select @kus_AddArtEjAktiv = AddArtEjAktiv from kus where foretagkod = @c_ForetagKod and ftgnr = @ftgnr + +if @SALES007 = 1 AND @kus_AddArtEjAktiv <> '1' +BEGIN + exec @wi = JEEVES_Orp_Create_Tillagg @c_OrderNumber,@Perssign,@c_ForetagKod,0 + + if @Wi < 0 begin + Rollback tran + return @Wi + end +END + +if @c_withFreightCalc = 'Y' Begin + + declare @Artvikt float, + @Volume float, + @Fraktvikt float, + @Expavgkod Jeeves_Boolean, + @Fraktkostnader Jeeves_Amount, + @DispatchFeeExists smallint, + @valkod Jeeves_StrVarChar4, + @Fraktskrymmekod Jeeves_Boolean + + select @Artvikt = artvikt, + @Volume = volume, + @Fraktkostnader=Emballagekostnad+fraktkostnman+ForsakringsKostnad+ovrfaktkostnad1+ovrfaktkostnad2, + @valkod = valkod, + @Expavgkod = expavgkd, + @Fraktskrymmekod = fraktskrymmekod, + @Fraktvikt = fraktvikt + from oh where + oh.ordernr = @c_OrderNumber and + oh.foretagkod = @c_ForetagKod + + --Check that dispatch fee is defined in table fkst + --This check has been removed as described in 521932. + --select @DispatchFeeExists=faktkostntyp from fkst where + -- fkst.faktkostntyp = 4 and + -- fkst.foretagkod = @c_ForetagKod + + if @@Rowcount < 1 begin + rollback tran + exec Jeeves_GT @wr output,@c_ForetagKod,@c_LangID,1333,'Expeditionsavgift kan ej debiteras, definition saknas i tabellen Fakturakostnader (fkst) !' + EXECUTE Jeeves_RaisError 21001, @wr + return + end + + execute JEEVES_Calc_Frakt + @In_ForetagKod=@c_ForetagKod, + @In_FtgNr = @ftgnr, + @In_OrdLevPlats1 = @ftgnr, + @In_OrderNr = @c_OrderNumber, + @In_KreditOrder = @Kreditorder, + --@In_OrdBerLevDat datetime=NULL, + @In_LagStalle = @Lagstalle, + --@In_OrdLevNr smallint=NULL, + --@In_OrdStat smallint=NULL, + --@In_OrdFsNr smallint=NULL, + @In_FraktVikt = @Artvikt, + @In_AntalEURPall = 0, + @In_AntalOvrPall = 0, + @In_Volume = @Volume, + @In_LevForeTolv = @c_Levforetolv, + @In_FraktSkrymmeKod = @Fraktskrymmekod, + @In_LevSattKod = @Levsattkod, + @In_LevVillkKod = @Levvillkkod, + @In_ValKurs = @Valkurs, + @In_Valkod = @Valkod, + @In_ExpAvgKod = @ExpAvgkod, + @In_BetKod = @Betkod, + @In_MomsKod = @Momskod, + @In_OrderVarde = @Ordsum, + @Call_Type = 1, + @PersSign = @PersSign, + @In_OvrFaktKostnader = 0, + @Svar_FraktKostnad = @out_Fraktkostnad output, + @Svar_ExpeditionKostnad = @out_ExpeditionKostnad output, + @Svar_FraktdebKod = @Out_Fraktdebkod output, + @Svar_OrderVarde = @Out_Ordervarde output, + @Svar_Fraktvikt = @Out_Fraktvikt output + + if @@Error <> 0 begin + rollback tran + return + end +End + +if @c_PaymentType <> '1' begin + Update oh SET + oh.ordernralfa = 'Internet', + oh.ordstat = isnull(@x7_ordstat,13), + oh.kundref2 = @c_kundref2, + oh.kundbestnr = @c_kundbestnr, + oh.levforetolv = @c_levforetolv, + oh.levsattkod = @Levsattkod, + oh.ordberlevdat = @OrdBerLevDat, + oh.ordlevadr1 = @c_CoName, + oh.ordlevadr2 = @c_Addr1, + oh.ordlevadr3 = @c_Addr2, + oh.ordlevadr4 = @OrdLevAdr4, + oh.ordlevadrbstort = @c_City, + oh.Ordlevadrlandskod = @c_CountryCode, + oh.ordlevadrprovincecode = @c_ProvinceCode, + oh.editext = @c_editext, + oh.edit = @c_text, + oh.bruttovikt = isnull(@artvikt,0), + oh.fraktkostnber = isnull(@out_Fraktkostnad,0), + oh.godsmarke1 = @c_godsmarke1, + oh.godsmarke2 = @c_godsmarke2, + oh.godsmarke3 = @c_godsmarke3, + oh.godsmarke4 = @c_godsmarke4, + oh.ordlevplats1 = @c_ordlevplats1, + oh.dellevtillaten = isnull(@c_PartDeliveryAllowed, 0), + oh.vref = @c_vRef, + oh.ta_mailnotified = isnull(@c_TA_MailNotified, @TA_MailNotified), + oh.ta_phonnotifiedno = isnull(@c_TA_PhonNotifiedNo, @TA_PhonNotifiedNo), + oh.ta_smsnotifiedno = isnull(@c_TA_SMSNotifiedNo, @TA_SMSNotifiedNo) + Where ordernr = @c_OrderNumber and + foretagkod = @c_ForetagKod + + if @@Error <> 0 begin + rollback tran + return + end + + update kp set + kp.antalkop = isnull(kp.antalkop,0) + 1 + where + kp.foretagkod = @c_ForetagKod and + kp.ftgnr = @ftgnr and + kp.ftgkontaktnr = @ftgkontaktnr + + if @@Error <> 0 begin + rollback tran + return + end + +end else begin + --KORTBETALNING + --do not update orderstatus + --do not imcrement kp + Update oh SET + oh.ordernralfa = 'Internet', + oh.kundref2 = @c_kundref2, + oh.kundbestnr = @c_kundbestnr, + oh.levforetolv = @c_levforetolv, + oh.levsattkod = @Levsattkod, + oh.ordberlevdat = @OrdBerLevDat, + oh.ordlevadr1 = @c_CoName, + oh.ordlevadr2 = @c_Addr1, + oh.ordlevadr3 = @c_Addr2, + oh.ordlevadr4 = @OrdLevAdr4, + oh.ordlevadrbstort = @c_City, + oh.Ordlevadrlandskod = @c_CountryCode, + oh.ordlevadrprovincecode = @c_ProvinceCode, + oh.editext = @c_editext, + oh.edit = @c_text, + oh.bruttovikt = isnull(@artvikt,0), + oh.fraktkostnber = isnull(@out_Fraktkostnad,0), + oh.godsmarke1 = @c_godsmarke1, + oh.godsmarke2 = @c_godsmarke2, + oh.godsmarke3 = @c_godsmarke3, + oh.godsmarke4 = @c_godsmarke4, + oh.ordlevplats1 = @c_ordlevplats1, + oh.dellevtillaten = isnull(@c_PartDeliveryAllowed, 0), + oh.vref = @c_vRef, + oh.ta_mailnotified = isnull(@c_TA_MailNotified, @TA_MailNotified), + oh.ta_phonnotifiedno = isnull(@c_TA_PhonNotifiedNo, @TA_PhonNotifiedNo), + oh.ta_smsnotifiedno = isnull(@c_TA_SMSNotifiedNo, @TA_SMSNotifiedNo) + Where ordernr = @c_OrderNumber and + foretagkod = @c_ForetagKod + + if @@Error <> 0 begin + rollback tran + return + end +end + +--remove any old +if exists(select 1 from webl where webl.ConnSQLIDkpw = @kpwid and + webl.ordernr = @c_OrderNumber ) begin + + update webl set + ordernr = null + where + webl.ConnSQLIDkpw = @kpwid and + webl.ordernr = @c_OrderNumber +end + + +if @@Error <> 0 begin + rollback tran + return +end + +/* +insert into webo (Foretagkod, + OrderNr, + RowCreatedBy, + Perssign, + RegDat, + RowCreatedDt) + values (@c_IntrnCoNo, + @o_OrderNo, + @Perssign, + @Perssign, + getdate(), + getdate()) + +if @@Error <> 0 begin + rollback tran + return +end */ + +commit tran + +if @jvss_Orderreservation = '1' Begin + execute JEEVES_Oh_Bok + @OrderNr = @c_OrderNumber, + @PersSign = @PersSign, + @ForetagKod =@c_ForetagKod + +End + +--select @o_OrderNo = @Ordernr + +return + + +GO +PRINT 'End Jeeves_Esales_PlaceOrder' +GO +PRINT 'End Jeeves_Esales_PlaceOrder' +GO +