private void SaveREJ() { using (var ctx = new EF6.RT2020Entities()) { using (var scope = ctx.Database.BeginTransaction()) { try { var oHeader = ctx.InvtBatchCAP_Header.Find(this.REJId); if (oHeader == null) { #region add new InvtBatchCAP_Header oHeader = new EF6.InvtBatchCAP_Header(); oHeader.HeaderId = Guid.NewGuid(); txtTxNumber.Text = SystemInfoHelper.Settings.QueuingTxNumber(EnumHelper.TxType.REJ); oHeader.TxNumber = txtTxNumber.Text; oHeader.TxType = EnumHelper.TxType.REJ.ToString(); oHeader.CreatedBy = ConfigHelper.CurrentUserId; oHeader.CreatedOn = DateTime.Now; ctx.InvtBatchCAP_Header.Add(oHeader); #endregion } #region InvtBatchCAP_Header core data oHeader.TxDate = dtpRecvDate.Value; oHeader.Status = Convert.ToInt32(cboStatus.Text == "HOLD" ? EnumHelper.Status.Draft.ToString("d") : EnumHelper.Status.Active.ToString("d")); oHeader.WorkplaceId = new Guid(cboWorkplace.SelectedValue.ToString()); oHeader.StaffId = new Guid(cboOperatorCode.SelectedValue.ToString()); oHeader.SupplierId = new Guid(cboSupplierList.SelectedValue.ToString()); oHeader.SupplierRefernce = txtSupplierInvoice.Text; oHeader.Remarks = txtRemarks.Text; oHeader.Reference = txtRefNumber.Text; oHeader.LinkToAP = chkAPLink.Checked; oHeader.ModifiedBy = ConfigHelper.CurrentUserId; oHeader.ModifiedOn = DateTime.Now; #endregion decimal totlaAmount = 0; decimal.TryParse(txtTotalAmount.Text, out totlaAmount); oHeader.TotalAmount = totlaAmount; ctx.SaveChanges(); #region log activity RT2020.Controls.Log4net.LogInfo( ctx.Entry(oHeader).State == System.Data.Entity.EntityState.Added ? RT2020.Controls.Log4net.LogAction.Create : RT2020.Controls.Log4net.LogAction.Update, oHeader.ToString()); #endregion this.REJId = oHeader.HeaderId; #region SaveREJDetail(); foreach (ListViewItem listItem in lvDetailsList.Items) { Guid detailId = Guid.Empty, productId = Guid.Empty; if (Guid.TryParse(listItem.Text.Trim(), out detailId) && Guid.TryParse(listItem.SubItems[11].Text.Trim(), out productId)) { //System.Guid detailId = new Guid(listItem.Text.Trim()); var oDetail = ctx.InvtBatchCAP_Details.Find(detailId); if (oDetail == null) { oDetail = new EF6.InvtBatchCAP_Details(); oDetail.DetailsId = Guid.NewGuid(); oDetail.HeaderId = this.REJId; oDetail.TxNumber = txtTxNumber.Text; oDetail.TxType = txtTxType.Text; oDetail.LineNumber = Convert.ToInt32(listItem.SubItems[1].Text.Length == 0 ? "1" : listItem.SubItems[1].Text); ctx.InvtBatchCAP_Details.Add(oDetail); } oDetail.ProductId = productId; // new Guid(listItem.SubItems[11].Text.Trim()); oDetail.Qty = Convert.ToDecimal(listItem.SubItems[8].Text.Length == 0 ? "0" : listItem.SubItems[8].Text); oDetail.UnitAmount = Convert.ToDecimal(listItem.SubItems[9].Text.Length == 0 ? "0" : listItem.SubItems[9].Text); oDetail.UnitAmountInForeignCurrency = Convert.ToDecimal(listItem.SubItems[9].Text.Length == 0 ? "0" : listItem.SubItems[9].Text); if (listItem.SubItems[2].Text.Trim().ToUpper() == "REMOVED" && detailId != System.Guid.Empty) { ctx.InvtBatchCAP_Details.Remove(oDetail); } ctx.SaveChanges(); } } #endregion #region UpdateHeaderInfo(); HACK: 點解喺呢度先 update Total Amount? 我將佢搬咗上去 //oHeader.TotalAmount = Convert.ToDecimal(Common.Utility.IsNumeric(txtTotalAmount.Text) ? txtTotalAmount.Text : "0"); //ctx.SaveChanges(); // log activity (Update) //RT2020.Controls.Log4net.LogInfo(RT2020.Controls.Log4net.LogAction.Update, oHeader.ToString()); #endregion scope.Commit(); } catch (Exception ex) { scope.Rollback(); } } } }
public bool SaveGeneralData() { var result = false; try { using (var ctx = new EF6.RT2020Entities()) { #region save core data var staff = ctx.Staff.Find(_StaffId); if (staff == null) { #region add new dbo.Staff staff = new EF6.Staff(); staff.StaffId = Guid.NewGuid(); staff.StaffNumber = _StaffNumber; staff.CreatedOn = DateTime.Now; staff.CreatedBy = ConfigHelper.CurrentUserId; staff.Status = Convert.ToInt32(EnumHelper.Status.Active.ToString("d")); ctx.Staff.Add(staff); _StaffId = staff.StaffId; #endregion } else { staff.Status = Convert.ToInt32(EnumHelper.Status.Modified.ToString("d")); } staff.StaffCode = txtInitial.Text.Trim(); staff.FirstName = txtFirstName.Text.Trim(); staff.LastName = txtLastName.Text.Trim(); staff.FullName = txtName.Text.Trim(); staff.FullName_Chs = txtNameChs.Text.Trim(); staff.FullName_Cht = txtNameCht.Text.Trim(); staff.Password = txtPassword.Text.Trim(); if ((Guid)cboDeptCode.SelectedValue != Guid.Empty) { staff.DeptId = (Guid)cboDeptCode.SelectedValue; } if ((Guid)cboPosition.SelectedValue != Guid.Empty) { staff.JobTitleId = (Guid)cboPosition.SelectedValue; } if ((Guid)cmbStaffGrade.SelectedValue != Guid.Empty) { staff.GroupId = (Guid)cmbStaffGrade.SelectedValue; } staff.DownloadToCounter = true; staff.DownloadToPOS = true; staff.ModifiedOn = DateTime.Now; staff.ModifiedBy = ConfigHelper.CurrentUserId; ctx.SaveChanges(); // 2013.11.27 paulus: 要同時更新 UserProfile 的資料,否則 login 時就沒有這個 Staff 的資料 RT2020.Controls.UserProfile.SaveRec(staff.StaffId, (int)EnumHelper.UserType.Staff, staff.StaffNumber, staff.Password, staff.StaffCode); #region log activity (Update) RT2020.Controls.Log4net.LogInfo(ctx.Entry(staff).State == EntityState.Added ? RT2020.Controls.Log4net.LogAction.Create : RT2020.Controls.Log4net.LogAction.Update, staff.ToString()); #endregion #endregion #region save staff HR var hr = ctx.StaffHR.Where(x => x.StaffId == _StaffId).FirstOrDefault(); if (hr == null) { #region add new dbo.StaffHR hr = new EF6.StaffHR(); hr.HRId = Guid.NewGuid(); hr.StaffId = _StaffId; ctx.StaffHR.Add(hr); #endregion } hr.HiredOn = datHiredOn.Value; hr.EmploymentNumber = txtEmploymen.Text.Trim(); hr.MedicalNumber = txtMedical.Text.Trim(); hr.TC_PunchEnable_InOut = chkPunch.Checked; hr.TC_AdminEnable = chkAdministration.Checked; ctx.SaveChanges(); #endregion } #region SaveSmartTagValues foreach (Control Ctrl in Controls) { if (Ctrl.Name.Contains("SmartTag") && !Ctrl.Name.StartsWith("lbl")) { StaffSmartTagEx.SaveSmartTagValue(_StaffId, Ctrl); } } #endregion result = true; } catch (Exception ex) { result = false; } return(result); }
private bool DoPromote() { bool result = false; using (var ctx = new EF6.RT2020Entities()) { using (var scope = ctx.Database.BeginTransaction()) { try { foreach (var item in dsMemberList) { var id = Guid.Empty; #region Save Member Core Data var member = ctx.Member.Where(x => x.MemberNumber == item.VIPNO).FirstOrDefault(); if (member == null) { #region add new Member member = new EF6.Member(); member.MemberId = Guid.NewGuid(); member.MemberNumber = item.VIPNO; member.Status = (int)EnumHelper.Status.Active; member.CreatedBy = ConfigHelper.CurrentUserId; member.CreatedOn = DateTime.Now; member.Retired = false; ctx.Member.Add(member); #endregion } #region Check the temp vip DLFLAG if (item.DLFLAG.Trim().Length > 0) { switch (item.DLFLAG.Trim().ToUpper()) { case "A": case "": default: member.Status = (int)EnumHelper.Status.Active; break; case "M": member.Status = (int)EnumHelper.Status.Modified; break; case "D": member.Status = (int)EnumHelper.Status.Deleted; break; case "I": member.Status = (int)EnumHelper.Status.Inactive; break; } } else { member.Status = ctx.Entry(member).State == EntityState.Added ? (int)EnumHelper.Status.Active : (int)EnumHelper.Status.Modified; } #endregion #region Option 2. Migrate Temporary VIP to Permanent VIP With Delete //if (canDelete) //{ // member.Status = (int)EnumHelper.Status.Deleted; //} #endregion #region update Member core data member.WorkplaceId = Guid.Empty; member.ClassId = MemberHelper.GetClassId(item.PHONEBOOK); //Class member.GroupId = MemberHelper.GetGroupId(item.GROUP); member.MemberInitial = item.NNAME; // Nick Name member.SalutationId = MemberHelper.GetSaluteId(item.SALUTE); member.FirstName = item.FNAME; // First Name member.LastName = item.LNAME; // Last Name member.FullName = item.FNAME + "," + item.LNAME; // Full Name member.FullName_Chs = item.CNAME; // Chinese Name (S) member.FullName_Cht = item.CNAME; // Chinese Name (T) member.JobTitleId = JobTitleEx.GetJobTitleIdByName(item.TITLE); member.AssignedTo = Guid.Empty; member.Remarks = item.REMARKS; member.NormalDiscount = (decimal)item.NRDISC; member.DownloadToPOS = true; member.ModifiedBy = ConfigHelper.CurrentUserId; member.ModifiedOn = DateTime.Now; if (member.Status == (int)EnumHelper.Status.Deleted || member.Status == (int)EnumHelper.Status.Inactive) { member.Retired = false; member.RetiredBy = Guid.Empty; member.RetiredOn = new DateTime(1900, 1, 1); } #endregion ctx.SaveChanges(); id = member.MemberId; #endregion #region SaveMemberAddresses(memberId, item); #region English Address var enAddressTypeId = MemberAddressTypeEx.GetIdByCode("ADDR_EN"); string enAddress = item.ADDRESS1 + Environment.NewLine + item.ADDRESS2 + Environment.NewLine + item.ADDRESS3 + Environment.NewLine + item.ADDRESS4; var addressEn = ctx.MemberAddress.Where(x => x.MemberId == id && x.AddressTypeId == enAddressTypeId).FirstOrDefault(); if (addressEn == null) { addressEn = new EF6.MemberAddress(); addressEn.AddressId = Guid.NewGuid(); addressEn.AddressTypeId = enAddressTypeId; addressEn.MemberId = id; ctx.MemberAddress.Add(addressEn); } addressEn.Address = enAddress; addressEn.PostalCode = string.Empty; addressEn.CountryId = Guid.Empty; addressEn.ProvinceId = Guid.Empty; addressEn.CityId = Guid.Empty; addressEn.District = string.Empty; addressEn.Mailing = false; addressEn.PhoneTag1 = PhoneTagEx.GetPhoneTagIdByPriority(1); addressEn.PhoneTag1Value = item.TELW; addressEn.PhoneTag2 = PhoneTagEx.GetPhoneTagIdByPriority(2); addressEn.PhoneTag2Value = item.TELH; addressEn.PhoneTag3 = PhoneTagEx.GetPhoneTagIdByPriority(3); addressEn.PhoneTag3Value = item.FAX; addressEn.PhoneTag4 = PhoneTagEx.GetPhoneTagIdByPriority(4); addressEn.PhoneTag4Value = item.TELOTHER; addressEn.PhoneTag5 = PhoneTagEx.GetPhoneTagIdByPriority(5); addressEn.PhoneTag5Value = item.TELP; ctx.SaveChanges(); #endregion #region Chinese Address var cnAddressTypeId = MemberAddressTypeEx.GetIdByCode("ADDR_CN"); string cnAddress = item.ADDRESS1C + Environment.NewLine + item.ADDRESS2C + Environment.NewLine + item.ADDRESS3C + Environment.NewLine + item.ADDRESS4C; var addressCn = ctx.MemberAddress.Where(x => x.MemberId == id && x.AddressTypeId == cnAddressTypeId).FirstOrDefault(); if (addressCn == null) { addressCn = new EF6.MemberAddress(); addressCn.AddressId = Guid.NewGuid(); addressCn.AddressTypeId = cnAddressTypeId; addressCn.MemberId = id; ctx.MemberAddress.Add(addressCn); } addressCn.Address = cnAddress; addressCn.PostalCode = string.Empty; addressCn.CountryId = Guid.Empty; addressCn.ProvinceId = Guid.Empty; addressCn.CityId = Guid.Empty; addressCn.District = string.Empty; addressCn.Mailing = false; addressCn.PhoneTag1 = PhoneTagEx.GetPhoneTagIdByPriority(1); addressCn.PhoneTag1Value = item.TELW; addressCn.PhoneTag2 = PhoneTagEx.GetPhoneTagIdByPriority(2); addressCn.PhoneTag2Value = item.TELH; addressCn.PhoneTag3 = PhoneTagEx.GetPhoneTagIdByPriority(3); addressCn.PhoneTag3Value = item.FAX; addressCn.PhoneTag4 = PhoneTagEx.GetPhoneTagIdByPriority(4); addressCn.PhoneTag4Value = item.TELOTHER; addressCn.PhoneTag5 = PhoneTagEx.GetPhoneTagIdByPriority(5); addressCn.PhoneTag5Value = item.TELP; ctx.SaveChanges(); #endregion #endregion #region SaveMemberSmartTags(memberId, item); HACK: 呢部份係 hard coded,如果 dbo.SmartTag4Member 唔一樣就會出事 #region 1.Grade //SaveMemberSmartTag(memberId, GetSmartTagId("Grade", 1), objTempVip.GRADE); // 2021.01.28 paulus: 由 GetIdByTagCodeAndPriority 改為 GetIdByPriority,咁樣日後個 TagCode 改咗都照 update 倒 var tagId = SmartTag4MemberEx.GetIdByPriority(1); if (tagId != Guid.Empty) { var oTag1 = ctx.MemberSmartTag.Where(x => x.MemberId == id && x.TagId == tagId).FirstOrDefault(); if (oTag1 == null) { oTag1 = new EF6.MemberSmartTag(); oTag1.SmartTagId = Guid.NewGuid(); oTag1.MemberId = id; oTag1.TagId = tagId; ctx.MemberSmartTag.Add(oTag1); } oTag1.SmartTagValue = item.GRADE; ctx.SaveChanges(); } #endregion #region 2.Sex //SaveMemberSmartTag(memberId, GetSmartTagId("Sex", 2), objTempVip.SEX); tagId = SmartTag4MemberEx.GetIdByPriority(2); if (tagId != Guid.Empty) { var oTag2 = ctx.MemberSmartTag.Where(x => x.MemberId == id && x.TagId == tagId).FirstOrDefault(); if (oTag2 == null) { oTag2 = new EF6.MemberSmartTag(); oTag2.SmartTagId = Guid.NewGuid(); oTag2.MemberId = id; oTag2.TagId = tagId; ctx.MemberSmartTag.Add(oTag2); } oTag2.SmartTagValue = item.SEX; ctx.SaveChanges(); } #endregion #region 3.Race //SaveMemberSmartTag(memberId, GetSmartTagId("Race", 3), objTempVip.RACE); tagId = SmartTag4MemberEx.GetIdByPriority(3); if (tagId != Guid.Empty) { var oTag3 = ctx.MemberSmartTag.Where(x => x.MemberId == id && x.TagId == tagId).FirstOrDefault(); if (oTag3 == null) { oTag3 = new EF6.MemberSmartTag(); oTag3.SmartTagId = Guid.NewGuid(); oTag3.MemberId = id; oTag3.TagId = tagId; ctx.MemberSmartTag.Add(oTag3); } oTag3.SmartTagValue = item.RACE; ctx.SaveChanges(); } #endregion #region 4.Age Group //SaveMemberSmartTag(memberId, GetSmartTagId("Age Group", 4), objTempVip.AGE_GROUP); tagId = SmartTag4MemberEx.GetIdByPriority(4); if (tagId != Guid.Empty) { var oTag4 = ctx.MemberSmartTag.Where(x => x.MemberId == id && x.TagId == tagId).FirstOrDefault(); if (oTag4 == null) { oTag4 = new EF6.MemberSmartTag(); oTag4.SmartTagId = Guid.NewGuid(); oTag4.MemberId = id; oTag4.TagId = tagId; ctx.MemberSmartTag.Add(oTag4); } oTag4.SmartTagValue = item.AGE_GROUP; ctx.SaveChanges(); } #endregion #region 5.CodeNumber //this.SaveMemberSmartTag(memberId, GetSmartTagId("CodeNumber", 5), objTempVip.CODENUM); tagId = SmartTag4MemberEx.GetIdByPriority(5); if (tagId != Guid.Empty) { var oTag5 = ctx.MemberSmartTag.Where(x => x.MemberId == id && x.TagId == tagId).FirstOrDefault(); if (oTag5 == null) { oTag5 = new EF6.MemberSmartTag(); oTag5.SmartTagId = Guid.NewGuid(); oTag5.MemberId = id; oTag5.TagId = tagId; ctx.MemberSmartTag.Add(oTag5); } oTag5.SmartTagValue = item.CODENUM; ctx.SaveChanges(); } #endregion #region 6.LoyaltyNum //this.SaveMemberSmartTag(memberId, GetSmartTagId("LoyaltyNum", 6), objTempVip.LOYALTYNUM); tagId = SmartTag4MemberEx.GetIdByPriority(6); if (tagId != Guid.Empty) { var oTag6 = ctx.MemberSmartTag.Where(x => x.MemberId == id && x.TagId == tagId).FirstOrDefault(); if (oTag6 == null) { oTag6 = new EF6.MemberSmartTag(); oTag6.SmartTagId = Guid.NewGuid(); oTag6.MemberId = id; oTag6.TagId = tagId; ctx.MemberSmartTag.Add(oTag6); } oTag6.SmartTagValue = item.LOYALTYNUM; ctx.SaveChanges(); } #endregion #region 7.Profile //this.SaveMemberSmartTag(memberId, GetSmartTagId("Profile", 7), objTempVip.PROFILE); tagId = SmartTag4MemberEx.GetIdByPriority(7); if (tagId != Guid.Empty) { var oTag7 = ctx.MemberSmartTag.Where(x => x.MemberId == id && x.TagId == tagId).FirstOrDefault(); if (oTag7 == null) { oTag7 = new EF6.MemberSmartTag(); oTag7.SmartTagId = Guid.NewGuid(); oTag7.MemberId = id; oTag7.TagId = tagId; ctx.MemberSmartTag.Add(oTag7); } oTag7.SmartTagValue = item.PROFILE; ctx.SaveChanges(); } #endregion #region 8.DOB //this.SaveMemberSmartTag(memberId, GetSmartTagId("DOB", 8), objTempVip.DATE_BIRTH.Value.ToString("yyyy-MM-dd")); tagId = SmartTag4MemberEx.GetIdByPriority(8); if (tagId != Guid.Empty) { var oTag8 = ctx.MemberSmartTag.Where(x => x.MemberId == id && x.TagId == tagId).FirstOrDefault(); if (oTag8 == null) { oTag8 = new EF6.MemberSmartTag(); oTag8.SmartTagId = Guid.NewGuid(); oTag8.MemberId = id; oTag8.TagId = tagId; ctx.MemberSmartTag.Add(oTag8); } oTag8.SmartTagValue = item.DATE_BIRTH.HasValue ? item.DATE_BIRTH.Value.ToString("yyyy-MM-dd") : ""; ctx.SaveChanges(); } #endregion #region 9.DOR //this.SaveMemberSmartTag(memberId, GetSmartTagId("DOR", 9), objTempVip.DATE_REGIS.Value.ToString("yyyy-MM-dd")); tagId = SmartTag4MemberEx.GetIdByPriority(9); if (tagId != Guid.Empty) { var oTag9 = ctx.MemberSmartTag.Where(x => x.MemberId == id && x.TagId == tagId).FirstOrDefault(); if (oTag9 == null) { oTag9 = new EF6.MemberSmartTag(); oTag9.SmartTagId = Guid.NewGuid(); oTag9.MemberId = id; oTag9.TagId = tagId; ctx.MemberSmartTag.Add(oTag9); } oTag9.SmartTagValue = item.DATE_REGIS.HasValue ? item.DATE_REGIS.Value.ToString("yyyy-MM-dd") : ""; ctx.SaveChanges(); } #endregion #region 10.HKID //this.SaveMemberSmartTag(memberId, GetSmartTagId("HKID", 10), objTempVip.ID_NO); tagId = SmartTag4MemberEx.GetIdByPriority(10); if (tagId != Guid.Empty) { var oTag10 = ctx.MemberSmartTag.Where(x => x.MemberId == id && x.TagId == tagId).FirstOrDefault(); if (oTag10 == null) { oTag10 = new EF6.MemberSmartTag(); oTag10.SmartTagId = Guid.NewGuid(); oTag10.MemberId = id; oTag10.TagId = tagId; ctx.MemberSmartTag.Add(oTag10); } oTag10.SmartTagValue = item.ID_NO; ctx.SaveChanges(); } #endregion #region 11.Nationalit //this.SaveMemberSmartTag(memberId, GetSmartTagId("Nationalit", 11), objTempVip.NATION); tagId = SmartTag4MemberEx.GetIdByPriority(11); if (tagId != Guid.Empty) { var oTag11 = ctx.MemberSmartTag.Where(x => x.MemberId == id && x.TagId == tagId).FirstOrDefault(); if (oTag11 == null) { oTag11 = new EF6.MemberSmartTag(); oTag11.SmartTagId = Guid.NewGuid(); oTag11.MemberId = id; oTag11.TagId = tagId; ctx.MemberSmartTag.Add(oTag11); } oTag11.SmartTagValue = item.NATION; ctx.SaveChanges(); } #endregion #region 12.Email //this.SaveMemberSmartTag(memberId, GetSmartTagId("Email", 12), objTempVip.EMAIL); tagId = SmartTag4MemberEx.GetIdByPriority(12); if (tagId != Guid.Empty) { var oTag12 = ctx.MemberSmartTag.Where(x => x.MemberId == id && x.TagId == tagId).FirstOrDefault(); if (oTag12 == null) { oTag12 = new EF6.MemberSmartTag(); oTag12.SmartTagId = Guid.NewGuid(); oTag12.MemberId = id; oTag12.TagId = tagId; ctx.MemberSmartTag.Add(oTag12); } oTag12.SmartTagValue = item.EMAIL; ctx.SaveChanges(); } #endregion #region 13.ComName EN //this.SaveMemberSmartTag(memberId, GetSmartTagId("ComName EN", 13), objTempVip.COMPNAME); tagId = SmartTag4MemberEx.GetIdByPriority(13); if (tagId != Guid.Empty) { var oTag13 = ctx.MemberSmartTag.Where(x => x.MemberId == id && x.TagId == tagId).FirstOrDefault(); if (oTag13 == null) { oTag13 = new EF6.MemberSmartTag(); oTag13.SmartTagId = Guid.NewGuid(); oTag13.MemberId = id; oTag13.TagId = tagId; ctx.MemberSmartTag.Add(oTag13); } oTag13.SmartTagValue = item.COMPNAME; ctx.SaveChanges(); } #endregion #region 14.ComName CN //this.SaveMemberSmartTag(memberId, GetSmartTagId("ComName CN", 14), objTempVip.COMPNAMEC); tagId = SmartTag4MemberEx.GetIdByPriority(14); if (tagId != Guid.Empty) { var oTag14 = ctx.MemberSmartTag.Where(x => x.MemberId == id && x.TagId == tagId).FirstOrDefault(); if (oTag14 == null) { oTag14 = new EF6.MemberSmartTag(); oTag14.SmartTagId = Guid.NewGuid(); oTag14.MemberId = id; oTag14.TagId = tagId; ctx.MemberSmartTag.Add(oTag14); } oTag14.SmartTagValue = item.COMPNAMEC; ctx.SaveChanges(); } #endregion #endregion #region SaveMemberVip(memberId, item); var oVip = ctx.MemberVipData.Where(x => x.MemberId == id).FirstOrDefault(); if (oVip == null) { oVip = new EF6.MemberVipData(); oVip.MemberVipId = Guid.NewGuid(); oVip.MemberId = id; oVip.VipNumber = item.VIPNO; ctx.MemberVipData.Add(oVip); } oVip.CARD_ISSUE = item.CARD_ISSUE; oVip.CARD_EXPIRE = item.CARD_EXPIRE; oVip.CARD_NAME = item.CARD_NAME; oVip.CARD_RECEIVE = item.CARD_RECEIVE.Value; oVip.CARD_ACTIVE = item.CARD_ACTIVE.Value; oVip.FORMER_PPNO = item.FORMER_PPNO; oVip.MigrationDate = item.DATE_MIGRATE; oVip.CommencementDate = item.DATE_COMM; oVip.CreditLimit = item.ACREDIT; oVip.CreditTerms = item.TERMS; oVip.PaymentDiscount = (decimal)item.PYDISC; oVip.AddOnDiscount = item.BADDONDISC == "Y" ? true : false; oVip.StaffQuota = item.STAFF_QUOTA; ctx.SaveChanges(); var memberVipId = oVip.MemberVipId; #region this.UpdateLoo(oVip.MemberVipId, item); var oVipLoo = ctx.MemberVipLineOfOperation.Where(x => x.MemberVipId == memberVipId).FirstOrDefault(); if (oVipLoo == null) { oVipLoo = new EF6.MemberVipLineOfOperation(); oVipLoo.VipLooId = Guid.NewGuid(); oVipLoo.VipLooId = System.Guid.NewGuid(); oVipLoo.MemberVipId = memberVipId; oVipLoo.LineOfOperationId = LineOfOperationEx.GetLineOfOperationIdByName(item.LOOID); ctx.MemberVipLineOfOperation.Add(oVipLoo); } oVipLoo.NormalDiscount = (decimal)item.NRDISC; oVipLoo.PromotionDiscount = (decimal)item.PRO_DISC; ctx.SaveChanges(); #endregion #region this.UpdateSupplement(oVip.MemberVipId, item); var oSupplement = ctx.MemberVipSupplement.Where(x => x.MemberVipId == memberVipId).FirstOrDefault(); if (oSupplement == null) { oSupplement = new EF6.MemberVipSupplement(); oSupplement.VipSupplementId = Guid.NewGuid(); oSupplement.VipSupplementId = System.Guid.NewGuid(); oSupplement.MemberVipId = memberVipId; oSupplement.CustomerNumber = item.CUSTNUM; oSupplement.BRANCH = item.BRANCH; ctx.MemberVipSupplement.Add(oSupplement); } oSupplement.Remarks1 = item.R1; oSupplement.Remarks2 = item.R2; oSupplement.Remarks3 = item.R3; oSupplement.Nature = item.NATURE; oSupplement.Memo = item.MEMO; oSupplement.Photo = item.PHOTO; oSupplement.MostVisitedMalls1 = item.MALL1; oSupplement.MostVisitedMalls2 = item.MALL2; oSupplement.MostVisitedMalls3 = item.MALL3; oSupplement.MostBoughtBrands1 = item.BRAND1; oSupplement.MostBoughtBrands2 = item.BRAND2; oSupplement.MostBoughtBrands3 = item.BRAND3; oSupplement.MostReadMagazine1 = item.MAGAZINE1; oSupplement.MostReadMagazine2 = item.MAGAZINE2; oSupplement.MostReadMagazine3 = item.MAGAZINE3; oSupplement.MostUsedCreditCards1 = item.CARD1; oSupplement.MostUsedCreditCards2 = item.CARD2; oSupplement.MostUsedCreditCards3 = item.CARD3; ctx.SaveChanges(); #endregion #endregion #endregion ctx.MemberApply4TempVip.Remove(item); ctx.SaveChanges(); } scope.Commit(); result = true; } catch (Exception ex) { scope.Rollback(); } } } return(result); }
public bool SaveGeneralData() { var result = false; try { using (var ctx = new EF6.RT2020Entities()) { #region save core data var item = ctx.Supplier.Find(_SupplierId); if (item == null) { #region add new dbo.Supplier item = new EF6.Supplier(); item.SupplierId = Guid.NewGuid(); item.SupplierCode = _SupplierCode; item.Status = (int)EnumHelper.Status.Active; //2014.01.04 paulus: 一開始就係 Active item.CreatedBy = ConfigHelper.CurrentUserId; item.CreatedOn = DateTime.Now; ctx.Supplier.Add(item); _SupplierId = item.SupplierId; #endregion } item.SupplierInitial = txtInitial.Text; item.SupplierName = txtName.Text; item.SupplierName_Chs = txtNameChs.Text; item.SupplierName_Cht = txtNameCht.Text; if ((Guid)cboMarketSector.SelectedValue != Guid.Empty) { item.MarketSectorId = (Guid)cboMarketSector.SelectedValue; } item.Remarks = txtRemarks.Text; if (ctx.Entry(item).State != EntityState.Added) { item.Status = Convert.ToInt32(EnumHelper.Status.Modified.ToString("d")); } item.ModifiedBy = ConfigHelper.CurrentUserId; item.ModifiedOn = DateTime.Now; ctx.SaveChanges(); #region log activity (Update) RT2020.Controls.Log4net.LogInfo(ctx.Entry(item).State == EntityState.Added ? RT2020.Controls.Log4net.LogAction.Create : RT2020.Controls.Log4net.LogAction.Update, item.ToString()); #endregion #endregion } #region SaveSmartTagValues foreach (Control Ctrl in Controls) { if (Ctrl.Name.Contains("SmartTag") && !Ctrl.Name.StartsWith("lbl")) { SupplierSmartTagEx.SaveSmartTagValue(_SupplierId, Ctrl); } } #endregion result = true; } catch (Exception ex) { result = false; } return(result); }
private Guid SaveMemberCoreData(EF6.MemberApply4TempVip objTempVip, bool canDelete) { Guid result = Guid.Empty, memberId = Guid.Empty; bool isNew = false; var memberNumber = objTempVip.VIPNO.Trim(); using (var ctx = new EF6.RT2020Entities()) { var objMember = ctx.Member.Where(x => x.MemberNumber == memberNumber).FirstOrDefault(); if (objMember == null) { #region add new Member isNew = true; objMember = new EF6.Member(); objMember.MemberId = Guid.NewGuid(); objMember.MemberNumber = objTempVip.VIPNO; objMember.CreatedBy = ConfigHelper.CurrentUserId; objMember.CreatedOn = DateTime.Now; objMember.Retired = false; objMember.RetiredBy = Guid.Empty; objMember.RetiredOn = new DateTime(1900, 1, 1); ctx.Member.Add(objMember); #endregion } #region Check the temp vip DLFLAG if (objTempVip.DLFLAG.Trim().Length > 0) { switch (objTempVip.DLFLAG.Trim().ToUpper()) { case "A": case "": default: objMember.Status = (int)EnumHelper.Status.Active; break; case "M": objMember.Status = (int)EnumHelper.Status.Modified; break; case "D": objMember.Status = (int)EnumHelper.Status.Deleted; break; case "I": objMember.Status = (int)EnumHelper.Status.Inactive; break; } } else { objMember.Status = ctx.Entry(objMember).State == EntityState.Added ? (int)EnumHelper.Status.Active : (int)EnumHelper.Status.Modified; } #endregion #region Option 2. Migrate Temporary VIP to Permanent VIP With Delete if (canDelete) { objMember.Status = (int)EnumHelper.Status.Deleted; } #endregion #region update Member core data objMember.WorkplaceId = Guid.Empty; objMember.ClassId = MemberHelper.GetClassId(objTempVip.PHONEBOOK); //Class objMember.GroupId = MemberHelper.GetGroupId(objTempVip.GROUP); objMember.MemberInitial = objTempVip.NNAME; // Nick Name objMember.SalutationId = MemberHelper.GetSaluteId(objTempVip.SALUTE); objMember.FirstName = objTempVip.FNAME; // First Name objMember.LastName = objTempVip.LNAME; // Last Name objMember.FullName = objTempVip.FNAME + "," + objTempVip.LNAME; // Full Name objMember.FullName_Chs = objTempVip.CNAME; // Chinese Name (S) objMember.FullName_Cht = objTempVip.CNAME; // Chinese Name (T) objMember.JobTitleId = JobTitleEx.GetJobTitleIdByName(objTempVip.TITLE); objMember.AssignedTo = Guid.Empty; objMember.Remarks = objTempVip.REMARKS; objMember.NormalDiscount = (decimal)objTempVip.NRDISC; objMember.DownloadToPOS = true; objMember.ModifiedBy = ConfigHelper.CurrentUserId; objMember.ModifiedOn = DateTime.Now; if (objMember.Status == (int)EnumHelper.Status.Deleted || objMember.Status == (int)EnumHelper.Status.Inactive) { objMember.Retired = false; objMember.RetiredBy = Guid.Empty; objMember.RetiredOn = new DateTime(1900, 1, 1); } #endregion ctx.SaveChanges(); result = memberId = objMember.MemberId; } return(result); }
private bool Save() { var result = false; if (Verify() && IsValid()) { bool canSave = false, isNew = false; using (var ctx = new EF6.RT2020Entities()) { var item = ctx.Supplier.Find(_SupplierId); if (item == null) { item = new EF6.Supplier(); item.SupplierId = Guid.NewGuid(); item.SupplierCode = txtSupplierCode.Text.Trim(); item.Status = (int)EnumHelper.Status.Active; //2014.01.04 paulus: 一開始就係 Active item.CreatedBy = ConfigHelper.CurrentUserId; item.CreatedOn = DateTime.Now; ctx.Supplier.Add(item); _SupplierId = item.SupplierId; _SupplierCode = item.SupplierCode; } //item.SupplierInitial = general.txtInitial.Text; //item.SupplierName = general.txtName.Text; //item.SupplierName_Chs = general.txtNameChs.Text; //item.SupplierName_Cht = general.txtNameCht.Text; //item.AlternateSupplier = general.txtSmartTag1.Text; //item.MarketSectorId = new Guid(general.cboMarketSector.SelectedValue.ToString()); //item.Remarks = general.txtRemarks.Text; item.Status = ctx.Entry(item).State == EntityState.Added ? (int)EnumHelper.Status.Active : (int)EnumHelper.Status.Modified; item.ModifiedBy = ConfigHelper.CurrentUserId; item.ModifiedOn = DateTime.Now; ctx.SaveChanges(); //SaveSmartTagValue(_SupplierId); result = true; } #region general.SaveGeneralData if (tabGeneralLoaded) { if (_EditMode == EnumHelper.EditMode.Add) { general.SupplierId = _SupplierId; general.SupplierCode = _SupplierCode; } // result = general.SaveGeneralData(); } #endregion #region address.SaveAddressData if (tabAddressLoaded && result) { if (_EditMode == EnumHelper.EditMode.Add) { address.SupplierId = _SupplierId; } result = address.SaveAddressData(); } #endregion #region contact.SaveContctData if (tabContactLoaded && result) { if (_EditMode == EnumHelper.EditMode.Add) { contact.SupplierId = _SupplierId; } result = contact.SaveContctData(); } #endregion #region finance.SaveFinanceData if (tabFinancialLoaded && result) { if (_EditMode == EnumHelper.EditMode.Add) { finance.SupplierId = _SupplierId; } result = finance.SaveFinanceData(); } #endregion return(result); } else { return(false); } }
private bool SaveData() { bool result = false; using (var ctx = new EF6.RT2020Entities()) { using (var scope = ctx.Database.BeginTransaction()) { try { #region save Wokrplace core data var wp = ctx.Workplace.Find(_WorkplaceId); if (wp == null) { #region add new dbo.Workplace wp = new EF6.Workplace(); wp.WorkplaceId = Guid.NewGuid(); wp.WorkplaceCode = txtLoc.Text.Trim(); wp.CreatedOn = DateTime.Now; wp.CreatedBy = ConfigHelper.CurrentUserId; wp.Status = (int)EnumHelper.Status.Active; ctx.Workplace.Add(wp); _WorkplaceId = wp.WorkplaceId; #endregion } wp.WorkplaceInitial = txtInitial.Text.Trim(); wp.WorkplaceName = txtName.Text.Trim(); wp.WorkplaceName_Chs = txtNameChs.Text.Trim(); wp.WorkplaceName_Cht = txtNameCht.Text.Trim(); //wp.AlternateWorkplaceCode = txtSmartTag3.Text; wp.Priority = Convert.ToInt32((txtPriority.Text.Length == 0) ? "0" : txtPriority.Text.Trim()); wp.Email = txtPhoneTag2.Text.Trim(); wp.Password = txtPassword.Text.Trim(); if ((Guid)cboNature.SelectedValue != Guid.Empty) { wp.NatureId = (Guid)cboNature.SelectedValue; } wp.ZoneId = (Guid)cboZone.SelectedValue; if ((Guid)cboLOO.SelectedValue != Guid.Empty) { wp.LineOfOperationId = (Guid)cboLOO.SelectedValue; } wp.DownloadToCounter = true; wp.DownloadToPOS = true; wp.DownloadToShop = true; wp.Status = ctx.Entry(wp).State == EntityState.Added ? (int)EnumHelper.Status.Active : (int)EnumHelper.Status.Modified; wp.ModifiedOn = DateTime.Now; wp.ModifiedBy = ConfigHelper.CurrentUserId; ctx.SaveChanges(); #endregion #region save WorkplaceAddress var address = ctx.WorkplaceAddress.Where(x => x.WorkplaceId == _WorkplaceId).FirstOrDefault(); if (address == null) { #region add new dboWorkplaceAddress address = new EF6.WorkplaceAddress(); address.AddressId = Guid.NewGuid(); address.WorkplaceId = _WorkplaceId; ctx.WorkplaceAddress.Add(address); #endregion } address.Address = txtAddress.Text.Trim(); address.PostalCode = txtPostal.Text.Trim(); if ((Guid)cboCountry.SelectedValue != Guid.Empty) { address.CountryId = (Guid)cboCountry.SelectedValue; } if ((Guid)cboProvince.SelectedValue != Guid.Empty) { address.ProvinceId = (Guid)cboProvince.SelectedValue; } if ((Guid)cboCity.SelectedValue != Guid.Empty) { address.CityId = (Guid)cboCity.SelectedValue; } address.District = txtDistrict.Text.Trim(); // Phone Tag 1 address.PhoneTag1 = PhoneTagEx.GetPhoneTagIdByPriority(1); address.PhoneTag1Value = txtPhoneTag1.Text; // Phone Tag 3 address.PhoneTag3 = PhoneTagEx.GetPhoneTagIdByPriority(3); address.Phonetage3Value = txtPhoneTag3.Text; // Phone Tag 4 address.PhoneTag4 = PhoneTagEx.GetPhoneTagIdByPriority(4); address.PhoneTag4Value = txtPhoneTag4.Text; ctx.SaveChanges(); #endregion #region save Smart Tags #region Smart Tag 1 var oTag1 = ctx.WorkplaceSmartTag.Where(x => x.WorkplaceId == _WorkplaceId && x.TagId == (Guid)txtSmartTag1.Tag).FirstOrDefault(); if (oTag1 == null) { oTag1 = new EF6.WorkplaceSmartTag(); oTag1.SmartTagId = Guid.NewGuid(); oTag1.WorkplaceId = _WorkplaceId; oTag1.TagId = (txtSmartTag1.Tag == null) ? Guid.Empty : new Guid(txtSmartTag1.Tag.ToString()); ctx.WorkplaceSmartTag.Add(oTag1); } oTag1.SmartTagValue = txtSmartTag1.Text; ctx.SaveChanges(); #endregion #region Smart Tag 2 var oTag2 = ctx.WorkplaceSmartTag.Where(x => x.WorkplaceId == _WorkplaceId && x.TagId == (Guid)txtSmartTag2.Tag).FirstOrDefault(); if (oTag2 == null) { oTag2 = new EF6.WorkplaceSmartTag(); oTag2.SmartTagId = Guid.NewGuid(); oTag2.WorkplaceId = _WorkplaceId; oTag2.TagId = (txtSmartTag2.Tag == null) ? Guid.Empty : new Guid(txtSmartTag2.Tag.ToString()); ctx.WorkplaceSmartTag.Add(oTag2); } oTag2.SmartTagValue = txtSmartTag2.Text; ctx.SaveChanges(); #endregion #endregion scope.Commit(); result = true; } catch (Exception ex) { scope.Rollback(); } } } return(result); /** abbendon * int priority = 0; * if (txtLoc.Text.Trim().Length <= 0) * { * errorProvider.SetError(txtLoc, "Cannot be blank!"); * return false; * } * else if (!int.TryParse(txtPriority.Text.Trim(), out priority)) * { * errorProvider.SetError(txtPriority, Resources.Common.DigitalNeeded); * return false; * } * else * { * errorProvider.SetError(txtLoc, string.Empty); * errorProvider.SetError(txtPriority, string.Empty); * * if (txtLoc.ReadOnly) * { * var workplaceId = AddWorkplace(_WorkplaceId); * _WorkplaceId = workplaceId; * * if (workplaceId != Guid.Empty) * { * AddWorkplaceAddress(workplaceId); * AddWorkplaceSmart(workplaceId); * } * } * else * { * var workplaceId = AddWorkplace(Guid.Empty); * if (workplaceId != Guid.Empty) * { * AddWorkplaceAddress(workplaceId); * AddWorkplaceSmart(workplaceId); * } * } * if (_WorkplaceId != Guid.Empty) * { * txtLoc.ReadOnly = true; * txtLoc.BackColor = Color.LightYellow; * * ClearForm(); * MessageBox.Show("Save successfully!", "Save Result"); * * return true; * } * else * { * return false; * } * } */ }