Example #1
0
 //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;
         }
     }
 }
Example #2
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;
         }
     }
 }
        public bool CambiarTipoDocumento(AfiliadoSuma afiliado, string tipoDocumento)
        {
            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.docnumber = tipoDocumento + afiliado.docnumber.Substring(1);
                    affiliate.modifieduserid = (int)HttpContext.Current.Session["userid"];
                    affiliate.modifieddate = System.DateTime.Now;
                }
                // Entidad: CLIENTE
                CLIENTE cliente = db.CLIENTES.FirstOrDefault(c => c.TIPO_DOCUMENTO + "-" + c.NRO_DOCUMENTO == afiliado.docnumber);
                if (cliente != null)
                {
                    CLIENTE clienteNuevo = new CLIENTE()
                    {
                        TIPO_DOCUMENTO = tipoDocumento,
                        NRO_DOCUMENTO = cliente.NRO_DOCUMENTO,
                        E_MAIL = cliente.E_MAIL,
                        NOMBRE_CLIENTE2 = cliente.NOMBRE_CLIENTE2,
                        APELLIDO_CLIENTE1 = cliente.APELLIDO_CLIENTE1,
                        APELLIDO_CLIENTE2 = cliente.APELLIDO_CLIENTE2,
                        FECHA_NACIMIENTO = cliente.FECHA_NACIMIENTO,

                        //SEXO = cliente.SEXO,
                        //EDO_CIVIL = cliente.EDO_CIVIL,
                        //COD_SUCURSAL = cliente.COD_SUCURSAL,

                        //nuevos campos con claves a tablas nuevas
                        SEX_ID = Convert.ToInt32(afiliado.gender),
                        CIVIL_STATUS_ID = Convert.ToInt32(afiliado.maritalstatus),

                        OCUPACION = cliente.OCUPACION,
                        TELEFONO_HAB = cliente.TELEFONO_HAB,
                        TELEFONO_OFIC = cliente.TELEFONO_OFIC,
                        TELEFONO_CEL = cliente.TELEFONO_CEL,
                        COD_ESTADO = cliente.COD_ESTADO,
                        COD_CIUDAD = cliente.COD_CIUDAD,
                        COD_MUNICIPIO = cliente.COD_MUNICIPIO,
                        COD_PARROQUIA = cliente.COD_PARROQUIA,
                        COD_URBANIZACION = cliente.COD_URBANIZACION,
                        FECHA_CREACION = cliente.FECHA_CREACION
                    };

                    //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();

                    clienteNuevo.TIPO_DOCUMENTO = tipoDocumento;
                    //NACIONALIDAD => NINGUNA = "0", VENEZOLANO = "1", EXTRANJERO = "2"
                    if (tipoDocumento == "V")
                    {
                        //clienteNuevo.NACIONALIDAD = "1";
                        //nuevos campos con claves a tablas nuevas
                        clienteNuevo.NACIONALITY_ID = 1;

                    }
                    else if (tipoDocumento == "E" || tipoDocumento == "P")
                    {
                        //clienteNuevo.NACIONALIDAD = "2";
                        //nuevos campos con claves a tablas nuevas
                        clienteNuevo.NACIONALITY_ID = 2;
                    }
                    else
                    {
                        //clienteNuevo.NACIONALIDAD = "0";
                        //nuevos campos con claves a tablas nuevas
                        clienteNuevo.NACIONALITY_ID = 0;
                    }
                    db.CLIENTES.Add(clienteNuevo);
                    db.CLIENTES.Remove(cliente);
                }
                // 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.TIPO_DOCUMENTO = tipoDocumento;
                    tarjeta.COD_USUARIO = (int)HttpContext.Current.Session["userid"];
                }
                //Entidad: AffiliateAud
                //inserto registro por cambio de tipo de documento
                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);
                db.SaveChanges();
                return true;
            }
        }
        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;
                //}
            }
        }
        //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;
                //}
            }
        }