Advertisement
Guest User

Untitled

a guest
May 4th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.99 KB | None | 0 0
  1. USE [SFS2]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[p_ASM_Call_all] Script Date: 5/4/2018 8:02:59 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROCEDURE [dbo].[p_ASM_Call_all]
  9. AS
  10. BEGIN
  11. DECLARE @CompanyID INT;
  12. SELECT @CompanyID = CompanyID
  13. FROM dbo.DMSAimStagingConfig;
  14. --Insert danh sach User :
  15. DELETE dbo.asmUser
  16.  
  17. INSERT INTO dbo.asmUser
  18. ( Username ,
  19. Password ,
  20. Name ,
  21. Role ,
  22. LastSync ,
  23. Type ,
  24. Latitude ,
  25. Longtitude ,
  26. Distance ,
  27. CheckDistance ,
  28. ByPass ,
  29. ByPassStartTime ,
  30. ByPassEndTime ,
  31. SyncStartTime ,
  32. SyncEndTime ,
  33. RouteCD ,
  34. DistributorID ,
  35. PlanCheck
  36. )
  37. SELECT DISTINCT
  38. sf.EmployeeCD , -- Username - nvarchar(50)
  39. --'12345' ,--s.Password , -- Password - nvarchar(50)
  40. sf.EmployeeCD , -- Username - nvarchar(50)--tạm thòi thay password
  41. sf.Descr , -- Name - nvarchar(100)
  42. CASE h.SFHierachyCD
  43. WHEN 'SCS' THEN 'SUP'
  44. WHEN 'ASCM' THEN 'ASM'
  45. ELSE h.SFHierachyCD --ko xay ra
  46. END , -- Role - nvarchar(50)
  47. CONVERT(VARCHAR(30), GETDATE(), 121) LastSync , -- LastSync - nvarchar(100)
  48. 'WW' ,
  49. '1.0' ,
  50. '1.0' ,
  51. ISNULL(DistSyncDistance, 25) ,
  52. ISNULL(DistSyncGPSLock, 1) ,
  53. ( CASE ISNULL(DistDistSyncByPass, 0)
  54. WHEN 1 THEN 'Normal'
  55. ELSE 'NotByPass'
  56. END ) ,
  57. '00:00:01' ,--'00:00:00'
  58. '23:59:00' ,--'00:00:00'
  59. '06:00:00' ,
  60. ISNULL(sf.TimeSync, '00:00') + ':00' ,
  61. '' AS RouteCD ,
  62. '0' AS DistributorID ,
  63. ISNULL(PlanCheck, 0) --0|1|2: ko bat buoc|bat buoc|byPass (Acu 2 giá trị 0|1 :bypass(2) được update = cách khác)
  64. FROM [10.86.67.15].THPDMS2.dbo.DMSSalesForce sf
  65. INNER JOIN [10.86.67.15].THPDMS2.dbo.DMSSFHierachy h ON sf.CompanyID = h.CompanyID
  66. AND sf.SFHierachyID = h.SFHierachyID
  67. INNER JOIN [10.86.67.15].THPDMS2.dbo.Users s ON sf.LoginID = s.Username
  68. AND sf.CompanyID = s.CompanyID
  69. AND s.Username IS NOT NULL
  70. WHERE sf.CompanyID = @CompanyID
  71. AND h.SFHierachyCD IN ( 'SCS', 'ASCM' )
  72. AND Active = 1
  73.  
  74.  
  75.  
  76.  
  77. --Insert danh sach SalesSUP
  78. DELETE dbo.asmSup
  79.  
  80. INSERT INTO dbo.asmSup
  81. ( ASMCode ,
  82. SupCode ,
  83. SupName
  84. )
  85. SELECT DISTINCT
  86. asm.Username ,
  87. ss.Username ,
  88. ss.Name
  89. FROM dbo.asmUser ss
  90. INNER JOIN [10.86.67.15].THPDMS2.dbo.DMSSalesForce sf ON ss.Username = sf.EmployeeCD
  91. AND sf.Active = 1 --CHi lay SS active
  92. AND ss.Role = 'SUP'
  93. INNER JOIN [10.86.67.15].THPDMS2.dbo.DMSRoute r ON sf.EmployeeID = r.SalesForceID
  94. AND r.CompanyID = sf.CompanyID
  95. INNER JOIN [10.86.67.15].THPDMS2.dbo.DMSViewSFWithAssignment assAsm ON assAsm.CompanyID = r.CompanyID
  96. AND assAsm.SalesOrgValueID = r.SalesAreaID --lay asm ql r.SalesAreaID
  97. AND r.CompanyID = @CompanyID
  98. INNER JOIN dbo.asmUser asm ON asm.Username = assAsm.LoginID --salesarea gan cho loginId, nen Asm phai co EmployeeCD = LoginID
  99. AND asm.Role = 'ASM'
  100. ORDER BY asm.Username
  101.  
  102.  
  103.  
  104.  
  105. --Lay danh sach Salesmen :
  106.  
  107. TRUNCATE TABLE dbo.asmSalesman
  108. INSERT INTO dbo.asmSalesman
  109. ( SalesmanCode ,
  110. SalesmanName ,
  111. DistributorCode ,
  112. SupCode ,
  113. Visit ,
  114. Username ,
  115. DistributorName ,
  116. DistributorCD ,
  117. LastSync
  118. )
  119. SELECT DISTINCT
  120. usm.UserName , -- SalesmanCode - nvarchar(20)
  121. usm.Name , -- SalesmanName - nvarchar(50)
  122. '0' , -- DistributorCode - nvarchar(20)
  123. sup.UserName , -- SupCode - nvarchar(20)
  124. N'' , -- Visit
  125. sup.UserName ,
  126. N'' , -- DistributorName - nvarchar(255)
  127. N'' ,
  128. N''-- LastSync - nvarchar(50)
  129. FROM [10.86.67.15].THPDMS2.dbo.DMSSalesForce sfsm
  130. INNER JOIN [10.86.67.15].THPDMS2.dbo.DMSRoute r ON sfsm.EmployeeID = r.SalespersonID
  131. AND r.CompanyID = sfsm.CompanyID
  132. AND sfsm.Active = 1
  133. INNER JOIN THPSFA2.dbo.DMSAimUser usm ON sfsm.EmployeeCD = usm.UserName
  134. INNER JOIN [10.86.67.15].THPDMS2.dbo.DMSSalesForce sfsup ON sfsup.EmployeeID = r.SalesForceID
  135. AND r.CompanyID = sfsup.CompanyID
  136. AND sfsup.Active = 1
  137. AND r.CompanyID = @CompanyID
  138. INNER JOIN dbo.asmUser sup ON sup.UserName = sfsup.EmployeeCD
  139. AND sup.Role = 'SUP'
  140.  
  141. --Lay danh sach Customer
  142. DELETE dbo.asmCustomer
  143.  
  144. INSERT INTO dbo.asmCustomer
  145. ( CustomerCode ,
  146. LocationCD ,
  147. CustomerName ,
  148. Address ,
  149. Latitude ,
  150. Longtitude ,
  151. SalesmanCode ,
  152. RouteCode ,
  153. Visit ,
  154. VisitOrder ,
  155. DistributorCode ,
  156. UserName ,
  157. ShopFormatID ,
  158. ShopTypeID ,
  159. FileName ,
  160. SampleFileName ,
  161. DMSAttribute1 ,
  162. DMSAttribute2 ,
  163. DMSAttribute3 ,
  164. DMSAttribute4 ,
  165. DMSAttribute5 ,
  166. DMSAttribute6 ,
  167. DMSAttribute7 ,
  168. DMSAttribute8 ,
  169. DMSAttribute9 ,
  170. DMSAttribute10 ,
  171. DistrictID ,
  172. ProvinceID ,
  173. RegionID
  174. )
  175. SELECT CustomerCD , -- CustomerCode - nvarchar(20)
  176. aimC.LocationCD ,
  177. CustomerName , -- CustomerName - nvarchar(50)
  178. aimC.FullAddress ,--Address , -- Address - nvarchar(50)
  179. CAST(aimC.Latitude AS FLOAT) , -- Latitude - float
  180. CAST(aimC.Longitude AS FLOAT) , -- Longtitude - float
  181. aimC.UserName , -- SalesmanCode - nvarchar(20)
  182. aimC.RouteCD , -- RouteCode - nvarchar(20)
  183. 0 , -- Visit - int
  184. ISNULL(aimC.VisitOrder, 0) , --VisitOrder int
  185. aimC.DistributorCD ,
  186. N'' ,
  187. ISNULL(aimC.DMSAttribute3, 0) ,
  188. '' ,
  189. ISNULL(aimC.FileName, '') ,
  190. ISNULL(aimC.SampleFile, '') ,
  191. DMSAttribute1 ,
  192. DMSAttribute2 ,
  193. DMSAttribute3 ,
  194. DMSAttribute4 ,
  195. DMSAttribute5 ,
  196. DMSAttribute6 ,
  197. DMSAttribute7 ,
  198. DMSAttribute8 ,
  199. DMSAttribute9 ,
  200. DMSAttribute10 ,
  201. DistrictID ,
  202. ProvinceID ,
  203. RegionID
  204. FROM THPSFA2.dbo.DMSAimCustomer aimC
  205. INNER JOIN dbo.asmSalesman sm ON aimC.UserName = sm.SalesmanCode
  206.  
  207. --Lay danh sach route
  208. DELETE dbo.asmRoute
  209.  
  210. SET DATEFIRST 7 --Chu nhat se la 1
  211. DECLARE @VisitDate SMALLDATETIME = GETDATE()
  212. DECLARE @Dayofweek INT
  213. SET @Dayofweek = DATEPART(dw, @VisitDate)
  214.  
  215.  
  216. INSERT INTO dbo.asmRoute
  217. ( UserName ,
  218. RouteCode ,
  219. RouteName ,
  220. SalesmanCode ,
  221. SupCode ,
  222. DistributorCode
  223. )
  224. SELECT DISTINCT
  225. sm.SupCode ,
  226. cr.RouteCode ,
  227. CASE WHEN cr.RouteCode NOT LIKE '%_T'
  228. THEN RTRIM(LEFT(r.Descr, 90)) + ' - T'
  229. + RTRIM(CAST(@Dayofweek AS CHAR(1)))
  230. ELSE RTRIM(LEFT(r.Descr, 90))
  231. + ' - Cac ngay con lai'
  232. END AS RouteName ,--nvarchar(100)
  233. cr.SalesmanCode ,
  234. sm.SupCode ,
  235. N''
  236. FROM ( SELECT DISTINCT
  237. SalesmanCode ,
  238. RouteCode
  239. FROM dbo.asmCustomer
  240. ) cr
  241. INNER JOIN [10.86.67.15].THPDMS2.dbo.DMSRoute r ON REPLACE(cr.RouteCode,
  242. '_T', '') = r.RouteCD
  243. AND r.CompanyID = @CompanyID
  244. INNER JOIN dbo.asmSalesman sm ON sm.SalesmanCode = cr.SalesmanCode
  245.  
  246. --Lay Route cua SUP cho ASM
  247. INSERT INTO dbo.asmRoute
  248. ( UserName ,
  249. RouteCode ,
  250. RouteName ,
  251. SalesmanCode ,
  252. SupCode ,
  253. DistributorCode
  254. )
  255. SELECT DISTINCT
  256. asm.ASMCode ,
  257. r.RouteCode ,
  258. r.RouteName ,
  259. r.SalesmanCode ,
  260. r.SupCode ,
  261. r.DistributorCode
  262. FROM dbo.asmRoute r
  263. INNER JOIN dbo.asmSup asm ON r.SupCode = asm.SupCode
  264.  
  265.  
  266. --Cap nhat lai neu ASM thi type la Hop vung de ko check dong bo o dau :
  267. --UPDATE asmUser
  268. --SET Type = 'HV'
  269. --WHERE Role <> 'SUP'
  270. --Cap nhat lai danh sach SS khong di WW
  271. UPDATE dbo.asmUser
  272. SET Type = 'NWW'
  273. WHERE Role IN ( 'SUP', 'ASM' )
  274. AND Username IN (
  275. SELECT UserLogin
  276. FROM THPHammer2.dbo.Appointments
  277. WHERE ( Employees IS NULL
  278. OR Employees = ''
  279. )
  280. AND IsWW = 0
  281. AND IsMeeting = 0
  282. AND DATEDIFF(dd, StartDate, GETDATE()) = 0
  283. AND IsDelete = 0
  284. AND ShiftID = 'AM' )
  285.  
  286.  
  287.  
  288.  
  289. UPDATE dbo.asmUser
  290. SET Type = 'HV'
  291. WHERE Username IN (
  292. SELECT UserLogin
  293. FROM THPHammer2.dbo.Appointments
  294. WHERE IsMeeting = 1
  295. AND IsDelete = 0
  296. AND DATEDIFF(dd, StartDate, GETDATE()) = 0 )
  297.  
  298.  
  299.  
  300.  
  301. DELETE dbo.asmParameter
  302. INSERT INTO dbo.asmParameter
  303. ( ID ,
  304. [Desc] ,
  305. Value ,
  306. UserName
  307. )
  308. SELECT N'EndTime' , -- ID - nvarchar(50)
  309. N'EndTime' , -- Desc - nvarchar(50)
  310. N'23:00:00' , -- Value - nvarchar(50)
  311. Username -- UserName - nvarchar(50)
  312. FROM dbo.asmUser
  313. UNION ALL
  314. SELECT N'StartTime' , -- ID - nvarchar(50)
  315. N'StartTime' , -- Desc - nvarchar(50)
  316. N'07:30:00' , -- Value - nvarchar(50) yeu cau tu Danh 27/12/2017 N'08:00:00'
  317. Username -- UserName - nvarchar(50)
  318. FROM dbo.asmUser
  319. UNION ALL
  320. SELECT N'Interval' , -- ID - nvarchar(50)
  321. N'Interval' , -- Desc - nvarchar(50)
  322. N'15' , -- Value - nvarchar(50)
  323. Username -- UserName - nvarchar(50)
  324. FROM dbo.asmUser
  325. UNION ALL
  326. SELECT N'EvalWarningEnable' , -- ID - nvarchar(50)
  327. N'Hiện thông báo nhắt nhở đánh giá cuối ngày' , -- Desc - nvarchar(50)
  328. N'1' , -- Value - nvarchar(50)
  329. Username -- UserName - nvarchar(50)
  330. FROM dbo.asmUser
  331. UNION ALL
  332. SELECT N'EvalWarningTime' , -- ID - nvarchar(50)
  333. N'Thời gian nhắt nhở đánh giá cuối ngày' , -- Desc - nvarchar(50)
  334. N'16:30' , -- Value - nvarchar(50)
  335. Username -- UserName - nvarchar(50)
  336. FROM dbo.asmUser
  337.  
  338. DELETE dbo.asmParameterRoute
  339. INSERT INTO dbo.asmParameterRoute
  340. ( Username ,
  341. ID ,
  342. [Desc] ,
  343. Value ,
  344. RouteCode
  345. )
  346. SELECT DISTINCT
  347. l.UserName , -- Username - nvarchar(50)
  348. p.ID , -- ID - nvarchar(50)
  349. p.[Desc] , -- Desc - nvarchar(50)
  350. p.Value , -- Value - nvarchar(50)
  351. r.RouteCode -- RouteCode - nvarchar(50)
  352. FROM dbo.VS_ASM_GETSMBYUSENAME l
  353. INNER JOIN dbo.asmRoute r ON l.SalesmanCode = r.SalesmanCode
  354. AND l.UserName = r.UserName
  355. INNER JOIN THPSFA2.dbo.DMSAimParameter p ON r.SalesmanCode = p.UserName
  356. WHERE p.ID IN ( 'Distance', 'GPSLock', 'GPSByPass',
  357. 'GPSLockImage', 'DistanceImage',
  358. 'GPSByPassImage', 'DistanceAvatar',
  359. 'GPSByPassAvatar', 'GPSLockAvatar' )
  360. --UPDATE asmParameterRoute SET VALUE = '200' WHERE ID = 'Distance' -- Danh yeu cau bo 20171222
  361.  
  362.  
  363.  
  364.  
  365. --Lay master Distributor location
  366. TRUNCATE TABLE dbo.AsmMasterDistributorLocation
  367.  
  368. INSERT INTO dbo.AsmMasterDistributorLocation
  369. ( DistributorCD ,
  370. LocationCD ,
  371. Descr ,
  372. SiteID ,
  373. Longitude ,
  374. Latitude ,
  375. IsBaseLocation
  376. )
  377. SELECT DISTINCT
  378. d.DistributorCD ,
  379. l.LocationCD ,
  380. d.DistributorName ,
  381. '' ,
  382. ISNULL(c.UsrLattitude, 0) ,
  383. ISNULL(c.UsrLongtitude, 0) ,
  384. '0'
  385. FROM THPSFA2.dbo.DMSAimDistributor d
  386. INNER JOIN [10.86.67.15].THPDMS2.dbo.Branch b ON d.DistributorCD = b.BranchCD
  387. INNER JOIN [10.86.67.15].THPDMS2.dbo.BAccount a ON a.BAccountID = b.BAccountID
  388. AND a.CompanyID = b.CompanyID
  389. AND a.BAccountID = b.BAccountID
  390. AND Type = 'CP'
  391. AND a.DeletedDatabaseRecord <> 1
  392. AND b.DeletedDatabaseRecord <> 1
  393. INNER JOIN [10.86.67.15].THPDMS2.dbo.Location l ON a.BAccountID = l.BAccountID
  394. AND l.CompanyID = a.CompanyID
  395. AND l.LocationID = a.DefLocationID
  396. INNER JOIN [10.86.67.15].THPDMS2.dbo.Address c ON l.DefAddressID = c.AddressID
  397. AND l.CompanyID = c.CompanyID
  398. AND l.CompanyID = @CompanyID
  399.  
  400. -- asmSupDistributor insert khi co KH
  401. TRUNCATE TABLE asmSupDistributor
  402. INSERT INTO dbo.asmSupDistributor
  403. ( SupCode ,
  404. DistributorCode ,
  405. DistributorName ,
  406. Latitude ,
  407. Longtitude
  408. )
  409. SELECT DISTINCT
  410. u.UserName ,
  411. smDist.DistributorCD ,
  412. smDist.DistributorName ,
  413. masterLoc.Latitude ,
  414. masterLoc.Longitude
  415. FROM ( SELECT DISTINCT
  416. UserName ,
  417. DistributorCD ,
  418. DistributorName
  419. FROM THPSFA2.dbo.DMSAimDistributor
  420. ) smDist
  421. INNER JOIN dbo.asmSalesman sm ON sm.SalesmanCode = smDist.UserName
  422. INNER JOIN dbo.asmUser u ON u.UserName = sm.SupCode
  423. AND u.Role = 'SUP'
  424. --masterLoc chi lấy defaultLocation nên 1 NPP 1 masterLoc
  425. INNER JOIN AsmMasterDistributorLocation masterLoc ON masterLoc.DistributorCD = smDist.DistributorCD
  426.  
  427. EXEC dbo.p_Asm_competitorStockCount
  428. EXEC dbo.p_asm_Customersurvey @CompanyID
  429.  
  430. EXEC dbo.p_asm_UserTrainingMaterial
  431.  
  432. EXEC dbo.sp_asm_SyncSchedule
  433. EXEC dbo.p_asm_survey_campaign_CAMP002
  434. EXEC dbo.p_asm_survey_campaign_CAMP003
  435. EXEC p_asm_asmVisitPlan @CompanyID
  436. EXEC p_asm_sync_geogrphy @CompanyID
  437. EXEC dbo.sp_Sync_TMKT @CompanyID
  438. EXEC dbo.sp_Sync_file @CompanyID
  439. --EXEC dbo.p_Asm_Evaluation: không su dung, add để nhớ
  440. --EXEC p_asm_Display_syncRegisterOutletToAcu Chưa xác định giải pháp, add để nhớ
  441.  
  442. UPDATE dbo.asmUser
  443. SET ByPass = 'Normal'
  444. WHERE Type = 'NWW'
  445. AND Role = 'ASM'
  446.  
  447. --Lay tọa độ đồng bộ của SM làm tọa độ đồng bộ của SUP/ASM trong trường hợp Lịch buổi sáng là lich WW với SM
  448. EXEC sp_Sync_CallSyncLocation
  449. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement