Пример #1
0
        public JsonResult SetOpen(int comp_id)
        {
            try
            {
                ass_complaint comp = db.ass_complaint
                                     .Where(a => a.id == comp_id).FirstOrDefault();

                foreach (ass_complaint_dtl dtl in comp.ass_complaint_dtl.ToList())
                {
                    dtl.curr_status_id = 1;
                    ass_status_update up = new ass_status_update
                    {
                        compdtl_id  = dtl.id,
                        status_id   = 1,
                        status_date = DateTime.Today,
                        user_id     = int.Parse(User.Identity.Name)
                    };
                    db.ass_status_update.Add(up);
                }
                db.SaveChanges();

                return(Json(new { success = 1, comp_id = comp_id, Exception = "" }));
            }
            catch (Exception ex)
            {
                return(Json(new { success = 0, comp_id = comp_id, Exception = ex.ToString() }));
            }
        }
Пример #2
0
        public ActionResult DeleteConfirmed(int id)
        {
            ass_complaint ass_complaint = db.ass_complaint.Find(id);

            db.ass_complaint.Remove(ass_complaint);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #3
0
 public ActionResult Edit([Bind(Include = "id,complaint_cd,entity_cd,project_no,lot_no,business_id,cp_name,cp_telp,check_date,contractor_id,descs,input_date,user_id,attach_file")] ass_complaint ass_complaint)
 {
     if (ModelState.IsValid)
     {
         db.Entry(ass_complaint).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(ass_complaint));
 }
Пример #4
0
        // GET: Ass/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ass_complaint ass_complaint = db.ass_complaint.Find(id);

            if (ass_complaint == null)
            {
                return(HttpNotFound());
            }
            return(View(ass_complaint));
        }
Пример #5
0
        public ActionResult printOut(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ass_complaint ass_complaint = db.ass_complaint.Find(id);

            if (ass_complaint == null)
            {
                return(HttpNotFound());
            }
            List <PrintOut> poLs = new List <PrintOut>();

            poLs = ass_complaint.ass_complaint_dtl
                   .Select(a => new PrintOut
            {
                no             = a.ass_complaint.id,
                ownerName      = a.ass_complaint.cp_name,
                telp           = a.ass_complaint.cp_telp,
                address        = a.ass_complaint.lot_no,
                email          = a.ass_complaint.cp_email,
                bast           = a.ass_complaint.pm_tenancy.commence_date,
                checkListDate  = a.ass_complaint.check_date,
                finishDate     = a.ass_complaint.ass_complaint_dtl.OrderByDescending(x => x.due_date).FirstOrDefault().due_date,
                contractorName = a.ass_complaint.cm_contractor.trade,
                cpContractor   = a.ass_complaint.controller_name,
                headDescs      = a.ass_complaint.descs,
                descs          = a.ass_category.name + " " + a.ass_location.name + " " + a.descs
            }).ToList();

            ReportDocument rd = new ReportDocument();

            rd.Load(Path.Combine(Server.MapPath("~/Reports"), "AssPrintOut.rpt"));
            rd.SetDataSource(poLs);

            Response.Buffer = false;
            Response.ClearContent();
            Response.ClearHeaders();

            try
            {
                Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
                stream.Seek(0, SeekOrigin.Begin);
                //return File(stream, "application/pdf", id.ToString() + ".pdf");
                return(File(stream, "application/pdf"));
            }
            catch (Exception ex) { throw; }
        }
Пример #6
0
        public JsonResult CreateJson(ass_complaint ass_complaint)
        {
            try
            {
                ass_complaint curComp = db.ass_complaint
                                        .Where(a => a.id == ass_complaint.id)
                                        .FirstOrDefault();

                if (curComp != null)
                {
                    curComp.entity_cd     = ass_complaint.entity_cd;
                    curComp.lot_no        = ass_complaint.lot_no;
                    curComp.project_no    = ass_complaint.project_no;
                    curComp.business_id   = ass_complaint.business_id;
                    curComp.cp_name       = ass_complaint.cp_name;
                    curComp.cp_telp       = ass_complaint.cp_telp;
                    curComp.cp_email      = ass_complaint.cp_email;
                    curComp.check_date    = ass_complaint.check_date;
                    curComp.contractor_id = ass_complaint.contractor_id;

                    curComp.ass_complaint_dtl.ToList().ForEach(a => db.ass_complaint_dtl.Remove(a));

                    foreach (ass_complaint_dtl dtl in ass_complaint.ass_complaint_dtl)
                    {
                        db.ass_complaint_dtl.Add(dtl);
                    }
                }
                else
                {
                    ass_complaint.input_date   = DateTime.Now;
                    ass_complaint.complaint_cd = "";
                    ass_complaint.user_id      = int.Parse(User.Identity.Name);

                    db.ass_complaint.Add(ass_complaint);
                }
                db.SaveChanges();
                return(Json(new { success = 1, comp_id = ass_complaint.id, ex = "" }));
            }
            catch (Exception ex)
            {
                return(Json(new { success = 0, comp_id = ass_complaint.id, ex = ex.ToString() }));
            }
        }
Пример #7
0
        // GET: Ass/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ass_complaint ass_complaint = db.ass_complaint.Find(id);

            if (ass_complaint == null ||
                ((ass_complaint.input_date.Year != DateTime.Today.Year ||
                  ass_complaint.input_date.Month != DateTime.Today.Month ||
                  ass_complaint.input_date.Day != DateTime.Today.Day) && !ass_complaint.lastStatus.Contains("INPUT")))
            {
                return(HttpNotFound());
            }
            ViewBag.contractor_id = new SelectList(db.cm_contractor, "id", "trade", ass_complaint.contractor_id);
            ViewBag.categories    = db.ass_category.ToList();
            ViewBag.locations     = db.ass_location.ToList();
            return(View("Edit_", ass_complaint));
        }
Пример #8
0
        public ActionResult ProgressByComplaint(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ass_complaint ass_complaint = db.ass_complaint.Find(id);

            if (ass_complaint == null)
            {
                return(HttpNotFound());
            }

            List <ass_status> statusLs = db.ass_status.ToList();
            ViewProgressDtl   result   = new ViewProgressDtl
            {
                ass_complaint = ass_complaint,
                status        = statusLs
            };

            return(View(result));
        }
Пример #9
0
        public JsonResult CreateJson(AddStatus status)
        {
            string messageResult = "Progress has been updated";

            using (var dbTrans = db.Database.BeginTransaction())
            {
                try
                {
                    foreach (AddStatusDtl dtl in status.dtl)
                    {
                        ass_complaint_dtl compDtl = db.ass_complaint_dtl.Where(a => a.id == dtl.compDtlId).FirstOrDefault();
                        if (compDtl != null)
                        {
                            compDtl.curr_status_id = dtl.statusId;
                            ass_status_update up = new ass_status_update
                            {
                                compdtl_id  = dtl.compDtlId,
                                status_id   = dtl.statusId,
                                status_date = DateTime.Today,
                                remark      = dtl.remark,
                                user_id     = int.Parse(User.Identity.Name)
                            };
                            db.ass_status_update.Add(up);
                            db.SaveChanges();

                            ass_complaint complaint = db.ass_complaint
                                                      .Where(a => a.id == compDtl.comp_id)
                                                      .FirstOrDefault();
                            if (!complaint.ass_complaint_dtl.Where(x => x.curr_status_id == null || !x.ass_status.name.Contains("CLOSED")).Any())
                            {
                                complaint.closing_date = DateTime.Today;
                            }

                            bool cancel = true;
                            foreach (ass_complaint_dtl itemDtl in complaint.ass_complaint_dtl)
                            {
                                if (!itemDtl.currentStatus.Contains("CANCEL"))
                                {
                                    cancel = false;
                                }
                            }

                            if (cancel)
                            {
                                complaint.cancel_date = DateTime.Now;
                            }

                            ass_status currentStatus = db.ass_status.Where(a => a.id == dtl.statusId).FirstOrDefault();
                            if (currentStatus != null && currentStatus.name.Contains("DONE") && complaint.cp_email != "")
                            {
                                if (!complaint.ass_complaint_dtl.Where(x => x.curr_status_id == null || (!x.ass_status.name.Contains("CLOSED") && !x.ass_status.name.Contains("DONE"))).Any())
                                {
                                    //#GET SENDER EMAIL
                                    ass_email_sender mailSender   = db.ass_email_sender.FirstOrDefault();
                                    string           templateBody = mailSender.email_template;

                                    //#SEND EMAIL
                                    DateTime today  = DateTime.Today;
                                    string   mailNo = today.Day.ToString() + "/ASS-GLC/" + IntExtensions.ToRomanNumeral(today.Month) + "/" + today.Year;
                                    string   templateHTML;
                                    //Read template file from the App_Data folder
                                    using (var sr = new StreamReader(Server.MapPath("\\App_Data\\Templates\\") + "MailAssDone.html"))
                                    {
                                        templateHTML = sr.ReadToEnd();
                                    }
                                    MailMessage mail = new MailMessage();
                                    mail.To.Add(complaint.cp_email);
                                    //mail.To.Add("*****@*****.**");
                                    //mail.From = new MailAddress("*****@*****.**");
                                    mail.From    = new MailAddress(mailSender.email);
                                    mail.Subject = "Surat Pemberitahuan Komplain Telah Selesai";
                                    string messageBody = @"
                                    <table style='width:100%'>
                                        <tr>
                                            <th>#</th>
                                            <th>Uraian Checklist</th>
                                            <th>Proses</th>
                                            <th>Keterangan</th>
                                        </tr>";

                                    int x = 1;
                                    foreach (ass_complaint_dtl ass_complaint_dtl in complaint.ass_complaint_dtl)
                                    {
                                        string descs = ass_complaint_dtl.ass_category.name + " "
                                                       + ass_complaint_dtl.ass_location.name + " "
                                                       + ass_complaint_dtl.descs;
                                        string contentDtl = "<tr>";
                                        contentDtl  += "<td>" + x.ToString() + "</td>";
                                        contentDtl  += "<td>" + descs + "</td>";
                                        contentDtl  += "<td>" + ass_complaint_dtl.currentStatus + "</td>";
                                        contentDtl  += "<td>" + ass_complaint_dtl.currentRemark + "</td>";
                                        contentDtl  += "</tr>";
                                        messageBody += contentDtl;
                                        x++;
                                    }
                                    messageBody += "</table>";

                                    string Body = templateBody.Replace("{emailNo}", mailNo)
                                                  .Replace("{cluster}", complaint.pm_tenancy.pl_project.descs)
                                                  .Replace("{lotNo}", complaint.lot_no)
                                                  .Replace("{date}", DateTime.Today.ToString("dd MMMM yyyy"))
                                                  .Replace("{complaintDetail}", messageBody)
                                                  .Replace("{complaintDate}", complaint.check_date.ToString("dd MMM yyyy"));
                                    Body            = templateHTML.Replace("{body}", Body);
                                    mail.Body       = Body;
                                    mail.IsBodyHtml = true;
                                    SmtpClient smtp = new SmtpClient();
                                    smtp.Host = "mx.agungsedayu.com";
                                    smtp.Port = 25;
                                    smtp.UseDefaultCredentials = false;
                                    //smtp.Credentials = new System.Net.NetworkCredential
                                    //("*****@*****.**", "aqswde123");// Enter seders User name and password
                                    smtp.Credentials = new System.Net.NetworkCredential
                                                           (mailSender.email, EncrypHelpers.Decrypt(mailSender.password));// Enter seders User name and password
                                    smtp.EnableSsl = true;
                                    smtp.Send(mail);

                                    ass_complaint_mail compMail = new ass_complaint_mail
                                    {
                                        mail_no    = mailNo,
                                        email_to   = complaint.cp_email,
                                        mail_date  = today,
                                        comp_id    = complaint.id,
                                        user_id    = int.Parse(User.Identity.Name),
                                        audit_date = DateTime.Now
                                    };
                                    db.ass_complaint_mail.Add(compMail);
                                    db.SaveChanges();
                                    //#END SEND EMAIL
                                    messageResult = "Progress has been updated and Email has been sent.";
                                }
                            }

                            db.SaveChanges();
                        }
                    }
                    dbTrans.Commit();
                    return(Json(new { success = 1, ex = messageResult }));
                }
                catch (Exception ex)
                {
                    dbTrans.Rollback();
                    return(Json(new { success = 0, ex = ex.ToString() }));
                }
            }
        }