public SdataTransactionResult Update(Sage.Common.Syndication.FeedEntry payload)
        {
            //Transform account
            Document        document        = GetTransformedDocument(payload);
            AccountDocument accountDocument = (AccountDocument)_entity.GetDocumentTemplate();

            accountDocument.Id    = document.Id;
            accountDocument.CrmId = GetTradingAccountUuid(document.Id);
            accountDocument.addresses.documents.Add(document);
            // Update Document

            List <TransactionResult> transactionResults = new List <TransactionResult>();

            _entity.Update(accountDocument, _context.Config, ref transactionResults);
            SdataTransactionResult sdTrResult = GetSdataTransactionResult(transactionResults,
                                                                          _context.OriginEndPoint, SupportedResourceKinds.tradingAccounts);

            if (sdTrResult != null)
            {
                sdTrResult.ResourceKind = _resourceKind;

                sdTrResult.HttpMessage = "PUT";
            }
            return(sdTrResult);
        }
 public override Application.Base.Document GetTransformedDocument(Sage.Common.Syndication.FeedEntry payload)
 {
     Application.Base.Document document = _transform.GetTransformedDocument(payload as TradingAccountFeedEntry);
     if (document.CrmId == null)
     {
         document.CrmId = payload.Key;
     }
     return(document);
 }
Ejemplo n.º 3
0
        public override SdataTransactionResult Update(Sage.Common.Syndication.FeedEntry payload)
        {
            //Transform account
            Document document = GetTransformedDocument(payload);
            string   id;
            string   accountId;

            id = document.Id;
            if (id.EndsWith(Sage.Integration.Northwind.Application.API.Constants.PhoneIdPostfix))
            {
                accountId = id.Replace(Sage.Integration.Northwind.Application.API.Constants.PhoneIdPostfix, "");
            }
            else if (id.EndsWith(Sage.Integration.Northwind.Application.API.Constants.FaxIdPostfix))
            {
                accountId = id.Replace(Sage.Integration.Northwind.Application.API.Constants.FaxIdPostfix, "");
            }
            else
            {
                return(null);
            }

            AccountDocument accountDocument = (AccountDocument)_entity.GetDocumentTemplate();

            accountDocument.Id    = accountId;
            accountDocument.CrmId = GetTradingAccountUuid(accountId);
            accountDocument.phones.documents.Add(document);
            // Update Document

            List <TransactionResult> transactionResults = new List <TransactionResult>();

            _entity.Update(accountDocument, _context.Config, ref transactionResults);
            SdataTransactionResult sdTrResult = GetSdataTransactionResult(transactionResults,
                                                                          _context.OriginEndPoint, SupportedResourceKinds.phoneNumbers);

            if (sdTrResult != null)
            {
                sdTrResult.ResourceKind = _resourceKind;

                sdTrResult.HttpMessage = "PUT";
            }
            return(sdTrResult);
        }
Ejemplo n.º 4
0
        public override SdataTransactionResult Update(Sage.Common.Syndication.FeedEntry payload)
        {
            SdataTransactionResult tmpTransactionResult;

            if (!(payload is SalesOrderLineFeedEntry))
            {
                tmpTransactionResult              = new SdataTransactionResult();
                tmpTransactionResult.HttpMethod   = HttpMethod.PUT;
                tmpTransactionResult.ResourceKind = _resourceKind;
                tmpTransactionResult.HttpStatus   = System.Net.HttpStatusCode.BadRequest;
                tmpTransactionResult.HttpMessage  = ("salesorder payload missing");
                return(tmpTransactionResult);
            }

            SalesOrderLineFeedEntry soLine = payload as SalesOrderLineFeedEntry;

            Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.OrderTableAdapters.Order_DetailsTableAdapter detailsTableAdapter = new Order_DetailsTableAdapter();
            Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order order = new Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order();

            int productId;
            int orderId;

            if (GetLocalIds(payload.Key, 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.Key;
                            tmpTransactionResult.HttpMethod   = 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.IsPropertyChanged("quantity"))
                                {
                                    detailsRow.Quantity = Convert.ToInt16(soLine.quantity);
                                }
                                else
                                {
                                    detailsRow.Quantity = 0;
                                }

                                if (soLine.IsPropertyChanged("initialPrice"))
                                {
                                    detailsRow.UnitPrice = (Decimal)soLine.initialPrice;
                                }
                                else
                                {
                                    detailsRow.UnitPrice = 0;
                                }

                                if ((!soLine.IsPropertyChanged("discountTotal")) || (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.Key;
                        tmpTransactionResult.HttpMethod   = HttpMethod.PUT;
                        tmpTransactionResult.ResourceKind = _resourceKind;
                        tmpTransactionResult.HttpStatus   = System.Net.HttpStatusCode.OK;
                        return(tmpTransactionResult);
                    }
                    catch (Exception e)
                    {
                        tmpTransactionResult              = new SdataTransactionResult();
                        tmpTransactionResult.LocalId      = payload.Key;
                        tmpTransactionResult.HttpMethod   = HttpMethod.PUT;
                        tmpTransactionResult.ResourceKind = _resourceKind;
                        tmpTransactionResult.HttpStatus   = System.Net.HttpStatusCode.BadRequest;
                        tmpTransactionResult.HttpMessage  = e.Message;
                        return(tmpTransactionResult);
                    }
                }
            }
            tmpTransactionResult              = new SdataTransactionResult();
            tmpTransactionResult.LocalId      = payload.Key;
            tmpTransactionResult.HttpMethod   = HttpMethod.PUT;
            tmpTransactionResult.ResourceKind = _resourceKind;
            tmpTransactionResult.HttpStatus   = System.Net.HttpStatusCode.BadRequest;
            tmpTransactionResult.HttpMessage  = "Not found";
            return(tmpTransactionResult);
        }
Ejemplo n.º 5
0
 public override Application.Base.Document GetTransformedDocument(Sage.Common.Syndication.FeedEntry payload)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 6
0
 public override SdataTransactionResult Add(Sage.Common.Syndication.FeedEntry payload)
 {
     throw new NotImplementedException();
 }
 public override Application.Base.Document GetTransformedDocument(Sage.Common.Syndication.FeedEntry payload)
 {
     return(_transform.GetTransformedDocument(payload as PriceListFeedEntry));
 }
Ejemplo n.º 8
0
        protected void SetCommonProperties(Sage.Integration.Northwind.Application.Base.Document document, string descriptor, Sage.Common.Syndication.FeedEntry entry)
        {
            entry.Id  = GetSDataId(document.Id);
            entry.Key = document.Id;
            CorrelatedResSyncInfo syncInfo = GetUuidAsGuid(document.Id, document.CrmId);

            entry.UUID       = syncInfo.ResSyncInfo.Uuid;
            entry.Updated    = syncInfo.ResSyncInfo.ModifiedStamp.ToLocalTime();
            entry.Descriptor = descriptor;
        }
Ejemplo n.º 9
0
 public override SdataTransactionResult Add(Sage.Common.Syndication.FeedEntry payload)
 {
     // until there is no reference inside the payload, no add will be possible
     throw new NotImplementedException();
 }