Me again! I have an issue where my eConnect code is not updating the receivings Tax Summary correctly. I have attached some images of what the client is expecting, and what my submission is creating
|And here is the XML that I submitted. I am almost there, I am just overlooking something!
Within this images.zip file, image013.jpg is what they are expecting. The problem I am getting is that the TAX Id window has not populated the Gross figure and the distribution has produced an unbalanced document. Image007 & 008 are what my code are currently producing
So I need to figure out what to add to my code in order to get these populated.
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
POPReceivingsType
>
<
eConnectProcessInfo
xsi:nil
=
"true"
/>
<
taRequesterTrxDisabler_Items
xsi:nil
=
"true"
/>
<
taUpdateCreateItemRcd
xsi:nil
=
"true"
/>
<
taUpdateCreateVendorRcd
xsi:nil
=
"true"
/>
<
taCreateVendorAddress_Items
xsi:nil
=
"true"
/>
<
taPopRcptLotInsert_Items
xsi:nil
=
"true"
/>
<
taPopRcptSerialInsert_Items
xsi:nil
=
"true"
/>
<
taPopRcptLineInsert_Items
>
<
taPopRcptLineInsert
>
<
POPTYPE
>3</
POPTYPE
>
<
POPRCTNM
>R000065</
POPRCTNM
>
<
ITEMNMBR
>Laynards x 30</
ITEMNMBR
>
<
ITEMDESC
>Laynards x 30</
ITEMDESC
>
<
VENDORID
>ARJ001</
VENDORID
>
<
RCPTLNNM
>1</
RCPTLNNM
>
<
InventoryAccount
>9998-00</
InventoryAccount
>
<
UOFM
>Each</
UOFM
>
<
UNITCOST
>43.20</
UNITCOST
>
<
EXTDCOST
>43.20</
EXTDCOST
>
<
NONINVEN
>1</
NONINVEN
>
<
QTYSHPPD
>1</
QTYSHPPD
>
<
QTYINVCD
>1</
QTYINVCD
>
<
Purchase_IV_Item_Taxable
>3</
Purchase_IV_Item_Taxable
>
<
Purchase_Site_Tax_Schedu
>PSTD</
Purchase_Site_Tax_Schedu
>
<
LOCNCODE
>NO PROJECT</
LOCNCODE
>
<
receiptdate
>01/02/2016</
receiptdate
>
<
CURNCYID
>GBP</
CURNCYID
>
<
ProjNum
>DEVLIV1SC</
ProjNum
>
<
CostCatID
>SC04</
CostCatID
>
</
taPopRcptLineInsert
>
</
taPopRcptLineInsert_Items
>
<
taPopRcptMultiBin_Items
xsi:nil
=
"true"
/>
<
taPopRcptLineTaxInsert_Items
>
<
taPopRcptLineTaxInsert
>
<
VENDORID
>ARJ001</
VENDORID
>
<
POPRCTNM
>R000065</
POPRCTNM
>
<
TAXDTLID
>PSTD</
TAXDTLID
>
<
TAXTYPE
>0</
TAXTYPE
>
<
ACTNUMST
>1226-00</
ACTNUMST
>
<
TAXAMNT
>8.64</
TAXAMNT
>
<
RCPTLNNM
>1</
RCPTLNNM
>
</
taPopRcptLineTaxInsert
>
</
taPopRcptLineTaxInsert_Items
>
<
taPopRctUserDefined
xsi:nil
=
"true"
/>
<
taPopDistribution_Items
xsi:nil
=
"true"
/>
<
taAnalyticsDistribution_Items
xsi:nil
=
"true"
/>
<
taPopRcptHdrInsert
>
<
POPRCTNM
>R000065</
POPRCTNM
>
<
POPTYPE
>3</
POPTYPE
>
<
VNDDOCNM
>27300</
VNDDOCNM
>
<
receiptdate
>01/02/2016</
receiptdate
>
<
BACHNUMB
>16022016025926</
BACHNUMB
>
<
VENDORID
>ARJ001</
VENDORID
>
<
TAXAMNT
>8.64</
TAXAMNT
>
<
AUTOCOST
>1</
AUTOCOST
>
<
TAXSCHID
>PSTD</
TAXSCHID
>
<
USINGHEADERLEVELTAXES
>2</
USINGHEADERLEVELTAXES
>
<
CURNCYID
>GBP</
CURNCYID
>
</
taPopRcptHdrInsert
>
<
taMdaUpdate_Items
xsi:nil
=
"true"
/>
</
POPReceivingsType
>
</
eConnect
>
POPReceivingsType oPOPReceivingsType =
new
POPReceivingsType();
taPopRcptHdrInsert invoiceHeader =
new
taPopRcptHdrInsert();
List<taPopRcptLineInsert_ItemsTaPopRcptLineInsert> ecInvoiceLines =
new
List<taPopRcptLineInsert_ItemsTaPopRcptLineInsert>();
GetNextDocNumbers transNumber =
new
GetNextDocNumbers();
Int16 lineNumber = 1, lineIndex = 0;
String xmlFilename =
"XML\\posted"
+ DateTime.Now.ToString(
"ddMMyyyyhhmmss"
) +
".xml"
;
Decimal totalTax = 0;
//Get Business Unit/Supplier Details
c2sBUnit.BU_ID = Convert.ToInt32(invoice.BU_ID);
c2sSupplier.Supplier_ID = invoice.Supplier_ID;
c2sBUnit.Fetch();
c2sSupplier.Fetch();
//build connection string to dynamics database
dynamicsConnStr = ConfigurationManager.ConnectionStrings[
"eConnectDB"
].ConnectionString.Replace(
"{DBNAME}"
, c2sBUnit.BU_DBName);
Console.WriteLine(dynamicsConnStr);
invoice.InvoiceNumber = transNumber.GetNextPOPReceiptNumber(IncrementDecrement.Increment, dynamicsConnStr);
String batchNumberPlaceHolder = DateTime.Now.ToString(
"ddMMyyyyhhmmss"
);
String vendorReference = c2sSupplier.Supplier_Acct.Substring(c2sSupplier.Supplier_Acct.IndexOf(
'-'
) + 1);
Console.WriteLine(invoice.SupplierDocumentNumber);
//Invoice Header Details
invoiceHeader.POPRCTNM = invoice.InvoiceNumber;
//receipt number placeholder
invoiceHeader.POPTYPE = 3;
//Shipping/invoice
invoiceHeader.VNDDOCNM = invoice.SupplierDocumentNumber;
//invoice number
invoiceHeader.CURNCYID =
"GBP"
;
//currency defaults to GBP
invoiceHeader.TAXSCHID = invoice.TaxSchedule;
//Tax Code
invoiceHeader.receiptdate = invoice.InvoiceDate.ToString(
"dd/MM/yyyy"
);
// invoice.InvoiceDate.ToString("dd/MM/yyyy");
invoiceHeader.USINGHEADERLEVELTAXES = 2;
invoiceHeader.AUTOCOST = 1;
invoiceHeader.BACHNUMB = batchNumberPlaceHolder;
invoiceHeader.VENDORID = vendorReference;
//Invoice lines
taPopRcptLineTaxInsert_ItemsTaPopRcptLineTaxInsert[] invoiceLineTax =
new
taPopRcptLineTaxInsert_ItemsTaPopRcptLineTaxInsert[invoice.InvoiceLines.Count];
oPOPReceivingsType.taPopRcptLineInsert_Items =
new
taPopRcptLineInsert_ItemsTaPopRcptLineInsert[invoice.InvoiceLines.Count];
Decimal totalInvoiceTax = 0;
foreach
(OutgoingInvoiceLine line
in
invoice.InvoiceLines)
{
taPopRcptLineTaxInsert_ItemsTaPopRcptLineTaxInsert invoiceTax =
new
taPopRcptLineTaxInsert_ItemsTaPopRcptLineTaxInsert();
taPopRcptLineInsert_ItemsTaPopRcptLineInsert ecLine =
new
taPopRcptLineInsert_ItemsTaPopRcptLineInsert();
NominalIDs c2sNominal =
new
NominalIDs(ConfigurationManager.ConnectionStrings[
"DestinationDB"
].ConnectionString);
ecLine.POPRCTNM = invoice.SupplierDocumentNumber;
ecLine.VENDORID = vendorReference;
ecLine.CURNCYID =
"GBP"
;
ecLine.ITEMNMBR = line.ItemDescription;
ecLine.ITEMDESC = line.ItemDescription;
ecLine.UOFM =
"Each"
;
ecLine.QTYINVCD = line.Quantity;
ecLine.QTYSHPPD = line.Quantity;
ecLine.UNITCOST = Decimal.Parse(line.UnitCost.ToString());
ecLine.EXTDCOST = Decimal.Parse(Convert.ToString(line.UnitCost * line.Quantity));
ecLine.Purchase_IV_Item_Taxable = 3;
ecLine.EXTDCOSTSpecified =
true
;
ecLine.UNITCOSTSpecified =
true
;
ecLine.NONINVEN = 1;
ecLine.receiptdate =
"01/02/2016"
;
ecLine.RCPTLNNM = lineNumber;
ecLine.POPTYPE = 3;
//ecLine.INVINDX = 315;
ecLine.InventoryAccount =
"9998-00"
;
//line.NominalCode;
ecLine.ProjNum = line.ProjectNumber;
ecLine.CostCatID = line.CostCategory;
ecLine.LOCNCODE =
"NO PROJECT"
;
//default Location Code
ecLine.Purchase_Site_Tax_Schedu = line.TaxCode;
oPOPReceivingsType.taPopRcptLineInsert_Items[lineIndex] = ecLine;
totalTax = line.TaxCost;
//Invoice Tax
c2sNominal.Nominal_BUID = c2sBUnit.BU_ID;
c2sNominal.Nominal_Code = line.NominalCode;
c2sNominal.Fetch();
invoiceTax.TAXTYPE = 0;
invoiceTax.POPRCTNM = invoice.SupplierDocumentNumber;
invoiceTax.VENDORID = vendorReference;
invoiceTax.TAXDTLID = invoice.TaxDetail;
invoiceTax.TAXAMNT = totalTax;
invoiceTax.MSCTXAMT = Decimal.Parse(
"0.00"
);
invoiceTax.FRTTXAMT = Decimal.Parse(
"0.00"
);
//invoiceTax.ACTINDX = c2sNominal.ACCTINDX;
invoiceTax.ACTNUMST =
"1226-00"
;
//line.NominalCode;
invoiceTax.RCPTLNNM = lineNumber;
invoiceLineTax[lineIndex] = invoiceTax;
totalInvoiceTax += totalTax;
lineIndex++;
lineNumber++;
}
invoiceHeader.TAXAMNT = totalInvoiceTax;
oPOPReceivingsType.taPopRcptHdrInsert = invoiceHeader;
oPOPReceivingsType.taPopRcptLineTaxInsert_Items = invoiceLineTax;
// Create an eConnect XML document object and populate it
// with the POPReceivingsType schema object
eConnectType eConnect =
new
eConnectType();
eConnect.POPReceivingsType =
new
POPReceivingsType[1];
eConnect.POPReceivingsType[0] = oPOPReceivingsType;
// Create a file to hold the serialized eConnect XML document
FileStream fs =
new
FileStream(xmlFilename, FileMode.Create);
XmlTextWriter writer =
new
XmlTextWriter(fs,
new
UTF8Encoding());
// Serialize the eConnect document object to the file using the XmlTextWriter.
XmlSerializer serializer =
new
XmlSerializer(eConnect.GetType());
serializer.Serialize(writer, eConnect);
writer.Close();
XmlDocument xmldoc =
new
XmlDocument();
xmldoc.Load(xmlFilename);
//// Create an XML string from the document object
invoice.GeneratedXML = xmldoc.OuterXml;