public static string ConsultarAFIPSerializer(FeaEntidades.InterFacturas.lote_comprobantes lc, Entidades.Sesion Sesion)
        {
            try
            {
                string respuesta = "";
                LoginTicket ticket;
                ar.gov.afip.wsw.Service objWS;
                ar.gov.afip.wsfev1.Service objWSFEV1;
                ar.gov.afip.wsfexv1.Service objWSFEXV1;
                
                System.Globalization.CultureInfo cedeiraCultura = new System.Globalization.CultureInfo(System.Configuration.ConfigurationManager.AppSettings["Cultura"], false);
                cedeiraCultura.DateTimeFormat = new System.Globalization.CultureInfo(System.Configuration.ConfigurationManager.AppSettings["CulturaDateTimeFormat"], false).DateTimeFormat;

                //Buscar tipo de punto de venta
                //lc.comprobante[0].cabecera.informacion_comprobante.punto_de_venta
                List<Entidades.PuntoVta> listaPV = Sesion.UN.PuntosVta.FindAll(delegate(Entidades.PuntoVta pv)
                {
                    return pv.Nro == lc.comprobante[0].cabecera.informacion_comprobante.punto_de_venta;
                });
                if (listaPV.Count != 0)
                {
                    if (listaPV[0].IdTipoPuntoVta == "Comun")
                    {
                        CrearTicket(Sesion, out ticket, out objWS, out objWSFEV1);
                        ar.gov.afip.wsfev1.FECompConsultaReq objFECompConsultaReq = new ar.gov.afip.wsfev1.FECompConsultaReq();
                        objFECompConsultaReq.CbteTipo = lc.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante;
                        objFECompConsultaReq.CbteNro = lc.comprobante[0].cabecera.informacion_comprobante.numero_comprobante;
                        objFECompConsultaReq.PtoVta = lc.comprobante[0].cabecera.informacion_comprobante.punto_de_venta;
                        ar.gov.afip.wsfev1.FECompConsultaResponse objFECompConsultaResponse = new ar.gov.afip.wsfev1.FECompConsultaResponse();
                        objFECompConsultaResponse = objWSFEV1.FECompConsultar(ticket.ObjAutorizacionfev1, objFECompConsultaReq);
                        if (objFECompConsultaResponse.Errors != null)
                        {
                            respuesta += DB.Funciones.ObjetoSerializado(objFECompConsultaResponse.Errors);
                        }
                        else
                        {
                            respuesta += DB.Funciones.ObjetoSerializado(objFECompConsultaResponse.ResultGet);
                        }
                    }
                    else if (listaPV[0].IdTipoPuntoVta == "Exportacion")
                    {

                        CrearTicketExpo(Sesion, out ticket, out objWS, out objWSFEXV1);
                        ar.gov.afip.wsfexv1.ClsFEXGetCMP getCMP = new ar.gov.afip.wsfexv1.ClsFEXGetCMP();
                        getCMP.Cbte_tipo = Convert.ToInt16(lc.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante);
                        getCMP.Punto_vta = Convert.ToInt16(lc.comprobante[0].cabecera.informacion_comprobante.punto_de_venta);
                        getCMP.Cbte_nro = lc.comprobante[0].cabecera.informacion_comprobante.numero_comprobante;
                        ar.gov.afip.wsfexv1.FEXGetCMPResponse cmpResponse = objWSFEXV1.FEXGetCMP(ticket.ObjAutorizacionfexv1, getCMP);
                        if (cmpResponse.FEXErr != null && cmpResponse.FEXErr.ErrMsg != "OK")
                        {
                            respuesta += DB.Funciones.ObjetoSerializado(cmpResponse.FEXErr);
                        }
                        else
                        {
                            respuesta += DB.Funciones.ObjetoSerializado(cmpResponse.FEXResultGet);
                        }
                    }
                    else
                    {
                        throw new Exception("Este tipo de punto de venta no está disponible para la consulta On-Line. Punto de venta: " + lc.comprobante[0].cabecera.informacion_comprobante.punto_de_venta.ToString() + " " + listaPV[0].IdTipoPuntoVta);
                    }
                }
                else
                {
                    throw new Exception("Problemas para obtener los datos del punto de venta: " + lc.comprobante[0].cabecera.informacion_comprobante.punto_de_venta.ToString());
                }
                


                return respuesta;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        public static string ConsultarAFIP(out string CaeNro, out string CaeFecVto, out string CaeFecPro, FeaEntidades.InterFacturas.lote_comprobantes lc, Entidades.Sesion Sesion)
        {
            try
            {
                string respuesta = "";
                CaeNro = "";
                CaeFecVto = "";
                CaeFecPro = "";
                LoginTicket ticket;
                ar.gov.afip.wsw.Service objWS;
                ar.gov.afip.wsfev1.Service objWSFEV1;
                ar.gov.afip.wsfexv1.Service objWSFEXV1;

                List<Entidades.PuntoVta> listaPV = Sesion.UN.PuntosVta.FindAll(delegate(Entidades.PuntoVta pv)
                {
                    return pv.Nro == lc.comprobante[0].cabecera.informacion_comprobante.punto_de_venta;
                });
                if (listaPV.Count != 0)
                {
                    if (listaPV[0].IdTipoPuntoVta == "Comun")
                    {
                        CrearTicket(Sesion, out ticket, out objWS, out objWSFEV1);

                        ar.gov.afip.wsfev1.FECompConsultaReq objFECompConsultaReq = new ar.gov.afip.wsfev1.FECompConsultaReq();
                        objFECompConsultaReq.CbteTipo = lc.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante;
                        objFECompConsultaReq.CbteNro = lc.comprobante[0].cabecera.informacion_comprobante.numero_comprobante;
                        objFECompConsultaReq.PtoVta = lc.comprobante[0].cabecera.informacion_comprobante.punto_de_venta;
                        ar.gov.afip.wsfev1.FECompConsultaResponse objFECompConsultaResponse = new ar.gov.afip.wsfev1.FECompConsultaResponse();
                        objFECompConsultaResponse = objWSFEV1.FECompConsultar(ticket.ObjAutorizacionfev1, objFECompConsultaReq);
                        System.Globalization.CultureInfo cedeiraCultura = new System.Globalization.CultureInfo(System.Configuration.ConfigurationManager.AppSettings["Cultura"], false);
                        cedeiraCultura.DateTimeFormat = new System.Globalization.CultureInfo(System.Configuration.ConfigurationManager.AppSettings["CulturaDateTimeFormat"], false).DateTimeFormat;
                        if (objFECompConsultaResponse.Errors != null)
                        {
                            foreach (ar.gov.afip.wsfev1.Err err in objFECompConsultaResponse.Errors)
                            {
                                respuesta = err.Code + "-" + err.Msg + "\r\n";
                            }
                        }
                        else
                        {
                            //respuesta += DateTime.ParseExact(objFECompConsultaResponse.ResultGet.FchProceso, "yyyyMMddHHmmss", cedeiraCultura);
                            if (objFECompConsultaResponse.ResultGet.Iva != null)
                            {
                            }
                            respuesta += "Resultado: " + objFECompConsultaResponse.ResultGet.Resultado + "\\n";
                            //if (objFECompConsultaResponse.ResultGet.Concepto != 0)
                            //{
                            //    respuesta += "Concepto: " + objFECompConsultaResponse.ResultGet.Concepto.ToString();
                            //}
                            respuesta += "CAE: " + objFECompConsultaResponse.ResultGet.CodAutorizacion;
                            respuesta += "CAE Fec.Vto: " + objFECompConsultaResponse.ResultGet.FchVto;
                            CaeNro = objFECompConsultaResponse.ResultGet.CodAutorizacion;
                            CaeFecVto = objFECompConsultaResponse.ResultGet.FchVto;
                            CaeFecPro = objFECompConsultaResponse.ResultGet.FchProceso;
                        }
                    }
                    else if (listaPV[0].IdTipoPuntoVta == "Exportacion")
                    {
                        CrearTicketExpo(Sesion, out ticket, out objWS, out objWSFEXV1);
                        ar.gov.afip.wsfexv1.ClsFEXGetCMP getCMP = new ar.gov.afip.wsfexv1.ClsFEXGetCMP();
                        getCMP.Cbte_tipo = Convert.ToInt16(lc.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante);
                        getCMP.Punto_vta = Convert.ToInt16(lc.comprobante[0].cabecera.informacion_comprobante.punto_de_venta);
                        getCMP.Cbte_nro = lc.comprobante[0].cabecera.informacion_comprobante.numero_comprobante;
                        ar.gov.afip.wsfexv1.FEXGetCMPResponse cmpResponse = objWSFEXV1.FEXGetCMP(ticket.ObjAutorizacionfexv1, getCMP);
                        System.Globalization.CultureInfo cedeiraCultura = new System.Globalization.CultureInfo(System.Configuration.ConfigurationManager.AppSettings["Cultura"], false);
                        cedeiraCultura.DateTimeFormat = new System.Globalization.CultureInfo(System.Configuration.ConfigurationManager.AppSettings["CulturaDateTimeFormat"], false).DateTimeFormat;
                        if (cmpResponse.FEXErr != null && cmpResponse.FEXErr.ErrMsg != "OK")
                        {
                            respuesta = cmpResponse.FEXErr.ErrCode + "-" + cmpResponse.FEXErr.ErrMsg;
                        }
                        else
                        {
                            respuesta += "Resultado: " + cmpResponse.FEXResultGet.Resultado + "\\n";
                            respuesta += "CAE: " + cmpResponse.FEXResultGet.Cae;
                            respuesta += "CAE Fec.Vto: " + cmpResponse.FEXResultGet.Fch_venc_Cae;
                            CaeNro = cmpResponse.FEXResultGet.Cae;
                            CaeFecVto = cmpResponse.FEXResultGet.Fch_venc_Cae;
                            CaeFecPro = cmpResponse.FEXResultGet.Fecha_cbte_cae;
                        }
                    }
                    else
                    {
                        throw new Exception("Este tipo de punto de venta no está disponible para la consulta On-Line. Punto de venta: " + lc.comprobante[0].cabecera.informacion_comprobante.punto_de_venta.ToString() + " " + listaPV[0].IdTipoPuntoVta);
                    }
                }
                return respuesta;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }