Exemple #1
0
        public HttpResponseMessage insertCustomer(DTOcustomer request)
        {
            var user = KOCAuthorizeAttribute.getCurrentUser();

            using (var db = new CRMEntities())
                using (var tran = db.Database.BeginTransaction())
                    try
                    {
                        var errormessage = new DTOResponseError {
                            errorCode = 1, errorMessage = "İşlem Başarılı"
                        };
                        var p = new customer
                        {
                            blockid           = request.block.blockid,
                            tckimlikno        = request.tckimlikno,
                            customername      = request.customername,
                            flat              = request.flat,
                            gsm               = request.gsm,
                            phone             = request.phone,
                            birthdate         = request.birthdate,
                            creationdate      = DateTime.Now,
                            lastupdated       = DateTime.Now,
                            updatedby         = user.userId,
                            deleted           = false,
                            customerstatus    = request.customer_status.ID,
                            telstatu          = request.telStatus.id,
                            tvstatu           = request.TvKullanımıStatus.id,
                            turkcellTv        = request.TurkcellTVStatus.id,
                            netstatu          = request.netStatus.id,
                            description       = request.description,
                            gsmstatu          = request.gsmKullanımıStatus.id,
                            iss               = request.issStatus.id,
                            emptorcustomernum = request.emptorcustomernum,
                            superonlineCustNo = request.superonlineCustNo,
                        };
                        db.customer.Add(p);
                        db.SaveChanges();
                        tran.Commit();
                        return(Request.CreateResponse(HttpStatusCode.OK, errormessage, "application/json"));
                    }
                    catch (Exception)
                    {
                        tran.Rollback();
                        var errormessage = new DTOResponseError {
                            errorCode = 2, errorMessage = "Hata Oluştu"
                        };
                        return(Request.CreateResponse(HttpStatusCode.OK, errormessage, "application/json"));
                    }
        }
 public HttpResponseMessage saveCustomerCard(DTOcustomer ct)
 {
     using (var db = new KOCSAMADLSEntities())
         using (var transaction = db.Database.BeginTransaction())
             try
             {
                 var oldCust = db.customer.Where(c => c.tc == ct.tc && c.deleted == false).ToList();
                 if (oldCust.Count == 0 || oldCust.Where(r => r.customerid == ct.customerid).FirstOrDefault() != null)
                 {
                     if (db.customer.Any(c => c.customerid == ct.customerid))
                     {
                         var item = db.customer.Where(c => c.customerid == ct.customerid).First();
                         item.customername      = ct.customername;
                         item.gsm               = ct.gsm;
                         item.tc                = ct.tc;
                         item.ilKimlikNo        = ct.ilKimlikNo;
                         item.ilceKimlikNo      = ct.ilceKimlikNo;
                         item.bucakKimlikNo     = ct.bucakKimlikNo;
                         item.mahalleKimlikNo   = ct.mahalleKimlikNo;
                         item.phone             = ct.phone;
                         item.birthdate         = ct.birthdate;
                         item.lastupdated       = DateTime.Now;
                         item.updatedby         = KOCAuthorizeAttribute.getCurrentUser().userId;
                         item.email             = ct.email;
                         item.superonlineCustNo = ct.superonlineCustNo;
                         item.xdslno            = ct.xdslno;
                         item.description       = ct.description;
                     }
                     db.SaveChanges();
                     transaction.Commit();
                     return(Request.CreateResponse(HttpStatusCode.OK, "ok", "application/json"));
                 }
                 return(Request.CreateResponse(HttpStatusCode.OK, "Girilen TC Numarası Başkasına Aittir", "application/json"));
             }
             catch
             {
                 transaction.Rollback();
                 return(Request.CreateResponse(HttpStatusCode.ExpectationFailed, "error", "application/json"));
             }
 }
        public HttpResponseMessage confirmCustomer(DTOcustomer request)
        {
            if (!control(Request))
            {
                return(Request.CreateResponse(HttpStatusCode.OK, false, "application/json"));
            }

            using (var db = new KOCSAMADLSEntities(false))
            {
                if (request.tc != null)
                {
                    var res = db.customer.Where(c => c.tc == request.tc && c.deleted == false).FirstOrDefault();
                    if (res != null)
                    {
                        return(Request.CreateResponse(HttpStatusCode.OK, res.toDTO(), "application/json"));
                    }
                    else
                    {
                        DTOResponseError error = new DTOResponseError();
                        error.errorCode = -1;
                        return(Request.CreateResponse(HttpStatusCode.OK, error.errorCode, "application/json"));
                    }
                }
                else if (request.superonlineCustNo != null)
                {
                    var res = db.customer.Where(c => c.superonlineCustNo == request.superonlineCustNo && c.deleted == false).OrderByDescending(n => n.customerid).ToList();
                    if (res.Count > 0)
                    {
                        customer retCust = null;
                        customer gecici  = null;
                        foreach (customer eleman in res)
                        { // müşterilerin taskları kontrol edilecek ana hiyerarşi tasklarında iptal olmayan ilk müşteriyi geri döndürecem
                            gecici = eleman;
                            var iTask = db.taskqueue.Where(t => t.deleted == false && t.attachedobjectid == eleman.customerid && t.status == 9116).ToList();
                            if (iTask.Count > 0)
                            {
                                foreach (adsl_taskqueue tt in iTask)
                                {
                                    if (db.task.Where(t => t.taskid == tt.taskid && (t.tasktype == 1 || t.tasktype == 2 || t.tasktype == 3 || t.tasktype == 5)).FirstOrDefault() == null)
                                    {
                                        retCust = eleman;
                                        break;
                                    }
                                }
                                if (retCust != null)
                                {
                                    break;
                                }
                            }
                            else
                            {
                                retCust = eleman;
                                break;
                            }
                        }
                        if (retCust == null)
                        {
                            retCust = gecici;
                        }
                        return(Request.CreateResponse(HttpStatusCode.OK, retCust.toDTO(), "application/json"));
                    }
                    else
                    {
                        DTOResponseError error = new DTOResponseError();
                        error.errorCode = -1;
                        return(Request.CreateResponse(HttpStatusCode.OK, error.errorCode, "application/json"));
                    }
                }
                else
                {
                    DTOResponseError error = new DTOResponseError();
                    error.errorCode = -1;
                    return(Request.CreateResponse(HttpStatusCode.OK, error.errorCode, "application/json"));
                }
            }
        }
        private void logs(DTOcustomer req, bool onay, string message)
        {
            using (var db = new KOCSAMADLSEntities())
                try {
                    StreamWriter log;

                    //string path = @"C:\Users\LENOVO\Desktop\log.txt";
                    string path = @"C:\Logs\Log_CallCenter.txt";

                    if (!File.Exists(path))
                    {
                        log = new StreamWriter(path);
                    }
                    else
                    {
                        log = File.AppendText(path);
                    }

                    var time   = DateTime.Now;
                    var person = db.personel.First(r => r.personelid == req.salespersonel);
                    var task   = db.task.First(r => r.taskid == req.taskid);

                    if (onay)
                    {
                        log.Write("KAYIT BAŞARILI !!! ** ");
                    }
                    else
                    {
                        log.Write("KAYIT HATALI !!! ** ");
                    }

                    log.Write(time);
                    log.Write(" **  Personel -> (" + person.personelid + ") " + person.personelname);
                    log.Write(" **  Task -> (" + task.taskid + ") " + task.taskname);

                    if (req.customerid > 0)
                    {
                        var customer = db.customer.First(r => r.customerid == req.customerid);
                        log.Write("  **  Müşteri -> GSM : " + customer.gsm + " TC : " + customer.tc + " Ad : " +
                                  customer.customername + " İl/İlçe : " + customer.ilKimlikNo + "/" + customer.ilceKimlikNo);
                    }
                    else
                    {
                        log.Write("  **  Müşteri -> GSM : " + req.gsm + " TC : " + req.tc + " Ad : " +
                                  req.customername + " İl/İlçe : " + req.ilKimlikNo + "/" + req.ilceKimlikNo);
                    }

                    if (req.productids.Length > 0)
                    {
                        log.Write("  **  Kampanya -> -");
                        foreach (var item in req.productids)
                        {
                            log.Write(item + "-");
                        }
                    }

                    log.Write("  **  Mesaj : " + message + "\r\n");

                    log.Close();
                }
                catch (Exception e) {
                    MailMessage mail = new MailMessage();
                    mail.From    = new MailAddress("*****@*****.**"); // Mail'in kimden olduğu adresi buraya yazılır.
                    mail.Subject = "LOG HATA";                                           // mail'in konusu

                    mail.To.Add("*****@*****.**");
                    mail.Body = string.Format(e.Message);                                         // mail'in ana kısmı, içeriği..
                    SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);                      // gmail üzerinden gönderileceğinden smtp.gmail.com ve onun 587 nolu portu kullanılır.

                    smtp.Credentials = new NetworkCredential("*****@*****.**", "612231Tb"); //hangi e-posta üzerinden gönderileceği. E posta, şifre'si yazılır.
                    smtp.EnableSsl   = true;

                    try {
                        smtp.Send(mail); // mail gönderilir.
                    }
                    catch (Exception) {
                        throw;
                    }
                }
        }
        public HttpResponseMessage saveSalesTask(DTOcustomer request)
        {
            if (!control(Request)) // client ip controlü
            {
                return(Request.CreateResponse(HttpStatusCode.OK, false, "application/json"));
            }

            int[] ils     = { 4, 5, 8, 19, 24, 25, 28, 29, 36, 52, 53, 55, 57, 60, 61, 69, 75, 76 }; // Bölge içi iller kaydedilecek taskid'si bölge içi veya dışı olarak seçim yapılacak
            bool  inCheck = false;                                                                   // Bölge içinde olan müşteri kontrolü

            foreach (int il in ils)
            {
                if (request.ilKimlikNo == il)
                {
                    inCheck = true;
                    break;
                }
            }
            if (!inCheck)
            {                              // Bölge içi gibi gelen taskı aynı türden bölge dışına çevir (Çağrı Satış Yalın -> Çağrı Satış Yalın Dış vb.)
                if (request.taskid == 122) // churn iç churn dış
                {
                    request.taskid = 121;
                }
                else if (request.taskid == 119)
                {
                    request.taskid = 120;
                }
                else if (request.taskid == 131)
                {
                    request.taskid = 133;
                }
            }

            using (var db = new KOCSAMADLSEntities())
                using (var transaction = db.Database.BeginTransaction())
                    try
                    {
                        var person = db.personel.FirstOrDefault(r => r.personelid == request.salespersonel);
                        if (person == null)
                        {
                            request.salespersonel = 1458; // Eğer gönderilen personel database'de yoksa ÇAĞRI MERKEZİ (KOÇ İLETİŞİM) satış yapsın
                        }
                        if (request.customerid == 0)
                        {
                            var oldCust = db.customer.Where(c => c.tc == request.tc && c.deleted == false).ToList();
                            if (oldCust.Count == 0)
                            {
                                var customer = new customer
                                {
                                    customername      = request.customername.ToUpper(),
                                    tc                = request.tc,
                                    gsm               = request.gsm,
                                    phone             = request.phone,
                                    ilKimlikNo        = request.ilKimlikNo,
                                    ilceKimlikNo      = request.ilceKimlikNo,
                                    bucakKimlikNo     = request.bucakKimlikNo,
                                    mahalleKimlikNo   = request.mahalleKimlikNo,
                                    yolKimlikNo       = 61,
                                    binaKimlikNo      = 61,
                                    daire             = 61,
                                    updatedby         = request.salespersonel ?? 1458, // ÇAĞRI MERKEZİ (KOÇ İLETİŞİM)
                                    description       = request.description,
                                    lastupdated       = DateTime.Now,
                                    creationdate      = DateTime.Now,
                                    deleted           = false,
                                    email             = request.email,
                                    superonlineCustNo = request.superonlineCustNo,
                                };
                                db.customer.Add(customer);
                                db.SaveChanges();

                                request.customerid = customer.customerid;
                            }
                            else
                            {
                                return(Request.CreateResponse(HttpStatusCode.OK, "Girilen TC Numarası Başkasına Aittir", "application/json"));
                            }
                        }

                        var taskqueue = new adsl_taskqueue
                        {
                            appointmentdate    = DateTime.Now,
                            attachedobjectid   = request.customerid,
                            attachedpersonelid = request.salespersonel ?? 1458, // yoksa ÇAĞRI MERKEZİ (KOÇ İLETİŞİM)'a ata
                            attachmentdate     = DateTime.Now,
                            creationdate       = DateTime.Now,
                            deleted            = false,
                            description        = request.taskdescription,
                            lastupdated        = DateTime.Now,
                            status             = null,
                            taskid             = request.taskid,
                            updatedby          = request.salespersonel ?? 1458,
                            fault = "Sinerji Çağrı"
                        };

                        db.taskqueue.Add(taskqueue);
                        db.SaveChanges();
                        taskqueue.relatedtaskorderid = taskqueue.taskorderno;
                        db.SaveChanges();

                        if (request.productids != null && request.productids.Length > 0)
                        {
                            foreach (var item in request.productids)
                            {
                                var customerproducst = new adsl_customerproduct
                                {
                                    taskid       = taskqueue.taskorderno,
                                    customerid   = request.customerid,
                                    productid    = item,
                                    campaignid   = request.campaignid,
                                    creationdate = DateTime.Now,
                                    lastupdated  = DateTime.Now,
                                    updatedby    = request.salespersonel ?? 1458,
                                    deleted      = false
                                };
                                db.customerproduct.Add(customerproducst);
                            }
                            db.SaveChanges();
                        }
                        transaction.Commit();
                        WebApiConfig.updateAdslData();
                        logs(request, true, "");
                        return(Request.CreateResponse(HttpStatusCode.OK, "Tamamlandı", "application/json"));
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        logs(request, false, e.Message);
                        return(Request.CreateResponse(HttpStatusCode.OK, e.Message, "application/json"));
                    }
        }