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/Import/形象家.sql

491 lines
17 KiB

SELECT * FROM TImpMember
--»áÔ±
ALTER TABLE TImpMember ADD FMemId BIGINT
ALTER TABLE TImpMemberCard ADD FMemId BIGINT
ALTER TABLE TImpMemberCard ADD FCardId BIGINT
ALTER TABLE TImpMemberCard ADD FCardTypeName VARCHAR(100)
ALTER TABLE TImpMember ADD FMemNo VARCHAR(50)
ALTER TABLE TImpMemberCard ADD FCardNo VARCHAR(50)
ALTER TABLE TImpMember ADD FName VARCHAR(50)
ALTER TABLE TImpMember ADD FGender INT
ALTER TABLE TImpMember ADD FMobile VARCHAR(50)
ALTER TABLE TImpMember ADD FBirthdayType VARCHAR(50)
ALTER TABLE TImpMember ADD FBirthday DATETIME
ALTER TABLE TImpMember ADD FCompId BIGINT
ALTER TABLE TImpMemberCard ADD FCompId BIGINT
ALTER TABLE TImpMemberCard ADD FCardTypeId BIGINT
ALTER TABLE TImpMember ADD FMemo VARCHAR(MAX)
ALTER TABLE TImpMemberCard ADD FMemo VARCHAR(MAX)
ALTER TABLE TImpMemberCard ADD FBalance DECIMAL(18,6)
ALTER TABLE TImpMemberCard ADD FBalance2 DECIMAL(18,6)
ALTER TABLE TImpMember ADD FPoint DECIMAL(18,6)
ALTER TABLE TImpMember ADD FCreateDate DATETIME
ALTER TABLE TImpMemberCard ADD FCreateDate DATETIME
ALTER TABLE TImpMemberCard ADD FExpiredDate DATETIME
ALTER TABLE TImpMember ADD FDeleted BIT
INSERT INTO TMemberCardType(FId,FNo,FName,FValueType,FMaterial,FPrice,FCardFeeAmt,FAcctId,FDeposit,FAcctId2,FDeposit2,FAcctId3,FDeposit3,FTimes,FAlertBalance,FMinRchgAmt,FSalePointMode,FSalePointValue,FRchgPointMode,FRchgPointValue,FPaySmsFee,FTimeCard,FValidityPeriod,FValidityPeriodUnit,FExpiredDate,FDefaultMemo,FCreateTime,FAllowSale,FAllowRchg,FDeptId,FEnabled,FOrder)
SELECT FId =dbo.FNNewId(),'' + type_name,type_name as name,1,FMaterial = 2,0,FCardFeeAmt = 0,FAcctId = 3,FDeposit = 0,FAcctId2 = 0,FDeposit2 = 0 ,FAcctId3 = 0,FDeposit3 = 0,
FTimes = 0,FAlertBalance = 0,FMinRchgAmt = 0,FSalePointMode = 0,FSalePointValue = 0 ,FRchgPointMode = 0,FRchgPointValue = 0,FPaySmsFee = 0,FTimeCard = 0,FValidityPeriod = 100,FValidityPeriodUnit = 1,
FExpiredDate = NULL,FDefaultMemo = '',FCreateTime = GETDATE(),1,1,FDeptId = 0,FEnabled =1,FOrder = 1
FROM TImpMemberCard
group BY type_name
SELECT * FROM TImpMemberCard
UPDATE TImpMemberCard SET FCardId = id
UPDATE TImpMemberCard SET FCardNo = serial_num
UPDATE TImpMemberCard SET FMemId = member_id
UPDATE TImpMemberCard SET FCompId = dbo.FNCompId('001')
UPDATE A
SET A.FCardTypeId = B.FId
FROM TImpMemberCard AS A,TMemberCardType AS B
WHERE A.type_name = B.FName
UPDATE TImpMemberCard SET FBalance = balance
UPDATE TImpMemberCard SET FBalance2 = given
UPDATE TImpMemberCard SET FCreateDate = DATEADD(s,CAST(create_time AS BIGINT),'1970-01-01')
UPDATE TImpMemberCard SET FExpiredDate = DATEADD(year,100,FCreateDate)
UPDATE TImpMemberCard SET FExpiredDate = DATEADD(s,CAST(expire_time AS BIGINT),'1970-01-01') WHERE expire_time != 0
UPDATE TImpMemberCard SET FMemo = ''
SELECT * FROM TImpMember WHERE mobile = '18560633666'
UPDATE TImpMember SET FMemId = id WHERE FMemId IS NULL
UPDATE TImpMember SET FCreateDate = DATEADD(s,CAST(create_time AS BIGINT),'1970-01-01')
UPDATE TImpMember SET FName = name
UPDATE TImpMember SET FMobile = mobile
UPDATE TImpMember SET FCompId = dbo.FNCompId('001')
UPDATE TImpMember SET FGender = CASE WHEN sex = 1 THEN 1 ELSE 0 END
UPDATE TImpMember SET FMemo = ''
UPDATE TImpMember SET FMemo = [desc] WHERE ISNULL([desc],'') != '' AND ISNULL([desc],'') != '¿ª¿¨Ê±£¬ÐÂÔö¹Ë¿Í'
UPDATE TImpMember SET FPoint = 0
UPDATE TImpMember SET FDeleted = 0
UPDATE TImpMember SET FDeleted = 1 WHERE id NOT IN(SELECT member_id FROM TImpMemberCard)
UPDATE TImpMember SET FBirthdayType = 'G'
UPDATE A
SET A.FMemNo = B.FCardNo
FROM TImpMember AS A,TImpMemberCard AS B
WHERE A.FMemId = B.FMemId
UPDATE TImpMember SET FMemNo = FMobile WHERE ISNULL(FMemNo,'') = ''
UPDATE TImpMember SET FMemNo = FName WHERE ISNULL(FMemNo,'') = ''
--´¦ÀíÖظ´¿¨ºÅ
DROP TABLE #Card
SELECT FCardNo into #Card
FROM TImpMember
GROUP BY FCardNo
HAVING(SUM(1)) > 1
ALTER TABLE TImpMember ADD FSeq INT IDENTITY
ALTER TABLE TImpMember ADD FIndex INT
UPDATE A
SET A.FIndex = 1+(SELECT COUNT(1) FROM TImpMember AS B WHERE A.FCardNo = B.FCardNo AND (A.FCreateDate > B.FCreateDate OR (A.FCreateDate = B.FCreateDate AND (A.FSeq > B.FSeq) )))
FROM TImpMember AS A
UPDATE TImpMember SET FCardNo = FCardNo + '.' + CAST(FIndex AS VARCHAR)
WHERE FCardNo IN( SELECT FCardNo FROM #Card)
INSERT INTO TMember(
FMemId,
FMemNo,
FName,
FBriefCode,
FTypeId,
FCompId,
FCreateDate,
FGender,
FBirthdayType,
FBirthday,FTelephone,FMobilePhone,FQQ,FWeChat,FIdCard,FEmail,FAddress,FProId,FCPW,FQPW,
FChargeEmpId,FPoint,FRecvConsSMS,FRecvBulkSMS,FMemo,FCustom1,FCustom2,FCustom3,FCustom4,FCustom5)
SELECT FMemId AS FMemId,
FMemNo AS FMemNo,
FName AS FName,
dbo.FNGetFirstPinYin(FName),
0 AS FTypeId,
FCompId AS FCompId,
FCreateDate AS FCreateDate,
FGender AS FGender,
FBirthdayType AS FBirthdayType,
FBirthday AS FBirthday,
'' AS FTelephone,
ISNULL(FMobile,'') AS FMobilePhone,
'' AS FQQ,
'' AS FWeChat,
'' AS FIdCard,
'' AS FEmail,
'' AS FAddress,
0 AS FProId,
'' AS FCPW,
'' AS FQPW,
0 AS FChargeEmpId,
0 AS FPoint,
1 AS FRecvConsSMS,
1 AS FRecvBulkSMS,
'' AS FMemo,
'' AS FCustom1,'' AS FCustom2,'' AS FCustom3,'' AS FCustom4,'' AS FCustom5
from TImpMember
WHERE FDeleted = 0
--Ç·¿î
--ÕË»§Ç·¿î
/*
INSERT TMemberArrear(FId,FMemId,FTime,FCompId,FContentType,FCardId,FBillType,FBizType,FTransId,FTransNo,FTransDetailId,FContentId,FArrear,FEmpId,FRepaid,FAcctArrear)
SELECT dbo.FNNewId(),A.FMemId,getdate(),A.FCompId,'Account',A.FCardId,'DR_KK','DR_CardSale',0,'',0,3,A.FArrear,0,0,A.FArrear
FROM TImpMember AS A
WHERE A.FArrear > 0
UPDATE A
SET A.FBalance = B.FBalance - B.FArrear,
A.FArrear = B.FArrear
FROM TMemberCardAccount AS A,TImpMember AS B
WHERE A.FCardId = B.FCardId
AND A.FAcctId = 3
AND B.FArrear > 0
UPDATE A
SET A.FBalance = B.FBalance - B.FArrear,
A.FInAmount = B.FBalance - B.FArrear,
A.FArrear = B.FArrear
FROM TMemberCardAcctHist AS A,TImpMember AS B
WHERE A.FCardId = B.FCardId
AND A.FAcctId = 3
AND A.FBillType = 'DR'
AND B.FArrear > 0
SELECT * FROM TMemberCardAccount
WHERE 1=1
AND FArrear > 0
AND FCardId IN(SELECT FCardId FROM TImpMember)
AND FCardId IN(SELECT FC)
ALTER TABLE TImpMember ADD FArrear DECIMAL(18,6)
UPDATE TImpMember SET FArrear = owedAmount
*/
INSERT INTO TMemberCard(
FCardId,
FCardNo,
FTypeId,
FValueType,
FCompId,
FMemId,
FState,
FCreateDate,
FExpiredDate,
FTotalTimes,
FUsedTimes,
FSaleCompId,
FSaleBillId,
FMemo)
SELECT
FCardId AS FId,
FCardNo AS FNo,
FCardTypeId AS FTypeId,
(SELECT FValueType FROM TMemberCardType WHERE FId = FCardTypeId) AS FValueType,
FCompId AS FCompId,
FMemId AS FMemId,
1 AS FState,
FCreateDate AS FCreateDate,
FExpiredDate AS FExpiredDate,
0 AS FTotalTimes,
0 AS FUsedTimes,
FCompId AS FSaleCompId,
0 AS FSaleBillId,
'' AS FMemo
FROM TImpMemberCard
UPDATE TImpMemberCard SET FBalance = 0 WHERE FBalance IS NULL
UPDATE TImpMemberCard SET FBalance = 0 WHERE FBalance2 IS NULL
DELETE TMemberCardAccount
DELETE TMemberCardAcctHist
INSERT TMemberCardAccount(FMemId,FId,FCardId,FAcctId,FDeposit,FBalance,FArrear,FCreateDate,FExpiredDate,FMemo)
SELECT FMemId,dbo.FNNewId(),FCardId AS FCardId,3,FBalance,FBalance,0,FCreateDate,NULL AS FExpiredDate,''
FROM TImpMemberCard
INSERT TMemberCardAcctHist(FId,FMemId,FCardId,FAcctId,FTime,FCardTypeId,FCompId,FBillType,FBizType,FTransId,FTransNo,FInAmount,FOutAmount,FBalance,FArrear,FRecordTime,FMemo)
select dbo.FNNewId(),A.FMemId,A.FCardId,3,getdate(),A.FCardTypeId,A.FCompId,'DR','Import',0,'',A.FBalance,0,A.FBalance,0,getdate(),'´ÓÀÏϵͳÖе¼Èë'
FROM TImpMemberCard AS A
INSERT TMemberCardAccount(FMemId,FId,FCardId,FAcctId,FDeposit,FBalance,FArrear,FCreateDate,FExpiredDate,FMemo)
SELECT FMemId,dbo.FNNewId(),FCardId AS FCardId,10,FBalance2,FBalance2,0,FCreateDate,NULL AS FExpiredDate,''
FROM TImpMemberCard
WHERE FBalance2 > 0
INSERT TMemberCardAcctHist(FId,FMemId,FCardId,FAcctId,FTime,FCardTypeId,FCompId,FBillType,FBizType,FTransId,FTransNo,FInAmount,FOutAmount,FBalance,FArrear,FRecordTime,FMemo)
select dbo.FNNewId(),A.FMemId,A.FCardId,10,getdate(),A.FCardTypeId,A.FCompId,'DR','Import',0,'',A.FBalance2,0,A.FBalance2,0,getdate(),'´ÓÀÏϵͳÖе¼Èë'
FROM TImpMemberCard AS A
WHERE FBalance2 > 0
INSERT INTO TMemberCardTypeSub(FId,FCompId,FCardTypeId,FAllowSale,FAllowRchg,FEnabled)
SELECT dbo.FNNewId(),C.FId,I.FId,FAllowSale,FAllowRchg,FEnabled
FROM TMemberCardType AS I,TCompany AS C
WHERE I.FId > 1
AND C.FId != 0
-- AND C.FNo = '009'
AND NOT EXISTS(SELECT TOP 1 1 FROM TMemberCardTypeSub AS B WHERE B.FCompId = C.FId AND B.FCardTypeId = I.FId)
--ÁƳÌ
SELECT * FROM TImpMemberCourse
SELECT name FROM TImpMemberCourse
GROUP BY name
select dbo.FNNewId() AS FId,dbo.FNNewId() AS FCourseId, '' + name AS FNo, name AS FName
INTO TImpItem
from TImpMemberCourse
GROUP BY name
INSERT TItem(FId,FNo,FNoOfPad,FName,FAbbr,FTypeId,FBriefCode,FDescription,FPriceMode,FIsService,FStatTimes,FCustom1,FCustom2,FCustom3,FEnabled,FPrice,FVipPrice,FTime,FDctId,FPointMode,FPointValue,FDeptId,FAllowBooking)
SELECT FId,FNo,FName,FName,FName,0,dbo.FNGetFirstPinYin(FName),'''',1,1,1,'''','''','''',1,0,0,0,0,0,0,0,1
FROM TImpItem
INSERT INTO TCourse(FId,FNo,FName,FBriefCode,FItemId,FPackId,FSequence,FTypeId,FTimes,FFreeTimes,FDurable,FValidityPeriodUnit,FValidityPeriod,FCreateDate,FExpiredDate,FDescription,FEnabled,FPrice,FAmount,FCalcMode)
SELECT FCourseId AS FId,
I.FNo + 'L1',
I.FName + '-' + 'ÁƳÌ1' AS FName,
'' AS FBriefCode,
I.FId AS FItemId,
0 AS FPackId,
1 AS FSequence,
(SELECT TOP 1 FId FROM TBasicType WHERE FKey = 'CourseType') AS FTypeId,
1 AS FTimes,
0 AS FFreeTimes,
0 AS FDurable,
0 AS FValidityPeriodUnit,
0 AS FValidityPeriod,
getdate() AS FCreateDate,
NULL AS FExpiredDate,
'' AS FDescription,
1 AS FEnabled,
0 AS FPrice,
0 AS FAmount,
1 AS FCalcMode
FROM TImpItem AS I
ALTER TABLE TImpMemberCourse ADD FMemId BIGINT
ALTER TABLE TImpMemberCourse ADD FId BIGINT
ALTER TABLE TImpMemberCourse ADD FCourseId BIGINT
ALTER TABLE TImpMemberCourse ADD FRemainTimes DECIMAL(18,6)
ALTER TABLE TImpMemberCourse ADD FUsedPurTimes DECIMAL(18,6)
ALTER TABLE TImpMemberCourse ADD FPurAmount DECIMAL(18,6)
ALTER TABLE TImpMemberCourse ADD FCompId BIGINT
ALTER TABLE TImpMemberCourse ADD FItemId BIGINT
ALTER TABLE TImpMemberCourse ADD FCreateDate DATETIME
ALTER TABLE TImpMemberCourse ADD FExpiredDate DATETIME
ALTER TABLE TImpMemberCourse ADD FPurTimes DECIMAL(18,6)
ALTER TABLE TImpMemberCourse ADD FAdjustPrice DECIMAL(18,6)
UPDATE A
SET A.FItemId = B.FId,
A.FCourseId = B.FCourseId
FROM TImpMemberCourse AS A,TImpItem AS B
WHERE A.name = B.FName
UPDATE A
SET A.FMemId = B.FMemId
FROM TImpMemberCourse AS A,TImpMember AS B
WHERE A.member_id = B.id
SELECT * FROM TImpMemberCourse
UPDATE A
SET A.FCreateDate = B.FCreateDate,
A.FExpiredDate = B.FExpiredDate
FROM TImpMemberCourse AS A,TImpMemberCard AS B
WHERE A.card_id = B.id
UPDATE TImpMemberCourse SET FPurTimes = num ,FRemainTimes = CAST(num AS DECIMAL(18,6))-num_used
UPDATE TImpMemberCourse SET FId = dbo.FNNewId(),FCompId = dbo.FNCompId('001')
UPDATE TImpMemberCourse SET FAdjustPrice = price
INSERT TMemberCourse(FId,FMemId,FCourseId,FMemPackId,FItemId,FCompId,FPurTimes,FPurAmount,FFreeTimes,FUsedPurTimes,FFreeAmount,FPurchaseDate,FExpiredDate,FBizType,FTransId,FArrear,FDurable,FMemo,FCalcMode,FAdjustPrice)
SELECT FId,FMemId,FCourseId,0,FItemId,FCompId,FPurTimes,ISNULL(FPurAmount,0),0,FPurTimes - FRemainTimes,0,FCreateDate,FExpiredDate,'DR.Import',0,0,0,'',1,ISNULL(FAdjustPrice,0)
FROM TImpMemberCourse
INSERT INTO TMemberCourseLog(FId,FMemId,FCardId,FPackId,FCourseId,FTime,FInPurTimes,FInFreeTimes,FOutPurTimes,FOutFreeTimes,
FCompId,
FBillType,FBizType,FBillId,FBillNo,FBillDetailId)
SELECT dbo.FNNewId(),FMemId,FId,0,FCourseId,FTime = getdate(),FPurTimes,FPurTimes - FRemainTimes,0,0,
FCompId,
'DR','Import',0,'',0
FROM TImpMemberCourse
INSERT TMemberPointHist(FId,FMemId,FTime,FCardId,FCompId,FBillType,FBizType,FTransId,FTransNo,FInAmount,FOutAmount,FBalance,FMemo,FRecordTime)
SELECT dbo.FNNewId(),A.FMemId,getdate(),0,1,'DR','Import',0,'',FPoint,0,FPoint,'',getdate()
FROM TImpMember AS A WHERE FPoint != 0
ALTER TABLE TImpMemberTransHist ADD FCompId BIGINT
ALTER TABLE TImpMemberTransHist ADD FMemId BIGINT
UPDATE A
SET A.FMemId = B.FMemId,
A.FCompId = B.FCompId
FROM TImpMemberTransHist AS A,TImpMember AS B
WHERE A.member_Id = B.id
INSERT TMemberOldTransHist(FId,FMemId,FTime,FCardId,FCompId,FBillType,FBizType,FTransNo,FContent,FPrice,FQuantity,FAmount,FPayment,FEmployee,FMemo)
SELECT DBO.FNNewId(),A.FMemId,DATEADD(s,CAST(cash_time AS BIGINT),'1970-01-01'),0,A.FCompId,'DR','Import',paper_sheet,[desc],receipt_amount,1,receipt_amount,'',isnull(employees,''),''
FROM TImpMemberTransHist AS A
SELECT COUNT(1) FROM TImpMember WITH(NOLOCK)
WHERE id NOT IN(SELECT member_id FROM TImpMemberTransHist WITH(NOLOCK))
AND ISNULL(FTransHistLoad,0) = 0
SELECT id FROM TImpMemberTransHist
GROUP BY ID HAVING SUM(1) > 1
UPDATE TMemberOldTransHist SET FCompId = dbo.FNCompId('001')
--ÏîÄ¿×ÊÁÏ
SELECT * FROM TImpITEM
SELECT * FROM TImpITEMType
ALTER TABLE TImpItem ADD FId BIGINT
ALTER TABLE TImpItem ADD FTypeid BIGINT
ALTER TABLE TImpITEMType ADD FId BIGINT
UPDATE TImpItem SET FId = dbo.FNNewId()
UPDATE TImpITEMType SET FId = dbo.FNNewId()
UPDATE A
SET A.FTypeId = B.FId
FROM TImpItem AS A,TImpItemType as b
WHERE A.categoryId = B.id
INSERT TBasicType(FId,FKey,FNo,FName,FParentId,FDescription,FCustom,FOrder,FAllowEdit,FEnabled)
SELECT FId,'ItemType','YH' + code,text,0,'','',0,-1,1
FROM TImpITEMType
SELECT code FROM TImpItem
GROUP BY code
HAVING(SUM(1) > 1)
INSERT TItem(FId,FNo,FNoOfPad,FName,FAbbr,FTypeId,FBriefCode,FDescription,FPriceMode,FIsService,FStatTimes,FCustom1,FCustom2,FCustom3,FEnabled,FPrice,FVipPrice,FTime,FDctId,FDisplayTypeId,FPointMode,FPointValue,FDeptId,FAllowBooking,FDisplay)
SELECT FId,code,code,name,name,FTypeId,FBriefCode = dbo.FNGetFirstPinYin(name),
FDescription = '',FPriceMode = 0,FIsService = 1,FStatTimes = 1,FCustom1 = '',FCustom2 = '',
FCustom3 = '',FEnabled = 1,posprice ,FVipPrice = posprice ,FTime = 0,FDctId = 0 ,FDisplayTypeId = 0,
FPointMode = 0,FPointValue = 0,FDeptId = 0,FAllowBooking = 1,FDisplay = 1
FROM TImpItem
SELECT * FROM TImpGoodsType
--²úÆ·
SELECT * FROM TImpGoods
SELECT * FROM TImpGoodsType
ALTER TABLE TImpGoods ADD FId BIGINT
ALTER TABLE TImpGoods ADD FTypeid BIGINT
ALTER TABLE TImpGoodsType ADD FId BIGINT
UPDATE TImpGoods SET FId = dbo.FNNewId()
UPDATE TImpGoodsType SET FId = dbo.FNNewId()
UPDATE A
SET A.FTypeId = B.FId
FROM TImpGoods AS A,TImpGoodsType as b
WHERE A.categoryId = B.id
UPDATE TImpGoods SET FTypeID = 0 WHERE FTypeId IS NULL
INSERT TBasicType(FId,FKey,FNo,FName,FParentId,FDescription,FCustom,FOrder,FAllowEdit,FEnabled)
SELECT FId,'GoodsType','YH' + code,text,0,'','',0,-1,1
FROM TImpGoodsType
INSERT INTO TGoods(FId,FNo,FName,FNoOfPad,FTypeId,FBriefCode,FUnitId,FSalePrice,FPurCostPrice,FSaleCostPrice,FConsCostPrice,FValuationMode,FBarCode,FEnabled,FSpecification,FPurUnitId,FConsUnitId,FSupplierId,FStoreId,FConsStoreId,FSaleStoreId,FMaxStock,FMinStock,FPeriodEnabled,FShelfLife,FDctId,FPointMode,FPointValue,FDeptId,FIsSale,FUnitLock,FDescription,FCustom1,FCustom2,FCustom3)
SELECT dbo.FNNewId(),code,name,code,FTypeId,dbo.FNGetFirstPinYin(name),
20006,posprice,FPurCostPrice = 0,FSaleCostPrice = 0,FConsCostPrice = 0,
FValuationMode = 0,FBarCode = 0,FEnabled = 1,FSpecification = '',
FPurUnitId = 0,FConsUnitId = 0,FSupplierId = 0,FStoreId = 0,FConsStoreId= 0,FSaleStoreId= 0,
FMaxStock= 0,FMinStock= 0,FPeriodEnabled= 0,FShelfLife= 0,FDctId= 0,FPointMode= 0,FPointValue= 0,
FDeptId= 0,1 as FIsSale,FUnitLock= 0,FDescription= '',FCustom1 = '',FCustom2 = '',FCustom3 = ''
FROM TImpGoods
DELETE TGoodsMultiUnit WHERE FUnitType = 1
INSERT INTO TGoodsMultiUnit(FId,FGoodsId,FUnitType,FUnitId,FSequence,FConvDir,FConvRate,FSalePrice,FPurCostPrice,FSaleCostPrice,FConsCostPrice,FBarCode,FUnitLock)
SELECT dbo.FNNewId(),FId,1,FUnitId,1,1,1,FSalePrice,FPurCostPrice,FSaleCostPrice,FConsCostPrice,FBarCode,FUnitLock
FROM TGoods
DELETE TGoodsMultiUnit
SELECT * FROM TImpMemberTransHist
drop table TImpMemberTransHist