Beispiel #1
0
 private string ArmarLoteXML(FeaEntidades.InterFacturas.lote_comprobantes Lc)
 {
     //Deserializar ( pasar de FeaEntidades.InterFacturas.lote_comprobantes a string XML )
     MemoryStream ms = new MemoryStream();
     XmlTextWriter writer = new XmlTextWriter(ms, System.Text.Encoding.GetEncoding("ISO-8859-1"));
     System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(Lc.GetType());
     x.Serialize(writer, Lc);
     ms = (MemoryStream)writer.BaseStream;
     string LoteXML = ByteArrayToString(ms.ToArray());
     ms.Close();
     return LoteXML;
 }
Beispiel #2
0
 public static void SerializarC(out string LoteXML, FeaEntidades.InterFacturas.comprobante Lc)
 {
     //Serializar ( pasar de FeaEntidades.InterFacturas.lote_comprobantes a string XML )
     MemoryStream ms = new MemoryStream();
     XmlTextWriter writer = new XmlTextWriter(ms, System.Text.Encoding.GetEncoding("ISO-8859-1"));
     System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(Lc.GetType());
     x.Serialize(writer, Lc);
     ms = (MemoryStream)writer.BaseStream;
     LoteXML = ByteArrayToString(ms.ToArray());
     ms.Close();
     ms = null;
 }
Beispiel #3
0
        public static void ActualizarDatosCAE(eFact_Entidades.Lote Lote, FeaEntidades.InterFacturas.lote_comprobantes Lc)
        {
            MemoryStream ms;
            System.Xml.XmlTextWriter writer;
            System.Xml.Serialization.XmlSerializer x;
            String XmlizedString;
            
            //Actualizar lote
            ms = new MemoryStream();
            XmlizedString = null;
            writer = new XmlTextWriter(ms, System.Text.Encoding.GetEncoding("ISO-8859-1"));
            x = new System.Xml.Serialization.XmlSerializer(Lc.GetType());
            x.Serialize(writer, Lc);
            ms = (MemoryStream)writer.BaseStream;
            XmlizedString = eFact_RN.Tablero.ByteArrayToString(ms.ToArray());
            ms.Close();
            ms = null;
            Lote.LoteXmlIF = XmlizedString;

            eFact_Entidades.Comprobante comprobante =new eFact_Entidades.Comprobante();
            string sFecha = "";
            for (int i = 0; i < Lc.comprobante.Length; i++)
            {
                eFact_Entidades.Comprobante c = Lote.Comprobantes.Find((delegate(eFact_Entidades.Comprobante e1) { return e1.IdTipoComprobante == Convert.ToInt16(Lc.comprobante[i].cabecera.informacion_comprobante.tipo_de_comprobante.ToString()) && e1.NumeroComprobante == Lc.comprobante[i].cabecera.informacion_comprobante.numero_comprobante.ToString(); }));
                if (Lc.comprobante[i].cabecera.informacion_comprobante.cae != null)
                {
                    c.NumeroCAE = Lc.comprobante[i].cabecera.informacion_comprobante.cae.ToString();
                }
                if (Lc.comprobante[i].cabecera.informacion_comprobante.fecha_obtencion_cae != null)
                {
                    sFecha = Lc.comprobante[i].cabecera.informacion_comprobante.fecha_obtencion_cae.ToString();
                    c.FechaCAE = Convert.ToDateTime(sFecha.Substring(0, 4) + "/" + sFecha.Substring(4, 2) + "/" + sFecha.Substring(6, 2));
                }
                if (Lc.comprobante[i].cabecera.informacion_comprobante.fecha_vencimiento_cae != null)
                {
                    sFecha = Lc.comprobante[i].cabecera.informacion_comprobante.fecha_vencimiento_cae.ToString();
                    c.FechaVtoCAE = Convert.ToDateTime(sFecha.Substring(0, 4) + "/" + sFecha.Substring(4, 2) + "/" + sFecha.Substring(6, 2));
                }
                c.EstadoIFoAFIP = Lc.comprobante[i].cabecera.informacion_comprobante.resultado;
                c.ComentarioIFoAFIP = Lc.comprobante[i].cabecera.informacion_comprobante.motivo;
            }
        }
