Example #1
0
        public int Update(SPKHeaderModel hdr, List <SPKAdditionalModel> lsAdditional, SPKEquipmentModel misc, List <SPKAttachmentModel> attchs, int docType, WorklistModel wrkl, out string errMsg)
        {
            errMsg          = string.Empty;
            imap            = config.CreateMapper();
            result_affected = 0;
            tb_spkHdr           hdrEnt          = new tb_spkHdr();
            tb_KetTambahan      miscEnt         = new tb_KetTambahan();
            tb_PerlTambahan     additionalEnt   = new tb_PerlTambahan();
            tb_Worklist_Archive worklistArchive = new tb_Worklist_Archive();

            using (TDMDBEntities context = new TDMDBEntities())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        var update = context.tb_spkHdr.SingleOrDefault(x => x.Id == hdr.Id);
                        if (update != null)
                        {
                            update.SPKDate         = hdr.SPKDate;
                            update.JanjiPenyerahan = hdr.JanjiPenyerahan;
                            update.LOTNo           = hdr.LOTNo;
                            update.Buyer           = hdr.Buyer;
                            update.BuyerAddress    = hdr.BuyerAddress;
                            update.KTP             = hdr.KTP;
                            update.Phone           = hdr.Phone;
                            update.STNKName        = hdr.STNKName;
                            update.STNKAddress     = hdr.STNKAddress;
                            update.Email           = hdr.Email;
                            update.Branch          = hdr.Branch;
                            update.Merk            = hdr.Merk;
                            update.Warna           = hdr.Warna;
                            update.Karoseri        = hdr.Karoseri;
                            update.MachineNo       = hdr.MachineNo;
                            update.RangkaNo        = hdr.RangkaNo;
                            update.Pembiayaan      = hdr.Pembiayaan;
                            update.Year            = hdr.Year;
                            update.Via             = hdr.Via;
                            update.PercentageBunga = hdr.PercentageBunga;
                            update.OTRPrice        = hdr.OTRPrice;
                            update.KaroseriPrice   = hdr.KaroseriPrice;
                            update.TotalPrice      = hdr.TotalPrice;
                            update.DP           = hdr.DP;
                            update.TandaJadi    = hdr.TandaJadi;
                            update.Pembayaran   = hdr.Pembayaran;
                            update.TransferVia  = hdr.TransferVia;
                            update.AlamatKirim  = hdr.AlamatKirim;
                            update.City         = hdr.City;
                            update.IsKaroseri   = hdr.IsKaroseri;
                            update.KaroseriDesc = hdr.KaroseriDesc;
                            update.IsOnTR       = hdr.IsOnTR;
                            update.IsOffTR      = hdr.IsOffTR;
                            update.IsChooseNo   = hdr.IsChooseNo;
                            update.ChooseNo     = hdr.ChooseNo;
                            update.ModifiedBy   = hdr.ModifiedBy;
                            update.ModifiedDate = DateTime.Now;
                            result_affected     = context.SaveChanges();

                            #region ::ADDITIONAL ITEMS::
                            //remove additional items
                            var _qryAdditional = context.tb_PerlTambahan.Where(x => x.SPKId == hdr.Id);
                            context.tb_PerlTambahan.RemoveRange(_qryAdditional);
                            context.SaveChanges();

                            //add additional items
                            foreach (var item in lsAdditional)
                            {
                                additionalEnt.No             = item.No;
                                additionalEnt.SPKId          = hdr.Id;
                                additionalEnt.AdditionalItem = item.Additional;
                                context.tb_PerlTambahan.Add(additionalEnt);
                                result_affected += context.SaveChanges();
                            }
                            #endregion

                            #region ::ATTACHMENTS::

                            foreach (var item in attchs)
                            {
                                tb_Attachment attchEnt = new tb_Attachment();
                                attchEnt.Attachment     = item.Attachment;
                                attchEnt.AttachmentName = item.AttachmentName;
                                attchEnt.DocType        = item.DocType;
                                attchEnt.DocId          = hdr.Id;
                                attchEnt.CreatedBy      = "SYSTEM";
                                attchEnt.CreatedDate    = DateTime.Now;
                                context.tb_Attachment.Add(attchEnt);
                                result_affected += context.SaveChanges();
                            }
                            #endregion

                            #region ::WORKFLOW APPROVAL::
                            var _updWorklist = context.tb_Worklist.SingleOrDefault(x => x.DocId == hdr.Id && x.DocType == docType);
                            if (wrkl.Actioner.ToLower() == MyEnums.actionStatus.APPROVE.ToString().ToLower() || wrkl.Actioner.ToLower() == MyEnums.actionStatus.ACKNOWLEDGE.ToString().ToLower())
                            {
                                if (_updWorklist != null)
                                {
                                    worklistArchive              = imap.Map <tb_Worklist, tb_Worklist_Archive>(_updWorklist);
                                    worklistArchive.RespondDate  = DateTime.Now;
                                    worklistArchive.Actioner     = wrkl.Actioner;
                                    worklistArchive.LastActor    = wrkl.Actor;
                                    worklistArchive.CreatedBy    = _updWorklist.CreatedBy;
                                    worklistArchive.CreatedDate  = _updWorklist.CreatedDate;
                                    worklistArchive.ModifiedBy   = hdr.CreatedBy;
                                    worklistArchive.ModifiedDate = DateTime.Now;
                                    worklistArchive.LastLevel    = _updWorklist.CurrLevel + 1;
                                    worklistArchive.IsCompleted  = new WorkflowSettingBLL().CheckIsWorkflowCompleted(docType, (int)worklistArchive.LastLevel);
                                    if (worklistArchive.IsCompleted)
                                    {
                                        worklistArchive.Status = MyEnums.workflowStatus.COMPLETED.ToString();
                                    }
                                    context.tb_Worklist_Archive.Add(worklistArchive);
                                    context.SaveChanges();
                                    if (!worklistArchive.IsCompleted)
                                    {
                                        //update status worklist
                                        _updWorklist.CurrLevel    = _updWorklist.CurrLevel + 1;
                                        _updWorklist.ModifiedBy   = hdr.ModifiedBy;
                                        _updWorklist.ModifiedDate = DateTime.Now;
                                        _updWorklist.NextApprover = Convert.ToInt32(new WorkflowSettingBLL().GetNextActorId(docType, _updWorklist.CurrLevel + 1));
                                        result_affected          += context.SaveChanges();
                                    }
                                    else
                                    {
                                        var removeDocId = context.tb_Worklist.Where(x => x.DocId == hdr.Id);
                                        context.tb_Worklist.RemoveRange(removeDocId);
                                        result_affected += context.SaveChanges();
                                    }
                                }
                            }
                            else if (wrkl.Actioner.ToLower() == MyEnums.actionStatus.REJECT.ToString().ToLower())
                            {
                                worklistArchive              = imap.Map <tb_Worklist, tb_Worklist_Archive>(_updWorklist);
                                worklistArchive.RespondDate  = DateTime.Now;
                                worklistArchive.Actioner     = wrkl.Actioner;
                                worklistArchive.LastActor    = wrkl.Actor;
                                worklistArchive.CreatedBy    = _updWorklist.CreatedBy;
                                worklistArchive.CreatedDate  = _updWorklist.CreatedDate;
                                worklistArchive.ModifiedBy   = hdr.CreatedBy;
                                worklistArchive.ModifiedDate = DateTime.Now;
                                worklistArchive.LastLevel    = _updWorklist.CurrLevel + 1;
                                worklistArchive.IsCompleted  = true;
                                context.tb_Worklist_Archive.Add(worklistArchive);
                                context.SaveChanges();

                                var removeDocId = context.tb_Worklist.Where(x => x.DocId == hdr.Id);
                                context.tb_Worklist.RemoveRange(removeDocId);
                                context.SaveChanges();
                            }
                            #endregion

                            transaction.Commit();
                        }
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        errMsg = ex.Message == null ? ex.InnerException.Message : ex.Message;
                    }
                }
            }
            return(result_affected);
        }
