예제 #1
0
        public SPKHeaderModel Detail(int SPKId)
        {
            SPKHeaderModel _spk = new SPKHeaderModel();

            using (TDMDBEntities context = new TDMDBEntities())
            {
                var _qrySPK = context.tb_spkHdr.Find(SPKId);
                if (_qrySPK != null)
                {
                    imap = config.CreateMapper();
                    _spk = imap.Map <tb_spkHdr, SPKHeaderModel>(_qrySPK);

                    //  var _qryEquipment = context.tb_KetTambahan.Where(x => x.SPKId == SPKId).FirstOrDefault();
                    var _qryAdditional = context.tb_PerlTambahan.Where(x => x.SPKId == SPKId);
                    var _qryAttachment = context.tb_Attachment.Where(x => x.DocId == SPKId);
                    //if (_qryEquipment!=null)
                    //{
                    //    _spk.spkequipment = new SPKEquipmentModel();
                    //    _spk.spkequipment.Id = _qryEquipment.Id;
                    //    _spk.spkequipment.SPKId = _qryEquipment.SPKId;
                    //    _spk.spkequipment.IsKaroseri = _qryEquipment.IsKaroseri;
                    //    _spk.spkequipment.Karoseri = _qryEquipment.Karoseri;
                    //    _spk.spkequipment.IsOnTheRoad = _qryEquipment.IsOnTheRoad;
                    //    _spk.spkequipment.IsOffTheRoad = _qryEquipment.IsOffTheRoad;
                    //    _spk.spkequipment.IsChooseNo = _qryEquipment.IsChooseNo;
                    //    _spk.spkequipment.PlatNo = _qryEquipment.PlatNo;
                    //}
                    _spk.lsadditional = new List <SPKAdditionalModel>();
                    foreach (var item in _qryAdditional)
                    {
                        _spk.lsadditional.Add(new SPKAdditionalModel
                        {
                            Id = item.Id
                            ,
                            SPKId = item.SPKId
                            ,
                            No = (int)item.No
                            ,
                            Additional = item.AdditionalItem
                        });
                    }
                    _spk.lsspkattachment = new List <SPKAttachmentModel>();
                    foreach (var att in _qryAttachment)
                    {
                        _spk.lsspkattachment.Add(new SPKAttachmentModel
                        {
                            Id             = (Int32)att.Id,
                            DocId          = att.DocId,
                            AttachmentName = att.AttachmentName,
                            DocType        = (int)att.DocType
                        });
                    }
                }
            }
            return(_spk);
        }
예제 #2
0
        public int Insert(SPKHeaderModel hdr, List <SPKAdditionalModel> lsAdditional, SPKEquipmentModel misc, List <SPKAttachmentModel> attchs, int docType, out string errMsg)
        {
            errMsg = string.Empty;
            imap   = config.CreateMapper();
            int _spkId = 0;

            tb_spkHdr       hdrEnt        = new tb_spkHdr();
            tb_KetTambahan  miscEnt       = new tb_KetTambahan();
            tb_PerlTambahan additionalEnt = new tb_PerlTambahan();

            using (TDMDBEntities context = new TDMDBEntities())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        imap   = config.CreateMapper();
                        hdrEnt = imap.Map <SPKHeaderModel, tb_spkHdr>(hdr);
                        context.tb_spkHdr.Add(hdrEnt);
                        result_affected = context.SaveChanges();
                        _spkId          = hdrEnt.Id;

                        foreach (var item in lsAdditional)
                        {
                            additionalEnt.No             = item.No;
                            additionalEnt.SPKId          = _spkId;
                            additionalEnt.AdditionalItem = item.Additional;
                            context.tb_PerlTambahan.Add(additionalEnt);
                            result_affected += context.SaveChanges();
                        }

                        //miscEnt = imap.Map<SPKEquipmentModel, tb_KetTambahan>(misc);
                        //miscEnt.SPKId = _spkId;
                        //context.tb_KetTambahan.Add(miscEnt);
                        //result_affected += context.SaveChanges();

                        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          = _spkId;
                            attchEnt.CreatedBy      = "SYSTEM";
                            attchEnt.CreatedDate    = DateTime.Now;
                            context.tb_Attachment.Add(attchEnt);
                            result_affected += context.SaveChanges();
                        }

                        //insert to worklist
                        tb_Worklist _entWorklist = new tb_Worklist();
                        _entWorklist.DocId        = _spkId;
                        _entWorklist.DocType      = docType;
                        _entWorklist.Status       = MyEnums.workflowStatus.PENDING.ToString();
                        _entWorklist.StartDate    = DateTime.Now;
                        _entWorklist.CurrLevel    = 0;
                        _entWorklist.NextApprover = Convert.ToInt32(new WorkflowSettingBLL().GetNextActorId(docType, _entWorklist.CurrLevel + 1));
                        _entWorklist.CreatedBy    = hdr.CreatedBy;
                        _entWorklist.CreatedDate  = DateTime.Now;
                        context.tb_Worklist.Add(_entWorklist);
                        result_affected += context.SaveChanges();
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        errMsg = ex.Message;
                    }
                }
            }

            return(_spkId);
        }
