Advertisement
Guest User

Untitled

a guest
May 9th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.97 KB | None | 0 0
  1. USE [SFS2]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[p_ASM_Call_all] Script Date: 5/10/2018 9:45:03 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. INNER JOIN THPSFA2.dbo.DMSAimUser usm ON sfsm.EmployeeCD = usm.UserName
  135. INNER JOIN [10.86.67.15].THPDMS2.dbo.DMSSalesForce sfsup ON sfsup.EmployeeID = r.SalesForceID
  136. AND r.CompanyID = sfsup.CompanyID
  137. AND sfsup.Active = 1
  138. AND r.CompanyID = @CompanyID
  139. INNER JOIN dbo.asmUser sup ON sup.UserName = sfsup.EmployeeCD
  140. AND sup.Role = 'SUP'
  141.  
  142. --Lay danh sach Customer
  143. DELETE dbo.asmCustomer
  144.  
  145. INSERT INTO dbo.asmCustomer
  146. ( CustomerCode ,
  147. LocationCD ,
  148. CustomerName ,
  149. Address ,
  150. Latitude ,
  151. Longtitude ,
  152. SalesmanCode ,
  153. RouteCode ,
  154. Visit ,
  155. VisitOrder ,
  156. DistributorCode ,
  157. UserName ,
  158. ShopFormatID ,
  159. ShopTypeID ,
  160. FileName ,
  161. SampleFileName ,
  162. DMSAttribute1 ,
  163. DMSAttribute2 ,
  164. DMSAttribute3 ,
  165. DMSAttribute4 ,
  166. DMSAttribute5 ,
  167. DMSAttribute6 ,
  168. DMSAttribute7 ,
  169. DMSAttribute8 ,
  170. DMSAttribute9 ,
  171. DMSAttribute10 ,
  172. DistrictID ,
  173. ProvinceID ,
  174. RegionID
  175. )
  176. SELECT CustomerCD , -- CustomerCode - nvarchar(20)
  177. aimC.LocationCD ,
  178. CustomerName , -- CustomerName - nvarchar(50)
  179. aimC.FullAddress ,--Address , -- Address - nvarchar(50)
  180. CAST(aimC.Latitude AS FLOAT) , -- Latitude - float
  181. CAST(aimC.Longitude AS FLOAT) , -- Longtitude - float
  182. aimC.UserName , -- SalesmanCode - nvarchar(20)
  183. aimC.RouteCD , -- RouteCode - nvarchar(20)
  184. 0 , -- Visit - int
  185. ISNULL(aimC.VisitOrder, 0) , --VisitOrder int
  186. aimC.DistributorCD ,
  187. N'' ,
  188. ISNULL(aimC.DMSAttribute3, 0) ,
  189. '' ,
  190. ISNULL(aimC.FileName, '') ,
  191. ISNULL(aimC.SampleFile, '') ,
  192. DMSAttribute1 ,
  193. DMSAttribute2 ,
  194. DMSAttribute3 ,
  195. DMSAttribute4 ,
  196. DMSAttribute5 ,
  197. DMSAttribute6 ,
  198. DMSAttribute7 ,
  199. DMSAttribute8 ,
  200. DMSAttribute9 ,
  201. DMSAttribute10 ,
  202. DistrictID ,
  203. ProvinceID ,
  204. RegionID
  205. FROM THPSFA2.dbo.DMSAimCustomer aimC
  206. INNER JOIN dbo.asmSalesman sm ON aimC.UserName = sm.SalesmanCode
  207.  
  208. --Lay danh sach route
  209. DELETE dbo.asmRoute
  210.  
  211. SET DATEFIRST 7 --Chu nhat se la 1
  212. DECLARE @VisitDate SMALLDATETIME = GETDATE()
  213. DECLARE @Dayofweek INT
  214. SET @Dayofweek = DATEPART(dw, @VisitDate)
  215.  
  216.  
  217. INSERT INTO dbo.asmRoute
  218. ( UserName ,
  219. RouteCode ,
  220. RouteName ,
  221. SalesmanCode ,
  222. SupCode ,
  223. DistributorCode
  224. )
  225. SELECT DISTINCT
  226. sm.SupCode ,
  227. cr.RouteCode ,
  228. CASE WHEN cr.RouteCode NOT LIKE '%_T'
  229. THEN RTRIM(LEFT(r.Descr, 90)) + ' - T'
  230. + RTRIM(CAST(@Dayofweek AS CHAR(1)))
  231. ELSE RTRIM(LEFT(r.Descr, 90))
  232. + ' - Cac ngay con lai'
  233. END AS RouteName ,--nvarchar(100)
  234. cr.SalesmanCode ,
  235. sm.SupCode ,
  236. N''
  237. FROM ( SELECT DISTINCT
  238. SalesmanCode ,
  239. RouteCode
  240. FROM dbo.asmCustomer
  241. ) cr
  242. INNER JOIN [10.86.67.15].THPDMS2.dbo.DMSRoute r ON REPLACE(cr.RouteCode,
  243. '_T', '') = r.RouteCD
  244. AND r.CompanyID = @CompanyID
  245. INNER JOIN dbo.asmSalesman sm ON sm.SalesmanCode = cr.SalesmanCode
  246.  
  247. --Lay Route cua SUP cho ASM
  248. INSERT INTO dbo.asmRoute
  249. ( UserName ,
  250. RouteCode ,
  251. RouteName ,
  252. SalesmanCode ,
  253. SupCode ,
  254. DistributorCode
  255. )
  256. SELECT DISTINCT
  257. asm.ASMCode ,
  258. r.RouteCode ,
  259. r.RouteName ,
  260. r.SalesmanCode ,
  261. r.SupCode ,
  262. r.DistributorCode
  263. FROM dbo.asmRoute r
  264. INNER JOIN dbo.asmSup asm ON r.SupCode = asm.SupCode
  265.  
  266.  
  267. --Cap nhat lai neu ASM thi type la Hop vung de ko check dong bo o dau :
  268. --UPDATE asmUser
  269. --SET Type = 'HV'
  270. --WHERE Role <> 'SUP'
  271. --Cap nhat lai danh sach SS khong di WW
  272. UPDATE dbo.asmUser
  273. SET Type = 'NWW'
  274. WHERE Role IN ( 'SUP', 'ASM' )
  275. AND Username IN (
  276. SELECT UserLogin
  277. FROM THPHammer2.dbo.Appointments
  278. WHERE ( Employees IS NULL
  279. OR Employees = ''
  280. )
  281. AND IsWW = 0
  282. AND IsMeeting = 0
  283. AND DATEDIFF(dd, StartDate, GETDATE()) = 0
  284. AND IsDelete = 0
  285. AND ShiftID = 'AM' )
  286.  
  287.  
  288.  
  289.  
  290. UPDATE dbo.asmUser
  291. SET Type = 'HV'
  292. WHERE Username IN (
  293. SELECT UserLogin
  294. FROM THPHammer2.dbo.Appointments
  295. WHERE IsMeeting = 1
  296. AND IsDelete = 0
  297. AND DATEDIFF(dd, StartDate, GETDATE()) = 0 )
  298.  
  299.  
  300.  
  301.  
  302. DELETE dbo.asmParameter
  303. INSERT INTO dbo.asmParameter
  304. ( ID ,
  305. [Desc] ,
  306. Value ,
  307. UserName
  308. )
  309. SELECT N'EndTime' , -- ID - nvarchar(50)
  310. N'EndTime' , -- Desc - nvarchar(50)
  311. N'23:00:00' , -- Value - nvarchar(50)
  312. Username -- UserName - nvarchar(50)
  313. FROM dbo.asmUser
  314. UNION ALL
  315. SELECT N'StartTime' , -- ID - nvarchar(50)
  316. N'StartTime' , -- Desc - nvarchar(50)
  317. N'07:30:00' , -- Value - nvarchar(50) yeu cau tu Danh 27/12/2017 N'08:00:00'
  318. Username -- UserName - nvarchar(50)
  319. FROM dbo.asmUser
  320. UNION ALL
  321. SELECT N'Interval' , -- ID - nvarchar(50)
  322. N'Interval' , -- Desc - nvarchar(50)
  323. N'15' , -- Value - nvarchar(50)
  324. Username -- UserName - nvarchar(50)
  325. FROM dbo.asmUser
  326. UNION ALL
  327. SELECT N'EvalWarningEnable' , -- ID - nvarchar(50)
  328. N'Hiện thông báo nhắt nhở đánh giá cuối ngày' , -- Desc - nvarchar(50)
  329. N'1' , -- Value - nvarchar(50)
  330. Username -- UserName - nvarchar(50)
  331. FROM dbo.asmUser
  332. UNION ALL
  333. SELECT N'EvalWarningTime' , -- ID - nvarchar(50)
  334. N'Thời gian nhắt nhở đánh giá cuối ngày' , -- Desc - nvarchar(50)
  335. N'16:30' , -- Value - nvarchar(50)
  336. Username -- UserName - nvarchar(50)
  337. FROM dbo.asmUser
  338.  
  339. DELETE dbo.asmParameterRoute
  340. INSERT INTO dbo.asmParameterRoute
  341. ( Username ,
  342. ID ,
  343. [Desc] ,
  344. Value ,
  345. RouteCode
  346. )
  347. SELECT DISTINCT
  348. l.UserName , -- Username - nvarchar(50)
  349. p.ID , -- ID - nvarchar(50)
  350. p.[Desc] , -- Desc - nvarchar(50)
  351. p.Value , -- Value - nvarchar(50)
  352. r.RouteCode -- RouteCode - nvarchar(50)
  353. FROM dbo.VS_ASM_GETSMBYUSENAME l
  354. INNER JOIN dbo.asmRoute r ON l.SalesmanCode = r.SalesmanCode
  355. AND l.UserName = r.UserName
  356. INNER JOIN THPSFA2.dbo.DMSAimParameter p ON r.SalesmanCode = p.UserName
  357. WHERE p.ID IN ( 'Distance', 'GPSLock', 'GPSByPass',
  358. 'GPSLockImage', 'DistanceImage',
  359. 'GPSByPassImage', 'DistanceAvatar',
  360. 'GPSByPassAvatar', 'GPSLockAvatar' )
  361. --UPDATE asmParameterRoute SET VALUE = '200' WHERE ID = 'Distance' -- Danh yeu cau bo 20171222
  362.  
  363.  
  364.  
  365.  
  366. --Lay master Distributor location
  367. TRUNCATE TABLE dbo.AsmMasterDistributorLocation
  368.  
  369. INSERT INTO dbo.AsmMasterDistributorLocation
  370. ( DistributorCD ,
  371. LocationCD ,
  372. Descr ,
  373. SiteID ,
  374. Latitude ,
  375. Longitude ,
  376. IsBaseLocation
  377. )
  378. SELECT DISTINCT
  379. d.DistributorCD ,
  380. l.LocationCD ,
  381. d.DistributorName ,
  382. '' ,
  383. ISNULL(c.UsrLattitude, 0) ,
  384. ISNULL(c.UsrLongtitude, 0) ,
  385. '0'
  386. FROM THPSFA2.dbo.DMSAimDistributor d
  387. INNER JOIN [10.86.67.15].THPDMS2.dbo.Branch b ON d.DistributorCD = b.BranchCD
  388. INNER JOIN [10.86.67.15].THPDMS2.dbo.BAccount a ON a.BAccountID = b.BAccountID
  389. AND a.CompanyID = b.CompanyID
  390. AND a.BAccountID = b.BAccountID
  391. AND Type = 'CP'
  392. AND a.DeletedDatabaseRecord <> 1
  393. AND b.DeletedDatabaseRecord <> 1
  394. INNER JOIN [10.86.67.15].THPDMS2.dbo.Location l ON a.BAccountID = l.BAccountID
  395. AND l.CompanyID = a.CompanyID
  396. AND l.LocationID = a.DefLocationID
  397. INNER JOIN [10.86.67.15].THPDMS2.dbo.Address c ON l.DefAddressID = c.AddressID
  398. AND l.CompanyID = c.CompanyID
  399. AND l.CompanyID = @CompanyID
  400.  
  401. -- asmSupDistributor insert khi co KH
  402. TRUNCATE TABLE asmSupDistributor
  403. INSERT INTO dbo.asmSupDistributor
  404. ( SupCode ,
  405. DistributorCode ,
  406. DistributorName ,
  407. Latitude ,
  408. Longtitude
  409. )
  410. SELECT DISTINCT
  411. u.UserName ,
  412. smDist.DistributorCD ,
  413. smDist.DistributorName ,
  414. masterLoc.Latitude ,
  415. masterLoc.Longitude
  416. FROM ( SELECT DISTINCT
  417. UserName ,
  418. DistributorCD ,
  419. DistributorName
  420. FROM THPSFA2.dbo.DMSAimDistributor
  421. ) smDist
  422. INNER JOIN dbo.asmSalesman sm ON sm.SalesmanCode = smDist.UserName
  423. INNER JOIN dbo.asmUser u ON u.UserName = sm.SupCode
  424. AND u.Role = 'SUP'
  425. --masterLoc chi lấy defaultLocation nên 1 NPP 1 masterLoc
  426. INNER JOIN AsmMasterDistributorLocation masterLoc ON masterLoc.DistributorCD = smDist.DistributorCD
  427.  
  428. EXEC dbo.p_Asm_competitorStockCount
  429. EXEC dbo.p_asm_Customersurvey @CompanyID
  430.  
  431. EXEC dbo.p_asm_UserTrainingMaterial
  432.  
  433. EXEC dbo.sp_asm_SyncSchedule
  434. EXEC dbo.p_asm_survey_campaign_CAMP002
  435. EXEC dbo.p_asm_survey_campaign_CAMP003
  436. EXEC p_asm_asmVisitPlan @CompanyID
  437. EXEC p_asm_sync_geogrphy @CompanyID
  438. EXEC dbo.sp_Sync_TMKT @CompanyID
  439. EXEC dbo.sp_Sync_file @CompanyID
  440. --EXEC dbo.p_Asm_Evaluation: không su dung, add để nhớ
  441. --EXEC p_asm_Display_syncRegisterOutletToAcu Chưa xác định giải pháp, add để nhớ
  442.  
  443. UPDATE dbo.asmUser
  444. SET ByPass = 'Normal'
  445. WHERE Type = 'NWW'
  446. AND Role = 'ASM'
  447.  
  448. --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
  449. EXEC sp_Sync_CallSyncLocation
  450. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement