string[,] LlenarArrayAtributos(int n_idNodo, DataTable dtAtributos) { int n_row = 0; string[,] arrAtributos = new string[1, 1]; Helper.Genericas funGen = new Helper.Genericas(); DataTable dtResult = new DataTable(); dtResult = funGen.DataTableFiltrar(dtAtributos, "n_idnoddoc = " + n_idNodo.ToString() + ""); if (dtResult.Rows.Count != 0) { string[,] arrAtributos2 = new string[2, dtResult.Rows.Count]; for (n_row = 0; n_row <= dtResult.Rows.Count - 1; n_row++) { arrAtributos2[0, n_row] = dtResult.Rows[n_row]["c_nom"].ToString(); arrAtributos2[1, n_row] = dtResult.Rows[n_row]["c_valor"].ToString(); } arrAtributos = arrAtributos2; } return(arrAtributos); }
public XmlDocument GenerarDocumento() { Helper.DatosMySql fudDat = new Helper.DatosMySql(); Helper.Genericas funGen = new Helper.Genericas(); int n_row = 0; string[,] arrAtributoNodo = new string[1, 2] { { "n_iddoc", "System.INT64" } }; string[,] arrParametros = new string[1, 3] { { "n_iddoc", "System.INT64", "1" } }; dtDocOrig = fudDat.StoreDTLLenar("sun_docelectronicos_consulta1", arrParametros, MyConeccion); dtDocumento = funGen.DataTableFiltrar(dtDocOrig, "n_id <= 74"); dtDocItem = funGen.DataTableFiltrar(dtDocOrig, "n_id >= 75"); dtAtributos = fudDat.StoreDTLLenar("sun_docelectronicosatri_consulta1", arrParametros, MyConeccion); XmlElement objNodoPadre; Helper.XML_funciones FunXml = new Helper.XML_funciones(); string[,] arrAtributo = new string[10, 2] { { "xmlns", "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" }, { "xmlns:cac", "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" }, { "xmlns:cbc", "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" }, { "xmlns:ccts", "urn:un:unece:uncefact:documentation:2" }, { "xmlns:ds", "http://www.w3.org/2000/09/xmldsig#" }, { "xmlns:ext", "urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" }, { "xmlns:qdt", "urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" }, { "xmlns:sac", "urn:sunat:names:specification:ubl:peru:schema:xsd:SunatAggregateComponents-1" }, { "xmlns:udt", "urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" }, { "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance" } }; FunXml.DocAtributos = arrAtributo; // CARGAMOS LOS ATRIBUTOS DEL DOCUMENTO FunXml.DocXml = DocXml; // PASAMOS LA VARIABLE XML DocXml = FunXml.CrearXML("Invoice"); // CREAMOS EL DOCUMENTO XML INDICANDO EL NOMBRE DE LA RAIZ objNodoPadre = FunXml.NodoPadre; CargarFE(); AgregarNodo(1, dtDocumento, dtAtributos, objNodoPadre, ""); //AGREGAMOS LOS ITEMS DE LA FACTURA ELECTRONICA for (n_row = 0; n_row <= dtDetalleFE.Rows.Count - 1; n_row++) { AgregarItems(1, dtDocItem, dtAtributos, objNodoPadre, "", n_row); } string c_tipcom = "01"; string c_nomarch = C_CONTRI_RUC + "-" + c_tipcom + "-" + C_CONTRI_NUMSERDOC + "-" + C_CONTRI_NUMCORDOC + ".xml"; FunXml.GrabarArchivo(DocXml, C_RUTAARCHIVO, c_nomarch); return(DocXml); }
public DataTable BuscarDocumentoDetraccion(int n_IdEmpresa, int n_IdProveedor) { string[,] arrCabeceraDg1 = new string[5, 4]; DataTable dtResult = new DataTable(); string c_CampoBuscar = "n_id"; string c_CadenaFiltro = ""; Helper.Genericas funDatos = new Helper.Genericas(); Consulta3(n_IdEmpresa, n_IdProveedor); dtResult = dtLista; arrCabeceraDg1[0, 0] = "Tipo Doc."; arrCabeceraDg1[0, 1] = "50"; arrCabeceraDg1[0, 2] = "C"; arrCabeceraDg1[0, 3] = "c_codsun"; arrCabeceraDg1[1, 0] = "Nº Documento"; arrCabeceraDg1[1, 1] = "140"; arrCabeceraDg1[1, 2] = "C"; arrCabeceraDg1[1, 3] = "c_numdoc"; arrCabeceraDg1[2, 0] = "Fecha Documento"; arrCabeceraDg1[2, 1] = "90"; arrCabeceraDg1[2, 2] = "F"; arrCabeceraDg1[2, 3] = "d_fchdoc"; arrCabeceraDg1[3, 0] = "Importe"; arrCabeceraDg1[3, 1] = "80"; arrCabeceraDg1[3, 2] = "D"; arrCabeceraDg1[3, 3] = "n_imptotcom"; arrCabeceraDg1[4, 0] = "Id"; arrCabeceraDg1[4, 1] = "0"; arrCabeceraDg1[4, 2] = "N"; arrCabeceraDg1[4, 3] = "n_id"; Helper.Genericas xFun = new Helper.Genericas(); xFun.Buscar_CampoBusqueda = c_CampoBuscar; xFun.Buscar_CadFiltro = c_CadenaFiltro; dtResult = xFun.Buscar(arrCabeceraDg1, dtResult); return(dtResult); }
void AgregarNodo(int n_IdNivel, DataTable dtDocumento, DataTable dtAtributos, XmlElement objNodoAnterior, string c_RutaArbol) { DataTable dtResul = new DataTable(); DataTable dtLista = new DataTable(); DataTable dtNodoHijo = new DataTable(); Helper.Comunes.Funciones Fun = new Helper.Comunes.Funciones(); Helper.Genericas funGen = new Helper.Genericas(); Helper.XML_funciones FunXml = new Helper.XML_funciones(); XmlElement element1; int n_row = 0; string c_nomlista = ""; string c_texto = ""; string c_arbol = ""; string c_prefi = ""; string c_dirur = ""; string c_valor = ""; int n_tipnod = 0; int n_eslista = 0; string c_NewRutaArbol = ""; string[,] arrAtributo = new string[1, 2] { { "n_iddoc", "System.INT64" } }; dtResul = funGen.DataTableFiltrar(dtDocumento, "(n_numniv = " + n_IdNivel.ToString() + ") AND (c_arbol like '" + c_RutaArbol + "*')"); // FILTRAMOS NIVEL 6 if (dtResul.Rows.Count != 0) { for (n_row = 0; n_row <= dtResul.Rows.Count - 1; n_row++) { element1 = null; c_texto = dtResul.Rows[n_row]["c_des"].ToString(); c_valor = dtResul.Rows[n_row]["c_valor"].ToString(); c_arbol = dtResul.Rows[n_row]["c_arbol"].ToString(); c_prefi = dtResul.Rows[n_row]["c_prefijo"].ToString(); c_dirur = dtResul.Rows[n_row]["c_dirurl"].ToString(); n_tipnod = Convert.ToInt32(dtResul.Rows[n_row]["n_tipo"]); c_NewRutaArbol = dtResul.Rows[n_row]["c_arbol"].ToString(); n_eslista = Convert.ToInt32(Fun.NulosN(dtResul.Rows[n_row]["n_lista"])); arrAtributo = LlenarArrayAtributos(Convert.ToInt32(dtResul.Rows[n_row]["n_id"]), dtAtributos); FunXml.DocXml = DocXml; if (n_tipnod == 1) { FunXml.AgregarArchivo(c_texto, c_valor, objNodoAnterior, arrAtributo, c_prefi, c_dirur); } else { FunXml.DocXml = DocXml; // PREGUNTAMOS SI EL NUEVO NODO ES UNA LISTA if (n_eslista == 1) { // SI ES UNA LISTA ESCRIBIMOS LOS DATOS DEL ALISTA c_nomlista = dtResul.Rows[n_row]["c_nomlista"].ToString(); int n_fil = 0; int n_lisfil = 0; dtLista = BucarDatosLista(c_nomlista); // OBTENEMOS EL DATATABLE CORRECTO PARA ESCRIBIR LOS DATOS string c_cond = "c_arbol like '" + c_arbol + "*' AND n_numniv > " + n_IdNivel.ToString() + " "; dtNodoHijo = funGen.DataTableFiltrar(dtDocumento, c_cond); for (n_lisfil = 0; n_lisfil <= dtLista.Rows.Count - 1; n_lisfil++) { // AGREGAMOS EL NODO PADRE element1 = FunXml.AgregarCarpeta(c_texto, objNodoAnterior, arrAtributo, c_prefi, c_dirur); for (n_fil = 0; n_fil <= dtNodoHijo.Rows.Count - 1; n_fil++) { string c_textohijo = dtNodoHijo.Rows[n_fil]["c_des"].ToString(); string c_valorhijo = dtNodoHijo.Rows[n_fil]["c_des"].ToString(); // OBTENEMOS EL NOMBRE DEL CAMPO c_valorhijo = dtLista.Rows[n_lisfil][c_valorhijo].ToString(); // TRAEMOS EL DATO DE LA LISTA FunXml.AgregarArchivo(c_textohijo, c_valorhijo, element1, arrAtributo, c_prefi, c_dirur); } } } else { element1 = FunXml.AgregarCarpeta(c_texto, objNodoAnterior, arrAtributo, c_prefi, c_dirur); int n_NuevoNivel = n_IdNivel + 1; AgregarNodo(n_NuevoNivel, dtDocumento, dtAtributos, element1, c_NewRutaArbol); } } //int n_NuevoNivel = n_IdNivel + 1; //AgregarNodo(n_NuevoNivel, dtDocumento, dtAtributos, element1, c_NewRutaArbol); } } }