コード例 #1
0
        public ShippingModel GenerateGuide(ShippingModel shipping)
        {
            List <Agw_typeGuiaDetalle>    empaque = new List <Agw_typeGuiaDetalle>();
            List <Agw_typeNotificaciones> notif   = new List <Agw_typeNotificaciones>();

            ServiceGuiaManagement = new JRpcServerSoapManagerService();



            foreach (var values in shipping.content.Measures)
            {
                if (values.Weight < 1)
                {
                    values.Weight = 1;
                }
                if (values.Height == 0 || values.Width == 0 || values.Length == 0)
                {
                    values.Height = 1;
                    values.Width  = 1;
                    values.Length = 1;
                }

                empaque.Add(new Agw_typeGuiaDetalle()
                {
                    alto     = (float)values.Height,
                    ancho    = (float)values.Width,
                    largo    = (float)values.Length,
                    peso     = (float)values.Weight,
                    ubl      = GetProductCode(),
                    unidades = 1
                });
            }

            notif.Add(new Agw_typeNotificaciones()
            {
                destino_notificacion = shipping.origin.Email,
                tipo_medio           = "1"
            });

            Agw_typeGenerarGuiaIn Guia = new Agw_typeGenerarGuiaIn
            {
                centro_costos = "Kiosko_1",
                //notificaciones = notif.ToArray(),
                clave = PWD,

                id_cliente             = 29508,
                nombre_remitente       = shipping.origin.Name,
                direccion_remitente    = shipping.origin.Location.Address,
                telefono_remitente     = shipping.origin.Phone,
                ciudad_remitente       = shipping.origin.Location.CityCode,
                nit_destinatario       = shipping.receiver.Identification,
                nombre_destinatario    = shipping.receiver.Name,
                direccion_destinatario = shipping.receiver.Location.Address,
                ciudad_destinatario    = shipping.receiver.Location.CityCode,
                telefono_destinatario  = shipping.receiver.Phone,
                valor_declarado        = (float)shipping.content.Value,
                codigo_producto        = GetProductCode(),
                codigo_cuenta          = 1,
                nivel_servicio         = 1,
                contenido         = shipping.content.Description,
                referencia        = "Factura",
                observaciones     = "Guia generada por Kiosko",
                estado            = "IMPRESO",
                detalle           = empaque.ToArray(),
                margen_izquierdo  = 2,
                margen_superior   = 2,
                formato_impresion = "pdf",
                usuario           = "mekagroup.ws",
            };

            try
            {
                var response = ServiceGuiaManagement.Guias_generarGuia(Guia);
                shipping.guide.Code = response.codigo_remision;
                shipping.guide.Url  = response.url_terceros;
                shipping.guide      = GetPdfGuide(shipping).guide;


                CoordinadoraConfigModel configCoord = ConfigService.readCoordinadoraConfig();

                if (configCoord.BoxesInStorage == false)
                {////LLAMAR SERVICIO DE RECOGIDA.
                    ServiceCotizadorManagement = new RpcServerSoapManagerService();
                    Recogidas_solicitarIn recogida = new Recogidas_solicitarIn()
                    {
                        apikey          = APIKEY,
                        clave           = Cont,
                        fecha_recogida  = Utilities.GetDate(),
                        nit_cliente     = "900472103",
                        div_cliente     = "01",
                        nombre_contacto = "Kiosko",
                        direccion       = "Calle 67 52-20",
                        ciudad_origen   = Origen,
                        nombre_empresa  = "Mekagroup SAS",
                        referencia      = shipping.guide.Code,
                        estado          = 0,
                        telefono        = "3046570967",
                        producto        = 4,
                        modalidad       = 2,

                        ciudad_destino = shipping.receiver.Location.CityCode
                    };
                    Recogidas_solicitarOut sol = ServiceCotizadorManagement.Recogidas_programar(recogida);

                    configCoord.BoxesInStorage = true;
                    Kiosko.Helpers.Utilities.WriteJson(Properties.Settings.Default.PAYMENT_CONFIGURATION_PATH + "coordinadora.json", configCoord);
                }
                AlegraService alg = new AlegraService();

                ///REMOVE THIS ON RELEASE
                AlegraResult fact = alg.CreateDummyInvoice(shipping);


                //   = alg.CreateInvoice(shipping);
                FacturaCoordinadora factura = new FacturaCoordinadora();
                FacturaModel        mdl     = new FacturaModel();
                mdl.Model       = shipping;
                mdl.Res         = Utilities.GetResolucion();
                mdl.Direccion   = "Calle 12 sur # 51 79";
                mdl.NIT         = "900.472.103-1";
                mdl.RazonSocial = "MekaGroup SAS";
                mdl.FactNumber  = fact.numberTemplate.number;
                mdl.Fecha       = Utilities.GetDate();
                List <FacturaModel> lst = new List <FacturaModel>();
                lst.Add(mdl);



                SaveInvoice(lst, shipping);



                //attempt to save guide locally

                //factura.DataSource = lst;
                //PdfExportOptions pdfOptions = new PdfExportOptions();
                //factura.CreateDocument(true);
                //factura.ExportToPdf(Properties.Settings.Default.GUIDE_PATH + "FACTURA.pdf");
                //factura.Dispose();
            }
            catch (Exception e)
            {
                shipping.error.HasError = true;
                shipping.error.Message  = "GenerateGuide : " + e.Message;
            }

            return(shipping);
        }
