Hello,
I am using eConnect Shipment/Invoice schema from version 9.0 for Non Invenotry Items and it working fine for me. I did created Custom WebService using same schema . Below is code it may help you to understand issue.
Feel free to email me if you need any further assistance on same.
THanks
Sandip
///************************************************************************************************************************************************************************
try
{
string filename = "C:\\FuelManagement\\PurchaseReceiptInvoice.xml";
string sConnectionString = ConfigurationManager.ConnectionStrings["EConnectConnectionString"].ToString();
SqlConnection sqlConnection = new SqlConnection(sConnectionString);
sqlConnection.Open();
POPReceivingsType PoShipmentInvioce = new POPReceivingsType();
System.Collections.ArrayList POP = new System.Collections.ArrayList();
taPopRcptLineInsert_ItemsTaPopRcptLineInsert[] LineItems = new taPopRcptLineInsert_ItemsTaPopRcptLineInsert[POReceiptItems.Count];
taPopRcptHdrInsert POHeader = new taPopRcptHdrInsert();
taPopDistribution_ItemsTaPopDistribution[] itemsDist = new taPopDistribution_ItemsTaPopDistribution[popDistributions.Count];
int sCnt = 0;
////string ReceiptNo = NextPOReceiptTransactionNo();
////UpdatePOReceiptTransactionNo(ReceiptNo, Convert.ToDateTime(Header.TransactionDate.ToString()));
//
int i = 0;
foreach(taPopDistribution_ItemsTaPopDistribution Refdistri in popDistributions)
{
taPopDistribution_ItemsTaPopDistribution ActDistri = new taPopDistribution_ItemsTaPopDistribution();
ActDistri.POPTYPE = Refdistri.POPTYPE;
ActDistri.POPRCTNM = Refdistri.POPRCTNM;
ActDistri.ACTINDX = Refdistri.ACTINDX;
ActDistri.DEBITAMT = Refdistri.DEBITAMT;
ActDistri.CRDTAMNT = Refdistri.CRDTAMNT;
////if (i == 0)
//// {
//// ActDistri.CRDTAMNT =Refdistri.CRDTAMNT;
//// }
//// else
//// {
//// ActDistri.DEBITAMT=Refdistri.DEBITAMT;
//// }
ActDistri.DISTTYPE =Refdistri.DISTTYPE;
ActDistri.VENDORID = Refdistri.VENDORID;
if (i == 0)
{
itemsDist[0] = ActDistri;
}
else
{
itemsDist[i] = ActDistri;
}
i++;
}
foreach (POReceiptItem item in POReceiptItems)
{
// MessageBox.Show(ReceiptNo);
taPopRcptLineInsert_ItemsTaPopRcptLineInsert POPLine = new taPopRcptLineInsert_ItemsTaPopRcptLineInsert();
POPLine.POPTYPE = item.PopType; //3;
POPLine.receiptdate = item.LineItemReceiptDate.ToString();
POPLine.POPRCTNM = item.ReceiptNo.ToString();
POPLine.ITEMNMBR = item.ItemNumber.ToString().Trim(); //"EXP";
POPLine.ITEMDESC = item.ItemDescription.ToString().Trim();// "EXP";
POPLine.VENDORID = item.VendorId.ToString().Trim();// "FUELMAN";
POPLine.VNDITNUM = item.VendorItemNumber.ToString().Trim(); //"EXP";
POPLine.NONINVEN = item.NonInventory; //1;
POPLine.QTYSHPPD = item.QtyShipped;// 1;
POPLine.QTYINVCD = item.QtyInvoiced;// 1;
POPLine.UNITCOST = item.UnitCost;// decimal.Parse(gridView.Rows[sCnt].Cells[30].Value.ToString());
POPLine.receiptdate = item.LineItemReceiptDate;
// POPLine.UNITCOSTSpecified = true;
POPLine.UOFM = item.UOM;
POPLine.EXTDCOST = item.ExtendCost; //1 * decimal.Parse(gridView.Rows[sCnt].Cells[30].Value.ToString());
// POPLine.EXTDCOSTSpecified = true;
POPLine.ProjNum = item.ProjectNumber; //gridView.Rows[sCnt].Cells[0].Value.ToString();
POPLine.CostCatID = item.CostCategory.ToString().Trim(); // "OTH01-" + NewCostCategory + "-FUEL"; // "OTH01-9-FUEL"; //gridView.Rows[sCnt].Cells[1].Value.ToString();
POPLine.UNITCOSTSpecified = true;
POPLine.EXTDCOSTSpecified = true;
POPLine.LOCNCODE = item.LocationCode.ToString().Trim();// "MISC";
POPLine.INVINDX = item.InventoryActIndx;// 23;
//LineItems[0] = POPLine;
if (sCnt == 0)
{
LineItems[0] = POPLine;
}
else
{
LineItems[sCnt] = POPLine;
}
sCnt++;
}
POHeader.POPRCTNM =Header.ReceiptNo.ToString().Trim();
POHeader.POPTYPE = Header.PopType; //3;
POHeader.VNDDOCNM = Header.VendorDocNumber; //VendorDocNo;
POHeader.receiptdate = Header.TransactionDate; //gridView.Rows[sCnt].Cells[7].Value.ToString();
POHeader.BACHNUMB = Header.BatchID; //"BATCHID";
POHeader.VENDORID = Header.VendorId; //"FUELMAN";
POHeader.CREATEDIST = Header.CreateDistribution; //1
PoShipmentInvioce.taPopRcptLineInsert_Items = LineItems;
PoShipmentInvioce.taPopRcptHdrInsert = POHeader;
PoShipmentInvioce.taPopDistribution_Items = itemsDist;
eConnectType eConnect = new eConnectType();
POPReceivingsType[] MyPOPReceivingsType = { PoShipmentInvioce };
eConnect.POPReceivingsType = MyPOPReceivingsType;
FileStream fs = new FileStream(filename, FileMode.Create);
XmlTextWriter writer = new XmlTextWriter(fs, new UTF8Encoding());
// Serialize using the XmlTextWriter.
XmlSerializer serializer = new XmlSerializer(eConnect.GetType());
serializer.Serialize(writer, eConnect);
writer.Close();
string PurchaseInvoiceDocument;
eConnectMethods eConCall = new eConnectMethods();
try
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("C:\\FuelManagement\\PurchaseReceiptInvoice.xml");
PurchaseInvoiceDocument = xmldoc.OuterXml;
try
{
eConCall.eConnect_EntryPoint(sConnectionString, EnumTypes.ConnectionStringType.SqlClient, PurchaseInvoiceDocument, EnumTypes.SchemaValidationType.None, "");
}
catch (eConnectException exp) // The eConnectException class will catch any business logic releated errors from eConnect.
{
throw exp;
}
finally
{
eConCall.Dispose();
sqlConnection.Close();
sqlConnection.Dispose();
File.Delete("C:\\FuelManagement\\PurchaseReceiptInvoice.xml");
}
}
catch (Exception ex) // Catch any system error that might occurr.
{
//Console.Write(ex.ToString());
throw ex;
File.Delete("C:\\FuelManagement\\PurchaseReceiptInvoice.xml");
}
}
catch (Exception Ex) // The eConnectException class will catch any business logic releated errors from eConnect.
{
throw Ex;
}
///************************************************************************************************************************************************************************