private static void RaiseWarningEvent(WarningEventArgs e) { WarningEvent?.Invoke(typeof(ConsoleUtil), e); }
private void GenerateDocument() { DataSet data = parseXML(file); string eConnectConnectionString = string.Format("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog={1};Data Source={0};", this.server, this.db); string DOCID = GPHelper.returnDOCID(this.StringConnection).Trim(); //Now we create the eConnect XML Document XmlDocument eConnectXMLDocument = new XmlDocument(); XmlNode NodeeConnect; XmlNode NodeSchema; XmlNode taSopHdrNode; XmlNode taSopLine_ItemsNode; XmlNode taSopLineNode; XmlNode NodeElement; XmlNode taCreateSopPaymentInsertRecord_Items; XmlNode taCreateSopPaymentInsertRecord; if (data.Tables["HEADER"].Rows.Count > 0 && data.Tables["LINES"].Rows.Count > 0) { DataRow header = data.Tables["HEADER"].Rows[0]; if (header["DOCID"].ToString().Length <= 0) { DOCID = GPHelper.returnDOCID(this.StringConnection).Trim(); } else { DOCID = header["DOCID"].ToString(); } if (header["DOCNUMBE"].ToString() == "") { IEvent w = new WarningEvent("", "", "El documento no posee código, se intentará generar uno para proceder con el mismo."); w.Publish(); header["DOCNUMBE"] = ""; } NodeeConnect = eConnectXMLDocument.CreateElement("eConnect"); NodeSchema = eConnectXMLDocument.CreateElement("SOPTransactionType"); //Header taSopHdrNode = eConnectXMLDocument.CreateElement("taSopHdrIvcInsert"); NodeElement = eConnectXMLDocument.CreateElement("SOPTYPE"); NodeElement.InnerText = "4"; // RETURN taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DOCID"); NodeElement.InnerText = DOCID; taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DEFPRICING"); NodeElement.InnerText = "1"; taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CREATETAXES"); NodeElement.InnerText = "1"; taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DEFTAXSCHDS"); NodeElement.InnerText = "1"; taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("BACHNUMB"); NodeElement.InnerText = DOCID + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year; taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("SOPNUMBE"); NodeElement.InnerText = header["DOCNUMBE"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("ORIGNUMB"); NodeElement.InnerText = header["ORIGNUMB"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("ORIGTYPE"); NodeElement.InnerText = header["ORIGTYPE"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("TAXSCHID"); NodeElement.InnerText = header["TAXSCHID"].ToString(); taSopHdrNode.AppendChild(NodeElement); if (header["TAXSCHID"].ToString().Length <= 0) { NodeElement = eConnectXMLDocument.CreateElement("TAXSCHID"); NodeElement.InnerText = this.ITBMS; taSopHdrNode.AppendChild(NodeElement); } else { NodeElement = eConnectXMLDocument.CreateElement("TAXSCHID"); NodeElement.InnerText = header["TAXSCHID"].ToString(); taSopHdrNode.AppendChild(NodeElement); } NodeElement = eConnectXMLDocument.CreateElement("MSCSCHID"); NodeElement.InnerText = header["MSCSCHID"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("SHIPMTHD"); NodeElement.InnerText = header["SHIPMTHD"].ToString(); taSopHdrNode.AppendChild(NodeElement); //if ((Decimal)header["TAXAMNT"] > 0) //{ // NodeElement = eConnectXMLDocument.CreateElement("TAXAMNT"); // NodeElement.InnerText = header["TAXAMNT"].ToString(); // taSopHdrNode.AppendChild(NodeElement); //} NodeElement = eConnectXMLDocument.CreateElement("LOCNCODE"); NodeElement.InnerText = header["LOCNCODE"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DOCDATE"); NodeElement.InnerText = DateTime.Parse(header["DOCDATE"].ToString()).Year + "-" + DateTime.Parse(header["DOCDATE"].ToString()).Month + "-" + DateTime.Parse(header["DOCDATE"].ToString()).Day; taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("FREIGHT"); NodeElement.InnerText = header["FREIGHT"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("MISCAMNT"); NodeElement.InnerText = header["MISCAMNT"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("TRDISAMT"); NodeElement.InnerText = header["TRDISAMT"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CUSTNMBR"); NodeElement.InnerText = header["CUSTOMER"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CSTPONBR"); NodeElement.InnerText = header["CSTPONBR"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("SUBTOTAL"); NodeElement.InnerText = header["SUBTOTAL"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DOCAMNT"); NodeElement.InnerText = header["DOCAMNT"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("SALSTERR"); NodeElement.InnerText = header["SALSTERR"].ToString(); taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("SLPRSNID"); NodeElement.InnerText = header["SLPRSNID"].ToString(); taSopHdrNode.AppendChild(NodeElement); // Details taSopLine_ItemsNode = eConnectXMLDocument.CreateElement("taSopLineIvcInsert_Items"); foreach (DataRow item in data.Tables["LINES"].Rows) { taSopLineNode = eConnectXMLDocument.CreateElement("taSopLineIvcInsert"); NodeElement = eConnectXMLDocument.CreateElement("SOPTYPE"); NodeElement.InnerText = "4"; //return taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DEFPRICING"); NodeElement.InnerText = "1"; taSopHdrNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("SOPNUMBE"); NodeElement.InnerText = header["DOCNUMBE"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CUSTNMBR"); NodeElement.InnerText = header["CUSTOMER"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DOCDATE"); NodeElement.InnerText = DateTime.Parse(header["DOCDATE"].ToString()).Year + "-" + DateTime.Parse(header["DOCDATE"].ToString()).Month + "-" + DateTime.Parse(header["DOCDATE"].ToString()).Day; taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("LOCNCODE"); NodeElement.InnerText = item["LOCNCODE"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("ITEMNMBR"); NodeElement.InnerText = item["ITEMNMBR"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("UNITPRCE"); NodeElement.InnerText = item["UNITPRCE"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("XTNDPRCE"); NodeElement.InnerText = item["XTNDPRCE"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("QUANTITY"); NodeElement.InnerText = item["QUANTITY"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("QTYRTRND"); NodeElement.InnerText = item["QUANTITY"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("MRKDNAMT"); NodeElement.InnerText = item["MRKDNAMT"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("UOFM"); NodeElement.InnerText = item["UOFM"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF1"); NodeElement.InnerText = item["USERDEF1"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF2"); NodeElement.InnerText = item["USERDEF2"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF3"); NodeElement.InnerText = item["USERDEF3"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF4"); NodeElement.InnerText = item["USERDEF4"].ToString(); taSopLineNode.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF5"); NodeElement.InnerText = item["USERDEF5"].ToString(); taSopLineNode.AppendChild(NodeElement); taSopLine_ItemsNode.AppendChild(taSopLineNode); } // Payments // Details taCreateSopPaymentInsertRecord_Items = eConnectXMLDocument.CreateElement("taCreateSopPaymentInsertRecord_Items"); foreach (DataRow item in data.Tables["PAYMENTS"].Rows) { taCreateSopPaymentInsertRecord = eConnectXMLDocument.CreateElement("taCreateSopPaymentInsertRecord"); NodeElement = eConnectXMLDocument.CreateElement("SOPTYPE"); NodeElement.InnerText = "3"; //return taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("SOPNUMBE"); NodeElement.InnerText = header["DOCNUMBE"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CUSTNMBR"); NodeElement.InnerText = header["CUSTOMER"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DOCDATE"); NodeElement.InnerText = DateTime.Parse(item["DOCDATE"].ToString()).Year + "-" + DateTime.Parse(header["DOCDATE"].ToString()).Month + "-" + DateTime.Parse(header["DOCDATE"].ToString()).Day; taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DOCAMNT"); NodeElement.InnerText = item["DOCAMNT"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CHEKBKID"); NodeElement.InnerText = item["CHEKBKID"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CARDNAME"); NodeElement.InnerText = item["CARDNAME"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("CHEKNMBR"); NodeElement.InnerText = item["CHEKNMBR"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("RCTNCCRD"); NodeElement.InnerText = item["RCTNCCRD"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); //NodeElement = eConnectXMLDocument.CreateElement("QTYONHND"); //NodeElement.InnerText = item["QUANTITY"].ToString(); //taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("AUTHCODE"); NodeElement.InnerText = item["AUTHCODE"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("EXPNDATE"); NodeElement.InnerText = ((DateTime)item["EXPNDATE"]).ToString("yyyy-MM-dd"); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("PYMTTYPE"); NodeElement.InnerText = item["PYMTTYPE"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("DOCNUMBR"); NodeElement.InnerText = item["DOCNUMBR"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USRDEFND1"); NodeElement.InnerText = item["USERDEF1"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF2"); NodeElement.InnerText = item["USERDEF2"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF3"); NodeElement.InnerText = item["USERDEF3"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF4"); NodeElement.InnerText = item["USERDEF4"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); NodeElement = eConnectXMLDocument.CreateElement("USERDEF5"); NodeElement.InnerText = item["USERDEF5"].ToString(); taCreateSopPaymentInsertRecord.AppendChild(NodeElement); taCreateSopPaymentInsertRecord_Items.AppendChild(taCreateSopPaymentInsertRecord); } NodeSchema.AppendChild(taSopLine_ItemsNode); NodeSchema.AppendChild(taCreateSopPaymentInsertRecord_Items); NodeSchema.AppendChild(taSopHdrNode); //Document NodeeConnect.AppendChild(NodeSchema); eConnectXMLDocument.AppendChild(NodeeConnect); //Dim eConnectXMLDocString As String = eConnectXMLDocument.OuterXml; //MsgBox(eConnectXMLDocString) if (!GPHelper.eConnectSendToGP(eConnectXMLDocument.OuterXml, eConnectConnectionString)) { ((IEvent)(new ErrorEvent("", "", "Se detectó un error en la transacción e connect, se procederá con el rollback de la transación."))).Publish(); if (File.Exists(this.HistPathIn + "\\ERR_" + this.fname.Replace("\\", ""))) { File.Delete(this.HistPathIn + "\\ERR_" + this.fname.Replace("\\", "")); } File.Move(this.file, this.HistPathIn + "\\ERR_" + this.fname.Replace("\\", "")); } else { ((IEvent)(new InfoEvent("", "", "La transacción culminó satisfactoriamente."))).Publish(); if (File.Exists(this.HistPathIn + "\\OK_" + this.fname.Replace("\\", ""))) { File.Delete(this.HistPathIn + "\\OK_" + this.fname.Replace("\\", "")); } File.Move(this.file, this.HistPathIn + "\\OK_" + this.fname.Replace("\\", "")); } } }
protected virtual void Notify(WarningEventArgs e) { WarningEvent?.Invoke(this, e); }