private static void ManageTasks(Microsoft.SharePoint.SPItemEventProperties properties) { // TODO:obsługa zadań nie podlegających restrykcjom czasowym Manage_ProsbaOPrzeslanieWyciaguBankowego(properties); Manage_ProsbaODokumenty(properties); }
private static void Manage_ProsbaOPrzeslanieWyciaguBankowego(Microsoft.SharePoint.SPItemEventProperties properties) { List <SPListItem> list = BLL.tabZadania.Get_ActiveTasksByContentType(properties.Web, "Prośba o przesłanie wyciągu bankowego"); foreach (SPListItem item in list) { Set_StatusZadania(item, "Gotowe"); } }
internal static void Execute(Microsoft.SharePoint.SPItemEventProperties properties, Microsoft.SharePoint.SPWeb web) { results = BLL.tabWiadomosci.Select_Batch(web); foreach (SPListItem item in results) { //todo: ??? obsługa pojedyńczej wiadomości - to chyba nie w tym miejscu BLL.Workflows.StartWorkflow(item, "Obsługa wiadomości"); Debug.WriteLine("Workflow initiated for message #" + item.ID.ToString()); } }
const string targetList = @"Faktury za obsługę - import"; //"intFakturyZaObsluge"; internal static void Execute(Microsoft.SharePoint.SPItemEventProperties properties, Microsoft.SharePoint.SPWeb web) { SPListItem sItem = properties.ListItem; int okresId = new SPFieldLookupValue(sItem["selOkres"].ToString()).LookupId; SPList list = web.Lists.TryGetList(targetList); list.Items.Cast <SPListItem>() .ToList() .ForEach(item => { Import_DaneOFakturze(web, item, okresId); }); }
private static void ManageTasks_WorkingHours(Microsoft.SharePoint.SPItemEventProperties properties) { TimeSpan startTS = TimeSpan.Parse(BLL.admSetup.GetValue(properties.Web, "PROC_TASK_START")); TimeSpan endTS = TimeSpan.Parse(BLL.admSetup.GetValue(properties.Web, "PROC_TASK_END")); TimeSpan currentTime = DateTime.Now.TimeOfDay; if (currentTime.CompareTo(startTS) < 0 || currentTime.CompareTo(endTS) > 0) { //zatrzymaj procedurę jeżeli aktualny czas nie mieści się w dozwolonym przedziale return; //Manage_ProsbaOPrzeslanieWyciaguBankowego(properties); //Manage_ProsbaODokumenty(properties); //Manage_AudytowaneZadania(properties); } }
const string targetList = @"Bufor wiadomości"; //"intBuforWiadomosci"; internal static void Execute(Microsoft.SharePoint.SPItemEventProperties properties, Microsoft.SharePoint.SPWeb web) { SPList list = web.Lists.TryGetList(targetList); //if (list != null) //{ list.Items.Cast <SPListItem>() .ToList() .ForEach(item => { //WorkflowHelpers.StartWorkflow(item, "wfImport_WiadomoscBufora.OnDemand"); }); //} }
internal static void Execute(Microsoft.SharePoint.SPItemEventProperties properties, Microsoft.SharePoint.SPWeb web, out string message) { StringBuilder sb = new StringBuilder(); //sprawdź parametry wywołania SPFieldMultiChoiceValue wt = new SPFieldMultiChoiceValue(properties.ListItem["enumTypKlienta"].ToString()); SPList list = web.Lists.TryGetList(targetList); for (int i = 0; i < wt.Count; i++) { switch (wt[i]) { case "KPiR": Import_KPiR(web, list); sb.AppendFormat(@"<li>{1} Import {0} zakończony</li>", wt[i], DateTime.Now.ToString()); break; case "KSH": Import_KSH(web, list); sb.AppendFormat(@"<li>{1} Import {0} zakończony</li>", wt[i], DateTime.Now.ToString()); break; case "Osoba fizyczna": Import_OsobaFizyczna(web, list); sb.AppendFormat(@"<li>{1} Import {0} zakończony</li>", wt[i], DateTime.Now.ToString()); break; case "Firma": Import_Firma(web, list); sb.AppendFormat(@"<li>{1} Import {0} zakończony</li>", wt[i], DateTime.Now.ToString()); break; default: break; } } message = String.Format(@"<ul>{0}</ul>", sb.ToString()); }
const string targetList = @"Przeterminowane należności - import"; //"intPrzeterminowaneNaleznosci"; internal static void Execute(Microsoft.SharePoint.SPItemEventProperties properties, Microsoft.SharePoint.SPWeb web) { string mode = properties.ListItem["cmdPrzeterminowaneNaleznosci"] != null ? properties.ListItem["cmdPrzeterminowaneNaleznosci"].ToString() : string.Empty; SPList list = web.Lists.TryGetList(targetList); Array aRekordy = list.Items.Cast <SPListItem>() .OrderBy(i => i["Title"].ToString()) .ThenBy(i => i["colDataSprzedazy"].ToString()) .ThenBy(i => i["colTerminPlatnosci"].ToString()) .ToArray(); List <string> lstDluznicy = new List <string>(); if (aRekordy != null) { string klient = string.Empty; string klient0 = string.Empty; foreach (SPListItem item in aRekordy) { string dluznik = item["Title"].ToString(); if (!lstDluznicy.Exists(i => i == dluznik)) { lstDluznicy.Add(dluznik); } } } foreach (string dluznik in lstDluznicy) { int klientId = tabKlienci.Get_KlientId_BestFit(web, dluznik); if (klientId > 0) { Array items = list.Items.Cast <SPListItem>() .Where(i => i["Title"].ToString() == dluznik) .ToArray(); StringBuilder sb = new StringBuilder(); string rowTemplate = dicSzablonyKomunikacji.Get_TemplateByKod(web, "OVERDUE_PAYMENTS_TR_TEMPLATE", false); double value1total = 0; double value2total = 0; foreach (SPListItem item in items) { item["selKlient"] = klientId; item.SystemUpdate(); StringBuilder sbRow = new StringBuilder(rowTemplate); sbRow.Replace("___colNumerFaktury___", item["colNumerFaktury"].ToString()); sbRow.Replace("___colDataSprzedazy___", item["colDataSprzedazy"].ToString()); sbRow.Replace("___colDataWystawienia___", item["colDataWystawienia"].ToString()); sbRow.Replace("___colTerminPlatnosci___", item["colTerminPlatnosci"].ToString()); //int dniZwloki = (DateTime.Today - DateTime.Parse(item["colTerminPlatnosci"].ToString())).Days; double value1 = Double.Parse(item["colKwotaFaktury"].ToString()); value1total = value1total + value1; double value2 = Double.Parse(item["colKwotaDlugu"].ToString()); value2total = value2total + value2; sbRow.Replace("___colKwotaFaktury___", BLL.Tools.Format_Currency(value1)); sbRow.Replace("___colZaplacono___", BLL.Tools.Format_Currency(value1 - value2)); sbRow.Replace("___colKwotaDlugu___", BLL.Tools.Format_Currency(value2)); sb.Append(sbRow); } string temat; string trescHTML; //StringBuilder sb0 = new StringBuilder(dicSzablonyKomunikacji.Get_TemplateByKod(web, "OVERDUE_PAYMENTS_TEMPLATE.Include", false)); dicSzablonyKomunikacji.Get_TemplateByKod(web, "OVERDUE_PAYMENTS_TEMPLATE.Include", out temat, out trescHTML, false); StringBuilder sb0 = new StringBuilder(trescHTML); sb0.Replace("___TABLE_ROW___", sb.ToString()); sb0.Replace("___colKwotaFakturyRazem___", BLL.Tools.Format_Currency(value1total)); sb0.Replace("___colKwotaDluguRazem___", BLL.Tools.Format_Currency(value2total)); StringBuilder lt = new StringBuilder(dicSzablonyKomunikacji.Get_TemplateByKod(web, "OVERDUE_PAYMENTS_LEADING_TEXT", false)); lt.Replace("___FIRMA___", BLL.tabKlienci.Get_NazwaFirmyById(web, klientId)); lt.Replace("___ADRES___", BLL.tabKlienci.Get_PelnyAdresFirmyById(web, klientId)); lt.Replace("___DATA___", DateTime.Now.ToShortDateString()); sb0.Replace("___OVERDUE_PAYMENTS_LEADING_TEXT___", lt.ToString()); StringBuilder tt = new StringBuilder(dicSzablonyKomunikacji.Get_TemplateByKod(web, "OVERDUE_PAYMENTS_TRAILING_TEXT", false)); tt.Replace("___DATA___", DateTime.Now.ToShortDateString()); tt.Replace("___KwotaDoZaplaty___", BLL.Tools.Format_Currency(value2total)); sb0.Replace("___OVERDUE_PAYMENTS_TRAILING_TEXT___", tt.ToString()); if (mode == "Import") { //zapisz w buforze wiadomości o ile string nadawca = BLL.admSetup.GetValue(web, "EMAIL_BIURA"); string odbiorca = BLL.tabKlienci.Get_EmailById(web, klientId); string kopiaDla = BLL.dicOperatorzy.EmailByUserId(web, properties.CurrentUserId); //dodanie nazwy firmy do tematu temat = BLL.Tools.AddCompanyName(web, temat, klientId); trescHTML = sb0.ToString(); BLL.tabWiadomosci.AddNew(web, nadawca, odbiorca, kopiaDla, false, true, temat, string.Empty, trescHTML, new DateTime(), 0, klientId); foreach (SPListItem item in items) { #if DEBUG // w trybie debugowania przetworzony rekord nie jest usówany z tablicy źródłowej #else item.Delete(); #endif } } // jeżeli mode "Weryfikacja" to jedynie mamy przypisanie kodu klient do rekordu i dzięki temu wiemy czy rekord został rozpoznany czy nie } } }
internal static void Execute(Microsoft.SharePoint.SPItemEventProperties properties, Microsoft.SharePoint.SPWeb web) { ManageTasks_WorkingHours(properties); ManageTasks(properties); }
internal static void Execute(Microsoft.SharePoint.SPItemEventProperties properties, Microsoft.SharePoint.SPWeb web) { StringBuilder msg = new StringBuilder(); SPListItem item = properties.ListItem; // sprawdź czy wybrana procedura jest obsługiwana string procName = string.Empty; int procId = 0; if (item["selProcedura"] != null) { procName = new SPFieldLookupValue(item["selProcedura"].ToString()).LookupValue; procId = new SPFieldLookupValue(item["selProcedura"].ToString()).LookupId; } switch (procName) { case ": Rozliczenie podatku dochodowego": case ": Rozliczenie podatku dochodowego spółki": case ": Rozliczenie podatku VAT": case ": Rozliczenie ZUS": Array tasks = BLL.tabZadania.Get_GotoweZadaniaByProceduraId(web, procId); foreach (SPListItem task in tasks) { //Sprawdź czy klient ma ustawiony serwis AD czy ADO //w przypadku AD zablokuj automatyczną akceptację if (BLL.tabKlienci.Has_ServiceById(task.Web, BLL.Tools.Get_LookupId(task, "selKlient"), "ADO")) { //uruchom proces zatwierdzenia Update_msg(msg, procName, task); BLL.WorkflowHelpers.StartWorkflow(task, "Zatwierdzenie zadania"); } } break; case ": Prośba o dokumenty": case ": Prośba o przesłanie wyciągu bankowego": case ": Rozliczenie z biurem rachunkowym": Array tasks2 = BLL.tabZadania.Get_AktywneZadaniaByProceduraId(web, procId); foreach (SPListItem task in tasks2) { Update_msg(msg, procName, task); BLL.WorkflowHelpers.StartWorkflow(task, "Zatwierdzenie zadania"); } break; default: break; } // info o zakończeniu procesu string bodyHTML = string.Empty; if (msg.Length > 0) { bodyHTML = string.Format(@"<ul>{0}</ul>", msg.ToString()); } string subject = string.Format(@"Automatyczne zatwierdzenie zadań typu {0}", procName); SPEmail.EmailGenerator.SendProcessEndConfirmationMail(subject, bodyHTML, web, item); }