示例#1
0
 //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;
                //}
            }
        }