예제 #1
0
        public ChileSystems.DTE.Engine.Envio.EnvioDTE GenerarEnvioCliente(ChileSystems.DTE.Engine.Documento.DTE dte, string dteXML)
        {
            var EnvioCustomer = new ChileSystems.DTE.Engine.Envio.EnvioDTE();

            EnvioCustomer.SetDTE = new ChileSystems.DTE.Engine.Envio.SetDTE();
            EnvioCustomer.SetDTE.DTEs.Add(dte);
            EnvioCustomer.SetDTE.dteXmls.Add(dteXML);
            EnvioCustomer.SetDTE.Caratula            = new ChileSystems.DTE.Engine.Envio.Caratula();
            EnvioCustomer.SetDTE.Caratula.FechaEnvio = DateTime.Now;
            /*Fecha de Resolución y Número de Resolución se averiguan en el sitio del SII según ambiente de producción o certificación*/
            EnvioCustomer.SetDTE.Caratula.FechaResolucion  = DateTime.Now;
            EnvioCustomer.SetDTE.Caratula.NumeroResolucion = 80;

            EnvioCustomer.SetDTE.Caratula.RutEmisor   = rutEmpresa;
            EnvioCustomer.SetDTE.Caratula.RutEnvia    = rutCertificado;
            EnvioCustomer.SetDTE.Caratula.RutReceptor = dte.Documento.Encabezado.Receptor.Rut;

            /*Generalmente al cliente se le envía una sola factura, sin embargo si no es el caso,
             * se pueden agregar varias tal cual como está el método GenerarEnvioDTEToSII()*/
            EnvioCustomer.SetDTE.Caratula.SubTotalesDTE = new List <ChileSystems.DTE.Engine.Envio.SubTotalesDTE>()
            {
                new ChileSystems.DTE.Engine.Envio.SubTotalesDTE()
                {
                    Cantidad = 1,
                    TipoDTE  = dte.Documento.Encabezado.IdentificacionDTE.TipoDTE
                }
            };

            return(EnvioCustomer);
        }
예제 #2
0
        public ChileSystems.DTE.Engine.Envio.EnvioDTE GenerarEnvioDTEToSII(List <ChileSystems.DTE.Engine.Documento.DTE> dtes, List <string> xmlDtes)
        {
            var EnvioSII = new ChileSystems.DTE.Engine.Envio.EnvioDTE();

            EnvioSII.SetDTE    = new ChileSystems.DTE.Engine.Envio.SetDTE();
            EnvioSII.SetDTE.Id = "FENV010";
            /*Es necesario agregar en el envío, los objetos DTE como sus respectivos XML en strings*/
            foreach (var a in dtes)
            {
                EnvioSII.SetDTE.DTEs.Add(a);
            }
            foreach (var a in xmlDtes)
            {
                EnvioSII.SetDTE.dteXmls.Add(a);
                EnvioSII.SetDTE.signedXmls.Add(a);
            }


            EnvioSII.SetDTE.Caratula            = new ChileSystems.DTE.Engine.Envio.Caratula();
            EnvioSII.SetDTE.Caratula.FechaEnvio = DateTime.Now;
            /*Fecha de Resolución y Número de Resolución se averiguan en el sitio del SII según ambiente de producción o certificación*/
            EnvioSII.SetDTE.Caratula.FechaResolucion  = new DateTime(2013, 5, 30);
            EnvioSII.SetDTE.Caratula.NumeroResolucion = 0;

            EnvioSII.SetDTE.Caratula.RutEmisor     = rutEmpresa;
            EnvioSII.SetDTE.Caratula.RutEnvia      = rutCertificado;
            EnvioSII.SetDTE.Caratula.RutReceptor   = "60803000-K"; //Este es el RUT del SII
            EnvioSII.SetDTE.Caratula.SubTotalesDTE = new List <ChileSystems.DTE.Engine.Envio.SubTotalesDTE>();

            /*En la carátula del envío, se debe indicar cuantos documentos de cada tipo se están enviando*/
            var tipos = EnvioSII.SetDTE.DTEs.GroupBy(x => x.Documento.Encabezado.IdentificacionDTE.TipoDTE);

            foreach (var a in tipos)
            {
                EnvioSII.SetDTE.Caratula.SubTotalesDTE.Add(new ChileSystems.DTE.Engine.Envio.SubTotalesDTE()
                {
                    Cantidad = a.Count(),
                    TipoDTE  = a.ElementAt(0).Documento.Encabezado.IdentificacionDTE.TipoDTE
                });
            }

            return(EnvioSII);
        }