Advertisement
Guest User

Untitled

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