protected void btnSubmit_Click(object sender, EventArgs e) { using (var ctx = new dsSPDDataContext()) { var spd = ctx.trSPDs.FirstOrDefault(o => o.noSPD == Id.Value); var firstApproval = ctx.ApprovalStatus.FirstOrDefault(o => o.NoSPD == Id.Value && o.IndexLevel.Value == 1); if (spd == null) { errorMessageHidden.Add("SPD tidak ditemukan"); } if (firstApproval == null) { errorMessageHidden.Add("Approval pertama tidak ditemukan"); } if (errorMessageHidden.Count() == 0) { spd.diubahOleh = karyawan.nrp; spd.diubahTanggal = DateTime.Now; spd.isSubmitDate = DateTime.Now; spd.nrpAtasan = firstApproval.NrpApproval; spd.status = "Menunggu approval " + firstApproval.ApprovalRule.Deskripsi; spd.isSubmit = true; try { ctx.SubmitChanges(); } catch (Exception ex) { errorMessageHidden.Add("Error Submit SPD, gangguan teknis"); errorMessageHidden.Add(ex.Message); } finally { pnlSuccess.Visible = true; pnlError.Visible = false; lblSuccess.Text = "SPD Berhasil di Submit, No SPD : " + spd.noSPD + ", status spd saat ini adalah " + spd.status; btnSubmit.Enabled = false; // send approval atasan EmailCore.ApprovalSPD(firstApproval.NrpApproval, Id.Value, firstApproval.IndexLevel.Value.ToString(), spd); } } if (errorMessageHidden.Count() > 0) { errorMessage.DataSource = errorMessageHidden; errorMessage.DataBind(); pnlError.Visible = true; pnlSuccess.Visible = false; } } }
public void SendPlaintextEmail() { string address = "*****@*****.**"; var email = Plaintext(); email.Sender = address; email.Recipient = address; var core = new EmailCore(); core.Send(email); }
public ActionResult Index(string mensaje, string email_destino) { try { EmailCore objEmail = new EmailCore(); objEmail.EnviaEmail("Prueba de email", mensaje, email_destino); } catch (Exception ex) { } return(View()); }
public void SendBinaryEmailStorage() { string address = "*****@*****.**"; var email = Binary(); email.Sender = address; email.Recipient = address; var core = new EmailCore(); var id = core.Send(email); var table = new AzureTable <BinaryEmailData>(CloudStorageAccount.DevelopmentStorageAccount); var data = table.QueryBy(email.Token.ApplicationId.ToString(), id.ToString()); Assert.AreEqual <Guid>(email.Token.ApplicationId, data.ApplicationId); Assert.AreEqual <string>(email.Sender, data.Sender); Assert.AreEqual <string>(email.Recipient, data.Recipient); Assert.IsTrue(email.RawMessage.ContentEquals(data.RawMessage)); }
public void SendPlaintextEmailStorage() { string address = "*****@*****.**"; var email = Plaintext(); email.Sender = address; email.Recipient = address; var core = new EmailCore(); var id = core.Send(email); var table = new AzureTable <PlaintextEmailData>(CloudStorageAccount.DevelopmentStorageAccount); var data = table.QueryBy(email.Token.ApplicationId.ToString(), id.ToString()); Assert.AreEqual <Guid>(email.Token.ApplicationId, data.ApplicationId); Assert.AreEqual <string>(email.Sender, data.Sender); Assert.AreEqual <string>(email.Recipient, data.Recipient); Assert.AreEqual <string>(email.Subject, data.Subject); Assert.AreEqual <string>(email.Message, data.Message); }
public ActionResult SendNewsLetter(string title = null, string all = null, HttpPostedFileBase file = null) { var userId = User.Identifier(); var body = string.Empty; using (var reader = new StreamReader(file.InputStream)) { body = reader.ReadToEnd(); } if (!string.IsNullOrWhiteSpace(title) && !string.IsNullOrWhiteSpace(body)) { var toAll = all == "on"; var emailCore = new EmailCore(); IEnumerable <Profile> profiles = null; if (toAll) { profiles = this.profileCore.Search <Profile>(null, null, null, true, short.MaxValue); } else { profiles = new List <Profile>(1); var profile = new Profile() { Identifier = userId }; ((IList <Profile>)profiles).Add(profile); } if (null != profiles) { var loaded = new List <Profile>(); foreach (var profile in profiles) { loaded.Add(this.profileCore.SearchSingle <Profile>(profile.Identifier, null, userId, true)); } emailCore.NewsLetter(loaded, title, body); } } return(this.RedirectToAction("Newsletter")); }
private void CancelSPD(trSPD dataSpd, string nrp, string nospd) { using (var ctx = new dsSPDDataContext()) { dataSpd = ctx.trSPDs.FirstOrDefault(o => o.noSPD == nospd); dataSpd.status = "SPD Cancel"; dataSpd.isCancel = true; dataSpd.diubahOleh = nrp; dataSpd.diubahTanggal = DateTime.Now; dataSpd.isCancelDate = DateTime.Now; // get data claim var dataClaim = ctx.trClaims.FirstOrDefault(o => o.noSPD == nospd); if (dataClaim != null) { dataClaim.status = "SPD Cancel"; dataClaim.isCancel = true; dataClaim.diubahOleh = nrp; dataClaim.diubahTanggal = DateTime.Now; dataClaim.isCancelDate = DateTime.Now; } ctx.SubmitChanges(); // get all approval var approval = ctx.ApprovalStatus.Where(o => o.NoSPD == nospd).ToList(); //get all people has been approve var approvalHasApproved = approval.Where(o => o.Status != null).Distinct().ToList(); //send email to all people has been approved foreach (var item in approvalHasApproved) { EmailCore.InformasiCancelSPD(item.NrpApproval, dataSpd.noSPD, dataSpd); } } }
public void SendPlainNull() { var core = new EmailCore(); core.Send((PlaintextEmail)null); }
public void SendBinaryNull() { var core = new EmailCore(); core.Send((BinaryEmail)null); }
public string AsignarContacto(int ContactoID, int DesarrolloId = 0) { try { // Busca carrusel_asignacion Carrusel_asignacion = new carrusel_asignacion(); string Constr = WebConfigurationManager.ConnectionStrings["ConStr"].ToString(); ADO_Core objAdo = new ADO_Core(Constr); string sqlStat = String.Format("Exec sp_carruselAsignacion {0}, {1}", DesarrolloId, 1); SqlDataReader dr = objAdo.GetDataReader(sqlStat); bool encuentra = false; if (dr.HasRows) { dr.Read(); Boolean.TryParse(dr["encuentra"].ToString(), out encuentra); if (encuentra) { string epId = dr["EPId"].ToString(); Carrusel_asignacion.encuentra = encuentra; Carrusel_asignacion.EPId = Int32.Parse(!String.IsNullOrEmpty(epId) && !String.IsNullOrWhiteSpace(epId) ? epId : "0"); Carrusel_asignacion.Nombre = dr["Nombre"].ToString(); Carrusel_asignacion.Email = dr["Email"].ToString(); Carrusel_asignacion.PartyId = long.Parse(dr["PartyId"].ToString()); Carrusel_asignacion.ResourceId = long.Parse(dr["ResourceId"].ToString()); } } if (encuentra) { string Usuario_ID = Session["Usuario_ID"].ToString(); // guarda registro en la tabla Asignacion Asignacion asignacion = new Asignacion(); asignacion.ContactoId = ContactoID; asignacion.EPId = Carrusel_asignacion.EPId; asignacion.UsuarioHOST = Usuario_ID; asignacion.FechaAsignacion = DateTime.Now; db.Asignacion.Add(asignacion); db.SaveChanges(); //// invoca el web service //DatosReales datosReales = new DatosReales(); //var resultdr = db.DatosReales.FirstOrDefault(w => w.ContactoId == ContactoID); //string campo1 = "@XZYContaToSales#"; //string Nombre = resultdr.Nombre; //string ApellidoPaterno = resultdr.ApellidoPaterno; //string ApellidoMaterno = resultdr.ApellidoMaterno; //string CanalCaptacion = "1"; //string SubcanalCaptacion = ""; //string TelefonoMovil = resultdr.Telefono; //string CorreoElectonico = resultdr.Correo; //string Desarrollo = ""; //long OwnerPartyId = Carrusel_asignacion.PartyId; //long ResourceId = Carrusel_asignacion.ResourceId; //// obtien datos del contacto //var DatosContacto = db.View_Datos_Contacto.FirstOrDefault(w => w.ContactoId == ContactoID); //CanalCaptacion = DatosContacto.CanalNombre; //SubcanalCaptacion = DatosContacto.SubCanalNombre; //Desarrollo = DatosContacto.DesarrolloNombre; // // Consume el web service // hu_web_service.SoaClient isoac = new hu_web_service.SoaClient(); //var result_ws = isoac.crearContactoRespondersV2(campo1, Nombre, ApellidoPaterno, ApellidoMaterno, CanalCaptacion, SubcanalCaptacion, TelefonoMovil, CorreoElectonico, Desarrollo, OwnerPartyId, ResourceId); ; var Desarrollo = db.Desarrollo.Where(w => w.DesarrolloId == DesarrolloId).FirstOrDefault(); var datosContacto = db.DatosReales.Where(w => w.ContactoId == ContactoID).FirstOrDefault(); // ejecuta el web service hu_website.hu_web_service.SoaClient webSer = new hu_web_service.SoaClient(); string SalesOracleId = webSer.crearContactoRespondersV2("@XZYContaToSales#", datosContacto.Nombre, datosContacto.ApellidoPaterno, datosContacto.ApellidoMaterno, "DIGIN", "IBWA", datosContacto.Telefono, datosContacto.Correo, Desarrollo.DesarrolloNombre, Carrusel_asignacion.PartyId, Carrusel_asignacion.ResourceId); if (SalesOracleId.Contains("Error al crear contacto")) { // guarda notificacion para el EP en la tabla AgregaMensageParaEP(SalesOracleId); return("Bad"); } else { // graba el valor recivido del ws en la tabla contacto var contactows = db.Contactos.Where(w => w.ContactoId == ContactoID).FirstOrDefault(); contactows.SalesOracleId = long.Parse(SalesOracleId); db.SaveChanges(); // cambia el estatus del contacto a 6 var ontactoRes = db.Contactos.Where(w => w.ContactoId == ContactoID).FirstOrDefault(); ontactoRes.EstatusBIDA = 6; db.SaveChanges(); // envia email al contacto y alEP EmailCore emailCore = new EmailCore(); emailCore.EnviaEmail("Prueba Responders2", "<p>Estimad(@) NombreCompletoContacto, en breve su Ejecutivo Patrimonial NombreEP se pondrá en contacto con usted. <br /></p> <p>Attentamente</p> <p>Hogares Unión</p> <p>correoEP</p>", datosContacto.Correo); // avisa notificacion al contacto bool notifica = notificaconContacto_Genrente(ContactoID, "Se asigno un proyecto"); } } else if (!encuentra) { bool notifica = notificaconContacto_Genrente(ContactoID, "No se pudo asignar el proyecto"); } return("Ok"); } catch (Exception ex) { Console.WriteLine(ex.Message); return("Bad"); } }
public string ChangeStatus(string nospd, string action, string nrp, string claimapprove) { using (var ctx = new dsSPDDataContext()) { try { // get data spd & claim var dataClaim = ctx.trClaims.FirstOrDefault(o => o.noSPD == nospd); var dataSpd = ctx.trSPDs.FirstOrDefault(o => o.noSPD == nospd); if (dataClaim != null && dataSpd != null) { // get user creator nrp // approve if (action.ToLower().Contains("approve")) { if (dataClaim.status.ToLower().Contains("expired")) { return("Claim Expired, sehingga tidak bisa di Approved."); } switch (claimapprove.ToLower()) { case "atasan": // jika sudah pernah diapproved/reject return reject alert if (dataClaim.isApprovedAtasan != null) { string stringStatus = dataClaim.isApprovedAtasan.Value == true ? "approve" : "reject"; if (dataClaim.isApprovedAtasanDate == null) { dataClaim.isApprovedAtasanDate = DateTime.Now; } return("approval claim tidak bisa dieksekusi, karena claim No Spd : " + nospd + " telah " + stringStatus + " pada : " + dataClaim.isApprovedAtasanDate.Value.ToString("dd MMMM yyyy HH:mm")); } // jika sudah di cancel return cancel alert if (dataClaim.isCancel == true) { if (dataClaim.isCancelDate == null) { dataClaim.isCancelDate = DateTime.Now; } return("approval claim tidak bisa dieksekusi, karena claim No Spd : " + nospd + " telah dicancel pada : " + dataClaim.isCancelDate.Value.ToString("dd MMMM yyyy HH:mm")); } dataClaim.isApprovedAtasan = true; dataClaim.isApprovedAtasanDate = DateTime.Now; dataClaim.ApprovedAtasanBy = nrp; dataClaim.status = "Menunggu approval GA"; // var role = (from p in ctx.msUsers // where p.roleId == 17 // select p.nrp).ToList(); // var dataGa = ctx.msKaryawans // .Where(o => // o.coCd == "0001" && // role.Contains(o.nrp)); // foreach (var item in dataGa) // { // EmailCore.ApprovalClaim(item.nrp, dataClaim.noSPD, dataSpd, "ga", dataClaim.status); // } Helper hp = new Helper(); DataSet dsCheckBcc = hp.wsEmail("claim"); if (dsCheckBcc.Tables[0].Rows.Count > 0) { DataRow drCheckBcc = dsCheckBcc.Tables[0].Rows[0]; DataView dvCheckBcc = new DataView(dsCheckBcc.Tables[0]); for (int i = 0; i < dvCheckBcc.Count; i++) { // bccAddress += drCheckBcc.Table.Rows[i][0].ToString(); // bccAddress += ","; string nrpGA = drCheckBcc.Table.Rows[i][1].ToString(); EmailCore.ApprovalClaim(nrpGA, dataClaim.noSPD, dataSpd, "ga", dataClaim.status); } } EmailCore.InformasiClaim(dataSpd.dibuatOleh, dataClaim.noSPD, dataSpd, dataClaim.status); break; case "ga": // jika sudah pernah diapproved/reject return reject alert if (dataClaim.isApprovedGA != null) { string stringStatus = dataClaim.isApprovedGA.Value == true ? "approve" : "reject"; if (dataClaim.isApprovedGADate == null) { dataClaim.isApprovedGADate = DateTime.Now; } return("approval claim tidak bisa dieksekusi, karena claim No Spd : " + nospd + " telah " + stringStatus + " pada : " + dataClaim.isApprovedGADate.Value.ToString("dd MMMM yyyy HH:mm")); } // jika sudah di cancel return cancel alert if (dataClaim.isCancel == true) { if (dataClaim.isCancelDate == null) { dataClaim.isCancelDate = DateTime.Now; } return("approval claim tidak bisa dieksekusi, karena claim No Spd : " + nospd + " telah dicancel pada : " + dataClaim.isCancelDate.Value.ToString("dd MMMM yyyy HH:mm")); } var creator = ctx.msKaryawans.FirstOrDefault(o => o.nrp == dataSpd.nrp); var role2 = (from p in ctx.msUsers where p.roleId == 19 select p.nrp).ToList(); var datafinace = ctx.msKaryawans .Where(o => o.coCd == creator.coCd && role2.Contains(o.nrp)); foreach (var item in datafinace) { //EmailCore.ApprovalClaim(item.nrp, dataClaim.noSPD, dataSpd, "finance", dataClaim.status); } // Tambahan Aldo Generate txt var dc = new dsSPDDataContext(); var query = (from a in dc.trClaims join b in dc.trSPDs on a.noSPD equals b.noSPD where a.noSPD == nospd select new { NoSpd = a.noSPD, Status = "S", approvaltgl = DateTime.Now.Date, NRP = b.nrp, NamaLengkap = b.namaLengkap, CostCenter = b.costCenter, UangMakan = a.biayaMakan, UangSaku = a.uangSaku, Tiket = a.tiket, Hotel = a.hotel, Laundry = a.laundry, Komunikasi = a.komunikasi, AirPortTax = a.airportTax, BBM = a.BBM, Tol = a.tol, Taxi = a.taxi, Parkir = a.parkir, Biayalainlain = a.biayaLainLain, UangMuka = b.uangMuka, TglBerangkat = b.tglBerangkat, TglKembali = b.tglKembali }).FirstOrDefault(); string approvalDay = DateTime.Now.Day.ToString(); string approvalMonth = DateTime.Now.Month.ToString(); string approvalYear = DateTime.Now.Year.ToString(); string _approvaltgl = approvalDay + "." + approvalMonth + "." + approvalYear; string _CostCenter = string.Empty; string message = ""; message += query.NoSpd + "|"; message += query.Status + "|"; message += _approvaltgl.Trim() + "|"; message += query.NRP + "|"; message += query.NamaLengkap + "|"; if (query.CostCenter.Split('-').Count() > 0) { _CostCenter = query.CostCenter.Split('-')[0]; } else { _CostCenter = query.CostCenter; } message += _CostCenter + "|"; message += query.UangMakan + "|"; message += query.UangSaku + "|"; message += query.Tiket + "|"; message += query.Hotel + "|"; message += query.Laundry + "|"; message += query.Komunikasi + "|"; message += query.AirPortTax + "|"; message += query.BBM + "|"; message += query.Tol + "|"; message += query.Taxi + "|"; message += query.Parkir + "|"; message += query.Biayalainlain + "|"; message += query.UangMuka + "|"; //message += query.TglBerangkat.Day + "." + query.TglBerangkat.Month + "." + query.TglBerangkat.Year + "|"; //message += query.TglKembali.Day + "." + query.TglKembali.Month + "." + query.TglKembali.Year; message += query.TglBerangkat.Day + "." + query.TglBerangkat.Month + "." + query.TglBerangkat.Year + "|"; //update 12 oktober 2018 message += query.TglKembali.Day + "." + query.TglKembali.Month + "." + query.TglKembali.Year; //update 12 oktober 2018 string tahun = DateTime.Now.Year.ToString(); string bulan = DateTime.Now.Month.ToString(); string tanggal = DateTime.Now.Day.ToString(); string jam = DateTime.Now.Hour.ToString(); string menit = DateTime.Now.Minute.ToString(); string detik = DateTime.Now.Second.ToString(); string milisec = DateTime.Now.Millisecond.ToString(); string datetime = tahun + bulan + tanggal + "-" + jam + menit + detik + "-" + milisec; string filename = "Settlement_" + datetime + ".txt"; //string _User = Encrypto.Decrypt(ConfigurationManager.AppSettings["Username"]); //string _Pass = Encrypto.Decrypt(ConfigurationManager.AppSettings["Password"]); //string _Domain = Encrypto.Decrypt(ConfigurationManager.AppSettings["Domain"]); string _User = ConfigurationManager.AppSettings["Username"]; string _Pass = ConfigurationManager.AppSettings["Password"]; string _Domain = ConfigurationManager.AppSettings["Domain"]; string _PathSource = ConfigurationManager.AppSettings["GenerateText"]; string _PathGenerateResp = ConfigurationManager.AppSettings["PathGenerateResp"]; string _BackupSett = ConfigurationManager.AppSettings["BackupSett"]; string filePath = string.Format("{0}\\{1}", _PathSource, filename); using (StreamWriter writer = new StreamWriter(filePath, true)) { writer.WriteLine(message); writer.Close(); } string backUpFile = _BackupSett + filename; string sourceFile = _PathSource + filename; string destinationFile = _PathGenerateResp + filename; bool ExistsFile = false; using (new Impersonator(_User, _Domain, _Pass)) { File.Copy(sourceFile, destinationFile); if (File.Exists(destinationFile)) { ExistsFile = true; } } if (ExistsFile == true) { File.Move(sourceFile, backUpFile); ExistsFile = false; } using (new Impersonator(_User, _Domain, _Pass)) { string _PathSapResp = ConfigurationManager.AppSettings["PathSapResp"]; string _PathArchiveSapResp = ConfigurationManager.AppSettings["PathArchiveSapResp"]; List <ListGenerateTextModel> textList = new List <ListGenerateTextModel>(); bool isFileFound = false; for (int i = 0; i <= 4; i++) { foreach (string file in Directory.EnumerateFiles(_PathSapResp, "*.txt")) { string contents = File.ReadAllText(file); List <string> cols = contents.Split(new char[] { '|' }).ToList(); List <string> fileNameList = file.Split(new char[] { '\\' }).ToList(); List <string> textName = fileNameList.LastOrDefault().Split(new char[] { '_' }).ToList(); string tgl = textName.LastOrDefault().Remove(textName.LastOrDefault().Length - 4, 4); var fileDate = DateTime.ParseExact(tgl, "yyyyMMdd-HHmmss-fff", CultureInfo.InvariantCulture); string noSPD = cols[0]; string type = cols[1]; string messageBPH = cols.LastOrDefault(); List <string> errorBPHClaims = messageBPH.Split(new char[] { ' ' }).ToList(); string bphNo = errorBPHClaims[4].ToString(); textList.Add(new ListGenerateTextModel() { NoSPD = noSPD, NamaFile = Path.GetFileName(file), Type = type, Tanggal = fileDate, Message = messageBPH, BPH = bphNo, FilePath = file }); } var data = textList .Where(m => m.NoSPD.Contains(dataClaim.noSPD)) .Where(m => m.Type.Contains("S")) .OrderByDescending(m => m.Tanggal) .Select(m => new { m.NamaFile, m.FilePath, m.Message, m.BPH, m.Tanggal }).ToList(); if (data.Count > 0) { isFileFound = true; string archiveSapRespFile; if (!data[0].Message.ToLower().Contains("successfully")) { dataClaim.errorBPHClaim = data[0].Message; ctx.SubmitChanges(); foreach (var fileMoveFailed in data) { archiveSapRespFile = _PathArchiveSapResp + fileMoveFailed.NamaFile; File.Move(fileMoveFailed.FilePath, archiveSapRespFile); } return("Claim " + nospd + " gagal di " + action + " karena " + data[0].Message); } dataClaim.isApprovedGA = true; dataClaim.isApprovedGADate = DateTime.Now; dataClaim.ApprovedGABy = nrp; dataClaim.status = "Menunggu approval Finance"; dataClaim.errorBPHClaim = data[0].Message; dataClaim.BPHClaim = data[0].BPH; foreach (var fileMoveSuccess in data) { archiveSapRespFile = _PathArchiveSapResp + fileMoveSuccess.NamaFile; File.Move(fileMoveSuccess.FilePath, archiveSapRespFile); } break; } if (isFileFound) { break; } Thread.Sleep(5000); } if (!isFileFound) { return("Claim " + nospd + " gagal di " + action + " karena file SAP tidak ditemukan, silahkan mencoba kembali."); } } EmailCore.InformasiClaim(dataSpd.dibuatOleh, dataClaim.noSPD, dataSpd, dataClaim.status); break; case "finance": // jika sudah pernah diapproved/reject return reject alert if (dataClaim.isApprovedFinance != null) { string stringStatus = dataClaim.isApprovedFinance.Value == true ? "approve" : "reject"; if (dataClaim.isApprovedFinanceDate == null) { dataClaim.isApprovedFinanceDate = DateTime.Now; } return("approval claim tidak bisa dieksekusi, karena claim No Spd : " + nospd + " telah " + stringStatus + " pada : " + dataClaim.isApprovedFinanceDate.Value.ToString("dd MMMM yyyy HH:mm")); } // jika sudah di cancel return cancel alert if (dataClaim.isCancel == true) { if (dataClaim.isCancelDate == null) { dataClaim.isCancelDate = DateTime.Now; } return("approval claim tidak bisa dieksekusi, karena claim No Spd : " + nospd + " telah dicancel pada : " + dataClaim.isCancelDate.Value.ToString("dd MMMM yyyy HH:mm")); } dataClaim.isApprovedFinance = true; dataClaim.isApprovedFinanceDate = DateTime.Now; dataClaim.ApprovedFinanceBy = nrp; dataClaim.status = "Finance Approved"; EmailCore.InformasiClaim(dataSpd.dibuatOleh, dataClaim.noSPD, dataSpd, dataClaim.status); break; default: break; } } else if (action.ToLower().Contains("reject")) //reject { switch (claimapprove.ToLower()) { case "atasan": // jika sudah pernah diapproved/reject return reject alert if (dataClaim.isApprovedAtasan != null) { string stringStatus = dataClaim.isApprovedAtasan.Value == true ? "approve" : "reject"; if (dataClaim.isApprovedAtasanDate == null) { dataClaim.isApprovedAtasanDate = DateTime.Now; } return("approval claim tidak bisa dieksekusi, karena claim No Spd : " + nospd + " telah " + stringStatus + " pada : " + dataClaim.isApprovedAtasanDate.Value.ToString("dd MMMM yyyy HH:mm")); } // jika sudah di cancel return cancel alert if (dataClaim.isCancel == true) { if (dataClaim.isCancelDate == null) { dataClaim.isCancelDate = DateTime.Now; } return("approval claim tidak bisa dieksekusi, karena claim No Spd : " + nospd + " telah dicancel pada : " + dataClaim.isCancelDate.Value.ToString("dd MMMM yyyy HH:mm")); } dataClaim.ApprovedAtasanBy = nrp; dataClaim.isApprovedAtasan = false; dataClaim.isApprovedAtasanDate = DateTime.Now; break; case "ga": // jika sudah pernah diapproved/reject return reject alert if (dataClaim.isApprovedGA != null) { string stringStatus = dataClaim.isApprovedGA.Value == true ? "approve" : "reject"; if (dataClaim.isApprovedGADate == null) { dataClaim.isApprovedGADate = DateTime.Now; } return("approval claim tidak bisa dieksekusi, karena claim No Spd : " + nospd + " telah " + stringStatus + " pada : " + dataClaim.isApprovedGADate.Value.ToString("dd MMMM yyyy HH:mm")); } // jika sudah di cancel return cancel alert if (dataClaim.isCancel == true) { if (dataClaim.isCancelDate == null) { dataClaim.isCancelDate = DateTime.Now; } return("approval claim tidak bisa dieksekusi, karena claim No Spd : " + nospd + " telah dicancel pada : " + dataClaim.isCancelDate.Value.ToString("dd MMMM yyyy HH:mm")); } dataClaim.ApprovedGABy = nrp; dataClaim.isApprovedGA = false; dataClaim.isApprovedGADate = DateTime.Now; break; case "finance": // jika sudah pernah diapproved/reject return reject alert if (dataClaim.isApprovedFinance != null) { string stringStatus = dataClaim.isApprovedFinance.Value == true ? "approve" : "reject"; if (dataClaim.isApprovedFinanceDate == null) { dataClaim.isApprovedFinanceDate = DateTime.Now; } return("approval claim tidak bisa dieksekusi, karena claim No Spd : " + nospd + " telah " + stringStatus + " pada : " + dataClaim.isApprovedFinanceDate.Value.ToString("dd MMMM yyyy HH:mm")); } // jika sudah di cancel return cancel alert if (dataClaim.isCancel == true) { if (dataClaim.isCancelDate == null) { dataClaim.isCancelDate = DateTime.Now; } return("approval claim tidak bisa dieksekusi, karena claim No Spd : " + nospd + " telah dicancel pada : " + dataClaim.isCancelDate.Value.ToString("dd MMMM yyyy HH:mm")); } dataClaim.ApprovedFinanceBy = nrp; dataClaim.isApprovedFinance = false; dataClaim.isApprovedFinanceDate = DateTime.Now; break; default: break; } dataClaim.status = "Rejected by " + claimapprove; EmailCore.InformasiClaim(dataSpd.dibuatOleh, dataClaim.noSPD, dataSpd, dataClaim.status); } else if (action.ToLower().Contains("cancel")) //cancel { switch (claimapprove.ToLower()) { case "ga": // jika sudah di cancel return cancel alert if (dataClaim.isCancel == true) { if (dataClaim.isCancelDate == null) { dataClaim.isCancelDate = DateTime.Now; } return("approval claim tidak bisa dieksekusi, karena claim No Spd : " + nospd + " telah dicancel pada : " + dataClaim.isCancelDate.Value.ToString("dd MMMM yyyy HH:mm")); } dataClaim.isCancel = true; dataClaim.isCancelDate = DateTime.Now; dataClaim.status = "Cancel by " + claimapprove; EmailCore.InformasiClaim(dataSpd.dibuatOleh, dataClaim.noSPD, dataSpd, dataClaim.status); break; default: break; } } else if (action.ToLower().Contains("complete")) { switch (claimapprove.ToLower()) { case "ga": dataClaim.TidakExpired = true; ctx.SubmitChanges(); return(nospd + " Expired berhasil diperpanjang"); default: break; } } ctx.SubmitChanges(); return("Claim " + nospd + " berhasil di " + action + " status saat ini berubah menjadi " + dataClaim.status); } else { setErrorLog("Data claim atau spd tidak ditemukan", nospd); return("Claim " + nospd + " gagal di" + action + ", data tidak ditemukan"); } } catch (Exception e) { setErrorLog(e, nospd); return(nospd + " _ " + e.Message); } } }
private string RejectSPD(trSPD dataSpd, string nrp, string nospd, string index) { using (var ctx = new dsSPDDataContext()) { dataSpd = ctx.trSPDs.FirstOrDefault(o => o.noSPD == nospd); string returner = string.Empty; // get all approval var approval = ctx.ApprovalStatus.Where(o => o.NoSPD == nospd).ToList(); // get current approval int?indexInt = null; if (!string.IsNullOrEmpty(index)) { indexInt = Convert.ToInt32(index); } var currentApproval = approval.FirstOrDefault(o => o.NrpApproval == nrp && o.Status == null && o.IndexLevel == indexInt); // jika current approval, absolute bukan approval tujuan yang rejek, dikarenakan status masih null if (currentApproval != null) { dataSpd.status = "SPD ditolak " + currentApproval.ApprovalRule.Deskripsi; dataSpd.isApproved = false; dataSpd.diubahTanggal = DateTime.Now; dataSpd.isApprovedDate = DateTime.Now; currentApproval.Status = false; currentApproval.ModifiedDate = DateTime.Now; } // jika nrp rejek sama dengan nrp approval tujuan, & current approval tidak ditemukan if (nrp == dataSpd.nrpApprovalTujuan && currentApproval == null) { dataSpd.status = "SPD Ditolak tujuan"; dataSpd.isApproved = false; dataSpd.diubahTanggal = DateTime.Now; dataSpd.isApprovedDate = DateTime.Now; if (dataSpd.status == "Expired") { returner += "SPD Expired, sehingga tidak bisa di Reject."; } else if (DateTime.Now.Date < dataSpd.tglBerangkat.Date) { returner += "SPD hanya bisa direject pada tanggal : " + dataSpd.tglBerangkat.ToString("dd MMMM yyyy") + ", atau lebih."; } } if (string.IsNullOrEmpty(returner)) { ctx.SubmitChanges(); // send informasi ke pembuat EmailCore.InformasiSPD(dataSpd.dibuatOleh, dataSpd.noSPD, dataSpd); } return(returner); } }
void ProcessNew(string noSPD) { noSPD = noSPD.Trim(); using (var ctx = new dsSPDDataContext()) { var dataSpd = ctx.trSPDs.FirstOrDefault(o => o.noSPD == noSPD); var approval = ctx.ApprovalStatus.Where(o => o.NoSPD == noSPD).OrderBy(o => o.IndexLevel); if (dataSpd != null && approval != null) { switch (dataSpd.isApproved) { case null: if (approval.Where(o => o.Status == null).Count() == 0) { // proses approval tujuan EmailCore.ApprovalSPD(dataSpd.nrpApprovalTujuan, dataSpd.noSPD, string.Empty, dataSpd); } else { // proses next approval var currentApproval = approval.FirstOrDefault(o => o.Status == null); EmailCore.ApprovalSPD(currentApproval.NrpApproval, dataSpd.noSPD, currentApproval.IndexLevel.ToString(), dataSpd); } break; case true: var dataClaim = ctx.trClaims.FirstOrDefault(o => o.noSPD == noSPD); if (dataClaim != null) { if (dataClaim.isSubmit == true) { if (dataClaim.isApprovedAtasan == null && dataClaim.isApprovedFinance == null && dataClaim.isApprovedGA == null) { //send approval atasan EmailCore.ApprovalClaim(dataClaim.nrpAtasan, dataClaim.noSPD, dataSpd, "Atasan", dataClaim.status); } if (dataClaim.isApprovedAtasan == true && dataClaim.isApprovedFinance == null && dataClaim.isApprovedGA == null) { //send approval GA var role = (from p in ctx.msUsers where p.roleId == 17 select p.nrp).ToList(); var dataGa = ctx.msKaryawans .Where(o => o.coCd == "0001" && role.Contains(o.nrp)); foreach (var item in dataGa) { EmailCore.ApprovalClaim(item.nrp, dataClaim.noSPD, dataSpd, "GA", dataClaim.status); } } if (dataClaim.isApprovedAtasan == true && dataClaim.isApprovedFinance == null && dataClaim.isApprovedGA == true) { //send approval Finance var creator = ctx.msKaryawans.FirstOrDefault(o => o.nrp == dataSpd.nrp); var role2 = (from p in ctx.msUsers where p.roleId == 19 select p.nrp).ToList(); var datafinace = ctx.msKaryawans .Where(o => o.coCd == creator.coCd && role2.Contains(o.nrp)); foreach (var item in datafinace) { EmailCore.ApprovalClaim(item.nrp, dataClaim.noSPD, dataSpd, "finance", dataClaim.status); } } } } // claim break; default: break; } } } }
protected void btnSubmit_Click(object sender, EventArgs e) { #region submit old if (Session["noSPDc"] == null) { Response.Redirect("frmClaimApproval.aspx"); } else { if (txtNoSPD.Text != string.Empty) { dsSPDDataContext data = new dsSPDDataContext(); trClaim claim = data.trClaims.FirstOrDefault(o => o.noSPD == txtNoSPD.Text); trSPD spd = data.trSPDs.FirstOrDefault(o => o.noSPD == claim.noSPD); if (spd.isApproved == true && spd.isCancel == null) { getFromForm(ref claim); try { btnSubmit.Enabled = false; btnSave.Enabled = false; claim.nrpAtasan = spd.nrpAtasan; claim.status = "Menunggu approval atasan"; claim.isSubmit = true; claim.isSubmitDate = DateTime.Now; claim.diubahOleh = karyawan.nrp; claim.diubahTanggal = DateTime.Now; msKaryawan kary = new msKaryawan(); if (spd.nrp == "99999999") { kary.EMail = spd.email; kary.nrp = spd.nrp; kary.namaLengkap = spd.namaLengkap; kary.golongan = "III"; kary.Job = spd.jabatan; kary.posisi = spd.jabatan; kary.coCd = "1"; kary.kodePSubArea = "1"; kary.kodePA = "1"; } else { kary = (from kar in data.msKaryawans where kar.nrp == spd.nrp select kar).First(); } data.SubmitChanges(); EmailCore.ApprovalClaim(claim.nrpAtasan, spd.noSPD, spd, "Atasan", claim.status); lblKet.Text = "Claim berhasil di Submit"; data.Dispose(); } catch (Exception ex) { Response.Write(ex.Message); } } } } #endregion }