예제 #1
0
        static void Main(string[] args)
        {
            //generamos el dte
            MakeDte.DTE dte = new MakeDte.DTE();

            dte.documento.ID = "DOC3238";
            dte.documento.encabezado.iddoc.TipoDTE = 1;
            dte.documento.encabezado.iddoc.Folio   = 1;
            dte.documento.encabezado.iddoc.FchEmis = "2017-05-08";
            dte.documento.encabezado.iddoc.FmaPago = 1;

            dte.documento.encabezado.emisor.RUTEmisor = "19047321-k";
            dte.documento.encabezado.emisor.RznSoc    = "adsddf";

            dte.documento.encabezado.receptor.RUTRecep = "190473121-k";

            dte.documento.encabezado.totales.MntNeto = 9999;

            MakeDte.Detalle det = new MakeDte.Detalle();
            det.MontoItem = 99;

            dte.detalle.Add(det);
            dte.detalle.Add(det);

            var x = JsonConvert.SerializeObject(dte);

            /* MakeDte m = new MakeDte();
             * XDocument xdoc = new XDocument();
             * xdoc= m.Serialize(dte);*/
        }
예제 #2
0
        public Response GetPreviewDTE(MakeDte.DTE dte)
        {
            Response r = new Response();

            try
            {
                string xsltPath = WebConfigurationManager.AppSettings["xslt_dte"];
                string temp     = WebConfigurationManager.AppSettings["temp"];
                temp = temp + Guid.NewGuid() + ".pdf";
                MakeDte     m   = new MakeDte();
                XmlDocument xml = new XmlDocument();
                xml = m.Serialize(dte);

                pdfSII pdf = new pdfSII();

                pdf.MakeXsl(xml, xsltPath);
                pdf.MakePdf(temp);

                Byte[] bytes = File.ReadAllBytes(temp);
                String file  = Convert.ToBase64String(bytes);
                File.Delete(temp);


                r.code           = Code.OK;
                r.type           = Type.base64;
                r.ObjectResponse = file;

                // return JsonConvert.SerializeObject(r,Newtonsoft.Json.Formatting.Indented);
                return(r);
            }
            catch (Exception ex)
            {
                r.code           = Code.ERROR;
                r.type           = Type.text;
                r.ObjectResponse = ex.ToString();
                return(r);
            }
        }
예제 #3
0
        public Response SaveDocDte(MakeDte.DTE dte)
        {
            Response r = new Response();

            try
            {
                MySqlConnector mysql           = new MySqlConnector();
                DataTable      dt_documentodte = new DataTable();

                mysql.ConnectionString = WebConfigurationManager.ConnectionStrings["MySqlProvider"].ConnectionString;
                mysql.AddProcedure("sp_ins_documentodte");
                mysql
                .AddParameter("RutEmpresa", RutWithOutDv(dte.documento.encabezado.emisor.RUTEmisor))
                .AddParameter("RutEmisor", RutWithOutDv(dte.documento.encabezado.emisor.RUTEmisor))
                .AddParameter("RutReceptor", RutWithOutDv(dte.documento.encabezado.receptor.RUTRecep))
                .AddParameter("TipoDte", dte.documento.encabezado.iddoc.TipoDTE)
                .AddParameter("Folio", dte.documento.encabezado.iddoc.Folio)
                .AddParameter("FechaEmision", dte.documento.encabezado.iddoc.FchEmis)
                .AddParameter("MontoNeto", dte.documento.encabezado.totales.MntNeto)
                .AddParameter("MontoExento", dte.documento.encabezado.totales.MntExe)
                .AddParameter("MontoIva", dte.documento.encabezado.totales.IVA)
                .AddParameter("TasaIva", dte.documento.encabezado.totales.TasaIVA)
                .AddParameter("MontoTotal", dte.documento.encabezado.totales.MntTotal)
                .AddParameter("TipoOperacion", dte.TipoOperacion)
                .AddParameter("Ambiente", dte.Ambiente);

                dt_documentodte = mysql.ExecQuery().ToDataTable();
                string IdDte = dt_documentodte.Rows[0]["IdDte"].ToString();

                DataTable dt_documentdte_detalle = new DataTable();
                foreach (var det in dte.documento.detalle)
                {
                    var cdgItem = det.CdgItem;

                    mysql.AddProcedure("sp_ins_documentdte_detalle");
                    mysql
                    .AddParameter("IdDte", IdDte)
                    .AddParameter("NumeroLinea", det.NroLinDet)
                    .AddParameter("Exento", "0")
                    .AddParameter("IdDetalle", cdgItem[0].Id_Detalle)
                    .AddParameter("CantidadComprada", det.QtyItem)
                    .AddParameter("MontoTotalDetalle", det.MontoItem)
                    .AddParameter("DescuentoRecargo", "0")
                    .AddParameter("TipoDescuentoRecargo", "0")
                    .AddParameter("MontoUnitDetalle", det.PrcItem)
                    .AddParameter("HasIva", det.HasIva);
                    dt_documentdte_detalle = mysql.ExecQuery().ToDataTable();
                }
                //finalmente si guardamos el documento en la bd procedemos a generar el xml
                MakeDte     m   = new MakeDte();
                XmlDocument xml = new XmlDocument();
                xml = m.Serialize(dte);

                //insertamos el xml en la tabla
                mysql.AddProcedure("sp_ins_file");
                mysql
                .AddParameter("File", xml.OuterXml)
                .AddParameter("FileName",
                              IdDte                                                     //nombre compuesto por id
                              + dte.documento.encabezado.iddoc.TipoDTE.ToString()       //tipo
                              + RutWithOutDv(dte.documento.encabezado.emisor.RUTEmisor) //rutemisor
                              + dte.documento.encabezado.iddoc.Folio.ToString()         //folio
                              )
                .AddParameter("Type", ".xml");
                var IdFile = mysql.ExecQuery().ToDataTable().Rows[0]["IdFile"].ToString();
                //asociamos el archivo insertado al documento dte
                mysql.AddProcedure("sp_upd_DocumentDte_File");
                mysql
                .AddParameter("idFile", IdFile)
                .AddParameter("idDte", IdDte);
                mysql.ExecQuery();

                r.code           = Code.OK;
                r.type           = Type.text;
                r.ObjectResponse = "Se ha ingresado el documento Correctamente!";
                return(r);
            }
            catch (Exception ex)
            {
                r.code           = Code.ERROR;
                r.type           = Type.text;
                r.ObjectResponse = ex.ToString();
                return(r);
            }
        }