Ejemplo n.º 1
0
        public string GenerarGuia(string OrderId, string CodigoAlterno, string RespuestaFactura)
        {
            if (RespuestaFactura.Contains("Factura: Importacion exitosa"))
            {
                DataSet DsGuias = _BDPedidos.Sp_ConsultarCoordinadoraPorOrderId(OrderId);

                if (DsGuias.Tables.Count > 0)
                {
                    foreach (DataRow Registro in DsGuias.Tables[0].Rows)
                    {
                        GenerarGuiaIn.codigo_remision = Registro["codigo_remision"].ToString();
                        GenerarGuiaIn.fecha           = Registro["fecha"].ToString();
                        GenerarGuiaIn.id_cliente      = Convert.ToInt32(Registro["id_cliente"]);
                        GenerarGuiaIn.usuario         = Registro["usuario"].ToString();
                        GenerarGuiaIn.clave           = _Encriptar.Clave(Registro["clave"].ToString());
                        GenerarGuiaIn.valor_declarado = Convert.ToInt32(Registro["valor_declarado"]);

                        GenerarGuiaIn.id_remitente        = Convert.ToInt32(Registro["id_remitente"]);
                        GenerarGuiaIn.direccion_remitente = Registro["direccion_remitente"].ToString();
                        GenerarGuiaIn.nombre_remitente    = Registro["nombre_remitente"].ToString();
                        GenerarGuiaIn.ciudad_remitente    = Registro["ciudad_remitente"].ToString();
                        GenerarGuiaIn.telefono_remitente  = Registro["telefono_remitente"].ToString();

                        GenerarGuiaIn.nit_destinatario       = Registro["nit_destinatario"].ToString();
                        GenerarGuiaIn.nombre_destinatario    = Registro["nombre_destinatario"].ToString();
                        GenerarGuiaIn.direccion_destinatario = Registro["direccion_destinatario"].ToString();
                        GenerarGuiaIn.ciudad_destinatario    = CodigoAlterno != string.Empty ? CodigoAlterno : Registro["ciudad_destinatario"].ToString();
                        GenerarGuiaIn.telefono_destinatario  = Registro["telefono_destinatario"].ToString();

                        GenerarGuiaIn.observaciones     = Registro["observaciones"].ToString();
                        GenerarGuiaIn.contenido         = Registro["contenido"].ToString();
                        GenerarGuiaIn.referencia        = Registro["referencia"].ToString();
                        GenerarGuiaIn.estado            = Registro["estado"].ToString();
                        GenerarGuiaIn.formato_impresion = Registro["formato_impresion"].ToString();
                        GenerarGuiaIn.codigo_cuenta     = Convert.ToInt32(Registro["codigo_cuenta"]);
                        GenerarGuiaIn.codigo_producto   = Convert.ToInt32(Registro["codigo_producto"]);
                        GenerarGuiaIn.nivel_servicio    = Convert.ToInt32(Registro["nivel_servicio"]);

                        GenerarGuiaIn.div_destinatario = Registro["div_destinatario"].ToString();
                        GenerarGuiaIn.centro_costos    = Registro["centro_costos"].ToString();
                        GenerarGuiaIn.cuenta_contable  = Registro["cuenta_contable"].ToString();

                        GuiaDetalle.largo          = Convert.ToInt32(Registro["largo"]);
                        GuiaDetalle.nombre_empaque = Registro["nombre_empaque"].ToString();
                        GuiaDetalle.peso           = Convert.ToInt32(Registro["peso"]);
                        GuiaDetalle.referencia     = Registro["referencia"].ToString();
                        GuiaDetalle.alto           = Convert.ToInt32(Registro["alto"]);
                        GuiaDetalle.ancho          = Convert.ToInt32(Registro["ancho"]);
                        GuiaDetalle.unidades       = Convert.ToInt32(Registro["unidades"]);
                        GuiaDetalle.ubl            = Convert.ToInt32(Registro["ubl"]);

                        ArrayGuiaDetalle[0]   = GuiaDetalle;
                        GenerarGuiaIn.detalle = ArrayGuiaDetalle;

                        if (Convert.ToInt32(Registro["valor"]) != 0)
                        {
                            DetalleRecaudo.referencia     = Registro["referencia_recaudo"].ToString();
                            DetalleRecaudo.valor          = Convert.ToInt32(Registro["valor"]);
                            DetalleRecaudo.valor_base_iva = Convert.ToInt32(Registro["valor_base_iva"]);
                            DetalleRecaudo.valor_iva      = Convert.ToInt32(Registro["valor_iva"]);
                            DetalleRecaudo.forma_pago     = Convert.ToInt32(Registro["forma_pago"]);

                            ArrayDetalleRecaudo[0] = DetalleRecaudo;
                            GenerarGuiaIn.recaudos = ArrayDetalleRecaudo;
                        }
                        else
                        {
                            GenerarGuiaIn.recaudos = null;
                        }

                        try
                        {
                            GenerarGuiaOut = ServerSoapManagerService.Guias_generarGuia(GenerarGuiaIn);
                            Thread.Sleep(1000);
                        }
                        catch (Exception Ex)
                        {
                            return(Ex.Message.ToString());
                        }

                        object[] ArrayRemision = new object[1];
                        ArrayRemision[0] = GenerarGuiaOut.codigo_remision;

                        RotulosIn.id_rotulo          = Registro["id_rotulo"].ToString();
                        RotulosIn.codigos_remisiones = ArrayRemision;
                        RotulosIn.usuario            = Registro["usuario"].ToString();
                        RotulosIn.clave = _Encriptar.Clave(Registro["clave"].ToString());

                        try
                        {
                            if (ArrayRemision[0].ToString() != "")
                            {
                                RotulosOut = ServerSoapManagerService.Guias_imprimirRotulos(RotulosIn);

                                _BDPedidos.Sp_AlmacenarGuias(Registro["OrderId"].ToString(), GenerarGuiaOut.codigo_remision.ToString(), GenerarGuiaOut.pdf_guia.ToString(), RotulosOut.rotulos.ToString());
                                _BDPedidos.Sp_ActualizarEstados(Registro["OrderId"].ToString(), "10");
                                Thread.Sleep(1000);
                            }
                        }
                        catch (Exception Ex)
                        {
                            return(Ex.Message.ToString());
                        }
                    }
                    return("Coordinadora: Importacion exitosa");
                }
                return("Coordinadora: No se encontraron datos por procesar");
            }
            return("Coordinadora: Sin Procesar");
        }
Ejemplo n.º 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);
        }