Beispiel #4
0
        public static string ComprobanteDetalleIBK(FeaEntidades.InterFacturas.Detalle.consulta_emisor_comprobante_detalle cecd, string certificado)
        {
            RN.IBKComprobantesListado.ReporteFacturaWebService objIBK = new RN.IBKComprobantesListado.ReporteFacturaWebService();
            objIBK.Url = System.Configuration.ConfigurationManager.AppSettings["URLinterfacturasListado"];
            if (System.Configuration.ConfigurationManager.AppSettings["Proxy"] != null && System.Configuration.ConfigurationManager.AppSettings["Proxy"] != "")
            {
                System.Net.WebProxy wp = new System.Net.WebProxy(System.Configuration.ConfigurationManager.AppSettings["Proxy"], false);
                string usuarioProxy = System.Configuration.ConfigurationManager.AppSettings["UsuarioProxy"];
                string claveProxy = System.Configuration.ConfigurationManager.AppSettings["ClaveProxy"];
                string dominioProxy = System.Configuration.ConfigurationManager.AppSettings["DominioProxy"];

                System.Net.NetworkCredential networkCredential = new System.Net.NetworkCredential(usuarioProxy, claveProxy, dominioProxy);
                wp.Credentials = networkCredential;
                objIBK.Proxy = wp;
            }
            string storeLocation = System.Configuration.ConfigurationManager.AppSettings["StoreLocation"];
            X509Store store;

            if (storeLocation == "CurrentUser")
            {
                store = new X509Store(StoreLocation.CurrentUser);
            }
            else
            {
                store = new X509Store(StoreLocation.LocalMachine);
            }
            store.Open(OpenFlags.ReadOnly);

            //Serializar ( pasar de FeaEntidades.InterFacturas.consulta_emisor_comprobante_listado a String XML )
            MemoryStream ms = new MemoryStream();
            XmlTextWriter writer = new XmlTextWriter(ms, System.Text.Encoding.GetEncoding("ISO-8859-1"));
            System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(cecd.GetType());
            x.Serialize(writer, cecd);
            ms = (MemoryStream)writer.BaseStream;
            string InputTexto = ByteArrayToString(ms.ToArray());
            ms.Close();
            ms = null;

            X509Certificate2Collection col = store.Certificates.Find(X509FindType.FindBySerialNumber, certificado, true);
            if (col.Count.Equals(1))
            {
                objIBK.ClientCertificates.Add(col[0]);
                System.Threading.Thread.Sleep(1000);
                string resultado = string.Empty;
                resultado = objIBK.getComprobanteDetalle(InputTexto);

                
                //XmlTextWriter writer = new XmlTextWriter(ms, System.Text.Encoding.GetEncoding("ISO-8859-1"));
                resultado = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + resultado;
                //resultado = resultado.Replace("\n", "");
                resultado = resultado.Replace("<consulta_emisor_comprobante_detalle_response xmlns=\"http://lote.schemas.cfe.ib.com.ar/\">", "");
                resultado = resultado.Replace("</consulta_emisor_comprobante_detalle_response>", "");
                resultado = resultado.Replace("<consulta_emisor_detalle_response>", "");
                resultado = resultado.Replace("</consulta_emisor_detalle_response>", "");

                resultado = resultado.Replace("<comprobante>", "<comprobante xmlns=\"http://lote.schemas.cfe.ib.com.ar/\">");
                resultado = resultado.Replace(" xsi:nil=\"true\"", "");
                resultado = resultado.Replace("https://qacfe.interbanking.com.ar/cfeWeb/LogoService?idlogo=", "https://srv1.interfacturas.com.ar/cfeWeb/LogoService?idlogo=");
                
                ////Deserializar
                //FeaEntidades.InterFacturas.Listado.consulta_emisor_listado_response lr = new FeaEntidades.InterFacturas.Listado.consulta_emisor_listado_response();
                //string xml = resultado;
                //var serializer = new System.Xml.Serialization.XmlSerializer(typeof(FeaEntidades.InterFacturas.Listado.consulta_emisor_listado_response));
                //using (TextReader reader = new StringReader(xml))
                //{
                //    lr = (FeaEntidades.InterFacturas.Listado.consulta_emisor_listado_response)serializer.Deserialize(reader);
                //}


                //if (lcr.Item.GetType() == typeof(IBK.lote_comprobantes_responseErrores_response))
                //{
                //    resultado = ((IBK.lote_comprobantes_responseErrores_response)lcr.Item).error[0].descripcion_error;
                //}
                //else if (!((IBK.lote_response)(lcr.Item)).estado.Equals("OK"))
                //{
                //    if (((IBK.lote_response)lcr.Item).errores_lote != null)
                //    {
                //        resultado = ((IBK.lote_response)lcr.Item).errores_lote[0].descripcion_error;
                //    }
                //    else
                //    {
                //        resultado = ((IBK.lote_response)lcr.Item).comprobante_response[0].errores_comprobante[0].descripcion_error;
                //    }
                //    throw new Exception(resultado);
                //}
                //else
                //{
                //    resultado = "Comprobante enviado satisfactoriamente a Interfacturas.";
                //}
                return resultado;
            }
            else
            {
                throw new Exception("Su certificado no está disponible en nuestro repositorio");
            }
        }
Beispiel #5
0
        public static void ActualizarDatos(eFact_Entidades.Lote Lote, FeaEntidades.InterFacturas.lote_comprobantes Lc)
        {
            MemoryStream ms;
            System.Xml.XmlTextWriter writer;
            System.Xml.Serialization.XmlSerializer x;
            String XmlizedString;

            //Actualizar lote
            ms = new MemoryStream();
            XmlizedString = null;
            writer = new XmlTextWriter(ms, System.Text.Encoding.GetEncoding("ISO-8859-1"));
            x = new System.Xml.Serialization.XmlSerializer(Lc.GetType());
            x.Serialize(writer, Lc);
            ms = (MemoryStream)writer.BaseStream;
            XmlizedString = eFact_RN.Tablero.ByteArrayToString(ms.ToArray());
            ms.Close();
            ms = null;
            Lote.LoteXmlIF = XmlizedString;
        }