· 9 years ago · Nov 16, 2016, 11:14 AM
1 public class WebUtility
2 {
3 public static string CreateNewPDF(string Content, string FileName, string logo)
4 {
5 //using (MemoryStream myMemoryStream = new MemoryStream())
6 //{
7 string attachmentFileName = "";
8 try
9 {
10 var document = new Document();
11 if (System.IO.File.Exists(HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\TempFiles\" + FileName + ".pdf")))
12 {
13 System.IO.File.Delete(HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\TempFiles\" + FileName + ".pdf"));
14 }
15 using (FileStream fs = new FileStream((HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\TempFiles\" + FileName + ".pdf")), FileMode.Create))
16 {
17 PdfWriter.GetInstance(document, fs);
18 document.SetPageSize(PageSize.A3.Rotate());
19 var arial = FontFactory.GetFont("Arial", 6, iTextSharp.text.Color.BLACK);
20 var arialBold = FontFactory.GetFont("Arial", 8, iTextSharp.text.Font.BOLD, iTextSharp.text.Color.BLACK);
21
22 document.Open();
23
24 iTextSharp.text.html.simpleparser.StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
25 iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document);
26 hw.Style = GenerateNewStyleSheet();
27
28 //string imagepath = HttpContext.Current.Server.MapPath(@"~\Content\Images");
29
30 //Image gif = Image.GetInstance(imagepath + "/" + logo);
31 //document.Add(gif);
32
33 hw.Parse(new StringReader(Content.ToString()));
34
35 if (System.IO.File.Exists(HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\TempFiles\" + FileName + ".pdf")))
36 {
37 attachmentFileName = HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\TempFiles\" + FileName + ".pdf");
38 }
39
40 document.Close();
41 }
42
43 }
44 catch (Exception ex)
45 {
46 Helper.ErrorLog(ex.InnerException, "WebUtility", "CreateNewPDF", ex.Message);
47 }
48 return attachmentFileName;
49 }
50
51 public static string CreateNewPDFCommon(string Content, string FileName, string logo)
52 {
53 //using (MemoryStream myMemoryStream = new MemoryStream())
54 //{
55 string attachmentFileName = "";
56 var document = new Document();
57 try
58 {
59
60 if (System.IO.File.Exists(HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\" + FileName + ".pdf")))
61 {
62 System.IO.File.Delete(HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\" + FileName + ".pdf"));
63 }
64
65 using (FileStream fs = new FileStream((HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\" + FileName + ".pdf")), FileMode.Create))
66 {
67
68 PdfWriter.GetInstance(document, fs);
69 document.SetPageSize(PageSize.A3.Rotate());
70 var arial = FontFactory.GetFont("Arial", 6, iTextSharp.text.Color.BLACK);
71 var arialBold = FontFactory.GetFont("Arial", 8, iTextSharp.text.Font.BOLD, iTextSharp.text.Color.BLACK);
72
73 document.Open();
74
75 iTextSharp.text.html.simpleparser.StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
76 iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document);
77 hw.Style = GenerateNewStyleSheet();
78
79 //string imagepath = HttpContext.Current.Server.MapPath(@"~\Content\Images");
80
81 //Image gif = Image.GetInstance(imagepath + "/" + logo);
82 //document.Add(gif);
83
84 hw.Parse(new StringReader(Content.ToString()));
85
86 if (System.IO.File.Exists(HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\" + FileName + ".pdf")))
87 {
88 attachmentFileName = HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\" + FileName + ".pdf");
89 }
90
91 document.Close();
92
93
94 // HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}.pdf", FileName));
95 // HttpContext.Current.Response.BinaryWrite(fs.ToArray());
96
97 }
98 }
99 catch
100 {
101
102 }
103 return attachmentFileName;
104 }
105
106 public static void CreateNewPDFDirectly(string Content, string FileName, string logo)
107 {
108 var document = new Document();
109 HttpContext.Current.Response.AddHeader("Content-disposition", "attachment; filename=" + FileName + ".pdf");
110 HttpContext.Current.Response.ContentType = "application/octet-stream";
111 try
112 {
113
114 if (System.IO.File.Exists(HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\" + FileName + ".pdf")))
115 {
116 System.IO.File.Delete(HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\" + FileName + ".pdf"));
117 }
118
119 using (FileStream fs = new FileStream((HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\" + FileName + ".pdf")), FileMode.Create))
120 {
121
122 PdfWriter.GetInstance(document, fs);
123 document.SetPageSize(PageSize.A3.Rotate());
124 //document.SetPageSize(PageSize.A4.Rotate());
125 var arial = FontFactory.GetFont("Arial", 6, iTextSharp.text.Color.BLACK);
126 var arialBold = FontFactory.GetFont("Arial", 8, iTextSharp.text.Font.BOLD, iTextSharp.text.Color.BLACK);
127
128 document.Open();
129
130 iTextSharp.text.html.simpleparser.StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
131 iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document);
132 hw.Style = GenerateNewStyleSheet();
133
134 //string imagepath = HttpContext.Current.Server.MapPath(@"~\Content\Images");
135
136 //Image gif = Image.GetInstance(imagepath + "/" + logo);
137 //document.Add(gif);
138
139 hw.Parse(new StringReader(Content.ToString()));
140 document.Close();
141 }
142 }
143 catch
144 {
145
146 }
147
148 }
149 public static void CreateFactFindPdf(string Content, string FileName, string logo)
150 {
151 var document = new Document();
152 HttpContext.Current.Response.AddHeader("Content-disposition", "attachment; filename=" + FileName + ".pdf");
153 HttpContext.Current.Response.ContentType = "application/octet-stream";
154 try
155 {
156
157 if (System.IO.File.Exists(HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\" + FileName + ".pdf")))
158 {
159 System.IO.File.Delete(HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\" + FileName + ".pdf"));
160 }
161
162 using (FileStream fs = new FileStream((HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\" + FileName + ".pdf")), FileMode.Create))
163 {
164
165 PdfWriter.GetInstance(document, fs);
166 document.SetPageSize(PageSize.A3.Rotate());
167 //document.SetPageSize(PageSize.A4.Rotate());
168
169 var arial = FontFactory.GetFont("Arial", 6, iTextSharp.text.Color.BLACK);
170 var arialBold = FontFactory.GetFont("Arial", 8, iTextSharp.text.Font.BOLD, iTextSharp.text.Color.BLACK);
171
172 document.Open();
173
174 iTextSharp.text.html.simpleparser.StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
175 iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document);
176 hw.Style = FactFindStyleSheet();
177
178 //string imagepath = HttpContext.Current.Server.MapPath(@"~\Content\Images");
179
180 //Image gif = Image.GetInstance(imagepath + "/" + logo);
181 //document.Add(gif);
182 //
183
184 //
185 hw.Parse(new StringReader(Content.ToString()));
186 document.Close();
187 }
188 }
189 catch
190 {
191
192 }
193
194 }
195
196
197 public static void CreateiText_InvoicePDF(string FileName)
198 {
199 try
200 {
201 HttpContext.Current.Response.AddHeader("Content-disposition", "attachment; filename=" + FileName + ".pdf");
202 HttpContext.Current.Response.ContentType = "application/octet-stream";
203
204 }
205 catch (Exception ex)
206 {
207 Helper.ErrorLog(ex.InnerException, "WebUtility", "CreateiText_InvoicePDF", ex.Message);
208 }
209 }
210
211 public static void CreateiText_PDF(string FileName)
212 {
213 try
214 {
215 HttpContext.Current.Response.AddHeader("Content-disposition", "attachment; filename=" + FileName + ".pdf");
216 HttpContext.Current.Response.ContentType = "application/octet-stream";
217
218 }
219 catch (Exception ex)
220 {
221 Helper.ErrorLog(ex.InnerException, "WebUtility", "CreateiText_PDF", ex.Message);
222
223 }
224 }
225
226 public static void CreateApplicationPDF(string Content, string FileName, string logo)
227 {
228 var document = new Document();
229 HttpContext.Current.Response.AddHeader("Content-disposition", "attachment; filename=" + FileName + ".pdf");
230 HttpContext.Current.Response.ContentType = "application/octet-stream";
231 try
232 {
233
234 if (System.IO.File.Exists(HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\" + FileName + ".pdf")))
235 {
236 System.IO.File.Delete(HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\" + FileName + ".pdf"));
237 }
238
239 using (FileStream fs = new FileStream((HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\" + FileName + ".pdf")), FileMode.Create))
240 {
241
242 PdfWriter.GetInstance(document, fs);
243 //document.SetPageSize(PageSize.A3.Rotate());
244 document.SetPageSize(PageSize.A4.Rotate());
245
246 var arial = FontFactory.GetFont("Arial", 6, iTextSharp.text.Color.BLACK);
247 var arialBold = FontFactory.GetFont("Arial", 8, iTextSharp.text.Font.BOLD, iTextSharp.text.Color.BLACK);
248
249 document.Open();
250
251 iTextSharp.text.html.simpleparser.StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
252 iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document);
253 hw.Style = FactFindStyleSheet();
254
255 //string imagepath = HttpContext.Current.Server.MapPath(@"~\Content\Images");
256
257 //Image gif = Image.GetInstance(imagepath + "/" + logo);
258 //document.Add(gif);
259 //
260
261 //
262 hw.Parse(new StringReader(Content.ToString()));
263 document.Close();
264 }
265 }
266 catch (Exception ex)
267 {
268
269 }
270 }
271 private static StyleSheet GenerateNewStyleSheet()
272 {
273 StyleSheet css = new StyleSheet();
274 try
275 {
276 css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.BACKGROUNDCOLOR, "#FFFFFF");
277 css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.BORDERWIDTH, "0.5");
278 css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.BORDERCOLOR, "#000");
279 css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.CELLPADDING, "5");
280 css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.RIGHTMARGIN, "50");
281 css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.LEFTMARGIN, "50");
282 css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.TOPMARGIN, "50");
283 css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.BOTTOMMARGIN, "50");
284 css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.WIDTH, "100%");
285
286 }
287 catch
288 {
289 }
290 return css;
291 }
292
293 private static StyleSheet FactFindStyleSheet()
294 {
295 StyleSheet css = new StyleSheet();
296 try
297 {
298 //css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.BACKGROUNDCOLOR, "#FFFFFF");
299 //css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.BORDERWIDTH, "0.5");
300 //css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.BORDERCOLOR, "#000");
301 //css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.CELLPADDING, "5");
302 //css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.RIGHTMARGIN, "50");
303 //css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.LEFTMARGIN, "50");
304 //css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.TOPMARGIN, "50");
305 //css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.BOTTOMMARGIN, "50");
306 //css.LoadTagStyle(HtmlTags.TABLE, HtmlTags.WIDTH, "100%");
307
308
309 css.LoadTagStyle(HtmlTags.DIV, HtmlTags.FONT, "inherit");
310 css.LoadTagStyle(HtmlTags.DIV, HtmlTags.VERTICALALIGN, "baseline");
311 css.LoadTagStyle(HtmlTags.DIV, HtmlTags.BORDERWIDTH, "0");
312 css.LoadTagStyle(HtmlTags.DIV, HtmlTags.BOTTOMMARGIN, "0");
313 css.LoadTagStyle(HtmlTags.DIV, HtmlTags.TOPMARGIN, "0");
314 css.LoadTagStyle(HtmlTags.DIV, HtmlTags.RIGHTMARGIN, "0");
315 css.LoadTagStyle(HtmlTags.DIV, HtmlTags.LEFTMARGIN, "0");
316
317 css.LoadTagStyle(HtmlTags.BODY, HtmlTags.FONT, "inherit");
318 css.LoadTagStyle(HtmlTags.BODY, HtmlTags.VERTICALALIGN, "baseline");
319 css.LoadTagStyle(HtmlTags.BODY, HtmlTags.BORDERWIDTH, "0");
320 css.LoadTagStyle(HtmlTags.BODY, HtmlTags.BOTTOMMARGIN, "0");
321 css.LoadTagStyle(HtmlTags.BODY, HtmlTags.TOPMARGIN, "0");
322 css.LoadTagStyle(HtmlTags.BODY, HtmlTags.RIGHTMARGIN, "0");
323 css.LoadTagStyle(HtmlTags.BODY, HtmlTags.LEFTMARGIN, "0");
324
325 css.LoadTagStyle(HtmlTags.HTML, HtmlTags.FONT, "inherit");
326 css.LoadTagStyle(HtmlTags.HTML, HtmlTags.VERTICALALIGN, "baseline");
327 css.LoadTagStyle(HtmlTags.HTML, HtmlTags.BORDERWIDTH, "0");
328 css.LoadTagStyle(HtmlTags.HTML, HtmlTags.BOTTOMMARGIN, "0");
329 css.LoadTagStyle(HtmlTags.HTML, HtmlTags.TOPMARGIN, "0");
330 css.LoadTagStyle(HtmlTags.HTML, HtmlTags.RIGHTMARGIN, "0");
331 css.LoadTagStyle(HtmlTags.HTML, HtmlTags.LEFTMARGIN, "0");
332
333 css.LoadStyle("clear", "clear", "both");
334
335 css.LoadStyle("wrapper", "width", "800px");
336 css.LoadStyle("wrapper", "margin", "25px auto");
337
338 css.LoadStyle("pf_title", "padding", "32px 0 10px 0");
339 css.LoadStyle("pf_title", "font-size", "35px");
340 css.LoadStyle("pf_title", "color", "#0059a6");
341 css.LoadStyle("pf_title", "font-weight", "bold");
342 css.LoadStyle("pf_title", "border-top", "solid 10px #0059a6");
343 css.LoadStyle("pf_title", "margin", "32px 0 0 0");
344
345 css.LoadStyle("protection_facttable", "width", "100%");
346 css.LoadStyle("protection_facttable", "font-size", "16px");
347 css.LoadStyle("protection_facttable", "margin", "25px auto");
348 css.LoadStyle("protection_facttable", "color", "#7f7f7f");
349
350 css.LoadStyle("protection_facttable tbody tr td", "padding", "10px");
351 css.LoadStyle("protection_facttable tbody tr td", "border", "solid 1px #bdbec1");
352
353 css.LoadStyle("protection_facttable tbody tr th", "padding", "10px");
354 css.LoadStyle("protection_facttable tbody tr th", "border", "solid 1px #bdbec1");
355 css.LoadStyle("protection_facttable tbody tr th", "background", "#0059a6");
356 css.LoadStyle("protection_facttable tbody tr th", "color", "#fff");
357 css.LoadStyle("protection_facttable tbody tr th", "font-weight", "bold");
358
359
360 css.LoadStyle("header_section", "padding", "15px 0 0 0");
361 css.LoadStyle("header_section", "margin", "15px 0");
362 css.LoadStyle("header_section", "border-top", "solid 5px #0059a6");
363
364 css.LoadStyle("header_section ul", "padding", "0");
365 css.LoadStyle("header_section ul", "margin", "0");
366 css.LoadStyle("header_section ul", "list-style", "none");
367
368 css.LoadStyle("header_section ul li", "padding", "0");
369 css.LoadStyle("header_section ul li", "margin", "0");
370 css.LoadStyle("header_section ul li", "font-size", "18px");
371 css.LoadStyle("header_section ul li", "color", "#0059a6");
372 css.LoadStyle("header_section ul li", "font-weight", "normal");
373 css.LoadStyle("header_section ul li", "display", "inline");
374
375 css.LoadStyle("header_section ul li:first-child", "background", "#0059a6");
376 css.LoadStyle("header_section ul li:first-child", "color", "#fff");
377 css.LoadStyle("header_section ul li:first-child", "padding", "15px 30px");
378
379 css.LoadStyle("header_section ul li.mrgn", "margin", "0 180px !important");
380
381
382 }
383 catch
384 {
385 }
386 return css;
387 }
388
389 public static void DownloadAsZip(string[] filepaths)
390 {
391 using (ZipFile zip = new ZipFile())
392 {
393 zip.AlternateEncodingUsage = ZipOption.AsNecessary;
394 zip.AddDirectoryByName("Client Notes");
395 foreach (var fpath in filepaths)
396 {
397 string filePath = fpath;
398 zip.AddFile(filePath, "Client Notes");
399 }
400 HttpContext.Current.Response.Clear();
401 HttpContext.Current.Response.ClearContent(); // Add this line
402 HttpContext.Current.Response.ClearHeaders(); // Add this line
403 HttpContext.Current.Response.BufferOutput = true;
404 string zipName = String.Format("Client_Notes(Confidential).zip", DateTime.Now.ToString("yyyy-MMM-dd-HHmmss"));
405 HttpContext.Current.Response.ContentType = "application/zip";
406 HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + zipName);
407 zip.Save(HttpContext.Current.Response.OutputStream);
408 HttpContext.Current.Response.End();
409 }
410 }
411 public static void SaveAsZip(string[] filepaths)
412 {
413 using (ZipFile zip = new ZipFile())
414 {
415 zip.AlternateEncodingUsage = ZipOption.AsNecessary;
416 zip.AddDirectoryByName("Client Notes");
417 foreach (var fpath in filepaths)
418 {
419 string filePath = fpath;
420 zip.AddFile(filePath, "Client Notes");
421 }
422 //HttpContext.Current.Response.Clear();
423 //HttpContext.Current.Response.ClearContent(); // Add this line
424 //HttpContext.Current.Response.ClearHeaders(); // Add this line
425 //HttpContext.Current.Response.BufferOutput = true;
426 string zipName = String.Format("Client_Notes(Confidential).zip", DateTime.Now.ToString("yyyy-MMM-dd-HHmmss"));
427 // HttpContext.Current.Response.ContentType = "application/zip";
428 //HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + zipName);
429 zip.Save(HttpContext.Current.Server.MapPath(@"~\Content\PdfReport\TempFiles\" + zipName));
430 //HttpContext.Current.Response.End();
431 }
432 }
433 public static void DownloadAsZip(string[] filepaths, string FileName)
434 {
435 using (ZipFile zip = new ZipFile())
436 {
437 zip.AlternateEncodingUsage = ZipOption.AsNecessary;
438 zip.AddDirectoryByName(FileName);
439 foreach (var fpath in filepaths)
440 {
441 string filePath = fpath;
442 zip.AddFile(filePath, FileName);
443 }
444 HttpContext.Current.Response.Clear();
445 HttpContext.Current.Response.ClearContent(); // Add this line
446 HttpContext.Current.Response.ClearHeaders(); // Add this line
447 HttpContext.Current.Response.BufferOutput = true;
448 string zipName = String.Format(FileName + ".zip", DateTime.Now.ToString("yyyy-MMM-dd-HHmmss"));
449 HttpContext.Current.Response.ContentType = "application/zip";
450 HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + zipName);
451 zip.Save(HttpContext.Current.Response.OutputStream);
452 HttpContext.Current.Response.End();
453 }
454 }
455
456
457 public static string GetBreaker(string fileName)
458 {
459 string cacheBreaker = null;
460 try
461 {
462 HttpContext.Current.Server.MapPath(fileName.Substring(1));
463
464 if (fileName.StartsWith("~"))
465 {
466 //fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName.Remove(0));
467 fileName = HttpContext.Current.Server.MapPath(fileName.Substring(1));
468 }
469 cacheBreaker = File.GetLastWriteTime(fileName).ToFileTime().ToString();
470 }
471 catch { }
472
473 return string.IsNullOrEmpty(cacheBreaker) ? string.Empty : string.Format("?cachebreaker={0}", cacheBreaker);
474
475 }
476 /// <summary>
477 /// Converting Company and Branches name fron string to strign array
478 /// </summary>
479 /// <param name="companyandBranches">Company and Branches name in string</param>
480 /// <returns></returns>
481 public static string[] GetCompaniesAndBranches(string companyandBranches)
482 {
483 // Get Company and Branch Names
484 string[] CompanyBranches = new string[2];
485 string _allCompBranches = "";
486 string[] _bandcompanyNames = null;
487
488 var cm = "";
489 var bm = "";
490 try
491 {
492 if (!string.IsNullOrWhiteSpace(companyandBranches))
493 {
494 _allCompBranches = companyandBranches;
495 _bandcompanyNames = _allCompBranches.Split(')');
496 }
497 if (_bandcompanyNames != null)
498 {
499 foreach (var cname in _bandcompanyNames)
500 {
501
502 if (cname.Split('(').Count() > 0)
503 {
504 cm += System.Text.RegularExpressions.Regex.Replace(cname.Split('(')[0].Trim(), @"\s", "") + ",";
505
506 if (cname.Split('(').Count() > 1)
507 {
508
509 string allBracnhes = System.Text.RegularExpressions.Regex.Replace(cname.Split('(')[1].Trim(), @"\s", "");
510 string[] allBracnhesarray = allBracnhes.Split(new char[] { ',' }, 2).Select(c => c.Trim()).Distinct().ToArray();
511
512 string updatedValue = "";
513
514 if (allBracnhesarray.Count() > 1 && allBracnhesarray[0] == "")
515 // Check when the first branch is blank mean "Office"
516 {
517 updatedValue = System.Text.RegularExpressions.Regex.Replace(cname.Split('(')[0].Trim(), @"\s", "").ToLower() + "office" + "," + allBracnhesarray[1].Trim().Trim(',');
518 }
519 else if (allBracnhesarray.Count() == 1 && allBracnhesarray[0] == "")
520 {
521 updatedValue = System.Text.RegularExpressions.Regex.Replace(cname.Split('(')[0].Trim(), @"\s", "").ToLower() + "office";
522 }
523 else
524 {
525 updatedValue = System.Text.RegularExpressions.Regex.Replace(cname.Split('(')[1].Trim().ToLower(), @"\s", "").ToLower();
526 }
527 bm += updatedValue + ",";
528 }
529 }
530
531 }
532
533 CompanyBranches[0] = cm.Trim(',').TrimEnd(',');
534 CompanyBranches[1] = bm.Trim(',').TrimEnd(',');
535
536 }
537 }
538 catch (Exception ex)
539 {
540 Helper.ErrorLog(ex.InnerException, "Webutility", "GetCompaniesAndBranches");
541 }
542
543 return CompanyBranches;
544 //End *****************************************************************
545 }
546 public static bool SendMailViaManDRILL(List<ManDRILLModel> messagelist, int loggedinuserid, bool isFollowUp = false)
547 {
548 bool _status = false;
549 db_occfinance_5572Entities ctx = new db_occfinance_5572Entities();
550 Q_settings QSetting = new Q_settings();
551 try
552 {
553 if (messagelist != null && messagelist.Count() > 0)
554 {
555 Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(System.Configuration.ConfigurationManager.AppSettings["MANDRILLSMTP_PASSWORD"], false);
556 int i = 0;
557 foreach (var objMSG in messagelist)
558 {
559 var results = mandrillApi.SendMessage(objMSG.MandrillMSG);
560 if (results != null && results.Count() > 0)
561 {
562 if (results[0].Status == EmailResultStatus.Sent || results[0].Status == EmailResultStatus.Queued || results[0].Status == EmailResultStatus.Scheduled)
563 {
564
565 try
566 {
567 if (objMSG.financeid > 0 && objMSG.IsAppContact == false)
568 {
569 string tName = objMSG.TemplateName ?? "";
570 Q_Application _qA = new Q_Application();
571 //int _noteid = _qA.getNoteID();
572 tblnote _note = new tblnote();
573 //_note.noteid = _noteid;
574 _note.financeid = objMSG.financeid;
575 _note.contact = objMSG.contactId;
576 _note.note = "Email template (" + tName + ") sent to client on (" + DateTime.Now.ToString("dd/MM/yyyy") + ") at (" + DateTime.Now.ToString("HH:mm") + ")"; //objMSG.notemsg;
577 _note.created = System.DateTime.Now;
578 _note.UserId = loggedinuserid;
579 ctx.tblnotes.Add(_note);
580 ctx.SaveChanges();
581
582 // added on 28 01 2015 for followup
583 if (isFollowUp)
584 {
585 // Update Followupdate 2 days from current date when status is Remortgage********************************************
586 if (objMSG.Status == 2)
587 {
588 tblfinance finance = ctx.tblfinances.Where(x => x.financeid == objMSG.financeid).FirstOrDefault();
589 //update finance.
590 if (finance != null)
591 {
592 finance.followup = Occfinance.Helpers.Helper.GetFollowUp(DateTime.Now.AddDays(2).ToString("dd/MM/yyyy"), (DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second).ToString());
593 }
594 ctx.SaveChanges();
595 }
596 //*****************************************************************************************
597 }
598 }
599 }
600 catch
601 {
602 }
603 if (i == 0)
604 _status = true;
605 var email = "";
606 if (objMSG.MandrillMSG.to != null && objMSG.MandrillMSG.to.Count() > 0)
607 email = objMSG.MandrillMSG.to.ToList()[0].email;
608
609 // Add Into the track Table with sent status
610 QSetting.EmailTrackingAdd(loggedinuserid, objMSG.contactId, email, objMSG.MandrillMSG.html, objMSG.IsAppContact, loggedinuserid, "", "", "", false, "", 0, "", "", "", 0, false, 2);
611
612
613 }
614 }
615 i++;
616 }
617 }
618
619 }
620 catch
621 {
622 }
623 return _status;
624 }
625 public static bool SendMailViaManDRILLForBulkEmail(List<ManDRILLModel> messagelist, int loggedinuserid, bool isFollowUp = false)
626 {
627 bool _status = false;
628 db_occfinance_5572Entities ctx = new db_occfinance_5572Entities();
629 Q_settings QSetting = new Q_settings();
630 try
631 {
632
633 if (messagelist != null && messagelist.Any())
634 {
635 // Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(System.Configuration.ConfigurationManager.AppSettings["MANDRILLSMTP_PASSWORD"], false);
636 int i = 0;
637 foreach (var objMSG in messagelist)
638 {
639 //var results = mandrillApi.SendMessage(objMSG.MandrillMSG);
640 //if (results != null && results.Count() > 0)
641 //{
642 //if (results[0].Status == EmailResultStatus.Sent || results[0].Status == EmailResultStatus.Queued || results[0].Status == EmailResultStatus.Scheduled)
643 //{
644 //try
645 //{
646 //if (objMSG.financeid > 0 && objMSG.IsAppContact == false)
647 //{
648 // string tName = objMSG.TemplateName ?? "";
649 // Q_Application _qA = new Q_Application();
650 // //int _noteid = _qA.getNoteID();
651 // tblnote _note = new tblnote();
652 // //_note.noteid = _noteid;
653 // _note.financeid = objMSG.financeid;
654 // _note.contact = objMSG.contactId;
655 // _note.note = "Email template (" + tName + ") sent to client on (" + DateTime.Now.ToString("dd/MM/yyyy") + ") at (" + DateTime.Now.ToString("HH:mm") + ")"; //objMSG.notemsg;
656 // _note.created = System.DateTime.Now;
657 // _note.UserId = loggedinuserid;
658 // ctx.tblnotes.Add(_note);
659 // ctx.SaveChanges();
660
661 // // added on 28 01 2015 for followup
662 // if (isFollowUp)
663 // {
664 // // Update Followupdate 2 days from current date when status is Remortgage********************************************
665 // if (objMSG.Status == 2)
666 // {
667 // tblfinance finance = ctx.tblfinances.Where(x => x.financeid == objMSG.financeid).FirstOrDefault();
668 // //update finance.
669 // if (finance != null)
670 // {
671 // finance.followup = Occfinance.Helpers.Helper.GetFollowUp(DateTime.Now.AddDays(2).ToString("dd/MM/yyyy"), (DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second).ToString());
672 // }
673 // ctx.SaveChanges();
674 // }
675 // //*****************************************************************************************
676 // }
677 //}
678 // }
679 // catch
680 //{
681 // }
682 //if (i == 0)
683 //_status = true;
684 var email = "";
685 if (objMSG.MandrillMSG.to != null && objMSG.MandrillMSG.to.Count() > 0)
686 email = objMSG.MandrillMSG.to.ToList()[0].email;
687
688 // Add Into the track Table with pending status
689 QSetting.EmailTrackingAdd(loggedinuserid, objMSG.contactId, email, objMSG.MandrillMSG.html, objMSG.IsAppContact, loggedinuserid, objMSG.MandrillMSG.from_email, objMSG.MandrillMSG.from_name, objMSG.MandrillMSG.subject, objMSG.MandrillMSG.inline_css, objMSG.MandrillMSG.signing_domain, objMSG.financeid, objMSG.mailcontent, objMSG.notemsg, objMSG.TemplateName, objMSG.Status, isFollowUp, 1, objMSG.MandrillMSG.to);
690 _status = true;
691
692
693 // }
694 // }
695 //i++;
696 }
697
698
699 }
700
701 }
702 catch
703 {
704 _status = false;
705 }
706 return _status;
707 }
708
709
710 #region [Unsubscribe Email]
711
712 /// <summary>
713 /// Unsubscribed email for a contact
714 /// </summary>
715 /// <param name="contactId">contact id</param>
716 /// <param name="Type">Insert -1, Delete -2</param>
717 /// <returns></returns>
718 public static int UnsubscribeEmail(int contactId, int type)
719 {
720 int result = 0;
721 SqlParameter[] Param = new SqlParameter[2];
722 Param[0] = new SqlParameter("@ContactId", contactId);
723 Param[1] = new SqlParameter("@Type", type);
724 DataTable dt = SqlHelper.ExecuteDatatable(CommandType.StoredProcedure, "proc_InsertOrDeleteUnsubscribedListDetails", Param);
725 result = Convert.ToInt32(dt.Rows[0][0]);
726 return result;
727 }
728
729 #endregion [Unsubscribe Email]
730 #region[Encrypt and Decrypt]
731 const string passphrase = "password";
732 public static string EncryptData(string Message)
733 {
734
735 byte[] Results;
736 System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
737 MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();
738 byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(passphrase));
739 TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider();
740 TDESAlgorithm.Key = TDESKey;
741 TDESAlgorithm.Mode = CipherMode.ECB;
742 TDESAlgorithm.Padding = PaddingMode.PKCS7;
743 byte[] DataToEncrypt = UTF8.GetBytes(Message);
744 try
745 {
746 ICryptoTransform Encryptor = TDESAlgorithm.CreateEncryptor();
747 Results = Encryptor.TransformFinalBlock(DataToEncrypt, 0, DataToEncrypt.Length);
748 }
749 finally
750 {
751 TDESAlgorithm.Clear();
752 HashProvider.Clear();
753 }
754 return Convert.ToBase64String(Results);
755 }
756 public static string DecryptString(string Message)
757 {
758
759 byte[] Results;
760 System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
761 MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();
762 byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(passphrase));
763 TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider();
764 TDESAlgorithm.Key = TDESKey;
765 TDESAlgorithm.Mode = CipherMode.ECB;
766 TDESAlgorithm.Padding = PaddingMode.PKCS7;
767 byte[] DataToDecrypt = Convert.FromBase64String(Message);
768 try
769 {
770 ICryptoTransform Decryptor = TDESAlgorithm.CreateDecryptor();
771 Results = Decryptor.TransformFinalBlock(DataToDecrypt, 0, DataToDecrypt.Length);
772 }
773 finally
774 {
775 TDESAlgorithm.Clear();
776 HashProvider.Clear();
777 }
778 return UTF8.GetString(Results);
779 }
780 #endregion[Encrypt and Decrypt]
781
782 }
783
784using System;
785using System.Collections.Generic;
786using System.Configuration;
787using System.Data;
788using System.Data.SqlClient;
789using System.Reflection;
790using System.Runtime.InteropServices;
791using System.Transactions;
792using System.Xml;
793
794public sealed class SqlHelper
795{
796 private SqlHelper()
797 {
798 }
799
800 public static SqlDataReader ExecuteReaderNext(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
801 {
802 SqlConnection connection = null;
803 SqlDataReader csReader;
804 try
805 {
806 connection = new SqlConnection(ConnectionString());
807 connection.Open();
808 csReader = ExecuteReader(connection, null, commandType, commandText, commandParameters, SqlConnectionOwnership.External);
809 }
810 catch
811 {
812 if (connection != null)
813 {
814 connection.Close();
815 }
816 throw;
817 }
818 return csReader;
819 }
820
821 private static void AssignParameterValues(SqlParameter[] commandParameters, object[] parameterValues)
822 {
823 if ((commandParameters != null) && (parameterValues != null))
824 {
825 if (commandParameters.Length != parameterValues.Length)
826 {
827 throw new ArgumentException("Parameter count does not match Parameter Value count.");
828 }
829 int i = 0;
830 int j = commandParameters.Length;
831 while (i < j)
832 {
833 if (parameterValues[i] is IDbDataParameter)
834 {
835 IDbDataParameter paramInstance = (IDbDataParameter) parameterValues[i];
836 if (paramInstance.Value == null)
837 {
838 commandParameters[i].Value = DBNull.Value;
839 }
840 else
841 {
842 commandParameters[i].Value = paramInstance.Value;
843 }
844 }
845 else if (parameterValues[i] == null)
846 {
847 commandParameters[i].Value = DBNull.Value;
848 }
849 else
850 {
851 commandParameters[i].Value = parameterValues[i];
852 }
853 i++;
854 }
855 }
856 }
857
858 private static void AssignParameterValues(SqlParameter[] commandParameters, DataRow dataRow)
859 {
860 if ((commandParameters != null) && (dataRow != null))
861 {
862 int i = 0;
863 foreach (SqlParameter commandParameter in commandParameters)
864 {
865 if ((commandParameter.ParameterName == null) || (commandParameter.ParameterName.Length <= 1))
866 {
867 throw new Exception(string.Format("Please provide a valid parameter name on the parameter #{0}, the ParameterName property has the following value: '{1}'.", i, commandParameter.ParameterName));
868 }
869 if (dataRow.Table.Columns.IndexOf(commandParameter.ParameterName.Substring(1)) != -1)
870 {
871 commandParameter.Value = dataRow[commandParameter.ParameterName.Substring(1)];
872 }
873 i++;
874 }
875 }
876 }
877
878 private static void AttachParameters(SqlCommand command, SqlParameter[] commandParameters)
879 {
880 if (command == null)
881 {
882 throw new ArgumentNullException("command");
883 }
884 if (commandParameters != null)
885 {
886 foreach (SqlParameter p in commandParameters)
887 {
888 if (p != null)
889 {
890 if (((p.Direction == ParameterDirection.InputOutput) || (p.Direction == ParameterDirection.Input)) && (p.Value == null))
891 {
892 p.Value = DBNull.Value;
893 }
894 command.Parameters.Add(p);
895 }
896 }
897 }
898 }
899
900 public static string ConnectionString()
901 {
902 string strConnection = string.Empty;
903 strConnection = ConfigurationManager.ConnectionStrings["ConString1"].ToString();
904 if ((strConnection == null) || (strConnection.Length == 0))
905 {
906 throw new ArgumentNullException("strConnection");
907 }
908 return strConnection;
909 }
910
911 /********************************************************************
912 * Code Updatd : 24/01/2015
913 *
914 * Description : Query using dataadapter added for better performance
915 *
916 * ******************************************************************/
917
918 public static DataSet ExecuteDataset(string commandtext, SqlParameter[] param)
919 {
920 using (SqlConnection connection = new SqlConnection(ConnectionString()))
921 {
922 try
923 {
924 if (connection.State == ConnectionState.Closed)
925 {
926 connection.Open();
927 }
928 SqlCommand cmd = new SqlCommand(commandtext, connection);
929 cmd.Parameters.AddRange(param);
930 cmd.CommandType = CommandType.StoredProcedure;
931 cmd.CommandTimeout = 900;
932 using (SqlDataAdapter da = new SqlDataAdapter(cmd))
933 {
934 DataSet ds = new DataSet();
935 da.Fill(ds);
936 cmd.Parameters.Clear();
937 connection.Close();
938 return ds;
939 }
940 }
941 catch (Exception ex)
942 {
943 throw new ArgumentNullException(ex.Message);
944 }
945 finally
946 {
947 connection.Close();
948 }
949 }
950
951 }
952
953 public static DataSet ExecuteDataset(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
954 {
955 using (SqlConnection connection = new SqlConnection(ConnectionString()))
956 {
957 connection.Open();
958 return ExecuteDataset(connection, commandType, commandText, commandParameters);
959 }
960 }
961
962 public static DataSet ExecuteDataset(SqlConnection connection, CommandType commandType, string commandText)
963 {
964 return ExecuteDataset(connection, commandType, commandText, null);
965 }
966
967
968
969 public static DataSet ExecuteDataset(SqlTransaction transaction, CommandType commandType, string commandText)
970 {
971 return ExecuteDataset(transaction, commandType, commandText, null);
972 }
973
974
975
976 public static DataSet ExecuteDataset(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
977 {
978 if (connection == null)
979 {
980 throw new ArgumentNullException("connection");
981 }
982 TransactionOptions transOptions = new TransactionOptions() { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted };
983 using (new TransactionScope(TransactionScopeOption.Required, transOptions))
984 {
985 SqlCommand cmd = new SqlCommand();
986 cmd.CommandTimeout = 900;
987 bool mustCloseConnection = false;
988 PrepareCommand(cmd, connection, null, commandType, commandText, commandParameters, out mustCloseConnection);
989 using (SqlDataAdapter da = new SqlDataAdapter(cmd))
990 {
991 DataSet ds = new DataSet();
992 da.Fill(ds);
993 cmd.Parameters.Clear();
994 if (mustCloseConnection)
995 {
996 connection.Close();
997 }
998 return ds;
999 }
1000 }
1001 }
1002
1003 public static DataSet ExecuteDataset(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1004 {
1005 if (transaction == null)
1006 {
1007 throw new ArgumentNullException("transaction");
1008 }
1009 if ((transaction != null) && (transaction.Connection == null))
1010 {
1011 throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
1012 }
1013
1014 SqlCommand cmd = new SqlCommand();
1015 bool mustCloseConnection = false;
1016 PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
1017 using (SqlDataAdapter da = new SqlDataAdapter(cmd))
1018 {
1019 DataSet ds = new DataSet();
1020 da.Fill(ds);
1021 cmd.Parameters.Clear();
1022 return ds;
1023 }
1024 }
1025
1026 public static DataTable ExecuteDatatable(CommandType commandType, string commandText)
1027 {
1028 return ExecuteDatatable(commandType, commandText, null);
1029 }
1030
1031
1032
1033 public static DataTable ExecuteDatatable(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1034 {
1035 using (SqlConnection connection = new SqlConnection(ConnectionString()))
1036 {
1037 connection.Open();
1038 return ExecuteDatatable(connection, commandType, commandText, commandParameters);
1039 }
1040 }
1041
1042 public static DataTable ExecuteDatatable(SqlConnection connection, CommandType commandType, string commandText)
1043 {
1044 return ExecuteDatatable(connection, commandType, commandText, null);
1045 }
1046
1047
1048
1049 public static DataTable ExecuteDatatable(SqlTransaction transaction, CommandType commandType, string commandText)
1050 {
1051 return ExecuteDatatable(transaction, commandType, commandText, null);
1052 }
1053
1054
1055
1056 public static DataTable ExecuteDatatable(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1057 {
1058
1059 if (connection == null)
1060 {
1061 throw new ArgumentNullException("connection");
1062 }
1063
1064 TransactionOptions transOptions = new TransactionOptions() { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted };
1065 using (new TransactionScope(TransactionScopeOption.Required, transOptions))
1066 {
1067
1068 SqlCommand cmd = new SqlCommand();
1069 bool mustCloseConnection = false;
1070 PrepareCommand(cmd, connection, null, commandType, commandText, commandParameters, out mustCloseConnection);
1071 using (SqlDataAdapter da = new SqlDataAdapter(cmd))
1072 {
1073 DataTable dt = new DataTable();
1074 da.Fill(dt);
1075 cmd.Parameters.Clear();
1076 if (mustCloseConnection)
1077 {
1078 connection.Close();
1079 }
1080 return dt;
1081 }
1082 }
1083 }
1084
1085 public static DataTable ExecuteDatatable(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1086 {
1087 if (transaction == null)
1088 {
1089 throw new ArgumentNullException("transaction");
1090 }
1091 if ((transaction != null) && (transaction.Connection == null))
1092 {
1093 throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
1094 }
1095
1096 SqlCommand cmd = new SqlCommand();
1097 bool mustCloseConnection = false;
1098 PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
1099 using (SqlDataAdapter da = new SqlDataAdapter(cmd))
1100 {
1101 DataTable dt = new DataTable();
1102 da.Fill(dt);
1103 cmd.Parameters.Clear();
1104 return dt;
1105 }
1106 }
1107
1108
1109 public static int ExecuteNonQuery(CommandType commandType, string commandText)
1110 {
1111 return ExecuteNonQuery(commandType, commandText, null);
1112 }
1113
1114
1115
1116 public static int ExecuteNonQuery(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1117
1118 {
1119 using (SqlConnection connection = new SqlConnection(ConnectionString()))
1120 {
1121 connection.Open();
1122 return ExecuteNonQuery(connection, commandType, commandText, commandParameters);
1123 }
1124 }
1125
1126 public static int ExecuteNonQueryWithTransaction(CommandType commandType, string commandText, SqlTransaction tran, SqlConnection connection, params SqlParameter[] commandParameters)
1127 {
1128
1129 if (connection == null)
1130 {
1131 throw new ArgumentNullException("connection");
1132 }
1133 SqlCommand cmd = new SqlCommand();
1134 cmd.Transaction = tran;
1135 bool mustCloseConnection = false;
1136 PrepareCommand(cmd, connection, null, commandType, commandText, commandParameters, out mustCloseConnection);
1137 int retval = 0;
1138 try
1139 {
1140 cmd.CommandTimeout = 0x2710;
1141 retval = cmd.ExecuteNonQuery();
1142 }
1143 catch (Exception)
1144 {
1145 }
1146 finally
1147 {
1148 cmd.Parameters.Clear();
1149 if (mustCloseConnection)
1150 {
1151 connection.Close();
1152 }
1153 }
1154 return retval;
1155
1156 }
1157
1158
1159 public static int ExecuteNonQuery(SqlConnection connection, CommandType commandType, string commandText)
1160 {
1161 return ExecuteNonQuery(connection, commandType, commandText, null);
1162 }
1163
1164 public static int ExecuteNonQuery(SqlTransaction transaction, CommandType commandType, string commandText)
1165 {
1166 return ExecuteNonQuery(transaction, commandType, commandText, null);
1167 }
1168
1169 public static int ExecuteNonQuery(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1170 {
1171 if (connection == null)
1172 {
1173 throw new ArgumentNullException("connection");
1174 }
1175 SqlCommand cmd = new SqlCommand();
1176 bool mustCloseConnection = false;
1177 PrepareCommand(cmd, connection, null, commandType, commandText, commandParameters, out mustCloseConnection);
1178 int retval = 0;
1179 try
1180 {
1181 cmd.CommandTimeout = 0x2710;
1182 retval = cmd.ExecuteNonQuery();
1183 }
1184 catch (Exception ex)
1185 {
1186 }
1187 finally
1188 {
1189 cmd.Parameters.Clear();
1190 if (mustCloseConnection)
1191 {
1192 connection.Close();
1193 }
1194 }
1195 return retval;
1196 }
1197
1198
1199
1200 public static int ExecuteNonQuery(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1201 {
1202 if (transaction == null)
1203 {
1204 throw new ArgumentNullException("transaction");
1205 }
1206 if ((transaction != null) && (transaction.Connection == null))
1207 {
1208 throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
1209 }
1210 SqlCommand cmd = new SqlCommand();
1211 bool mustCloseConnection = false;
1212 PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
1213 int retval = cmd.ExecuteNonQuery();
1214 cmd.Parameters.Clear();
1215 return retval;
1216 }
1217
1218
1219
1220 public static SqlDataReader ExecuteReader(CommandType commandType, string commandText)
1221 {
1222 return ExecuteReader(commandType, commandText, null);
1223 }
1224
1225
1226
1227 public static SqlDataReader ExecuteReader(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1228 {
1229 SqlConnection connection = null;
1230 SqlDataReader csReader;
1231 try
1232 {
1233 connection = new SqlConnection(ConnectionString());
1234 connection.Open();
1235 csReader = ExecuteReader(connection, null, commandType, commandText, commandParameters, SqlConnectionOwnership.Internal);
1236 }
1237 catch
1238 {
1239 if (connection != null)
1240 {
1241 connection.Close();
1242 }
1243 throw;
1244 }
1245 return csReader;
1246 }
1247
1248 public static SqlDataReader ExecuteReader(SqlConnection connection, CommandType commandType, string commandText)
1249 {
1250 return ExecuteReader(connection, commandType, commandText, null);
1251 }
1252
1253
1254
1255 public static SqlDataReader ExecuteReader(SqlTransaction transaction, CommandType commandType, string commandText)
1256 {
1257 return ExecuteReader(transaction, commandType, commandText, null);
1258 }
1259
1260
1261
1262 public static SqlDataReader ExecuteReader(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1263 {
1264 return ExecuteReader(connection, null, commandType, commandText, commandParameters, SqlConnectionOwnership.External);
1265 }
1266
1267 public static SqlDataReader ExecuteReader(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1268 {
1269 if (transaction == null)
1270 {
1271 throw new ArgumentNullException("transaction");
1272 }
1273 if ((transaction != null) && (transaction.Connection == null))
1274 {
1275 throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
1276 }
1277 return ExecuteReader(transaction.Connection, transaction, commandType, commandText, commandParameters, SqlConnectionOwnership.External);
1278 }
1279
1280 private static SqlDataReader ExecuteReader(SqlConnection connection, SqlTransaction transaction, CommandType commandType, string commandText, SqlParameter[] commandParameters, SqlConnectionOwnership connectionOwnership)
1281 {
1282 SqlDataReader csReader;
1283 if (connection == null)
1284 {
1285 throw new ArgumentNullException("connection");
1286 }
1287 bool mustCloseConnection = false;
1288 SqlCommand cmd = new SqlCommand();
1289 cmd.CommandTimeout = 0;
1290 try
1291 {
1292 SqlDataReader dataReader;
1293 PrepareCommand(cmd, connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
1294 if (connectionOwnership == SqlConnectionOwnership.External)
1295 {
1296 dataReader = cmd.ExecuteReader();
1297 }
1298 else
1299 {
1300 dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
1301 }
1302 bool canClear = true;
1303 foreach (SqlParameter commandParameter in cmd.Parameters)
1304 {
1305 if (commandParameter.Direction != ParameterDirection.Input)
1306 {
1307 canClear = false;
1308 }
1309 }
1310 if (canClear)
1311 {
1312 cmd.Parameters.Clear();
1313 }
1314 csReader = dataReader;
1315 }
1316 catch
1317 {
1318 if (mustCloseConnection)
1319 {
1320 connection.Close();
1321 }
1322 throw;
1323 }
1324 return csReader;
1325 }
1326
1327
1328
1329
1330
1331 public static object ExecuteScalar(CommandType commandType, string commandText)
1332 {
1333 return ExecuteScalar(commandType, commandText, null);
1334 }
1335
1336
1337
1338 public static object ExecuteScalar(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1339 {
1340 using (SqlConnection connection = new SqlConnection(ConnectionString()))
1341 {
1342 connection.Open();
1343 return ExecuteScalar(connection, commandType, commandText, commandParameters);
1344 }
1345 }
1346
1347 public static object ExecuteScalar(SqlConnection connection, CommandType commandType, string commandText)
1348 {
1349 return ExecuteScalar(connection, commandType, commandText, null);
1350 }
1351
1352
1353
1354 public static object ExecuteScalar(SqlTransaction transaction, CommandType commandType, string commandText)
1355 {
1356 return ExecuteScalar(transaction, commandType, commandText, null);
1357 }
1358
1359
1360
1361 public static object ExecuteScalar(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1362 {
1363 if (connection == null)
1364 {
1365 throw new ArgumentNullException("connection");
1366 }
1367 SqlCommand cmd = new SqlCommand();
1368 bool mustCloseConnection = false;
1369 PrepareCommand(cmd, connection, null, commandType, commandText, commandParameters, out mustCloseConnection);
1370 object retval = cmd.ExecuteScalar();
1371 cmd.Parameters.Clear();
1372 if (mustCloseConnection)
1373 {
1374 connection.Close();
1375 }
1376 return retval;
1377 }
1378
1379 public static object ExecuteScalar(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1380 {
1381 if (transaction == null)
1382 {
1383 throw new ArgumentNullException("transaction");
1384 }
1385 if ((transaction != null) && (transaction.Connection == null))
1386 {
1387 throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
1388 }
1389 SqlCommand cmd = new SqlCommand();
1390 bool mustCloseConnection = false;
1391 PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
1392 object retval = cmd.ExecuteScalar();
1393 cmd.Parameters.Clear();
1394 return retval;
1395 }
1396
1397
1398
1399 public static XmlReader ExecuteXmlReader(SqlConnection connection, CommandType commandType, string commandText)
1400 {
1401 return ExecuteXmlReader(connection, commandType, commandText, null);
1402 }
1403
1404
1405
1406 public static XmlReader ExecuteXmlReader(SqlTransaction transaction, CommandType commandType, string commandText)
1407 {
1408 return ExecuteXmlReader(transaction, commandType, commandText, null);
1409 }
1410
1411
1412
1413 public static XmlReader ExecuteXmlReader(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1414 {
1415 XmlReader csReader;
1416 if (connection == null)
1417 {
1418 throw new ArgumentNullException("connection");
1419 }
1420 bool mustCloseConnection = false;
1421 SqlCommand cmd = new SqlCommand();
1422 try
1423 {
1424 PrepareCommand(cmd, connection, null, commandType, commandText, commandParameters, out mustCloseConnection);
1425 XmlReader retval = cmd.ExecuteXmlReader();
1426 cmd.Parameters.Clear();
1427 csReader = retval;
1428 }
1429 catch
1430 {
1431 if (mustCloseConnection)
1432 {
1433 connection.Close();
1434 }
1435 throw;
1436 }
1437 return csReader;
1438 }
1439
1440 public static XmlReader ExecuteXmlReader(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
1441 {
1442 if (transaction == null)
1443 {
1444 throw new ArgumentNullException("transaction");
1445 }
1446 if ((transaction != null) && (transaction.Connection == null))
1447 {
1448 throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
1449 }
1450 SqlCommand cmd = new SqlCommand();
1451 bool mustCloseConnection = false;
1452 PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
1453 XmlReader retval = cmd.ExecuteXmlReader();
1454 cmd.Parameters.Clear();
1455 return retval;
1456 }
1457
1458
1459
1460 public static void FillDataset(CommandType commandType, string commandText, DataSet dataSet, string[] tableNames)
1461 {
1462 if (dataSet == null)
1463 {
1464 throw new ArgumentNullException("dataSet");
1465 }
1466 using (SqlConnection connection = new SqlConnection(ConnectionString()))
1467 {
1468 connection.Open();
1469 FillDataset(connection, commandType, commandText, dataSet, tableNames);
1470 }
1471 }
1472
1473
1474
1475 public static void FillDataset(CommandType commandType, string commandText, DataSet dataSet, string[] tableNames, params SqlParameter[] commandParameters)
1476 {
1477 if (dataSet == null)
1478 {
1479 throw new ArgumentNullException("dataSet");
1480 }
1481 using (SqlConnection connection = new SqlConnection(ConnectionString()))
1482 {
1483 connection.Open();
1484 FillDataset(connection, commandType, commandText, dataSet, tableNames, commandParameters);
1485 }
1486 }
1487
1488 public static void FillDataset(SqlConnection connection, CommandType commandType, string commandText, DataSet dataSet, string[] tableNames)
1489 {
1490 FillDataset(connection, commandType, commandText, dataSet, tableNames, null);
1491 }
1492
1493
1494
1495 public static void FillDataset(SqlTransaction transaction, CommandType commandType, string commandText, DataSet dataSet, string[] tableNames)
1496 {
1497 FillDataset(transaction, commandType, commandText, dataSet, tableNames, null);
1498 }
1499
1500
1501
1502 public static void FillDataset(SqlConnection connection, CommandType commandType, string commandText, DataSet dataSet, string[] tableNames, params SqlParameter[] commandParameters)
1503 {
1504 FillDataset(connection, null, commandType, commandText, dataSet, tableNames, commandParameters);
1505 }
1506
1507 public static void FillDataset(SqlTransaction transaction, CommandType commandType, string commandText, DataSet dataSet, string[] tableNames, params SqlParameter[] commandParameters)
1508 {
1509 FillDataset(transaction.Connection, transaction, commandType, commandText, dataSet, tableNames, commandParameters);
1510 }
1511
1512 private static void FillDataset(SqlConnection connection, SqlTransaction transaction, CommandType commandType, string commandText, DataSet dataSet, string[] tableNames, params SqlParameter[] commandParameters)
1513 {
1514 if (connection == null)
1515 {
1516 throw new ArgumentNullException("connection");
1517 }
1518 if (dataSet == null)
1519 {
1520 throw new ArgumentNullException("dataSet");
1521 }
1522 SqlCommand command = new SqlCommand();
1523 bool mustCloseConnection = false;
1524 PrepareCommand(command, connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
1525 using (SqlDataAdapter dataAdapter = new SqlDataAdapter(command))
1526 {
1527 if ((tableNames != null) && (tableNames.Length > 0))
1528 {
1529 string tableName = "Table";
1530 for (int index = 0; index < tableNames.Length; index++)
1531 {
1532 if ((tableNames[index] == null) || (tableNames[index].Length == 0))
1533 {
1534 throw new ArgumentException("The tableNames parameter must contain a list of tables, a value was provided as null or empty string.", "tableNames");
1535 }
1536 dataAdapter.TableMappings.Add(tableName, tableNames[index]);
1537 tableName = tableName + ((index + 1)).ToString();
1538 }
1539 }
1540 dataAdapter.Fill(dataSet);
1541 command.Parameters.Clear();
1542 }
1543 if (mustCloseConnection)
1544 {
1545 connection.Close();
1546 }
1547 }
1548
1549 private static void PrepareCommand(SqlCommand command, SqlConnection connection, SqlTransaction transaction, CommandType commandType, string commandText, SqlParameter[] commandParameters, out bool mustCloseConnection)
1550 {
1551 if (command == null)
1552 {
1553 throw new ArgumentNullException("command");
1554 }
1555 if ((commandText == null) || (commandText.Length == 0))
1556 {
1557 throw new ArgumentNullException("commandText");
1558 }
1559 if (connection.State != ConnectionState.Open)
1560 {
1561 mustCloseConnection = true;
1562 connection.Open();
1563 }
1564 else
1565 {
1566 mustCloseConnection = false;
1567 }
1568 command.Connection = connection;
1569 command.CommandText = commandText;
1570 if (transaction != null)
1571 {
1572 if (transaction.Connection == null)
1573 {
1574 throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
1575 }
1576 command.Transaction = transaction;
1577 }
1578 command.CommandType = commandType;
1579 if (commandParameters != null)
1580 {
1581 AttachParameters(command, commandParameters);
1582 }
1583 }
1584
1585 public static void UpdateDataset(SqlCommand insertCommand, SqlCommand deleteCommand, SqlCommand updateCommand, DataSet dataSet, string tableName)
1586 {
1587 if (insertCommand == null)
1588 {
1589 throw new ArgumentNullException("insertCommand");
1590 }
1591 if (deleteCommand == null)
1592 {
1593 throw new ArgumentNullException("deleteCommand");
1594 }
1595 if (updateCommand == null)
1596 {
1597 throw new ArgumentNullException("updateCommand");
1598 }
1599 if ((tableName == null) || (tableName.Length == 0))
1600 {
1601 throw new ArgumentNullException("tableName");
1602 }
1603 using (SqlDataAdapter dataAdapter = new SqlDataAdapter())
1604 {
1605 dataAdapter.UpdateCommand = updateCommand;
1606 dataAdapter.InsertCommand = insertCommand;
1607 dataAdapter.DeleteCommand = deleteCommand;
1608 dataAdapter.Update(dataSet, tableName);
1609 dataSet.AcceptChanges();
1610 }
1611 }
1612
1613 private enum SqlConnectionOwnership
1614 {
1615 Internal,
1616 External
1617 }
1618
1619
1620
1621
1622 /*****************************************************
1623 DataTable helper for MortgageFactFind
1624 Added On : 31/01/2015
1625 Ref :http://www.mroma.net/blog/c-helper-functions-to-map-a-datatable-or-datarow-to-a-class-object/
1626 ******************************************************/
1627
1628 // function that set the given object from the given data row
1629 public static void SetItemFromRow<T>(T item, DataRow row)
1630 where T : new()
1631 {
1632 // go through each column
1633 foreach (DataColumn c in row.Table.Columns)
1634 {
1635 // find the property for the column
1636 PropertyInfo p = item.GetType().GetProperty(c.ColumnName);
1637
1638 // if exists, set the value
1639 if (p != null && row[c] != DBNull.Value)
1640 {
1641 p.SetValue(item, row[c], null);
1642 }
1643 else if (c.DataType.Name == "DateTime")
1644 {
1645 p.SetValue(item, null, null);
1646 }
1647
1648 }
1649 }
1650
1651 // function that creates an object from the given data row
1652 public static T CreateItemFromRow<T>(DataRow row)
1653 where T : new()
1654 {
1655 // create a new object
1656 T item = new T();
1657
1658 // set the item
1659 SetItemFromRow(item, row);
1660
1661 // return
1662 return item;
1663 }
1664
1665
1666 // function that creates a list of an object from the given data table other than fact find
1667 public static List<T> CreateListFromTable<T>(DataTable tbl)
1668 where T : new()
1669 {
1670 // define return list
1671 List<T> lst = new List<T>();
1672
1673 // alocal variable
1674 int count = 0;
1675
1676 // go through each row
1677 foreach (DataRow r in tbl.Rows)
1678 {
1679 // add to the list
1680 lst.Add(CreateItemFromRow<T>(r));
1681 count++;
1682 }
1683
1684 // return the list
1685 return lst;
1686 }
1687
1688
1689
1690}
1691
1692
1693 public class TiledDashboard
1694 {
1695 db_occfinance_5572Entities dbContext = new db_occfinance_5572Entities();
1696
1697 /// <summary>
1698 /// Get tiled dashboard details
1699 /// </summary>
1700 /// <param name="loggedInUserId"></param>
1701 /// <param name="loggedInUserAccountId"></param>
1702 /// <returns></returns>
1703
1704 // For Admin DashBoard
1705 public TiledDashboardModel GetTiledDashboardDataForAdmin(int loggedInUserId, int loggedInUserAccountId, int userType)
1706 {
1707 TiledDashboardModel objTiledDashboardModel = new TiledDashboardModel();
1708
1709 try
1710 {
1711 SqlParameter[] Param = new SqlParameter[5];
1712 Param[0] = new SqlParameter("@LoggedInUserId", loggedInUserId);
1713 Param[1] = new SqlParameter("@LoggedInUserAccountId", loggedInUserAccountId);
1714 Param[2] = new SqlParameter("@productTypeID", loggedInUserAccountId == 880 ? 2 : 1);//2- Life, 1- Mortgage
1715 Param[3] = new SqlParameter("@BrokerId", loggedInUserId);
1716 DataSet dsTiledDashboard = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "MobileGetDashboardDataForLoggedInAccountID", Param);
1717
1718 if (dsTiledDashboard != null)
1719 {
1720
1721 if (userType == 1)
1722 {
1723 #region [Admin Dashboard]
1724
1725 #region [My Ranking]
1726 if (dsTiledDashboard.Tables[0].Rows.Count > 0)
1727 {
1728 objTiledDashboardModel.MyRanking = (from DataRow dr in dsTiledDashboard.Tables[0].Rows
1729 select new MyRanking
1730 {
1731 Ranking = Convert.ToInt32(dr["Ranking"]),
1732 ReportType = Convert.ToString(dr["ReportType"]),
1733 ReportField = Convert.ToString(dr["ReportField"]),
1734 Amount = Convert.ToDecimal(dr["Amount"])
1735 }).ToList();
1736 }
1737 #endregion [My Ranking]
1738
1739 #region [Business Split]
1740 if (dsTiledDashboard.Tables[1].Rows.Count > 0)
1741 {
1742 HttpContext.Current.Session["BusinessByType"] = null;
1743 objTiledDashboardModel.BusinessSplit = DataTableHelper.CreateListFromTableForAll<BusinessReport>(dsTiledDashboard.Tables[1]).ToList();
1744 objTiledDashboardModel.BusinessByType = new List<BusinessByType>();
1745 foreach (var v in objTiledDashboardModel.BusinessSplit)
1746 {
1747 BusinessByType bt = new BusinessByType();
1748 ArrayList arrayListData = new ArrayList();
1749 bt.name = v.typeName;
1750 bt.id = v.typeName;
1751 object[,] _array = new object[,] { { BusinessValue.WrittenCommission.GetEnumDescription(), v.writtenCommission } };
1752 object[,] _array1 = new object[,] { { BusinessValue.IssuedMortgage.GetEnumDescription(), v.issuedMortgage } };
1753 object[,] _array3 = new object[,] { { BusinessValue.WrittenMortgage.GetEnumDescription(), v.writtenMortgage } };
1754 object[,] _array4 = new object[,] { { BusinessValue.IssuedCommission.GetEnumDescription(), v.issuedCommission } };
1755 arrayListData.Add(_array);
1756 arrayListData.Add(_array1);
1757 arrayListData.Add(_array3);
1758 arrayListData.Add(_array4);
1759 bt.data = arrayListData;
1760 objTiledDashboardModel.BusinessByType.Add(bt);
1761 }
1762 HttpContext.Current.Session["BusinessByType"] = objTiledDashboardModel.BusinessByType;
1763 }
1764 #endregion [Business Split]
1765
1766 #region [My Conversion Rate]
1767
1768 if (dsTiledDashboard.Tables[2].Rows.Count > 0)
1769 {
1770 string subPath = System.Configuration.ConfigurationManager.AppSettings["BrokerImages"] ?? "~/Content/BrokerImages/";
1771 objTiledDashboardModel.MyConversionRates = (from DataRow row in dsTiledDashboard.Tables[2].Rows
1772 select new OverAllBrokerSummary
1773 {
1774 BrokerId = Convert.ToInt32(((row["BrokerId"] == DBNull.Value || row["BrokerId"] == null) ? "0" : row["BrokerId"]).ToString()),
1775 BrokerName = ((row["BrokerName"] == DBNull.Value || row["BrokerName"] == null) ? " " : row["BrokerName"]).ToString(),
1776 DetailInfo = ((row["DetailInfo"] == DBNull.Value || row["DetailInfo"] == null) ? " " : row["DetailInfo"]).ToString(),
1777 BrokerImage = subPath + ((row["BrokerImage"] == DBNull.Value || row["BrokerImage"] == null) ? "noimage.jpg" : row["BrokerImage"]).ToString(),
1778 TotalDays = Convert.ToInt32(((row["TotalDays"] == DBNull.Value || row["TotalDays"] == null) ? "0" : row["TotalDays"]).ToString()),
1779 NewLead = Convert.ToInt32(((row["NewLead"] == DBNull.Value || row["NewLead"] == null) ? "0" : row["NewLead"]).ToString()),
1780 Remortgage = Convert.ToInt32(((row["Remortgage"] == DBNull.Value || row["Remortgage"] == null) ? "0" : row["Remortgage"]).ToString()),
1781 CallBack = Convert.ToInt32(((row["CallBack"] == DBNull.Value || row["CallBack"] == null) ? "0" : row["CallBack"]).ToString()),
1782 Meeting = Convert.ToInt32(((row["Meeting"] == DBNull.Value || row["Meeting"] == null) ? "0" : row["Meeting"]).ToString()),
1783 DIP = Convert.ToInt32(((row["DIP"] == DBNull.Value || row["DIP"] == null) ? "0" : row["DIP"]).ToString()),
1784 PreOfferProcessing = Convert.ToInt32(((row["PreOfferProcessing"] == DBNull.Value || row["PreOfferProcessing"] == null) ? "0" : row["PreOfferProcessing"]).ToString()),
1785 PostOfferProcessing = Convert.ToInt32(((row["PostOfferProcessing"] == DBNull.Value || row["PostOfferProcessing"] == null) ? "0" : row["PostOfferProcessing"]).ToString()),
1786 Completed = Convert.ToInt32(((row["Completed"] == DBNull.Value || row["Completed"] == null) ? "0" : row["Completed"]).ToString()),
1787 Prospect = Convert.ToInt32(((row["Prospect"] == DBNull.Value || row["Prospect"] == null) ? "0" : row["Prospect"]).ToString()),
1788 Deleted = Convert.ToInt32(((row["Deleted"] == DBNull.Value || row["Deleted"] == null) ? "0" : row["Deleted"]).ToString()),
1789 Total = Convert.ToInt32(((row["Total"] == DBNull.Value || row["Deleted"] == null) ? "0" : row["Total"]).ToString()),
1790 TotalLife = Convert.ToInt32(((row["TotalLife"] == DBNull.Value || row["TotalLife"] == null) ? "0" : row["TotalLife"]).ToString()),
1791 CompletedLife = Convert.ToInt32(((row["CompletedLife"] == DBNull.Value || row["CompletedLife"] == null) ? "0" : row["CompletedLife"]).ToString()),
1792 DaysPerMortgaeDefault = Convert.ToDecimal(((row["DaysPerMortgaeDefault"] == DBNull.Value || row["DaysPerMortgaeDefault"] == null) ? "0" : row["DaysPerMortgaeDefault"]).ToString()),
1793 LeadToMeetingDefault = Convert.ToDecimal(((row["LeadToMeetingDefault"] == DBNull.Value || row["LeadToMeetingDefault"] == null) ? "0" : row["LeadToMeetingDefault"]).ToString()),
1794 MeetingToDIPDefault = Convert.ToDecimal(((row["MeetingToDIPDefault"] == DBNull.Value || row["MeetingToDIPDefault"] == null) ? "0" : row["MeetingToDIPDefault"]).ToString()),
1795 DIPToAppDefault = Convert.ToDecimal(((row["DIPToAppDefault"] == DBNull.Value || row["DIPToAppDefault"] == null) ? "0" : row["DIPToAppDefault"]).ToString()),
1796 SubmittedToCompletedDefault = Convert.ToDecimal(((row["SubmittedToCompletedDefault"] == DBNull.Value || row["SubmittedToCompletedDefault"] == null) ? "0" : row["SubmittedToCompletedDefault"]).ToString()),
1797 MortgaeToProtectionDefault = Convert.ToDecimal(((row["MortgaeToProtectionDefault"] == DBNull.Value || row["MortgaeToProtectionDefault"] == null) ? "0" : row["MortgaeToProtectionDefault"]).ToString()),
1798
1799
1800 }).ToList()[0];
1801
1802 objTiledDashboardModel.MyConversionRates.DaysPerMortgage = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.TotalDays), 2);
1803 objTiledDashboardModel.MyConversionRates.LeadToMeeting = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.Meeting * 100), 2);
1804 objTiledDashboardModel.MyConversionRates.MeetingToDIP = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.DIP * 100), 2);
1805 objTiledDashboardModel.MyConversionRates.DIPToApp = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.PreOfferProcessing * 100), 2);
1806 objTiledDashboardModel.MyConversionRates.SubmittedToComplete = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.Completed * 100), 2);
1807 objTiledDashboardModel.MyConversionRates.MortgageToProtection = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.CompletedLife * 100), 2);
1808
1809 if (objTiledDashboardModel.MyConversionRates.Total > 0)
1810 {
1811 objTiledDashboardModel.MyConversionRates.DaysPerMortgage = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.TotalDays) / objTiledDashboardModel.MyConversionRates.Total, 2);
1812 }
1813
1814 //Lead to meeting conversion – Total Converted Meeting Leads/ (Available New lead + Total Converted Meeting Leads)
1815
1816 if ((objTiledDashboardModel.MyConversionRates.NewLead) > 0)
1817 objTiledDashboardModel.MyConversionRates.LeadToMeeting = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.Meeting * 100) / (objTiledDashboardModel.MyConversionRates.NewLead), 2);
1818
1819
1820 //Meeting to DIP conversion – Total Converted DIP Leads/ (Total Converted Meeting Leads + Total Converted DIP Leads)
1821 if ((objTiledDashboardModel.MyConversionRates.Meeting) > 0)
1822 objTiledDashboardModel.MyConversionRates.MeetingToDIP = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.DIP * 100) / (objTiledDashboardModel.MyConversionRates.Meeting), 2);
1823
1824
1825 //DIP to app conversion – Total Converted App (Pre Offer Processing)/ (Total Converted DIP Leads + Total Converted App (Pre Offer Processing))
1826 if ((objTiledDashboardModel.MyConversionRates.DIP) > 0)
1827 objTiledDashboardModel.MyConversionRates.DIPToApp = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.PreOfferProcessing * 100) / (objTiledDashboardModel.MyConversionRates.DIP), 2);
1828
1829 if ((objTiledDashboardModel.MyConversionRates.PreOfferProcessing) > 0)
1830 objTiledDashboardModel.MyConversionRates.SubmittedToComplete = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.Completed * 100) / (objTiledDashboardModel.MyConversionRates.PreOfferProcessing), 2);
1831 // Mortgage to protection conversion – Total Converted Post Offer Processing/ (Total Converted App (Pre Offer Processing) + Total Converted Post Offer Processing)
1832 if ((objTiledDashboardModel.MyConversionRates.Completed) > 0)
1833 objTiledDashboardModel.MyConversionRates.MortgageToProtection = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.CompletedLife * 100) / (objTiledDashboardModel.MyConversionRates.Completed), 2);
1834 }
1835 #endregion [My Conversion Rate]
1836
1837 #region [Where My Leads Come From]
1838 if (dsTiledDashboard.Tables[4].Rows.Count > 0)
1839 {
1840 objTiledDashboardModel.WhereMyLeadsComeFrom = (from DataRow row in dsTiledDashboard.Tables[4].Rows
1841 select new DashboardClients
1842 {
1843 clientid = Convert.ToInt32(((row["accountid"] == DBNull.Value || row["accountid"] == null) ? "0" : row["accountid"]).ToString()),
1844 companyname = ((row["companyname"] == DBNull.Value || row["companyname"] == null) ? " " : row["companyname"]).ToString(),
1845 averageLeads = Convert.ToInt32(((row["average"] == DBNull.Value || row["average"] == null) ? "0" : row["average"]).ToString()),
1846 countLeads = Convert.ToInt32(((row["total"] == DBNull.Value || row["total"] == null) ? "0" : row["total"]).ToString()),
1847 thisMonthLeads = Convert.ToInt32(((row["last30days"] == DBNull.Value || row["last30days"] == null) ? "0" : row["last30days"]).ToString()),
1848 lastLeadDate = (row["lastleaddate"] == DBNull.Value || row["lastleaddate"] == null) ? (DateTime?)null : Convert.ToDateTime(row["lastleaddate"]),
1849
1850 }).OrderBy(c => c.companyname).ToList();
1851 }
1852 #endregion [Where My Leads Come From]
1853
1854 #region [Lead Flow]
1855
1856 objTiledDashboardModel.IsSubmit = 0;
1857 // Initially the finance type will be Mortgage
1858 int typeid = SessionHelper.DefaultsettingId > 0 ? SessionHelper.DefaultsettingId : (int)FinanceTypes.Mortgages;
1859 objTiledDashboardModel.SelectedFinanceTypeName = Enum.GetName(typeof(FinanceTypes), typeid);
1860 List<SelectListItem> companyitems = new List<SelectListItem>();
1861 ReportsModel _model = new ReportsModel();
1862 Q_Application QApplication = new Q_Application();
1863 Q_settings QSettings = new Q_settings();
1864
1865 if (SessionHelper.AccountId > 0)
1866 {
1867 int loggedinuser = SessionHelper.UserId;
1868 int accId = SessionHelper.AccountId;
1869 ReportsModel model = null;
1870 model = new ReportsModel(accId, loggedinuser, typeid);
1871 if (model != null && model.BrokerClients != null)
1872 {
1873 model.Brokers = model.BrokerClients.Select(s => new SelectListItem() { Selected = false, Text = s.contactname + "(" + s.countLeads + ")", Value = s.userid.ToString() }).ToList();
1874 }
1875 TimeSpan ts = new TimeSpan(30, 0, 0, 0);
1876 model.DateFrom = DateTime.Today.Date.Subtract(ts).ToString(Helper.ddMMyyyy);
1877 model.JavaScriptDateFrom = DateTime.Today.Date.Subtract(ts).ToString(Helper.yyyyMMdd);
1878 model.DateTo = DateTime.Today.Date.AddDays(1).ToString(Helper.ddMMyyyy);
1879 model.Status = typeid.GetNewLeadStatus();
1880 model.Source = "all";
1881 objTiledDashboardModel.BrokersWithTeams = QSettings.GetBrokersWithTeams(loggedinuser);
1882
1883 //Combo tree data for Client/Branch/Neg
1884
1885 List<SelectListItem> items = new List<SelectListItem>();
1886 Q_Client QClient = new Q_Client();
1887 SelectListItem defaultentry = new SelectListItem();
1888 defaultentry.Text = "select..";
1889 defaultentry.Value = "0";
1890 defaultentry.Selected = true;
1891 List<Clients> cItems = QClient.FindClients(accId, loggedinuser).OrderBy(c => c.companyname).ToList();
1892 items = (from Clients in cItems
1893
1894 select new SelectListItem
1895 {
1896 Text = Clients.companyname + "(" + Clients.countLeads + ")",
1897 Value = Clients.clientid.ToString()
1898 }).ToList();
1899
1900 items.Insert(0, defaultentry);
1901 objTiledDashboardModel.ClientData = items;
1902 //Combo tree data for Client/Branch/Neg
1903
1904 //Finance Type.
1905 List<SelectListItem> financetypeData = new List<SelectListItem>();
1906 List<tblfinancetype> ftitems = QApplication.GetFinanceType();
1907 financetypeData = (from ft in ftitems
1908 select new SelectListItem()
1909 {
1910 Text = ft.type,
1911 Value = ft.financetypeid.ToString(),
1912 Selected = (ft.financetypeid == typeid)
1913
1914 }).ToList();
1915
1916 objTiledDashboardModel.financetypeData = financetypeData;
1917
1918 //Code for Broker (Company)
1919
1920 var bcompanyitems = (from names in model.BrokerClients
1921 select new
1922 {
1923 companyname = names.companyname,
1924 clientid = names.clientid
1925 }).Distinct().ToList();
1926 companyitems = bcompanyitems.Select(r => new SelectListItem() { Value = r.companyname, Text = r.companyname }).ToList();
1927 objTiledDashboardModel.CompanyData = companyitems;
1928 objTiledDashboardModel.BrokderBag = model.BrokerClients;
1929
1930
1931 StringBuilder queryCondition = new StringBuilder();
1932 StringBuilder queryCondition1 = new StringBuilder();
1933
1934 StringBuilder queryCon = new StringBuilder();
1935 StringBuilder queryCon1 = new StringBuilder();
1936
1937 Q_Application _obj = new Q_Application();
1938 int teamId = 0;
1939 string brokersIds = "";
1940 int _userType = 0;
1941 int _accountId = 0;
1942 _userType = _obj.CheckUserType(loggedinuser, out teamId, out _accountId, out brokersIds);
1943
1944 if (_userType == (int)UserType.Admin && string.IsNullOrWhiteSpace(model.Broker))
1945 {
1946
1947 var brokers = "";
1948 int adminaccId = 0;
1949 if (_obj.IsCreatedAdminUser(accId, loggedinuser, out adminaccId, out brokers))
1950 {
1951 model.Broker = brokers;
1952 }
1953 }
1954 if (_userType == (int)UserType.Manager && string.IsNullOrWhiteSpace(model.Broker))
1955 {
1956 model.Broker = brokersIds;
1957 }
1958 else if (_userType == (int)UserTypes.Broker && string.IsNullOrWhiteSpace(model.Broker))
1959 {
1960 model.Broker = loggedinuser.ToString();
1961 }
1962
1963 #region Create Dynamic Conditions for Agent, Broker reports
1964
1965 if (queryCondition.Length > 0)
1966 {
1967 //queryCondition.Append(string.Format(" and ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
1968 if (_userType == (int)UserType.GeneralUser)
1969 {
1970 queryCondition.Append(string.Format(" and (a.accountid = {0} OR b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
1971 }
1972 else
1973 {
1974 queryCondition.Append(string.Format(" and ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
1975 }
1976
1977 queryCon.Append(string.Format(" and ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) and {1} = 880 ", 6569, accId));
1978
1979 }
1980 else
1981 {
1982 //queryCondition.Append(string.Format(" Where ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
1983 if (_userType == (int)UserType.GeneralUser)
1984 {
1985 queryCondition.Append(string.Format(" Where (a.accountid = {0} OR b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
1986 }
1987 else
1988 {
1989 queryCondition.Append(string.Format(" Where ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
1990 }
1991
1992
1993 queryCon.Append(string.Format(" Where ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) and {1} = 880 ", 6569, accId));
1994
1995 }
1996
1997
1998 if (queryCondition1.Length > 0)
1999 {
2000 //queryCondition1.Append(string.Format(" and ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
2001
2002 if (_userType == (int)UserType.GeneralUser)
2003 {
2004 queryCondition1.Append(string.Format(" and (a.accountid = {0} or tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
2005 }
2006 else
2007 {
2008 queryCondition1.Append(string.Format(" and ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
2009 }
2010
2011
2012 queryCon1.Append(string.Format(" and ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) and {1} = 880 ", 6569, accId));
2013
2014 }
2015 else
2016 {
2017 //queryCondition1.Append(string.Format(" Where ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0}) ", accId));
2018 if (_userType == (int)UserType.GeneralUser)
2019 {
2020 queryCondition1.Append(string.Format(" Where (a.accountid = {0} OR dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0}) ", accId));
2021 }
2022 else
2023 {
2024 queryCondition1.Append(string.Format(" Where ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0}) ", accId));
2025 }
2026
2027
2028 queryCon1.Append(string.Format(" Where ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0}) and {1} = 880 ", 6569, accId));
2029
2030 }
2031
2032
2033 //Filter by AffliateID
2034 if (model.Affliate != 0)
2035 {
2036 if (queryCondition.Length > 0)
2037 {
2038 queryCondition.Append(string.Format(" and c.account ={0} ", model.Affliate));
2039
2040 }
2041 else
2042 {
2043 queryCondition.Append(string.Format(" Where c.account ={0} ", model.Affliate));
2044 }
2045
2046 if (queryCondition1.Length > 0)
2047 {
2048 queryCondition1.Append(string.Format(" and c.account ={0} ", model.Affliate));
2049 }
2050 else
2051 {
2052 queryCondition1.Append(string.Format(" Where c.account ={0} ", model.Affliate));
2053 }
2054 }
2055
2056 //Filter by BrokerID
2057 if (!string.IsNullOrEmpty(model.Broker) && model.Broker != "")
2058 {
2059 if (queryCondition.Length > 0)
2060 {
2061 queryCondition.Append(string.Format(" and c.broker IN ({0}) ", model.Broker));
2062
2063 queryCon.Append(string.Format(" and c.insurancebroker IN ({0}) ", model.Broker));
2064
2065 }
2066 else
2067 {
2068 queryCondition.Append(string.Format(" Where c.broker IN ({0}) ", model.Broker));
2069
2070 queryCon.Append(string.Format(" Where c.insurancebroker IN ({0}) ", model.Broker));
2071
2072 }
2073
2074 if (queryCondition1.Length > 0)
2075 {
2076 queryCondition1.Append(string.Format(" and c.broker IN ({0}) ", model.Broker));
2077
2078
2079 queryCon1.Append(string.Format(" and c.insurancebroker IN ({0}) ", model.Broker));
2080
2081 }
2082 else
2083 {
2084 queryCondition1.Append(string.Format(" Where c.broker IN ({0}) ", model.Broker));
2085
2086
2087 queryCon1.Append(string.Format(" Where c.insurancebroker IN ({0}) ", model.Broker));
2088
2089
2090 }
2091 }
2092
2093 //Filter by Broker ID
2094
2095 if (model.Status != 0)
2096 {
2097 if (queryCondition.Length > 0)
2098 {
2099 queryCondition.Append(string.Format(" and (fs.status = {0} and fs.createdate is not null) ", model.Status));
2100
2101
2102 queryCon.Append(string.Format(" and (fs.status = {0} and fs.createdate is not null ) ", model.Status));
2103
2104 }
2105 else
2106 {
2107 queryCondition.Append(string.Format(" Where (fs.status = {0} and fs.createdate is not null) ", model.Status));
2108
2109
2110 queryCon.Append(string.Format(" Where (fs.status = {0} and fs.createdate is not null) ", model.Status));
2111
2112 }
2113
2114 if (queryCondition1.Length > 0)
2115 {
2116 queryCondition1.Append(string.Format(" and dbo.tblfinance_statusdate.status = {0} ", model.Status));
2117
2118
2119 queryCon1.Append(string.Format(" and dbo.tblfinance_statusdate.status = {0} ", model.Status));
2120
2121 }
2122 else
2123 {
2124 queryCondition1.Append(string.Format(" Where dbo.tblfinance_statusdate.status = {0} ", model.Status));
2125
2126
2127 queryCon1.Append(string.Format(" Where dbo.tblfinance_statusdate.status = {0} ", model.Status));
2128
2129 }
2130 }
2131
2132 //Filter By Source
2133 if (model.Source != "all")
2134 {
2135 if (queryCondition.Length > 0)
2136 {
2137 queryCondition.Append(string.Format(" and c.source = '{0}'", model.Source));
2138
2139
2140 queryCon.Append(string.Format(" and c.source = '{0}'", model.Source));
2141
2142 }
2143 else
2144 {
2145 queryCondition.Append(string.Format(" Where c.source = '{0}'", model.Source));
2146
2147
2148 queryCon.Append(string.Format(" Where c.source = '{0}'", model.Source));
2149
2150 }
2151
2152 if (queryCondition1.Length > 0)
2153 {
2154 queryCondition1.Append(string.Format(" and c.source = '{0}'", model.Source));
2155
2156
2157 queryCon1.Append(string.Format(" and c.source = '{0}'", model.Source));
2158
2159 }
2160 else
2161 {
2162 queryCondition1.Append(string.Format(" Where c.source = '{0}'", model.Source));
2163
2164
2165 queryCon1.Append(string.Format(" Where c.source = '{0}'", model.Source));
2166
2167 }
2168 }
2169
2170 //Filter By DateRange
2171 if (model.DateFrom != null && model.DateTo != null)
2172 {
2173 if (queryCondition1.Length > 0)
2174 {
2175 queryCondition1.Append(string.Format(" and dbo.tblfinance_statusdate.createdate between '{0}' and '{1}' ", model.DateFrom.GetDateString(Helper.ddMMMyyyy), model.DateTo.GetDateString(Helper.ddMMMyyyy)));
2176
2177
2178 queryCon1.Append(string.Format(" and dbo.tblLinkInsuranceHistory.createddate between '{0}' and '{1}' ", model.DateFrom.GetDateString(Helper.ddMMMyyyy), model.DateTo.GetDateString(Helper.ddMMMyyyy)));
2179
2180 }
2181 else
2182 {
2183 queryCondition1.Append(string.Format(" Where dbo.tblfinance_statusdate.createdate between '{0}' and '{1}' ", model.DateFrom.GetDateString(Helper.ddMMMyyyy), model.DateTo.GetDateString(Helper.ddMMMyyyy)));
2184
2185
2186 queryCon1.Append(string.Format(" Where dbo.tblLinkInsuranceHistory.createddate between '{0}' and '{1}' ", model.DateFrom.GetDateString(Helper.ddMMMyyyy), model.DateTo.GetDateString(Helper.ddMMMyyyy)));
2187
2188 }
2189 }
2190
2191 #endregion
2192
2193 #region Create Dynamic Conditions for Status and Product Report
2194
2195 StringBuilder queryStatusReportCondition = new StringBuilder();
2196 StringBuilder queryStatusReportCon = new StringBuilder();
2197 if (queryStatusReportCondition.Length > 0)
2198 {
2199 //queryStatusReportCondition.Append(string.Format(" and ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
2200 if (_userType == (int)UserType.GeneralUser)
2201 {
2202 queryStatusReportCondition.Append(string.Format(" and (a.accountid = {0} OR tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
2203 }
2204 else
2205 {
2206 queryStatusReportCondition.Append(string.Format(" and ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
2207 }
2208
2209 queryStatusReportCon.Append(string.Format(" and ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) and {1} = 880", 6569, accId));
2210
2211 }
2212 else
2213 {
2214 //queryStatusReportCondition.Append(string.Format(" Where ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
2215 if (_userType == (int)UserType.GeneralUser)
2216 {
2217 queryStatusReportCondition.Append(string.Format(" Where (a.accountid = {0} OR tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
2218 }
2219 else
2220 {
2221 queryStatusReportCondition.Append(string.Format(" Where ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
2222
2223 }
2224
2225
2226 queryStatusReportCon.Append(string.Format(" Where ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) and {1} = 880 ", 6569, accId));
2227
2228 }
2229
2230 //Filter By FinanceType
2231
2232 if (queryCondition.Length > 0)
2233 {
2234 queryCondition.Append(string.Format(" and f.type = {0} ", typeid));
2235
2236
2237 queryCon.Append(string.Format(" and f.type = {0} ", typeid));
2238
2239 }
2240 else
2241 {
2242 queryCondition.Append(string.Format(" Where f.type = {0} ", typeid));
2243
2244
2245 queryCon.Append(string.Format(" Where f.type = {0} ", typeid));
2246
2247 }
2248
2249 if (queryCondition1.Length > 0)
2250 {
2251 queryCondition1.Append(string.Format(" and dbo.tblfinance.type = {0} ", typeid));
2252
2253
2254 queryCon1.Append(string.Format(" and dbo.tblfinance.type = {0} ", typeid));
2255
2256 }
2257 else
2258 {
2259 queryCondition1.Append(string.Format(" Where dbo.tblfinance.type = {0} ", typeid));
2260
2261
2262 queryCon1.Append(string.Format(" Where dbo.tblfinance.type = {0} ", typeid));
2263
2264 }
2265
2266
2267
2268 //Filter by AffliateID
2269 if (model.Affliate != 0)
2270 {
2271 if (queryStatusReportCondition.Length > 0)
2272 {
2273 queryStatusReportCondition.Append(string.Format(" and c.account ={0} ", model.Affliate));
2274 }
2275 else
2276 {
2277 queryStatusReportCondition.Append(string.Format(" Where c.account ={0} ", model.Affliate));
2278 }
2279 }
2280
2281 //Filter by BrokerID
2282 if (!string.IsNullOrEmpty(model.Broker) && model.Broker != "")
2283 {
2284 if (queryStatusReportCondition.Length > 0)
2285 {
2286 queryStatusReportCondition.Append(string.Format(" and c.broker IN ({0}) ", model.Broker));
2287
2288
2289 queryStatusReportCon.Append(string.Format(" and c.insurancebroker IN ({0}) ", model.Broker));
2290
2291 }
2292 else
2293 {
2294 queryStatusReportCondition.Append(string.Format(" Where c.broker IN ({0}) ", model.Broker));
2295
2296
2297 queryStatusReportCon.Append(string.Format(" Where c.insurancebroker IN ({0}) ", model.Broker));
2298
2299 }
2300 }
2301
2302 //Filter By Source
2303 if (model.Source != "all")
2304 {
2305 if (queryStatusReportCondition.Length > 0)
2306 {
2307 queryStatusReportCondition.Append(string.Format(" and c.source = '{0}'", model.Source));
2308
2309 queryStatusReportCon.Append(string.Format(" and c.source = '{0}'", model.Source));
2310
2311 }
2312 else
2313 {
2314 queryStatusReportCondition.Append(string.Format(" Where c.source = '{0}'", model.Source));
2315
2316
2317 queryStatusReportCon.Append(string.Format(" Where c.source = '{0}'", model.Source));
2318
2319 }
2320 }
2321
2322 //Filter By DateRange
2323 if (model.DateFrom != null && model.DateTo != null)
2324 {
2325 if (queryStatusReportCondition.Length > 0)
2326 {
2327 queryStatusReportCondition.Append(string.Format(" and fs.createdate between '{0}' and '{1}' ", model.DateFrom.GetDate().Value.ToString("dd/MMM/yyyy"), model.DateTo.GetDate().Value.ToString("dd/MMM/yyyy")));
2328
2329 queryStatusReportCon.Append(string.Format(" and LI.createddate between '{0}' and '{1}' ", model.DateFrom.GetDate().Value.ToString("dd/MMM/yyyy"), model.DateTo.GetDate().Value.ToString("dd/MMM/yyyy")));
2330 }
2331 else
2332 {
2333 queryStatusReportCondition.Append(string.Format(" Where fs.createdate between '{0}' and '{1}' ", model.DateFrom.GetDate().Value.ToString("dd/MMM/yyyy"), model.DateTo.GetDate().Value.ToString("dd/MMM/yyyy")));
2334
2335 queryStatusReportCon.Append(string.Format(" Where LI.createddate between '{0}' and '{1}' ", model.DateFrom.GetDate().Value.ToString("dd/MMM/yyyy"), model.DateTo.GetDate().Value.ToString("dd/MMM/yyyy")));
2336 }
2337 }
2338
2339 //Updated on 4/7/2014 to apply finance type over status report Coomented due to 16-07-2014 due to team heirarchy upload
2340 var _tyfinance = "";
2341 if (queryStatusReportCondition.Length > 0)
2342 {
2343 _tyfinance = " and dbo.tblfinance.type =" + typeid + " ";
2344 }
2345 else
2346 {
2347 _tyfinance = " where dbo.tblfinance.type = " + typeid + " ";
2348 }
2349
2350
2351 string _dateFilter = string.Empty;
2352 if (model.DateFrom != null && model.DateTo != null)
2353 {
2354 _dateFilter = string.Format("where createdate between '{0}' and '{1}' ", model.DateFrom.GetDateString(Helper.ddMMMyyyy), model.DateTo.GetDateString(Helper.ddMMMyyyy));
2355 }
2356
2357 #endregion
2358
2359 List<BrokerLeadTable> bltList = new List<BrokerLeadTable>();
2360 List<AgentLeadTable> altList = new List<AgentLeadTable>();
2361 List<ProductReport> productreportlist = new List<ProductReport>();
2362 List<statusReport> statusReportList = new List<statusReport>();
2363
2364 foreach (BrokerLeadTable blt in QApplication.GetBrokerLeadReportByIds(queryCondition.ToString(), accId, queryCon.ToString(), _dateFilter.ToString()))
2365 {
2366 BrokerLeadTable _BrokerLeadTable = new BrokerLeadTable();
2367 _BrokerLeadTable.Brokerid = blt.Brokerid;
2368 _BrokerLeadTable.BrokerName = blt.BrokerName;
2369 _BrokerLeadTable.LeadPercent = blt.LeadPercent;
2370 _BrokerLeadTable.NoOfLeads = blt.NoOfLeads;
2371 _BrokerLeadTable.OfferQualification = blt.OfferQualification;
2372 bltList.Add(_BrokerLeadTable);
2373 }
2374
2375 foreach (AgentLeadTable alt in QApplication.GetAfflicateLeadReportByIds(queryCondition.ToString(), accId, false, queryCon.ToString(), _dateFilter.ToString()))
2376 {
2377 AgentLeadTable _agentlead = new AgentLeadTable();
2378 _agentlead.AgentId = alt.AgentId;
2379 _agentlead.AgentName = alt.AgentName;
2380 _agentlead.LeadPercent = alt.LeadPercent;
2381 _agentlead.NoOfLeads = alt.NoOfLeads;
2382 _agentlead.OfferQualification = alt.OfferQualification;
2383 altList.Add(_agentlead);
2384 }
2385
2386 foreach (ProductReport pr in QApplication.GetProductReportByIds(queryStatusReportCondition.ToString(), accId, model.DateFrom.GetDate().Value, model.DateTo.GetDate().Value, queryStatusReportCon.ToString()))
2387 {
2388 ProductReport _productreport = new ProductReport();
2389 _productreport.Product = pr.Product;
2390 _productreport.NoOfLeads = pr.NoOfLeads;
2391 _productreport.InProgress = pr.InProgress;
2392 _productreport.Complete = pr.Complete;
2393 _productreport.TotalCommission = pr.TotalCommission;
2394 _productreport.AvgCommission = pr.AvgCommission;
2395 _productreport.WrittCompPerc = pr.WrittCompPerc;
2396 productreportlist.Add(_productreport);
2397 }
2398
2399 foreach (statusReport sr in QApplication.GetStatusReportByIds(queryStatusReportCondition.ToString() + _tyfinance, accId, queryStatusReportCon.ToString() + _tyfinance))
2400 {
2401 statusReport _statusReport = new statusReport();
2402 _statusReport.status = sr.status;
2403 _statusReport.NoOfLeads = sr.NoOfLeads;
2404 statusReportList.Add(_statusReport);
2405 }
2406
2407 _model = model;
2408 _model.DateFrom = model.DateFrom.GetDateString(Helper.ddMMyyyy);
2409 _model.JavaScriptDateFrom = model.DateFrom.GetJavaScriptDateString();
2410 _model.DateTo = model.DateTo.GetDateString(Helper.ddMMyyyy);
2411 _model.Broker = model.Broker;
2412 _model.Affliate = model.Affliate;
2413 _model.Status = model.Status;
2414 _model.BrokerLeadTableReport = bltList;
2415 _model.AgentLeadTableReport = altList;
2416 _model.ProductReport = productreportlist;
2417 _model.StatusReport = statusReportList;
2418
2419 _model.DataPoints = new List<ReportDataPoint>();
2420 _model.DataPoints.AddRange(QApplication.GetLeadReportByIds(queryCondition1.ToString(), accId, queryCon1.ToString()));
2421
2422 int _day = 1;
2423
2424 for (DateTime dt = model.DateFrom.GetDate().Value; dt <= model.DateTo.GetDate().Value; dt = dt.AddDays(1), _day++)
2425 {
2426 var v = _model.DataPoints.FirstOrDefault(s => s.Dated.Date == dt.Date);
2427 if (v != null)
2428 {
2429 v.DayOfYear = _day;
2430 }
2431 }
2432 TimeSpan daysDiff = Convert.ToDateTime(model.DateFrom.GetDate()) - Convert.ToDateTime(model.DateTo.GetDate());
2433 _model.days = Math.Abs(daysDiff.Days) - 1;//_day;
2434
2435 }
2436 else
2437 {
2438 Helper.ErrorLog(null, "TiledDashboard", "LeadFlow", "Redirect to Home.");
2439 }
2440
2441 _model.IsNeg = false;
2442 objTiledDashboardModel.LeadFlow = _model;
2443 #endregion [Lead Flow]
2444
2445 #region [My Valuable Client Referrers]
2446 if (dsTiledDashboard.Tables[5].Rows.Count > 0)
2447 {
2448 objTiledDashboardModel.MyValuableClientReferrers = DataTableHelper.CreateListFromTableForAll<MyValuableClientReferrers>(dsTiledDashboard.Tables[5]).ToList();
2449 }
2450 #endregion [My Valuable Client Referrers]
2451
2452 #region [My Re-Mortgage Opportunities]
2453 if (dsTiledDashboard.Tables[6].Rows.Count > 0)
2454 {
2455 objTiledDashboardModel.MyRemortgageOpportunities = DataTableHelper.CreateListFromTableForAll<RemortgageOpportunities>(dsTiledDashboard.Tables[6]).ToList();
2456 }
2457 #endregion [My Re-Mortgage Opportunities]
2458
2459 #region [My Total Written]
2460 if (dsTiledDashboard.Tables[7].Rows.Count > 0)
2461 {
2462 objTiledDashboardModel.MyTotalWritten = DataTableHelper.CreateListFromTableForAll<MyTotalWritten>(dsTiledDashboard.Tables[7]).ToList();
2463 if (objTiledDashboardModel.MyTotalWritten[0].AvgTotalWritten == 0M && objTiledDashboardModel.MyTotalWritten[1].AvgTotalWritten == 0M && objTiledDashboardModel.MyTotalWritten[2].AvgTotalWritten == 0M)
2464 objTiledDashboardModel.MyTotalWritten = null;
2465 }
2466 #endregion [My Total Written]
2467
2468 #region [My Mortgages Completed]
2469 if (dsTiledDashboard.Tables[8].Rows.Count > 0)
2470 {
2471 objTiledDashboardModel.MyMortgagesCompleted = DataTableHelper.CreateListFromTableForAll<MyMortgagesCompleted>(dsTiledDashboard.Tables[8]).ToList();
2472 if (objTiledDashboardModel.MyMortgagesCompleted[0].ConversionRate == 0.00M && objTiledDashboardModel.MyMortgagesCompleted[1].ConversionRate == 0.00M && objTiledDashboardModel.MyMortgagesCompleted[2].ConversionRate == 0.00M)
2473 objTiledDashboardModel.MyMortgagesCompleted = null;
2474
2475 }
2476 #endregion [My Mortgages Completed]
2477
2478 #region [My Target Tracking]
2479 objTiledDashboardModel.MyTargetTracking = GetTargetSettingsForAdmin(SessionHelper.UserId, SessionHelper.AccountId, SessionHelper.UserId.ToString());
2480 #endregion [My Target Tracking]
2481
2482 #endregion [Admin Dashboard]
2483 }
2484
2485 }
2486 }
2487 catch (Exception ex)
2488 {
2489 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetTiledDashboardData", ex.Message);
2490 }
2491 return objTiledDashboardModel;
2492 }
2493
2494 //For User DashBoard
2495 public TiledDashboardModel GetTiledDashboardData(int loggedInUserId, int loggedInUserAccountId, int userType)
2496 {
2497 TiledDashboardModel objTiledDashboardModel = new TiledDashboardModel();
2498
2499 try
2500 {
2501 //SqlParameter[] Param = new SqlParameter[5];
2502 //Param[0] = new SqlParameter("@LoggedInUserId", loggedInUserId);
2503 //Param[1] = new SqlParameter("@LoggedInUserAccountId", loggedInUserAccountId);
2504 //Param[2] = new SqlParameter("@productTypeID", loggedInUserAccountId == 880 ? 2 : 1);//2- Life, 1- Mortgage
2505 //Param[3] = new SqlParameter("@BrokerId", loggedInUserId);
2506 //DataSet dsTiledDashboard = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "GetDashboardDataForLoggedInUser", Param);
2507 DataSet dsTiledDashboard = GetAllDashboardData(loggedInUserAccountId, loggedInUserId);
2508 if (dsTiledDashboard != null)
2509 {
2510 //userType 4=Introduce/GeneralUser
2511 if (userType != 4)
2512 {
2513 #region [Adviser Dashboard]
2514
2515 #region [My Ranking]
2516 if (dsTiledDashboard.Tables[9].Rows.Count > 0)
2517 {
2518 objTiledDashboardModel.MyRanking = (from DataRow dr in dsTiledDashboard.Tables[9].Rows
2519 select new MyRanking
2520 {
2521 Ranking = Convert.ToInt32(dr["Ranking"]),
2522 ReportType = Convert.ToString(dr["ReportType"]),
2523 ReportField = Convert.ToString(dr["ReportField"]),
2524 Amount = Convert.ToDecimal(dr["Amount"])
2525 }).ToList();
2526 }
2527 #endregion [My Ranking]
2528
2529 #region [Business Split]
2530 if (dsTiledDashboard.Tables[6].Rows.Count > 0)
2531 {
2532 HttpContext.Current.Session["BusinessByType"] = null;
2533 //objTiledDashboardModel.BusinessSplit = DataTableHelper.CreateListFromTableForAll<BusinessReport>(dsTiledDashboard.Tables[6]).ToList();
2534 objTiledDashboardModel.BusinessByType = new List<BusinessByType>();
2535 objTiledDashboardModel.BusinessSplit = new List<BusinessReport>();
2536 foreach (DataRow dr in dsTiledDashboard.Tables[6].Rows)
2537 {
2538 BusinessReport br = new BusinessReport();
2539 br.typeName = Convert.ToString(dr["Typename"]);
2540 br.CountNo = Convert.ToInt32(Convert.ToString(dr["Leadcount"]));
2541 //br.typeName = Convert.ToString(dr["typeName"]);
2542 objTiledDashboardModel.BusinessSplit.Add(br);
2543
2544 BusinessByType bt = new BusinessByType();
2545 ArrayList arrayListData = new ArrayList();
2546 bt.name = Convert.ToString(dr["Typename"]);
2547 bt.id = Convert.ToString(dr["Typename"]);
2548 object[,] _array = new object[,] { { BusinessValue.WrittenCommission.GetEnumDescription(), Convert.ToDecimal(Convert.ToString(dr["writtenCommission"])) } };
2549 object[,] _array1 = new object[,] { { BusinessValue.IssuedMortgage.GetEnumDescription(), Convert.ToDecimal(Convert.ToString(dr["issuedMortgage"])) } };
2550 object[,] _array3 = new object[,] { { BusinessValue.WrittenMortgage.GetEnumDescription(), Convert.ToDecimal(Convert.ToString(dr["writtenMortgage"])) } };
2551 object[,] _array4 = new object[,] { { BusinessValue.IssuedCommission.GetEnumDescription(), Convert.ToDecimal(Convert.ToString(dr["issuedCommission"])) } };
2552 arrayListData.Add(_array);
2553 arrayListData.Add(_array1);
2554 arrayListData.Add(_array3);
2555 arrayListData.Add(_array4);
2556 bt.data = arrayListData;
2557 objTiledDashboardModel.BusinessByType.Add(bt);
2558 }
2559
2560
2561
2562 //foreach (var v in objTiledDashboardModel.BusinessSplit)
2563 //{
2564 // BusinessByType bt = new BusinessByType();
2565 // ArrayList arrayListData = new ArrayList();
2566 // bt.name = v.typeName;
2567 // bt.id = v.typeName;
2568 // object[,] _array = new object[,] { { BusinessValue.WrittenCommission.GetEnumDescription(), v.writtenCommission } };
2569 // object[,] _array1 = new object[,] { { BusinessValue.IssuedMortgage.GetEnumDescription(), v.issuedMortgage } };
2570 // object[,] _array3 = new object[,] { { BusinessValue.WrittenMortgage.GetEnumDescription(), v.writtenMortgage } };
2571 // object[,] _array4 = new object[,] { { BusinessValue.IssuedCommission.GetEnumDescription(), v.issuedCommission } };
2572 // arrayListData.Add(_array);
2573 // arrayListData.Add(_array1);
2574 // arrayListData.Add(_array3);
2575 // arrayListData.Add(_array4);
2576 // bt.data = arrayListData;
2577 // objTiledDashboardModel.BusinessByType.Add(bt);
2578 //}
2579 HttpContext.Current.Session["BusinessByType"] = objTiledDashboardModel.BusinessByType;
2580 }
2581 #endregion [Business Split]
2582
2583 #region [My Conversion Rate]
2584
2585 if (dsTiledDashboard.Tables[0].Rows.Count > 0)
2586 {
2587 objTiledDashboardModel.MyConversionRates = new OverAllBrokerSummary();
2588 foreach (DataRow row in dsTiledDashboard.Tables[0].Rows)
2589 {
2590 objTiledDashboardModel.MyConversionRates.LeadToMeeting = Convert.ToDecimal(((row["LeadtoMeating"] == DBNull.Value || row["LeadtoMeating"] == null) ? "0" : row["LeadtoMeating"]).ToString());
2591 objTiledDashboardModel.MyConversionRates.MeetingToDIP = Convert.ToDecimal(((row["MeetingtoDIP"] == DBNull.Value || row["MeetingtoDIP"] == null) ? "0" : row["MeetingtoDIP"]).ToString());
2592 objTiledDashboardModel.MyConversionRates.DIPToApp = Convert.ToDecimal(((row["DIPToApp"] == DBNull.Value || row["DIPToApp"] == null) ? "0" : row["DIPToApp"]).ToString());
2593 objTiledDashboardModel.MyConversionRates.SubmittedToComplete = Convert.ToDecimal(((row["SubtoComp"] == DBNull.Value || row["SubtoComp"] == null) ? "0" : row["SubtoComp"]).ToString());
2594 objTiledDashboardModel.MyConversionRates.MortgageToProtection = Convert.ToDecimal(((row["MorttoProtection"] == DBNull.Value || row["MorttoProtection"] == null) ? "0" : row["MorttoProtection"]).ToString());
2595
2596 }
2597
2598 //old code
2599 //string subPath = System.Configuration.ConfigurationManager.AppSettings["BrokerImages"] ?? "~/Content/BrokerImages/";
2600 //objTiledDashboardModel.MyConversionRates = (from DataRow row in dsTiledDashboard.Tables[0].Rows
2601 // select new OverAllBrokerSummary
2602 // {
2603 // BrokerId = Convert.ToInt32(((row["BrokerId"] == DBNull.Value || row["BrokerId"] == null) ? "0" : row["BrokerId"]).ToString()),
2604 // BrokerName = ((row["BrokerName"] == DBNull.Value || row["BrokerName"] == null) ? " " : row["BrokerName"]).ToString(),
2605 // DetailInfo = ((row["DetailInfo"] == DBNull.Value || row["DetailInfo"] == null) ? " " : row["DetailInfo"]).ToString(),
2606 // BrokerImage = subPath + ((row["BrokerImage"] == DBNull.Value || row["BrokerImage"] == null) ? "noimage.jpg" : row["BrokerImage"]).ToString(),
2607 // TotalDays = Convert.ToInt32(((row["TotalDays"] == DBNull.Value || row["TotalDays"] == null) ? "0" : row["TotalDays"]).ToString()),
2608 // NewLead = Convert.ToInt32(((row["NewLead"] == DBNull.Value || row["NewLead"] == null) ? "0" : row["NewLead"]).ToString()),
2609 // Remortgage = Convert.ToInt32(((row["Remortgage"] == DBNull.Value || row["Remortgage"] == null) ? "0" : row["Remortgage"]).ToString()),
2610 // CallBack = Convert.ToInt32(((row["CallBack"] == DBNull.Value || row["CallBack"] == null) ? "0" : row["CallBack"]).ToString()),
2611 // Meeting = Convert.ToInt32(((row["Meeting"] == DBNull.Value || row["Meeting"] == null) ? "0" : row["Meeting"]).ToString()),
2612 // DIP = Convert.ToInt32(((row["DIP"] == DBNull.Value || row["DIP"] == null) ? "0" : row["DIP"]).ToString()),
2613 // PreOfferProcessing = Convert.ToInt32(((row["PreOfferProcessing"] == DBNull.Value || row["PreOfferProcessing"] == null) ? "0" : row["PreOfferProcessing"]).ToString()),
2614 // PostOfferProcessing = Convert.ToInt32(((row["PostOfferProcessing"] == DBNull.Value || row["PostOfferProcessing"] == null) ? "0" : row["PostOfferProcessing"]).ToString()),
2615 // Completed = Convert.ToInt32(((row["Completed"] == DBNull.Value || row["Completed"] == null) ? "0" : row["Completed"]).ToString()),
2616 // Prospect = Convert.ToInt32(((row["Prospect"] == DBNull.Value || row["Prospect"] == null) ? "0" : row["Prospect"]).ToString()),
2617 // Deleted = Convert.ToInt32(((row["Deleted"] == DBNull.Value || row["Deleted"] == null) ? "0" : row["Deleted"]).ToString()),
2618 // Total = Convert.ToInt32(((row["Total"] == DBNull.Value || row["Deleted"] == null) ? "0" : row["Total"]).ToString()),
2619 // TotalLife = Convert.ToInt32(((row["TotalLife"] == DBNull.Value || row["TotalLife"] == null) ? "0" : row["TotalLife"]).ToString()),
2620 // CompletedLife = Convert.ToInt32(((row["CompletedLife"] == DBNull.Value || row["CompletedLife"] == null) ? "0" : row["CompletedLife"]).ToString()),
2621 // DaysPerMortgaeDefault = Convert.ToDecimal(((row["DaysPerMortgaeDefault"] == DBNull.Value || row["DaysPerMortgaeDefault"] == null) ? "0" : row["DaysPerMortgaeDefault"]).ToString()),
2622 // LeadToMeetingDefault = Convert.ToDecimal(((row["LeadToMeetingDefault"] == DBNull.Value || row["LeadToMeetingDefault"] == null) ? "0" : row["LeadToMeetingDefault"]).ToString()),
2623 // MeetingToDIPDefault = Convert.ToDecimal(((row["MeetingToDIPDefault"] == DBNull.Value || row["MeetingToDIPDefault"] == null) ? "0" : row["MeetingToDIPDefault"]).ToString()),
2624 // DIPToAppDefault = Convert.ToDecimal(((row["DIPToAppDefault"] == DBNull.Value || row["DIPToAppDefault"] == null) ? "0" : row["DIPToAppDefault"]).ToString()),
2625 // SubmittedToCompletedDefault = Convert.ToDecimal(((row["SubmittedToCompletedDefault"] == DBNull.Value || row["SubmittedToCompletedDefault"] == null) ? "0" : row["SubmittedToCompletedDefault"]).ToString()),
2626 // MortgaeToProtectionDefault = Convert.ToDecimal(((row["MortgaeToProtectionDefault"] == DBNull.Value || row["MortgaeToProtectionDefault"] == null) ? "0" : row["MortgaeToProtectionDefault"]).ToString()),
2627
2628
2629 // }).ToList()[0];
2630
2631 //objTiledDashboardModel.MyConversionRates.DaysPerMortgage = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.TotalDays), 2);
2632 //objTiledDashboardModel.MyConversionRates.LeadToMeeting = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.Meeting * 100), 2);
2633 //objTiledDashboardModel.MyConversionRates.MeetingToDIP = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.DIP * 100), 2);
2634 //objTiledDashboardModel.MyConversionRates.DIPToApp = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.PreOfferProcessing * 100), 2);
2635 //objTiledDashboardModel.MyConversionRates.SubmittedToComplete = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.Completed * 100), 2);
2636 //objTiledDashboardModel.MyConversionRates.MortgageToProtection = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.CompletedLife * 100), 2);
2637
2638 //if (objTiledDashboardModel.MyConversionRates.Total > 0)
2639 //{
2640 // objTiledDashboardModel.MyConversionRates.DaysPerMortgage = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.TotalDays) / objTiledDashboardModel.MyConversionRates.Total, 2);
2641 //}
2642
2643 ////Lead to meeting conversion – Total Converted Meeting Leads/ (Available New lead + Total Converted Meeting Leads)
2644
2645 //if ((objTiledDashboardModel.MyConversionRates.NewLead) > 0)
2646 // objTiledDashboardModel.MyConversionRates.LeadToMeeting = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.Meeting * 100) / (objTiledDashboardModel.MyConversionRates.NewLead), 2);
2647
2648
2649 ////Meeting to DIP conversion – Total Converted DIP Leads/ (Total Converted Meeting Leads + Total Converted DIP Leads)
2650 //if ((objTiledDashboardModel.MyConversionRates.Meeting) > 0)
2651 // objTiledDashboardModel.MyConversionRates.MeetingToDIP = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.DIP * 100) / (objTiledDashboardModel.MyConversionRates.Meeting), 2);
2652
2653
2654 ////DIP to app conversion – Total Converted App (Pre Offer Processing)/ (Total Converted DIP Leads + Total Converted App (Pre Offer Processing))
2655 //if ((objTiledDashboardModel.MyConversionRates.DIP) > 0)
2656 // objTiledDashboardModel.MyConversionRates.DIPToApp = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.PreOfferProcessing * 100) / (objTiledDashboardModel.MyConversionRates.DIP), 2);
2657
2658 //if ((objTiledDashboardModel.MyConversionRates.PreOfferProcessing) > 0)
2659 // objTiledDashboardModel.MyConversionRates.SubmittedToComplete = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.Completed * 100) / (objTiledDashboardModel.MyConversionRates.PreOfferProcessing), 2);
2660 //// Mortgage to protection conversion – Total Converted Post Offer Processing/ (Total Converted App (Pre Offer Processing) + Total Converted Post Offer Processing)
2661 //if ((objTiledDashboardModel.MyConversionRates.Completed) > 0)
2662 // objTiledDashboardModel.MyConversionRates.MortgageToProtection = Math.Round(Convert.ToDecimal(objTiledDashboardModel.MyConversionRates.CompletedLife * 100) / (objTiledDashboardModel.MyConversionRates.Completed), 2);
2663 }
2664 #endregion [My Conversion Rate]
2665
2666 #region [Where My Leads Come From]
2667 if (dsTiledDashboard.Tables[5].Rows.Count > 0)
2668 {
2669 objTiledDashboardModel.WhereMyLeadsComeFrom = new List<DashboardClients>();
2670 foreach (DataRow row in dsTiledDashboard.Tables[5].Rows)
2671 {
2672 var objLeadComesFrom = new DashboardClients();
2673 objLeadComesFrom.clientid = Convert.ToInt32(((row["accountId"] == DBNull.Value || row["accountId"] == null) ? "0" : row["accountId"]).ToString());
2674 objLeadComesFrom.companyname = ((row["IntroducerName"] == DBNull.Value || row["IntroducerName"] == null) ? " " : row["IntroducerName"]).ToString();
2675 objLeadComesFrom.averageLeads = Convert.ToInt32(Convert.ToDecimal(Convert.ToString(row["Average"])));
2676 objLeadComesFrom.countLeads = Convert.ToInt32(Convert.ToString(row["TotalLeads"]));
2677 objLeadComesFrom.thisMonthLeads = Convert.ToInt32(Convert.ToString(row["Last30Days"]));
2678 //objLeadComesFrom.// lastLeadDate = (row["lastleaddate"] == DBNull.Value || row["lastleaddate"] == null) ? (DateTime?)null : Convert.ToDateTime(row["lastleaddate"]),
2679 objLeadComesFrom.LastLead = Convert.ToInt32(Convert.ToString(row["LastLead"]));
2680 objLeadComesFrom.changes = Convert.ToInt32(Convert.ToString(row["Change"]));
2681
2682
2683 objTiledDashboardModel.WhereMyLeadsComeFrom.Add(objLeadComesFrom);
2684 }
2685 objTiledDashboardModel.WhereMyLeadsComeFrom = objTiledDashboardModel.WhereMyLeadsComeFrom.OrderBy(c => c.companyname).ToList();
2686
2687
2688 }
2689 #endregion [Where My Leads Come From]
2690
2691 #region [Lead Flow]
2692
2693 #region old code for Lead flow
2694
2695 //objTiledDashboardModel.IsSubmit = 0;
2696 //// Initially the finance type will be Mortgage
2697 //int typeid = SessionHelper.DefaultsettingId > 0 ? SessionHelper.DefaultsettingId : (int)FinanceTypes.Mortgages;
2698 //objTiledDashboardModel.SelectedFinanceTypeName = Enum.GetName(typeof(FinanceTypes), typeid);
2699 //List<SelectListItem> companyitems = new List<SelectListItem>();
2700 //ReportsModel _model = new ReportsModel();
2701 //Q_Application QApplication = new Q_Application();
2702 //Q_settings QSettings = new Q_settings();
2703
2704 //if (SessionHelper.AccountId > 0)
2705 //{
2706 // int loggedinuser = SessionHelper.UserId;
2707 // int accId = SessionHelper.AccountId;
2708 // ReportsModel model = null;
2709 // model = new ReportsModel(accId, loggedinuser, typeid);
2710 // if (model != null && model.BrokerClients != null)
2711 // {
2712 // model.Brokers = model.BrokerClients.Select(s => new SelectListItem() { Selected = false, Text = s.contactname + "(" + s.countLeads + ")", Value = s.userid.ToString() }).ToList();
2713 // }
2714 // TimeSpan ts = new TimeSpan(30, 0, 0, 0);
2715 // model.DateFrom = DateTime.Today.Date.Subtract(ts).ToString(Helper.ddMMyyyy);
2716 // model.JavaScriptDateFrom = DateTime.Today.Date.Subtract(ts).ToString(Helper.yyyyMMdd);
2717 // model.DateTo = DateTime.Today.Date.AddDays(1).ToString(Helper.ddMMyyyy);
2718 // model.Status = typeid.GetNewLeadStatus();
2719 // model.Source = "all";
2720 // objTiledDashboardModel.BrokersWithTeams = QSettings.GetBrokersWithTeams(loggedinuser);
2721
2722 // //Combo tree data for Client/Branch/Neg
2723
2724 // List<SelectListItem> items = new List<SelectListItem>();
2725 // Q_Client QClient = new Q_Client();
2726 // SelectListItem defaultentry = new SelectListItem();
2727 // defaultentry.Text = "select..";
2728 // defaultentry.Value = "0";
2729 // defaultentry.Selected = true;
2730 // List<Clients> cItems = QClient.FindClients(accId, loggedinuser).OrderBy(c => c.companyname).ToList();
2731 // items = (from Clients in cItems
2732
2733 // select new SelectListItem
2734 // {
2735 // Text = Clients.companyname + "(" + Clients.countLeads + ")",
2736 // Value = Clients.clientid.ToString()
2737 // }).ToList();
2738
2739 // items.Insert(0, defaultentry);
2740 // objTiledDashboardModel.ClientData = items;
2741 // //Combo tree data for Client/Branch/Neg
2742
2743 // //Finance Type.
2744 // List<SelectListItem> financetypeData = new List<SelectListItem>();
2745 // List<tblfinancetype> ftitems = QApplication.GetFinanceType();
2746 // financetypeData = (from ft in ftitems
2747 // select new SelectListItem()
2748 // {
2749 // Text = ft.type,
2750 // Value = ft.financetypeid.ToString(),
2751 // Selected = (ft.financetypeid == typeid)
2752
2753 // }).ToList();
2754
2755 // objTiledDashboardModel.financetypeData = financetypeData;
2756
2757 // //Code for Broker (Company)
2758
2759 // var bcompanyitems = (from names in model.BrokerClients
2760 // select new
2761 // {
2762 // companyname = names.companyname,
2763 // clientid = names.clientid
2764 // }).Distinct().ToList();
2765 // companyitems = bcompanyitems.Select(r => new SelectListItem() { Value = r.companyname, Text = r.companyname }).ToList();
2766 // objTiledDashboardModel.CompanyData = companyitems;
2767 // objTiledDashboardModel.BrokderBag = model.BrokerClients;
2768
2769
2770 // StringBuilder queryCondition = new StringBuilder();
2771 // StringBuilder queryCondition1 = new StringBuilder();
2772
2773 // StringBuilder queryCon = new StringBuilder();
2774 // StringBuilder queryCon1 = new StringBuilder();
2775
2776 // Q_Application _obj = new Q_Application();
2777 // int teamId = 0;
2778 // string brokersIds = "";
2779 // int _userType = 0;
2780 // int _accountId = 0;
2781 // _userType = _obj.CheckUserType(loggedinuser, out teamId, out _accountId, out brokersIds);
2782
2783 // if (_userType == (int)UserType.Admin && string.IsNullOrWhiteSpace(model.Broker))
2784 // {
2785
2786 // var brokers = "";
2787 // int adminaccId = 0;
2788 // if (_obj.IsCreatedAdminUser(accId, loggedinuser, out adminaccId, out brokers))
2789 // {
2790 // model.Broker = brokers;
2791 // }
2792 // }
2793 // if (_userType == (int)UserType.Manager && string.IsNullOrWhiteSpace(model.Broker))
2794 // {
2795 // model.Broker = brokersIds;
2796 // }
2797 // else if (_userType == (int)UserTypes.Broker && string.IsNullOrWhiteSpace(model.Broker))
2798 // {
2799 // model.Broker = loggedinuser.ToString();
2800 // }
2801
2802 // #region Create Dynamic Conditions for Agent, Broker reports
2803
2804 // if (queryCondition.Length > 0)
2805 // {
2806 // //queryCondition.Append(string.Format(" and ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
2807 // if (_userType == (int)UserType.GeneralUser)
2808 // {
2809 // queryCondition.Append(string.Format(" and (a.accountid = {0} OR b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
2810 // }
2811 // else
2812 // {
2813 // queryCondition.Append(string.Format(" and ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
2814 // }
2815
2816 // queryCon.Append(string.Format(" and ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) and {1} = 880 ", 6569, accId));
2817
2818 // }
2819 // else
2820 // {
2821 // //queryCondition.Append(string.Format(" Where ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
2822 // if (_userType == (int)UserType.GeneralUser)
2823 // {
2824 // queryCondition.Append(string.Format(" Where (a.accountid = {0} OR b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
2825 // }
2826 // else
2827 // {
2828 // queryCondition.Append(string.Format(" Where ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
2829 // }
2830
2831
2832 // queryCon.Append(string.Format(" Where ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) and {1} = 880 ", 6569, accId));
2833
2834 // }
2835
2836
2837 // if (queryCondition1.Length > 0)
2838 // {
2839 // //queryCondition1.Append(string.Format(" and ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
2840
2841 // if (_userType == (int)UserType.GeneralUser)
2842 // {
2843 // queryCondition1.Append(string.Format(" and (a.accountid = {0} or tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
2844 // }
2845 // else
2846 // {
2847 // queryCondition1.Append(string.Format(" and ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
2848 // }
2849
2850
2851 // queryCon1.Append(string.Format(" and ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) and {1} = 880 ", 6569, accId));
2852
2853 // }
2854 // else
2855 // {
2856 // //queryCondition1.Append(string.Format(" Where ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0}) ", accId));
2857 // if (_userType == (int)UserType.GeneralUser)
2858 // {
2859 // queryCondition1.Append(string.Format(" Where (a.accountid = {0} OR dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0}) ", accId));
2860 // }
2861 // else
2862 // {
2863 // queryCondition1.Append(string.Format(" Where ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0}) ", accId));
2864 // }
2865
2866
2867 // queryCon1.Append(string.Format(" Where ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0}) and {1} = 880 ", 6569, accId));
2868
2869 // }
2870
2871
2872 // //Filter by AffliateID
2873 // if (model.Affliate != 0)
2874 // {
2875 // if (queryCondition.Length > 0)
2876 // {
2877 // queryCondition.Append(string.Format(" and c.account ={0} ", model.Affliate));
2878
2879 // }
2880 // else
2881 // {
2882 // queryCondition.Append(string.Format(" Where c.account ={0} ", model.Affliate));
2883 // }
2884
2885 // if (queryCondition1.Length > 0)
2886 // {
2887 // queryCondition1.Append(string.Format(" and c.account ={0} ", model.Affliate));
2888 // }
2889 // else
2890 // {
2891 // queryCondition1.Append(string.Format(" Where c.account ={0} ", model.Affliate));
2892 // }
2893 // }
2894
2895 // //Filter by BrokerID
2896 // if (!string.IsNullOrEmpty(model.Broker) && model.Broker != "")
2897 // {
2898 // if (queryCondition.Length > 0)
2899 // {
2900 // queryCondition.Append(string.Format(" and c.broker IN ({0}) ", model.Broker));
2901
2902 // queryCon.Append(string.Format(" and c.insurancebroker IN ({0}) ", model.Broker));
2903
2904 // }
2905 // else
2906 // {
2907 // queryCondition.Append(string.Format(" Where c.broker IN ({0}) ", model.Broker));
2908
2909 // queryCon.Append(string.Format(" Where c.insurancebroker IN ({0}) ", model.Broker));
2910
2911 // }
2912
2913 // if (queryCondition1.Length > 0)
2914 // {
2915 // queryCondition1.Append(string.Format(" and c.broker IN ({0}) ", model.Broker));
2916
2917
2918 // queryCon1.Append(string.Format(" and c.insurancebroker IN ({0}) ", model.Broker));
2919
2920 // }
2921 // else
2922 // {
2923 // queryCondition1.Append(string.Format(" Where c.broker IN ({0}) ", model.Broker));
2924
2925
2926 // queryCon1.Append(string.Format(" Where c.insurancebroker IN ({0}) ", model.Broker));
2927
2928
2929 // }
2930 // }
2931
2932 // //Filter by Broker ID
2933
2934 // if (model.Status != 0)
2935 // {
2936 // if (queryCondition.Length > 0)
2937 // {
2938 // queryCondition.Append(string.Format(" and (fs.status = {0} and fs.createdate is not null) ", model.Status));
2939
2940
2941 // queryCon.Append(string.Format(" and (fs.status = {0} and fs.createdate is not null ) ", model.Status));
2942
2943 // }
2944 // else
2945 // {
2946 // queryCondition.Append(string.Format(" Where (fs.status = {0} and fs.createdate is not null) ", model.Status));
2947
2948
2949 // queryCon.Append(string.Format(" Where (fs.status = {0} and fs.createdate is not null) ", model.Status));
2950
2951 // }
2952
2953 // if (queryCondition1.Length > 0)
2954 // {
2955 // queryCondition1.Append(string.Format(" and dbo.tblfinance_statusdate.status = {0} ", model.Status));
2956
2957
2958 // queryCon1.Append(string.Format(" and dbo.tblfinance_statusdate.status = {0} ", model.Status));
2959
2960 // }
2961 // else
2962 // {
2963 // queryCondition1.Append(string.Format(" Where dbo.tblfinance_statusdate.status = {0} ", model.Status));
2964
2965
2966 // queryCon1.Append(string.Format(" Where dbo.tblfinance_statusdate.status = {0} ", model.Status));
2967
2968 // }
2969 // }
2970
2971 // //Filter By Source
2972 // if (model.Source != "all")
2973 // {
2974 // if (queryCondition.Length > 0)
2975 // {
2976 // queryCondition.Append(string.Format(" and c.source = '{0}'", model.Source));
2977
2978
2979 // queryCon.Append(string.Format(" and c.source = '{0}'", model.Source));
2980
2981 // }
2982 // else
2983 // {
2984 // queryCondition.Append(string.Format(" Where c.source = '{0}'", model.Source));
2985
2986
2987 // queryCon.Append(string.Format(" Where c.source = '{0}'", model.Source));
2988
2989 // }
2990
2991 // if (queryCondition1.Length > 0)
2992 // {
2993 // queryCondition1.Append(string.Format(" and c.source = '{0}'", model.Source));
2994
2995
2996 // queryCon1.Append(string.Format(" and c.source = '{0}'", model.Source));
2997
2998 // }
2999 // else
3000 // {
3001 // queryCondition1.Append(string.Format(" Where c.source = '{0}'", model.Source));
3002
3003
3004 // queryCon1.Append(string.Format(" Where c.source = '{0}'", model.Source));
3005
3006 // }
3007 // }
3008
3009 // //Filter By DateRange
3010 // if (model.DateFrom != null && model.DateTo != null)
3011 // {
3012 // if (queryCondition1.Length > 0)
3013 // {
3014 // queryCondition1.Append(string.Format(" and dbo.tblfinance_statusdate.createdate between '{0}' and '{1}' ", model.DateFrom.GetDateString(Helper.ddMMMyyyy), model.DateTo.GetDateString(Helper.ddMMMyyyy)));
3015
3016
3017 // queryCon1.Append(string.Format(" and dbo.tblLinkInsuranceHistory.createddate between '{0}' and '{1}' ", model.DateFrom.GetDateString(Helper.ddMMMyyyy), model.DateTo.GetDateString(Helper.ddMMMyyyy)));
3018
3019 // }
3020 // else
3021 // {
3022 // queryCondition1.Append(string.Format(" Where dbo.tblfinance_statusdate.createdate between '{0}' and '{1}' ", model.DateFrom.GetDateString(Helper.ddMMMyyyy), model.DateTo.GetDateString(Helper.ddMMMyyyy)));
3023
3024
3025 // queryCon1.Append(string.Format(" Where dbo.tblLinkInsuranceHistory.createddate between '{0}' and '{1}' ", model.DateFrom.GetDateString(Helper.ddMMMyyyy), model.DateTo.GetDateString(Helper.ddMMMyyyy)));
3026
3027 // }
3028 // }
3029
3030 // #endregion
3031
3032 // #region Create Dynamic Conditions for Status and Product Report
3033
3034 // StringBuilder queryStatusReportCondition = new StringBuilder();
3035 // StringBuilder queryStatusReportCon = new StringBuilder();
3036 // if (queryStatusReportCondition.Length > 0)
3037 // {
3038 // //queryStatusReportCondition.Append(string.Format(" and ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
3039 // if (_userType == (int)UserType.GeneralUser)
3040 // {
3041 // queryStatusReportCondition.Append(string.Format(" and (a.accountid = {0} OR tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
3042 // }
3043 // else
3044 // {
3045 // queryStatusReportCondition.Append(string.Format(" and ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
3046 // }
3047
3048 // queryStatusReportCon.Append(string.Format(" and ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) and {1} = 880", 6569, accId));
3049
3050 // }
3051 // else
3052 // {
3053 // //queryStatusReportCondition.Append(string.Format(" Where ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
3054 // if (_userType == (int)UserType.GeneralUser)
3055 // {
3056 // queryStatusReportCondition.Append(string.Format(" Where (a.accountid = {0} OR tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
3057 // }
3058 // else
3059 // {
3060 // queryStatusReportCondition.Append(string.Format(" Where ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
3061
3062 // }
3063
3064
3065 // queryStatusReportCon.Append(string.Format(" Where ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) and {1} = 880 ", 6569, accId));
3066
3067 // }
3068
3069 // //Filter By FinanceType
3070
3071 // if (queryCondition.Length > 0)
3072 // {
3073 // queryCondition.Append(string.Format(" and f.type = {0} ", typeid));
3074
3075
3076 // queryCon.Append(string.Format(" and f.type = {0} ", typeid));
3077
3078 // }
3079 // else
3080 // {
3081 // queryCondition.Append(string.Format(" Where f.type = {0} ", typeid));
3082
3083
3084 // queryCon.Append(string.Format(" Where f.type = {0} ", typeid));
3085
3086 // }
3087
3088 // if (queryCondition1.Length > 0)
3089 // {
3090 // queryCondition1.Append(string.Format(" and dbo.tblfinance.type = {0} ", typeid));
3091
3092
3093 // queryCon1.Append(string.Format(" and dbo.tblfinance.type = {0} ", typeid));
3094
3095 // }
3096 // else
3097 // {
3098 // queryCondition1.Append(string.Format(" Where dbo.tblfinance.type = {0} ", typeid));
3099
3100
3101 // queryCon1.Append(string.Format(" Where dbo.tblfinance.type = {0} ", typeid));
3102
3103 // }
3104
3105
3106
3107 // //Filter by AffliateID
3108 // if (model.Affliate != 0)
3109 // {
3110 // if (queryStatusReportCondition.Length > 0)
3111 // {
3112 // queryStatusReportCondition.Append(string.Format(" and c.account ={0} ", model.Affliate));
3113 // }
3114 // else
3115 // {
3116 // queryStatusReportCondition.Append(string.Format(" Where c.account ={0} ", model.Affliate));
3117 // }
3118 // }
3119
3120 // //Filter by BrokerID
3121 // if (!string.IsNullOrEmpty(model.Broker) && model.Broker != "")
3122 // {
3123 // if (queryStatusReportCondition.Length > 0)
3124 // {
3125 // queryStatusReportCondition.Append(string.Format(" and c.broker IN ({0}) ", model.Broker));
3126
3127
3128 // queryStatusReportCon.Append(string.Format(" and c.insurancebroker IN ({0}) ", model.Broker));
3129
3130 // }
3131 // else
3132 // {
3133 // queryStatusReportCondition.Append(string.Format(" Where c.broker IN ({0}) ", model.Broker));
3134
3135
3136 // queryStatusReportCon.Append(string.Format(" Where c.insurancebroker IN ({0}) ", model.Broker));
3137
3138 // }
3139 // }
3140
3141 // //Filter By Source
3142 // if (model.Source != "all")
3143 // {
3144 // if (queryStatusReportCondition.Length > 0)
3145 // {
3146 // queryStatusReportCondition.Append(string.Format(" and c.source = '{0}'", model.Source));
3147
3148 // queryStatusReportCon.Append(string.Format(" and c.source = '{0}'", model.Source));
3149
3150 // }
3151 // else
3152 // {
3153 // queryStatusReportCondition.Append(string.Format(" Where c.source = '{0}'", model.Source));
3154
3155
3156 // queryStatusReportCon.Append(string.Format(" Where c.source = '{0}'", model.Source));
3157
3158 // }
3159 // }
3160
3161 // //Filter By DateRange
3162 // if (model.DateFrom != null && model.DateTo != null)
3163 // {
3164 // if (queryStatusReportCondition.Length > 0)
3165 // {
3166 // queryStatusReportCondition.Append(string.Format(" and fs.createdate between '{0}' and '{1}' ", model.DateFrom.GetDate().Value.ToString("dd/MMM/yyyy"), model.DateTo.GetDate().Value.ToString("dd/MMM/yyyy")));
3167
3168 // queryStatusReportCon.Append(string.Format(" and LI.createddate between '{0}' and '{1}' ", model.DateFrom.GetDate().Value.ToString("dd/MMM/yyyy"), model.DateTo.GetDate().Value.ToString("dd/MMM/yyyy")));
3169 // }
3170 // else
3171 // {
3172 // queryStatusReportCondition.Append(string.Format(" Where fs.createdate between '{0}' and '{1}' ", model.DateFrom.GetDate().Value.ToString("dd/MMM/yyyy"), model.DateTo.GetDate().Value.ToString("dd/MMM/yyyy")));
3173
3174 // queryStatusReportCon.Append(string.Format(" Where LI.createddate between '{0}' and '{1}' ", model.DateFrom.GetDate().Value.ToString("dd/MMM/yyyy"), model.DateTo.GetDate().Value.ToString("dd/MMM/yyyy")));
3175 // }
3176 // }
3177
3178 // //Updated on 4/7/2014 to apply finance type over status report Coomented due to 16-07-2014 due to team heirarchy upload
3179 // var _tyfinance = "";
3180 // if (queryStatusReportCondition.Length > 0)
3181 // {
3182 // _tyfinance = " and dbo.tblfinance.type =" + typeid + " ";
3183 // }
3184 // else
3185 // {
3186 // _tyfinance = " where dbo.tblfinance.type = " + typeid + " ";
3187 // }
3188
3189
3190 // string _dateFilter = string.Empty;
3191 // if (model.DateFrom != null && model.DateTo != null)
3192 // {
3193 // _dateFilter = string.Format("where createdate between '{0}' and '{1}' ", model.DateFrom.GetDateString(Helper.ddMMMyyyy), model.DateTo.GetDateString(Helper.ddMMMyyyy));
3194 // }
3195
3196 // #endregion
3197
3198 // List<BrokerLeadTable> bltList = new List<BrokerLeadTable>();
3199 // List<AgentLeadTable> altList = new List<AgentLeadTable>();
3200 // List<ProductReport> productreportlist = new List<ProductReport>();
3201 // List<statusReport> statusReportList = new List<statusReport>();
3202
3203 // foreach (BrokerLeadTable blt in QApplication.GetBrokerLeadReportByIds(queryCondition.ToString(), accId, queryCon.ToString(), _dateFilter.ToString()))
3204 // {
3205 // BrokerLeadTable _BrokerLeadTable = new BrokerLeadTable();
3206 // _BrokerLeadTable.Brokerid = blt.Brokerid;
3207 // _BrokerLeadTable.BrokerName = blt.BrokerName;
3208 // _BrokerLeadTable.LeadPercent = blt.LeadPercent;
3209 // _BrokerLeadTable.NoOfLeads = blt.NoOfLeads;
3210 // _BrokerLeadTable.OfferQualification = blt.OfferQualification;
3211 // bltList.Add(_BrokerLeadTable);
3212 // }
3213
3214 // foreach (AgentLeadTable alt in QApplication.GetAfflicateLeadReportByIds(queryCondition.ToString(), accId, false, queryCon.ToString(), _dateFilter.ToString()))
3215 // {
3216 // AgentLeadTable _agentlead = new AgentLeadTable();
3217 // _agentlead.AgentId = alt.AgentId;
3218 // _agentlead.AgentName = alt.AgentName;
3219 // _agentlead.LeadPercent = alt.LeadPercent;
3220 // _agentlead.NoOfLeads = alt.NoOfLeads;
3221 // _agentlead.OfferQualification = alt.OfferQualification;
3222 // altList.Add(_agentlead);
3223 // }
3224
3225 // foreach (ProductReport pr in QApplication.GetProductReportByIds(queryStatusReportCondition.ToString(), accId, model.DateFrom.GetDate().Value, model.DateTo.GetDate().Value, queryStatusReportCon.ToString()))
3226 // {
3227 // ProductReport _productreport = new ProductReport();
3228 // _productreport.Product = pr.Product;
3229 // _productreport.NoOfLeads = pr.NoOfLeads;
3230 // _productreport.InProgress = pr.InProgress;
3231 // _productreport.Complete = pr.Complete;
3232 // _productreport.TotalCommission = pr.TotalCommission;
3233 // _productreport.AvgCommission = pr.AvgCommission;
3234 // _productreport.WrittCompPerc = pr.WrittCompPerc;
3235 // productreportlist.Add(_productreport);
3236 // }
3237
3238 // foreach (statusReport sr in QApplication.GetStatusReportByIds(queryStatusReportCondition.ToString() + _tyfinance, accId, queryStatusReportCon.ToString() + _tyfinance))
3239 // {
3240 // statusReport _statusReport = new statusReport();
3241 // _statusReport.status = sr.status;
3242 // _statusReport.NoOfLeads = sr.NoOfLeads;
3243 // statusReportList.Add(_statusReport);
3244 // }
3245
3246 // _model = model;
3247 // _model.DateFrom = model.DateFrom.GetDateString(Helper.ddMMyyyy);
3248 // _model.JavaScriptDateFrom = model.DateFrom.GetJavaScriptDateString();
3249 // _model.DateTo = model.DateTo.GetDateString(Helper.ddMMyyyy);
3250 // _model.Broker = model.Broker;
3251 // _model.Affliate = model.Affliate;
3252 // _model.Status = model.Status;
3253 // _model.BrokerLeadTableReport = bltList;
3254 // _model.AgentLeadTableReport = altList;
3255 // _model.ProductReport = productreportlist;
3256 // _model.StatusReport = statusReportList;
3257
3258 // _model.DataPoints = new List<ReportDataPoint>();
3259 // _model.DataPoints.AddRange(QApplication.GetLeadReportByIds(queryCondition1.ToString(), accId, queryCon1.ToString()));
3260
3261 // int _day = 1;
3262
3263 // for (DateTime dt = model.DateFrom.GetDate().Value; dt <= model.DateTo.GetDate().Value; dt = dt.AddDays(1), _day++)
3264 // {
3265 // var v = _model.DataPoints.FirstOrDefault(s => s.Dated.Date == dt.Date);
3266 // if (v != null)
3267 // {
3268 // v.DayOfYear = _day;
3269 // }
3270 // }
3271 // TimeSpan daysDiff = Convert.ToDateTime(model.DateFrom.GetDate()) - Convert.ToDateTime(model.DateTo.GetDate());
3272 // _model.days = Math.Abs(daysDiff.Days) - 1;//_day;
3273
3274 //}
3275 //else
3276 //{
3277 // Helper.ErrorLog(null, "TiledDashboard", "LeadFlow", "Redirect to Home.");
3278 //}
3279
3280 //_model.IsNeg = false;
3281 // objTiledDashboardModel.LeadFlow = _model;
3282
3283 #endregion
3284
3285 ReportsModel _model = new ReportsModel();
3286 _model.DataPoints = new List<ReportDataPoint>();
3287 int totallead = 0;
3288 DataTable leadFlowDt = dsTiledDashboard.Tables[7];
3289 if (leadFlowDt != null && leadFlowDt.Rows.Count > 0)
3290 {
3291
3292 foreach (DataRow dr in leadFlowDt.Rows)
3293 {
3294 var ss = new ReportDataPoint();
3295 ss.DayOfYear = Convert.ToInt32(Convert.ToString(dr["DayOfYear"]));
3296 ss.Dated = Convert.ToDateTime(Convert.ToString(dr["DataTime"]));
3297 ss.Value = Convert.ToInt32(Convert.ToString(dr["Value"]));
3298 _model.DataPoints.Add(ss);
3299 totallead += Convert.ToInt32(Convert.ToString(dr["Value"]));
3300 }
3301 _model.days = leadFlowDt.Rows.Count;
3302 _model.TotalLead = totallead;
3303
3304 TimeSpan ts = new TimeSpan(30, 0, 0, 0);
3305 _model.DateFrom = DateTime.Today.Date.Subtract(ts).ToString(Helper.ddMMyyyy);
3306 _model.JavaScriptDateFrom = DateTime.Today.Date.Subtract(ts).ToString(Helper.yyyyMMdd);
3307 _model.DateTo = DateTime.Today.Date.AddDays(1).ToString(Helper.ddMMyyyy);
3308
3309 _model.DateFrom = _model.DateFrom.GetDateString(Helper.ddMMyyyy);
3310 _model.JavaScriptDateFrom = _model.DateFrom.GetJavaScriptDateString();
3311 _model.DateTo = _model.DateTo.GetDateString(Helper.ddMMyyyy);
3312
3313
3314
3315 // _model.JavaScriptDateFrom = leadFlowDt.AsEnumerable().OrderBy(x => x.Field<DateTime>("DataTime")).Select(x=>x.Field<string>("DateTimeString")).FirstOrDefault();
3316 }
3317 objTiledDashboardModel.LeadFlow = _model;
3318
3319
3320 #endregion [Lead Flow]
3321
3322 #region [My Valuable Client Referrers]
3323 if (dsTiledDashboard.Tables[3].Rows.Count > 0)
3324 {
3325 objTiledDashboardModel.MyValuableClientReferrers = new List<MyValuableClientReferrers>();
3326 foreach (DataRow dr in dsTiledDashboard.Tables[3].Rows)
3327 {
3328 var objclientReff = new MyValuableClientReferrers();
3329 objclientReff.Client = Convert.ToString(dr["ClientName"]);
3330 objclientReff.WrittenComm = Convert.ToDecimal(Convert.ToString(dr["WrittenComm"]));
3331 objclientReff.MortWritten = Convert.ToDecimal(Convert.ToString(dr["MortComm"]));
3332 objclientReff.Email = Convert.ToString(dr["Email"]);
3333 objclientReff.Phone = Convert.ToString(dr["Phone"]);
3334 objTiledDashboardModel.MyValuableClientReferrers.Add(objclientReff);
3335 }
3336
3337
3338
3339 //objTiledDashboardModel.MyValuableClientReferrers = DataTableHelper.CreateListFromTableForAll<MyValuableClientReferrers>(dsTiledDashboard.Tables[3]).ToList();
3340 }
3341 #endregion [My Valuable Client Referrers]
3342
3343 #region [My Re-Mortgage Opportunities]
3344 if (dsTiledDashboard.Tables[4].Rows.Count > 0)
3345 {
3346 objTiledDashboardModel.MyRemortgageOpportunities = new List<RemortgageOpportunities>();
3347 var _MyRemortgageOpportunities = new List<RemortgageOpportunities>();
3348 foreach (DataRow dr in dsTiledDashboard.Tables[4].Rows)
3349 {
3350 var objRemort = new RemortgageOpportunities();
3351 objRemort.Converted = 0;
3352 objRemort.Client = Convert.ToString(dr["ClientName"]);
3353 objRemort.Mortgage = Convert.ToDecimal(Convert.ToString(dr["Mortgage"]));
3354 //objRemort.Lender = Convert.ToString(dr[""]);
3355 //objRemort.Commission =Convert.ToDecimal(Convert.ToString(dr[""]));
3356 //objRemort.Converted= Convert.ToInt32(Convert.ToString(dr[""]));
3357 objRemort.Phone = Convert.ToString(dr["Phone"]);
3358 objRemort.Email = Convert.ToString(dr["Email"]);
3359 _MyRemortgageOpportunities.Add(objRemort);
3360
3361
3362 }
3363 objTiledDashboardModel.MyRemortgageOpportunities = _MyRemortgageOpportunities;
3364 // objTiledDashboardModel.MyRemortgageOpportunities = DataTableHelper.CreateListFromTableForAll<RemortgageOpportunities>(dsTiledDashboard.Tables[4]).ToList();
3365 }
3366 #endregion [My Re-Mortgage Opportunities]
3367
3368 #region [My Total Written]
3369 if (dsTiledDashboard.Tables[1].Rows.Count > 0)
3370 {
3371
3372 objTiledDashboardModel.MyTotalWritten = new List<MyTotalWritten>();
3373 foreach (DataRow dr in dsTiledDashboard.Tables[1].Rows)
3374 {
3375 var objTotalWritten = new MyTotalWritten();
3376 objTotalWritten.LeadCount = Convert.ToString(dr["Fieldname"]);
3377 objTotalWritten.AvgTotalWritten = Convert.ToDecimal(Convert.ToString(dr["FieldPercentage"]));
3378 objTiledDashboardModel.MyTotalWritten.Add(objTotalWritten);
3379 }
3380
3381 //objTiledDashboardModel.MyTotalWritten = DataTableHelper.CreateListFromTableForAll<MyTotalWritten>(dsTiledDashboard.Tables[1]).ToList();
3382 //if (objTiledDashboardModel.MyTotalWritten[0].AvgTotalWritten == 0M && objTiledDashboardModel.MyTotalWritten[1].AvgTotalWritten == 0M && objTiledDashboardModel.MyTotalWritten[2].AvgTotalWritten == 0M)
3383 // objTiledDashboardModel.MyTotalWritten = null;
3384 }
3385 #endregion [My Total Written]
3386
3387 #region [My Mortgages Completed]
3388 if (dsTiledDashboard.Tables[2].Rows.Count > 0)
3389 {
3390 objTiledDashboardModel.MyMortgagesCompleted = new List<MyMortgagesCompleted>();
3391 foreach (DataRow dr in dsTiledDashboard.Tables[2].Rows)
3392 {
3393 var objMortComp = new MyMortgagesCompleted();
3394 objMortComp.ReportField = Convert.ToString(dr["FieldName"]);
3395 objMortComp.ConversionRate = Convert.ToDecimal(Convert.ToString(dr["FieldPercentage"]));
3396 objTiledDashboardModel.MyMortgagesCompleted.Add(objMortComp);
3397 }
3398
3399 //old code
3400 //objTiledDashboardModel.MyMortgagesCompleted = DataTableHelper.CreateListFromTableForAll<MyMortgagesCompleted>(dsTiledDashboard.Tables[2]).ToList();
3401 //if (objTiledDashboardModel.MyMortgagesCompleted[0].ConversionRate == 0.00M && objTiledDashboardModel.MyMortgagesCompleted[1].ConversionRate == 0.00M && objTiledDashboardModel.MyMortgagesCompleted[2].ConversionRate == 0.00M)
3402 // objTiledDashboardModel.MyMortgagesCompleted = null;
3403
3404 }
3405 #endregion [My Mortgages Completed]
3406
3407 #region [My Target Tracking]
3408 Q_Application obj = new Q_Application();
3409 bool role = obj.IsAdmin(SessionHelper.UserId);
3410 if (role)//Admin and Subadmin
3411 {
3412 objTiledDashboardModel.MyTargetTracking = GetTargetSettingsForAdmin(SessionHelper.UserId, SessionHelper.AccountId, SessionHelper.UserId.ToString());
3413 }
3414 else
3415 {
3416 objTiledDashboardModel.MyTargetTracking = GetTargetSettings(SessionHelper.UserId, SessionHelper.AccountId, SessionHelper.UserId.ToString());
3417 }
3418
3419
3420 // objTiledDashboardModel.MyTargetTracking = GetTargetSettings(SessionHelper.UserId, SessionHelper.AccountId, SessionHelper.UserId.ToString());
3421 #endregion [My Target Tracking]
3422
3423 #endregion [Adviser Dashboard]
3424 }
3425 else if (userType == 4)
3426 {
3427
3428 #region [Introducer Dashboard]
3429
3430 #region [Lead Flow]
3431
3432 ReportsModel _model = new ReportsModel();
3433 _model.DataPoints = new List<ReportDataPoint>();
3434 int totallead = 0;
3435 DataTable leadFlowDt = dsTiledDashboard.Tables[7];
3436 if (leadFlowDt != null && leadFlowDt.Rows.Count > 0)
3437 {
3438
3439 foreach (DataRow dr in leadFlowDt.Rows)
3440 {
3441 var ss = new ReportDataPoint();
3442 ss.DayOfYear = Convert.ToInt32(Convert.ToString(dr["DayOfYear"]));
3443 ss.Dated = Convert.ToDateTime(Convert.ToString(dr["DataTime"]));
3444 ss.Value = Convert.ToInt32(Convert.ToString(dr["Value"]));
3445 _model.DataPoints.Add(ss);
3446 totallead += Convert.ToInt32(Convert.ToString(dr["Value"]));
3447 }
3448 _model.days = leadFlowDt.Rows.Count;
3449 _model.TotalLead = totallead;
3450
3451 TimeSpan ts = new TimeSpan(30, 0, 0, 0);
3452 _model.DateFrom = DateTime.Today.Date.Subtract(ts).ToString(Helper.ddMMyyyy);
3453 _model.JavaScriptDateFrom = DateTime.Today.Date.Subtract(ts).ToString(Helper.yyyyMMdd);
3454 _model.DateTo = DateTime.Today.Date.AddDays(1).ToString(Helper.ddMMyyyy);
3455
3456 _model.DateFrom = _model.DateFrom.GetDateString(Helper.ddMMyyyy);
3457 _model.JavaScriptDateFrom = _model.DateFrom.GetJavaScriptDateString();
3458 _model.DateTo = _model.DateTo.GetDateString(Helper.ddMMyyyy);
3459
3460
3461
3462 // _model.JavaScriptDateFrom = leadFlowDt.AsEnumerable().OrderBy(x => x.Field<DateTime>("DataTime")).Select(x=>x.Field<string>("DateTimeString")).FirstOrDefault();
3463 }
3464 objTiledDashboardModel.IntroducerLeadFlow = _model;
3465
3466 #region Introducer lead flow old code
3467
3468 //-----------------Introducer old code
3469 //objTiledDashboardModel.IntrIsSubmit = 0;
3470 //// Initially the finance type will be Mortgage
3471 //int Intrtypeid = SessionHelper.DefaultsettingId > 0 ? SessionHelper.DefaultsettingId : (int)FinanceTypes.Mortgages;
3472 //objTiledDashboardModel.IntrSelectedFinanceTypeName = Enum.GetName(typeof(FinanceTypes), Intrtypeid);
3473 //List<SelectListItem> Intrcompanyitems = new List<SelectListItem>();
3474 //ReportsModel _intrmodel = new ReportsModel();
3475 //Q_Application IntrQApplication = new Q_Application();
3476 //Q_settings IntrQSettings = new Q_settings();
3477
3478 //if (SessionHelper.AccountId > 0)
3479 //{
3480 // int loggedinuser = SessionHelper.UserId;
3481 // int accId = SessionHelper.AccountId;
3482 // ReportsModel Intrmodel = null;
3483 // Intrmodel = new ReportsModel(accId, loggedinuser, Intrtypeid);
3484 // if (Intrmodel != null && Intrmodel.BrokerClients != null)
3485 // {
3486 // Intrmodel.Brokers = Intrmodel.BrokerClients.Select(s => new SelectListItem() { Selected = false, Text = s.contactname + "(" + s.countLeads + ")", Value = s.userid.ToString() }).ToList();
3487 // }
3488 // TimeSpan ts = new TimeSpan(30, 0, 0, 0);
3489 // Intrmodel.DateFrom = System.DateTime.Today.Date.Subtract(ts).ToString(Helper.ddMMyyyy);
3490 // Intrmodel.JavaScriptDateFrom = System.DateTime.Today.Date.Subtract(ts).ToString(Helper.yyyyMMdd);
3491 // Intrmodel.DateTo = System.DateTime.Today.Date.AddDays(1).ToString(Helper.ddMMyyyy);
3492 // Intrmodel.Status = Intrtypeid.GetNewLeadStatus();
3493 // Intrmodel.Source = "all";
3494 // objTiledDashboardModel.IntrBrokersWithTeams = IntrQSettings.GetBrokersWithTeams(loggedinuser);
3495
3496 // //Combo tree data for Client/Branch/Neg
3497
3498 // List<SelectListItem> items = new List<SelectListItem>();
3499 // Q_Client QClient = new Q_Client();
3500 // SelectListItem defaultentry = new SelectListItem();
3501 // defaultentry.Text = "select..";
3502 // defaultentry.Value = "0";
3503 // defaultentry.Selected = true;
3504 // List<Clients> cItems = QClient.FindClients(accId, loggedinuser).OrderBy(c => c.companyname).ToList();
3505 // items = (from Clients in cItems
3506
3507 // select new SelectListItem
3508 // {
3509 // Text = Clients.companyname + "(" + Clients.countLeads + ")",
3510 // Value = Clients.clientid.ToString()
3511 // }).ToList();
3512
3513 // items.Insert(0, defaultentry);
3514 // objTiledDashboardModel.IntrClientData = items;
3515 // //Combo tree data for Client/Branch/Neg
3516
3517 // //Finance Type.
3518 // List<SelectListItem> financetypeData = new List<SelectListItem>();
3519 // List<tblfinancetype> ftitems = IntrQApplication.GetFinanceType();
3520 // financetypeData = (from ft in ftitems
3521 // select new SelectListItem()
3522 // {
3523 // Text = ft.type,
3524 // Value = ft.financetypeid.ToString(),
3525 // Selected = (ft.financetypeid == Intrtypeid)
3526
3527 // }).ToList();
3528
3529 // objTiledDashboardModel.IntrfinancetypeData = financetypeData;
3530
3531 // //Code for Broker (Company)
3532
3533 // var bcompanyitems = (from names in Intrmodel.BrokerClients
3534 // select new
3535 // {
3536 // companyname = names.companyname,
3537 // clientid = names.clientid
3538 // }).Distinct().ToList();
3539 // Intrcompanyitems = bcompanyitems.Select(r => new SelectListItem() { Value = r.companyname, Text = r.companyname }).ToList();
3540 // objTiledDashboardModel.IntrCompanyData = Intrcompanyitems;
3541 // objTiledDashboardModel.IntrBrokderBag = Intrmodel.BrokerClients;
3542
3543
3544 // StringBuilder queryCondition = new StringBuilder();
3545 // StringBuilder queryCondition1 = new StringBuilder();
3546
3547 // StringBuilder queryCon = new StringBuilder();
3548 // StringBuilder queryCon1 = new StringBuilder();
3549
3550 // Q_Application _obj = new Q_Application();
3551 // int teamId = 0;
3552 // string brokersIds = "";
3553 // int _userType = 0;
3554 // int _accountId = 0;
3555 // _userType = _obj.CheckUserType(loggedinuser, out teamId, out _accountId, out brokersIds);
3556
3557 // if (_userType == (int)UserType.Admin && string.IsNullOrWhiteSpace(Intrmodel.Broker))
3558 // {
3559
3560 // var brokers = "";
3561 // int adminaccId = 0;
3562 // if (_obj.IsCreatedAdminUser(accId, loggedinuser, out adminaccId, out brokers))
3563 // {
3564 // Intrmodel.Broker = brokers;
3565 // }
3566 // }
3567 // if (_userType == (int)UserType.Manager && string.IsNullOrWhiteSpace(Intrmodel.Broker))
3568 // {
3569 // Intrmodel.Broker = brokersIds;
3570 // }
3571 // else if (_userType == (int)UserTypes.Broker && string.IsNullOrWhiteSpace(Intrmodel.Broker))
3572 // {
3573 // Intrmodel.Broker = loggedinuser.ToString();
3574 // }
3575
3576 // #region Create Dynamic Conditions for Agent, Broker reports
3577
3578 // if (queryCondition.Length > 0)
3579 // {
3580 // //queryCondition.Append(string.Format(" and ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
3581 // if (_userType == (int)UserType.GeneralUser)
3582 // {
3583 // queryCondition.Append(string.Format(" and (a.accountid = {0} OR b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
3584 // }
3585 // else
3586 // {
3587 // queryCondition.Append(string.Format(" and ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
3588 // }
3589
3590 // queryCon.Append(string.Format(" and ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) and {1} = 880 ", 6569, accId));
3591
3592 // }
3593 // else
3594 // {
3595 // //queryCondition.Append(string.Format(" Where ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
3596 // if (_userType == (int)UserType.GeneralUser)
3597 // {
3598 // queryCondition.Append(string.Format(" Where (a.accountid = {0} OR b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
3599 // }
3600 // else
3601 // {
3602 // queryCondition.Append(string.Format(" Where ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
3603 // }
3604
3605
3606 // queryCon.Append(string.Format(" Where ( b.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) and {1} = 880 ", 6569, accId));
3607
3608 // }
3609
3610
3611 // if (queryCondition1.Length > 0)
3612 // {
3613 // //queryCondition1.Append(string.Format(" and ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
3614
3615 // if (_userType == (int)UserType.GeneralUser)
3616 // {
3617 // queryCondition1.Append(string.Format(" and (a.accountid = {0} or tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
3618 // }
3619 // else
3620 // {
3621 // queryCondition1.Append(string.Format(" and ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) ", accId));
3622 // }
3623
3624
3625 // queryCon1.Append(string.Format(" and ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0} ) and {1} = 880 ", 6569, accId));
3626
3627 // }
3628 // else
3629 // {
3630 // //queryCondition1.Append(string.Format(" Where ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0}) ", accId));
3631 // if (_userType == (int)UserType.GeneralUser)
3632 // {
3633 // queryCondition1.Append(string.Format(" Where (a.accountid = {0} OR dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0}) ", accId));
3634 // }
3635 // else
3636 // {
3637 // queryCondition1.Append(string.Format(" Where ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0}) ", accId));
3638 // }
3639
3640
3641 // queryCon1.Append(string.Format(" Where ( dbo.tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0}) and broker = 1) OR TM.AdminId = {0}) and {1} = 880 ", 6569, accId));
3642
3643 // }
3644
3645
3646 // //Filter by AffliateID
3647 // if (Intrmodel.Affliate != 0)
3648 // {
3649 // if (queryCondition.Length > 0)
3650 // {
3651 // queryCondition.Append(string.Format(" and c.account ={0} ", Intrmodel.Affliate));
3652
3653 // }
3654 // else
3655 // {
3656 // queryCondition.Append(string.Format(" Where c.account ={0} ", Intrmodel.Affliate));
3657 // }
3658
3659 // if (queryCondition1.Length > 0)
3660 // {
3661 // queryCondition1.Append(string.Format(" and c.account ={0} ", Intrmodel.Affliate));
3662 // }
3663 // else
3664 // {
3665 // queryCondition1.Append(string.Format(" Where c.account ={0} ", Intrmodel.Affliate));
3666 // }
3667 // }
3668
3669 // //Filter by BrokerID
3670 // if (!string.IsNullOrEmpty(Intrmodel.Broker) && Intrmodel.Broker != "")
3671 // {
3672 // if (queryCondition.Length > 0)
3673 // {
3674 // queryCondition.Append(string.Format(" and c.broker IN ({0}) ", Intrmodel.Broker));
3675
3676 // queryCon.Append(string.Format(" and c.insurancebroker IN ({0}) ", Intrmodel.Broker));
3677
3678 // }
3679 // else
3680 // {
3681 // queryCondition.Append(string.Format(" Where c.broker IN ({0}) ", Intrmodel.Broker));
3682
3683 // queryCon.Append(string.Format(" Where c.insurancebroker IN ({0}) ", Intrmodel.Broker));
3684
3685 // }
3686
3687 // if (queryCondition1.Length > 0)
3688 // {
3689 // queryCondition1.Append(string.Format(" and c.broker IN ({0}) ", Intrmodel.Broker));
3690
3691
3692 // queryCon1.Append(string.Format(" and c.insurancebroker IN ({0}) ", Intrmodel.Broker));
3693
3694 // }
3695 // else
3696 // {
3697 // queryCondition1.Append(string.Format(" Where c.broker IN ({0}) ", Intrmodel.Broker));
3698
3699
3700 // queryCon1.Append(string.Format(" Where c.insurancebroker IN ({0}) ", Intrmodel.Broker));
3701
3702
3703 // }
3704 // }
3705
3706 // //Filter by Broker ID
3707
3708 // if (Intrmodel.Status != 0)
3709 // {
3710 // if (queryCondition.Length > 0)
3711 // {
3712 // queryCondition.Append(string.Format(" and (fs.status = {0} and fs.createdate is not null) ", Intrmodel.Status));
3713
3714
3715 // queryCon.Append(string.Format(" and (fs.status = {0} and fs.createdate is not null ) ", Intrmodel.Status));
3716
3717 // }
3718 // else
3719 // {
3720 // queryCondition.Append(string.Format(" Where (fs.status = {0} and fs.createdate is not null) ", Intrmodel.Status));
3721
3722
3723 // queryCon.Append(string.Format(" Where (fs.status = {0} and fs.createdate is not null) ", Intrmodel.Status));
3724
3725 // }
3726
3727 // if (queryCondition1.Length > 0)
3728 // {
3729 // queryCondition1.Append(string.Format(" and dbo.tblfinance_statusdate.status = {0} ", Intrmodel.Status));
3730
3731
3732 // queryCon1.Append(string.Format(" and dbo.tblfinance_statusdate.status = {0} ", Intrmodel.Status));
3733
3734 // }
3735 // else
3736 // {
3737 // queryCondition1.Append(string.Format(" Where dbo.tblfinance_statusdate.status = {0} ", Intrmodel.Status));
3738
3739
3740 // queryCon1.Append(string.Format(" Where dbo.tblfinance_statusdate.status = {0} ", Intrmodel.Status));
3741
3742 // }
3743 // }
3744
3745 // //Filter By Source
3746 // if (Intrmodel.Source != "all")
3747 // {
3748 // if (queryCondition.Length > 0)
3749 // {
3750 // queryCondition.Append(string.Format(" and c.source = '{0}'", Intrmodel.Source));
3751
3752
3753 // queryCon.Append(string.Format(" and c.source = '{0}'", Intrmodel.Source));
3754
3755 // }
3756 // else
3757 // {
3758 // queryCondition.Append(string.Format(" Where c.source = '{0}'", Intrmodel.Source));
3759
3760
3761 // queryCon.Append(string.Format(" Where c.source = '{0}'", Intrmodel.Source));
3762
3763 // }
3764
3765 // if (queryCondition1.Length > 0)
3766 // {
3767 // queryCondition1.Append(string.Format(" and c.source = '{0}'", Intrmodel.Source));
3768
3769
3770 // queryCon1.Append(string.Format(" and c.source = '{0}'", Intrmodel.Source));
3771
3772 // }
3773 // else
3774 // {
3775 // queryCondition1.Append(string.Format(" Where c.source = '{0}'", Intrmodel.Source));
3776
3777
3778 // queryCon1.Append(string.Format(" Where c.source = '{0}'", Intrmodel.Source));
3779
3780 // }
3781 // }
3782
3783 // //Filter By DateRange
3784 // if (Intrmodel.DateFrom != null && Intrmodel.DateTo != null)
3785 // {
3786 // if (queryCondition1.Length > 0)
3787 // {
3788 // queryCondition1.Append(string.Format(" and dbo.tblfinance_statusdate.createdate between '{0}' and '{1}' ", Intrmodel.DateFrom.GetDateString(Helper.ddMMMyyyy), Intrmodel.DateTo.GetDateString(Helper.ddMMMyyyy)));
3789
3790
3791 // queryCon1.Append(string.Format(" and dbo.tblLinkInsuranceHistory.createddate between '{0}' and '{1}' ", Intrmodel.DateFrom.GetDateString(Helper.ddMMMyyyy), Intrmodel.DateTo.GetDateString(Helper.ddMMMyyyy)));
3792
3793 // }
3794 // else
3795 // {
3796 // queryCondition1.Append(string.Format(" Where dbo.tblfinance_statusdate.createdate between '{0}' and '{1}' ", Intrmodel.DateFrom.GetDateString(Helper.ddMMMyyyy), Intrmodel.DateTo.GetDateString(Helper.ddMMMyyyy)));
3797
3798
3799 // queryCon1.Append(string.Format(" Where dbo.tblLinkInsuranceHistory.createddate between '{0}' and '{1}' ", Intrmodel.DateFrom.GetDateString(Helper.ddMMMyyyy), Intrmodel.DateTo.GetDateString(Helper.ddMMMyyyy)));
3800
3801 // }
3802 // }
3803
3804 // #endregion
3805
3806 // #region Create Dynamic Conditions for Status and Product Report
3807
3808 // StringBuilder queryStatusReportCondition = new StringBuilder();
3809 // StringBuilder queryStatusReportCon = new StringBuilder();
3810 // if (queryStatusReportCondition.Length > 0)
3811 // {
3812 // //queryStatusReportCondition.Append(string.Format(" and ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
3813 // if (_userType == (int)UserType.GeneralUser)
3814 // {
3815 // queryStatusReportCondition.Append(string.Format(" and (a.accountid = {0} OR tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
3816 // }
3817 // else
3818 // {
3819 // queryStatusReportCondition.Append(string.Format(" and ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
3820 // }
3821
3822 // queryStatusReportCon.Append(string.Format(" and ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) and {1} = 880", 6569, accId));
3823
3824 // }
3825 // else
3826 // {
3827 // //queryStatusReportCondition.Append(string.Format(" Where ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
3828 // if (_userType == (int)UserType.GeneralUser)
3829 // {
3830 // queryStatusReportCondition.Append(string.Format(" Where (a.accountid = {0} OR tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
3831 // }
3832 // else
3833 // {
3834 // queryStatusReportCondition.Append(string.Format(" Where ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) ", accId));
3835
3836 // }
3837
3838
3839 // queryStatusReportCon.Append(string.Format(" Where ( tbluser.account IN ( select account from tbluser where account in (select account from tbluser where adminid = {0})and broker = 1) OR TM.AdminId = {0}) and {1} = 880 ", 6569, accId));
3840
3841 // }
3842
3843 // //Filter By FinanceType
3844
3845 // if (queryCondition.Length > 0)
3846 // {
3847 // queryCondition.Append(string.Format(" and f.type = {0} ", Intrtypeid));
3848
3849
3850 // queryCon.Append(string.Format(" and f.type = {0} ", Intrtypeid));
3851
3852 // }
3853 // else
3854 // {
3855 // queryCondition.Append(string.Format(" Where f.type = {0} ", Intrtypeid));
3856
3857
3858 // queryCon.Append(string.Format(" Where f.type = {0} ", Intrtypeid));
3859
3860 // }
3861
3862 // if (queryCondition1.Length > 0)
3863 // {
3864 // queryCondition1.Append(string.Format(" and dbo.tblfinance.type = {0} ", Intrtypeid));
3865
3866
3867 // queryCon1.Append(string.Format(" and dbo.tblfinance.type = {0} ", Intrtypeid));
3868
3869 // }
3870 // else
3871 // {
3872 // queryCondition1.Append(string.Format(" Where dbo.tblfinance.type = {0} ", Intrtypeid));
3873
3874
3875 // queryCon1.Append(string.Format(" Where dbo.tblfinance.type = {0} ", Intrtypeid));
3876
3877 // }
3878
3879
3880
3881 // //Filter by AffliateID
3882 // if (Intrmodel.Affliate != 0)
3883 // {
3884 // if (queryStatusReportCondition.Length > 0)
3885 // {
3886 // queryStatusReportCondition.Append(string.Format(" and c.account ={0} ", Intrmodel.Affliate));
3887 // }
3888 // else
3889 // {
3890 // queryStatusReportCondition.Append(string.Format(" Where c.account ={0} ", Intrmodel.Affliate));
3891 // }
3892 // }
3893
3894 // //Filter by BrokerID
3895 // if (!string.IsNullOrEmpty(Intrmodel.Broker) && Intrmodel.Broker != "")
3896 // {
3897 // if (queryStatusReportCondition.Length > 0)
3898 // {
3899 // queryStatusReportCondition.Append(string.Format(" and c.broker IN ({0}) ", Intrmodel.Broker));
3900
3901
3902 // queryStatusReportCon.Append(string.Format(" and c.insurancebroker IN ({0}) ", Intrmodel.Broker));
3903
3904 // }
3905 // else
3906 // {
3907 // queryStatusReportCondition.Append(string.Format(" Where c.broker IN ({0}) ", Intrmodel.Broker));
3908
3909
3910 // queryStatusReportCon.Append(string.Format(" Where c.insurancebroker IN ({0}) ", Intrmodel.Broker));
3911
3912 // }
3913 // }
3914
3915 // //Filter By Source
3916 // if (Intrmodel.Source != "all")
3917 // {
3918 // if (queryStatusReportCondition.Length > 0)
3919 // {
3920 // queryStatusReportCondition.Append(string.Format(" and c.source = '{0}'", Intrmodel.Source));
3921
3922 // queryStatusReportCon.Append(string.Format(" and c.source = '{0}'", Intrmodel.Source));
3923
3924 // }
3925 // else
3926 // {
3927 // queryStatusReportCondition.Append(string.Format(" Where c.source = '{0}'", Intrmodel.Source));
3928
3929
3930 // queryStatusReportCon.Append(string.Format(" Where c.source = '{0}'", Intrmodel.Source));
3931
3932 // }
3933 // }
3934
3935 // //Filter By DateRange
3936 // if (Intrmodel.DateFrom != null && Intrmodel.DateTo != null)
3937 // {
3938 // if (queryStatusReportCondition.Length > 0)
3939 // {
3940 // queryStatusReportCondition.Append(string.Format(" and fs.createdate between '{0}' and '{1}' ", Intrmodel.DateFrom.GetDate().Value.ToString("dd/MMM/yyyy"), Intrmodel.DateTo.GetDate().Value.ToString("dd/MMM/yyyy")));
3941
3942 // queryStatusReportCon.Append(string.Format(" and LI.createddate between '{0}' and '{1}' ", Intrmodel.DateFrom.GetDate().Value.ToString("dd/MMM/yyyy"), Intrmodel.DateTo.GetDate().Value.ToString("dd/MMM/yyyy")));
3943 // }
3944 // else
3945 // {
3946 // queryStatusReportCondition.Append(string.Format(" Where fs.createdate between '{0}' and '{1}' ", Intrmodel.DateFrom.GetDate().Value.ToString("dd/MMM/yyyy"), Intrmodel.DateTo.GetDate().Value.ToString("dd/MMM/yyyy")));
3947
3948 // queryStatusReportCon.Append(string.Format(" Where LI.createddate between '{0}' and '{1}' ", Intrmodel.DateFrom.GetDate().Value.ToString("dd/MMM/yyyy"), Intrmodel.DateTo.GetDate().Value.ToString("dd/MMM/yyyy")));
3949 // }
3950 // }
3951
3952 // //Updated on 4/7/2014 to apply finance type over status report Coomented due to 16-07-2014 due to team heirarchy upload
3953 // var _tyfinance = "";
3954 // if (queryStatusReportCondition.Length > 0)
3955 // {
3956 // _tyfinance = " and dbo.tblfinance.type =" + Intrtypeid + " ";
3957 // }
3958 // else
3959 // {
3960 // _tyfinance = " where dbo.tblfinance.type = " + Intrtypeid + " ";
3961 // }
3962
3963
3964 // string _dateFilter = string.Empty;
3965 // if (Intrmodel.DateFrom != null && Intrmodel.DateTo != null)
3966 // {
3967 // _dateFilter = string.Format("where createdate between '{0}' and '{1}' ", Intrmodel.DateFrom.GetDateString(Helper.ddMMMyyyy), Intrmodel.DateTo.GetDateString(Helper.ddMMMyyyy));
3968 // }
3969
3970 // #endregion
3971
3972 // List<BrokerLeadTable> bltList = new List<BrokerLeadTable>();
3973 // List<AgentLeadTable> altList = new List<AgentLeadTable>();
3974 // List<ProductReport> productreportlist = new List<ProductReport>();
3975 // List<statusReport> statusReportList = new List<statusReport>();
3976
3977 // foreach (BrokerLeadTable blt in IntrQApplication.GetBrokerLeadReportByIds(queryCondition.ToString(), accId, queryCon.ToString(), _dateFilter.ToString()))
3978 // {
3979 // BrokerLeadTable _BrokerLeadTable = new BrokerLeadTable();
3980 // _BrokerLeadTable.Brokerid = blt.Brokerid;
3981 // _BrokerLeadTable.BrokerName = blt.BrokerName;
3982 // _BrokerLeadTable.LeadPercent = blt.LeadPercent;
3983 // _BrokerLeadTable.NoOfLeads = blt.NoOfLeads;
3984 // _BrokerLeadTable.OfferQualification = blt.OfferQualification;
3985 // bltList.Add(_BrokerLeadTable);
3986 // }
3987
3988 // foreach (AgentLeadTable alt in IntrQApplication.GetAfflicateLeadReportByIds(queryCondition.ToString(), accId, false, queryCon.ToString(), _dateFilter.ToString()))
3989 // {
3990 // AgentLeadTable _agentlead = new AgentLeadTable();
3991 // _agentlead.AgentId = alt.AgentId;
3992 // _agentlead.AgentName = alt.AgentName;
3993 // _agentlead.LeadPercent = alt.LeadPercent;
3994 // _agentlead.NoOfLeads = alt.NoOfLeads;
3995 // _agentlead.OfferQualification = alt.OfferQualification;
3996 // altList.Add(_agentlead);
3997 // }
3998
3999 // foreach (ProductReport pr in IntrQApplication.GetProductReportByIds(queryStatusReportCondition.ToString(), accId, Intrmodel.DateFrom.GetDate().Value, Intrmodel.DateTo.GetDate().Value, queryStatusReportCon.ToString()))
4000 // {
4001 // ProductReport _productreport = new ProductReport();
4002 // _productreport.Product = pr.Product;
4003 // _productreport.NoOfLeads = pr.NoOfLeads;
4004 // _productreport.InProgress = pr.InProgress;
4005 // _productreport.Complete = pr.Complete;
4006 // _productreport.TotalCommission = pr.TotalCommission;
4007 // _productreport.AvgCommission = pr.AvgCommission;
4008 // _productreport.WrittCompPerc = pr.WrittCompPerc;
4009 // productreportlist.Add(_productreport);
4010 // }
4011
4012 // foreach (statusReport sr in IntrQApplication.GetStatusReportByIds(queryStatusReportCondition.ToString() + _tyfinance, accId, queryStatusReportCon.ToString() + _tyfinance))
4013 // {
4014 // statusReport _statusReport = new statusReport();
4015 // _statusReport.status = sr.status;
4016 // _statusReport.NoOfLeads = sr.NoOfLeads;
4017 // statusReportList.Add(_statusReport);
4018 // }
4019
4020 // _intrmodel = Intrmodel;
4021 // _intrmodel.DateFrom = Intrmodel.DateFrom.GetDateString(Helper.ddMMyyyy);
4022 // _intrmodel.JavaScriptDateFrom = Intrmodel.DateFrom.GetJavaScriptDateString();
4023 // _intrmodel.DateTo = Intrmodel.DateTo.GetDateString(Helper.ddMMyyyy);
4024 // _intrmodel.Broker = Intrmodel.Broker;
4025 // _intrmodel.Affliate = Intrmodel.Affliate;
4026 // _intrmodel.Status = Intrmodel.Status;
4027 // _intrmodel.BrokerLeadTableReport = bltList;
4028 // _intrmodel.AgentLeadTableReport = altList;
4029 // _intrmodel.ProductReport = productreportlist;
4030 // _intrmodel.StatusReport = statusReportList;
4031
4032 // _intrmodel.DataPoints = new List<ReportDataPoint>();
4033 // _intrmodel.DataPoints.AddRange(IntrQApplication.GetLeadReportByIds(queryCondition1.ToString(), accId, queryCon1.ToString()));
4034
4035 // int _day = 1;
4036
4037 // for (DateTime dt = Intrmodel.DateFrom.GetDate().Value; dt <= Intrmodel.DateTo.GetDate().Value; dt = dt.AddDays(1), _day++)
4038 // {
4039 // var v = _intrmodel.DataPoints.FirstOrDefault(s => s.Dated.Date == dt.Date);
4040 // if (v != null)
4041 // {
4042 // v.DayOfYear = _day;
4043 // }
4044 // }
4045 // //_intrmodel.days = _day;
4046 // TimeSpan daysDiff = Convert.ToDateTime(Intrmodel.DateFrom.GetDate()) - Convert.ToDateTime(Intrmodel.DateTo.GetDate());
4047 // _intrmodel.days = Math.Abs(daysDiff.Days) - 1;//_day;
4048
4049 //}
4050 //else
4051 //{
4052 // Helper.ErrorLog(null, "TiledDashboard", "LeadFlow", "Redirect to Home.");
4053 //}
4054
4055 //_intrmodel.IsNeg = false;
4056 //objTiledDashboardModel.IntroducerLeadFlow = _intrmodel;
4057 #endregion introducer lead flow old code
4058
4059 #endregion [Lead Flow]
4060
4061 #region [My Mortgage Case Written]
4062 if (dsTiledDashboard.Tables[10].Rows.Count > 0)
4063 {
4064
4065 objTiledDashboardModel.IntroducerMortgageCaseWritten = (from System.Data.DataRow row in dsTiledDashboard.Tables[10].Rows
4066 select new MortgageCaseWritten
4067 {
4068 // BrokerID =dbContext.tblusers.Where(x=>x.brokername==Convert.ToString(row["AdviserName"])).Select(x=>x.userid)
4069 //BrokerID = Convert.ToInt32((row["BrokerID"] == DBNull.Value || row["BrokerID"] == null) ? "" : row["BrokerID"]),
4070 BrokerName = ((row["AdviserName"] == DBNull.Value || row["AdviserName"] == null) ? "" : row["AdviserName"]).ToString(),
4071 //EstateAgent = ((row["EstateAgent"] == DBNull.Value || row["EstateAgent"] == null) ? " " : row["EstateAgent"]).ToString(),
4072 //EstateAgentId = Convert.ToInt32(((row["EstateAgentId"] == DBNull.Value || row["EstateAgentId"] == null) ? "0" : row["EstateAgentId"])),
4073 //Negociator = ((row["Negociator"] == DBNull.Value || row["Negociator"] == null) ? "" : row["Negociator"]).ToString(),
4074 created = (DateTime)((row["created"] == DBNull.Value || row["created"] == null) ? (DateTime?)null : Convert.ToDateTime(row["created"])),
4075 //Type = ((row["Type"] == DBNull.Value || row["Type"] == null) ? "" : row["Type"]).ToString(),
4076 Name = ((row["clientName"] == DBNull.Value || row["clientName"] == null) ? "" : row["clientName"]).ToString(),
4077 Lender = ((row["Lender"] == DBNull.Value || row["Lender"] == null) ? "" : row["Lender"]).ToString(),
4078 Amount = (decimal)((row["LoanAmnt"] == DBNull.Value || row["LoanAmnt"] == null) ? (decimal)0 : Convert.ToDecimal(row["LoanAmnt"])),
4079 ProcurationFee = (decimal)((row["ProcFee"] == DBNull.Value || row["ProcFee"] == null) ? (decimal)0 : Convert.ToDecimal(row["ProcFee"])),
4080 AgentFee = (decimal)((row["AgentComm"] == DBNull.Value || row["AgentComm"] == null) ? (decimal)0 : Convert.ToDecimal(row["AgentComm"])),
4081 //Solicitor = ((row["Solicitor"] == DBNull.Value || row["Solicitor"] == null) ? "" : row["Solicitor"]).ToString(),
4082 ClientFee = (decimal)((row["ClientFee"] == DBNull.Value || row["ClientFee"] == null) ? (decimal)0 : Convert.ToDecimal(row["ClientFee"])),
4083 //Branch = ((row["Branch"] == DBNull.Value || row["Branch"] == null) ? "" : row["Branch"]).ToString(),
4084 //SplitCommission = (decimal)((row["SplitCommission"] == DBNull.Value || row["SplitCommission"] == null) ? (decimal)0 : Convert.ToDecimal(row["SplitCommission"])),
4085 //SplitCommBroker = ((row["SplitCommBroker"] == DBNull.Value || row["SplitCommBroker"] == null) ? "" : row["SplitCommBroker"]).ToString(),
4086 //SplitCommBrokerId = Convert.ToInt32((row["SplitCommBrokerId"] == DBNull.Value || row["SplitCommBrokerId"] == null) ? "0" : row["SplitCommBrokerId"]),
4087 //SplitAgentfee = (decimal)((row["SplitAgentfee"] == DBNull.Value || row["SplitAgentfee"] == null) ? (decimal)0 : Convert.ToDecimal(row["SplitAgentfee"])),
4088 }).OrderByDescending(c => c.created).ToList();
4089 //var mor = objTiledDashboardModel.IntroducerMortgageCaseWritten.Where(x => (x.SplitCommBrokerId ?? 0) != 0).ToList();
4090 //foreach (var v in mor)
4091 //{
4092 // MortgageCaseWritten obj = new MortgageCaseWritten();
4093 // obj.BrokerID = (v.SplitCommBrokerId ?? 0);
4094 // obj.BrokerName = v.SplitCommBroker;
4095 // obj.ProcurationFee = v.SplitCommission;
4096 // obj.EstateAgent = v.EstateAgent;
4097 // obj.EstateAgentId = v.EstateAgentId;
4098 // obj.Negociator = v.Negociator;
4099 // obj.created = v.created;
4100 // obj.Type = v.Type;
4101 // obj.Name = v.Name;
4102 // obj.Lender = v.Lender;
4103 // obj.Amount = 0;
4104 // obj.AgentFee = v.SplitAgentfee;
4105 // obj.Solicitor = v.Solicitor;
4106 // obj.ClientFee = 0;
4107 // obj.Branch = v.Branch;
4108 // obj.SplitCommission = 0;
4109 // obj.SplitCommBroker = string.Empty;
4110 // obj.SplitCommBrokerId = 0;
4111 // objTiledDashboardModel.IntroducerMortgageCaseWritten.Add(obj);
4112 //}
4113
4114 objTiledDashboardModel.IntroducerDistinctBrokers = new List<DisticntBrokers>();
4115 if (objTiledDashboardModel.IntroducerMortgageCaseWritten != null && objTiledDashboardModel.IntroducerMortgageCaseWritten.Count() > 0)
4116 {
4117 //objTiledDashboardModel.IntroducerDistinctBrokers = (from m in objTiledDashboardModel.IntroducerMortgageCaseWritten
4118 // select new DisticntBrokers
4119 // {
4120 // // BrokerID = m.BrokerID,
4121 // BrokerName = m.BrokerName,
4122 // //Branch = m.Branch
4123
4124 // }).GroupBy(c => c.BrokerID, (key, group) => group.First()).OrderBy(c => c.BrokerName).ToList();
4125
4126
4127 objTiledDashboardModel.IntroducerDistinctBrokers = new List<DisticntBrokers>();
4128
4129 var distBrokerlst = objTiledDashboardModel.IntroducerMortgageCaseWritten.Select(x => x.BrokerName).Distinct().ToList();
4130 if (distBrokerlst != null && distBrokerlst.Count > 0)
4131 {
4132 foreach (var item in distBrokerlst)
4133 {
4134 DisticntBrokers objDstBroker = new DisticntBrokers();
4135 objDstBroker.BrokerName = item.ToString();
4136 objTiledDashboardModel.IntroducerDistinctBrokers.Add(objDstBroker);
4137 }
4138 }
4139 }
4140 }
4141
4142 #endregion [My Mortgage Case Written]
4143
4144 #endregion [Introducer Dashboard]
4145 }
4146 }
4147 }
4148 catch (Exception ex)
4149 {
4150 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetTiledDashboardData", ex.Message);
4151 }
4152 return objTiledDashboardModel;
4153 }
4154
4155 /// <summary>
4156 /// Get target settings detail for any user.
4157 /// </summary>
4158 /// <param name="LoggedInUserId"></param>
4159 /// <returns></returns>
4160 public TargetSettings GetTargetSettings(int LoggedInUserId, int LoggedInUserAccountId, string BrokerId, int month = 0)
4161 {
4162 TargetSettings objTargetSettings = new TargetSettings();
4163 try
4164 {
4165 SqlParameter[] Param = new SqlParameter[5];
4166 Param[0] = new SqlParameter("@LoggedInUserId", LoggedInUserId);
4167 Param[1] = new SqlParameter("@LoggedInUserAccountId", LoggedInUserAccountId);
4168 Param[2] = new SqlParameter("@productTypeID", LoggedInUserAccountId == 880 ? 2 : 1);//2- Life, 1- Mortgage
4169 Param[3] = new SqlParameter("@BrokerId", BrokerId);
4170 Param[4] = new SqlParameter("@Month", month);
4171 DataSet dsTargetSettings = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "GetTargetSettingsDetails", Param);
4172
4173 if (dsTargetSettings != null && dsTargetSettings.Tables[0].Rows.Count > 0)
4174 {
4175 objTargetSettings = (from DataRow dr in dsTargetSettings.Tables[0].Rows
4176 select new TargetSettings
4177 {
4178 Id = Convert.ToInt32(dr["Id"]),
4179 UserId = Convert.ToInt32(dr["UserId"]),
4180 AnualTargetTotalWritten = Convert.ToDecimal(dr["AnualTargetTotalWritten"]),
4181 MonthlyTargetTotalWritten = Convert.ToDecimal(dr["MonthlyTargetTotalWritten"]),
4182 AnualTargetTotalCompleted = Convert.ToDecimal(dr["AnualTargetTotalCompleted"]),
4183 MonthlyTargetTotalCompleted = Convert.ToDecimal(dr["MonthlyTargetTotalCompleted"]),
4184 TargetTotalWritten = Convert.ToDecimal(dr["AnualTargetTotalWritten"]),
4185 TargetTotalCompleted = Convert.ToDecimal(dr["AnualTargetTotalCompleted"]),
4186
4187 }).OrderByDescending(x => x.Id).FirstOrDefault();
4188 if (objTargetSettings == null)
4189 {
4190 objTargetSettings = new TargetSettings();
4191 objTargetSettings.UserId = LoggedInUserId;
4192 }
4193
4194 //Anual
4195 if (dsTargetSettings.Tables[2] != null && dsTargetSettings.Tables[2].Rows.Count > 0)
4196 {
4197 objTargetSettings.ActualTotalWritten = Convert.ToDecimal(dsTargetSettings.Tables[2].Rows[0]["AnnualTotalWritten"]);
4198 }
4199 else
4200 {
4201 objTargetSettings.ActualTotalWritten = 0;
4202 }
4203 if (dsTargetSettings.Tables[1] != null && dsTargetSettings.Tables[1].Rows.Count > 0)
4204 {
4205 objTargetSettings.ActualTotalCompleted = Convert.ToDecimal(dsTargetSettings.Tables[1].Rows[0]["AnualMortgageCompleted"]);
4206 }
4207 else
4208 {
4209 objTargetSettings.ActualTotalCompleted = 0;
4210 }
4211
4212 objTargetSettings.TotalDaysInYear = new DateTime(DateTime.Now.Year, 12, 31).DayOfYear;
4213 objTargetSettings.DayOfYear = DateTime.Now.DayOfYear;
4214 objTargetSettings.EstimatedTotalWritten = decimal.Round((objTargetSettings.ActualTotalWritten / objTargetSettings.DayOfYear) * objTargetSettings.TotalDaysInYear, 2);
4215 objTargetSettings.EstimatedTotalCompleted = decimal.Round((objTargetSettings.ActualTotalCompleted / objTargetSettings.DayOfYear) * objTargetSettings.TotalDaysInYear, 2);
4216
4217 //Monthly
4218 if (dsTargetSettings.Tables[4] != null && dsTargetSettings.Tables[4].Rows.Count > 0)
4219 {
4220 objTargetSettings.ActualTotalWrittenMonthly = decimal.Round(Convert.ToDecimal(dsTargetSettings.Tables[4].Rows[0]["MonthlyTotalWritten"]), 2);
4221 }
4222 else
4223 {
4224 objTargetSettings.ActualTotalWrittenMonthly = 0;
4225 }
4226 if (dsTargetSettings.Tables[3] != null && dsTargetSettings.Tables[3].Rows.Count > 0)
4227 {
4228 objTargetSettings.ActualTotalCompletedMonthly = decimal.Round(Convert.ToDecimal(dsTargetSettings.Tables[3].Rows[0]["MonthlyMortgageCompleted"]), 2);
4229 }
4230 else
4231 {
4232 objTargetSettings.ActualTotalCompletedMonthly = 0;
4233 }
4234 objTargetSettings.TotalDaysInMonth = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
4235 objTargetSettings.DayofMonth = DateTime.Now.Day;
4236 objTargetSettings.EstimatedTotalCompletedMonthly = decimal.Round((objTargetSettings.ActualTotalCompletedMonthly / objTargetSettings.DayofMonth) * objTargetSettings.TotalDaysInMonth, 2);
4237 objTargetSettings.EstimatedTotalWrittenMonthly = decimal.Round((objTargetSettings.ActualTotalWrittenMonthly / objTargetSettings.DayofMonth) * objTargetSettings.TotalDaysInMonth, 2);
4238
4239 //Weekly
4240 if (dsTargetSettings.Tables[8] != null && dsTargetSettings.Tables[8].Rows.Count > 0)
4241 {
4242 objTargetSettings.WeeklyTargetTotalWritten = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[8].Rows[0]["WeeklyTargetTotalWritten"] == DBNull.Value || dsTargetSettings.Tables[8].Rows[0]["WeeklyTargetTotalWritten"] == null) ? 0.0M : dsTargetSettings.Tables[8].Rows[0]["WeeklyTargetTotalWritten"]), 2);
4243 }
4244 else
4245 {
4246 objTargetSettings.WeeklyTargetTotalWritten = 0;
4247 }
4248 if (dsTargetSettings.Tables[9] != null && dsTargetSettings.Tables[9].Rows.Count > 0)
4249 {
4250 objTargetSettings.WeeklyActualTotalWritten = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[9].Rows[0]["WeeklyTotalWritten"] == DBNull.Value || dsTargetSettings.Tables[9].Rows[0]["WeeklyTotalWritten"] == null) ? 0.0M : dsTargetSettings.Tables[9].Rows[0]["WeeklyTotalWritten"]), 2);
4251 }
4252 else
4253 {
4254 objTargetSettings.WeeklyActualTotalWritten = 0;
4255 }
4256 objTargetSettings.EstimatedTotalWrittenWeekly = decimal.Round((objTargetSettings.WeeklyActualTotalWritten / (int)DateTime.Now.DayOfWeek) * objTargetSettings.TotalDaysInWeek, 2);
4257 objTargetSettings.TotalDaysInWeek = 7;
4258
4259
4260 ////Quartely
4261
4262 if (dsTargetSettings.Tables[5] != null && dsTargetSettings.Tables[5].Rows.Count > 0)
4263 {
4264 objTargetSettings.QuarterlyTargetTotalWritten = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[5].Rows[0]["QuarterlyTargetTotalWritten"] == DBNull.Value || dsTargetSettings.Tables[5].Rows[0]["QuarterlyTargetTotalWritten"] == null) ? 0.0M : dsTargetSettings.Tables[5].Rows[0]["QuarterlyTargetTotalWritten"]), 2);
4265 }
4266 else
4267 {
4268 objTargetSettings.QuarterlyTargetTotalWritten = 0;
4269 }
4270 if (dsTargetSettings.Tables[6] != null && dsTargetSettings.Tables[6].Rows.Count > 0)
4271 {
4272
4273 objTargetSettings.QuarterlyActualTotalCompleted = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[6].Rows[0]["QuarterlyMortgageCompleted"] == DBNull.Value || dsTargetSettings.Tables[6].Rows[0]["QuarterlyMortgageCompleted"] == null) ? 0.0M : dsTargetSettings.Tables[6].Rows[0]["QuarterlyMortgageCompleted"]), 2);
4274 }
4275 else
4276 {
4277 objTargetSettings.QuarterlyActualTotalCompleted = 0;
4278 }
4279 if (dsTargetSettings.Tables[7] != null && dsTargetSettings.Tables[7].Rows.Count > 0)
4280 {
4281
4282 objTargetSettings.QuarterlyActualTotalWritten = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[7].Rows[0]["QuarterlyTotalWritten"] == DBNull.Value || dsTargetSettings.Tables[7].Rows[0]["QuarterlyTotalWritten"] == null) ? 0.0M : dsTargetSettings.Tables[7].Rows[0]["QuarterlyTotalWritten"]), 2);
4283 }
4284 else
4285 {
4286 objTargetSettings.QuarterlyActualTotalWritten = 0;
4287 }
4288 DateTime date = DateTime.Now;
4289 int quarterNumber = (date.Month - 1) / 3 + 1;
4290 DateTime firstDayOfQuarter = new DateTime(date.Year, (quarterNumber - 1) * 3 + 1, 1);
4291 DateTime lastDayOfQuarter = firstDayOfQuarter.AddMonths(3).AddDays(-1);
4292 objTargetSettings.TotalDaysInQuarter = Convert.ToInt32((lastDayOfQuarter - firstDayOfQuarter).TotalDays);
4293 objTargetSettings.EstimatedTotalWrittenQuarterly = decimal.Round((objTargetSettings.QuarterlyActualTotalWritten / DateTime.Now.Day) * objTargetSettings.TotalDaysInQuarter, 2);
4294 objTargetSettings.EstimatedTotalCompletedQuarterly = decimal.Round((objTargetSettings.QuarterlyActualTotalCompleted / DateTime.Now.Day) * objTargetSettings.TotalDaysInQuarter, 2);
4295
4296 }
4297 else
4298 {
4299 objTargetSettings = null;
4300 }
4301 }
4302 catch (Exception ex)
4303 {
4304 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetTargetSettingsDetails", ex.Message);
4305 }
4306
4307 return objTargetSettings;
4308 }
4309
4310 /// <summary>
4311 /// Get visitor target settings detail for any user.
4312 /// change by 1826
4313 /// </summary>
4314 /// <param name="LoggedInUserId"></param>
4315 /// <returns></returns>
4316 public AdviserTargetSetting GetAdviserTargetSettings(int LoggedInUserId, int LoggedInUserAccountId, string BrokerId, string TargetType, string TargetMonth)
4317 {
4318 AdviserTargetSetting objTargetSettings = new AdviserTargetSetting();
4319 try
4320 {
4321 SqlParameter[] Param = new SqlParameter[5];
4322 Param[0] = new SqlParameter("@LoggedInUserId", LoggedInUserId);
4323 Param[1] = new SqlParameter("@AdviserId", BrokerId);
4324 Param[2] = new SqlParameter("@ReportTargetType", TargetType);
4325 DataSet dsTargetSettings = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "GetAdviserTargetSettingsDetails", Param);
4326
4327 if (dsTargetSettings != null && dsTargetSettings.Tables[0].Rows.Count > 0)
4328 {
4329 objTargetSettings = (from DataRow dr in dsTargetSettings.Tables[0].Rows
4330 select new AdviserTargetSetting
4331 {
4332 AdviserTargetId = Convert.ToInt32(dr["AdviserTargetId"]),
4333 UserId = Convert.ToInt32(dr["UserId"]),
4334 AdviserId = dr["AdviserId"].ToString(),
4335 TargetType = dr["ReportTargetType"].ToString(),
4336 MonthValue = Math.Round(Convert.ToDecimal(SelectMonthValue(dr, TargetMonth)), 2),
4337 }).OrderByDescending(x => x.AdviserTargetId).FirstOrDefault();
4338 if (objTargetSettings == null)
4339 {
4340 objTargetSettings = new AdviserTargetSetting();
4341 objTargetSettings.UserId = LoggedInUserId;
4342 }
4343
4344 }
4345 else
4346 {
4347 objTargetSettings = null;
4348 }
4349 }
4350 catch (Exception ex)
4351 {
4352 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetAdviserTargetSettingsDetails", ex.Message);
4353 }
4354
4355 return objTargetSettings;
4356 }
4357
4358 public AdviserTargetSetting GetAdviserQuarterTargetSettings(int LoggedInUserId, int LoggedInUserAccountId, string BrokerId, string TargetType, string TargetQuarter)
4359 {
4360 AdviserTargetSetting objTargetSettings = new AdviserTargetSetting();
4361 try
4362 {
4363 SqlParameter[] Param = new SqlParameter[5];
4364 Param[0] = new SqlParameter("@LoggedInUserId", LoggedInUserId);
4365 Param[1] = new SqlParameter("@AdviserId", BrokerId);
4366 Param[2] = new SqlParameter("@ReportTargetType", TargetType);
4367
4368 DataSet dsTargetSettings = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "GetAdviserTargetSettingsDetails", Param);
4369
4370 if (dsTargetSettings != null && dsTargetSettings.Tables[0].Rows.Count > 0)
4371 {
4372 objTargetSettings = (from DataRow dr in dsTargetSettings.Tables[0].Rows
4373 select new AdviserTargetSetting
4374 {
4375 AdviserTargetId = Convert.ToInt32(dr["AdviserTargetId"]),
4376 UserId = Convert.ToInt32(dr["UserId"]),
4377 AdviserId = dr["AdviserId"].ToString(),
4378 TargetType = dr["ReportTargetType"].ToString(),
4379 Targetquarterly = Convert.ToString(SelectQuarterValue(dr, TargetQuarter)),
4380 }).OrderByDescending(x => x.AdviserTargetId).FirstOrDefault();
4381 if (objTargetSettings == null)
4382 {
4383 objTargetSettings = new AdviserTargetSetting();
4384 objTargetSettings.UserId = LoggedInUserId;
4385 }
4386
4387 }
4388 else
4389 {
4390 objTargetSettings = null;
4391 }
4392 }
4393 catch (Exception ex)
4394 {
4395 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetAdviserTargetSettingsDetails", ex.Message);
4396 }
4397
4398 return objTargetSettings;
4399 }
4400
4401 /// <summary>
4402 /// Get All Dashboard data
4403 /// </summary>
4404 /// <param name="loggedinUserAccountId"></param>
4405 /// <param name="loggedinUserId"></param>
4406 /// <returns></returns>
4407 public DataSet GetAllDashboardData(int loggedinUserAccountId, int loggedinUserId)
4408 {
4409 SqlParameter[] Param = new SqlParameter[2];
4410 Param[0] = new SqlParameter("@LoggedInUserId", loggedinUserId);
4411 Param[1] = new SqlParameter("@LoggedInUserAccountId", loggedinUserAccountId);
4412 DataSet dsDashboard = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "GetDashboardDataForMobile", Param);
4413 return dsDashboard;
4414 }
4415
4416 public TargetSettings GetTargetSettingsYearly(int userId, int accountId, string hdnnamearraybroker = "", string hdnnamearraybrokerNames = "", string TargetType = "", string TargetYear = "")
4417 {
4418 TargetSettings model = new Models.TargetSettings();
4419 try
4420 {
4421 if (hdnnamearraybroker == "")
4422 {
4423 List<JsTreeClientModel> AdviserListmodel = new List<JsTreeClientModel>();
4424 int userType = 0;
4425 var Id = GetUserTypeAndId(userId, out userType);
4426 try
4427 {
4428 SqlParameter[] Param = new SqlParameter[2];
4429 Param[0] = new SqlParameter("@UserType", userType);
4430 Param[1] = new SqlParameter("@ID", Id);
4431 DataTable dt = SqlHelper.ExecuteDatatable(CommandType.StoredProcedure, "GetBrokerTreeData", Param);
4432 AdviserListmodel = (from DataRow row in dt.Rows
4433 select new JsTreeClientModel
4434 {
4435 id = ((row["id"] == DBNull.Value || row["id"] == null) ? "" : row["id"]).ToString(),
4436 text = ((row["text"] == DBNull.Value || row["text"] == null) ? "" : row["text"]).ToString(),
4437 parent = ((row["parent"] == DBNull.Value || row["parent"] == null) ? "" : row["parent"]).ToString(),
4438 icon = ((row["icon"] == DBNull.Value || row["icon"] == null) ? "" : row["icon"]).ToString()
4439 }).ToList();
4440 }
4441 catch (Exception ex)
4442 {
4443 Helper.ErrorLog(ex.InnerException, "JsTreeSource", "GetBrokerTreeSource", ex.Message);
4444 }
4445 List<int> adviserid = new List<int>();
4446 List<string> advisernamelist = new List<string>();
4447 foreach (var item in AdviserListmodel)
4448 {
4449 int n;
4450 bool isNumeric = int.TryParse(item.id, out n);
4451 if (isNumeric)
4452 { adviserid.Add(n); advisernamelist.Add(item.text); }
4453
4454 }
4455 hdnnamearraybroker = String.Join(",", adviserid);
4456 hdnnamearraybrokerNames = String.Join(",", advisernamelist);
4457 }
4458 List<AdviserTargetSetting> objTargetSettingsList = new List<AdviserTargetSetting>();
4459 string[] hdnnamearraybrokerList = hdnnamearraybroker.Split(',');
4460 string[] hdnnamearraybrokerNamesList = hdnnamearraybrokerNames.Split(',');
4461 int counter = 0;
4462 foreach (string hdnnamearraybrokerid in hdnnamearraybrokerList)
4463 {
4464 AdviserTargetSetting objTargetSettings = new AdviserTargetSetting();
4465 if (!string.IsNullOrEmpty(hdnnamearraybrokerid) && (Convert.ToUInt32(hdnnamearraybrokerid) > 0))
4466 {
4467 if (accountId > 0)
4468 {
4469 objTargetSettings = GetAdviserYearlyTargetSettings(userId, accountId, hdnnamearraybrokerid, TargetType, TargetYear);
4470 if (objTargetSettings == null)
4471 objTargetSettings = new Models.AdviserTargetSetting();
4472
4473 }
4474 objTargetSettings.AdviserId = hdnnamearraybrokerid;
4475 objTargetSettings.AdviserName = hdnnamearraybrokerNamesList[counter].ToString() == "" ? "" : hdnnamearraybrokerNamesList[counter].ToString();
4476 objTargetSettings.TargetType = TargetType;
4477 objTargetSettings.TargetYear = TargetYear;
4478 objTargetSettings.Message = string.Empty;
4479
4480 }
4481
4482 objTargetSettingsList.Add(objTargetSettings);
4483 counter = counter + 1;
4484
4485 }
4486 model.TargetType = TargetType;
4487 model.AdviserTargetSettingList = objTargetSettingsList;
4488 model.TargetYear = TargetYear;
4489 }
4490 catch (Exception ex)
4491 {
4492 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetTargetSettingYearly", ex.Message);
4493 }
4494 return model;
4495 }
4496
4497 public TargetSettings GetTargetSettingMonthly(int userId, int accountId, string hdnnamearraybroker = "", string hdnnamearraybrokerNames = "", string TargetType = "", string TargetMonth = "", string MonthName = "", string TargetMonthName = "")
4498 {
4499 TargetSettings model = new Models.TargetSettings();
4500 try
4501 {
4502
4503 if (hdnnamearraybroker == "")
4504 {
4505 List<JsTreeClientModel> AdviserListmodel = new List<JsTreeClientModel>();
4506 int userType = 0;
4507 var Id = GetUserTypeAndId(userId, out userType);
4508 try
4509 {
4510 SqlParameter[] Param = new SqlParameter[2];
4511 Param[0] = new SqlParameter("@UserType", userType);
4512 Param[1] = new SqlParameter("@ID", Id);
4513 DataTable dt = SqlHelper.ExecuteDatatable(CommandType.StoredProcedure, "GetBrokerTreeData", Param);
4514 AdviserListmodel = (from DataRow row in dt.Rows
4515 select new JsTreeClientModel
4516 {
4517 id = ((row["id"] == DBNull.Value || row["id"] == null) ? "" : row["id"]).ToString(),
4518 text = ((row["text"] == DBNull.Value || row["text"] == null) ? "" : row["text"]).ToString(),
4519 parent = ((row["parent"] == DBNull.Value || row["parent"] == null) ? "" : row["parent"]).ToString(),
4520 icon = ((row["icon"] == DBNull.Value || row["icon"] == null) ? "" : row["icon"]).ToString()
4521 }).ToList();
4522 }
4523 catch (Exception ex)
4524 {
4525 Helper.ErrorLog(ex.InnerException, "JsTreeSource", "GetBrokerTreeSource", ex.Message);
4526 }
4527 List<int> adviserid = new List<int>();
4528 List<string> advisernamelist = new List<string>();
4529 foreach (var item in AdviserListmodel)
4530 {
4531 int n;
4532 bool isNumeric = int.TryParse(item.id, out n);
4533 if (isNumeric)
4534 { adviserid.Add(n); advisernamelist.Add(item.text); }
4535
4536 }
4537 hdnnamearraybroker = String.Join(",", adviserid);
4538 hdnnamearraybrokerNames = String.Join(",", advisernamelist);
4539 }
4540 model.MonthName = TargetMonthName;
4541 List<AdviserTargetSetting> objTargetSettingsList = new List<AdviserTargetSetting>();
4542 string[] hdnnamearraybrokerList = hdnnamearraybroker.Split(',');
4543 string[] hdnnamearraybrokerNamesList = hdnnamearraybrokerNames.Split(',');
4544 string[] TargetmonthNameList = TargetMonthName.TrimEnd(',').Split(',');
4545 string[] TargetMonthList = TargetMonth.TrimEnd(',').Split(',');
4546 int counter = 0;
4547 foreach (string hdnnamearraybrokerid in hdnnamearraybrokerList)
4548 {
4549 int monthcounter = 0;
4550 foreach (string month in TargetMonthList)
4551 {
4552 AdviserTargetSetting objTargetSettings = new AdviserTargetSetting();
4553 if (!string.IsNullOrEmpty(hdnnamearraybrokerid) && (Convert.ToUInt32(hdnnamearraybrokerid) > 0))
4554 {
4555 if (accountId > 0)
4556 {
4557 objTargetSettings = GetAdviserTargetSettings(userId, accountId, hdnnamearraybrokerid, TargetType, month);
4558 if (objTargetSettings == null)
4559 objTargetSettings = new Models.AdviserTargetSetting();
4560 //added by nishant dated 29 april 2016 to add user id in the empty model for which data has to be added in the database from admin section
4561 }
4562 objTargetSettings.AdviserId = hdnnamearraybrokerid;
4563 objTargetSettings.AdviserName = hdnnamearraybrokerNamesList[counter].ToString() == "" ? "" : hdnnamearraybrokerNamesList[counter].ToString();
4564 objTargetSettings.TargetType = TargetType;
4565 objTargetSettings.TargetMonth = month;
4566 objTargetSettings.TargetMonthName = TargetmonthNameList[monthcounter];
4567 objTargetSettings.Message = string.Empty;
4568
4569 }
4570 monthcounter = monthcounter + 1;
4571 objTargetSettingsList.Add(objTargetSettings);
4572 }
4573 counter = counter + 1;
4574 }
4575 model.TargetType = TargetType;
4576 model.AdviserTargetSettingList = objTargetSettingsList;
4577 }
4578 catch (Exception ex)
4579 {
4580 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetTargetSettingMonthly", ex.Message);
4581 }
4582 return model;
4583 }
4584
4585 public TargetSettings GetTargetSettingsQuarterly(int userId, int accountId, string hdnnamearraybroker = "", string hdnnamearraybrokerNames = "", string TargetType = "", string TargetQuarter = "", string TargetQuarterName = "")
4586 {
4587 TargetSettings model = new TargetSettings();
4588 try
4589 {
4590 if (hdnnamearraybroker == "")
4591 {
4592 List<JsTreeClientModel> AdviserListmodel = new List<JsTreeClientModel>();
4593 int userType = 0;
4594 var Id = GetUserTypeAndId(userId, out userType);
4595 try
4596 {
4597 SqlParameter[] Param = new SqlParameter[2];
4598 Param[0] = new SqlParameter("@UserType", userType);
4599 Param[1] = new SqlParameter("@ID", Id);
4600 DataTable dt = SqlHelper.ExecuteDatatable(CommandType.StoredProcedure, "GetBrokerTreeData", Param);
4601 AdviserListmodel = (from DataRow row in dt.Rows
4602 select new JsTreeClientModel
4603 {
4604 id = ((row["id"] == DBNull.Value || row["id"] == null) ? "" : row["id"]).ToString(),
4605 text = ((row["text"] == DBNull.Value || row["text"] == null) ? "" : row["text"]).ToString(),
4606 parent = ((row["parent"] == DBNull.Value || row["parent"] == null) ? "" : row["parent"]).ToString(),
4607 icon = ((row["icon"] == DBNull.Value || row["icon"] == null) ? "" : row["icon"]).ToString()
4608 }).ToList();
4609 }
4610 catch (Exception ex)
4611 {
4612 Helper.ErrorLog(ex.InnerException, "JsTreeSource", "GetBrokerTreeSource", ex.Message);
4613 }
4614 List<int> adviserid = new List<int>();
4615 List<string> advisernamelist = new List<string>();
4616 foreach (var item in AdviserListmodel)
4617 {
4618 int n;
4619 bool isNumeric = int.TryParse(item.id, out n);
4620 if (isNumeric)
4621 { adviserid.Add(n); advisernamelist.Add(item.text); }
4622
4623 }
4624 hdnnamearraybroker = String.Join(",", adviserid);
4625 hdnnamearraybrokerNames = String.Join(",", advisernamelist);
4626 }
4627 List<AdviserTargetSetting> objTargetSettingsList = new List<AdviserTargetSetting>();
4628 string[] hdnnamearraybrokerList = hdnnamearraybroker.Split(',');
4629 string[] hdnnamearraybrokerNamesList = hdnnamearraybrokerNames.Split(',');
4630 int counter = 0;
4631 string[] TargetQuarterList = TargetQuarter.TrimEnd(',').Split(',');
4632 string[] TargetQuarterNameList = TargetQuarterName.TrimEnd(',').Split(',');
4633 foreach (string hdnnamearraybrokerid in hdnnamearraybrokerList)
4634 {
4635 int quartercounter = 0;
4636 foreach (string quarter in TargetQuarterList)
4637 {
4638 AdviserTargetSetting objTargetSettings = new AdviserTargetSetting();
4639 if (!string.IsNullOrEmpty(hdnnamearraybrokerid) && (Convert.ToUInt32(hdnnamearraybrokerid) > 0))
4640 {
4641 if (accountId > 0)
4642 {
4643 objTargetSettings = GetAdviserQuarterTargetSettings(userId, accountId, hdnnamearraybrokerid, TargetType, quarter);
4644 if (objTargetSettings == null)
4645 objTargetSettings = new Models.AdviserTargetSetting();
4646
4647 }
4648 objTargetSettings.AdviserId = hdnnamearraybrokerid;
4649 objTargetSettings.AdviserName = hdnnamearraybrokerNamesList[counter].ToString() == "" ? "" : hdnnamearraybrokerNamesList[counter].ToString();
4650 objTargetSettings.TargetType = TargetType;
4651 objTargetSettings.Targetquarter = quarter;
4652 objTargetSettings.Quarter_Name = TargetQuarterNameList[quartercounter];
4653 objTargetSettings.Message = string.Empty;
4654
4655 }
4656 quartercounter = quartercounter + 1;
4657 objTargetSettingsList.Add(objTargetSettings);
4658 }
4659 counter = counter + 1;
4660 }
4661 model.TargetType = TargetType;
4662 model.AdviserTargetSettingList = objTargetSettingsList;
4663 }
4664 catch (Exception ex)
4665 {
4666 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetTargetSettingQuartely", ex.Message);
4667 }
4668 return model;
4669 }
4670
4671 public TargetSettings GetTargetSettingsWeekly(int userId, int accountId, string hdnnamearraybroker = "", string hdnnamearraybrokerNames = "", string TargetType = "", string TargetWeek = "")
4672 {
4673 TargetSettings model = new Models.TargetSettings();
4674 try
4675 {
4676 if (hdnnamearraybroker == "")
4677 {
4678 List<JsTreeClientModel> AdviserListmodel = new List<JsTreeClientModel>();
4679 int userType = 0;
4680 var Id = GetUserTypeAndId(userId, out userType);
4681 try
4682 {
4683 SqlParameter[] Param = new SqlParameter[2];
4684 Param[0] = new SqlParameter("@UserType", userType);
4685 Param[1] = new SqlParameter("@ID", Id);
4686 DataTable dt = SqlHelper.ExecuteDatatable(CommandType.StoredProcedure, "GetBrokerTreeData", Param);
4687 AdviserListmodel = (from DataRow row in dt.Rows
4688 select new JsTreeClientModel
4689 {
4690 id = ((row["id"] == DBNull.Value || row["id"] == null) ? "" : row["id"]).ToString(),
4691 text = ((row["text"] == DBNull.Value || row["text"] == null) ? "" : row["text"]).ToString(),
4692 parent = ((row["parent"] == DBNull.Value || row["parent"] == null) ? "" : row["parent"]).ToString(),
4693 icon = ((row["icon"] == DBNull.Value || row["icon"] == null) ? "" : row["icon"]).ToString()
4694 }).ToList();
4695 }
4696 catch (Exception ex)
4697 {
4698 Helper.ErrorLog(ex.InnerException, "JsTreeSource", "GetBrokerTreeSource", ex.Message);
4699 }
4700 List<int> adviserid = new List<int>();
4701 List<string> advisernamelist = new List<string>();
4702 foreach (var item in AdviserListmodel)
4703 {
4704 int n;
4705 bool isNumeric = int.TryParse(item.id, out n);
4706 if (isNumeric)
4707 { adviserid.Add(n); advisernamelist.Add(item.text); }
4708
4709 }
4710 hdnnamearraybroker = String.Join(",", adviserid);
4711 hdnnamearraybrokerNames = String.Join(",", advisernamelist);
4712 }
4713 List<AdviserTargetSetting> objTargetSettingsList = new List<AdviserTargetSetting>();
4714 string[] hdnnamearraybrokerList = hdnnamearraybroker.Split(',');
4715 string[] hdnnamearraybrokerNamesList = hdnnamearraybrokerNames.Split(',');
4716 string[] hdnnamearraybrokerWeekList = TargetWeek.TrimEnd(',').Split(',');
4717 int counter = 0;
4718 foreach (string hdnnamearraybrokerid in hdnnamearraybrokerList)
4719 {
4720 AdviserTargetSetting objTargetSettings = new AdviserTargetSetting();
4721 if (!string.IsNullOrEmpty(hdnnamearraybrokerid) && (Convert.ToUInt32(hdnnamearraybrokerid) > 0))
4722 {
4723 if (accountId > 0)
4724 {
4725 objTargetSettings = GetAdviserWeeklyTargetSettings(userId, accountId, hdnnamearraybrokerid, TargetType, TargetWeek);
4726 if (objTargetSettings == null)
4727 objTargetSettings = new Models.AdviserTargetSetting();
4728
4729 }
4730 objTargetSettings.AdviserId = hdnnamearraybrokerid;
4731 objTargetSettings.AdviserName = hdnnamearraybrokerNamesList[counter].ToString() == "" ? "" : hdnnamearraybrokerNamesList[counter].ToString();
4732 objTargetSettings.TargetType = TargetType;
4733 objTargetSettings.Message = string.Empty;
4734
4735 }
4736
4737 objTargetSettingsList.Add(objTargetSettings);
4738 counter = counter + 1;
4739
4740 }
4741 model.TargetType = TargetType;
4742 model.AdviserTargetSettingList = objTargetSettingsList;
4743
4744
4745
4746 }
4747 catch (Exception ex)
4748 {
4749 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetTargetSettingsWeekly", ex.Message);
4750 }
4751 return model;
4752 }
4753
4754 public AdviserTargetSetting GetAdviserYearlyTargetSettings(int LoggedInUserId, int LoggedInUserAccountId, string BrokerId, string TargetType, string TargetYear)
4755 {
4756 AdviserTargetSetting objTargetSettings = new AdviserTargetSetting();
4757 try
4758 {
4759 SqlParameter[] Param = new SqlParameter[5];
4760 Param[0] = new SqlParameter("@LoggedInUserId", LoggedInUserId);
4761 Param[1] = new SqlParameter("@AdviserId", BrokerId);
4762 Param[2] = new SqlParameter("@ReportTargetType", TargetType);
4763 Param[3] = new SqlParameter("@TargetYear", TargetYear);
4764 DataSet dsTargetSettings = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "GetAdviserTargetSettingsDetails", Param);
4765
4766 if (dsTargetSettings != null && dsTargetSettings.Tables[1].Rows.Count > 0)
4767 {
4768 objTargetSettings = (from DataRow dr in dsTargetSettings.Tables[1].Rows
4769 select new AdviserTargetSetting
4770 {
4771 AdviserTargetId = Convert.ToInt32(dr["AdviserTargetId"]),
4772 UserId = Convert.ToInt32(dr["UserId"]),
4773 AdviserId = dr["AdviserId"].ToString(),
4774 TargetType = dr["ReportTargetType"].ToString(),
4775 YearTargetValues = Math.Round(Convert.ToDecimal(dr["YearTargetValue"].ToString()), 2)
4776 }).OrderByDescending(x => x.AdviserTargetId).FirstOrDefault();
4777 if (objTargetSettings == null)
4778 {
4779 objTargetSettings = new AdviserTargetSetting();
4780 objTargetSettings.UserId = LoggedInUserId;
4781 }
4782
4783 }
4784 else
4785 {
4786 objTargetSettings = null;
4787 }
4788 }
4789 catch (Exception ex)
4790 {
4791 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetAdviserTargetSettingsDetails", ex.Message);
4792 }
4793
4794 return objTargetSettings;
4795 }
4796
4797 public AdviserTargetSetting GetAdviserWeeklyTargetSettings(int LoggedInUserId, int LoggedInUserAccountId, string BrokerId, string TargetType, string TargetWeeks)
4798 {
4799 AdviserTargetSetting objTargetSettings = new AdviserTargetSetting();
4800 try
4801 {
4802 SqlParameter[] Param = new SqlParameter[5];
4803 if (TargetType == "5" || TargetType == "7")
4804 {
4805 objTargetSettings.WeekNumbers = TargetWeeks.TrimStart(',').TrimEnd(',').Split(',').Select(Int32.Parse).ToList();
4806 objTargetSettings.WeekNumbers = objTargetSettings.WeekNumbers.OrderBy(x => x).ToList();
4807 Param[0] = new SqlParameter("@LoggedInUserId", LoggedInUserId);
4808 Param[1] = new SqlParameter("@AdviserId", BrokerId);
4809 Param[2] = new SqlParameter("@ReportTargetType", TargetType);
4810 Param[3] = new SqlParameter("@TargetYear", DateTime.Now.Year);
4811 Param[4] = new SqlParameter("@WeekNumbers", TargetWeeks);
4812 DataSet ds = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "GetAdviserTargetSettingsDetails", Param);
4813
4814 if (ds != null && ds.Tables[0].Rows.Count > 0)
4815 {
4816 objTargetSettings.AdviserTargetId = Convert.ToInt32(ds.Tables[0].Rows[0]["AdviserTargetId"]);
4817 objTargetSettings.UserId = Convert.ToInt32(ds.Tables[0].Rows[0]["UserId"]);
4818 objTargetSettings.AdviserId = ds.Tables[0].Rows[0]["AdviserId"].ToString();
4819 objTargetSettings.TargetType = ds.Tables[0].Rows[0]["ReportTargetType"].ToString();
4820 foreach (var week in objTargetSettings.WeekNumbers)
4821 {
4822 DataRow[] drw = ds.Tables[0].Select("WeekNumber = " + week.ToString());
4823 if(drw.Length>0)
4824 {
4825 int weekNo = Convert.ToInt32(Convert.ToString(drw[0]["WeekNumber"]));
4826 decimal WeeklyTarget = Math.Round(Convert.ToDecimal(drw[0]["WeeklyTargetValue"].ToString()), 2);
4827 objTargetSettings.WeeklyTargetSettingList.Add(new WeeklyTargetSetting { WeekNumber = weekNo, WeeklyTarget_Value = WeeklyTarget });
4828 }
4829 else
4830 {
4831 objTargetSettings.WeeklyTargetSettingList.Add(new WeeklyTargetSetting { WeekNumber = week, WeeklyTarget_Value = 0 });
4832 }
4833 }
4834
4835 }
4836 else
4837 {
4838 foreach (var week in objTargetSettings.WeekNumbers)
4839 {
4840 objTargetSettings.WeeklyTargetSettingList.Add(new WeeklyTargetSetting { WeekNumber = week, WeeklyTarget_Value = 0 });
4841 }
4842 }
4843 }
4844 }
4845 catch (Exception ex)
4846 {
4847 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetAdviserWeeklyTargetSettings", ex.Message);
4848 }
4849
4850 return objTargetSettings;
4851 }
4852
4853 private string SelectMonthValue(DataRow dr, string TargetMonth)
4854 {
4855 if (TargetMonth == "1")
4856 return dr["January"].ToString();
4857 else if (TargetMonth == "2")
4858 return dr["February"].ToString();
4859 else if (TargetMonth == "3")
4860 return dr["March"].ToString();
4861 else if (TargetMonth == "4")
4862 return dr["April"].ToString();
4863 else if (TargetMonth == "5")
4864 return dr["May"].ToString();
4865 else if (TargetMonth == "6")
4866 return dr["June"].ToString();
4867 else if (TargetMonth == "7")
4868 return dr["July"].ToString();
4869 else if (TargetMonth == "8")
4870 return dr["August"].ToString();
4871 else if (TargetMonth == "9")
4872 return dr["September"].ToString();
4873 else if (TargetMonth == "10")
4874 return dr["October"].ToString();
4875 else if (TargetMonth == "11")
4876 return dr["November"].ToString();
4877 else if (TargetMonth == "12")
4878 return dr["December"].ToString();
4879
4880 return "0";
4881 }
4882
4883 private string SelectQuarterValue(DataRow dr, string TargetQuarter)
4884 {
4885 if (TargetQuarter == "1")
4886 return dr["Quarter_Value1"].ToString();
4887 else if (TargetQuarter == "2")
4888 return dr["Quarter_Value2"].ToString();
4889 else if (TargetQuarter == "3")
4890 return dr["Quarter_Value3"].ToString();
4891 else if (TargetQuarter == "4")
4892 return dr["Quarter_Value4"].ToString();
4893 return "0";
4894 }
4895 /// <summary>
4896 /// Get target settings detail for any admin calling from webservice for mobile.
4897 /// </summary>
4898 /// <param name="LoggedInUserId"></param>
4899 /// <returns></returns>
4900 ///
4901 public TargetSettings GetTargetSettingsForAdmin(int LoggedInUserId, int LoggedInUserAccountId, string BrokerId)
4902 {
4903 TargetSettings objTargetSettings = new TargetSettings();
4904 try
4905 {
4906 SqlParameter[] Param = new SqlParameter[1];
4907 Param[0] = new SqlParameter("@LoggedInUserAccountId", LoggedInUserAccountId);
4908 DataSet dsTargetSettings = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "MobileGetTargetSettingsDetailsForAdmin", Param);
4909
4910 if (dsTargetSettings != null && dsTargetSettings.Tables[0].Rows.Count > 0)
4911 {
4912
4913 foreach (DataRow dr in dsTargetSettings.Tables[0].Rows)
4914 {
4915 objTargetSettings.AnualTargetTotalWritten += Convert.ToDecimal(dr["AnualTargetTotalWritten"]);
4916 }
4917 objTargetSettings.UserId = LoggedInUserId;
4918
4919 if (dsTargetSettings.Tables[5] != null && dsTargetSettings.Tables[5].Rows.Count > 0)
4920 {
4921 objTargetSettings.MonthlyTargetTotalWritten = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[5].Rows[0]["MonthlyTargetTotalWritten"] == DBNull.Value || dsTargetSettings.Tables[5].Rows[0]["MonthlyTargetTotalWritten"] == null) ? 0.0M : dsTargetSettings.Tables[5].Rows[0]["MonthlyTargetTotalWritten"]), 2);
4922 }
4923
4924 if (objTargetSettings == null)
4925 {
4926 objTargetSettings = new TargetSettings();
4927 objTargetSettings.UserId = LoggedInUserId;
4928 }
4929 //Anual
4930 if (dsTargetSettings.Tables[2] != null && dsTargetSettings.Tables[2].Rows.Count > 0)
4931 {
4932 objTargetSettings.ActualTotalWritten = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[2].Rows[0]["AnnualTotalWritten"] == DBNull.Value || dsTargetSettings.Tables[2].Rows[0]["AnnualTotalWritten"] == null) ? 0.0M : dsTargetSettings.Tables[2].Rows[0]["AnnualTotalWritten"]), 2);
4933 }
4934 else
4935 {
4936 objTargetSettings.ActualTotalWritten = 0;
4937 }
4938 if (dsTargetSettings.Tables[1] != null && dsTargetSettings.Tables[1].Rows.Count > 0)
4939 {
4940 objTargetSettings.ActualTotalCompleted = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[1].Rows[0]["AnualMortgageCompleted"] == DBNull.Value || dsTargetSettings.Tables[1].Rows[0]["AnualMortgageCompleted"] == null) ? 0.0M : dsTargetSettings.Tables[1].Rows[0]["AnualMortgageCompleted"]), 2);
4941 }
4942 else
4943 {
4944 objTargetSettings.ActualTotalCompleted = 0;
4945 }
4946 objTargetSettings.TotalDaysInYear = new DateTime(DateTime.Now.Year, 12, 31).DayOfYear;
4947 objTargetSettings.DayOfYear = DateTime.Now.DayOfYear;
4948 objTargetSettings.EstimatedTotalWritten = decimal.Round((objTargetSettings.ActualTotalWritten / objTargetSettings.DayOfYear) * objTargetSettings.TotalDaysInYear, 2);
4949 objTargetSettings.EstimatedTotalCompleted = decimal.Round((objTargetSettings.ActualTotalCompleted / objTargetSettings.DayOfYear) * objTargetSettings.TotalDaysInYear, 2);
4950 //Monthly
4951 if (dsTargetSettings.Tables[4] != null && dsTargetSettings.Tables[4].Rows.Count > 0)
4952 {
4953 objTargetSettings.ActualTotalWrittenMonthly = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[4].Rows[0]["MonthlyTotalWritten"] == DBNull.Value || dsTargetSettings.Tables[4].Rows[0]["MonthlyTotalWritten"] == null) ? 0.0M : dsTargetSettings.Tables[4].Rows[0]["MonthlyTotalWritten"]), 2);
4954 }
4955 else
4956 {
4957 objTargetSettings.ActualTotalWrittenMonthly = 0;
4958 }
4959 if (dsTargetSettings.Tables[3] != null && dsTargetSettings.Tables[3].Rows.Count > 0)
4960 {
4961 objTargetSettings.ActualTotalCompletedMonthly = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[3].Rows[0]["MonthlyMortgageCompleted"] == DBNull.Value || dsTargetSettings.Tables[3].Rows[0]["MonthlyMortgageCompleted"] == null) ? 0.0M : dsTargetSettings.Tables[3].Rows[0]["MonthlyMortgageCompleted"]), 2);
4962 }
4963 else
4964 {
4965 objTargetSettings.ActualTotalCompletedMonthly = 0;
4966 }
4967 objTargetSettings.TotalDaysInMonth = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
4968 objTargetSettings.DayofMonth = DateTime.Now.Day;
4969 objTargetSettings.EstimatedTotalCompletedMonthly = decimal.Round((objTargetSettings.ActualTotalCompletedMonthly / objTargetSettings.DayofMonth) * objTargetSettings.TotalDaysInMonth, 2);
4970 objTargetSettings.EstimatedTotalWrittenMonthly = decimal.Round((objTargetSettings.ActualTotalWrittenMonthly / objTargetSettings.DayofMonth) * objTargetSettings.TotalDaysInMonth, 2);
4971
4972 //Quarterly
4973 if (dsTargetSettings.Tables[6] != null && dsTargetSettings.Tables[6].Rows.Count > 0)
4974 {
4975 objTargetSettings.QuarterlyTargetTotalWritten = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[6].Rows[0]["quarterlytargettotalwritten"] == DBNull.Value || dsTargetSettings.Tables[6].Rows[0]["quarterlytargettotalwritten"] == null) ? 0.0M : dsTargetSettings.Tables[6].Rows[0]["quarterlytargettotalwritten"]), 2);
4976 }
4977 else
4978 {
4979 objTargetSettings.QuarterlyTargetTotalWritten = 0;
4980 }
4981 if (dsTargetSettings.Tables[7] != null && dsTargetSettings.Tables[7].Rows.Count > 0)
4982 {
4983 objTargetSettings.QuarterlyActualTotalCompleted = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[7].Rows[0]["quarterlymortgagecompleted"] == DBNull.Value || dsTargetSettings.Tables[7].Rows[0]["quarterlymortgagecompleted"] == null) ? 0.0M : dsTargetSettings.Tables[7].Rows[0]["quarterlymortgagecompleted"]), 2);
4984 }
4985 else
4986 {
4987 objTargetSettings.QuarterlyActualTotalCompleted = 0;
4988 }
4989 if (dsTargetSettings.Tables[8] != null && dsTargetSettings.Tables[8].Rows.Count > 0)
4990 {
4991 objTargetSettings.QuarterlyActualTotalWritten = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[8].Rows[0]["quarterlytotalwritten"] == DBNull.Value || dsTargetSettings.Tables[8].Rows[0]["quarterlytotalwritten"] == null) ? 0.0M : dsTargetSettings.Tables[8].Rows[0]["quarterlytotalwritten"]), 2);
4992 }
4993 else
4994 {
4995 objTargetSettings.QuarterlyActualTotalWritten = 0;
4996 }
4997
4998 DateTime date = DateTime.Now;
4999 int quarterNumber = (date.Month - 1) / 3 + 1;
5000 DateTime firstDayOfQuarter = new DateTime(date.Year, (quarterNumber - 1) * 3 + 1, 1);
5001 DateTime lastDayOfQuarter = firstDayOfQuarter.AddMonths(3).AddDays(-1);
5002 objTargetSettings.TotalDaysInQuarter = Convert.ToInt32((lastDayOfQuarter - firstDayOfQuarter).TotalDays);
5003 objTargetSettings.EstimatedTotalWrittenQuarterly = decimal.Round((objTargetSettings.QuarterlyActualTotalWritten / DateTime.Now.Day) * objTargetSettings.TotalDaysInQuarter, 2);
5004 objTargetSettings.EstimatedTotalCompletedQuarterly = decimal.Round((objTargetSettings.QuarterlyActualTotalCompleted / DateTime.Now.Day) * objTargetSettings.TotalDaysInQuarter, 2);
5005 //Weekly
5006 if (dsTargetSettings.Tables[9] != null && dsTargetSettings.Tables[9].Rows.Count > 0)
5007 {
5008 objTargetSettings.WeeklyTargetTotalWritten = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[9].Rows[0]["WeeklyTargetTotalWritten"] == DBNull.Value || dsTargetSettings.Tables[9].Rows[0]["WeeklyTargetTotalWritten"] == null) ? 0.0M : dsTargetSettings.Tables[9].Rows[0]["WeeklyTargetTotalWritten"]), 2);
5009 }
5010 else
5011 {
5012 objTargetSettings.WeeklyTargetTotalWritten = 0;
5013 }
5014 if (dsTargetSettings.Tables[10] != null && dsTargetSettings.Tables[10].Rows.Count > 0)
5015 {
5016 objTargetSettings.WeeklyActualTotalWritten = Decimal.Round(Convert.ToDecimal((dsTargetSettings.Tables[10].Rows[0]["WeeklyTotalWritten"] == DBNull.Value || dsTargetSettings.Tables[10].Rows[0]["WeeklyTotalWritten"] == null) ? 0.0M : dsTargetSettings.Tables[10].Rows[0]["WeeklyTotalWritten"]), 2);
5017 }
5018 else
5019 {
5020 objTargetSettings.WeeklyActualTotalWritten = 0;
5021 }
5022 objTargetSettings.EstimatedTotalWrittenWeekly = decimal.Round((objTargetSettings.WeeklyActualTotalWritten / (int)DateTime.Now.DayOfWeek) * objTargetSettings.TotalDaysInWeek, 2);
5023 objTargetSettings.TotalDaysInWeek = 7;
5024 }
5025 else
5026 {
5027 objTargetSettings = null;
5028 }
5029
5030
5031 }
5032
5033 catch (Exception ex)
5034 {
5035 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetTargetSettingsDetails", ex.Message);
5036 }
5037
5038 return objTargetSettings;
5039 }
5040
5041
5042 /// <summary>
5043 /// Update adviser Target Settings Details.
5044 /// </summary>
5045 /// <returns></returns>
5046 public void UpdateAdviserTargetSettings(AdviserTargetSetting objTargetSettings)
5047 {
5048 SqlParameter[] Param = new SqlParameter[31];
5049 if (objTargetSettings.TargetType == "6" || objTargetSettings.TargetType == "8")
5050 {
5051 objTargetSettings = SelectQuarter(objTargetSettings);
5052 }
5053 else
5054 {
5055 objTargetSettings = SelectMonth(objTargetSettings);
5056 }
5057 Param[0] = new SqlParameter("@AdviserTargetId", objTargetSettings.AdviserTargetId);
5058 Param[1] = new SqlParameter("@AdviserId", objTargetSettings.AdviserId);
5059 Param[2] = new SqlParameter("@ReportTargetType", objTargetSettings.TargetType);
5060 Param[3] = new SqlParameter("@UserId", objTargetSettings.UserId);
5061 Param[4] = new SqlParameter("@IsActive", objTargetSettings.IsActive);
5062 Param[5] = new SqlParameter("@IsDeleted", objTargetSettings.IsDeleted);
5063 Param[6] = new SqlParameter("@CreatedBy", objTargetSettings.CreatedBy);
5064 Param[7] = new SqlParameter("@CreatedOn", objTargetSettings.CreatedOn);
5065 Param[8] = new SqlParameter("@UpdatedOn", objTargetSettings.UpdatedOn);
5066 Param[9] = new SqlParameter("@UpdatedBy", objTargetSettings.UpdatedBy);
5067 Param[10] = new SqlParameter("@January", objTargetSettings.January);
5068 Param[11] = new SqlParameter("@February", objTargetSettings.February);
5069 Param[12] = new SqlParameter("@March", objTargetSettings.March);
5070 Param[13] = new SqlParameter("@April", objTargetSettings.April);
5071 Param[14] = new SqlParameter("@May", objTargetSettings.May);
5072 Param[15] = new SqlParameter("@June", objTargetSettings.June);
5073 Param[16] = new SqlParameter("@July", objTargetSettings.July);
5074 Param[17] = new SqlParameter("@August", objTargetSettings.August);
5075 Param[18] = new SqlParameter("@September", objTargetSettings.September);
5076 Param[19] = new SqlParameter("@October", objTargetSettings.October);
5077 Param[20] = new SqlParameter("@December", objTargetSettings.December);
5078 Param[21] = new SqlParameter("@November", objTargetSettings.November);
5079 Param[22] = new SqlParameter("@TargetMonth", objTargetSettings.TargetMonth);
5080 Param[23] = new SqlParameter("@TargetYear", objTargetSettings.TargetYear);
5081 Param[24] = new SqlParameter("@YearTargetValue", objTargetSettings.YearTargetValues);
5082 Param[25] = new SqlParameter("@Quarter_Value1", objTargetSettings.Quarter_Value1);
5083 Param[26] = new SqlParameter("@Quarter_Value2", objTargetSettings.Quarter_Value2);
5084 Param[27] = new SqlParameter("@Quarter_Value3", objTargetSettings.Quarter_Value3);
5085 Param[28] = new SqlParameter("@Quarter_Value4", objTargetSettings.Quarter_Value4);
5086 if (objTargetSettings.TargetType == "5" || objTargetSettings.TargetType == "7")
5087 {
5088 foreach (var data in objTargetSettings.WeeklyTargetSettingList)
5089 {
5090 Param[29] = new SqlParameter("@Week_Number", data.WeekNumber);
5091 Param[30] = new SqlParameter("@WeeklyTarget_Value", data.WeeklyTarget_Value);
5092 SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, "InsertAdviserTargetSEtting", Param);
5093 }
5094 }
5095 else
5096 {
5097 SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, "InsertAdviserTargetSEtting", Param);
5098 }
5099 }
5100 //private void AddNewAdviserTargetSettings(AdviserTargetSetting objTargetSettings)
5101 //{
5102 // try
5103 // {
5104 // tblAdviserTarget objTarget = new tblAdviserTarget();
5105 // objTarget.UserId = objTargetSettings.UserId;
5106 // objTarget.AdviserId = Convert.ToInt32( objTargetSettings.AdviserId);
5107 // objTarget.ReportTargetType = objTargetSettings.AdviserTargetId;
5108 // objTarget.UpdatedOn = DateTime.Now;
5109 // objTarget.CreatedOn = DateTime.Now;
5110 // objTarget.CreatedBy = SessionHelper.UserId;
5111 // objTarget.UpdatedBy = SessionHelper.UserId;
5112 // objTarget.IsActive = true;
5113 // objTarget.IsDeleted = false;
5114 // dbContext.tblAdviserTargets.Add(objTarget);
5115 // dbContext.SaveChanges();
5116 // tblAdviserMonth objAdviserTargetMonth = new tblAdviserMonth();
5117 // objAdviserTargetMonth = SelectMonth(objTargetSettings);
5118 // objAdviserTargetMonth.AdviserTargetId = dbContext.tblAdviserTargets.Max(m => m.AdviserTargetId);
5119 // dbContext.tblAdviserMonths.Add(objAdviserTargetMonth);
5120 // dbContext.SaveChanges();
5121 // objTargetSettings.Message = "Target settings values added successfully.";
5122 // }
5123 // catch (Exception ex)
5124 // {
5125 // Helper.ErrorLog(ex.InnerException, "TiledDashboard", "AddNewTargetSettings", ex.Message);
5126 // objTargetSettings.Message = "Fail to add Target settings values.";
5127 // }
5128 //}
5129 private AdviserTargetSetting SelectQuarter(AdviserTargetSetting objAdviserTargetQuarter)
5130 {
5131 if (objAdviserTargetQuarter.Targetquarter == "1")
5132 objAdviserTargetQuarter.Quarter_Value1 = objAdviserTargetQuarter.Targetquarterly;
5133 else if (objAdviserTargetQuarter.Targetquarter == "2")
5134 objAdviserTargetQuarter.Quarter_Value2 = objAdviserTargetQuarter.Targetquarterly;
5135 else if (objAdviserTargetQuarter.Targetquarter == "3")
5136 objAdviserTargetQuarter.Quarter_Value3 = objAdviserTargetQuarter.Targetquarterly;
5137 else if (objAdviserTargetQuarter.Targetquarter == "4")
5138 objAdviserTargetQuarter.Quarter_Value4 = objAdviserTargetQuarter.Targetquarterly;
5139 return objAdviserTargetQuarter;
5140 }
5141 private AdviserTargetSetting SelectMonth(AdviserTargetSetting objAdviserTargetMonth)
5142 {
5143 if (objAdviserTargetMonth.TargetMonth == "1")
5144 objAdviserTargetMonth.January = objAdviserTargetMonth.MonthValue;
5145 else if (objAdviserTargetMonth.TargetMonth == "2")
5146 objAdviserTargetMonth.February = objAdviserTargetMonth.MonthValue;
5147 else if (objAdviserTargetMonth.TargetMonth == "3")
5148 objAdviserTargetMonth.March = objAdviserTargetMonth.MonthValue;
5149 else if (objAdviserTargetMonth.TargetMonth == "4")
5150 objAdviserTargetMonth.April = objAdviserTargetMonth.MonthValue;
5151 else if (objAdviserTargetMonth.TargetMonth == "5")
5152 objAdviserTargetMonth.May = objAdviserTargetMonth.MonthValue;
5153 else if (objAdviserTargetMonth.TargetMonth == "6")
5154 objAdviserTargetMonth.June = objAdviserTargetMonth.MonthValue;
5155 else if (objAdviserTargetMonth.TargetMonth == "7")
5156 objAdviserTargetMonth.July = objAdviserTargetMonth.MonthValue;
5157 else if (objAdviserTargetMonth.TargetMonth == "8")
5158 objAdviserTargetMonth.August = objAdviserTargetMonth.MonthValue;
5159 else if (objAdviserTargetMonth.TargetMonth == "9")
5160 objAdviserTargetMonth.September = objAdviserTargetMonth.MonthValue;
5161 else if (objAdviserTargetMonth.TargetMonth == "10")
5162 objAdviserTargetMonth.October = objAdviserTargetMonth.MonthValue;
5163 else if (objAdviserTargetMonth.TargetMonth == "11")
5164 objAdviserTargetMonth.November = objAdviserTargetMonth.MonthValue;
5165 else if (objAdviserTargetMonth.TargetMonth == "12")
5166 objAdviserTargetMonth.December = objAdviserTargetMonth.MonthValue;
5167 return objAdviserTargetMonth;
5168 }
5169 /// <summary>
5170 /// Set target values by target type
5171 /// </summary>
5172 /// <param name="objTargetSettings"></param>
5173 private static void SetTargetValuesByTargetType(TargetSettings objTargetSettings)
5174 {
5175 if (objTargetSettings.TotalWrittenTargetType == "Annually")
5176 {
5177 objTargetSettings.AnualTargetTotalWritten = objTargetSettings.TargetTotalWritten;
5178 }
5179 else if (objTargetSettings.TotalWrittenTargetType == "Monthly")
5180 {
5181 objTargetSettings.MonthlyTargetTotalWritten = objTargetSettings.TargetTotalWritten;
5182 }
5183 if (objTargetSettings.TotalCompletedTargetType == "Annually")
5184 {
5185 objTargetSettings.AnualTargetTotalCompleted = objTargetSettings.TargetTotalCompleted;
5186 }
5187 else if (objTargetSettings.TotalCompletedTargetType == "Monthly")
5188 {
5189 objTargetSettings.MonthlyTargetTotalCompleted = objTargetSettings.TargetTotalCompleted;
5190 }
5191 }
5192
5193
5194 /// <summary>
5195 /// Get adviser target tracking details for report
5196 /// </summary>
5197 /// <param name="p1"></param>
5198 /// <param name="p2"></param>
5199 /// <returns></returns>
5200 public List<AdviserTargetTrackingReport> GetAdviserTargetTrackingList(int LoggedInUserId, int LoggedInUserAccountId, string BrokerIds, DateTime FromDate, DateTime ToDate, string TargetType, string TMonth, string TQuarter = "", string TWeek = "")
5201 {
5202 // if (Convert.ToInt32(HttpContext.Current.Session["UserType"]) == (int)UserType.Broker) //Adviser
5203 // {
5204 //BrokerIds = LoggedInUserId.ToString();
5205 // }
5206 List<AdviserTargetTrackingReport> objAdviserTargets = new List<AdviserTargetTrackingReport>();
5207 int totalDaysInYear = new DateTime(DateTime.Now.Year, 12, 31).DayOfYear;
5208 int dayOfYear = DateTime.Now.DayOfYear;
5209 if (BrokerIds == string.Empty)
5210 BrokerIds = null;
5211 try
5212 {
5213 SqlParameter[] Param = new SqlParameter[9];
5214 Param[0] = new SqlParameter("@LoggedInUserId", LoggedInUserId);
5215 Param[1] = new SqlParameter("@LoggedInUserAccountId", LoggedInUserAccountId);
5216 Param[2] = new SqlParameter("@BrokerId", BrokerIds);
5217 Param[3] = new SqlParameter("@FromDate", FromDate.ToString("dd/MMM/yyyy"));
5218 Param[4] = new SqlParameter("@ToDate", ToDate.ToString("dd/MMM/yyyy"));
5219 Param[5] = new SqlParameter("@TargetType", TargetType);
5220 Param[6] = new SqlParameter("@TargetMonth", TMonth);
5221 Param[7] = new SqlParameter("@TQuarter", TQuarter);
5222 Param[8] = new SqlParameter("@TWeek", TWeek);
5223 DataSet dsTargetSettings = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "GetAdviserTargetTrackingDetailsReport", Param);
5224 if (dsTargetSettings != null)
5225 {
5226 foreach (DataRow drCompleted in dsTargetSettings.Tables[0].Rows)
5227 {
5228 DataRow drWritten = (from myRow in dsTargetSettings.Tables[0].AsEnumerable()
5229 where myRow.Field<int>("UserId") == Convert.ToInt32(drCompleted["UserId"])
5230 select myRow).FirstOrDefault();
5231 AdviserTargetTrackingReport objAdv = new AdviserTargetTrackingReport();
5232 if (drWritten != null && TargetType == "1" || TargetType == "2" || TargetType == "5" || TargetType == "6") // Written_Target
5233 {
5234 // AdviserTargetTrackingReport objAdv = new AdviserTargetTrackingReport();
5235 objAdv.AdviserName = Convert.ToString(drWritten["AdviserName"]);
5236 objAdv.AdviserTargetWritten = Convert.ToDecimal(drWritten["AnualTargetTotalWritten"]);
5237 // objAdv.AdviserTargetCompleted = Convert.ToDecimal(drCompleted["AnualTargetTotalCompleted"]);
5238 objAdv.MonthlyTargetTotalWritten = Convert.ToDecimal(drWritten["MonthlyTargetTotalWritten"]);
5239 objAdv.AdviserId = Convert.ToInt32(drWritten["AdviserId"]);
5240 // objAdv.MonthlyTargetTotalCompleted = Convert.ToDecimal(drCompleted["MonthlyTargetTotalCompleted"]);
5241 objAdv.QuarterlyTargetTotalWritten = Convert.ToDecimal(drWritten["QuarterlyTargetTotalWritten"]);
5242 // objAdv.QuarterlyTargetTotalCompleted = Convert.ToDecimal(drWritten["QuarterlyTargetTotalCompleted"]);
5243 objAdv.EstimatedWritten = Convert.ToDecimal(drWritten["AnualMortgageWritten"]) / dayOfYear * totalDaysInYear;
5244 // objAdv.EstimatedCompleted = Convert.ToDecimal(drCompleted["AnualMortgageCompleted"]) / dayOfYear * totalDaysInYear;
5245 // objAdv.WeeklyTargetTotalCompleted = Convert.ToDecimal(drCompleted["WeeklyTargetTotalCompleted"]);
5246 objAdv.WeeklyTargetTotalWritten = Convert.ToDecimal(drWritten["WeeklyTargetTotalWritten"]);
5247
5248
5249 if (objAdv.AdviserTargetWritten > 0)
5250 {
5251 objAdv.PerToTargetWritten = Convert.ToInt32((objAdv.EstimatedWritten / objAdv.AdviserTargetWritten) * 100);
5252 }
5253 if (objAdv.AdviserTargetCompleted > 0)
5254 {
5255 objAdv.PerToTargetCompleted = Convert.ToInt32((objAdv.EstimatedCompleted / objAdv.AdviserTargetCompleted) * 100);
5256 }
5257
5258 objAdviserTargets.Add(objAdv);
5259 }
5260 else if (drWritten != null && TargetType == "3" || TargetType == "4" || TargetType == "7" || TargetType == "8") // Complete Target
5261 {
5262 //AdviserTargetTrackingReport objAdv = new AdviserTargetTrackingReport();
5263 objAdv.AdviserName = Convert.ToString(drCompleted["AdviserName"]);
5264 // objAdv.AdviserTargetWritten = Convert.ToDecimal(drWritten["AnualTargetTotalWritten"]);
5265 objAdv.AdviserTargetCompleted = Convert.ToDecimal(drCompleted["AnualTargetTotalCompleted"]);
5266 // objAdv.MonthlyTargetTotalWritten = Convert.ToDecimal(drWritten["MonthlyTargetTotalWritten"]);
5267 objAdv.AdviserId = Convert.ToInt32(drWritten["AdviserId"]);
5268 objAdv.MonthlyTargetTotalCompleted = Convert.ToDecimal(drCompleted["MonthlyTargetTotalCompleted"]);
5269 // objAdv.QuarterlyTargetTotalWritten = Convert.ToDecimal(drWritten["QuarterlyTargetTotalWritten"]);
5270 objAdv.QuarterlyTargetTotalCompleted = Convert.ToDecimal(drWritten["QuarterlyTargetTotalCompleted"]);
5271 // objAdv.EstimatedWritten = Convert.ToDecimal(drWritten["AnualMortgageWritten"]) / dayOfYear * totalDaysInYear;
5272 objAdv.EstimatedCompleted = Convert.ToDecimal(drCompleted["AnualMortgageCompleted"]) / dayOfYear * totalDaysInYear;
5273 objAdv.WeeklyTargetTotalCompleted = Convert.ToDecimal(drCompleted["WeeklyTargetTotalCompleted"]);
5274 // objAdv.WeeklyTargetTotalWritten = Convert.ToDecimal(drWritten["WeeklyTargetTotalWritten"]);
5275
5276 if (objAdv.AdviserTargetWritten > 0)
5277 {
5278 objAdv.PerToTargetWritten = Convert.ToInt32((objAdv.EstimatedWritten / objAdv.AdviserTargetWritten) * 100);
5279 }
5280 if (objAdv.AdviserTargetCompleted > 0)
5281 {
5282 objAdv.PerToTargetCompleted = Convert.ToInt32((objAdv.EstimatedCompleted / objAdv.AdviserTargetCompleted) * 100);
5283 }
5284
5285 objAdviserTargets.Add(objAdv);
5286
5287 }
5288 else
5289 {
5290 // AdviserTargetTrackingReport objAdv = new AdviserTargetTrackingReport();
5291 //objAdv.AdviserName = Convert.ToString(drCompleted["AdviserName"]);
5292 //objAdv.AdviserTargetWritten = 0;//Convert.ToDecimal(drWritten["AnualTargetTotalWritten"]);
5293 //objAdv.AdviserTargetCompleted = Convert.ToDecimal(drCompleted["AnualTargetTotalCompleted"]);
5294 //objAdv.AdviserId = Convert.ToInt32(drCompleted["AdviserId"]);
5295 //// objAdv.MonthlyTargetTotalWritten = Convert.ToDecimal(drCompleted["MonthlyTargetTotalWritten"]);
5296 //objAdv.MonthlyTargetTotalCompleted = Convert.ToDecimal(drCompleted["MonthlyTargetTotalCompleted"]);
5297 //// objAdv.QuarterlyTargetTotalWritten = Convert.ToDecimal(drCompleted["QuarterlyTargetTotalWritten"]);
5298 //objAdv.QuarterlyTargetTotalCompleted = Convert.ToDecimal(drCompleted["QuarterlyTargetTotalCompleted"]);
5299 //objAdv.EstimatedWritten = 0;// Convert.ToDecimal(drWritten["AnualMortgageWritten"]) / dayOfYear * totalDaysInYear;
5300 //objAdv.EstimatedCompleted = Convert.ToDecimal(drCompleted["AnualMortgageCompleted"]) / dayOfYear * totalDaysInYear;
5301 //if (objAdv.AdviserTargetWritten > 0)
5302 //{
5303 // objAdv.PerToTargetWritten = Convert.ToInt32((objAdv.EstimatedWritten / objAdv.AdviserTargetWritten) * 100);
5304 //}
5305 //if (objAdv.AdviserTargetCompleted > 0)
5306 //{
5307 // objAdv.PerToTargetCompleted = Convert.ToInt32((objAdv.EstimatedCompleted / objAdv.AdviserTargetCompleted) * 100);
5308 //}
5309 //objAdv.WeeklyTargetTotalCompleted = Convert.ToDecimal(drCompleted["WeeklyTargetTotalCompleted"]);
5310
5311 objAdviserTargets.Add(objAdv);
5312
5313 }
5314
5315 }
5316
5317 }
5318
5319 }
5320 catch (Exception ex)
5321 {
5322 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetAdviserTargetTrackingList", ex.Message);
5323 }
5324
5325 return objAdviserTargets;
5326 }
5327
5328 public List<AdviserTargetTrackingReport> CalculateMonthyAndYerlyValue(List<AdviserTargetTrackingReport> AdviserTargetTrackingList, List<TotalWrittenReport> TotalWrittenReport, string TargetType, string TargetMonth, string TQuarter = "",string TWeek = "")
5329 {
5330 int NoOfDays = Helper.NoOFDayToCalculate(TQuarter);
5331 int NoOfDaysinQuarter = 0;
5332 string createdfrom, createdto;
5333
5334 if (TQuarter == "1")
5335 {
5336 createdfrom = "01/01/" + DateTime.Now.Year.ToString();
5337 createdto = "31/03/" + DateTime.Now.Year.ToString();
5338 DateTime Rightnow = DateTime.Now;
5339 DateTime t1 = DateTime.ParseExact(createdfrom, "dd/MM/yyyy", null);
5340 DateTime t2 = DateTime.ParseExact(createdto, "dd/MM/yyyy", null);
5341 NoOfDaysinQuarter = Convert.ToInt32((t2 - t1).TotalDays);
5342 }
5343 else if (TQuarter == "2")
5344 {
5345 createdfrom = "01/04/" + DateTime.Now.Year.ToString();
5346 createdto = "30/06/" + DateTime.Now.Year.ToString();
5347 DateTime Rightnow = DateTime.Now;
5348 DateTime t1 = DateTime.ParseExact(createdfrom, "dd/MM/yyyy", null);
5349 DateTime t2 = DateTime.ParseExact(createdto, "dd/MM/yyyy", null);
5350 NoOfDaysinQuarter = Convert.ToInt32((t2 - t1).TotalDays);
5351 }
5352 else if (TQuarter == "3")
5353 {
5354 createdfrom = "01/07/" + DateTime.Now.Year.ToString();
5355 createdto = "30/09/" + DateTime.Now.Year.ToString();
5356 DateTime Rightnow = DateTime.Now;
5357 DateTime t1 = DateTime.ParseExact(createdfrom, "dd/MM/yyyy", null);
5358 DateTime t2 = DateTime.ParseExact(createdto, "dd/MM/yyyy", null);
5359 NoOfDaysinQuarter = Convert.ToInt32((t2 - t1).TotalDays);
5360 }
5361 else if (TQuarter == "4")
5362 {
5363 createdfrom = "01/10/" + DateTime.Now.Year.ToString();
5364 createdto = "31/12/" + DateTime.Now.Year.ToString();
5365 DateTime Rightnow = DateTime.Now;
5366 DateTime t1 = DateTime.ParseExact(createdfrom, "dd/MM/yyyy", null);
5367 DateTime t2 = DateTime.ParseExact(createdto, "dd/MM/yyyy", null);
5368 NoOfDaysinQuarter = Convert.ToInt32((t2 - t1).TotalDays);
5369 }
5370
5371
5372 List<AdviserTargetTrackingReport> objAdviserTargetTrackingReport = new List<AdviserTargetTrackingReport>();
5373 foreach (var item in AdviserTargetTrackingList)
5374 {
5375 int brokerid = item.AdviserId;
5376 decimal TotalWrittenvalue = 0;
5377 var checknull = TotalWrittenReport.Where(m => m.BrokerId == brokerid).FirstOrDefault();
5378
5379 if (checknull != null)
5380 {
5381 TotalWrittenvalue = (TotalWrittenReport.Count > 0 ? TotalWrittenReport.FirstOrDefault(m => m.BrokerId == item.AdviserId).TotalWrittenValue : 0);
5382 item.Ranking = TotalWrittenReport.Where(m => m.BrokerId == brokerid).FirstOrDefault().Ranking;
5383
5384 if (TargetType == "1")// monthly written target
5385 {
5386 item.AdviserTargetWritten = item.MonthlyTargetTotalWritten;
5387 item.AdviserTargetCompleted = item.MonthlyTargetTotalCompleted;
5388 int NoOfDaysAsOnDate = 0;
5389 if (Convert.ToInt32(TargetMonth) < DateTime.Now.Month)
5390 NoOfDaysAsOnDate = DateTime.DaysInMonth(DateTime.Now.Year, Convert.ToInt32(TargetMonth));
5391 else if (Convert.ToInt32(TargetMonth) == DateTime.Now.Month)
5392 NoOfDaysAsOnDate = DateTime.Now.Day;
5393 if (item.MonthlyTargetTotalWritten != 0)
5394 {
5395 item.TargetEstimated = (((TotalWrittenvalue / NoOfDaysAsOnDate) * (DateTime.DaysInMonth(DateTime.Now.Year, Convert.ToInt32(TargetMonth)))) / item.MonthlyTargetTotalWritten) * 100;
5396 }
5397 item.TotalOnTrack = ((TotalWrittenvalue / NoOfDaysAsOnDate) * (DateTime.DaysInMonth(DateTime.Now.Year, Convert.ToInt32(TargetMonth))));
5398 }
5399 else if (TargetType == "2")// yearly written target
5400 {
5401 int NoOfDaysAsOnDate = Convert.ToInt32((DateTime.Now - Convert.ToDateTime("01/01/" + DateTime.Now.Year.ToString())).TotalDays);
5402 int HowManyDaysInYear = 0;
5403 if (DateTime.Now.Year % 4 == 0)
5404 HowManyDaysInYear = 366;
5405 else
5406 HowManyDaysInYear = 365;
5407 if (item.AdviserTargetWritten != 0)
5408 {
5409 item.TargetEstimated = (((TotalWrittenvalue / NoOfDaysAsOnDate) * (HowManyDaysInYear)) / item.AdviserTargetWritten) * 100;
5410 }
5411 item.TotalOnTrack = ((TotalWrittenvalue / NoOfDaysAsOnDate) * (HowManyDaysInYear));
5412 }
5413 else if (TargetType == "3")//monthly completed target
5414 {
5415 item.AdviserTargetWritten = item.MonthlyTargetTotalWritten;
5416 item.AdviserTargetCompleted = item.MonthlyTargetTotalCompleted;
5417 int NoOfDaysAsOnDate = 0;
5418 if (Convert.ToInt32(TargetMonth) < DateTime.Now.Month)
5419 NoOfDaysAsOnDate = DateTime.DaysInMonth(DateTime.Now.Year, Convert.ToInt32(TargetMonth));
5420 else if (Convert.ToInt32(TargetMonth) == DateTime.Now.Month)
5421 NoOfDaysAsOnDate = DateTime.Now.Day;
5422 if (item.MonthlyTargetTotalCompleted != 0)
5423 {
5424 item.TargetEstimated = (((TotalWrittenvalue / NoOfDaysAsOnDate) * (DateTime.DaysInMonth(DateTime.Now.Year, Convert.ToInt32(TargetMonth)))) / item.MonthlyTargetTotalCompleted) * 100;
5425 }
5426 item.TotalOnTrack = ((TotalWrittenvalue / NoOfDaysAsOnDate) * (DateTime.DaysInMonth(DateTime.Now.Year, Convert.ToInt32(TargetMonth))));
5427 }
5428 else if (TargetType == "4")// yearly completed target
5429 {
5430 int NoOfDaysAsOnDate = Convert.ToInt32((DateTime.Now - Convert.ToDateTime("01/01/" + DateTime.Now.Year.ToString())).TotalDays);
5431 int HowManyDaysInYear = 0;
5432 if (DateTime.Now.Year % 4 == 0)
5433 HowManyDaysInYear = 366;
5434 else
5435 HowManyDaysInYear = 365;
5436 if (item.AdviserTargetCompleted != 0)
5437 {
5438 item.TargetEstimated = (((TotalWrittenvalue / NoOfDaysAsOnDate) * (HowManyDaysInYear)) / item.AdviserTargetCompleted) * 100;
5439 }
5440 item.TotalOnTrack = ((TotalWrittenvalue / NoOfDaysAsOnDate) * (HowManyDaysInYear));
5441 }
5442 else if (TargetType == "6")// quarterly written target
5443 {
5444 item.AdviserTargetWritten = item.QuarterlyTargetTotalWritten;
5445 item.AdviserTargetCompleted = item.QuarterlyTargetTotalCompleted;
5446
5447 if (item.QuarterlyTargetTotalWritten != 0)
5448 {
5449 item.TargetEstimated = (((TotalWrittenvalue / NoOfDays) * NoOfDaysinQuarter) / item.QuarterlyTargetTotalWritten) * 100;
5450 }
5451 item.TotalOnTrack = ((TotalWrittenvalue / NoOfDays) * NoOfDaysinQuarter);
5452 }
5453 else if (TargetType == "8")// quarterly written target
5454 {
5455 item.AdviserTargetWritten = item.QuarterlyTargetTotalWritten;
5456 item.AdviserTargetCompleted = item.QuarterlyTargetTotalCompleted;
5457
5458 if (item.QuarterlyTargetTotalCompleted != 0)
5459 {
5460 item.TargetEstimated = (((TotalWrittenvalue / NoOfDays) * NoOfDaysinQuarter) / item.QuarterlyTargetTotalCompleted) * 100;
5461 }
5462 item.TotalOnTrack = ((TotalWrittenvalue / NoOfDays) * NoOfDaysinQuarter);
5463 }
5464
5465 else if (TargetType == "5") //weekly written
5466 {
5467 var day = (int)CultureInfo.CurrentCulture.Calendar.GetDayOfWeek(DateTime.Now);
5468 var weekNo = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(DateTime.Now.AddDays(4 - (day == 0 ? 7 : day)), CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
5469 item.AdviserTargetWritten = item.WeeklyTargetTotalWritten;
5470 item.AdviserTargetCompleted = item.WeeklyTargetTotalCompleted;
5471 int NoOfDaysAsOnDate = 0;
5472 if (Convert.ToInt32(TWeek) < weekNo)
5473 NoOfDaysAsOnDate = 7;
5474 else if (Convert.ToInt32(TWeek) == weekNo)
5475 NoOfDaysAsOnDate = (int)DateTime.Now.DayOfWeek;
5476 if (item.WeeklyTargetTotalWritten != 0)
5477 {
5478 item.TargetEstimated = (((TotalWrittenvalue / 7) * 7) / item.WeeklyTargetTotalWritten) * 100;
5479 }
5480
5481 item.TotalOnTrack = ((TotalWrittenvalue / 7) * 7);
5482 }
5483 else if (TargetType == "7")//weekly completed
5484 {
5485 var day = (int)CultureInfo.CurrentCulture.Calendar.GetDayOfWeek(DateTime.Now);
5486 var weekNo = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(DateTime.Now.AddDays(4 - (day == 0 ? 7 : day)), CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
5487 item.AdviserTargetWritten = item.WeeklyTargetTotalWritten;
5488 item.AdviserTargetCompleted = item.WeeklyTargetTotalCompleted;
5489 int NoOfDaysAsOnDate = 0;
5490 if (Convert.ToInt32(TWeek) < weekNo)
5491 NoOfDaysAsOnDate = 7;
5492 else if (Convert.ToInt32(TWeek) == weekNo)
5493 NoOfDaysAsOnDate = (int)DateTime.Now.DayOfWeek; ;
5494 if (item.WeeklyTargetTotalCompleted != 0)
5495 {
5496 item.TargetEstimated = (((TotalWrittenvalue / 7) * 7) / item.WeeklyTargetTotalCompleted) * 100;
5497 }
5498 item.TotalOnTrack = ((TotalWrittenvalue / 7) * 7);
5499 }
5500
5501
5502
5503 item.TotalWrittenValue = TotalWrittenvalue;
5504 objAdviserTargetTrackingReport.Add(item);
5505 }
5506 }
5507 return objAdviserTargetTrackingReport.OrderBy(m => m.Ranking).ToList();
5508 }
5509
5510 public int GetUserTypeAndId(int userId, out int userType)
5511 {
5512 int Id = 0;
5513 try
5514 {
5515 SqlParameter[] Param = new SqlParameter[1] { new SqlParameter("@UserId", userId) };
5516 DataTable dt = SqlHelper.ExecuteDatatable(CommandType.StoredProcedure, "GetUserType", Param);
5517 Id = Convert.ToInt32(dt.Rows[0]["Id"]);
5518 userType = Convert.ToInt32(dt.Rows[0]["userType"]);
5519 }
5520 catch (Exception ex)
5521 {
5522 Helper.ErrorLog(ex.InnerException, "Q_Report", "GetUserTypeAndId", ex.Message);
5523 throw;
5524 }
5525 return Id;
5526 }
5527
5528 public string ConvertWithSpaceText(string str)
5529 {
5530 if (str == "Monthly_Written_Target")
5531 return "Monthly Written Target";
5532 else if (str == "Yearly_Written_Target")
5533 return "Yearly Written Target";
5534 else if (str == "Monthly_Completed_Target")
5535 return "Monthly Completed Target";
5536 else if (str == "Yearly_Completed_Target")
5537 return "Yearly Completed Target";
5538 else if (str == "Weekly_Written_Target")
5539 return "Weekly Written Target";
5540 else if (str == "Quarterly_Written_Target")
5541 return "Quarterly Written Target";
5542 else if (str == "Weekly_Completed_Target")
5543 return "Weekly Completed Target";
5544 else if (str == "Quarterly_Completed_Target")
5545 return "Quarterly Completed Target";
5546 return "";
5547 }
5548
5549 #region [Pipeline]
5550
5551 /// <summary>
5552 /// Get client recent note details
5553 /// </summary>
5554 /// <param name="p"></param>
5555 /// <returns></returns>
5556 public List<ClientRecentNoteDetailsModel> GetClientRecentNoteDetails(int LoggedInUserId)
5557 {
5558 var objClientRecentNotes = new List<ClientRecentNoteDetailsModel>();
5559 try
5560 {
5561 SqlParameter[] Param = new SqlParameter[1];
5562 Param[0] = new SqlParameter("@LoggedInUserId", LoggedInUserId);
5563
5564 DataSet dsClientRecentNoteDetails = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "GetClientRecentNoteDetails", Param);
5565
5566 if (dsClientRecentNoteDetails != null)
5567 {
5568 objClientRecentNotes = (from DataRow dr in dsClientRecentNoteDetails.Tables[0].Rows
5569 select new ClientRecentNoteDetailsModel
5570 {
5571 StatusSetDate = Convert.ToDateTime(dr["StatusSetDate"]),
5572 Status = Convert.ToString(dr["Status"]),
5573 ClientName = Convert.ToString(dr["ClientName"]),
5574 IntroducerName = Convert.ToString(dr["IntroducerName"]),
5575 NoteAdded = Convert.ToDateTime(dr["NoteAdded"]),
5576 Note = Convert.ToString(dr["Note"]),
5577 StrNoteAdded = (dr["NoteAdded"] == DBNull.Value || dr["NoteAdded"] == null) ? "" : (Convert.ToDateTime(dr["NoteAdded"])).ToString(Helper._ddMMMyyyy),
5578 StrStatusSetDate = (dr["StatusSetDate"] == DBNull.Value || dr["StatusSetDate"] == null) ? "" : (Convert.ToDateTime(dr["StatusSetDate"])).ToString(Helper.ddMMyyyy),
5579 }).ToList();
5580 }
5581 }
5582 catch (Exception ex)
5583 {
5584 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetClientRecentNoteDetails", ex.Message);
5585 }
5586
5587 return objClientRecentNotes;
5588 }
5589
5590 /// <summary>
5591 ///
5592 /// </summary>
5593 /// <param name="LoggedInUserId"></param>
5594 /// <returns></returns>
5595 public List<MyNotificationsModel> GetClientNotificationDetails(int LoggedInUserId, int pagesize, int type)
5596 {
5597
5598 var objMyNotifications = new List<MyNotificationsModel>();
5599 try
5600 {
5601 SqlParameter[] Param = new SqlParameter[3];
5602 Param[0] = new SqlParameter("@LoggedInUserId", LoggedInUserId);
5603 Param[1] = new SqlParameter("@PageSize", pagesize);
5604 Param[2] = new SqlParameter("@Type", type);
5605
5606 DataSet dsMyNotification = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "GetClientAllNotificationDetails", Param);
5607
5608 if (dsMyNotification != null)
5609 {
5610 objMyNotifications = (from DataRow dr in dsMyNotification.Tables[0].Rows
5611 select new MyNotificationsModel
5612 {
5613 FinanceId = Convert.ToInt32((dr["FinanceId"] == DBNull.Value || dr["FinanceId"] == null) ? 0 : dr["FinanceId"]),
5614 StatusId = Convert.ToInt32((dr["StatusId"] == DBNull.Value || dr["StatusId"] == null) ? 0 : dr["StatusId"]),
5615 SubStatusId = Convert.ToInt32((dr["SubStatusId"] == DBNull.Value || dr["SubStatusId"] == null) ? 0 : dr["SubStatusId"]),
5616 Status = Convert.ToString((dr["Status"] == DBNull.Value || dr["Status"] == null) ? string.Empty : dr["Status"]),
5617 ClientOrContact = Convert.ToString((dr["ClientName"] == DBNull.Value || dr["ClientName"] == null) ? string.Empty : dr["ClientName"]),
5618 StatusCreateDate = Convert.ToDateTime((dr["CreateDate"] == DBNull.Value || dr["CreateDate"] == null) ? DateTime.MinValue : dr["CreateDate"]),
5619 SubStatusName = Convert.ToString((dr["SubStatusName"] == DBNull.Value || dr["SubStatusName"] == null) ? string.Empty : dr["SubStatusName"]),
5620 IntroducerName = Convert.ToString((dr["IntroducerName"] == DBNull.Value || dr["IntroducerName"] == null) ? string.Empty : dr["IntroducerName"]),
5621 RedOrGreen = Convert.ToString((dr["Color"] == DBNull.Value || dr["Color"] == null) ? string.Empty : dr["Color"]),
5622 DaysRemaining = Convert.ToInt32((dr["DaysRemaining"] == DBNull.Value || dr["DaysRemaining"] == null) ? 0 : dr["DaysRemaining"]),
5623 Overdue = Convert.ToInt32((dr["Overdue"] == DBNull.Value || dr["Overdue"] == null) ? 0 : dr["Overdue"])
5624
5625
5626 }).ToList();
5627
5628 }
5629 }
5630
5631 catch (Exception ex)
5632 {
5633 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetClientNotificationDetails", ex.Message);
5634 }
5635 //if (objMyNotifications != null && objMyNotifications.Count > 0)
5636 //{
5637 // objMyNotifications = CalculateOverdueOrDaysRemaining(objMyNotifications);
5638 //}
5639 return objMyNotifications;
5640 }
5641
5642 public enum ProductStatus
5643 {
5644 Mortgage_NewLead = 1,
5645 Mortgage_Remortgage = 2,
5646 Mortgage_CallBack = 3,
5647 Mortgage_Meeting = 4,
5648 Mortgage_DecisionInPrinciple = 5,
5649 Mortgage_PreOfferProcessing = 6,
5650 Mortgage_PostOfferProcessing = 7,
5651 Mortgage_Completed = 8,
5652 Mortgage_Prospect = 9,
5653 Life_NewLead = 10,
5654 Life_CallBack = 11,
5655 Life_Meeting = 12,
5656 Life_Processing = 13,
5657 Life_Completed = 14,
5658 Life_Prospect = 15,
5659 Building_NewLead = 16,
5660 Building_CallBack = 17,
5661 Building_Meeting = 18,
5662 Building_Processing = 19,
5663 Building_Completed = 20,
5664 Building_Prospect = 21,
5665 Pension_NewLead = 22,
5666 Pension_CallBack = 23,
5667 Pension_Meeting = 24,
5668 Pension_Processing = 25,
5669 Pension_Completed = 26,
5670 Pension_Prospect = 27,
5671 Investment_NewLead = 28,
5672 Investment_CallBack = 29,
5673 Investment_Meeting = 30,
5674 Investment_Processing = 31,
5675 Investment_Completed = 32,
5676 Investment_Prospect = 33,
5677 Mortgage_Delete = 34,
5678 Life_Delete = 35,
5679 Building_Delete = 36,
5680 Pension_Delete = 37,
5681 Investment_Delete = 38,
5682 }
5683
5684 public enum ProductSubStatus
5685 {
5686 PreOfferProcessing_ValuationInstructed = 1,
5687 PreOfferProcessing_ValuationReceivedApproved = 2,
5688 PostOfferProcessing_ContractsExchanged = 3
5689 }
5690
5691 /// <summary>
5692 /// Calculate overdue or days remaining for any product based on its status and substatus.
5693 /// </summary>
5694 /// <param name="objMyNotifications"></param>
5695 /// <returns></returns>
5696 public List<MyNotificationsModel> CalculateOverdueOrDaysRemaining(List<MyNotificationsModel> objMyNotifications)
5697 {
5698 try
5699 {
5700 foreach (var myNotification in objMyNotifications.ToList())
5701 {
5702 //Product Main Status
5703 if (myNotification.SubStatusId > 0)
5704 {
5705 //Product Sub Status
5706 switch (myNotification.SubStatusId)
5707 {
5708 case (int)ProductSubStatus.PreOfferProcessing_ValuationInstructed:
5709 {
5710 if (myNotification.StatusCreateDate != DateTime.MinValue)
5711 {
5712 var overdueDate = AddBusinessDays(myNotification.StatusCreateDate, 4);
5713 CompareDates(myNotification, overdueDate);
5714 }
5715 break;
5716 }
5717 case (int)ProductSubStatus.PreOfferProcessing_ValuationReceivedApproved:
5718 {
5719 if (myNotification.StatusCreateDate != DateTime.MinValue)
5720 {
5721 var overdueDate = AddBusinessDays(myNotification.StatusCreateDate, 8);
5722 CompareDates(myNotification, overdueDate);
5723 }
5724 break;
5725 }
5726 case (int)ProductSubStatus.PostOfferProcessing_ContractsExchanged:
5727 {
5728 if (myNotification.StatusCreateDate != DateTime.MinValue)
5729 {
5730 var overdueDate = myNotification.StatusCreateDate.AddDays(21);
5731 CompareDates(myNotification, overdueDate);
5732 }
5733 break;
5734 }
5735 default:
5736 break;
5737 }
5738 }
5739 else
5740 {
5741 switch (myNotification.StatusId)
5742 {
5743 case (int)ProductStatus.Mortgage_NewLead:
5744 case (int)ProductStatus.Life_NewLead:
5745 case (int)ProductStatus.Building_NewLead:
5746 case (int)ProductStatus.Pension_NewLead:
5747 case (int)ProductStatus.Investment_NewLead:
5748 {
5749 if (myNotification.StatusCreateDate != DateTime.MinValue)
5750 {
5751 var overdueDate = myNotification.StatusCreateDate.AddHours(2);
5752 CompareDates(myNotification, overdueDate);
5753 }
5754 break;
5755 }
5756 case (int)ProductStatus.Mortgage_CallBack:
5757 case (int)ProductStatus.Life_CallBack:
5758 case (int)ProductStatus.Building_CallBack:
5759 case (int)ProductStatus.Pension_CallBack:
5760 case (int)ProductStatus.Investment_CallBack:
5761 {
5762 if (myNotification.StatusCreateDate != DateTime.MinValue)
5763 {
5764 var overdueDate = AddBusinessDays(myNotification.StatusCreateDate, 2);
5765 CompareDates(myNotification, overdueDate);
5766 }
5767 break;
5768 }
5769 case (int)ProductStatus.Mortgage_Meeting:
5770 case (int)ProductStatus.Life_Meeting:
5771 case (int)ProductStatus.Building_Meeting:
5772 case (int)ProductStatus.Pension_Meeting:
5773 case (int)ProductStatus.Investment_Meeting:
5774 {
5775 if (myNotification.StatusCreateDate != DateTime.MinValue)
5776 {
5777 var overdueDate = AddBusinessDays(myNotification.StatusCreateDate, 2);
5778 CompareDates(myNotification, overdueDate);
5779 }
5780 break;
5781 }
5782 case (int)ProductStatus.Mortgage_DecisionInPrinciple:
5783 {
5784 if (myNotification.StatusCreateDate != DateTime.MinValue)
5785 {
5786 var overdueDate = AddBusinessDays(myNotification.StatusCreateDate, 2);
5787 CompareDates(myNotification, overdueDate);
5788 }
5789 break;
5790 }
5791 case (int)ProductStatus.Mortgage_PreOfferProcessing:
5792 case (int)ProductStatus.Life_Processing:
5793 case (int)ProductStatus.Building_Processing:
5794 case (int)ProductStatus.Pension_Processing:
5795 case (int)ProductStatus.Investment_Processing:
5796 {
5797 if (myNotification.StatusCreateDate != DateTime.MinValue)
5798 {
5799 var overdueDate = AddBusinessDays(myNotification.StatusCreateDate, 10);
5800 CompareDates(myNotification, overdueDate);
5801
5802 }
5803 break;
5804 }
5805 case (int)ProductStatus.Mortgage_PostOfferProcessing:
5806 {
5807 if (myNotification.StatusCreateDate != DateTime.MinValue)
5808 {
5809 var overdueDate = AddBusinessDays(myNotification.StatusCreateDate, 10);
5810 CompareDates(myNotification, overdueDate);
5811 }
5812 break;
5813 }
5814 case (int)ProductStatus.Mortgage_Remortgage:
5815 {
5816 if (myNotification.StatusCreateDate != DateTime.MinValue)
5817 {
5818 var overdueDate = myNotification.StatusCreateDate.AddMonths(1);
5819 CompareDates(myNotification, overdueDate);
5820 }
5821 break;
5822 }
5823 default:
5824 break;
5825 }
5826 }
5827 }
5828 }
5829 catch (Exception ex)
5830 {
5831 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "CalculateOverdueOrDaysRemaining", ex.Message);
5832 }
5833 return objMyNotifications;
5834 }
5835
5836 /// <summary>
5837 /// Compare two dates and set color
5838 /// </summary>
5839 /// <param name="myNotification"></param>
5840 /// <param name="overdueDate"></param>
5841 public void CompareDates(MyNotificationsModel myNotification, DateTime overdueDate)
5842 {
5843 TimeSpan timeDiff = DateTime.Now - overdueDate;
5844 var daysDiff = Math.Abs(timeDiff.Days);
5845 if (DateTime.Compare(DateTime.Now, overdueDate) >= 0)
5846 {
5847 myNotification.RedOrGreen = "Red";
5848 myNotification.Overdue = daysDiff;
5849 myNotification.DaysRemaining = daysDiff;
5850 }
5851 else
5852 {
5853 myNotification.RedOrGreen = "Green";
5854 myNotification.DaysRemaining = daysDiff;
5855 myNotification.Overdue = daysDiff;
5856 }
5857 }
5858
5859 /// <summary>
5860 /// Adds the given number of business days to the <see cref="DateTime"/>.
5861 /// </summary>
5862 /// <param name="current">The date to be changed.</param>
5863 /// <param name="days">Number of business days to be added.</param>
5864 /// <returns>A <see cref="DateTime"/> increased by a given number of business days.</returns>
5865 public DateTime AddBusinessDays(DateTime current, int days)
5866 {
5867 var sign = Math.Sign(days);
5868 var unsignedDays = Math.Abs(days);
5869 for (var i = 0; i < unsignedDays; i++)
5870 {
5871 do
5872 {
5873 current = current.AddDays(sign);
5874 }
5875 while (current.DayOfWeek == DayOfWeek.Saturday ||
5876 current.DayOfWeek == DayOfWeek.Sunday);
5877 }
5878 return current;
5879 }
5880
5881 /// <summary>
5882 /// Subtracts the given number of business days to the <see cref="DateTime"/>.
5883 /// </summary>
5884 /// <param name="current">The date to be changed.</param>
5885 /// <param name="days">Number of business days to be subtracted.</param>
5886 /// <returns>A <see cref="DateTime"/> increased by a given number of business days.</returns>
5887 public DateTime SubtractBusinessDays(DateTime current, int days)
5888 {
5889 return AddBusinessDays(current, -days);
5890 }
5891
5892 /// <summary>
5893 /// Get product details on the basis of financeid.
5894 /// </summary>
5895 /// <param name="financeId"></param>
5896 /// <returns></returns>
5897 public PipelineProductDetails GetPipelineProductDetails(int financeId)
5898 {
5899 PipelineProductDetails objProduct = new PipelineProductDetails();
5900 try
5901 {
5902 SqlParameter[] Param = new SqlParameter[1];
5903 Param[0] = new SqlParameter("@financeid", financeId);
5904
5905 DataSet dsProduct = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "GetPipelineProductDetails", Param);
5906
5907 if (dsProduct != null)
5908 {
5909 objProduct = (from DataRow dr in dsProduct.Tables[0].Rows
5910 select new PipelineProductDetails
5911 {
5912 Introducer = Convert.ToString((dr["Introducer"] == DBNull.Value || dr["Introducer"] == null) ? 0 : dr["Introducer"]),
5913 Adviser = Convert.ToString((dr["Adviser"] == DBNull.Value || dr["Adviser"] == null) ? 0 : dr["Adviser"]),
5914 Client = Convert.ToString((dr["Client"] == DBNull.Value || dr["Client"] == null) ? 0 : dr["Client"]),
5915 ProductType = Convert.ToString((dr["ProductType"] == DBNull.Value || dr["ProductType"] == null) ? string.Empty : dr["ProductType"]),
5916 Status = Convert.ToString((dr["Status"] == DBNull.Value || dr["Status"] == null) ? string.Empty : dr["Status"]),
5917 SubStatus = Convert.ToString((dr["SubStatus"] == DBNull.Value || dr["SubStatus"] == null) ? string.Empty : dr["SubStatus"]),
5918 Branch = Convert.ToString((dr["Branch"] == DBNull.Value || dr["Branch"] == null) ? string.Empty : dr["Branch"]),
5919 Negotiator = Convert.ToString((dr["Negotiator"] == DBNull.Value || dr["Negotiator"] == null) ? string.Empty : dr["Negotiator"]),
5920 Created = Convert.ToDateTime((dr["Created"] == DBNull.Value || dr["Created"] == null) ? DateTime.MinValue : dr["Created"]),
5921 Updated = Convert.ToDateTime((dr["Updated"] == DBNull.Value || dr["Updated"] == null) ? DateTime.MinValue : dr["Updated"]),
5922 Amount = Decimal.Round(Convert.ToDecimal((dr["Amount"] == DBNull.Value || dr["Amount"] == null) ? 0.0M : dr["Amount"]), 2)
5923 }).FirstOrDefault();
5924
5925 }
5926 }
5927 catch (Exception ex)
5928 {
5929 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetPipelineProductDetails", ex.Message);
5930 }
5931 return objProduct;
5932 }
5933
5934 public DataSet GetIntroducerVisitListByBrokerId(int brokerId)
5935 {
5936 try
5937 {
5938 SqlParameter[] Param = new SqlParameter[1];
5939 Param[0] = new SqlParameter("@BrokerId", brokerId);
5940 DataSet dsProduct = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "GetIntroducerVisitsByBrokerId", Param);
5941 return dsProduct;
5942 }
5943 catch (Exception ex)
5944 {
5945 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetIntroducerVisitListByBrokerId", ex.Message);
5946 return null;
5947 }
5948 }
5949
5950 public string GetGlobleNoteByNoteId(int id)
5951 {
5952 return dbContext.tblglobalnotes.Where(x => x.NoteId == id).Select(x => x.Notes).FirstOrDefault().ToString();
5953 }
5954
5955 public List<SelectListItem> GetSimilarGroupBroker(int introducerVisitsId)
5956 {
5957 var appointment = dbContext.tblIntroducerVisits.Where(x => x.Id == introducerVisitsId).FirstOrDefault();
5958 try
5959 {
5960 SqlParameter[] Param = new SqlParameter[3];
5961 Param[0] = new SqlParameter("@companyId", appointment.account);
5962 Param[1] = new SqlParameter("@branchId", appointment.BranchId);
5963 Param[2] = new SqlParameter("@brokerId", appointment.broker);
5964 DataSet ds = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "GetIntroducerVisitsBrokerBySimilarBranchCompany", Param);
5965 if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
5966 {
5967 List<SelectListItem> lstBrokers = new List<SelectListItem>();
5968 foreach (DataRow dr in ds.Tables[0].Rows)
5969 {
5970 lstBrokers.Add(new SelectListItem { Text = Convert.ToString(dr["brokername"]), Value = Convert.ToString(dr["broker"]) });
5971 }
5972 return lstBrokers;
5973 }
5974 else
5975 return null;
5976 }
5977 catch (Exception ex)
5978 {
5979 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetIntroducerVisitListByBrokerId", ex.Message);
5980 return null;
5981 }
5982 }
5983
5984 public int UpdateAccountVisits(int userId, int accountId, int id, int status, string note = "")
5985 {
5986 try
5987 {
5988 var appointment = dbContext.tblIntroducerVisits.Where(x => x.Id == id).FirstOrDefault();
5989 if (appointment != null)
5990 {
5991 //Add note
5992 var noteId = AccountVisitAddNote(appointment.broker ?? 0, appointment.account ?? 0, note);
5993 if (noteId > 0)
5994 {
5995 var appointmentStatus = new tblIntroducerVisitsStatu();
5996 appointmentStatus.IntroducerVisitsId = id;
5997 appointmentStatus.Status = status;
5998 appointmentStatus.NoteId = noteId;
5999 appointmentStatus.CreatedBy = appointment.broker;
6000 appointmentStatus.CreatedDate = DateTime.Now;
6001 dbContext.tblIntroducerVisitsStatus.Add(appointmentStatus);
6002 dbContext.SaveChanges();
6003 if (appointmentStatus.Id > 0)
6004 {
6005 appointment.NoteId = noteId;
6006 appointment.StatusId = appointmentStatus.Id;
6007 appointment.Updated = DateTime.Now;
6008 appointment.UpdatedBy = appointment.broker;
6009 dbContext.SaveChanges();
6010 }
6011
6012 //If rejected
6013 if (status == (int)IntroducerVisitStatusEnum.Reject)
6014 {
6015 var objAppointment = new tblIntroducerVisit();
6016 objAppointment.account = appointment.account;
6017 objAppointment.broker = (dbContext.tblIntroducerVisits.Where(x => x.TransferToId == appointment.Id).Select(x => x.broker).FirstOrDefault());
6018 objAppointment.FrequencyDay = appointment.FrequencyDay;
6019 objAppointment.FrequencyType = appointment.FrequencyType;
6020 objAppointment.BranchId = appointment.BranchId;
6021 objAppointment.Created = DateTime.Now;
6022 objAppointment.StatusId = 0;
6023 objAppointment.Updated = DateTime.Now;
6024 objAppointment.Created = DateTime.Now;
6025 objAppointment.UpdatedBy = userId;
6026 objAppointment.CreatedBy = userId;
6027 objAppointment.IsActive = true;
6028 objAppointment.VisitDate = appointment.VisitDate;
6029 dbContext.tblIntroducerVisits.Add(objAppointment);
6030 dbContext.SaveChanges();
6031 if (objAppointment.Id > 0)
6032 {
6033 string brokerName = dbContext.tblusers.Where(x => x.userid == appointment.broker && x.active == true && x.broker == true).Select(x => x.brokername).FirstOrDefault().ToString();
6034 string _note = "";
6035 _note = "Your transfer request has been rejected by " + brokerName + ", which is scheduled with Introducer " + dbContext.tblaccounts.Where(res => res.accountid == appointment.account).Select(res => res.companyname).FirstOrDefault() + " in branch " + dbContext.tblBranches.Where(x => x.Id == appointment.BranchId).Select(x => x.Branch).FirstOrDefault().ToString();
6036 if (appointment.VisitDate != null)
6037 {
6038 DateTime _visitDate;
6039 _visitDate = appointment.VisitDate ?? DateTime.Now;
6040 _note = _note + " on " + _visitDate.ToString("dd/MMMM/yyyy") + ".";
6041 }
6042
6043 var new_noteId = AccountVisitAddNote(objAppointment.broker ?? 0, objAppointment.account ?? 0, _note);
6044 if (new_noteId > 0)
6045 {
6046 var appointmentStatus_ForReject = new tblIntroducerVisitsStatu();
6047 appointmentStatus_ForReject.IntroducerVisitsId = objAppointment.Id;
6048 appointmentStatus_ForReject.Status = (int)IntroducerVisitStatusEnum.Pending;
6049 appointmentStatus_ForReject.NoteId = new_noteId;
6050 appointmentStatus_ForReject.CreatedBy = appointment.broker;
6051 appointmentStatus_ForReject.CreatedDate = DateTime.Now;
6052 dbContext.tblIntroducerVisitsStatus.Add(appointmentStatus_ForReject);
6053 dbContext.SaveChanges();
6054 if (appointmentStatus_ForReject.Id > 0)
6055 {
6056 objAppointment.NoteId = new_noteId;
6057 objAppointment.StatusId = appointmentStatus_ForReject.Id;
6058 objAppointment.Updated = DateTime.Now;
6059 objAppointment.UpdatedBy = appointment.broker;
6060 dbContext.SaveChanges();
6061 }
6062 }
6063 }
6064 }
6065 }
6066 }
6067 return 1;
6068 }
6069 catch (Exception ex)
6070 {
6071 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "UpdateAccountVisits", ex.Message);
6072 return 0;
6073 }
6074 }
6075
6076 public int TransferAccountVisit(int id, int transferToBroker, string note, int userId, int accountId)
6077 {
6078 try
6079 {
6080 var appointment = dbContext.tblIntroducerVisits.Where(x => x.Id == id).FirstOrDefault();
6081 if (appointment != null)
6082 {
6083 //Create new broker details
6084 tblIntroducerVisit objTransferAppointment = new tblIntroducerVisit();
6085 objTransferAppointment.account = appointment.account;
6086 objTransferAppointment.broker = transferToBroker;
6087 objTransferAppointment.FrequencyDay = appointment.FrequencyDay;
6088 objTransferAppointment.FrequencyType = appointment.FrequencyType;
6089 objTransferAppointment.BranchId = appointment.BranchId;
6090 objTransferAppointment.Created = DateTime.Now;
6091 objTransferAppointment.Updated = DateTime.Now;
6092 objTransferAppointment.UpdatedBy = appointment.broker;
6093 objTransferAppointment.Created = DateTime.Now;
6094 objTransferAppointment.CreatedBy = appointment.broker;
6095 objTransferAppointment.IsActive = true;
6096 objTransferAppointment.VisitDate = appointment.VisitDate;
6097 dbContext.tblIntroducerVisits.Add(objTransferAppointment);
6098 dbContext.SaveChanges();
6099 if (objTransferAppointment.Id > 0)
6100 {
6101 var transferStatus = new tblIntroducerVisitsStatu();
6102 transferStatus.IntroducerVisitsId = id;
6103 transferStatus.Status = (int)IntroducerVisitStatusEnum.Pending;
6104 transferStatus.CreatedBy = appointment.broker;
6105 transferStatus.CreatedDate = DateTime.Now;
6106 dbContext.tblIntroducerVisitsStatus.Add(transferStatus);
6107 dbContext.SaveChanges();
6108 if (transferStatus.Id > 0)
6109 {
6110 objTransferAppointment.StatusId = transferStatus.Id;
6111 objTransferAppointment.Updated = DateTime.Now;
6112 objTransferAppointment.UpdatedBy = appointment.broker;
6113 string brokerName = dbContext.tblusers.Where(x => x.userid == appointment.broker && x.active == true && x.broker == true).Select(x => x.brokername).FirstOrDefault().ToString();
6114 string _note = "";
6115 _note = "A meeting is transferred to you by " + brokerName + ", which is scheduled with Introducer " + dbContext.tblaccounts.Where(res => res.accountid == objTransferAppointment.account).Select(res => res.companyname).FirstOrDefault() + " in branch " + dbContext.tblBranches.Where(x => x.Id == appointment.BranchId).Select(x => x.Branch).FirstOrDefault().ToString();
6116 if (appointment.VisitDate != null)
6117 {
6118 DateTime _visitDate;
6119 _visitDate = appointment.VisitDate ?? DateTime.Now;
6120 _note = _note + " on " + _visitDate.ToString("dd/MMMM/yyyy") + ".";
6121 }
6122 var noteId = AccountVisitAddNote(userId, accountId, _note);
6123 if (noteId > 0)
6124 {
6125 objTransferAppointment.NoteId = noteId;
6126 transferStatus.NoteId = noteId;
6127 }
6128 dbContext.SaveChanges();
6129
6130 //Update old broker detail
6131 var appointmentStatus = new tblIntroducerVisitsStatu();
6132 appointmentStatus.IntroducerVisitsId = id;
6133 appointmentStatus.Status = (int)IntroducerVisitStatusEnum.Transfer;
6134 appointmentStatus.CreatedBy = appointment.broker;
6135 appointmentStatus.CreatedDate = DateTime.Now;
6136 dbContext.tblIntroducerVisitsStatus.Add(appointmentStatus);
6137 dbContext.SaveChanges();
6138 if (appointmentStatus.Id > 0)
6139 {
6140 int _note_id = AccountVisitAddNote(userId, accountId, note);
6141 appointment.TransferToId = objTransferAppointment.Id;
6142 appointment.NoteId = _note_id;
6143 appointment.StatusId = appointmentStatus.Id;
6144 appointment.Updated = DateTime.Now;
6145 appointment.UpdatedBy = appointment.broker;
6146 appointmentStatus.NoteId = _note_id;
6147 dbContext.SaveChanges();
6148 }
6149
6150 }
6151 }
6152 }
6153 return 1;
6154 }
6155 catch (Exception ex)
6156 {
6157 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "TransferAccountVisit", ex.Message);
6158 return 0;
6159 }
6160 }
6161
6162
6163 public int AccountVisitAddNote(int userId, int accountId, string note)
6164 {
6165 try
6166 {
6167 tblIntroducerVisitNote objNote = new tblIntroducerVisitNote();
6168 objNote.Account = accountId;
6169 objNote.Note = note;
6170 objNote.Created = DateTime.Now;
6171 objNote.CreatedBy = userId;
6172 dbContext.tblIntroducerVisitNotes.Add(objNote);
6173 dbContext.SaveChanges();
6174 return objNote.Id;
6175
6176 }
6177 catch (Exception ex)
6178 {
6179 Helper.ErrorLog(ex.InnerException, "PipelintController", "AccountVisitsTransfer", ex.Message);
6180 return 0;
6181 }
6182 }
6183
6184
6185 #endregion [Pipeline]
6186
6187 #region Adviser Target Tracking Report from Web service
6188 public List<AdviserTargetTrackingReport> WS_GetAdviserTargetTrackingList(int LoggedInUserId, int LoggedInUserAccountId, string BrokerIds, DateTime FromDate, DateTime ToDate, string TargetType, string TMonth)
6189 {
6190 List<AdviserTargetTrackingReport> objAdviserTargets = new List<AdviserTargetTrackingReport>();
6191 int totalDaysInYear = new DateTime(DateTime.Now.Year, 12, 31).DayOfYear;
6192 int dayOfYear = DateTime.Now.DayOfYear;
6193 if (BrokerIds == string.Empty)
6194 BrokerIds = null;
6195 try
6196 {
6197 SqlParameter[] Param = new SqlParameter[8];
6198 Param[0] = new SqlParameter("@LoggedInUserId", LoggedInUserId);
6199 Param[1] = new SqlParameter("@LoggedInUserAccountId", LoggedInUserAccountId);
6200 Param[2] = new SqlParameter("@BrokerId", BrokerIds);
6201 Param[3] = new SqlParameter("@FromDate", FromDate.ToString("dd/MMM/yyyy"));
6202 Param[4] = new SqlParameter("@ToDate", ToDate.ToString("dd/MMM/yyyy"));
6203 Param[5] = new SqlParameter("@TargetType", TargetType);
6204 Param[6] = new SqlParameter("@TargetMonth", TMonth);
6205 DataSet dsTargetSettings = SqlHelper.ExecuteDataset(CommandType.StoredProcedure, "GetAdviserTargetTrackingDetailsReport", Param);
6206 if (dsTargetSettings != null)
6207 {
6208 foreach (DataRow drCompleted in dsTargetSettings.Tables[0].Rows)
6209 {
6210 DataRow drWritten = (from myRow in dsTargetSettings.Tables[1].AsEnumerable()
6211 where myRow.Field<int>("UserId") == Convert.ToInt32(drCompleted["UserId"])
6212 select myRow).FirstOrDefault();
6213 if (drWritten != null)
6214 {
6215 AdviserTargetTrackingReport objAdv = new AdviserTargetTrackingReport();
6216 objAdv.AdviserName = Convert.ToString(drCompleted["AdviserName"]);
6217 objAdv.AdviserTargetWritten = Convert.ToDecimal(drWritten["AnualTargetTotalWritten"]);
6218 objAdv.AdviserTargetCompleted = Convert.ToDecimal(drCompleted["AnualTargetTotalCompleted"]);
6219 objAdv.MonthlyTargetTotalWritten = Convert.ToDecimal(drWritten["MonthlyTargetTotalWritten"]);
6220 objAdv.AdviserId = Convert.ToInt32(drWritten["AdviserId"]);
6221 objAdv.MonthlyTargetTotalCompleted = Convert.ToDecimal(drCompleted["MonthlyTargetTotalCompleted"]);
6222 objAdv.EstimatedWritten = Convert.ToDecimal(drWritten["AnualMortgageWritten"]) / dayOfYear * totalDaysInYear;
6223 objAdv.EstimatedCompleted = Convert.ToDecimal(drCompleted["AnualMortgageCompleted"]) / dayOfYear * totalDaysInYear;
6224 if (objAdv.AdviserTargetWritten > 0)
6225 {
6226 objAdv.PerToTargetWritten = Convert.ToInt32((objAdv.EstimatedWritten / objAdv.AdviserTargetWritten) * 100);
6227 }
6228 if (objAdv.AdviserTargetCompleted > 0)
6229 {
6230 objAdv.PerToTargetCompleted = Convert.ToInt32((objAdv.EstimatedCompleted / objAdv.AdviserTargetCompleted) * 100);
6231 }
6232 objAdviserTargets.Add(objAdv);
6233 }
6234 else
6235 {
6236 AdviserTargetTrackingReport objAdv = new AdviserTargetTrackingReport();
6237 objAdv.AdviserName = Convert.ToString(drCompleted["AdviserName"]);
6238 objAdv.AdviserTargetWritten = 0;//Convert.ToDecimal(drWritten["AnualTargetTotalWritten"]);
6239 objAdv.AdviserTargetCompleted = Convert.ToDecimal(drCompleted["AnualTargetTotalCompleted"]);
6240 objAdv.AdviserId = Convert.ToInt32(drCompleted["AdviserId"]);
6241 objAdv.MonthlyTargetTotalWritten = Convert.ToDecimal(drCompleted["MonthlyTargetTotalWritten"]);
6242 objAdv.MonthlyTargetTotalCompleted = Convert.ToDecimal(drCompleted["MonthlyTargetTotalCompleted"]);
6243 objAdv.EstimatedWritten = 0;// Convert.ToDecimal(drWritten["AnualMortgageWritten"]) / dayOfYear * totalDaysInYear;
6244 objAdv.EstimatedCompleted = Convert.ToDecimal(drCompleted["AnualMortgageCompleted"]) / dayOfYear * totalDaysInYear;
6245 if (objAdv.AdviserTargetWritten > 0)
6246 {
6247 objAdv.PerToTargetWritten = Convert.ToInt32((objAdv.EstimatedWritten / objAdv.AdviserTargetWritten) * 100);
6248 }
6249 if (objAdv.AdviserTargetCompleted > 0)
6250 {
6251 objAdv.PerToTargetCompleted = Convert.ToInt32((objAdv.EstimatedCompleted / objAdv.AdviserTargetCompleted) * 100);
6252 }
6253 objAdviserTargets.Add(objAdv);
6254 }
6255
6256 }
6257
6258 }
6259
6260 }
6261 catch (Exception ex)
6262 {
6263 Helper.ErrorLog(ex.InnerException, "TiledDashboard", "GetAdviserTargetTrackingList", ex.Message);
6264 }
6265
6266 return objAdviserTargets;
6267 }
6268
6269
6270 #endregion
6271 }