Exemple #1
0
        private static bool GenerateXML(WSLpgProd.LpgAuthType auth, long coe, WSLpgProd.LpgPortTypeClient client, Program program)
        {
            List <Datos> ListaCOE    = new List <Datos>();
            string       xml         = System.IO.File.ReadAllText(@"D:\CABL\Proyecto SAP\GHU\WS AFIP Granos\COE Produccion xml.xml");
            var          result      = program.LoadFromXMLString(xml);
            var          ListaResult = result.Items.ToList();

            foreach (var item in ListaResult)
            {
                string Metodo = item.Metodo.Replace(" ", "").Replace("\t", "");

                coe = Convert.ToInt64(item.COE.Replace(" ", ""));
                if (Metodo == "liquidacionXCoeConsultar")
                {
                    var    liquidacion = client.liquidacionXCoeConsultar(auth, coe, WSLpgProd.LpgSiNoType.N);
                    String xmlSalida   = program.ToXML(liquidacion);
                    File.WriteAllText(String.Format("D:\\CABL\\Proyecto SAP\\GHU\\WS AFIP Granos\\XML Prod\\Liquidacion Primaria {0}.xml", coe.ToString()), xmlSalida);
                }
                if (Metodo == "ajusteXCoeConsultar")
                {
                    var    liquidacion = client.ajusteXCoeConsultar(auth, coe, WSLpgProd.LpgSiNoType.N);
                    String xmlSalida   = program.ToXML(liquidacion);
                    File.WriteAllText(String.Format("D:\\CABL\\Proyecto SAP\\GHU\\WS AFIP Granos\\XML Prod\\Ajuste Liquidacion Primaria {0}.xml", coe.ToString()), xmlSalida);
                }
                if (Metodo == "lsgXCoeConsultar")
                {
                    var    liquidacion = client.lsgConsultarXCoe(auth, coe, WSLpgProd.LpgSiNoType.N);
                    String xmlSalida   = program.ToXML(liquidacion);
                    File.WriteAllText(String.Format("D:\\CABL\\Proyecto SAP\\GHU\\WS AFIP Granos\\XML Prod\\Liquidacion Secundaria {0}.xml", coe.ToString()), xmlSalida);
                }
            }

            return(true);
        }
