//actualiza los datos en SumaPlazasStatuses public bool SaveChanges(Afiliado afiliado) { using (LealtadEntities db = new LealtadEntities()) { // Entidad: Affiliate Affiliate affiliate = db.Affiliates.FirstOrDefault(a => a.id == afiliado.id); if (affiliate != null) { affiliate.storeid = afiliado.storeid; affiliate.channelid = afiliado.channelid; affiliate.typeid = afiliado.typeid; affiliate.typedelivery = afiliado.typedelivery; affiliate.storeiddelivery = afiliado.storeiddelivery; affiliate.modifieduserid = (int)HttpContext.Current.Session["userid"]; affiliate.modifieddate = System.DateTime.Now; affiliate.statusid = afiliado.statusid; affiliate.reasonsid = afiliado.reasonsid; affiliate.twitter_account = afiliado.twitter_account; affiliate.facebook_account = afiliado.facebook_account; affiliate.instagram_account = afiliado.instagram_account; affiliate.comments = afiliado.comments; } // Entidad: CLIENTE CLIENTE cliente = db.CLIENTES.FirstOrDefault(c => c.TIPO_DOCUMENTO + "-" + c.NRO_DOCUMENTO == afiliado.docnumber); if (cliente != null) { cliente.NACIONALIDAD = afiliado.nationality; cliente.NOMBRE_CLIENTE1 = afiliado.name; cliente.NOMBRE_CLIENTE2 = afiliado.name2; cliente.APELLIDO_CLIENTE1 = afiliado.lastname1; cliente.APELLIDO_CLIENTE2 = afiliado.lastname2; cliente.FECHA_NACIMIENTO = DateTime.ParseExact(afiliado.birthdate, "dd-MM-yyyy", CultureInfo.InvariantCulture); cliente.SEXO = afiliado.gender; cliente.EDO_CIVIL = afiliado.maritalstatus; cliente.OCUPACION = afiliado.occupation; cliente.TELEFONO_HAB = afiliado.phone1; cliente.TELEFONO_OFIC = afiliado.phone2; cliente.TELEFONO_CEL = afiliado.phone3; cliente.COD_SUCURSAL = afiliado.storeid; cliente.COD_ESTADO = afiliado.cod_estado; cliente.COD_CIUDAD = afiliado.cod_ciudad; cliente.COD_MUNICIPIO = afiliado.cod_municipio; cliente.COD_PARROQUIA = afiliado.cod_parroquia; cliente.COD_URBANIZACION = afiliado.cod_urbanizacion; } // Entida: TARJETA TARJETA tarjeta = db.TARJETAS.FirstOrDefault(t => t.NRO_AFILIACION.Equals(afiliado.id)); if (tarjeta != null) { tarjeta.ESTATUS_TARJETA = afiliado.estatustarjeta; tarjeta.COD_USUARIO = (int)HttpContext.Current.Session["userid"]; tarjeta.FECHA_CREACION = DateTime.Now; } else if (afiliado.pan != null && afiliado.estatustarjeta != null) { tarjeta = new TARJETA() { NRO_TARJETA = Convert.ToDecimal(afiliado.pan), NRO_AFILIACION = afiliado.id, TIPO_DOCUMENTO = afiliado.docnumber.Substring(0, 1), NRO_DOCUMENTO = afiliado.docnumber.Substring(2), ESTATUS_TARJETA = afiliado.estatustarjeta, SALDO_PUNTOS = null, OBSERVACIONES = null, COD_USUARIO = (int)HttpContext.Current.Session["userid"], TRACK1 = null, TRACK2 = null, CVV2 = null, FECHA_CREACION = DateTime.Now }; db.TARJETAS.Add(tarjeta); } // Entidad: CustomerInterest foreach (var m in db.CustomerInterests.Where(f => f.customerid == afiliado.id)) { db.CustomerInterests.Remove(m); } foreach (var interes in afiliado.Intereses.Where(x => x.Checked == true)) { CustomerInterest customerInterest = new CustomerInterest() { customerid = afiliado.id, interestid = interes.id, comments = "" }; db.CustomerInterests.Add(customerInterest); } //Entidad: AffiliateAud int statusidactual = (from a in db.Affiliates where a.id.Equals(afiliado.id) select a.statusid ).SingleOrDefault(); //Solo inserto registros cuando hay cambio de estado de Afiliación if (statusidactual != afiliado.statusid) { var affiliateAuditoria = new AffiliateAud() { id = AfilliateAudID(), affiliateid = afiliado.id, modifieduserid = (int)HttpContext.Current.Session["userid"], modifieddate = System.DateTime.Now, statusid = afiliado.statusid, reasonsid = ID_REASONS_INICIAL, comments = afiliado.comments }; db.AffiliateAuds.Add(affiliateAuditoria); } if (SaveWebPlazas(afiliado)) { db.SaveChanges(); return true; } else { return false; } } }
public bool SaveChanges(AfiliadoSuma afiliado, HttpPostedFileBase fileNoValidado = null) { using (LealtadEntities db = new LealtadEntities()) { db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad"); // Entidad: Affiliate Affiliate affiliate = db.Affiliates.FirstOrDefault(a => a.id == afiliado.id); if (affiliate != null) { ///affiliate.storeid = afiliado.storeid; affiliate.channelid = afiliado.channelid; affiliate.typeid = afiliado.typeid; affiliate.typedelivery = afiliado.typedelivery; affiliate.storeiddelivery = afiliado.storeiddelivery; affiliate.modifieduserid = (int)HttpContext.Current.Session["userid"]; affiliate.modifieddate = System.DateTime.Now; affiliate.sumastatusid = afiliado.sumastatusid; affiliate.reasonsid = afiliado.reasonsid; affiliate.twitter_account = afiliado.twitter_account; affiliate.facebook_account = afiliado.facebook_account; affiliate.instagram_account = afiliado.instagram_account; affiliate.comments = afiliado.comments; } // Entidad: CLIENTE CLIENTE cliente = db.CLIENTES.FirstOrDefault(c => c.TIPO_DOCUMENTO + "-" + c.NRO_DOCUMENTO == afiliado.docnumber); if (cliente != null) { cliente.E_MAIL = afiliado.email == null ? "" : afiliado.email; cliente.NOMBRE_CLIENTE1 = afiliado.name; cliente.NOMBRE_CLIENTE2 = afiliado.name2 == null ? string.Empty : afiliado.name2; cliente.APELLIDO_CLIENTE1 = afiliado.lastname1 == null ? "" : afiliado.lastname1; cliente.APELLIDO_CLIENTE2 = afiliado.lastname2 == null ? "" : afiliado.lastname2; cliente.FECHA_NACIMIENTO = afiliado.birthdate == null ? new DateTime?() : DateTime.ParseExact(afiliado.birthdate, "dd/MM/yyyy", CultureInfo.InvariantCulture); //cliente.NACIONALIDAD = afiliado.nationality; //cliente.SEXO = afiliado.gender; //cliente.EDO_CIVIL = afiliado.maritalstatus; //cliente.COD_SUCURSAL = afiliado.storeid; //nuevos campos con claves a tablas nuevas cliente.NACIONALITY_ID = Convert.ToInt32(afiliado.nationality); cliente.SEX_ID = Convert.ToInt32(afiliado.gender); cliente.CIVIL_STATUS_ID = Convert.ToInt32(afiliado.maritalstatus); var query = db.Stores.OrderBy(x=>x.store_code); cliente.STORE_ID = (from q in query.AsEnumerable() where q.store_code == afiliado.storeid.ToString() select q.id).FirstOrDefault(); cliente.TELEFONO_HAB = afiliado.phone1; cliente.TELEFONO_OFIC = afiliado.phone2; cliente.TELEFONO_CEL = afiliado.phone3; cliente.COD_ESTADO = afiliado.cod_estado; cliente.COD_CIUDAD = afiliado.cod_ciudad; cliente.COD_MUNICIPIO = afiliado.cod_municipio; cliente.COD_PARROQUIA = afiliado.cod_parroquia; cliente.COD_URBANIZACION = afiliado.cod_urbanizacion; if (afiliado.occupation == null) { cliente.OCUPACION = afiliado.occupation; } else if (afiliado.occupation.Length > 30) { cliente.OCUPACION = afiliado.occupation.Substring(0, 30); } else { cliente.OCUPACION = afiliado.occupation; } } // Entida: TARJETA //TARJETA tarjeta = db.TARJETAS.FirstOrDefault(t => t.NRO_AFILIACION.Equals(afiliado.id)); Decimal pan = Convert.ToDecimal(afiliado.pan); TARJETA tarjeta = db.TARJETAS.FirstOrDefault(t => t.NRO_TARJETA.Equals(pan)); if (tarjeta != null) { tarjeta.NRO_AFILIACION = afiliado.id; tarjeta.ESTATUS_TARJETA = afiliado.estatustarjeta; tarjeta.COD_USUARIO = (int)HttpContext.Current.Session["userid"]; tarjeta.TRACK2 = afiliado.trackII; tarjeta.CVV2 = afiliado.cvv2; tarjeta.FECHA_CREACION = afiliado.printed == null ? new DateTime?() : DateTime.ParseExact(afiliado.printed, "dd/MM/yyyy", CultureInfo.InvariantCulture); } else if (afiliado.pan != null && afiliado.estatustarjeta != null) { tarjeta = new TARJETA() { NRO_TARJETA = pan, NRO_AFILIACION = afiliado.id, TIPO_DOCUMENTO = afiliado.docnumber.Substring(0, 1), NRO_DOCUMENTO = afiliado.docnumber.Substring(2), ESTATUS_TARJETA = afiliado.estatustarjeta, SALDO_PUNTOS = null, OBSERVACIONES = null, COD_USUARIO = (int)HttpContext.Current.Session["userid"], TRACK1 = null, TRACK2 = afiliado.trackII, CVV2 = afiliado.cvv2, FECHA_CREACION = afiliado.printed == null ? new DateTime?() : DateTime.ParseExact(afiliado.printed, "dd/MM/yyyy", CultureInfo.InvariantCulture) }; db.TARJETAS.Add(tarjeta); } // Entidad: CustomerInterest foreach (var m in db.CustomerInterests.Where(f => f.customerid == afiliado.id)) { db.CustomerInterests.Remove(m); } foreach (var interes in afiliado.Intereses.Where(x => x.Checked == true)) { CustomerInterest customerInterest = new CustomerInterest() { customerid = afiliado.id, interestid = interes.id, comments = "" }; db.CustomerInterests.Add(customerInterest); } //Entidad: AffiliateAud int sumastatusidactual = (from a in db.Affiliates where a.id.Equals(afiliado.id) select a.sumastatusid ).SingleOrDefault().Value; //Solo inserto registros cuando hay cambio de estado de Afiliación if (sumastatusidactual != afiliado.sumastatusid) { var affiliateAuditoria = new AffiliateAud() { id = AfilliateAudID(), affiliateid = afiliado.id, modifieduserid = (int)HttpContext.Current.Session["userid"], modifieddate = DateTime.Now, statusid = afiliado.sumastatusid, reasonsid = Globals.ID_REASONS_INICIAL, comments = afiliado.comments }; db.AffiliateAuds.Add(affiliateAuditoria); } //YA NO SE ENVIARÁ INFORMACIÓN A LA WEB //if (SaveWebPlazas(afiliado)) //{ //ENTIDAD Photos_Affiliate if (fileNoValidado != null) { try { int length = fileNoValidado.ContentLength; byte[] buffer = new byte[length]; fileNoValidado.InputStream.Read(buffer, 0, length); Photos_Affiliate photos_affiliate = db.Photos_Affiliates.FirstOrDefault(x => x.Affiliate_id == afiliado.id); if (photos_affiliate == null) { photos_affiliate = new Photos_Affiliate() { photo = buffer, photo_type = fileNoValidado.ContentType, Affiliate_id = afiliado.id }; db.Photos_Affiliates.Add(photos_affiliate); } else { photos_affiliate.photo = buffer; photos_affiliate.photo_type = fileNoValidado.ContentType; } } catch { } } db.SaveChanges(); return true; //} //else //{ // return false; //} } }