Advertisement
Guest User

Untitled

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