Exemple #2
0
        static void Main(string[] args)
        {
            #region auth
            var wsaaClient = new Wsaa.LoginCMSClient();

            string DEFAULT_URLWSAAWSDL = string.Format(wsaaClient.Endpoint.Address.Uri.ToString() + "{0}", "?wsdl"); //Toma la URL del Web Service WSAA para pasar como parámetro

            //TICKET DE ACCESO A WEB SERVICES
            var auth = new WSLpgProd.LpgAuthType();

            //ESTOS SON VALORES DE EJEMPLO HARDCODEADOS PARA TESTEAR QUE FUNCIONE ESTA APLICACION. ACÁ SE DEBE BUSCAR DESDE BD SI EXISTE ALGUN TICKET VALIDO PARA USAR
            string   tokenObtenido   = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pgo8c3NvIHZlcnNpb249IjIuMCI+CiAgICA8aWQgc3JjPSJDTj13c2FhLCBPPUFGSVAsIEM9QVIsIFNFUklBTE5VTUJFUj1DVUlUIDMzNjkzNDUwMjM5IiB1bmlxdWVfaWQ9IjMzODE2MzgyMTciIGdlbl90aW1lPSIxNTIzODc4NTM4IiBleHBfdGltZT0iMTUyMzkyMTc5OCIvPgogICAgPG9wZXJhdGlvbiB0eXBlPSJsb2dpbiIgdmFsdWU9ImdyYW50ZWQiPgogICAgICAgIDxsb2dpbiBlbnRpdHk9IjMzNjkzNDUwMjM5IiBzZXJ2aWNlPSJ3c2xwZyIgdWlkPSJTRVJJQUxOVU1CRVI9Q1VJVCAzMDUwMDA0OTQ2MCwgQ049Z3Jhbm9zIDIwMTgiIGF1dGhtZXRob2Q9ImNtcyIgcmVnbWV0aG9kPSIyMiI+CiAgICAgICAgICAgIDxyZWxhdGlvbnM+CiAgICAgICAgICAgICAgICA8cmVsYXRpb24ga2V5PSIzMDUwMDA0OTQ2MCIgcmVsdHlwZT0iNCIvPgogICAgICAgICAgICA8L3JlbGF0aW9ucz4KICAgICAgICA8L2xvZ2luPgogICAgPC9vcGVyYXRpb24+Cjwvc3NvPgo=";
            string   signObtenido    = "pNXXJQOWXnxMIK2pV8LketmcghnluO994QSZ0ws/t4ARsWADCageO3qYqMzSwLuL2z3tDSZWBxlXHO9g0LtFA3fo1IBFUzE8Jl7J16iOdmNYIBRMh/nzt6EatDPB+8CooaMc7v4CKoT+TgpXTFbPk+Q0jU+yKe/ujvK+6UQ79A8=";
            DateTime fechaExpiracion = Convert.ToDateTime("16/04/2018 22:44:00");

            //CUIT de quien se está conectando al Web Service (es el cuit que se puso cuando se creó el certificado digital)
            auth.cuit = 30500049460;



            if (fechaExpiracion > DateTime.Now) //EXISTE UN TICKET ACTIVO Y VALIDO
            {
                auth.token = tokenObtenido;
                auth.sign  = signObtenido;
            }
            else //NO EXISTE TICKET ACTIVO Y VALIDO. SE DEBE VOLVER A CONSUMIR EL WEB SERVICE WSAA PARA OBTENER NUEVO ACCESO
            {
                Autenticacion.LoginTicket ticket = new Autenticacion.LoginTicket(); //Clase desde donde se consume el WSAA.
                string         serialCertificado = "4a9820a3bc2db7f8"; //ESTE VALOR DEBERÍA SER GUARDADO Y OBTENIDO DESDE BD. ES EL SERIAL DEL CERTIFICADO DIGITAL
                TicketResponse resultado         = ticket.ObtenerLoginTicketResponse(DEFAULT_SERVICIO, DEFAULT_URLWSAAWSDL, "", DEFAULT_VERBOSE, serialCertificado);
                //NUEVO TICKET DE ACCESO VALIDO POR 12 HORAS. GUARDAR EN BD Y UTILIZARLO HASTA QUE EXPIRE
                auth.token = resultado.Token;
                auth.sign  = resultado.Sign;
            }

            #endregion

            //VALOR DE COE OBTENIDO DESDE ARCHIVO. DEBE SER UN BUCLE SI ES MAS DE UN COE.
            long coe = 0;

            //GENERAR ARCHIVO PDF?. SI NO SE USA SE PUEDE PONER WSLpg.LpgSiNoType.N.

            try
            {
                var webServiceClient = new WSLpg.LpgPortTypeClient(); //INSTANCIA DE CLIENTE PARA CONSUMIR METODOS
                var client           = new WSLpgProd.LpgPortTypeClient();

                var estadoServicios = client.dummy(); //DUMMY() ES EL METODO PARA CONSULTAR ESTADO DE SERVIDORES DE AFIP. ES EL UNICO QUE NO RECIBE PARAMETROS

                if (estadoServicios.appserver == "OK" && estadoServicios.authserver == "OK" && estadoServicios.dbserver == "OK")
                {
                    var program = new Program();
                    //bool lpg = program.LiquidacionPrimaria(auth, webServiceClient);
                    //bool lsg = program.LiquidacionSecundaria(auth, webServiceClient);
                    //bool cg = program.Certificado(auth, webServiceClient);
                    //bool ajusteunificado = program.AjusteUnificado(auth, webServiceClient);
                    //bool ajusteliquidacionsecundaria = program.AjusteLiquidacionSecundaria(auth, webServiceClient);


                    //GenerateXML(auth, coe, client, program);
                    //var resultado = client.liquidacionXCoeConsultar(auth, 330110040403, WSLpgProd.LpgSiNoType.S);
                    //String xml = program.ToXML(resultado);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }