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); } }
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); } }