Assed some modified Jeeves procedures, for historical reasons.

This commit is contained in:
Marcus Lindvall 2023-02-02 14:21:21 +01:00
parent efc505c12e
commit 229ea6fb5b
3 changed files with 8150 additions and 0 deletions

View file

@ -0,0 +1,340 @@
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
SET NOCOUNT ON
GO
PRINT 'Begin Jeeves_Esales_CreateOrder'
GO
PRINT 'Begin Jeeves_Esales_CreateOrder'
PRINT '***************************************************'
PRINT '* *'
PRINT '* Jeeves_Esales_CreateOrder *'
PRINT '* *'
PRINT '***************************************************'
GO
IF OBJECT_ID( 'Jeeves_Esales_CreateOrder', 'P' ) IS NOT NULL
BEGIN
DROP PROCEDURE Jeeves_Esales_CreateOrder
END
GO
IF (SELECT COUNT(*) FROM xspr WHERE
SprTrgName = 'Jeeves_Esales_CreateOrder' AND
SprTrgType = 'P' ) > 0
BEGIN
UPDATE xspr SET beskrivning=beskrivning WHERE
SprTrgName = 'Jeeves_Esales_CreateOrder' AND
SprTrgType = 'P'
END ELSE BEGIN
INSERT INTO xspr(SprTrgName,SprTrgType,RowCreatedDt)
VALUES('Jeeves_Esales_CreateOrder' , 'P', GETDATE() )
END
GO
----------------------------------------------------
CREATE procedure Jeeves_Esales_CreateOrder
@c_ForetagKod smallint,
@c_webUserName Jeeves_StrVarChar64 = null,
@c_CompanyNo Jeeves_StrVarChar32 = null,
@c_PersSign Jeeves_StrVarChar6,
@c_LangID smallint = 0,
@c_BatchId Jeeves_StrVarChar16 = 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_Saljare Jeeves_StrVarChar32 = null,
@c_Lagstalle Jeeves_StrVarChar10 = null,
@c_OverrideCreditLimit char(1) = 0,
@o_OrderNumber int = 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,
@ar_artkundrabkod char(1),
@ar_artrabklass smallint,
@ar_momskod smallint,
@sy1_PrisListaInklMoms char(1),
@sy1_momskod smallint,
@oh_vbordsum money,
@oh_ordsum money,
@Today datetime,
@Momssats float,
@CompanyNo Jeeves_StrVarChar20,
@ContactNo int,
@prislista int,
@lagstalle Jeeves_StrVarChar10,
@Saljare Jeeves_StrVarChar32,
@ar_artfsgforp smallint,
@ar_palaggdelforp float,
@ValKurs ztCurrencyRate,
@valkod Jeeves_StrVarChar4,
@Samfaktutskr char(1),
@Allowpurchase char(1),
@PCode int,
@SALES048 smallint,
@KostBar Jeeves_StrVarChar8,
@KostStalleKod Jeeves_StrVarChar8,
@K4 Jeeves_StrVarChar8,
@K5 Jeeves_StrVarChar8,
@K6 Jeeves_StrVarChar8,
@K7 Jeeves_StrVarChar8,
@AutoRegel Jeeves_StrVarChar4;
exec Jeeves_Esales_GetUserInfo
@c_IntrnCoNo = @c_ForetagKod,
@c_webUserName = @c_webUserName,
@c_CompanyNo = @c_CompanyNo,
@o_LangID = @c_LangID output,
@o_CompanyNo = @CompanyNo output,
@o_ContactNo = @ContactNo output,
@o_Lagstalle = @Lagstalle output,
@o_Prislista = @Prislista output,
@o_Saljare = @Saljare output,
@o_Valkod = @Valkod output,
@o_ValKurs = @Valkurs output
if @c_Saljare is null select @c_Saljare = @Saljare
select @Today = getdate()
---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
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,@c_LangID,1344,'Kunden är kreditspärrad'
EXECUTE Jeeves_RaisError 21001, @wr
return -1344
end
--Assign from sy1
select @sy1_PrisListaInklMoms = isnull(prislistainklmoms,0),
@sy1_momskod = momskod
from sy1
where
sy1.foretagkod = @c_ForetagKod
select @Enter_TranCount = @@TranCount,
@NewLine=char(13)+char(10),
@dbp=@@ProcId
---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
--select vbpris2=@orp_vb_pris,prisin=@orp_vb_prisinklmoms, moms=@Momssats, kmoms=@kus_momskod,armoms= @ar_momskod
-----------------------------------------------------------
---Check if creditlimit is reached
if @kus_kundkredlim > 0 and @c_OverrideCreditLimit = 0 begin
if (isnull(@oh_ordsum,0) + @kus_kundsaldo + @kus_ordsum) > @kus_kundkredlim begin
exec Jeeves_GT @wr output,@c_ForetagKod,@c_LangID,3679,'Kundens kreditgräns är överskriden'
EXECUTE Jeeves_RaisError 21001, @wr
return -3679
end
end
--Always use parameter if provided.
if @c_Lagstalle is null select @c_Lagstalle = @Lagstalle
select @SALES048 = dbo.Jeeves_FN_GetParam(@c_ForetagKod, 'SALES048', '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
begin tran
select @oh_vbordsum = 0
select @oh_ordsum = 0
select @oh_OrdStat = Convert(int,dbo.Jeeves_FN_GetParam(@c_ForetagKod,'webapp031','N',null))
if @oh_ordstat is null select @oh_OrdStat = Convert(int,dbo.Jeeves_FN_GetParam(@c_ForetagKod,'WEBAPP003','N',null))
select @c_OrderType = isnull(@c_OrderType, convert(int,dbo.Jeeves_FN_GetParam(@c_ForetagKod,'WEBAPP008','N','1')))
if @samfaktutskr = '1' begin
select @samfaktutskr = samfaktutskr from x6
where x6.ordtyp = @c_OrderType and x6.foretagkod = @c_ForetagKod
end
if (@oh_OrdStat is null) or (@oh_OrdStat > 10) select @oh_OrdStat = 10
execute @x = Jeeves_Init_Insert_oh
@c_ForetagKod = @c_ForetagKod,
@c_OrderNr = @o_OrderNumber output,
@c_OrderNrAlfa = 'Internet',
@c_OrdStat = @oh_ordstat,
@c_PersSign = @c_PersSign,
@c_FtgNr = @CompanyNo,
@c_Ordtyp = @c_OrderType,
@c_Lagstalle = @c_Lagstalle,
@c_Saljare = @c_Saljare,
@c_KundRabatt = @kus_kundrabatt,
@c_ftgkontaktnr = @ContactNo,
@c_vbordsum = @oh_vbordsum,
@c_rowcreatedby = @c_perssign,
@c_rowcreateddt = @Today,
@c_Valkod = @valkod,
@c_Valkurs = @Valkurs,
@c_Samfaktutskr = @samfaktutskr,
@c_KostBar = @KostBar,
@c_KostStalleKod = @KostStalleKod,
@c_K4 = @K4,
@c_K5 = @K5,
@c_K6 = @K6,
@c_K7 = @K7,
@c_AutoRegel = @AutoRegel;
if (@@Error <> 0) or (@x < 0) begin
EXECUTE Jeeves_RaisError 21001, 'Error when creating order header'
rollback tran
return -100
end
select @orp_ordradst = dbo.Jeeves_FN_GetParam (@c_ForetagKod,'WEBAPP018','N','10')
if @oh_OrdStat < @orp_ordradst select @orp_ordradst = @oh_OrdStat
update oh set
oh.ordsum = @oh_ordsum,
oh.vbordsum = @oh_vbordsum
where
oh.ordernr = @o_OrderNumber and
oh.foretagkod = @c_ForetagKod
if @@Error <> 0 begin
rollback tran
return -100
end
commit tran
if @c_Run_Type = 'R' exec Jeeves_Esales_GetOrp @c_ForetagKod,@c_webUserName,@c_LangID,@o_OrderNumber
return
GO
PRINT 'End Jeeves_Esales_CreateOrder'
GO
PRINT 'End Jeeves_Esales_CreateOrder'
GO