public ActionResult DeleteConfirmed(int id)
        {
            tr_mutation_request tr_mutation_request = db.tr_mutation_request.Find(id);

            db.tr_mutation_request.Remove(tr_mutation_request);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "request_id,asset_id,request_date,request_emp_id,request_dept_id,request_location_id,request_level_id,transfer_to_location_id,transfer_to_dept_id,transfer_to_emp_id,fl_approval,approval_date,request_status,fl_active,created_date,created_by,updated_date,updated_by,deleted_date,deleted_by,org_id")] tr_mutation_request tr_mutation_request)
 {
     if (ModelState.IsValid)
     {
         db.Entry(tr_mutation_request).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(tr_mutation_request));
 }
        // GET: mutation_request/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tr_mutation_request tr_mutation_request = db.tr_mutation_request.Find(id);

            if (tr_mutation_request == null)
            {
                return(HttpNotFound());
            }
            return(View(tr_mutation_request));
        }
        public ActionResult details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            tr_mutation_request mutation_req = db.tr_mutation_request.Find(id);

            if (mutation_req == null)
            {
                return(HttpNotFound("Assset not found."));
            }
            AssetMutationViewModel mutationmodel = new AssetMutationViewModel();

            mutationmodel = DataMutationView(id, mutationmodel);

            return(View(mutationmodel));
        }
        public ActionResult Approval([Bind(Include = "request_id, asset_id, approval_id, fl_approval, approval_noted, asset_number,asset_name, location_name, department_name, employee_name, transfer_to_location_name, transfer_to_dept_name, transfer_to_emp_name, transfer_to_location_id, transfer_to_dept_id, transfer_to_emp_id")] AssetMutationViewModel mutation_req)
        {
            if (mutation_req.fl_approval != null)
            {
                if (mutation_req.fl_approval == true)
                {
                    //if (mutation_req.approval_suggestion_id == null || mutation_req.approval_suggestion_id == 0)
                    //    ModelState.AddModelError("approval_suggestion_id", "Suggestion is Mandatory.");
                }
            }
            else if (mutation_req.approval_noted == null || mutation_req.approval_noted.Trim() == string.Empty)
            {
                ModelState.AddModelError("fl_approval", "Approval is Mandatory.");
                ModelState.AddModelError("approval_noted", "Reject Reason is Mandatory.");
            }

            //update disposal request and approval data with transaction
            if (ModelState.IsValid)
            {
                using (var transaction = db.Database.BeginTransaction())
                {
                    try
                    {
                        bool iscomplete = false;
                        #region "Save update Request Asset Mutation"
                        tr_mutation_request mutation_request = db.tr_mutation_request.Find(mutation_req.request_id);
                        mutation_request.fl_approval = mutation_req.fl_approval;
                        if (mutation_req.fl_approval == true)
                        {
                            var doneapp = (from app in db.tr_mutation_approval
                                           where (app.approval_date == null && app.fl_active == true &&
                                                  app.deleted_date == null && app.request_id == mutation_req.request_id)
                                           select app).ToList();

                            if (doneapp.Count == 1)
                            {
                                mutation_request.request_status = 5;//complete
                                iscomplete = true;

                                tr_mutation_process tr = new tr_mutation_process();
                                tr.request_id = mutation_req.request_id;
                                tr.org_id     = UserProfile.OrgId;
                                tr.fl_active  = true;

                                tr = db.tr_mutation_process.Add(tr);
                                db.SaveChanges();
                            }
                            else
                            {
                                mutation_request.request_status = 2;//approve
                            }
                        }
                        else
                        {
                            mutation_request.request_status = 3; //reject
                        }

                        mutation_request.approval_date = DateTime.Now;
                        mutation_request.updated_date  = DateTime.Now;
                        mutation_request.updated_by    = UserProfile.UserId;
                        mutation_request.deleted_date  = null;
                        mutation_request.deleted_by    = null;

                        db.Entry(mutation_request).State = EntityState.Modified;
                        db.SaveChanges();
                        #endregion

                        #region "Save update Approval Mutation"
                        tr_mutation_approval mutation_approval = db.tr_mutation_approval.Find(mutation_req.approval_id);

                        if (mutation_req.fl_approval == true)
                        {
                            mutation_approval.approval_status_id = 2;//approve
                        }
                        else
                        {
                            mutation_approval.approval_status_id = 3; //reject
                            mutation_approval.approval_noted     = mutation_req.approval_noted;
                        }
                        mutation_approval.approval_date = DateTime.Now;
                        //mutation_approval.approval_location_id = UserProfile.location_id; --> location_id bukan dari login
                        mutation_approval.updated_date = DateTime.Now;
                        mutation_approval.updated_by   = UserProfile.UserId;
                        mutation_approval.deleted_date = null;
                        mutation_approval.deteled_by   = null;

                        db.Entry(mutation_approval).State = EntityState.Modified;
                        db.SaveChanges();
                        #endregion

                        if (mutation_req.fl_approval == true)
                        {
                            if (!iscomplete)
                            {
                                #region "kirim email ke approval"

                                var next_approval = (from app in db.tr_mutation_approval
                                                     where (app.approval_date == null && app.fl_active == true && app.deleted_date == null) &&
                                                     app.request_id == mutation_req.request_id
                                                     orderby app.approval_id ascending

                                                     join a in db.ms_employee on app.approval_employee_id equals a.employee_id
                                                     where a.fl_active == true && a.deleted_date == null
                                                     select a).FirstOrDefault <ms_employee>();

                                if (next_approval != null)
                                {
                                    sy_email_log sy_email_log = new sy_email_log();
                                    sy_email_log.elog_to       = next_approval.employee_email;
                                    sy_email_log.elog_subject  = string.Format("Asset Mutation Need Approval");
                                    sy_email_log.elog_template = "EMAIL_TEMPLATE_02";

                                    #region "body mail"
                                    var    _bodymail   = app_setting.APPLICATION_SETTING.Where(c => c.app_key.Contains("EMAIL_TEMPLATE_02"));
                                    string strBodyMail = _bodymail.FirstOrDefault().app_value;
                                    strBodyMail = strBodyMail.Replace("[to]", next_approval.employee_name);
                                    strBodyMail = strBodyMail.Replace("[assetnumber]", mutation_req.asset_number);
                                    strBodyMail = strBodyMail.Replace("[assetname]", mutation_req.asset_name);
                                    strBodyMail = strBodyMail.Replace("[assetlocation]", mutation_req.location_name);
                                    strBodyMail = strBodyMail.Replace("[department]", mutation_req.department_name);
                                    strBodyMail = strBodyMail.Replace("[employee]", mutation_req.employee_name);
                                    //strBodyMail = strBodyMail.Replace("[link]", "");
                                    sy_email_log.elog_body = strBodyMail;
                                    #endregion

                                    var EmailHelper = new EmailHelper()
                                    {
                                        ToAddress      = sy_email_log.elog_to,
                                        Email_Template = sy_email_log.elog_template,
                                        MailSubject    = sy_email_log.elog_subject,
                                        MailBody       = sy_email_log.elog_body
                                    };
                                    EmailHelper.Send();
                                }
                                #endregion

                                #region "Save Sy_Message_notification ke approval"
                                if (next_approval != null)
                                {
                                    int     empid  = Convert.ToInt32(next_approval.employee_id);
                                    ms_user msuser = (from m in db.ms_user
                                                      where m.employee_id == empid
                                                      select m).FirstOrDefault();

                                    sy_message_notification msg = new sy_message_notification();
                                    msg.notif_group    = "BALOON_RECEIPT_03";
                                    msg.notify_user    = msuser.user_name;
                                    msg.notify_ip      = next_approval.ip_address;
                                    msg.notify_message = "Ada permintaan approval untuk asset mutasi.";
                                    msg.fl_active      = true;
                                    msg.created_date   = DateTime.Now;
                                    msg.created_by     = UserProfile.UserId;
                                    msg.fl_shown       = 0;

                                    db.sy_message_notification.Add(msg);
                                    db.SaveChanges();
                                }
                                #endregion
                            }
                            else
                            {
                                //kl dh complete???
                            }
                        }
                        transaction.Commit();
                        ViewBag.ResultMessage = "Update table successfully.";
                        return(RedirectToAction("Index"));
                    }
                    catch (Exception)
                    {
                        // roll back all database operations, if any thing goes wrong
                        transaction.Rollback();
                        ViewBag.ResultMessage = "Error occured, records rolledback.";
                    }
                }
            }
            mutation_req = DataMutationView(mutation_req.request_id, mutation_req);
            return(View(mutation_req));
        }
Example #6
0
        // GET: Disposal/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            tr_mutation_request mutationreq = db.tr_mutation_request.Find(id);

            if (mutationreq == null)
            {
                return(HttpNotFound("Assset not found."));
            }

            var _qry = (from t in db.tr_mutation_request
                        where t.fl_active == true && t.deleted_date == null && t.request_id == id
                        //&& t.org_id == UserProfile.OrgId && t.request_dept_id == UserProfile.department_id

                        join a in db.tr_depreciation on t.asset_id equals a.asset_id
                        where (a.fl_active == true && a.deleted_date == null)

                        join b in db.ms_currency on a.asset_original_currency_id equals b.currency_id
                        where (b.fl_active == true && b.deleted_date == null)

                        //join c in db.ms_asmin_company on t.org_id equals c.company_id
                        //where (c.fl_active == true && c.deleted_date == null)
                        join c in db.tr_asset_registration on t.asset_id equals c.asset_id
                        where (c.fl_active == true && c.deleted_date == null)

                        join d in db.ms_department on c.current_department_id equals d.department_id
                        where (d.fl_active == true && d.deleted_date == null)

                        join e in db.ms_employee on c.current_employee_id equals e.employee_id
                        where (e.fl_active == true && e.deleted_date == null)

                        join f in db.ms_asset_location on c.current_location_id equals f.location_id
                        where (f.fl_active == true && f.deleted_date == null)

                        join g in db.ms_department on t.transfer_to_dept_id equals g.department_id
                        where (g.fl_active == true && g.deleted_date == null)

                        join h in db.ms_employee on t.transfer_to_emp_id equals h.employee_id
                        where (h.fl_active == true && h.deleted_date == null)

                        join i in db.ms_asset_location on t.transfer_to_location_id equals i.location_id
                        where (i.fl_active == true && i.deleted_date == null)

                        select new AssetMutationViewModel()
            {
                request_code = t.request_code,
                asset_id = t.asset_id,
                asset_number = c.asset_number,
                asset_name = c.asset_name,
                asset_receipt_date = c.asset_receipt_date,
                currency_code = b.currency_code,
                asset_book_value = a.asset_book_value,
                currency_kurs = a.usd_kurs,
                asset_original_value = a.asset_original_value,
                current_location_id = c.current_location_id,
                current_department_id = c.current_department_id,
                current_employee_id = c.current_employee_id,
                location_name = f.location_name,
                department_name = d.department_name,
                employee_name = e.employee_name,
                transfer_to_dept_id = t.transfer_to_dept_id,
                transfer_to_dept_name = g.department_name,
                transfer_to_location_id = t.transfer_to_location_id,
                transfer_to_location_name = i.location_name,
                transfer_to_emp_id = t.transfer_to_emp_id,
                transfer_to_emp_name = h.employee_name
            }).ToList <AssetMutationViewModel>();

            //Data Approval view
            var _qrylist = (from da in db.tr_mutation_approval
                            where (da.fl_active == true && da.deleted_date == null && da.request_id == id)

                            join a in db.ms_employee on da.approval_employee_id equals a.employee_id
                            where (a.fl_active == true && a.deleted_date == null)

                            join b in db.ms_job_level on da.approval_level_id equals b.job_level_id
                            where (b.fl_active == true && b.deleted_date == null)

                            join c in db.ms_request_status on da.approval_status_id equals c.request_status_id

                            //join d in db.ms_disposal_type on da.approval_suggestion_id equals d.disposal_type_id
                            //into d_temp
                            //from subd in d_temp.DefaultIfEmpty()

                            select new AssetMutationViewModel()
            {
                approval_employee_name = a.employee_name,
                approval_level_name = b.job_level_name,
                approval_status_Name = c.request_status_name,
                approval_date = da.approval_date
            }).ToList <AssetMutationViewModel>();

            var tuple = new Tuple <AssetMutationViewModel, IEnumerable <AssetMutationViewModel> >(_qry.First <AssetMutationViewModel>(), _qrylist);

            return(View(tuple));
        }
Example #7
0
        public ActionResult request([Bind(Include = "asset_id, asset_number, asset_name, current_location_id, location_name, current_department_id, department_name, current_employee_id, employee_name, transfer_to_location_id, transfer_to_dept_id, transfer_to_emp_id, asset_original_value")] AssetMutationViewModel mutation_req)
        {
            //Cek apakah disposal sudah di proses sebelumnya (kecuali reject)
            var _MutationExist = (from dr in db.tr_mutation_request
                                  where (dr.fl_active == true && dr.deleted_date == null) && dr.asset_id == mutation_req.asset_id
                                  select dr).ToList <tr_mutation_request>();

            if (_MutationExist.Count > 0)
            {
                ModelState.AddModelError("asset_number", "Asset Already Exists in Disposal Request Data.");
            }

            //input data request disposal with transaction
            if (ModelState.IsValid)
            {
                using (var transaction = db.Database.BeginTransaction())
                {
                    try
                    {
                        //Save Request Disposal
                        tr_mutation_request mutation_request = new tr_mutation_request();
                        mutation_request.request_code = MutationNumberNew(mutation_req.asset_id);
                        mutation_request.asset_id     = mutation_req.asset_id;

                        mutation_request.request_date = DateTime.Now;
                        //mutation_request.request_location_id = UserProfile.location_id;
                        //mutation_request.request_dept_id = UserProfile.department_id;
                        //mutation_request.request_emp_id = UserProfile.employee_id;
                        mutation_request.request_location_id     = mutation_req.current_location_id;
                        mutation_request.request_dept_id         = mutation_req.current_department_id;
                        mutation_request.request_emp_id          = mutation_req.current_employee_id;
                        mutation_request.request_status          = 1;
                        mutation_request.transfer_to_location_id = mutation_req.transfer_to_location_id;
                        mutation_request.transfer_to_dept_id     = mutation_req.transfer_to_dept_id;
                        mutation_request.transfer_to_emp_id      = mutation_req.transfer_to_emp_id;
                        mutation_request.fl_active    = true;
                        mutation_request.created_date = DateTime.Now;
                        mutation_request.created_by   = UserProfile.UserId;
                        mutation_request.updated_date = DateTime.Now;
                        mutation_request.updated_by   = UserProfile.UserId;
                        mutation_request.deleted_date = null;
                        mutation_request.deleted_by   = null;
                        mutation_request.org_id       = UserProfile.OrgId;

                        mutation_request = db.tr_mutation_request.Add(mutation_request);
                        db.SaveChanges();
                        var x = UserProfile.OrgId;
                        //Save Approval List Mutation Untuk Dept Head
                        //Hendy 22 Feb 2020
                        var _qry = (from sa in db.sy_ref_approval_level
                                    where sa.asset_reg_location_id == mutation_req.current_location_id && sa.job_level_id == 2

                                    join a in db.ms_job_level on sa.job_level_id equals a.job_level_id
                                    where (a.fl_active == true && a.deleted_date == null)

                                    join b in db.ms_employee_detail on a.job_level_id equals b.job_level_id
                                    where (b.fl_active == true && b.deleted_date == null
                                           //&& b.department_id == UserProfile.department_id && b.org_id == UserProfile.OrgId)
                                           && b.department_id == mutation_req.current_department_id && b.company_id == UserProfile.company_id)

                                    join c in db.ms_employee on b.employee_id equals c.employee_id

                                    orderby sa.order_no ascending
                                    select new AssetMutationViewModel()
                        {
                            //request_location_id = b.loca
                            request_dept_id = b.department_id,
                            request_emp_id = b.employee_id,
                            request_level_id = a.job_level_id,
                            current_employee_id = c.employee_id,
                            employee_email = c.employee_email,
                            employee_name = c.employee_name,
                            ip_address = c.ip_address
                        }).ToList <AssetMutationViewModel>();

                        if (_qry != null)
                        {
                            foreach (AssetMutationViewModel refApproval in _qry)
                            {
                                tr_mutation_approval mutation_approval = new tr_mutation_approval();
                                mutation_approval.request_id           = mutation_request.request_id;
                                mutation_approval.approval_date        = null;
                                mutation_approval.approval_location_id = /*refApproval.request_location_id*/ 0;
                                mutation_approval.approval_dept_id     = refApproval.request_dept_id;
                                mutation_approval.approval_employee_id = refApproval.request_emp_id;
                                mutation_approval.approval_level_id    = refApproval.request_level_id;
                                mutation_approval.approval_status_id   = 1;//waiting approval
                                mutation_approval.approval_noted       = "";
                                mutation_approval.fl_active            = true;
                                mutation_approval.created_date         = DateTime.Now;
                                mutation_approval.created_by           = UserProfile.UserId;
                                mutation_approval.updated_date         = DateTime.Now;
                                mutation_approval.updated_by           = UserProfile.UserId;
                                mutation_approval.deleted_date         = null;
                                mutation_approval.deteled_by           = null;
                                mutation_approval.org_id = UserProfile.OrgId;
                                mutation_approval        = db.tr_mutation_approval.Add(mutation_approval);
                                db.SaveChanges();
                            }
                        }
                        //Check KTT

                        //check range approval
                        decimal           ktt_asset_value = Convert.ToDecimal(mutation_req.asset_original_value);
                        bool              isKTTApproval   = false;
                        ms_approval_range range_ktt       = db.ms_approval_range.Where(r => r.range_code == "M_lv2").FirstOrDefault();
                        if (range_ktt != null)
                        {
                            isKTTApproval = (range_ktt.range_min <= ktt_asset_value);
                        }

                        if (isKTTApproval)
                        {
                            var x_ktt = UserProfile.OrgId;
                            //Save Approval List Mutation Untuk Dept Head
                            //Hendy 22 Feb 2020
                            var _qry_ktt = (from sa in db.sy_ref_approval_level
                                            where sa.asset_reg_location_id == mutation_req.current_location_id && sa.job_level_id == 3

                                            join a in db.ms_job_level on sa.job_level_id equals a.job_level_id
                                            where (a.fl_active == true && a.deleted_date == null)

                                            join b in db.ms_employee_detail on a.job_level_id equals b.job_level_id
                                            where (b.fl_active == true && b.deleted_date == null) && b.company_id == UserProfile.company_id

                                            join c in db.ms_employee on b.employee_id equals c.employee_id
                                            where c.employee_id == UserProfile.employee_id

                                            orderby sa.order_no ascending
                                            select new AssetMutationViewModel()
                            {
                                //request_location_id = b.loca
                                request_dept_id = b.department_id,
                                request_emp_id = b.employee_id,
                                request_level_id = a.job_level_id,
                                current_employee_id = c.employee_id,
                                employee_email = c.employee_email,
                                employee_name = c.employee_name,
                                ip_address = c.ip_address
                            }).ToList <AssetMutationViewModel>();

                            if (_qry_ktt != null)
                            {
                                foreach (AssetMutationViewModel refApproval in _qry_ktt)
                                {
                                    tr_mutation_approval mutation_approval = new tr_mutation_approval();
                                    mutation_approval.request_id           = mutation_request.request_id;
                                    mutation_approval.approval_date        = null;
                                    mutation_approval.approval_location_id = /*refApproval.request_location_id*/ 0;
                                    mutation_approval.approval_dept_id     = refApproval.request_dept_id;
                                    mutation_approval.approval_employee_id = refApproval.request_emp_id;
                                    mutation_approval.approval_level_id    = refApproval.request_level_id;
                                    mutation_approval.approval_status_id   = 1;//waiting approval
                                    mutation_approval.approval_noted       = "";
                                    mutation_approval.fl_active            = true;
                                    mutation_approval.created_date         = DateTime.Now;
                                    mutation_approval.created_by           = UserProfile.UserId;
                                    mutation_approval.updated_date         = DateTime.Now;
                                    mutation_approval.updated_by           = UserProfile.UserId;
                                    mutation_approval.deleted_date         = null;
                                    mutation_approval.deteled_by           = null;
                                    mutation_approval.org_id = UserProfile.OrgId;
                                    mutation_approval        = db.tr_mutation_approval.Add(mutation_approval);
                                    db.SaveChanges();
                                }
                            }
                        }

                        decimal           asset_value   = Convert.ToDecimal(mutation_req.asset_original_value);
                        bool              isBODApproval = false;
                        ms_approval_range range         = db.ms_approval_range.Where(r => r.range_code == "M_BOD").FirstOrDefault();
                        if (range != null)
                        {
                            isBODApproval = (range.range_min <= asset_value);
                        }

                        if (isBODApproval)
                        {
                            //Approval BOD berdasarkan data ms_department >> employee_bod_id
                            ms_department dept = db.ms_department.Find(UserProfile.department_id);

                            if (dept != null)
                            {
                                tr_mutation_approval mutation_approval = new tr_mutation_approval();
                                mutation_approval.request_id           = mutation_request.request_id;
                                mutation_approval.approval_date        = null;
                                mutation_approval.approval_location_id = /*refApproval.request_location_id*/ 0;
                                mutation_approval.approval_dept_id     = dept.department_id;
                                mutation_approval.approval_employee_id = dept.employee_bod_id;
                                mutation_approval.approval_level_id    = 9;
                                mutation_approval.approval_status_id   = 1;//waiting approval
                                mutation_approval.approval_noted       = "";
                                mutation_approval.fl_active            = true;
                                mutation_approval.created_date         = DateTime.Now;
                                mutation_approval.created_by           = UserProfile.UserId;
                                mutation_approval.updated_date         = DateTime.Now;
                                mutation_approval.updated_by           = UserProfile.UserId;
                                mutation_approval.deleted_date         = null;
                                mutation_approval.deteled_by           = null;
                                mutation_approval.org_id = UserProfile.company_id;
                                mutation_approval        = db.tr_mutation_approval.Add(mutation_approval);
                                db.SaveChanges();
                            }
                        }

                        #region "kirim email ke approval level 1"
                        sy_email_log sy_email_log = new sy_email_log();
                        sy_email_log.elog_to       = _qry.FirstOrDefault().employee_email;
                        sy_email_log.elog_subject  = string.Format("Asset Mutation Need Approval");
                        sy_email_log.elog_template = "EMAIL_TEMPLATE_02";

                        #region "body mail"
                        var    _bodymail   = app_setting.APPLICATION_SETTING.Where(c => c.app_key.Contains("EMAIL_TEMPLATE_02"));
                        string strBodyMail = _bodymail.FirstOrDefault().app_value;
                        strBodyMail = strBodyMail.Replace("[to]", _qry.FirstOrDefault().employee_name);
                        strBodyMail = strBodyMail.Replace("[assetnumber]", mutation_req.asset_number);
                        strBodyMail = strBodyMail.Replace("[assetname]", mutation_req.asset_name);
                        strBodyMail = strBodyMail.Replace("[assetlocation]", mutation_req.location_name);
                        strBodyMail = strBodyMail.Replace("[department]", mutation_req.department_name);
                        strBodyMail = strBodyMail.Replace("[employee]", mutation_req.employee_name);
                        //strBodyMail = strBodyMail.Replace("[link]", "");
                        sy_email_log.elog_body = strBodyMail;
                        #endregion

                        var EmailHelper = new EmailHelper()
                        {
                            ToAddress      = sy_email_log.elog_to,
                            Email_Template = sy_email_log.elog_template,
                            MailSubject    = sy_email_log.elog_subject,
                            MailBody       = sy_email_log.elog_body
                        };
                        EmailHelper.Send();
                        #endregion

                        #region "Save Sy_Message_notification ke approval"
                        int     empid  = Convert.ToInt32(_qry.FirstOrDefault().current_employee_id);
                        ms_user msuser = (from m in db.ms_user
                                          where m.employee_id == empid
                                          select m).FirstOrDefault();

                        sy_message_notification msg = new sy_message_notification();
                        msg.notif_group    = "BALOON_RECEIPT_03";
                        msg.notify_user    = msuser.user_name;
                        msg.notify_ip      = _qry.FirstOrDefault().ip_address;
                        msg.notify_message = "Ada permintaan approval untuk asset mutasi.";
                        msg.fl_active      = true;
                        msg.created_date   = DateTime.Now;
                        msg.created_by     = UserProfile.UserId;
                        msg.fl_shown       = 0;

                        db.sy_message_notification.Add(msg);
                        db.SaveChanges();
                        #endregion

                        transaction.Commit();

                        ViewBag.ResultMessage = "Record inserted into table successfully.";
                        return(RedirectToAction("Index"));
                    }
                    catch (Exception ex)
                    {
                        // roll back all database operations, if any thing goes wrong
                        transaction.Rollback();
                        string msgErr = string.Format("Error occured, records rolledback. {0}", ex.Message);
                        if (ex.InnerException != null)
                        {
                            msgErr += string.Format(" Inner Exception: {0}", ex.InnerException.Message);
                        }
                        ModelState.AddModelError("", msgErr);
                    }
                }
            }

            #region "for dropdown Employee"
            //var _employeelist = from s in db.ms_disposal_type
            //                    select s;
            var _employeelist = db.ms_employee.Where(t => t.deleted_date == null && t.fl_active == true).Select(
                t => new
            {
                t.employee_id,
                t.employee_nik,
                t.employee_name
            }).ToList();
            SelectList itemsType = new SelectList(_employeelist, "employee_id", "employee_name");
            ViewBag.transfer_to_emp_id = itemsType;
            #endregion

            #region "for dropdown Department"
            var _departmentlist = db.ms_department.Where(t => t.deleted_date == null && t.fl_active == true).Select(
                t => new
            {
                t.department_id,
                t.department_code,
                t.department_name
            }).ToList();
            SelectList itemsType2 = new SelectList(_departmentlist, "department_id", "department_name");
            ViewBag.transfer_to_dept_id = itemsType2;
            #endregion

            #region "for dropdown Location"
            var _locationlist = db.ms_asset_location.Where(t => t.deleted_date == null && t.fl_active == true).Select(
                t => new
            {
                t.location_id,
                t.location_code,
                t.location_name
            }).ToList();
            SelectList itemsType3 = new SelectList(_locationlist, "location_id", "location_name");
            ViewBag.transfer_to_location_id = itemsType3;
            #endregion

            return(View(mutation_req));
        }
Example #8
0
        public ActionResult SubmitReceiveMutation([Bind(Include = "mutation_id, asset_id, request_id, fl_pic_asset_receive, courier_description, asset_number, asset_name, transfer_to_dept_id, transfer_to_emp_id, transfer_to_location_id")] AssetMutationViewModel mutation_rcv)
        {
            tr_mutation_process mut_process = db.tr_mutation_process.Find(mutation_rcv.mutation_id);

            //update disposal request and approval data with transaction
            if (mutation_rcv.fl_pic_asset_receive == null)
            {
                ModelState.AddModelError("fl_pic_asset_receive", "Confirmation of receive asset is mandatory.");
            }
            else if (string.IsNullOrEmpty(mutation_rcv.courier_description))
            {
                ModelState.AddModelError("courier_description", "Feedback is mandatory.");
            }

            if (ModelState.IsValid)
            {
                using (var transaction = db.Database.BeginTransaction())
                {
                    try
                    {
                        #region "Save update Mutation process"

                        if (mutation_rcv.fl_pic_asset_receive == null)
                        {
                            mut_process.fl_pic_asset_receive = false;
                        }
                        else if (mutation_rcv.fl_pic_asset_receive == true)
                        {
                            //ms_employee_detail ed = db.ms_employee_detail.Find(UserProfile.employee_id);
                            mut_process.fl_pic_asset_receive           = true;
                            mut_process.pic_asset_received_date        = DateTime.Now;
                            mut_process.courier_description            = mutation_rcv.courier_description;
                            mut_process.pic_asset_received_employee_id = UserProfile.employee_id;
                            //mut_process.pic_asset_level_id = UserProfile.
                            mut_process.user_asset_received_date        = DateTime.Now;
                            mut_process.user_asset_received_employee_id = mutation_rcv.transfer_to_emp_id;

                            tr_mutation_request   mr = db.tr_mutation_request.Find(mutation_rcv.request_id);
                            tr_asset_registration ar = db.tr_asset_registration.Find(mr.asset_id);

                            ar.current_department_id = mr.transfer_to_dept_id;
                            ar.current_employee_id   = mr.transfer_to_emp_id;
                            ar.current_location_id   = mr.transfer_to_location_id;

                            db.Entry(ar).State = EntityState.Modified;
                            db.SaveChanges();
                        }

                        mut_process.updated_date = DateTime.Now;
                        mut_process.updated_by   = UserProfile.UserId;
                        mut_process.deleted_date = null;
                        mut_process.deleted_by   = null;

                        db.Entry(mut_process).State = EntityState.Modified;
                        db.SaveChanges();
                        #endregion


                        #region "kirim email ke PIC Process Mutation"
                        //string emailsetting = string.Empty;
                        //string to_name = string.Empty;
                        //string freetext = string.Empty;

                        //ms_department depTransfer = db.ms_department.Find(mutation_rcv.transfer_to_dept_id);

                        //emailsetting = "EMAIL_TEMPLATE_03";
                        //to_name = "Department " + depTransfer.department_name;
                        //freetext = "PIC Asset Department telah mengirim <strong>" + mutation_rcv.asset_name + "(" + mutation_rcv.asset_number + ")</strong>.";

                        //var _emailto = app_setting.APPLICATION_SETTING.Where(c => c.app_key.Contains(emailsetting));

                        //sy_email_log sy_email_log = new sy_email_log();
                        //sy_email_log.elog_to = _emailto.FirstOrDefault().app_value;
                        //sy_email_log.elog_subject = string.Format("Asset Mutation Ready to Process");
                        //sy_email_log.elog_template = "EMAIL_TEMPLATE_03";

                        //#region "body mail"
                        //var _bodymail = app_setting.APPLICATION_SETTING.Where(c => c.app_key.Contains("EMAIL_TEMPLATE_03"));
                        //string strBodyMail = _bodymail.FirstOrDefault().app_value;
                        //strBodyMail = strBodyMail.Replace("[to]", to_name);
                        //strBodyMail = strBodyMail.Replace("[assetnumber]", mutation_rcv.asset_number);
                        //strBodyMail = strBodyMail.Replace("[aseetname]", mutation_rcv.asset_name);
                        //strBodyMail = strBodyMail.Replace("[assetlocation]", mutation_rcv.location_name);
                        //strBodyMail = strBodyMail.Replace("[department]", disposal_prs.department_name);
                        //strBodyMail = strBodyMail.Replace("[suggestion]", "Resale");
                        //strBodyMail = strBodyMail.Replace("[freetext]", freetext);
                        ////strBodyMail = strBodyMail.Replace("[link]", "");
                        //sy_email_log.elog_body = strBodyMail;
                        //#endregion

                        //var EmailHelper = new EmailHelper()
                        //{
                        //    ToAddress = sy_email_log.elog_to,
                        //    Email_Template = sy_email_log.elog_template,
                        //    MailSubject = sy_email_log.elog_subject,
                        //    MailBody = sy_email_log.elog_body
                        //};
                        //EmailHelper.Send();
                        #endregion

                        transaction.Commit();
                        ViewBag.ResultMessage = "Update table successfully.";
                        return(RedirectToAction("Index"));
                    }
                    catch (Exception)
                    {
                        // roll back all database operations, if any thing goes wrong
                        transaction.Rollback();
                        ViewBag.ResultMessage = "Error occured, records rolledback.";
                    }
                }
            }
            mutation_rcv = DataMutationView(mutation_rcv.request_id, mutation_rcv);
            return(View(mutation_rcv));
        }