public string getXML(RequestCFD requestCFD) { XmlNode root = createDocument(); addStringAttribute(root, "oru", requestCFD.oru); addStringAttribute(root, "cveProveedor", requestCFD.cveProveedor); addStringAttribute(root, "nomProveedor", requestCFD.nomProveedor); addStringAttribute(root, "mailProveedor", requestCFD.mailProveedor); addStringAttribute(root, "mailPhilips", requestCFD.mailPhilips); addStringAttribute(root, "OC", requestCFD.OC); addStringAttribute(root, "ctaContable", requestCFD.ctaContable); addStringAttribute(root, "CCostos", requestCFD.CCostos); addStringAttribute(root, "texto", requestCFD.texto); XmlNode items = dom.CreateNode(XmlNodeType.Element, null, "Items", null); for (int i = 0; i < requestCFD.getItemCount(); i++) { XmlNode item = dom.CreateNode(XmlNodeType.Element, null, "Item", null); Item objItem = requestCFD.getItem(i); addStringAttribute(item, "ItemOrder", objItem.ItemOrder); addStringAttribute(item, "cveMaterial", objItem.cveMaterial); addStringAttribute(item, "pedimento", objItem.pedimento); addStringAttribute(item, "patente", objItem.patente); addStringAttribute(item, "cantidad", objItem.cantidad); addStringAttribute(item, "WBS", objItem.WBS); addStringAttribute(item, "OC", objItem.OC); addStringAttribute(item, "OrdenServicio", objItem.OrdenServicio); addStringAttribute(item, "texto", objItem.texto); items.AppendChild(item); } root.AppendChild(items); return root.OuterXml; }
public string insertarAddenda(string scfd, RequestCFD requestCFD) { string sAgregarAdenda = string.Empty; dom = new XmlDocument(); XmlDocument domB = new XmlDocument(); dom.LoadXml(scfd); domB = dom; try { sAgregarAdenda = getXML(requestCFD); } catch (Exception EX) { Console.Write(EX.Message); } dom = domB; if (dom.DocumentElement.Prefix.Length > 0) { sprefix = dom.DocumentElement.Prefix + ""; } XmlNode addNode = dom.CreateNode(XmlNodeType.Element, sprefix, "Addenda", nameSpace); addNode.InnerXml = sAgregarAdenda; dom.DocumentElement.AppendChild(addNode); //foreach (XmlNode node in dom.DocumentElement.ChildNodes) //{ // Xml = node.InnerText; // //} string sTemp = dom.InnerXml.ToString(); if (System.Text.RegularExpressions.Regex.IsMatch(sTemp, "Addenda")) { sTemp = sTemp.Replace("Addenda", "cfdi:Addenda"); } return sTemp; }
public static bool AdendaPhillips(string sNombreDB, int NumeroRegistro, int Tipo, int NumeroEmpresa, ref string xml) { //CfdiBLL ctrl = new CfdiBLL(); RequestCFD PhilipsReq = new RequestCFD(); AddPhilips AddendaPhilips = new AddPhilips(); Item AddendaPhilipsItem = new Item(); string sMail_Proveedor, sNombre_Proveedor; int Num_Cotiza = 0; DataTable tableprovider, tablereference, tableFactura, tablepartidaadenda, tablaCotizacion; // ----------------------------------------- SQLConection context = new SQLConection(); context.Parametros.Clear(); context.Parametros.Add(new SqlParameter("@companynumber", NumeroEmpresa)); context.Parametros.Add(new SqlParameter("@numeroregistro", NumeroRegistro)); tablaCotizacion = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneNumeroCuota_v1]", true).Copy(); // ----------------------------------------- if (tablaCotizacion != null && tablaCotizacion.Rows.Count > 0) { if (tablaCotizacion.Rows[0][1] != DBNull.Value) { Num_Cotiza = Convert.ToInt32(tablaCotizacion.Rows[0][1]); } } else { return false; } CustomerBLL DataProvider = new CustomerBLL(); //tableprovider = DataProvider.GetCustomerData(NumeroEmpresa, 1);// CHECAR POR QUE PUSE 1 context = new SQLConection(); context.Parametros.Clear(); context.Parametros.Add(new SqlParameter("@numero", 1)); tableprovider = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_ObtieneCorreoPersona]", true).Copy(); // ----------------------------------------------------------------------------------------- if (tableprovider != null && tableprovider.Rows.Count > 0) { if (tableprovider.Rows[0][0] != DBNull.Value) { sNombre_Proveedor = Convert.ToString(tableprovider.Rows[0][0]); } else { return false; } if (tableprovider.Rows[0][1] != DBNull.Value) { sMail_Proveedor = Convert.ToString(tableprovider.Rows[0][1]); } else { return false; } } else { return false; } // tablereference = ctrl.GetRerefence(NumeroRegistro, NumeroEmpresa); // -------------------------------------------------------------------- context = new SQLConection(); context.Parametros.Clear(); context.Parametros.Add(new SqlParameter("@companynumber", NumeroEmpresa)); context.Parametros.Add(new SqlParameter("@numeroregistro", Num_Cotiza)); tablereference = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneReferencia_v1]", true).Copy(); // --------------------------------------------------------------------- if (tablereference != null && tablereference.Rows.Count > 0) { if (tablereference.Rows[0][0] != DBNull.Value) { PhilipsReq = new RequestCFD(); PhilipsReq.oru = Convert.ToString(tablereference.Rows[0][0]); if (tablereference.Rows[0][1] != DBNull.Value) { PhilipsReq.cveProveedor = Convert.ToString(tablereference.Rows[0][1]); } else { return false; } PhilipsReq.nomProveedor = sNombre_Proveedor; if (sMail_Proveedor != "") { PhilipsReq.mailProveedor = sMail_Proveedor; } else { //msj el provedor no cuenta con un mail return false; } if (tablereference.Rows[0][2] != DBNull.Value) { PhilipsReq.mailPhilips = Convert.ToString(tablereference.Rows[0][2]); } else { return false; } if (tablereference.Rows[0][3] != DBNull.Value) { PhilipsReq.OC = Convert.ToString(tablereference.Rows[0][3]); } else { return false; } if (tablereference.Rows[0][4] != DBNull.Value) { PhilipsReq.ctaContable = Convert.ToString(tablereference.Rows[0][4]); } else { return false; } if (tablereference.Rows[0][5] != DBNull.Value) { PhilipsReq.CCostos = Convert.ToString(tablereference.Rows[0][5]); } else { return false; } if (tablereference.Rows[0][6] != DBNull.Value) { PhilipsReq.texto = Convert.ToString(tablereference.Rows[0][6]); } else { PhilipsReq.texto = ""; } } else { //msj no se encontro el registro return false; } //------------------------------------------------------------------------- context = new SQLConection(); context.Parametros.Clear(); context.Parametros.Add(new SqlParameter("@companynumber", NumeroEmpresa)); context.Parametros.Add(new SqlParameter("@numeroregistro", NumeroRegistro)); tableFactura = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneNumeroCuota_v1]", true).Copy(); //------------------------------------------------------------------------- int index = 0, inx = 0; if (tableFactura != null && tableFactura.Rows.Count > 0) { foreach (DataRow row in tableFactura.Rows) { //tablepartidaadenda = ctrl.GetCotizacionPartidaAdenda(NumeroRegistro, NumeroEmpresa, Convert.ToInt32(tableFactura.Rows[index][0])); //------------------------------------------------------------------------- context = new SQLConection(); context.Parametros.Clear(); context.Parametros.Add(new SqlParameter("@companynumber", NumeroEmpresa)); context.Parametros.Add(new SqlParameter("@numeroregistro", Convert.ToInt32(tableFactura.Rows[index][1]))); context.Parametros.Add(new SqlParameter("@partida", Convert.ToInt32(tableFactura.Rows[index][0]))); tablepartidaadenda = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneCotizacionPartidaAdenda_v1]", true).Copy(); //------------------------------------------------------------------------- if (tablepartidaadenda != null && tablepartidaadenda.Rows.Count > 0) { if (tablepartidaadenda.Rows[0][0] != DBNull.Value) { AddendaPhilipsItem = new Item(); foreach (DataRow rows in tablepartidaadenda.Rows) { switch (inx) { case 0: if (tablepartidaadenda.Rows[0][0] != DBNull.Value) { AddendaPhilipsItem.ItemOrder = Convert.ToString(tablepartidaadenda.Rows[inx][0]); } else { AddendaPhilipsItem.ItemOrder = ""; } break; case 1: if (tablepartidaadenda.Rows[0][0] != DBNull.Value) { AddendaPhilipsItem.cveMaterial = Convert.ToString(tablepartidaadenda.Rows[inx][0]); } else { AddendaPhilipsItem.cveMaterial = ""; } break; case 2: if (tablepartidaadenda.Rows[0][0] != DBNull.Value) { AddendaPhilipsItem.pedimento = Convert.ToString(tablepartidaadenda.Rows[inx][0]); } else { AddendaPhilipsItem.pedimento = ""; } break; case 3: if (tablepartidaadenda.Rows[0][0] != DBNull.Value) { AddendaPhilipsItem.patente = Convert.ToString(tablepartidaadenda.Rows[inx][0]); } else { AddendaPhilipsItem.patente = ""; } break; case 4: if (tablepartidaadenda.Rows[0][0] != DBNull.Value) { AddendaPhilipsItem.cantidad = Convert.ToString(tablepartidaadenda.Rows[inx][0]); } else { AddendaPhilipsItem.cantidad = ""; } break; case 5: if (tablepartidaadenda.Rows[0][0] != DBNull.Value) { AddendaPhilipsItem.WBS = Convert.ToString(tablepartidaadenda.Rows[inx][0]); } else { AddendaPhilipsItem.WBS = ""; } break; case 6: if (tablepartidaadenda.Rows[0][0] != DBNull.Value) { AddendaPhilipsItem.OC = Convert.ToString(tablepartidaadenda.Rows[inx][0]); } else { AddendaPhilipsItem.OC = ""; } break; case 7: if (tablepartidaadenda.Rows[0][0] != DBNull.Value) { AddendaPhilipsItem.OrdenServicio = Convert.ToString(tablepartidaadenda.Rows[inx][0]); } else { AddendaPhilipsItem.OrdenServicio = ""; } break; case 8: if (tablepartidaadenda.Rows[0][0] != DBNull.Value) { AddendaPhilipsItem.texto = Convert.ToString(tablepartidaadenda.Rows[inx][0]); } else { AddendaPhilipsItem.texto = ""; } break; } inx++; } PhilipsReq.addItem(AddendaPhilipsItem); } } else { return false; //msj no se capturo los datos de la partida } index++; } } else { return false; //msj la factura no cuenta con detalle } } else { return false; } AddendaPhilips = new AddPhilips(); xml = AddendaPhilips.insertarAddenda(xml, PhilipsReq); return true; }