Exemplo n.º 1
0
        private static void GetClientCreditNotes(LOG_CHANGES changeset)
        {
            var note = WebApiClient.GetSaleCreditNote(changeset.ListVal).Result;

            var db = ContextFactory.GetDBContext();

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

            var localId = db.ORIN_ClientCreditNotes.Include(c => c.RIN1_ClientCreditNoteDetail)
                          .FirstOrDefault(c => c.IdClientCreditNoteL == changeset.IdL.Value);

            var localDE = db.ORIN_ClientCreditNotes.Include(c => c.RIN1_ClientCreditNoteDetail)
                          .FirstOrDefault(c => c.DocEntry == id);

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

            //db.LOG_CHANGES.Add(changeset);
            changeset.AddChangeset();
        }
Exemplo n.º 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();
        }
Exemplo n.º 3
0
        private static void GetTransfersfromServer(LOG_CHANGES changeset)
        {
            var transfer = WebApiClient.GetTransfer(changeset.ListVal).Result;

            if (transfer == null)
            {
                return;
            }

            transfer.StateL = LocalStatus.Procesado;

            var db = ContextFactory.GetDBContext();

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

            var localId = db.OWTR_Transfers.Include(c => c.WTR1_TransferDetails)
                          .FirstOrDefault(c => c.IdTransferL == changeset.IdL.Value);

            var localDE = db.OWTR_Transfers.Include(c => c.WTR1_TransferDetails)
                          .FirstOrDefault(c => c.DocEntry == id);

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

            //db.LOG_CHANGES.Add(changeset);
            changeset.AddChangeset();
        }
Exemplo n.º 4
0
        private static void GetTransferTransferRequestFromServer(LOG_CHANGES changeset)
        {
            var transfer = WebApiClient.GetTransferRequest(changeset.ListVal).Result;

            if (transfer == null)
            {
                return;
            }
            transfer.StateL = LocalStatus.Procesado;
            var db = ContextFactory.GetDBContext();

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

            var localId = db.OWTQ_TransferRequest.Include(c => c.WTQ1_TransferRequestDetails)
                          .FirstOrDefault(c => c.IdTransferRequestL == changeset.IdL.Value);

            var localDE = db.OWTQ_TransferRequest.Include(c => c.WTQ1_TransferRequestDetails)
                          .FirstOrDefault(c => c.DocEntry == id);

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

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


            //if (changeset.SyncType == SyncType.Add)
            //{
            //    // Actualizar si Changeset Tiene Idl y no esta procesado localmente

            //    if (changeset.IdL.HasValue)
            //    {
            //        var local =
            //            db.OWTQ_TransferRequest.Include("WTQ1_TransferRequestDetails")
            //            .FirstOrDefault(t => t.IdTransferRequestL == changeset.IdL.Value);

            //        if (local == null)
            //        {
            //            NotifyException(transfer);
            //            db.LOG_CHANGES.Add(changeset);
            //            db.SaveChanges();
            //            return;
            //        }

            //        // Verificar si no esta procesado
            //        if (local.StateL != LocalStatus.Procesado)
            //        {

            //            local.UpdateModelPropertiesFrom(transfer);

            //        }
            //    } // Si el objeto no tiene ID Local
            //    else db.OWTQ_TransferRequest.Add(transfer);
            //}

            //if (changeset.SyncType == SyncType.Update)
            //{
            //    var local =
            //        db.OWTQ_TransferRequest.Include("WTQ1_TransferRequestDetails")
            //        .FirstOrDefault(t => t.DocEntry == transfer.DocEntry);

            //    if (local == null)
            //    {
            //        NotifyException(transfer);
            //        db.LOG_CHANGES.Add(changeset);
            //        db.SaveChanges();
            //        return;
            //    }

            //    if (local.WTQ1_TransferRequestDetails.Count != transfer.WTQ1_TransferRequestDetails.Count)
            //    {
            //        // Remove All Local Details.
            //        local.WTQ1_TransferRequestDetails.ForEach(d=> d.RemoveAndSave());
            //        local.WTQ1_TransferRequestDetails.AddRange(transfer.WTQ1_TransferRequestDetails);
            //        local.UpdateModelPropertiesFrom(transfer,excludeComplexTypes:true);
            //    }
            //    else local.UpdateModelPropertiesFrom(transfer);

            //}
            //db.LOG_CHANGES.Add(changeset);
            //db.SaveChanges();
        }
Exemplo n.º 5
0
        public static void GetSpecialOrdersFromServer(LOG_CHANGES changeset)
        {
            var order = WebApiClient.GetSpecialOrder(changeset.ListVal).Result;

            if (order == null)
            {
                return;
            }
            order.StateL = LocalStatus.Procesado;

            var db = ContextFactory.GetDBContext();

            if (changeset.SyncType == SyncType.Add)
            {
                if (changeset.IdL.HasValue)
                {
                    // Get Local if Local == null NotifyException ()
                    var local =
                        db.ORDR_SpecialOrder.Include("RDR1_SpecialOrderDetail").Include("ATC1_Attachments")
                        .FirstOrDefault(o => o.IdSpecialOrder == changeset.IdL.Value);

                    if (local == null)
                    {
                        NotifyException(order);
                        //db.LOG_CHANGES.Add(changeset);
                        changeset.AddChangeset();
                        return;
                    }
                    // Verfiy != Procesado.
                    if (local.StateL != LocalStatus.Procesado)
                    {
                        local.UpdateModelPropertiesFrom(order);
                    }
                }
                else
                {
                    db.ORDR_SpecialOrder.Add(order);
                }
            }
            if (changeset.SyncType == SyncType.Update)
            {
                var local = db.ORDR_SpecialOrder.Include("RDR1_SpecialOrderDetail").Include("ATC1_Attachments")
                            .FirstOrDefault(o => o.DocEntry == order.DocEntry);

                if (local == null)
                {
                    NotifyException(order);
                    //db.LOG_CHANGES.Add(changeset);
                    changeset.AddChangeset();
                    return;
                }


                if (local.RDR1_SpecialOrderDetail.Count == order.RDR1_SpecialOrderDetail.Count &&
                    local.ATC1_Attachments.Count == order.ATC1_Attachments.Count)
                {
                    local.UpdateModelPropertiesFrom(order);
                }

                if (local.RDR1_SpecialOrderDetail.Count != order.RDR1_SpecialOrderDetail.Count)
                {
                    local.RDR1_SpecialOrderDetail.ForEach(d => d.RemoveAndSave());
                    local.RDR1_SpecialOrderDetail.AddRange(order.RDR1_SpecialOrderDetail);
                    local.UpdateModelPropertiesFrom(order, excludeComplexTypes: true);
                    db.SaveChanges();
                }
                if (local.ATC1_Attachments.Count != order.ATC1_Attachments.Count)
                {
                    local.ATC1_Attachments.ForEach(d => d.RemoveAndSave());
                    local.ATC1_Attachments.AddRange(order.ATC1_Attachments);
                    local.UpdateModelPropertiesFrom(order, excludeComplexTypes: true);
                    db.SaveChanges();
                }
            }
            //db.LOG_CHANGES.Add(changeset);
            changeset.AddChangeset();
        }