Advertisement
Guest User

Untitled

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