예제 #1
0
        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;
                }
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
파일: EmailCore.cs 프로젝트: azanM/ESPD
 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
         );
 }
예제 #4
0
파일: EmailCore.cs 프로젝트: azanM/ESPD
 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
         );
 }
예제 #5
0
파일: EmailCore.cs 프로젝트: azanM/ESPD
 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
         );
 }
예제 #6
0
파일: EmailCore.cs 프로젝트: azanM/ESPD
 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
         );
 }
예제 #7
0
파일: EmailCore.cs 프로젝트: azanM/ESPD
 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
         );
 }
예제 #8
0
        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);
                }
            }
        }
예제 #9
0
        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);
        }
예제 #10
0
        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
        }
예제 #11
0
        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;
                }
            }
        }
예제 #12
0
        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);
        }
예제 #13
0
        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);
            }
        }
예제 #14
0
        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();
        }
예제 #15
0
파일: EmailCore.cs 프로젝트: azanM/ESPD
        //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
                );
        }
예제 #16
0
파일: EmailCore.cs 프로젝트: azanM/ESPD
        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
            }
        }
예제 #17
0
        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);
                    }
                }
            }
        }
예제 #18
0
        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);
            }
        }
예제 #19
0
        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();
        }
예제 #20
0
        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";
                    }
                }
            }
        }