public virtual int Update(Order.Order_DetailsDataTable dataTable) {
return this.Adapter.Update(dataTable);
}
Order_DetailsTableAdapter::Update ( decimal UnitPrice, short Quantity, float Discount, global |
|
Order_DetailsTableAdapter::Update ( global dataRow ) : int | |
Order_DetailsTableAdapter::Update ( global |
public override SdataTransactionResult Update(PayloadBase payload, List<SyncFeedEntryLink> links) { SdataTransactionResult tmpTransactionResult; if (!(payload is SalesOrderLinePayload)) { tmpTransactionResult = new SdataTransactionResult(); tmpTransactionResult.HttpMethod = "PUT"; tmpTransactionResult.ResourceKind = _resourceKind; tmpTransactionResult.HttpStatus = System.Net.HttpStatusCode.BadRequest; tmpTransactionResult.HttpMessage = ("salesorder payload missing"); return tmpTransactionResult; } salesOrderLinetype soLine = (payload as SalesOrderLinePayload).SalesOrderLinetype; DataSets.OrderTableAdapters.Order_DetailsTableAdapter detailsTableAdapter = new Order_DetailsTableAdapter(); DataSets.Order order = new DataSets.Order(); int productId; int orderId; if (GetLocalIds(payload.LocalID, out orderId, out productId)) { using (OleDbConnection connection = new OleDbConnection(_context.Config.ConnectionString)) { try { detailsTableAdapter.Connection = connection; int recordCount = detailsTableAdapter.FillBy(order.Order_Details, orderId); if (recordCount == 0) { tmpTransactionResult = new SdataTransactionResult(); tmpTransactionResult.LocalId = payload.LocalID; tmpTransactionResult.HttpMethod = "PUT"; tmpTransactionResult.ResourceKind = _resourceKind; tmpTransactionResult.HttpStatus = System.Net.HttpStatusCode.BadRequest; tmpTransactionResult.HttpMessage = ("salesorder not found"); return tmpTransactionResult; } foreach (Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order.Order_DetailsRow detailsRow in order.Order_Details.Rows) { if (detailsRow.ProductID == productId) { detailsRow.ModifyUser = _context.Config.CrmUser; detailsRow.ModifyID = _context.Config.SequenceNumber; if (soLine.quantitySpecified) detailsRow.Quantity = Convert.ToInt16(soLine.quantity); else detailsRow.Quantity = 0; if (soLine.initialPriceSpecified) detailsRow.UnitPrice = (Decimal)soLine.initialPrice; else detailsRow.UnitPrice = 0; if ((!soLine.discountTotalSpecified) || (detailsRow.Quantity == 0) || (detailsRow.UnitPrice == 0)) { detailsRow.Discount = (float)0; } else { // discountPC = discountsum / qunatity * listprice //detailRow.Discount = Convert.ToSingle((decimal)lineItemDoc.discountsum.Value / ((decimal)detailRow.Quantity * detailRow.UnitPrice)); float discount = Convert.ToSingle((decimal)soLine.discountTotal / (detailsRow.UnitPrice)); if (discount > 1) discount = 0; detailsRow.Discount = discount; } break; } } detailsTableAdapter.Update(order.Order_Details); tmpTransactionResult = new SdataTransactionResult(); tmpTransactionResult.LocalId = payload.LocalID; tmpTransactionResult.HttpMethod = "PUT"; tmpTransactionResult.ResourceKind = _resourceKind; tmpTransactionResult.HttpStatus = System.Net.HttpStatusCode.OK; return tmpTransactionResult; } catch (Exception e) { tmpTransactionResult = new SdataTransactionResult(); tmpTransactionResult.LocalId = payload.LocalID; tmpTransactionResult.HttpMethod = "PUT"; tmpTransactionResult.ResourceKind = _resourceKind; tmpTransactionResult.HttpStatus = System.Net.HttpStatusCode.BadRequest; tmpTransactionResult.HttpMessage = e.Message; return tmpTransactionResult; } } } tmpTransactionResult = new SdataTransactionResult(); tmpTransactionResult.LocalId = payload.LocalID; tmpTransactionResult.HttpMethod = "PUT"; tmpTransactionResult.ResourceKind = _resourceKind; tmpTransactionResult.HttpStatus = System.Net.HttpStatusCode.BadRequest; tmpTransactionResult.HttpMessage = "Not found"; return tmpTransactionResult; }