Exemplo n.º 1
0
        public ActionResult Envia_Courier(string IdTienda, string CodInterno, string NroDocumento, string Ruc, string Cliente, string Flag)
        {
            Dat_ChatShop datos       = new Dat_ChatShop();
            var          oJRespuesta = new JsonResponse();

            if (Flag == "NO")
            {
                datos.insertar_ge_chatshop(IdTienda, CodInterno, NroDocumento, "");
                oJRespuesta.Message = ("3").ToString();
                oJRespuesta.Data    = true;
                oJRespuesta.Success = true;
            }
            else
            {
                /*delivery CHASKI*/
                ChatShop          cvCzk       = selectVenta(IdTienda, CodInterno);
                List <Ent_Chazki> list_chazki = new List <Ent_Chazki>();

                Dat_CanalVenta datos2 = new Dat_CanalVenta();

                string[] desUbigeo = null;
                desUbigeo = datos2.get_des_ubigeo(cvCzk.informacionTiendaDestinatario.ubigeo);
                if (desUbigeo == null)
                {
                    oJRespuesta.Message = ("2").ToString();
                    oJRespuesta.Data    = false;
                    oJRespuesta.Success = false;
                    return(Json(oJRespuesta, JsonRequestBehavior.AllowGet));
                }

                if (cvCzk.informacionTiendaEnvio != null)
                {
                    /* DATA CHASKI : PRODUCCION*/

                    Ent_Chazki chazki = new Ent_Chazki();
                    chazki.storeId           = cvCzk.informacionTiendaEnvio.chaski_storeId;  // "10411"; // proporcionado por chazki
                    chazki.branchId          = cvCzk.informacionTiendaEnvio.chaski_branchId; // proporcionado por chazki
                    chazki.deliveryTrackCode = NroDocumento.Replace("-", "");
                    chazki.proofPayment      = "Ninguna";                                    // por definir la evindencia que será entregada al cliente
                    chazki.deliveryCost      = 0;
                    chazki.mode          = "Regular";                                        //pendiente definir el modo con el que se va a trabajar el canal de venta.
                    chazki.time          = "";
                    chazki.paymentMethod = "Pagado";
                    chazki.country       = "PE";

                    /* DATA CHASKI : TEST*/

                    //Ent_Chazki chazki = new Ent_Chazki();
                    //chazki.storeId = "10411";
                    //chazki.branchId = "CCSC-B187";
                    //chazki.deliveryTrackCode = NroDocumento;
                    //chazki.proofPayment = "Ninguna"; // por definir la evindencia que será entregada al cliente
                    //chazki.deliveryCost = 0;
                    //chazki.mode = "Regular"; //pendiente definir el modo con el que se va a trabajar el canal de venta.
                    //chazki.time = "";
                    //chazki.paymentMethod = "Pagado";
                    //chazki.country = "PE";

                    /* DATA ARTICULO*/

                    List <Ent_ItemSold_2> listItemSold = new List <Ent_ItemSold_2>();
                    foreach (var producto in cvCzk.detalles)
                    {
                        if (producto.codigoProducto != "9999997" && producto.fd_colo == "")
                        {
                            Ent_ItemSold_2 _item = new Ent_ItemSold_2();
                            _item.name     = producto.nombreProducto;
                            _item.currency = "PEN";
                            _item.price    = Convert.ToDouble(producto.total);
                            _item.weight   = 0.3;
                            _item.volumen  = 0;
                            _item.quantity = producto.cantidad;
                            _item.unity    = "Caja";
                            _item.size     = "M";
                            listItemSold.Add(_item);
                        }
                    }
                    chazki.listItemSold   = listItemSold;
                    chazki.notes          = "Entregar a Cliente";
                    chazki.documentNumber = Ruc;
                    chazki.lastName       = "";
                    //chazki.email = "*****@*****.**";
                    if (chazki.email == "" || chazki.email == null)
                    {
                        chazki.email = "servicio.clientes.peru @bata.com";
                    }
                    else
                    {
                        chazki.email = cvCzk.informacionTiendaDestinatario.email;
                    }

                    chazki.phone = cvCzk.informacionTiendaDestinatario.telefono;
                    int CadRuc = Ruc.Length;

                    if (CadRuc > 8)
                    {
                        chazki.documentType = "RUC";
                        chazki.companyName  = Cliente;
                        chazki.name_tmp     = "";
                    }
                    else
                    {
                        chazki.documentType = "DNI";
                        chazki.companyName  = "";
                        chazki.name_tmp     = Cliente;
                    }
                    /* DATA DIRECCION*/

                    List <Ent_AddressClient_2> listAdressClient = new List <Ent_AddressClient_2>();
                    Ent_AddressClient_2        addressClient    = new Ent_AddressClient_2();
                    addressClient.nivel_2   = desUbigeo[0]; //(cvCzk.tipo == "3" ? (cvCzk.ubigeoCliente.ToString() == "" ? cvCzk.ubigeoTienda.Substring(0, 2) : cvCzk.ubigeoCliente.Substring(0, 2)) : cvCzk.ubigeoTienda.Substring(0, 2));
                    addressClient.nivel_3   = desUbigeo[1]; //(cvCzk.tipo == "3" ? (cvCzk.ubigeoCliente.ToString() == "" ? cvCzk.ubigeoTienda.Substring(2, 2) : cvCzk.ubigeoCliente.Substring(2, 2)) : cvCzk.ubigeoTienda.Substring(2, 2));
                    addressClient.nivel_4   = desUbigeo[2]; //(cvCzk.tipo == "3" ? (cvCzk.ubigeoCliente.ToString() == "" ? cvCzk.ubigeoTienda.Substring(4) : cvCzk.ubigeoCliente.Substring(4)) : cvCzk.ubigeoTienda.Substring(4));
                    addressClient.name      = cvCzk.informacionTiendaDestinatario.direccion_entrega;
                    addressClient.reference = cvCzk.informacionTiendaDestinatario.referencia;
                    addressClient.alias     = "No Alias";
                    Ent_Position_2 position = new Ent_Position_2();
                    position.latitude      = 0;
                    position.longitude     = 0;
                    addressClient.position = position;
                    listAdressClient.Add(addressClient);
                    chazki.addressClient = listAdressClient;

                    list_chazki.Add(chazki);

                    string            jsonChazki = JsonConvert.SerializeObject(list_chazki);
                    Response_Registro rpta       = new Response_Registro();
                    using (var http = new HttpClient())
                    {
                        http.DefaultRequestHeaders.Add("chazki-api-key", cvCzk.informacionTiendaEnvio.chaski_api_key); //PRODUCCION
                        //http.DefaultRequestHeaders.Add("chazki-api-key", "KfXfqgEBhfMK4T8Luw8ba91RynMtjzTY"); //TEST

                        HttpContent content = new StringContent(jsonChazki);
                        content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                        var request = http.PostAsync("https://integracion.chazki.com:8443/chazkiServices/delivery/create/deliveryService", content); //PRODUCCION

                        //var request = http.PostAsync("https://sandboxintegracion.chazki.com:8443/chazkiServices/delivery/create/deliveryService", content); //TEST

                        var response = request.Result.Content.ReadAsStringAsync().Result;
                        rpta = JsonConvert.DeserializeObject <Response_Registro>(response);
                    }
                    if (rpta.response == 1)
                    {
                        oJRespuesta.Message = (rpta.response).ToString();
                        oJRespuesta.Data    = true;
                        oJRespuesta.Success = true;

                        Dat_CanalVenta objCanal = new Dat_CanalVenta();
                        //datos.insertar_ge_cv(IdTienda, CodInterno, NroDocumento, rpta.codeDelivery);
                        datos.insertar_ge_chatshop(IdTienda, CodInterno, NroDocumento, rpta.codeDelivery);

                        //TempData["Success"] = "Pedido generado correctamente: " + rpta.codeDelivery;
                    }
                    else if (rpta.response == 99)
                    {
                        oJRespuesta.Message = (rpta.response).ToString();
                        oJRespuesta.Data    = false;
                        oJRespuesta.Success = false;

                        //TempData["Error"] = "Error al generar pedido. Error en el servidor" + " | " + rpta.descriptionResponse + " | " + rpta.codeDelivery + " | " + "Intentelo mas tarde.";
                    }
                    else
                    {
                        oJRespuesta.Message = (rpta.response).ToString();
                        oJRespuesta.Data    = false;
                        oJRespuesta.Success = false;

                        TempData["Error"] = "Error al generar pedido. " + rpta.descriptionResponse + "|" + rpta.codeDelivery;
                    }
                }
                else
                {
                    TempData["Error"] = "Error al generar guia. No existe informacion de recogo para la tienda.";
                }
            }
            return(Json(oJRespuesta, JsonRequestBehavior.AllowGet));


            //return RedirectToAction("ChatShop", "Consulta");
        }