//crea el afiliado en SumaPlazas (solicitud de afiliación) public bool Save(Afiliado afiliado, HttpPostedFileBase file) { using (LealtadEntities db = new LealtadEntities()) { //ENTIDAD Affiliatte var Affiliate = new Affiliate() { id = AfilliatesID(), customerid = afiliado.customerid, docnumber = afiliado.docnumber, clientid = afiliado.clientid, storeid = afiliado.storeid, channelid = afiliado.channelid, typeid = afiliado.typeid, affiliatedate = System.DateTime.Now, typedelivery = afiliado.typedelivery, storeiddelivery = afiliado.storeiddelivery, estimateddatedelivery = new DateTime(), creationdate = DateTime.Now, creationuserid = (int)HttpContext.Current.Session["userid"], modifieddate = DateTime.Now, modifieduserid = (int)HttpContext.Current.Session["userid"], statusid = db.SumaStatuses.FirstOrDefault(s => (s.value == ID_ESTATUS_AFILIACION_INICIAL) && (s.tablename=="Affiliatte")).id,//ID_ESTATUS_AFILIACION_INICIAL, reasonsid = null, twitter_account = afiliado.twitter_account, facebook_account = afiliado.facebook_account, instagram_account = afiliado.instagram_account, comments = afiliado.comments }; db.Affiliates.Add(Affiliate); //ENTIDAD CLIENTE var CLIENTE = new CLIENTE() { TIPO_DOCUMENTO = afiliado.docnumber.Substring(0, 1), NRO_DOCUMENTO = afiliado.docnumber.Substring(2), NACIONALIDAD = afiliado.nationality, NOMBRE_CLIENTE1 = afiliado.name, NOMBRE_CLIENTE2 = afiliado.name2 == null ? "" : afiliado.name2, APELLIDO_CLIENTE1 = afiliado.lastname1, APELLIDO_CLIENTE2 = afiliado.lastname2 == null ? "" : afiliado.lastname2, FECHA_NACIMIENTO = DateTime.ParseExact(afiliado.birthdate, "dd-MM-yyyy", CultureInfo.InvariantCulture), SEXO = afiliado.gender, EDO_CIVIL = afiliado.maritalstatus, OCUPACION = afiliado.occupation == null ? "" : afiliado.occupation, TELEFONO_HAB = afiliado.phone1, TELEFONO_OFIC = afiliado.phone2 == null ? "" : afiliado.cod_estado, TELEFONO_CEL = afiliado.phone3 == null ? "" : afiliado.cod_estado, E_MAIL = afiliado.email, COD_SUCURSAL = afiliado.storeid, COD_ESTADO = afiliado.cod_estado, COD_CIUDAD = afiliado.cod_ciudad, COD_MUNICIPIO = afiliado.cod_municipio, COD_PARROQUIA = afiliado.cod_parroquia, COD_URBANIZACION = afiliado.cod_urbanizacion, FECHA_CREACION = DateTime.Now }; db.CLIENTES.Add(CLIENTE); //ENTIDAD CustomerInterest foreach (var interes in afiliado.Intereses.Where(x => x.Checked == true)) { CustomerInterest customerInterest = new CustomerInterest() { customerid = Affiliate.id, interestid = interes.id, comments = "" }; db.CustomerInterests.Add(customerInterest); } //ENTIDAD Photos_Affiliate if (file != null) { try { int length = file.ContentLength; byte[] buffer = new byte[length]; file.InputStream.Read(buffer, 0, length); var Photos_Affiliate = new Photos_Affiliate() { photo = buffer, photo_type = file.ContentType, Affiliate_id = Affiliate.id }; db.Photos_Affiliates.Add(Photos_Affiliate); } catch { return false; } } else { return false; } //ENTIDAD CompanyAffiliate var companyaffiliate = new CompanyAffiliate() { affiliateid = Affiliate.id, companyid = afiliado.companyid, begindate = DateTime.Now, enddate = new DateTime(), comments = afiliado.comments, active = true }; db.CompanyAffiliates.Add(companyaffiliate); //ENTIDAD AffiliateAud var affiliateauditoria = new AffiliateAud() { id = AfilliateAudID(), affiliateid = Affiliate.id, modifieduserid = (int)HttpContext.Current.Session["userid"], modifieddate = System.DateTime.Now, statusid = Affiliate.statusid, reasonsid = ID_REASONS_INICIAL, comments = afiliado.comments }; db.AffiliateAuds.Add(affiliateauditoria); if (SaveWebPlazas(afiliado)) { db.SaveChanges(); return true; } else { return false; } } }
//YA NO SE ENVIARÁ INFORMACIÓN A LA WEB //private bool SaveWebPlazas(AfiliadoSuma afiliado) //{ // string RespuestaWebPlazasJson = WSL.WebPlazas.UpdateClient(afiliado); // if (ExceptionServicioWebPlazas(RespuestaWebPlazasJson)) // { // return false; // } // RespuestaWebPlazas RespuestaWebPlazas = (RespuestaWebPlazas)JsonConvert.DeserializeObject<RespuestaWebPlazas>(RespuestaWebPlazasJson); // return (RespuestaWebPlazas.excode == "0"); //} public bool Save(AfiliadoSuma afiliado, HttpPostedFileBase file) { using (LealtadEntities db = new LealtadEntities()) { db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad"); //ENTIDAD Affiliatte var Affiliate = new Affiliate() { id = AfilliatesID(), customerid = afiliado.customerid, docnumber = afiliado.docnumber, clientid = afiliado.clientid, //storeid = afiliado.storeid, channelid = afiliado.channelid, typeid = afiliado.typeid, affiliatedate = System.DateTime.Now, typedelivery = afiliado.typedelivery, storeiddelivery = afiliado.storeiddelivery, estimateddatedelivery = new DateTime(), creationdate = DateTime.Now, creationuserid = (int)HttpContext.Current.Session["userid"], modifieddate = DateTime.Now, modifieduserid = (int)HttpContext.Current.Session["userid"], sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_AFILIACION_INICIAL) && (s.tablename == "Affiliatte")).id, reasonsid = null, twitter_account = afiliado.twitter_account, facebook_account = afiliado.facebook_account, instagram_account = afiliado.instagram_account, comments = afiliado.comments }; db.Affiliates.Add(Affiliate); //ENTIDAD CLIENTE CLIENTE cliente = db.CLIENTES.FirstOrDefault(c => c.TIPO_DOCUMENTO + "-" + c.NRO_DOCUMENTO == afiliado.docnumber); if (cliente == null) { var CLIENTE = new CLIENTE() { TIPO_DOCUMENTO = afiliado.docnumber.Substring(0, 1), NRO_DOCUMENTO = afiliado.docnumber.Substring(2), E_MAIL = afiliado.email == null ? "" : afiliado.email, NOMBRE_CLIENTE1 = afiliado.name, NOMBRE_CLIENTE2 = afiliado.name2 == null ? "" : afiliado.name2, APELLIDO_CLIENTE1 = afiliado.lastname1 == null ? "" : afiliado.lastname1, APELLIDO_CLIENTE2 = afiliado.lastname2 == null ? "" : afiliado.lastname2, FECHA_NACIMIENTO = afiliado.birthdate == null ? new DateTime?() : DateTime.ParseExact(afiliado.birthdate, "dd/MM/yyyy", CultureInfo.InvariantCulture), //NACIONALIDAD = afiliado.nationality == null ? "" : afiliado.nationality, //SEXO = afiliado.gender == null ? "" : afiliado.gender, //EDO_CIVIL = afiliado.maritalstatus == null ? "" : afiliado.maritalstatus, //COD_SUCURSAL = afiliado.storeid, //nuevos campos con claves a tablas nuevas NACIONALITY_ID = afiliado.nationality == null ? 0 : Convert.ToInt32(afiliado.nationality), SEX_ID = afiliado.gender == null ? 0 : Convert.ToInt32(afiliado.gender), CIVIL_STATUS_ID = afiliado.maritalstatus == null ? 0 : Convert.ToInt32(afiliado.maritalstatus), //OCUPACION = afiliado.occupation == null ? "" : afiliado.occupation.Substring(0, 30), TELEFONO_HAB = afiliado.phone1, TELEFONO_OFIC = afiliado.phone2 == null ? "" : afiliado.phone2, TELEFONO_CEL = afiliado.phone3 == null ? "" : afiliado.phone3, COD_ESTADO = afiliado.cod_estado, COD_CIUDAD = afiliado.cod_ciudad, COD_MUNICIPIO = afiliado.cod_municipio, COD_PARROQUIA = afiliado.cod_parroquia, COD_URBANIZACION = afiliado.cod_urbanizacion, FECHA_CREACION = DateTime.Now }; //nuevos campos con claves a tablas nuevas 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(); 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; } db.CLIENTES.Add(CLIENTE); } else { cliente.E_MAIL = afiliado.email == null ? "" : afiliado.email; cliente.NOMBRE_CLIENTE1 = afiliado.name; cliente.NOMBRE_CLIENTE2 = afiliado.name2 == null ? "" : 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 == null ? "" : afiliado.nationality; //cliente.SEXO = afiliado.gender == null ? "" : afiliado.gender; //cliente.EDO_CIVIL = afiliado.maritalstatus == null ? "" : afiliado.maritalstatus; //cliente.COD_SUCURSAL = afiliado.storeid; //nuevos campos con claves a tablas nuevas cliente.NACIONALITY_ID = afiliado.nationality == null ? 0 : Convert.ToInt32(afiliado.nationality); cliente.SEX_ID = afiliado.gender == null ? 0 : Convert.ToInt32(afiliado.gender); cliente.CIVIL_STATUS_ID = afiliado.maritalstatus == null ? 0 : 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.OCUPACION = afiliado.occupation == null ? "" : afiliado.occupation; cliente.TELEFONO_HAB = afiliado.phone1; cliente.TELEFONO_OFIC = afiliado.phone2 == null ? "" : afiliado.phone2; cliente.TELEFONO_CEL = afiliado.phone3 == null ? "" : 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; } } //ENTIDAD CustomerInterest foreach (var interes in afiliado.Intereses.Where(x => x.Checked == true)) { CustomerInterest customerInterest = new CustomerInterest() { customerid = Affiliate.id, interestid = interes.id, comments = "" }; db.CustomerInterests.Add(customerInterest); } //ENTIDAD Photos_Affiliate if (file != null) { try { int length = file.ContentLength; byte[] buffer = new byte[length]; file.InputStream.Read(buffer, 0, length); var Photos_Affiliate = new Photos_Affiliate() { photo = buffer, photo_type = file.ContentType, Affiliate_id = Affiliate.id }; db.Photos_Affiliates.Add(Photos_Affiliate); } catch { return false; } } //PARA QUE LA IMAGEN DEL DOCUMENTO SEA OPCIONAL //else //{ // return false; //} //ENTIDAD AffiliateAud var affiliateauditoria = new AffiliateAud() { id = AfilliateAudID(), affiliateid = Affiliate.id, modifieduserid = (int)HttpContext.Current.Session["userid"], modifieddate = System.DateTime.Now, statusid = Affiliate.sumastatusid.Value, reasonsid = Globals.ID_REASONS_INICIAL, comments = afiliado.comments }; db.AffiliateAuds.Add(affiliateauditoria); //YA NO SE ENVIARÁ INFORMACIÓN A LA WEB //if (SaveWebPlazas(afiliado)) //{ db.SaveChanges(); return true; //} //else //{ // return false; //} } }