예제 #3
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);
        }
예제 #4
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));
        }
예제 #5
0
        public JsonResult Detail(string id)
        {
            SPKHeaderModel _spkModel = new SPKHeaderModel();

            _spkModel = new SPKBll().Detail(Convert.ToInt32(id));
            return(Json(new
            {
                Id = _spkModel.Id
                ,
                SPKDate = _spkModel.SPKDate.ToString("yyyy-MM-dd")
                ,
                JanjiSerah = _spkModel.JanjiPenyerahan.ToString("yyyy-MM-dd")
                ,
                LOTNo = _spkModel.LOTNo
                ,
                Buyer = _spkModel.Buyer
                ,
                BuyerAddress = _spkModel.BuyerAddress
                ,
                KTP = _spkModel.KTP
                ,
                Phone = _spkModel.Phone
                ,
                STNKName = _spkModel.STNKName
                ,
                STNKAddress = _spkModel.STNKAddress
                ,
                Email = _spkModel.Email
                ,
                Branch = _spkModel.Branch
                ,
                Merk = _spkModel.Merk
                ,
                Warna = _spkModel.Warna
                ,
                Karoseri = _spkModel.Karoseri
                ,
                MachineNo = _spkModel.MachineNo
                ,
                RangkaNo = _spkModel.RangkaNo
                ,
                Pembiayaan = _spkModel.Pembiayaan
                ,
                Via = _spkModel.Via
                ,
                PercentageBunga = _spkModel.PercentageBunga
                ,
                OTRPrice = _spkModel.OTRPrice
                ,
                KaroseriPrice = _spkModel.KaroseriPrice
                ,
                Year = _spkModel.Year
                ,
                TotalPrice = _spkModel.TotalPrice
                ,
                DP = _spkModel.DP
                ,
                TandaJadi = _spkModel.TandaJadi
                ,
                Pembayaran = _spkModel.Pembayaran
                ,
                TransferVia = _spkModel.TransferVia
                ,
                AlamatKirim = _spkModel.AlamatKirim
                ,
                City = _spkModel.City
                ,
                IsKaroseri = _spkModel.IsKaroseri
                ,
                KaroseriDesc = _spkModel.KaroseriDesc
                ,
                IsOnTR = _spkModel.IsOnTR
                ,
                IsOffTR = _spkModel.IsOffTR
                ,
                IsChooseNo = _spkModel.IsChooseNo
                ,
                PlatNo = _spkModel.ChooseNo
                ,
                Additional = _spkModel.lsadditional
                ,
                Attachment = _spkModel.lsspkattachment
            }, JsonRequestBehavior.AllowGet));
        }