Example #2
0
        public JsonResult UpdateSPK()
        {
            string _status = MyEnums.enumStatus.SUCCESS.ToString();
            string _retId  = "0";
            string _errMsg = string.Empty;
            List <SPKAttachmentModel> _lsAttachment = new List <SPKAttachmentModel>();
            List <SPKAdditionalModel> _lsAdditional = new List <SPKAdditionalModel>();
            SPKHeaderModel            _spk          = new SPKHeaderModel();
            SPKEquipmentModel         _misc         = new SPKEquipmentModel();

            if (Session["UserLogon"] != null)
            {
                _spk.Id              = Int32.Parse(Request.Form["SPKID"].ToString());
                _spk.SPKDate         = DateTime.Parse(Request.Form["TglSPK"].ToString());
                _spk.JanjiPenyerahan = DateTime.Parse(Request.Form["JanjiSerah"].ToString());
                _spk.Branch          = Request.Form["Branch"].ToString();
                _spk.LOTNo           = Request.Form["Lot"].ToString();
                _spk.Buyer           = Request.Form["BuyerName"].ToString();
                _spk.BuyerAddress    = Request.Form["BuyerAddress"].ToString();
                _spk.KTP             = Request.Form["KTP"].ToString();
                _spk.Phone           = Request.Form["Phone"].ToString();
                _spk.STNKName        = Request.Form["STNKName"].ToString();
                _spk.STNKAddress     = Request.Form["AlamatSTNK"].ToString();
                _spk.Email           = Request.Form["Email"].ToString();
                _spk.Merk            = Request.Form["Merk"].ToString();
                _spk.Warna           = Request.Form["Warna"].ToString();
                _spk.Year            = Request.Form["Tahun"] == "" ? DateTime.Now.Year : int.Parse(Request.Form["Tahun"].ToString());
                _spk.Karoseri        = Request.Form["Karoseri"].ToString();
                _spk.MachineNo       = Request.Form["MachineNo"].ToString();
                _spk.RangkaNo        = Request.Form["RangkaNo"].ToString();
                _spk.Pembiayaan      = Request.Form["Pembiayaan"].ToString();
                _spk.Via             = Request.Form["Via"].ToString();
                _spk.PercentageBunga = float.Parse(Request.Form["Bunga"].ToString());
                _spk.OTRPrice        = float.Parse(Request.Form["HargaOnTheRoad"].ToString());
                _spk.KaroseriPrice   = float.Parse(Request.Form["HargaKaroseri"].ToString());
                _spk.TotalPrice      = float.Parse(Request.Form["Total"].ToString());
                _spk.DP              = float.Parse(Request.Form["DP"].ToString());
                _spk.TandaJadi       = Request.Form["TandaJadi"].ToString();
                _spk.Pembayaran      = Request.Form["Pembayaran"].ToString();
                _spk.TransferVia     = Request.Form["TransferVia"].ToString();
                _spk.AlamatKirim     = Request.Form["AlamatKirim"].ToString();
                _spk.City            = int.Parse(Request.Form["City"].ToString());
                _spk.CreatedDate     = DateTime.Now;
                _spk.CreatedBy       = Utilities.GetUserNameLogon((UserAppsModel)Session["UserLogon"]);
                if (Request.Form["IsKaroseri"].ToString() == "true")
                {
                    _spk.IsKaroseri = true;
                }
                else
                {
                    _spk.IsKaroseri = false;
                }

                if (Request.Form["IsOntheRoad"].ToString() == "true")
                {
                    _spk.IsOnTR = true;
                }
                else
                {
                    _spk.IsOnTR = false;
                }

                if (Request.Form["IsOffTheRoad"].ToString() == "true")
                {
                    _spk.IsOffTR = true;
                }
                else
                {
                    _spk.IsOffTR = false;
                }

                if (Request.Form["IsNoPilihan"].ToString() == "true")
                {
                    _spk.IsChooseNo = true;
                }
                else
                {
                    _spk.IsChooseNo = false;
                }

                _spk.KaroseriDesc = Request.Form["KaroseriDesc"].ToString();
                _spk.ChooseNo     = Request.Form["NoPilihan"].ToString();

                _lsAdditional = JsonConvert.DeserializeObject <List <SPKAdditionalModel> >(Request.Form["Additional"]);

                foreach (string file in Request.Files)
                {
                    var fileContent = Request.Files[file];
                    if (fileContent != null && fileContent.ContentLength > 0)
                    {
                        // get a stream
                        var stream   = fileContent.InputStream;
                        var fileName = Path.GetFileName(fileContent.FileName);
                        var reader   = new System.IO.BinaryReader(stream);
                        var Content  = reader.ReadBytes(fileContent.ContentLength);

                        _lsAttachment.Add(new SPKAttachmentModel
                        {
                            DocType        = new MasterBLL().FindByValue("SPK", MyEnums.enumMaster.DocumentType.ToString()),
                            AttachmentName = fileName,
                            Attachment     = Content,
                        });
                    }
                }

                int           _idocType = new MasterBLL().FindByValue("SPK", MyEnums.enumMaster.DocumentType.ToString());
                WorklistModel wrkls     = new WorklistModel();
                wrkls.Actioner = Request.Form["Action"].ToString();
                wrkls.Actor    = Utilities.GetEmployeeID((UserAppsModel)Session["UserLogon"]);
                int result = new SPKBll().Update(_spk, _lsAdditional, _misc, _lsAttachment, _idocType, wrkls, out _errMsg);
                if (_errMsg != string.Empty)
                {
                    _status = MyEnums.enumStatus.ERROR.ToString();
                }
            }
            else
            {
                _status = MyEnums.enumStatus.ERROR.ToString();
                _errMsg = "Your session Expired";
            }
            return(Json(new { Status = _status, RetId = _retId, ErrMsg = _errMsg }, JsonRequestBehavior.AllowGet));
        }