You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
sql-tools/ImportBK/导BOKA_5_员工提成方案.sql

201 lines
5.8 KiB

SELECT * INTO TImpItemBaseComm
FROM TItemBaseComm
WHERE 1=0
ALTER TABLE TImpItemBaseComm DROP COLUMN FPerfMode
ALTER TABLE TImpItemBaseComm DROP COLUMN FPerfValue
ALTER TABLE TImpItemBaseComm DROP COLUMN FCostMode
ALTER TABLE TImpItemBaseComm DROP COLUMN FCostValue
ALTER TABLE TImpItemBaseComm ADD FEmpId BIGINT
--导入项目提成
IF object_id('dbo.PImportBKEmpItemBaseCommOne','P') IS NOT NULL
BEGIN
DROP PROCEDURE dbo.PImportBKEmpItemBaseCommOne
END
GO
CREATE PROCEDURE PImportBKEmpItemBaseCommOne
(
@WorkType VARCHAR(20),
@DispatchMode VARCHAR(20),
@ModeField VARCHAR(20),
@ValueField VARCHAR(20),
@HasPayment BIT
)
AS
BEGIN
--大工 点 业绩
DECLARE @Sql VARCHAR(8000)
SELECT @Sql = '
INSERT #Comm (FId,FEmpId,FCompId,FItemId,FPayTypeId,FWorkType,FDispatchMode,FCommMode,FCommValue,FCompNo,FItemNo,FPayTypeNo)
SELECT dbo.FNNewId() AS FId,
FEmpId AS FEmpId,
dbo.FNBKCompId(heb00c) AS FCompId,-- 公司别
FItemId AS FItemId, --项目代码
0 AS FPayTypeId,
' + @WorkType + ' AS FWorkType,
' + @DispatchMode + ' AS FDispatchMode,
dbo.FNBKItemCommMode('+@ModeField+') AS FCommMode,
ISNULL(' + @ValueField + ',0) AS FCommValue,
heb00c AS FCompNo,
heb02c AS FItemNo, '
+ CASE WHEN @HasPayment = 1 THEN '
heb56c ' ELSE ' CAST(''*'' AS VARCHAR(20))' END + ' AS FPayTypeNo '
+' FROM {FDB}.hem02
WHERE LEN(heb00c) <= 5
AND FEmpId IS NOT NULL
AND cast(FItemId as bigint) != 0 '
print @SQL
EXEC PExecImportSQL @SQL
END
GO
--导入项目提成
IF object_id('dbo.PImportBKEmpItemBaseComm','P') IS NOT NULL
BEGIN
DROP PROCEDURE dbo.PImportBKEmpItemBaseComm
END
GO
CREATE PROCEDURE PImportBKEmpItemBaseComm
AS
BEGIN
--drop table #Comm
-- EXEC PExecImportSQL 'SELECT * FROM {FDB}.hem01 '
CREATE TABLE #Comm
(
FId BIGINT not null,
FCompId BIGINT not null,
FEmpId BIGINT not null,
FItemId BIGINT not null,
FPayTypeId BIGINT not null,
FWorkType BIGINT not null,
FDispatchMode BIGINT not null,
FCommMode INT not null,
FCommValue Decimal(18,6) not null,
FCompNo VARCHAR(5) NOT NULL,
FItemNo VARCHAR(20) NOT NULL,
FPayTypeNo VARCHAR(20) NOT NULL
)
-- DROP TABLE #Comm
SELECT * FROM #Comm
EXEC PExecImportSQL 'DELETE {FDB}.hem02 WHERE heb02c not in (select gda01c from {FDB}.gdm01)'
DECLARE @HasPayment BIT
DECLARE @Sql NVARCHAR(4000)
SELECT @Sql = N'SELECT @HasPayment = (SELECT TOP 1 1 FROM {FDB}.syscolumns WHERE name = ''heb56c'' AND id = (select id from {FDB}.sysobjects where name =''hem02'' and type = ''U''))'
EXEC PBKBuildSQL @Sql,@Sql OUTPUT
print @Sql
exec sp_executesql @Sql--表示@sql中的语句包含了一个输出参数
,N'@HasPayment BIT out'
,@HasPayment out --和调用存储过程差不多,指定输出参数值
SET @HasPayment = ISNULL(@HasPayment,0)
print @HasPayment
--大工 点
EXEC PImportBKEmpItemBaseCommOne 11001,10001,'heb03i','heb04f', @HasPayment
--大工 轮
EXEC PImportBKEmpItemBaseCommOne 11001,10002,'heb09i ','heb10f',@HasPayment
--中工 点
EXEC PImportBKEmpItemBaseCommOne 11002,10001,'heb05i','heb06f',@HasPayment
--中工 轮
EXEC PImportBKEmpItemBaseCommOne 11002,10002,'heb11i','heb12f',@HasPayment
--小工 点
EXEC PImportBKEmpItemBaseCommOne 11003,10001,'heb07i','heb08f',@HasPayment
--小工 轮
EXEC PImportBKEmpItemBaseCommOne 11003,10002,'heb13i','heb14f',@HasPayment
--四工 点
EXEC PImportBKEmpItemBaseCommOne 11004,10001,'heb21i','heb22f' ,@HasPayment
--四工 轮
EXEC PImportBKEmpItemBaseCommOne 11004,10002,'heb23i','heb24f',@HasPayment
-- EXEC PExecImportSQL 'DELETE {TDB}.TItemBaseComm'
--EXEC PExecImportSQL 'SELECT * FROM #Comm'
UPDATE A
SET A.FPayTypeId = B.FId
FROM #Comm AS A,TPayAccount AS B
WHERE A.FPayTypeNo = B.FBKPayNo
AND A.FPayTypeNo != '*'
AND A.FPayTypeNo != ''
DELETE #Comm
WHERE FPayTypeNo != '*'
AND FPayTypeId = 0
EXEC PExecImportSQL '
INSERT TImpItemBaseComm (FId,FEmpId,FCompId,FItemId,FPayTypeId,FWorkType,FDispatchMode,FCommMode,FCommValue)
SELECT FId,FEmpId,FCompId,FItemId,FPayTypeId,FWorkType,FDispatchMode,FCommMode,FCommValue
FROM #Comm AS A '
--select * from TItemBaseComm WHERE FCompId = 3472331387795668992
--select * from tcompany
drop table #Comm
UPDATE TItemCommSchemeMaster SET FAcum = 0
SELECT * FROM TItemCommSchemeMaster
INSERT TItemCommSchemeMaster(FId,FCompId,FName,FAcum)
SELECT A.FEmpId,A.FCompId,E.FName + '提成' ,1
FROM #Comm AS A,TEmployee AS E
WHERE A.FEmpId = E.FId
GROUP BY A.FEmpId,A.FCompId,E.FName + '提成'
DELETE TItemCommSchemeDetail
SELECT * FROM TItemCommSchemeDetail
INSERT TItemCommSchemeDetail(FId,FMasterId,FParentId,FItemId,FPayTypeId,FWorkType,FDispatchMode,FCommMOde,FCommValue,FCalcMode)
SELECT dbo.FNnewId(),FEmpId,0,FItemId,FPayTypeId,FWorkType,FDispatchMode,FCommMOde,FCommValue,0
FROM #Comm
SELECT * FROM TemployeeCommScheme
DELETE TemployeeCommScheme
INSERT TemployeeCommScheme(FId,FEmpId,FCompId,FItemSchemeId,FGoodsSchemeId,FCardSaleSchemeId,FCourseSaleSchemeId)
SELECT dbo.FNnewId(),A.FId ,1,A.FId,0,0,0
FROM TEmployee AS A
SELECT * FROM TItemCommSchemeMaster WHERE FId = 9145434575807107128
SELECT * FROM TImpItemBaseComm
DELETE TEmpPerfDetailDateCache#
END
GO