Example #1
0
        private static OPCH_Purchase SyncUpload(OPCH_Purchase purchase)
        {
            var result = WebApiClient.AddPurchase(purchase).Result;

            purchase.UpdateModelPropertiesFrom(result.Model);
            purchase.StateL = LocalStatus.Procesado;
            result.UpdateEntityVersion();
            PurchaseHelper.SaveTransaction(purchase);
            return(purchase);
        }
Example #2
0
        private static void GetPurchaseFromServer(LOG_CHANGES changeset)
        {
            var purchase = WebApiClient.GetPurchase(changeset.ListVal).Result;

            var db = ContextFactory.GetDBContext();

            var id = Convert.ToInt32(changeset.ListVal);

            var localId = db.OPCH_Purchase.Include(c => c.PCH1_PurchaseDetail)
                          .FirstOrDefault(c => c.IdPurchase == changeset.IdL.Value);

            var localDE = db.OPCH_Purchase.Include(c => c.PCH1_PurchaseDetail)
                          .FirstOrDefault(c => c.DocEntry == id);

            if (changeset.IdL.HasValue) // C1
            {
                if (localId == null)    // C3
                {
                    db.OPCH_Purchase.Add(purchase);
                    PurchaseHelper.SaveTransaction(purchase);
                }
                else
                {
                    if (localId.StateL == LocalStatus.Procesado)                     // C4
                    {
                        if (localDE == null || localDE.DocEntry != localId.DocEntry) // C5
                        {
                            db.OPCH_Purchase.Add(purchase);
                            PurchaseHelper.SaveTransaction(purchase);
                        }
                        else
                        {
                            localId.UpdateModelPropertiesFrom(purchase);
                        }
                    }
                    else
                    {
                        localId.UpdateModelPropertiesFrom(purchase);
                        PurchaseHelper.SaveTransaction(purchase);
                    }
                }
            }
            else //  C2 -- El Idl no contenia un valor
            {
                if (localDE == null)
                {
                    db.OPCH_Purchase.Add(purchase);
                    PurchaseHelper.SaveTransaction(purchase);
                }
            }

            // db.LOG_CHANGES.Add(changeset);
            changeset.AddChangeset();
        }