protected void btnSubmit_Click(object sender, EventArgs e) { using (var ctx = new dsSPDDataContext()) { List <string> errorMessageHidden = new List <string>(); trClaim claim = ctx.trClaims.FirstOrDefault(o => o.noSPD == hiddenSPD.Value); trSPD spd = ctx.trSPDs.FirstOrDefault(o => o.noSPD == claim.noSPD); if (claim == null) { errorMessageHidden.Add("Data claim tidak ditemukan, submit tidak bisa diproses"); } if (spd == null) { errorMessageHidden.Add("Data spd tidak ditemukan, submit tidak bisa diproses"); } if (errorMessageHidden.Count == 0) { claim.status = "Menunggu approval atasan"; claim.isSubmit = true; claim.isSubmitDate = DateTime.Now; claim.diubahOleh = karyawan.nrp; claim.diubahTanggal = DateTime.Now; try { ctx.SubmitChanges(); } catch (Exception) { errorMessageHidden.Add("Error submit, gagal merubah data"); } } if (errorMessageHidden.Count == 0) { EmailCore.ApprovalClaim(claim.nrpAtasan, spd.noSPD, spd, "Atasan", claim.status); lblSuccess.Text = "Claim Berhasil di Submit"; pnlError.Visible = false; pnlSuccess.Visible = true; btnSave.Enabled = false; btnSubmit.Enabled = false; btnReset.Disabled = true; } if (errorMessageHidden.Count() > 0) { errorMessage.DataSource = errorMessageHidden; errorMessage.DataBind(); pnlError.Visible = true; pnlSuccess.Visible = false; } } }
private StringBuilder ContentBodymail(StringBuilder emailMessage, trSPD spd, trClaim claim, msKaryawan kar) { //System.Net.Mail.MailMessage email = new System.Net.Mail.MailMessage(); //StringBuilder Content = new StringBuilder(); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<b>Detail Karyawan </b>")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("No. SPD : {0}", spd.noSPD)); emailMessage.Append("<br />"); emailMessage.Append(string.Format("NRP : {0}", spd.nrp)); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Nama Lengkap : {0}", spd.namaLengkap)); emailMessage.Append("<br />"); emailMessage.Append(string.Format("No Handphone : {0}", spd.NoHP != null ? spd.NoHP : "-")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Jabatan : {0}", kar.posisi)); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Organisasi Unit : {0}", kar.organisasiUnit != null ? kar.organisasiUnit : "-")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Company Code : {0}", kar.companyCode != null ? kar.companyCode : "-")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Personel Area : {0}", kar.personelArea != null ? kar.personelArea : "-")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Personel Sub Area : {0}", kar.pSubArea != null ? kar.pSubArea : "-")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Cost Center Pembebanan : {0}", spd.costCenter != null ? spd.costCenter : "-")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<b>Detail SPD </b>")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Tempat Tujuan : {0}", spd.tempatTujuanLain != null ? spd.tempatTujuanLain : spd.companyCodeTujuan + " - " + spd.personelAreaTujuan + " - " + spd.pSubAreaTujuan)); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Keperluan : {0}", spd.keperluanLain != null ? spd.keperluanLain : spd.msKeperluan.keperluan)); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Tanggal Berangkat : {0} ", String.Format("{0:MM/dd/yyyy}", spd.tglBerangkat))); emailMessage.Append(string.Format("Jam Berangkat : {0} ", spd.jamBerangkat)); emailMessage.Append(string.Format("Menit Berangkat : {0} ", spd.menitBerangkat)); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Tanggal Kembali : {0} ", String.Format("{0:MM/dd/yyyy}", spd.tglKembali))); emailMessage.Append(string.Format("Jam Kembali : {0} ", spd.jamKembali)); emailMessage.Append(string.Format("Menit Kembali : {0} ", spd.menitKembali)); if (claim != null) { emailMessage.Append("<br />"); emailMessage.Append(string.Format("<b>Total Claim : {0} </b>", claim.total)); } emailMessage.Append("<br />"); emailMessage.Append("<br />"); return(emailMessage); }
public static void InformasiSPD(string nrp, string nospd, trSPD dataSpd) { EmailCore.sendEmailNew( nrp, "Informasi SPD " + nospd, "InformasiSPD.txt", dataSpd, string.Empty, string.Empty, "ApprovalSPDUrl", string.Empty ); }
public static void InformasiPencarianTiket(string nrp, string nospd, trSPD dataSpd) { EmailCore.sendEmailNew( nrp, "Informasi pencarian tiket " + nospd, "InformasiPencarianTiket.txt", dataSpd, string.Empty, string.Empty, "ApprovalSPDUrl", string.Empty ); }
public static void InformasiSPDExpired(string nrp, string nospd, trSPD dataSpd) { EmailCore.sendEmailNew( nrp, "Batas Claim " + nospd + " : " + (dataSpd.tglExpired.Value.AddDays(-1).ToString("dd MMMM yyyy")), "NotifExpired.txt", dataSpd, string.Empty, string.Empty, "ApprovalSPDUrl", string.Empty ); }
public static void InformasiClaim(string nrp, string nospd, trSPD dataSpd, string statusClaim) { EmailCore.sendEmailNew( nrp, "Informasi Claim " + nospd, "InformasiClaim.txt", dataSpd, string.Empty, statusClaim, "ClaimApprovalUrl", string.Empty ); }
public static void ApprovalClaim(string nrpApproval, string nospd, trSPD dataSpd, string AtasanGAFinance, string statusClaim) { EmailCore.sendEmailNew( nrpApproval, "Approval Claim " + nospd, "ApprovalClaim.txt", dataSpd, AtasanGAFinance, statusClaim, "ClaimApprovalUrl", string.Empty ); }
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); } } }
internal void sendMail(trSPD spd, string To, msKaryawan kar) { System.Net.Mail.MailMessage email = new System.Net.Mail.MailMessage(); StringBuilder emailMessage = new StringBuilder(); StringBuilder emailMessageFrom = new StringBuilder(); StringBuilder Content = new StringBuilder(); dsSPDDataContext data = new dsSPDDataContext(); var Atasan = (from k in data.msKaryawans where k.nrp == spd.nrpAtasan select k); //nrp ilang msKaryawan Tujuan = new msKaryawan(); Tujuan = (from k in data.msKaryawans where k.nrp == spd.nrpApprovalTujuan select k).SingleOrDefault(); msKaryawan Pengirim = new msKaryawan(); Pengirim = (from k in data.msKaryawans where k.nrp == spd.nrp select k).FirstOrDefault(); if (kar.nrp == "99999999") { Pengirim = kar; //Pengirim.nrp = kar.nrp; //Pengirim.job = kar.job; //Pengirim.golongan = kar.golongan; Pengirim.email = spd.email; } //hardcode untuk TRAC HO yang melakukan SPD, GAnya masi ke yulia if (Pengirim.kodePA == "1000") { Pengirim.kodePA = "1"; } if (Pengirim.kodePSubArea == "1000") { Pengirim.kodePSubArea = "1"; } var gaAsal = (from k in data.msKaryawans join u in data.msUsers on k.nrp equals u.nrp where u.roleId == 17 && k.coCd == Pengirim.coCd && k.kodePA == Pengirim.kodePA && k.kodePSubArea == Pengirim.kodePSubArea select k); //msKaryawan atasanGaAsal = (from k in data.msKaryawans // where k.nrp == gaAsal.nrpAtasan // select k).SingleOrDefault(); var KasirAsal = (from k in data.msKaryawans join u in data.msUsers on k.nrp equals u.nrp where u.roleId == 20 && k.coCd == Pengirim.coCd && k.kodePA == Pengirim.kodePA && k.kodePSubArea == Pengirim.kodePSubArea select k); var FinanceAsal = (from k in data.msKaryawans join u in data.msUsers on k.nrp equals u.nrp where u.roleId == 19 && k.coCd == Pengirim.coCd && k.kodePA == Pengirim.kodePA && k.kodePSubArea == Pengirim.kodePSubArea select k); trClaim claim = new trClaim(); claim = (from c in data.trClaims where c.noSPD == spd.noSPD select c).FirstOrDefault(); if (To == "Extend") { email.Subject = "Extend SPD " + spd.noSPD + "-" + spd.namaLengkap; string mailAddress = string.Empty; string NamaLengkap = string.Empty; foreach (msKaryawan item in Atasan) { mailAddress += item.email.Trim() + ","; NamaLengkap += item.namaLengkap + "/"; } mailAddress = mailAddress.Remove(mailAddress.Length - 1); NamaLengkap = NamaLengkap.Remove(NamaLengkap.Length - 1); email.To.Add(mailAddress); email.Bcc.Add("*****@*****.**"); emailMessage.Append(string.Format("Kepada Yth, ")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Bapak/Ibu {0}", NamaLengkap)); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Bapak/Ibu {0} telah melakukan <b>Extend SPD</b> dengan rincian sebagai berikut : ", spd.namaLengkap)); emailMessage.Append("<br />"); Content = ContentBodymail(Content, spd, null, kar); emailMessage.Append(Content); emailMessage.Append("Terima kasih."); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<b style='color: red;'>Catatan : E-mail ini dikirim otomatis oleh Sistem Pembuatan SPD.Tidak perlu membalas E-mail ini </b>")); //send extend mail here } else { if (spd.status.Split('-')[0] == "2") { email.Subject = "Approval SPD " + spd.noSPD + "-" + spd.namaLengkap; string mailAddress = string.Empty; string NamaLengkap = string.Empty; foreach (var item in gaAsal) { mailAddress += item.email.Trim() + ","; NamaLengkap += item.namaLengkap + "/"; } foreach (msKaryawan item in Atasan) { mailAddress += item.email.Trim() + ","; NamaLengkap += item.namaLengkap + "/"; } mailAddress = mailAddress.Remove(mailAddress.Length - 1); NamaLengkap = NamaLengkap.Remove(NamaLengkap.Length - 1); email.To.Add(mailAddress); email.Bcc.Add("*****@*****.**"); emailMessage.Append(string.Format("Kepada Yth, ")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Bapak/Ibu {0}", NamaLengkap)); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Bapak/Ibu {0} telah mengirim <b>Request Approval SPD</b> dengan rincian sebagai berikut : ", spd.namaLengkap)); emailMessage.Append("<br />"); Content = ContentBodymail(Content, spd, null, kar); emailMessage.Append(Content); emailMessage.Append("Apabila Bapak/ Ibu berada di kantor bisa menggunakan link dibawah ini untuk melakukan approve/reject Request Claim SPD tersebut"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<a href='http://trac54/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}'>Approve</a>", spd.noSPD, "atasan", "spd")); emailMessage.Append(" "); emailMessage.Append("|"); emailMessage.Append(" "); emailMessage.Append(string.Format("<a href='http://trac54/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}'>Reject</a>", spd.noSPD, "atasan", "spd")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("Jika link di atas tidak dapat diklik, copy dan gunakan URL dibawah ini di browser: "); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Approve : http://trac54/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2} ", spd.noSPD, "atasan", "spd")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Reject : http://trac54/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2} ", spd.noSPD, "atasan", "spd")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("Apabila Bapak/ Ibu berada di luar kantor bisa menggunakan link dibawah ini "); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<a href='http://118.97.80.12/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}'>Approve</a>", spd.noSPD, "atasan", "spd")); emailMessage.Append(" "); emailMessage.Append("|"); emailMessage.Append(" "); emailMessage.Append(string.Format("<a href='http://118.97.80.12/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}'>Reject</a>", spd.noSPD, "atasan", "spd")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("Jika link di atas tidak dapat diklik, copy dan gunakan URL dibawah ini di browser: "); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Approve : http://118.97.80.12/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2} ", spd.noSPD, "atasan", "spd")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Reject : http://118.97.80.12/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2} ", spd.noSPD, "atasan", "spd")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<b style='color: red;'>Catatan : E-mail ini dikirim otomatis oleh Sistem Pembuatan SPD.Tidak perlu membalas E-mail ini </b>")); } else if ((spd.status.Split('-')[0] == "3" || spd.status.Split('-')[0] == "6" || spd.status.Split('-')[0] == "7" || spd.status.Split('-')[0] == "8" || spd.status.Split('-')[0] == "9" || spd.status.Split('-')[0] == "12" || spd.status.Split('-')[0] == "13") && To == "Pembuat") { email.Subject = "Informasi SPD " + spd.noSPD + "-" + spd.namaLengkap; email.To.Add(Pengirim.email.Trim()); email.Bcc.Add("*****@*****.**"); emailMessage.Append(string.Format("Kepada Yth, ")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Bapak/Ibu {0}", Pengirim.namaLengkap)); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Status Request SPD Bapak/Ibu {0} adalah <b>{1}</b>.Berikut ini rincian SPD tersebut : ", spd.namaLengkap, spd.status.Split('-')[1])); emailMessage.Append("<br />"); Content = ContentBodymail(Content, spd, null, kar); emailMessage.Append(Content); emailMessage.Append("Terima kasih."); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<b style='color: red;'>Catatan : E-mail ini dikirim otomatis oleh Sistem Pembuatan SPD.Tidak perlu membalas E-mail ini </b>")); } else if ((spd.status.Split('-')[0] == "3" || spd.status.Split('-')[0] == "6") && To == "GA") { email.Subject = "Informasi SPD " + spd.noSPD + "-" + spd.namaLengkap; string mailAddress = string.Empty; string NamaLengkap = string.Empty; foreach (var item in gaAsal) { mailAddress += item.email.Trim() + ","; NamaLengkap += item.namaLengkap + "/"; } mailAddress = mailAddress.Remove(mailAddress.Length - 1); NamaLengkap = NamaLengkap.Remove(NamaLengkap.Length - 1); email.To.Add(mailAddress); email.Bcc.Add("*****@*****.**"); emailMessage.Append(string.Format("Kepada Yth, ")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Bapak/Ibu {0}", NamaLengkap)); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Status Request SPD Bapak/Ibu {0} <b>Sudah Disetujui atasan</b>. Mohon bantuannya untuk mencarikan tiket dengan rincian sebagai berikut : ", spd.namaLengkap, spd.status.Split('-')[1])); emailMessage.Append("<br />"); Content = ContentBodymail(Content, spd, null, kar); emailMessage.Append(Content); emailMessage.Append("Terima kasih."); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<b style='color: red;'>Catatan : E-mail ini dikirim otomatis oleh Sistem Pembuatan SPD.Tidak perlu membalas E-mail ini </b>")); } else if ((spd.status.Split('-')[0] == "3" || spd.status.Split('-')[0] == "6") && To == "Tujuan") { email.Subject = "Approval SPD " + spd.noSPD + "-" + spd.namaLengkap; email.To.Add(Tujuan.email.Trim()); email.Bcc.Add("*****@*****.**"); emailMessage.Append(string.Format("Kepada Yth, ")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Bapak/Ibu {0}", Tujuan.namaLengkap)); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Bapak/Ibu {0}, telah mengirim <b>Request Approval SPD atasan tempat tujuan</b> dengan rincian sebagai berikut : ", spd.namaLengkap)); emailMessage.Append("<br />"); Content = ContentBodymail(Content, spd, null, kar); emailMessage.Append(Content); emailMessage.Append("Apabila Bapak/ Ibu berada di kantor bisa menggunakan link dibawah ini untuk melakukan approve/reject Request Claim SPD tersebut"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<a href='http://trac54/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}'>Approve</a>", spd.noSPD, "tujuan", "spd")); emailMessage.Append(" "); emailMessage.Append("|"); emailMessage.Append(" "); emailMessage.Append(string.Format("<a href='http://trac54/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}'>Reject</a>", spd.noSPD, "tujuan", "spd")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("Jika link di atas tidak dapat diklik, copy dan gunakan URL dibawah ini di browser: "); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Approve : http://trac54/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2} ", spd.noSPD, "tujuan", "spd")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Reject : http://trac54/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2} ", spd.noSPD, "tujuan", "spd")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("Apabila Bapak/ Ibu berada di luar kantor bisa menggunakan link dibawah ini "); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<a href='http://118.97.80.12/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}'>Approve</a>", spd.noSPD, "tujuan", "spd")); emailMessage.Append(" "); emailMessage.Append("|"); emailMessage.Append(" "); emailMessage.Append(string.Format("<a href='http://118.97.80.12/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}'>Reject</a>", spd.noSPD, "tujuan", "spd")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("Jika link di atas tidak dapat diklik, copy dan gunakan URL dibawah ini di browser: "); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Approve : http://118.97.80.12/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}", spd.noSPD, "tujuan", "spd")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Reject : http://118.97.80.12/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}", spd.noSPD, "tujuan", "spd")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("*Catatan : Mohon lakukan approval apabila karyawan yang melakukan SPD sudah tiba di tempat tujuan"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<b style='color: red;'>**Catatan : E-mail ini dikirim otomatis oleh Sistem Pembuatan SPD.Tidak perlu membalas E-mail ini </b>")); } else if (spd.status.Split('-')[0] == "11") { string mailAddress = string.Empty; string NamaLengkap = string.Empty; foreach (var item in Atasan) { mailAddress += item.email.Trim() + ","; NamaLengkap += item.namaLengkap + "/"; } mailAddress = mailAddress.Remove(mailAddress.Length - 1); NamaLengkap = NamaLengkap.Remove(NamaLengkap.Length - 1); email.Subject = "Approval Claim " + spd.noSPD + "-" + spd.namaLengkap; email.To.Add(mailAddress); email.Bcc.Add("*****@*****.**"); emailMessage.Append(string.Format("Kepada Yth, ")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Bapak/Ibu {0}", NamaLengkap)); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Bapak/Ibu {0} telah mengirim <b>Request Approval Claim SPD</b> dengan rincian sebagai berikut : ", spd.namaLengkap)); emailMessage.Append("<br />"); Content = ContentBodymail(Content, spd, claim, kar); emailMessage.Append(Content); emailMessage.Append("Apabila Bapak/ Ibu berada di kantor bisa menggunakan link dibawah ini untuk melakukan approve/reject Request Claim SPD tersebut"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<a href='http://trac54/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}'>Approve</a>", spd.noSPD, "atasan", "claim")); emailMessage.Append(" "); emailMessage.Append("|"); emailMessage.Append(" "); emailMessage.Append(string.Format("<a href='http://trac54/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}'>Reject</a>", spd.noSPD, "atasan", "claim")); emailMessage.Append("<br />"); emailMessage.Append("Jika link di atas tidak dapat diklik, copy dan gunakan URL dibawah ini di browser: "); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Approve : http://trac54/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}", spd.noSPD, "atasan", "claim")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Reject : http://trac54/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}", spd.noSPD, "atasan", "claim")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("Apabila Bapak/ Ibu berada di luar kantor bisa menggunakan link dibawah ini "); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<a href='http://118.97.80.12/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}'>Approve</a>", spd.noSPD, "atasan", "claim")); emailMessage.Append(" "); emailMessage.Append("|"); emailMessage.Append(" "); emailMessage.Append(string.Format("<a href='http://118.97.80.12/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}'>Reject</a>", spd.noSPD, "atasan", "claim")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("Jika link di atas tidak dapat diklik, copy dan gunakan URL dibawah ini di browser: "); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Approve : http://118.97.80.12/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}", spd.noSPD, "atasan", "claim")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Reject : http://118.97.80.12/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}", spd.noSPD, "atasan", "claim")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<b style='color: red;'>Catatan : E-mail ini dikirim otomatis oleh Sistem Pembuatan SPD.Tidak perlu membalas E-mail ini </b>")); } else if ((spd.status.Split('-')[0] == "14" || spd.status.Split('-')[0] == "15" || spd.status.Split('-')[0] == "16" || spd.status.Split('-')[0] == "17" || spd.status.Split('-')[0] == "18" || spd.status.Split('-')[0] == "19" || spd.status.Split('-')[0] == "20" || spd.status.Split('-')[0] == "26" || spd.status.Split('-')[0] == "27") && To == "Pembuat") { email.Subject = "Info Claim " + spd.noSPD + "-" + spd.namaLengkap; email.To.Add(Pengirim.email.Trim()); email.Bcc.Add("*****@*****.**"); emailMessage.Append(string.Format("Kepada Yth, ")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Bapak/Ibu {0}", Pengirim.namaLengkap)); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Status Request Claim SPD Bapak/Ibu {0} adalah <b>{1}</b>.Berikut ini rincian Claim SPD tersebut: ", spd.namaLengkap, spd.status.Split('-')[1])); emailMessage.Append("<br />"); Content = ContentBodymail(Content, spd, claim, kar); emailMessage.Append(Content); emailMessage.Append("Terima kasih."); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<b style='color: red;'>Catatan : E-mail ini dikirim otomatis oleh Sistem Pembuatan SPD.Tidak perlu membalas E-mail ini </b>")); } else if ((spd.status.Split('-')[0] == "16") && To == "GA") { string mailAddress = string.Empty; string NamaLengkap = string.Empty; foreach (var item in gaAsal) { mailAddress += item.email.Trim() + ","; NamaLengkap += item.namaLengkap + "/"; } mailAddress = mailAddress.Remove(mailAddress.Length - 1); NamaLengkap = NamaLengkap.Remove(NamaLengkap.Length - 1); email.Subject = "Approval Claim " + spd.noSPD + "-" + spd.namaLengkap; email.To.Add(mailAddress); email.Bcc.Add("*****@*****.**"); emailMessage.Append(string.Format("Kepada Yth, ")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Bapak/Ibu {0}", NamaLengkap)); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Status Request SPD Bapak/Ibu {0} <b>Sudah Di-Approve atasan</b> dengan rincian sebagai berikut : ", spd.namaLengkap, spd.status.Split('-')[1])); emailMessage.Append("<br />"); Content = ContentBodymail(Content, spd, claim, kar); emailMessage.Append(Content); emailMessage.Append("Apabila Bapak/ Ibu berada di kantor bisa menggunakan link dibawah ini untuk melakukan approve/reject Request Claim SPD tersebut"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<a href='http://trac54/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}'>Approve</a>", spd.noSPD, "ga", "claim")); emailMessage.Append(" "); emailMessage.Append("|"); emailMessage.Append(" "); emailMessage.Append(string.Format("<a href='http://trac54/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}'>Reject</a>", spd.noSPD, "ga", "claim")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("Jika link di atas tidak dapat diklik, copy dan gunakan URL dibawah ini di browser: "); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Approve : http://trac54/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}", spd.noSPD, "ga", "claim")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Reject : http://trac54/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}", spd.noSPD, "ga", "claim")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("Apabila Bapak/ Ibu berada di luar kantor bisa menggunakan link dibawah ini "); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<a href='http://118.97.80.12/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}'>Approve</a>", spd.noSPD, "ga", "claim")); emailMessage.Append(" "); emailMessage.Append("|"); emailMessage.Append(" "); emailMessage.Append(string.Format("<a href='http://118.97.80.12/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}'>Reject</a>", spd.noSPD, "ga", "claim")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("Jika link di atas tidak dapat diklik, copy dan gunakan URL dibawah ini di browser: "); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Approve : http://118.97.80.12/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}", spd.noSPD, "ga", "claim")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Reject : http://118.97.80.12/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}", spd.noSPD, "ga", "claim")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<b style='color: red;'>Catatan : E-mail ini dikirim otomatis oleh Sistem Pembuatan SPD.Tidak perlu membalas E-mail ini </b>")); } else if ((spd.status.Split('-')[0] == "17") && To == "finance") { string mailAddress = string.Empty; string NamaLengkap = string.Empty; foreach (var item in FinanceAsal) { mailAddress += item.email.Trim() + ","; NamaLengkap += item.namaLengkap + "/"; } mailAddress = mailAddress.Remove(mailAddress.Length - 1); NamaLengkap = NamaLengkap.Remove(NamaLengkap.Length - 1); email.Subject = "Approval Claim " + spd.noSPD + "-" + spd.namaLengkap; email.To.Add(mailAddress); email.Bcc.Add("*****@*****.**"); emailMessage.Append(string.Format("Kepada Yth, ")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Bapak/Ibu {0}", NamaLengkap)); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Status Request SPD Bapak/Ibu {0} <b>Sudah Di-Approve GA</b> dengan rincian sebagai berikut : ", spd.namaLengkap, spd.status.Split('-')[1])); emailMessage.Append("<br />"); Content = ContentBodymail(Content, spd, claim, kar); emailMessage.Append(Content); emailMessage.Append("Apabila Bapak/ Ibu berada di kantor bisa menggunakan link dibawah ini untuk melakukan approve/reject Request Claim SPD tersebut"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<a href='http://trac54/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}'>Approve</a>", spd.noSPD, "finance", "claim")); emailMessage.Append(" "); emailMessage.Append("|"); emailMessage.Append(" "); emailMessage.Append(string.Format("<a href='http://trac54/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}'>Reject</a>", spd.noSPD, "finance", "claim")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("Jika link di atas tidak dapat diklik, copy dan gunakan URL dibawah ini di browser: "); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Approve : http://trac54/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}", spd.noSPD, "finance", "claim")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Reject : http://trac54/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}", spd.noSPD, "finance", "claim")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("Apabila Bapak/ Ibu berada di luar kantor bisa menggunakan link dibawah ini "); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<a href='http://118.97.80.12/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}'>Approve</a>", spd.noSPD, "finance", "claim")); emailMessage.Append(" "); emailMessage.Append("|"); emailMessage.Append(" "); emailMessage.Append(string.Format("<a href='http://118.97.80.12/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}'>Reject</a>", spd.noSPD, "finance", "claim")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append("Jika link di atas tidak dapat diklik, copy dan gunakan URL dibawah ini di browser: "); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Approve : http://118.97.80.12/SPD/approvalSPD.ashx?conf=approve&nospd={0}&subject={1}&type={2}", spd.noSPD, "finance", "claim")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Reject : http://118.97.80.12/SPD/approvalSPD.ashx?conf=reject&nospd={0}&subject={1}&type={2}", spd.noSPD, "finance", "claim")); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<b style='color: red;'>Catatan : E-mail ini dikirim otomatis oleh Sistem Pembuatan SPD.Tidak perlu membalas E-mail ini </b>")); } else if ((spd.status.Split('-')[0] == "26") && To == "kasir") { string mailAddress = string.Empty; string NamaLengkap = string.Empty; foreach (var item in KasirAsal) { mailAddress += item.email.Trim() + ","; NamaLengkap += item.namaLengkap + "/"; } mailAddress = mailAddress.Remove(mailAddress.Length - 1); NamaLengkap = NamaLengkap.Remove(NamaLengkap.Length - 1); email.Subject = "Approval Claim " + spd.noSPD + "-" + spd.namaLengkap; email.To.Add(mailAddress); email.Bcc.Add("*****@*****.**"); emailMessage.Append(string.Format("Kepada Yth, ")); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Bapak/Ibu {0}", NamaLengkap)); emailMessage.Append("<br />"); emailMessage.Append("<br />"); emailMessage.Append(string.Format("Status Request SPD Bapak/Ibu {0} <b>Sudah Di-Approve Finance</b> dengan rincian sebagai berikut : ", spd.namaLengkap, spd.status.Split('-')[1])); emailMessage.Append("<br />"); Content = ContentBodymail(Content, spd, claim, kar); emailMessage.Append(Content); emailMessage.Append("Terima kasih."); emailMessage.Append("<br />"); emailMessage.Append(string.Format("<b style='color: red;'>Catatan : E-mail ini dikirim otomatis oleh Sistem Pembuatan SPD.Tidak perlu membalas E-mail ini </b>")); } } #region Unused //else if ((spd.status.Split('-')[0] == "17") && To == "GA") //{ // email.Subject = "Informasi Claim"; // //next to do // //email.To.Add(Atasan.email); // emailMessage.Append(string.Format("Kepada Yth, ")); // emailMessage.Append("<br />"); // emailMessage.Append(string.Format("Bapak/Ibu {0}", Atasan.namaLengkap)); // emailMessage.Append("<br />"); // emailMessage.Append("<br />"); // emailMessage.Append(string.Format("Status Request SPD Bapak/Ibu {0} Sudah Di-Approve atasan dengan rincian sebagai berikut : ", spd.namaLengkap, spd.status.Split('-')[1])); // emailMessage.Append("<br />"); // Content = ContentBodymail(Content, spd, null); // emailMessage.Append(Content); // emailMessage.Append("Terima kasih."); // emailMessage.Append("<br />"); // emailMessage.Append(string.Format("<b style='color: red;'>Catatan : E-mail ini dikirim otomatis oleh Sistem Pembuatan SPD.Tidak perlu membalas E-mail ini </b>")); //} //else if ((spd.status.Split('-')[0] == "20") && To == "GA") //{ // email.Subject = "Informasi Claim"; // //next to do // //email.To.Add(Atasan.email); // emailMessage.Append(string.Format("Kepada Yth, ")); // emailMessage.Append("<br />"); // emailMessage.Append(string.Format("Bapak/Ibu {0}", Atasan.namaLengkap)); // emailMessage.Append("<br />"); // emailMessage.Append("<br />"); // emailMessage.Append(string.Format("Status Request SPD Bapak/Ibu {0} Sudah Di-Approve atasan dengan rincian sebagai berikut : ", spd.namaLengkap, spd.status.Split('-')[1])); // emailMessage.Append("<br />"); // Content = ContentBodymail(Content, spd, null); // emailMessage.Append(Content); // emailMessage.Append("Terima kasih."); // emailMessage.Append("<br />"); // emailMessage.Append(string.Format("<b style='color: red;'>Catatan : E-mail ini dikirim otomatis oleh Sistem Pembuatan SPD.Tidak perlu membalas E-mail ini </b>")); //} #endregion email.From = new System.Net.Mail.MailAddress("*****@*****.**"); email.Priority = System.Net.Mail.MailPriority.High; email.Body = emailMessage.ToString(); email.IsBodyHtml = true; System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(); smtp.Send(email); }
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 }
protected void btnSave_Click(object sender, EventArgs e) { using (var ctx = new dsSPDDataContext()) { List <string> errorMessageHidden = new List <string>(); trSPD spd = ctx.trSPDs.FirstOrDefault(o => o.noSPD == hiddenSPD.Value); if (spd == null) { errorMessageHidden.Add("Data SPD tidak ditemukan"); } if (string.IsNullOrEmpty(hiddenNrpAtasan.Value)) { errorMessageHidden.Add("Data approval atasan tidak ditemukan"); } trClaim claim = ctx.trClaims.FirstOrDefault(o => o.noSPD == spd.noSPD); if (claim != null) { claim.ApprovedAtasanBy = spd.trClaim.ApprovedAtasanBy; claim.ApprovedGABy = spd.trClaim.ApprovedGABy; claim.ApprovedFinanceBy = spd.trClaim.ApprovedFinanceBy; claim.isApprovedAtasan = spd.trClaim.isApprovedAtasan; claim.isApprovedAtasanDate = spd.trClaim.isApprovedAtasanDate; claim.isApprovedFinance = spd.trClaim.isApprovedFinance; claim.isApprovedFinanceDate = spd.trClaim.isApprovedFinanceDate; claim.isApprovedGA = spd.trClaim.isApprovedGA; claim.isApprovedGADate = spd.trClaim.isApprovedGADate; claim.isCancel = spd.trClaim.isCancel; claim.isCancelDate = spd.trClaim.isCancelDate; claim.isSubmit = spd.trClaim.isSubmit; claim.isSubmitDate = spd.trClaim.isSubmitDate; claim.status = spd.trClaim.status; } if (errorMessageHidden.Count == 0 && claim == null) { claim = new trClaim(); claim.noSPD = hiddenSPD.Value; claim.dibuatOleh = karyawan.nrp; claim.dibuatTanggal = DateTime.Now; claim.status = "Saved"; claim.nrpAtasan = hiddenNrpAtasan.Value; ctx.trClaims.InsertOnSubmit(claim); } // convert ke integer var kursInt = Convert.ToInt32(txtKurs.Text); var uangMakan = Convert.ToInt32(UangMakan.Text); var uangSaku = Convert.ToInt32(UangSaku.Text); var tiket = Convert.ToInt32(Tiket.Text); var hotel = Convert.ToInt32(Hotel.Text); var laundry = Convert.ToInt32(Laundry.Text); var komunikasi = Convert.ToInt32(Komunikasi.Text); var airPortTax = Convert.ToInt32(AirPortTax.Text); var bbm = Convert.ToInt32(BBM.Text); var tol = Convert.ToInt32(Tol.Text); var taxi = Convert.ToInt32(Taxi.Text); var parkir = Convert.ToInt32(Parkir.Text); var tunjanganKejauhan = Convert.ToInt32(Tunjangankejauhan.Text);//9 oktober 2018 var biayaLainlain = Convert.ToInt32(BiayaLainlain.Text); var total = uangMakan + uangSaku + tiket + hotel + laundry + komunikasi + airPortTax + bbm + tol + taxi + parkir + tunjanganKejauhan + biayaLainlain; var uangMuka = Convert.ToInt64(UangMuka.Text); claim.biayaMakan = uangMakan; claim.uangSaku = uangSaku; claim.tiket = tiket; claim.hotel = hotel; claim.BBM = bbm; claim.tol = tol; claim.taxi = taxi; claim.airportTax = airPortTax; claim.laundry = laundry; claim.parkir = parkir; claim.komunikasi = komunikasi; claim.UangTunjanganKejauhan = tunjanganKejauhan; // 9 oktober 2018 claim.ketLainLain = txtKeteranganBiayaLainlain.Text; claim.biayaLainLain = biayaLainlain; claim.total = total; claim.kurs = kursInt; claim.diubahOleh = karyawan.nrp; claim.diubahTanggal = DateTime.Now; spd.uangMuka = uangMuka.ToString(); if (ifga(karyawan.nrp)) { spd.costCenter = DdlCostCenter.SelectedValue; } //update 26 september 2018 claim.uangSaku_cek = cbUangSaku.Checked; claim.hotelTanpaPenginapan_cek = cbHotelTanpaPenginapan.Checked;// claim.tiket_cek = cbTiket.Checked; claim.hotel_cek = cbHotel.Checked; claim.laundry_cek = cbLaundry.Checked; claim.komunikasi_cek = cbKomunikasi.Checked; claim.airportTax_cek = cbAirPortTax.Checked; claim.BBM_cek = cbBBM.Checked; claim.tol_cek = cbTol.Checked; claim.taxi_cek = cbTaxi.Checked; claim.parkir_cek = cbParkir.Checked; string rgPattern = "[\\\\\\/:\\*\\?\"\'<>|]"; Regex objRegEx = new Regex(rgPattern); if (fuDoc.HasFile) { string uploadDirbpkb = spd.noSPD + "_1_" + System.IO.Path.GetFileName(fuDoc.PostedFile.FileName); string strBaseLocation = Server.MapPath("Attach") + "\\" + objRegEx.Replace(uploadDirbpkb, ""); fuDoc.PostedFile.SaveAs(strBaseLocation); string nama = objRegEx.Replace(uploadDirbpkb, ""); claim.urlBoardingPass = nama; } if (fuDoc1.HasFile) { string uploadDirbpkb1 = spd.noSPD + "_2_" + System.IO.Path.GetFileName(fuDoc1.PostedFile.FileName); string strBaseLocation1 = Server.MapPath("Attach") + "\\" + objRegEx.Replace(uploadDirbpkb1, ""); fuDoc1.PostedFile.SaveAs(strBaseLocation1); string nama1 = objRegEx.Replace(uploadDirbpkb1, ""); claim.urlBoardingPass1 = nama1; } try { ctx.SubmitChanges(); } catch (Exception ex) { errorMessageHidden.Add("Gagal save claim|" + ex.Message.ToString()); errorMessageHidden.Add(ex.Message); } finally { pnlSuccess.Visible = true; pnlError.Visible = false; lblSuccess.Text += "Claim Berhasil di Save" + Environment.NewLine; if (ifga(karyawan.nrp)) { lblSuccess.Text += "Jika submit diclick (GA), maka proses approval akan diulang dari awal."; } btnSave.Enabled = false; btnReset.Disabled = true; //ian 2015-04-10 if (claim != null) { if (claim.isSubmit == true) { btnSubmit.Enabled = false; } if (claim.isSubmit == null) { btnSubmit.Enabled = true; } } else { btnSubmit.Enabled = true; } //end if (ifga(karyawan.nrp)) { if (claim.uangSaku_cek == true || claim.tiket_cek == true || claim.hotel_cek == true || claim.laundry_cek == true || claim.komunikasi_cek == true || claim.airportTax_cek == true || claim.BBM_cek == true || claim.tol_cek == true || claim.taxi_cek == true || claim.parkir_cek == true) { 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 ctx.msKaryawans where kar.nrp == spd.nrp select kar).First(); } classSpd oSpd = new classSpd(); oSpd.sendMailClaim(claim, kary, spd); } } } if (errorMessageHidden.Count() > 0) { errorMessage.DataSource = errorMessageHidden; errorMessage.DataBind(); pnlError.Visible = true; pnlSuccess.Visible = false; btnSubmit.Enabled = false; } } }
protected void GenerateContent(trSPD spd) { using (var ctx = new dsSPDDataContext()) { // set label info spd lblnoSPD.Text = spd.noSPD; lblnamaLengkap.Text = spd.namaLengkap; lblGolongan.Text = spd.idGolongan; lblJabatan.Text = spd.jabatan; lblTglBerangkat.Text = spd.tglBerangkat.ToString("dd MMMM yyyy"); lblJamberangkat.Text = spd.jamBerangkat; lblMenitBerangkat.Text = spd.menitBerangkat; lblTglKembali.Text = spd.tglKembali.ToString("dd MMMM yyyy"); lblJamKembali.Text = spd.jamKembali; lblMenitKembali.Text = spd.menitKembali; lblKeperluan.Text = spd.msKeperluan.keperluan; lblKetKeperluan.Text = spd.ketKeperluan; lblKeperluanLain.Text = spd.keperluanLain; // get informasi plafon buat spd ini var GolonganPlafon = ctx.msGolonganPlafons.Where( q => q.golongan.Equals(spd.idGolongan) && q.jenisSPD.ToLower().Equals(spd.Tujuan) && q.wilayah.ToLower().Equals(spd.WilayahTujuan)); // itung jumlah hari TimeSpan Jumlahhari = new TimeSpan(); Jumlahhari = spd.tglKembali - spd.tglBerangkat; TimeSpan tambahan = TimeSpan.FromDays(1); Jumlahhari += tambahan; lblJumlahHari.Text = Jumlahhari.Days.ToString(); DdlCostCenter.SelectedValue = spd.costCenter; // kalo nginep, dan bukan nginep dihotel enable input nilai hotel by golongan plafon if (Jumlahhari.Days > 1 && spd.isHotel != null) { if (!spd.isHotel.Value || !spd.penginapan.ToLower().Equals("disediakan")) { var UangHotel = GolonganPlafon.FirstOrDefault(o => o.idPlafon == 6) != null?GolonganPlafon.FirstOrDefault(o => o.idPlafon == 6).harga.Value *Jumlahhari.Days : 0; txtHotel.Enabled = true; txtHotel.Text = UangHotel.ToString(); } } else { txtHotel.Enabled = false; } // informasi uang makan dari plafon var UangMakan = GolonganPlafon.FirstOrDefault(o => o.idPlafon == 1); txtUangMakan.Text = (UangMakan != null ? UangMakan.harga.Value * Jumlahhari.Days : 0).ToString(); lblUangMakan.Text = (UangMakan != null ? UangMakan.harga.Value : 0).ToString(); lblHariUangMakan.Text = lblJumlahHari.Text; // informasi uang saku dari plafon var UangSaku = GolonganPlafon.FirstOrDefault(o => o.idPlafon == 2); txtUangSaku.Text = (UangSaku != null ? UangSaku.harga.Value * Jumlahhari.Days : 0).ToString(); lblUangSaku.Text = (UangSaku != null ? UangSaku.harga.Value : 0).ToString(); lblHariUangSaku.Text = lblJumlahHari.Text; // informasi laundri var Laundy = GolonganPlafon.FirstOrDefault(o => o.idPlafon == 7); //LaundryMaxHidden.Value = "0"; // bisa londri minimal 3 malam nginap if (Laundy != null && Jumlahhari.Days > 2) { //LaundryMaxHidden.Value = (Laundy.harga.Value * (Jumlahhari.Days - 2)).ToString(); laundryActual.Value = (Laundy.deskripsi != null ? Laundy.deskripsi : ""); } // kalo tiket dicarikan disabled input tiket if (spd.tiket.ToLower().Contains("dicarikan")) { txtTiket.ReadOnly = true; } // informasi uang muka, kenapa dikasih hidden, ada kebutuhan untuk menghitung jika luarnegeri UangMuka.Text = (string.IsNullOrEmpty(spd.uangMuka) == true ? "0" : spd.uangMuka); //informasi harga tunjangan kejauhan //int tunjanganKejauhan = spd.HargaTunjangan == null ? 0 : spd.HargaTunjangan.Value; //Tunjangankejauhan.Text = tunjanganKejauhan.ToString(); if (spd.HardshipID != null) { SqlCommand cmd = new SqlCommand("Select Harga from Hardship where Id = " + spd.HardshipID + "", new SqlConnection(ConfigurationManager.AppSettings["SPDConnectionString1"])); cmd.Connection.Open(); SqlDataReader Reader; Reader = cmd.ExecuteReader(); while (Reader.Read()) { Tunjangankejauhan.Text = Reader["Harga"].ToString(); } } // eksekusi ui var claim = ctx.trClaims.FirstOrDefault(o => o.noSPD == spd.noSPD); if (claim != null) { BindClaim(claim); cbUangSaku.Checked = claim.uangSaku_cek != null ? claim.uangSaku_cek.Value : false; //28 september 2018 cbHotelTanpaPenginapan.Checked = claim.hotelTanpaPenginapan_cek != null ? claim.hotelTanpaPenginapan_cek.Value : false; //28 september 2018 cbTiket.Checked = claim.tiket_cek != null ? claim.tiket_cek.Value : false; cbHotel.Checked = claim.hotel_cek != null ? claim.hotel_cek.Value : false; cbLaundry.Checked = claim.laundry_cek != null ? claim.laundry_cek.Value : false; cbKomunikasi.Checked = claim.komunikasi_cek != null ? claim.komunikasi_cek.Value : false; cbAirPortTax.Checked = claim.airportTax_cek != null ? claim.airportTax_cek.Value : false; cbBBM.Checked = claim.BBM_cek != null ? claim.BBM_cek.Value : false; cbTol.Checked = claim.tol_cek != null ? claim.tol_cek.Value : false; cbTaxi.Checked = claim.taxi_cek != null ? claim.taxi_cek.Value : false; cbParkir.Checked = claim.parkir_cek != null ? claim.parkir_cek.Value : false; } if (ifga(karyawan.nrp)) { txtUangMakan.ReadOnly = false; txtUangSaku.ReadOnly = false; txtTiket.ReadOnly = false; txtHotel.ReadOnly = false; txtUangMuka.ReadOnly = false; txtUangMakan.Enabled = true; txtUangSaku.Enabled = true; txtTiket.Enabled = true; txtHotel.Enabled = true; txtUangMuka.Enabled = true; txtTunjanganKejauhan.ReadOnly = false; txtTunjanganKejauhan.Enabled = true; cbUangSaku.Visible = true; //26 september 2018 cbHotelTanpaPenginapan.Visible = true; //26 september 2018 cbTiket.Visible = true; cbHotel.Visible = true; cbLaundry.Visible = true; cbKomunikasi.Visible = true; cbAirPortTax.Visible = true; cbBBM.Visible = true; cbTol.Visible = true; cbTaxi.Visible = true; cbParkir.Visible = true; } } GeneralFunction(null, null); }
protected void txtNoSPD_TextChanged(object sender, EventArgs e) { dsSPDDataContext data = new dsSPDDataContext(); trSPD spd = new trSPD(); try { trClaim claimQ = (from p in data.trClaims where p.noSPD.Equals(txtNoSPD.Text) select p).FirstOrDefault(); trSPD query = (from p in data.trSPDs where p.noSPD.Equals(txtNoSPD.Text) select p).FirstOrDefault(); query.penginapan = "Disediakan"; lblAtasan.Text = query.nrpAtasan; if (query != null) { txtNamaLengkap.Text = query.namaLengkap; txtTglBerangkat.Text = query.tglBerangkat.ToShortDateString(); txtTglKembali.Text = query.tglKembali.ToShortDateString(); ddlJamBerangkat0.SelectedValue = query.jamBerangkat; ddlMenitBerangkat0.SelectedValue = query.menitBerangkat; ddlJamKembali.SelectedValue = query.jamKembali; ddlMenitKembali.SelectedValue = query.menitKembali; txtUangMuka.Text = query.uangMuka != string.Empty ? query.uangMuka : "0"; kurs.Text = "1"; txtKeperluan.Text = query.idKeperluan == 6 ? query.ketKeperluan : getKeperluan(int.Parse(query.idKeperluan.ToString())); } msGolonganPlafon golongan = new msGolonganPlafon(); var hasil = (from q in data.msGolonganPlafons where q.golongan.Equals(query.idGolongan) && q.jenisSPD.ToLower().Equals(query.Tujuan) && q.wilayah.ToLower().Equals(query.WilayahTujuan) select q); TimeSpan Jumlahhari = (query.tglKembali - query.tglBerangkat); TimeSpan tambahan = TimeSpan.FromDays(1); Jumlahhari += tambahan; lblJumlahhari.Text = Jumlahhari.Days.ToString(); try { var jumlahPenginapan = hasil.FirstOrDefault(o => o.idPlafon == 6) != null?hasil.FirstOrDefault(o => o.idPlafon == 6).harga.Value *Jumlahhari.Days : 0; #region CR ian 2015-03-02 if (query.isHotel == false) { txtHotel.Text = jumlahPenginapan.ToString(); txtHotel.Enabled = true; } else { txtHotel.Text = "0"; txtHotel.Enabled = false; } #endregion } catch (Exception ex) { ex.ToString(); } List <msGolonganPlafon> plafon = hasil.Where(p => p.idPlafon == 1).ToList <msGolonganPlafon>(); int makan = 0; if (plafon.Count > 0 && (query.idKeperluan != 2 || query.idKeperluan != 1)) { makan = isNull((int)plafon.First().harga); } txtMakan.Text = makan.ToString(); //msGolonganPlafon plafon2 = hasil.Where(p => p.idPlafon == 2).FirstOrDefault(); plafon = hasil.Where(p => p.idPlafon == 2).ToList <msGolonganPlafon>(); int UangSaku = 0; if (plafon.Count > 0) { UangSaku = isNull((int)plafon.First().harga); } txtUangSaku.Text = UangSaku.ToString(); plafon = hasil.Where(p => p.idPlafon == 7).ToList <msGolonganPlafon>(); int laundri = 0; if (plafon.Count > 0) { laundri = isNull((int)plafon.First().harga); txtJmlHariLaundri.Text = (laundri * (Jumlahhari.Days - 2)).ToString(); if (plafon.First().deskripsi == "Aktual") { txtJmlHariLaundri.Text = "Aktual"; } } if (int.Parse(query.jamKembali) > 12) { txtSTMakan.Text = (makan * Jumlahhari.Days * int.Parse(kurs.Text)).ToString(); } else { txtSTMakan.Text = (makan * (Jumlahhari.Days - 1) * int.Parse(kurs.Text)).ToString(); } txtSTUangSk.Text = (UangSaku * Jumlahhari.Days * int.Parse(kurs.Text)).ToString(); if (Jumlahhari.Days < 3) { txtLaundry.Text = "0"; txtLaundry.Enabled = false; } if (claimQ != null) { setIntoForm(claimQ); if (claimQ.kurs > 0) { kurs.Text = claimQ.kurs.ToString(); } else { kurs.Text = (int.Parse(txtSTUangSk.Text) / (Jumlahhari.Days * UangSaku)).ToString(); } if (claimQ.status.Split('-')[0] == "10") { btnSave.Enabled = true; btnSubmit.Enabled = true; } } int total = int.Parse(txtSTMakan.Text) + int.Parse(txtSTUangSk.Text) + int.Parse(txtTiket.Text) + int.Parse(txtHotel.Text) + int.Parse(txtBBM.Text) + int.Parse(txtTol.Text); total += int.Parse(txtTaxi.Text) + int.Parse(txtAirPortTax.Text) + int.Parse(txtLaundry.Text) + int.Parse(txtParkir.Text) + int.Parse(txtLainlain.Text) + int.Parse(txtKomunikasi.Text); txtTotal.Text = total.ToString(); //if (spd.penginapan == "Disediakan") //{ // txtHotel.Enabled = false; //} //else txtHotel.Enabled = true; if (spd.tiket == "Dicarikan") { txtTiket.Enabled = false; } int penyelesaian = total - int.Parse(txtUangMuka.Text); txtPenyelesaian.Text = penyelesaian.ToString(); FLDTujuan.Value = query.Tujuan; if (query.Tujuan == "Luar Negeri") { LKurs.Visible = true; kurs.Visible = true; ldlr.Visible = true; txtAirPortTaxDLR.Visible = true; txtAirPortTax.Enabled = false; txtBBMDLR.Visible = true; txtBBM.Enabled = false; txtHotelDLR.Visible = true; txtHotel.Enabled = false; txtKomunikasiDLR.Visible = true; txtKomunikasi.Enabled = false; txtLainlainDLR.Visible = true; txtLainlain.Enabled = false; txtLaundryDLR.Visible = true; txtLaundry.Enabled = false; txtParkirDLR.Visible = true; txtParkir.Enabled = false; txtPenyelesaianDLR.Visible = true; txtPenyelesaian.Enabled = false; txtSTMakanDLR.Visible = true; txtSTMakan.Enabled = false; txtSTUangSkDLR.Visible = true; txtSTUangSk.Enabled = false; txtTaxiDLR.Visible = true; txtTaxi.Enabled = false; txtTiketDLR.Visible = true; txtTiket.Enabled = false; txtTolDLR.Visible = true; txtTol.Enabled = false; txtTotalDLR.Visible = true; txtUangMukaDLR.Visible = true; } else { LKurs.Visible = false; kurs.Visible = false; ldlr.Visible = false; txtAirPortTaxDLR.Visible = false; txtBBMDLR.Visible = false; txtHotelDLR.Visible = false; txtKomunikasiDLR.Visible = false; txtLainlainDLR.Visible = false; txtLaundryDLR.Visible = false; txtParkirDLR.Visible = false; txtPenyelesaianDLR.Visible = false; txtSTMakanDLR.Visible = false; txtSTUangSkDLR.Visible = false; txtTaxiDLR.Visible = false; txtTiketDLR.Visible = false; txtTolDLR.Visible = false; txtTotalDLR.Visible = false; txtUangMukaDLR.Visible = false; } GetDolar(); } catch (Exception ex) { //clearForm(); Response.Write(ex.Message); } }
private void ubahStatusClaim(string strNoSpd, string stat, string subject, HttpContext ctx) { string role = string.Empty, Approver = string.Empty; dsSPDDataContext data = new dsSPDDataContext(); bool sending = false; trSPD oSpd = (from spd in data.trSPDs where spd.noSPD == strNoSpd select spd).First(); trClaim oClaim = (from spd in data.trClaims where spd.noSPD == strNoSpd select spd).First(); msKaryawan kary = new msKaryawan(); if (oSpd.nrp != "99999999") { kary = (from kar in data.msKaryawans where kar.nrp == oSpd.nrp select kar).FirstOrDefault(); } else { kary.EMail = oSpd.email; kary.nrp = oSpd.nrp; kary.namaLengkap = oSpd.namaLengkap; kary.golongan = "III"; kary.Job = oSpd.jabatan; kary.posisi = oSpd.jabatan; kary.coCd = "1"; kary.kodePSubArea = "1"; kary.kodePA = "1"; } if (subject.ToLower().Trim() == "atasan") { if (stat.ToLower().Trim() == "approve") { if (oSpd.status.Split('-')[0] == "11") { oClaim.status = "16-Claim Approve (Atasan)"; oSpd.status = "16-Claim Approve (Atasan)"; ctx.Response.Write("Berhasil di approve"); sending = true; } else { ctx.Response.Write("Claim sudah berhasil Di approve sebelumnya"); sending = false; } } else { if (oSpd.status.Split('-')[0] == "11") { oClaim.status = "14-Claim Tolak (Atasan)"; oSpd.status = "14-Claim Tolak (Atasan)"; ctx.Response.Write("Berhasil di reject"); sending = true; } else { ctx.Response.Write("Claim sudah berhasil ditolak sebelumnya"); sending = false; } } role = "1"; Approver = oSpd.nrpAtasan; } else if (subject.ToLower().Trim() == "ga") { if (stat.ToLower().Trim() == "approve") { if (oSpd.status.Split('-')[0] == "16") { oClaim.status = "17-Claim Approve (GA)"; oSpd.status = "17-Claim Approve (GA)"; ctx.Response.Write("Berhasil di approve"); sending = true; } else { ctx.Response.Write("Claim sudah berhasil di-approve sebelumnya"); sending = false; } } else { if (oSpd.status.Split('-')[0] == "16") { oClaim.status = "15-Claim Tolak (GA)"; oSpd.status = "15-Claim Tolak (GA)"; ctx.Response.Write("Berhasil di reject"); sending = true; } else { ctx.Response.Write("Claim sudah berhasil di-reject sebelumnya"); sending = false; } } role = "17"; Approver = oSpd.nrpAtasan; } else if (subject.ToLower().Trim() == "finance") { if (stat.ToLower().Trim() == "approve") { if (oSpd.status.Split('-')[0] == "17") { oClaim.status = "26-Finance Approve"; oSpd.status = "26-Finance Approve"; ctx.Response.Write("Berhasil di approve"); sending = true; } else { ctx.Response.Write("Claim sudah berhasil di-Approve sebelumnya"); sending = false; } } else { if (oSpd.status.Split('-')[0] == "17") { oClaim.status = "27-Finance Tolak"; oSpd.status = "27-Finance Tolak"; ctx.Response.Write("Berhasil di reject"); sending = true; } else { ctx.Response.Write("Claim sudah berhasil di-reject sebelumnya"); sending = false; } } role = "19"; Approver = oSpd.nrpAtasan; } else if (subject.ToLower().Trim() == "kasir") { if (oSpd.status.Split('-')[0] == "26") { oClaim.status = "20-Claim Close"; oSpd.status = "20-Claim Close"; ctx.Response.Write("Berhasil di Close"); sending = true; } else { ctx.Response.Write("Claim sudah berhasil di-Close sebelumnya"); sending = false; } role = "20"; Approver = oSpd.nrpAtasan; } //data.SubmitChanges(); if (sending) { classSpd oClassSPD = new classSpd(); trApprovalHistory ah = new trApprovalHistory(); ah.noSPD = strNoSpd; ah.idRole = role; ah.statusApproval = oSpd.status; ah.nrpApprover = Approver; ah.approvalDatetime = DateTime.Now; data.trApprovalHistories.InsertOnSubmit(ah); data.SubmitChanges(); switch (oSpd.status.Split('-')[0]) { case "2": oClassSPD.sendMail(oSpd, "Atasan", kary); break; case "3": oClassSPD.sendMail(oSpd, "Pembuat", kary); oClassSPD.sendMail(oSpd, "GA", kary); oClassSPD.sendMail(oSpd, "Tujuan", kary); break; case "6": oClassSPD.sendMail(oSpd, "Pembuat", kary); oClassSPD.sendMail(oSpd, "GA", kary); oClassSPD.sendMail(oSpd, "Tujuan", kary); break; case "8": oClassSPD.sendMail(oSpd, "Pembuat", kary); break; case "9": oClassSPD.sendMail(oSpd, "Pembuat", kary); break; case "12": oClassSPD.sendMail(oSpd, "Pembuat", kary); break; case "13": oClassSPD.sendMail(oSpd, "Pembuat", kary); break; case "14": oClassSPD.sendMail(oSpd, "Pembuat", kary); break; case "16": oClassSPD.sendMail(oSpd, "GA", kary); oClassSPD.sendMail(oSpd, "Pembuat", kary); break; case "15": oClassSPD.sendMail(oSpd, "Pembuat", kary); break; case "17": oClassSPD.sendMail(oSpd, "finance", kary); oClassSPD.sendMail(oSpd, "Pembuat", kary); break; case "27": oClassSPD.sendMail(oSpd, "Pembuat", kary); break; case "26": //oClassSPD.sendMail(oSpd, "kasir", kary); oClassSPD.sendMail(oSpd, "Pembuat", kary); break; case "20": oClassSPD.sendMail(oSpd, "Pembuat", kary); break; } } data.Dispose(); }
//spd public static void ApprovalSPD(string nrpApproval, string nospd, string index, trSPD dataSPD) { EmailCore.sendEmailNew( nrpApproval, "Approval " + nospd, "ApprovalSPD.txt", dataSPD, string.Empty, string.Empty, "ApprovalSPDUrl", index ); }
public static void sendEmailNew( string nrpApproval, string subject, string tamplate, trSPD spd, string claimApprove, string statusClaim, string urltarget, string indexLevel) { using (dsSPDDataContext ctx = new dsSPDDataContext()) { //informasi approver var approval = ctx.msKaryawans.FirstOrDefault(o => o.nrp == nrpApproval); //informasi requestor var karyawan = ctx.msKaryawans.FirstOrDefault(o => o.nrp == spd.nrp); var informasiApproval = ctx.ApprovalStatus.Where(o => o.NoSPD == spd.noSPD); string trtd = string.Empty; foreach (var item in informasiApproval.OrderBy(o => o.IndexLevel)) { string statusApp = "Belum diapprove"; if (item.Status != null) { if (item.Status.Value == true) { statusApp = "Approved"; } else { statusApp = "Rejected"; } } ; var modifiedDate = item.ModifiedDate != null?item.ModifiedDate.Value.ToString("dd MMMM yyyy HH:mm") : "-"; trtd += "<tr>" + "<td>" + item.IndexLevel.ToString() + "</td>" + "<td>" + item.ApprovalRule.Deskripsi + "</td>" + "<td>" + item.Nama + "</td>" + "<td>" + modifiedDate + "</td>" + "<td>" + statusApp + "</td>" + "</tr>"; } ; var tamplatesSPD = "<table><tr><th>No</th><th colspan='3' style='text-align:center;'>Detail Data</th><th>Status</th></tr>" + trtd + "</table>"; EspdEmail espdEmail = new EspdEmail(); //encrypt nrp espdEmail.nCrypt = Encrypto.Encrypt(nrpApproval); //encrypt email string toAddress = ""; if (spd.nrp.Equals("99999999")) { espdEmail.eCrypt = Encrypto.Encrypt(string.IsNullOrEmpty(spd.email) ? "" : spd.email); if (tamplate.ToLower().Contains("informasi") || tamplate.ToLower().Contains("notifexpired")) { toAddress = string.IsNullOrEmpty(spd.email) ? "" : spd.email; } else { toAddress = approval.EMail; } } // // else { espdEmail.eCrypt = Encrypto.Encrypt(approval.EMail); toAddress = approval.EMail; } //encrypt nospd espdEmail.sCrypt = Encrypto.Encrypt(spd.noSPD); espdEmail.NoSPD = spd.noSPD; espdEmail.approverName = approval.namaLengkap; espdEmail.spdRequester = spd.namaLengkap; espdEmail.nrpRequester = spd.nrp; espdEmail.statusName = (string.IsNullOrEmpty(statusClaim) == true ? spd.status : statusClaim); espdEmail.noHp = spd.NoHP; espdEmail.golongan = spd.idGolongan; espdEmail.jabatan = spd.jabatan; espdEmail.organisasiUnit = karyawan.organisasiUnit; espdEmail.companyCode = karyawan.companyCode; espdEmail.personalArea = karyawan.personelArea; espdEmail.personelSubArea = karyawan.pSubArea; espdEmail.costCenterPembebanan = spd.costCenter; espdEmail.tempatTujuan = !string.IsNullOrEmpty(spd.tempatTujuanLain) ? spd.Tujuan + " - " + spd.tempatTujuanLain : spd.Tujuan + " - " + spd.companyCodeTujuan + " - " + spd.personelAreaTujuan + " - " + spd.pSubAreaTujuan; espdEmail.keperluan = spd.msKeperluan.keperluan + " - " + spd.ketKeperluan; espdEmail.tanggalBerangkat = spd.tglBerangkat.ToString("dd MMMM yyyy"); espdEmail.jamBerangkat = spd.jamBerangkat; espdEmail.menitBerangkat = spd.menitBerangkat; espdEmail.tanggalKembali = spd.tglKembali.ToString("dd MMMM yyyy"); espdEmail.jamKembali = spd.jamKembali; espdEmail.menitKembali = spd.menitKembali; espdEmail.angkutan = spd.idAngkutan != null ? spd.msAngkutan.nama : spd.angkutanLain; espdEmail.hotel = spd.penginapan; espdEmail.spdStatusList = tamplatesSPD; espdEmail.claimApprove = claimApprove; espdEmail.alasan = spd.Alasan; string sqlFormattedDate = spd.tglExpired.HasValue ? spd.tglExpired.Value.ToString("dd MMMM yyyy") : "<not available>"; espdEmail.tglExpired = sqlFormattedDate; espdEmail.uangMuka = spd.uangMuka; espdEmail.BPHUM = spd.BPHUM; try { TimeSpan Jumlahhari = spd.tglKembali - spd.tglBerangkat; TimeSpan tambahan = TimeSpan.FromDays(1); Jumlahhari += tambahan; espdEmail.totalDays = Jumlahhari.Days.ToString(); } catch (Exception) { espdEmail.totalDays = "Undetected"; } if (urltarget.ToLower().Contains("claim")) { var dc = ctx.trClaims.FirstOrDefault(o => o.noSPD == spd.noSPD); #region claim var uangmuka = (string.IsNullOrEmpty(spd.uangMuka) ? 0 : int.Parse(spd.uangMuka)); espdEmail.CbiayaMakan = dc.biayaMakan.ToString("#,###"); espdEmail.CuangSaku = dc.uangSaku.ToString("#,###"); espdEmail.Ctiket = dc.tiket.ToString("#,###"); espdEmail.Chotel = dc.hotel.ToString("#,###"); espdEmail.CBBM = dc.BBM.ToString("#,###"); espdEmail.Ctol = dc.tol.ToString("#,###"); espdEmail.Ctaxi = dc.taxi.ToString("#,###"); espdEmail.CairportTax = dc.airportTax.ToString("#,###"); espdEmail.Claundry = dc.laundry.ToString("#,###"); espdEmail.Cparkir = dc.parkir.ToString("#,###"); espdEmail.Ckomunikasi = dc.komunikasi != null?dc.komunikasi.Value.ToString("#,###") : ""; espdEmail.CbiayaLainLain = dc.biayaLainLain.ToString("#,###"); espdEmail.CtotalClaim = dc.total.ToString("#,###"); espdEmail.CuangMuka = uangmuka.ToString("#,###"); espdEmail.Cpenyelesaian = (dc.total - uangmuka).ToString("#,###"); espdEmail.CtotalClaim = dc.total.ToString("#,###"); espdEmail.CBPHClaim = dc.BPHClaim; #endregion } string urlSource = "?nCrypt=" + espdEmail.nCrypt + "&eCrypt=" + espdEmail.eCrypt + "&sCrypt=" + espdEmail.sCrypt + "&ClaimApprove=" + espdEmail.claimApprove + "&index=" + indexLevel + "&Action="; string urlAction = "http://trac39/SPD/" + urltarget + ".ashx" + urlSource; string urlActionExternal = "http://118.97.80.12/SPD/" + urltarget + ".ashx" + urlSource; espdEmail.DetailURL = "http://118.97.80.12/SPD/" + "newFormRequestDetail.aspx?encrypt=" + espdEmail.sCrypt; espdEmail.DetailClaimURL = "http://118.97.80.12/SPD/" + "newFormRequestDetailClaim.aspx?encrypt=" + espdEmail.sCrypt; espdEmail.ApproveUrl = urlAction + Encrypto.Encrypt("approve"); espdEmail.RejectUrl = urlAction + Encrypto.Encrypt("reject"); espdEmail.ApproveUrlExternal = urlActionExternal + Encrypto.Encrypt("approve"); espdEmail.RejectUrlExternal = urlActionExternal + Encrypto.Encrypt("reject"); //send to requestor and approval string body = EmailCore.PrepareMailBodyWith(tamplate, espdEmail); //cc string ccAddress = ""; if (toAddress.ToLower() == "*****@*****.**") { ccAddress = "[email protected],[email protected],[email protected]"; } if (toAddress.ToLower() == "*****@*****.**") { ccAddress = "*****@*****.**"; } if (toAddress.ToLower() == "*****@*****.**") { ccAddress = "[email protected],[email protected]"; } if (toAddress.ToLower() == "*****@*****.**") { ccAddress = "*****@*****.**"; } //for date 16-Maret-2015 till 20-Maret-2015 //for date 20-April-2015 till 25-April-2015 //for date 18-Mei-2015 till 22-Mei-2015 //for date 19-September-2015 till the end // if (toAddress.ToLower() == "*****@*****.**") // { // // //toAddress = "*****@*****.**"; // toAddress = "*****@*****.**"; //} string bccAddress = ""; Helper hp = new Helper(); if (indexLevel.Contains("1")) { bccAddress = "[email protected],"; DataSet dsCheckBcc = hp.wsEmail("spd"); 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 += ","; } bccAddress = bccAddress.Remove(bccAddress.Length - 1); } } else if (statusClaim.Contains("Menunggu approval atasan")) { bccAddress = "[email protected],"; 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 += ","; } bccAddress = bccAddress.Remove(bccAddress.Length - 1); } } else { bccAddress = "*****@*****.**"; } //for production try TO DO //EmailCore.SendMail(toAddress, ccAddress, bccAddress, subject, body); //end for production } }
private string ApproveSPD(trSPD dataSpd, string nrp, string nospd, string index) { using (var ctx = new dsSPDDataContext()) { //nrp = "85"; dataSpd = ctx.trSPDs.FirstOrDefault(o => o.noSPD == nospd); if (dataSpd.status.ToLower().Contains("expired")) { return("SPD Expired, sehingga tidak bisa di Approved."); } // get all approval var approval = ctx.ApprovalStatus.Where(o => o.NoSPD == nospd).OrderBy(o => o.IndexLevel).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); // approval tujuan, dan pastikan approval semua sudah diapprove var countCekApproval = approval.Where(o => o.Status == null || o.Status == false).Count(); if (nrp == dataSpd.nrpApprovalTujuan && currentApproval == null && string.IsNullOrEmpty(index) && countCekApproval == 0) { if (dataSpd.status.ToLower().Contains("expired")) { return("SPD Expired, sehingga tidak bisa di Approved."); } //cuman boleh ngeprove hari berangkat ato udah nyampe, else if (DateTime.Now.Date < dataSpd.tglBerangkat.Date) { return("SPD hanya bisa diapprove pada tanggal : " + dataSpd.tglBerangkat.ToString("dd MMMM yyyy") + ", atau lebih."); } else { dataSpd.status = "SPD Full Approved"; dataSpd.isApproved = true; dataSpd.diubahTanggal = DateTime.Now; dataSpd.isApprovedDate = DateTime.Now; ctx.SubmitChanges(); // send informasi ke pembuat //EmailCore.InformasiSPD(dataSpd.dibuatOleh, dataSpd.noSPD, dataSpd);//ditutup dulu oleh azan return(string.Empty); } } //probabilitas 1% untuk approval tujuan dua kali approve, saat ini method sudah di cover sama method if action diatas, kecuali anomali data // jika current approval, absolute bukan approval tujuan yang approve, dikarenakan status masih null if (currentApproval != null && !string.IsNullOrEmpty(index)) { // get next approval var nextApproval = approval.FirstOrDefault(o => o.IndexLevel == (currentApproval.IndexLevel + 1)); //set status menunggu approval selanjutnya if (nextApproval != null) { dataSpd.status = "SPD Menunggu approval " + nextApproval.ApprovalRule.Deskripsi; currentApproval.Status = true; currentApproval.ModifiedDate = DateTime.Now; ctx.SubmitChanges(); string indexNext = nextApproval.IndexLevel.Value.ToString(); // send email approval Atasan atau tujuan //EmailCore.ApprovalSPD(nextApproval.NrpApproval, dataSpd.noSPD, indexNext, dataSpd); //TO DO Email ditutup dulu oleh azan // send informasi ke pembuat //EmailCore.InformasiSPD(dataSpd.dibuatOleh, dataSpd.noSPD, dataSpd); //TO DO Email ditutup dulu oleh azan } //jika tidak ada next approval lagi else { //cek uang muka, jika lebih dari 0 maka akan generate text //var dc = new dsSPDDataContext(); var data = (from a in ctx.trSPDs where a.noSPD == nospd select new { uangMuka = a.uangMuka }).FirstOrDefault(); Int64 _uangMuka = 0; if (data.uangMuka != string.Empty) { _uangMuka = Convert.ToInt64(data.uangMuka); } if (_uangMuka > 0) { string respMessage = GenerateText(nospd, ctx); //generate text if (respMessage == "success") { currentApproval.Status = true; currentApproval.ModifiedDate = DateTime.Now; ctx.SubmitChanges(); } else { return(respMessage); } //EmailCore.InformasiGenerateUangMukaSuccess(dataSpd.dibuatOleh, dataSpd.noSPD, dataSpd); } else { dataSpd.status = "SPD Menunggu approval tujuan"; currentApproval.Status = true; currentApproval.ModifiedDate = DateTime.Now; ctx.SubmitChanges(); } // send email approval Atasan atau tujuan //EmailCore.ApprovalSPD(dataSpd.nrpApprovalTujuan, dataSpd.noSPD, string.Empty, dataSpd); //TO DO Email tutup by azan // send informasi ke pembuat //EmailCore.InformasiSPD(dataSpd.dibuatOleh, dataSpd.noSPD, dataSpd); //TO DO Email tutup by azan //EmailCore.InformasiSPDExpired(dataSpd.dibuatOleh, dataSpd.noSPD, dataSpd); //TO DO Email tutup by azan //send email ke GA if (dataSpd.tiket.ToLower().Contains("dicarikan")) { // 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) // { // } // ===== TO DO Email ===== start Helper hp = new Helper(); DataSet dsCheckBcc = hp.wsEmail("tiket"); 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.InformasiPencarianTiket(nrpGA, dataSpd.noSPD, dataSpd);//tutup by azan } } // ===== TO DO Email ===== end } } // return ok return(string.Empty); } else // jika pernah approve { // find has approved var hasApproved = approval.Where(o => o.NrpApproval == nrp && o.Status != null); if (hasApproved.Count() > 0) { var data = hasApproved.FirstOrDefault(o => o.IndexLevel == indexInt); var status = data.Status != null ? data.Status.Value : false; var stringStatus = status == true ? "approve" : "reject"; if (data.ModifiedDate == null) { data.ModifiedDate = DateTime.Now; } return("approval tidak dieksekusi karena No Spd : " + nospd + ", telah " + stringStatus + " sebelumnya pada : " + data.ModifiedDate.Value.ToString("dd MMMM yyyy HH:mm")); } else { // probabilitas 1% karena pasti selalu masuk if induk terlebih dahulu, kecuali anomali data return(string.Empty); } } } }
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); } }
private void ubahStatusSPD(string strNoSpd, string stat, string subject, HttpContext ctx) { string role = string.Empty, Approver = string.Empty; bool sending = false; dsSPDDataContext data = new dsSPDDataContext(); trSPD oSpd = (from spd in data.trSPDs where spd.noSPD == strNoSpd select spd).FirstOrDefault(); msKaryawan kary = new msKaryawan(); if (oSpd.nrp != "99999999") { kary = (from kar in data.msKaryawans where kar.nrp == oSpd.nrp select kar).FirstOrDefault(); } //Ditambahkan oleh martha else if (oSpd.nrp == "2950") { kary.EMail = "*****@*****.**"; kary.nrp = oSpd.nrp; kary.namaLengkap = oSpd.namaLengkap; kary.golongan = "III"; kary.Job = oSpd.jabatan; kary.posisi = oSpd.jabatan; kary.coCd = "1"; kary.kodePSubArea = "1"; kary.kodePA = "1"; } else { kary.EMail = oSpd.email; kary.nrp = oSpd.nrp; kary.namaLengkap = oSpd.namaLengkap; kary.golongan = "III"; kary.Job = oSpd.jabatan; kary.posisi = oSpd.jabatan; kary.coCd = "1"; kary.kodePSubArea = "1"; kary.kodePA = "1"; } if (subject.ToLower().Trim() == "atasan") { if (stat.ToLower().Trim() == "approve") { if (oSpd.status.Split('-')[0] == "2") { oSpd.status = "3-Atasan Approve"; ctx.Response.Write("Berhasil di approve"); sending = true; } else { ctx.Response.Write("SPD Sudah Diapprove sebelumnya"); sending = false; } } else { if (oSpd.status.Split('-')[0] == "2") { oSpd.status = "12-SPD Tolak (Atasan)"; ctx.Response.Write("Berhasil di reject"); sending = true; } else { ctx.Response.Write("SPD Sudah di tolak sebelumnya"); sending = false; } } role = "1"; Approver = oSpd.nrpAtasan; } else if (subject.ToLower().Trim() == "tujuan") { if (oSpd.tglBerangkat.Date > DateTime.Now.Date) { ctx.Response.Write("SPD belum bisa approve/reject karena tanggal berangkat harus sesudah atau sama dengan hari ini"); sending = false; return; } if (stat.ToLower().Trim() == "approve") { if (oSpd.status.Split('-')[0] == "3") { oSpd.status = "7-Tempat Tujuan Approve"; ctx.Response.Write("Berhasil di approve"); sending = true; } else { ctx.Response.Write("SPD Sudah Diapprove sebelumnya"); sending = false; } } else { if (oSpd.status.Split('-')[0] == "3") { oSpd.status = "13-SPD Tolak (Tujuan)"; ctx.Response.Write("Berhasil di reject"); sending = true; } else { ctx.Response.Write("SPD sudah ditolak sebelumnya"); sending = false; } } role = "2"; Approver = oSpd.nrpApprovalTujuan; } if (sending) { trApprovalHistory ah = new trApprovalHistory(); ah.noSPD = strNoSpd; ah.idRole = role; ah.statusApproval = oSpd.status; ah.nrpApprover = Approver; ah.approvalDatetime = DateTime.Now; data.trApprovalHistories.InsertOnSubmit(ah); data.SubmitChanges(); classSpd oClassSPD = new classSpd(); switch (oSpd.status.Split('-')[0]) { case "2": oClassSPD.sendMail(oSpd, "Atasan", kary); break; case "3": oClassSPD.sendMail(oSpd, "Pembuat", kary); oClassSPD.sendMail(oSpd, "Tujuan", kary); oClassSPD.sendMail(oSpd, "GA", kary); break; case "6": oClassSPD.sendMail(oSpd, "Pembuat", kary); oClassSPD.sendMail(oSpd, "Tujuan", kary); oClassSPD.sendMail(oSpd, "GA", kary); break; case "7": oClassSPD.sendMail(oSpd, "Pembuat", kary); break; case "8": oClassSPD.sendMail(oSpd, "Pembuat", kary); break; case "9": oClassSPD.sendMail(oSpd, "Pembuat", kary); break; case "12": oClassSPD.sendMail(oSpd, "Pembuat", kary); break; case "13": oClassSPD.sendMail(oSpd, "Pembuat", kary); break; } } data.Dispose(); }
protected void btnSave_Click(object sender, EventArgs e) { if (Session["noSPDc"] == null) { Response.Redirect("frmClaimApproval.aspx"); } else { using (dsSPDDataContext data = new dsSPDDataContext()) { trClaim claim = new trClaim(); if (!string.IsNullOrEmpty(txtNoSPD.Text)) { trSPD spd = data.trSPDs.FirstOrDefault(o => o.noSPD == txtNoSPD.Text); if (spd != null) { if (spd.isApproved == true && spd.isCancel == null) { try { claim = (from c in data.trClaims where c.noSPD == txtNoSPD.Text select c).FirstOrDefault(); bool flagCeklisControl = false; if (claim == null) { trClaim claimNew = new trClaim(); getFromForm(ref claimNew); claimNew.status = "Saved"; claimNew.dibuatOleh = karyawan.nrp; claimNew.dibuatTanggal = DateTime.Now; data.trClaims.InsertOnSubmit(claimNew); data.SubmitChanges(); if (claimNew.tiket_cek == true || claimNew.hotel_cek == true || claimNew.laundry_cek == true || claimNew.komunikasi_cek == true || claimNew.airportTax_cek == true || claimNew.BBM_cek == true || claimNew.tol_cek == true || claimNew.taxi_cek == true || claimNew.parkir_cek == true) { flagCeklisControl = true; } } else { getFromForm(ref claim); if (FLDgamode.Value.ToString().ToLower() == "false") { claim.status = "Saved"; } claim.diubahOleh = karyawan.nrp; claim.diubahTanggal = DateTime.Now; data.SubmitChanges(); if (claim.tiket_cek == true || claim.hotel_cek == true || claim.laundry_cek == true || claim.komunikasi_cek == true || claim.airportTax_cek == true || claim.BBM_cek == true || claim.tol_cek == true || claim.taxi_cek == true || claim.parkir_cek == true) { flagCeklisControl = true; } } #region SendMail Checking Data if (flagCeklisControl) { 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(); } classSpd oSpd = new classSpd(); oSpd.sendMailClaim(claim, kary, spd); } #endregion btnSave.Enabled = true; if (FLDgamode.Value.ToString().ToLower() == "false") { btnSubmit.Enabled = true; } lblKet.Text = "Claim berhasil di-Save"; } catch (Exception ex) { Response.Write(ex.Message); } } else { lblKet.Text = "SPD belum di approve atau direject atau juga dicancel"; } } else { lblKet.Text = "SPD tidak ditemukan"; } } else { lblKet.Text = "Isi no spd"; } } } }