コード例 #2
0
        public Respuesta GenerarGuias(RemitenteDestinario remdes)
        {
            Respuesta res = new Respuesta();

            switch (remdes.TipoTransportadora)
            {
            case "Saferbo":

                int kilos = 0;

                foreach (Unidades unidad in remdes.unidades)
                {
                    kilos = kilos + unidad._pesovol;
                }

                string   url      = ConfigurationManager.AppSettings["URL_Saferbo"] + remdes.idciudadestino + "&origen=" + remdes.idciudadespacho + "&ds_peso=" + kilos + "&ds_valoracion=" + remdes.valordec + "&ds_largo=" + 1 + "&ds_ancho=" + 1 + "&ds_alto=" + 1 + "&ds_pesovol=" + kilos + "&ds_contraentrega=" + 0 + "&tipoacceso=" + 1 + "&tipodatos=" + 2 + "&ds_cantidad=" + 0 + "&dscodigocliente=" + ConfigurationManager.AppSettings["dscodigocliente"] + "&idnegociacion=" + 1 + "&idtipoenvio=" + 1 + "&idtipoliquidacion=" + 1 + "&idtarifaxtrayecto=" + 2 + "&dsnitr=" + remdes.nitr + "&dsnombrer=" + remdes.nombrer + "&dstelr=" + remdes.telr + "&dsdirr=" + remdes.dirr + "&dsunidad=" + 0 + "&dskilos=" + 0 + "&dsvalordec=" + remdes.valordec + "&dsobs_1=" + remdes.obs_1 + "&dsobs_2=" + remdes.obs_2 + "&dsobs_3=" + remdes.obs_3 + "&dscodigodestinatario=" + 000 + "&dsnitd=" + remdes.nitd + "&dsnombred=" + remdes.nombred + "&dsteld=" + remdes.teld + "&dsdird=" + remdes.dird + "&dsvalorrecaudar=" + remdes.valorrecaudar + "&arunidades=" + remdes.cantidadCajas + "&idconsec=" + 0 + "&solocotizar=0&generarguia=1";
                string   urlfinal = url.Replace(" ", "%20");
                var      json     = new WebClient().DownloadString(urlfinal);
                string[] response = json.Split('|');
                string[] rem      = response[0].Split('¿');

                if (string.IsNullOrEmpty(response[1]))
                {
                    res.guia       = "0";
                    res.ULR_Rotulo = "";
                    res.respuesta  = json;
                }
                else
                {
                    res.guia       = rem[2];
                    res.ULR_Rotulo = response[4] + response[3];
                    res.respuesta  = "Se genera la guía correctamente";
                }


                break;

            case "Servientrega":
                WebServicesServientrega.GeneracionGuias proGuias = new WebServicesServientrega.GeneracionGuias();

                WebServicesServientrega.CargueMasivoExternoDTO[] cargueExterno = new WebServicesServientrega.CargueMasivoExternoDTO[1];

                int CantEnvios = 1;
                cargueExterno[0]           = new WebServicesServientrega.CargueMasivoExternoDTO();
                cargueExterno[0].objEnvios = new WebServicesServientrega.EnviosExterno[CantEnvios];

                WebServicesServientrega.AuthHeader objAuth = new WebServicesServientrega.AuthHeader();

                objAuth.Id_CodFacturacion = ConfigurationManager.AppSettings["Id_CodFacturacion"];
                objAuth.login             = ConfigurationManager.AppSettings["login"];
                objAuth.Nombre_Cargue     = ConfigurationManager.AppSettings["Nombre_Cargue"];
                objAuth.pwd = ConfigurationManager.AppSettings["pwd"];

                proGuias.AuthHeaderValue = objAuth;


                cargueExterno[0].objEnvios[0] = new WebServicesServientrega.EnviosExterno();

                WebServicesServientrega.EnviosExterno arrEnvios = new WebServicesServientrega.EnviosExterno();
                arrEnvios.Nom_Contacto             = remdes.nombred;
                arrEnvios.Des_Ciudad               = remdes.idciudadestino;
                arrEnvios.Des_DepartamentoDestino  = "";
                arrEnvios.Num_Piezas               = Convert.ToInt32(remdes.cantidadCajas);
                arrEnvios.Des_TipoGuia             = 2;
                arrEnvios.Ide_Producto             = 6;
                arrEnvios.Des_CiudadOrigen         = remdes.idciudadespacho;
                arrEnvios.Des_DepartamentoDestino  = ConfigurationManager.AppSettings["deptarmentoDestino"];
                arrEnvios.Des_IdArchivoOrigen      = "1";
                arrEnvios.Des_Direccion            = remdes.dird;
                arrEnvios.Des_MedioTransporte      = 1;
                arrEnvios.Des_TipoDuracionTrayecto = 1;
                arrEnvios.Des_Telefono             = remdes.teld;
                arrEnvios.Des_DiceContener         = remdes.diceContener;
                arrEnvios.Recoleccion_Esporadica   = "1";

                if (remdes._contraentrega)
                {
                    arrEnvios.Des_FormaPago = 4;
                }
                else
                {
                    arrEnvios.Des_FormaPago = 2;
                }

                arrEnvios.Num_ValorDeclaradoTotal = remdes.valordec;
                arrEnvios.Des_CorreoElectronico   = "";
                arrEnvios.Est_CanalMayorista      = false;



                arrEnvios.Nom_UnidadEmpaque          = ConfigurationManager.AppSettings["TipoEmpaqueServientrega"];
                arrEnvios.Num_Alto                   = remdes.unidades[0]._alto;
                arrEnvios.Num_Ancho                  = remdes.unidades[0]._ancho;
                arrEnvios.Num_Largo                  = remdes.unidades[0]._largo;
                arrEnvios.Num_PesoTotal              = remdes.unidades[0]._pesovol;
                arrEnvios.Num_Factura                = remdes.obs_1;
                arrEnvios.Gen_Sobreporte             = false;
                arrEnvios.Gen_Cajaporte              = false;
                arrEnvios.Des_VlrCampoPersonalizado1 = remdes.obs_2;
                arrEnvios.Des_UnidadLongitud         = "cm";
                arrEnvios.Des_UnidadPeso             = "kg";
                arrEnvios.Num_Guia                   = 0;
                arrEnvios.Doc_Relacionado            = remdes.nitd;
                arrEnvios.Ide_Num_Referencia_Dest    = remdes.teld;
                arrEnvios.Num_Recaudo                = remdes.valorrecaudar;


                cargueExterno[0].objEnvios[0] = arrEnvios;

                cargueExterno[0].objEnvios[0].objEnviosUnidadEmpaqueCargue = new WebServicesServientrega.EnviosUnidadEmpaqueCargue[arrEnvios.Num_Piezas];
                for (int pi = 0; pi < arrEnvios.Num_Piezas; pi++)
                {
                    var obj = new WebServicesServientrega.EnviosUnidadEmpaqueCargue();
                    cargueExterno[0].objEnvios[0].objEnviosUnidadEmpaqueCargue[pi] = new WebServicesServientrega.EnviosUnidadEmpaqueCargue();
                    obj.Des_IdArchivoOrigen = arrEnvios.Des_IdArchivoOrigen;
                    obj.Num_Alto            = remdes.unidades[pi]._alto;
                    obj.Num_Peso            = remdes.unidades[pi]._pesovol;
                    obj.Num_Largo           = remdes.unidades[pi]._largo;
                    obj.Num_Ancho           = remdes.unidades[pi]._ancho;
                    obj.Des_DiceContener    = remdes.diceContener;                                         //"CONTENIDO DE LA UNIDAD DE EMPAQUE";
                    obj.Num_Cantidad        = 1;                                                           //Cantidad de piezas de la Unidad de Empaque
                    obj.Num_ValorDeclarado  = remdes.valordec.ToString();
                    obj.Nom_UnidadEmpaque   = ConfigurationManager.AppSettings["TipoEmpaqueServientrega"]; //"UNIDAD DE EMPAQUE CREADA EN SISCLINET";
                    obj.Des_UnidadLongitud  = "cm";
                    obj.Des_UnidadPeso      = "kg";
                    cargueExterno[0].objEnvios[0].objEnviosUnidadEmpaqueCargue[pi] = obj;
                }


                string[] respuesta  = new string[1];
                byte[]   bytereport = new byte[1];

                if (proGuias.CargueMasivoExterno(ref cargueExterno, ref respuesta))
                {
                    int sFormatoImpresionGuia = cargueExterno[0].objEnvios[0].Des_TipoGuia;
                    proGuias.GenerarGuiaSticker(decimal.Parse(respuesta[0].ToString()), decimal.Parse(respuesta[respuesta.Length - 1].ToString()), objAuth.Id_CodFacturacion, sFormatoImpresionGuia, cargueExterno[0].objEnvios[0].Id_ArchivoCargar, false, ref bytereport);
                }

                if (respuesta[0].Length > 10)
                {
                    res.guia       = "0";
                    res.ULR_Rotulo = "";
                    res.respuesta  = respuesta[0];
                }
                else
                {
                    res.guia = respuesta[0];

                    string sfile = ConfigurationManager.AppSettings["rutaGuiaPDF"] + respuesta[0] + ".pdf";
                    File.WriteAllBytes(sfile, bytereport);

                    res.ULR_Rotulo = sfile;
                    res.respuesta  = "Se genera la guía correctamente";
                }


                break;

            case "Coordinadora":

                int cantidadEnvio = remdes.cantidadCajas;
                WebServicesCoordinadora.JRpcServerSoapManagerService webService = new JRpcServerSoapManagerService();

                WebServicesCoordinadora.Agw_typeGenerarGuiaIn objEnvio = new Agw_typeGenerarGuiaIn();

                long codRenmison = Convert.ToInt64(ConfigurationManager.AppSettings["Codigo_remision"]) + 1;

                new Utilidades().modificarWebConfigRemision(codRenmison);

                objEnvio.codigo_remision = codRenmison.ToString();

                objEnvio.id_cliente             = Convert.ToInt32(ConfigurationManager.AppSettings["Id_Cliente"]);
                objEnvio.fecha                  = "";
                objEnvio.id_remitente           = 0;
                objEnvio.nit_remitente          = "";
                objEnvio.nombre_remitente       = remdes.nombrer;
                objEnvio.direccion_remitente    = remdes.dirr;
                objEnvio.telefono_remitente     = remdes.telr;
                objEnvio.ciudad_remitente       = remdes.idciudadespacho;
                objEnvio.nit_destinatario       = remdes.nitd;
                objEnvio.div_destinatario       = "";
                objEnvio.nombre_destinatario    = remdes.nombred;
                objEnvio.direccion_destinatario = remdes.dird;
                objEnvio.ciudad_destinatario    = remdes.idciudadestino;
                objEnvio.telefono_destinatario  = remdes.teld;
                objEnvio.valor_declarado        = Convert.ToSingle(remdes.valordec);
                objEnvio.codigo_cuenta          = 1;
                objEnvio.codigo_producto        = 0;
                objEnvio.nivel_servicio         = 1;
                objEnvio.linea                  = "";
                objEnvio.contenido              = remdes.diceContener;
                objEnvio.referencia             = remdes.obs_1;
                objEnvio.observaciones          = remdes.obs_2;
                objEnvio.estado                 = "IMPRESO";

                WebServicesCoordinadora.Agw_typeGuiaDetalle[] items = new Agw_typeGuiaDetalle[cantidadEnvio];
                WebServicesCoordinadora.Agw_typeGuiaDetalle   item  = new Agw_typeGuiaDetalle();

                for (int i = 0; i < cantidadEnvio; i++)
                {
                    item.ubl            = 0;
                    item.alto           = remdes.unidades[i]._alto;
                    item.ancho          = remdes.unidades[i]._ancho;
                    item.largo          = remdes.unidades[i]._largo;
                    item.peso           = Convert.ToSingle(remdes.unidades[i]._pesovol);
                    item.unidades       = 1;
                    item.referencia     = remdes.obs_3;
                    item.nombre_empaque = ConfigurationManager.AppSettings["TipoEmpaqueCoordinadora"];
                    items[i]            = item;
                }


                objEnvio.detalle = items;

                objEnvio.cuenta_contable = "";
                objEnvio.centro_costos   = "";

                objEnvio.recaudos          = new Agw_typeGuiaDetalleRecaudo[cantidadEnvio];
                objEnvio.margen_izquierdo  = 2;
                objEnvio.margen_superior   = 2;
                objEnvio.usuario_vmi       = "";
                objEnvio.formato_impresion = "";
                objEnvio.atributo1_nombre  = "";
                objEnvio.atributo1_valor   = "";
                objEnvio.notificaciones    = new Agw_typeNotificaciones[cantidadEnvio];

                WebServicesCoordinadora.Agw_typeAtributosRetorno atributo = new Agw_typeAtributosRetorno();

                atributo.nit           = "";
                atributo.div           = "";
                atributo.nombre        = "";
                atributo.direccion     = "";
                atributo.codigo_ciudad = "";
                atributo.telefono      = "";

                objEnvio.atributos_retorno = atributo;

                objEnvio.nro_doc_radicados = "";
                objEnvio.nro_sobre         = "";
                objEnvio.codigo_vendedor   = 0;
                objEnvio.usuario           = ConfigurationManager.AppSettings["usuario"];
                objEnvio.clave             = new Utils.Utilidades().GetSHA256(ConfigurationManager.AppSettings["clave"]);

                try
                {
                    Agw_typeGenerarGuiaOut result = webService.Guias_generarGuia(objEnvio);


                    byte[] bytereported = new byte[1];

                    bytereported = Convert.FromBase64String(result.pdf_guia);

                    string sfile = ConfigurationManager.AppSettings["rutaGuiaPDF"] + result.codigo_remision + ".pdf";

                    System.IO.FileStream stream =
                        new FileStream(sfile, FileMode.CreateNew);
                    System.IO.BinaryWriter writer =
                        new BinaryWriter(stream);
                    writer.Write(bytereported, 0, bytereported.Length);
                    writer.Close();

                    res.guia       = result.codigo_remision;
                    res.ULR_Rotulo = result.url_terceros;
                    res.respuesta  = "Se genera la guía correctamente";
                }
                catch (Exception ex)
                {
                    res.guia       = "0";
                    res.ULR_Rotulo = "";
                    res.respuesta  = ex.Message;

                    throw;
                }



                break;
            }
            return(res);
        }