Exemple #1
0
        public void SaveMainRow()
        {
            Loading = true;
            var saveTemp = (TblTradeAgreementTransaction) new TblTradeAgreementTransaction().InjectFrom(SelectedMainRow);

            saveTemp.TblTradeAgreementHeaders = new ObservableCollection <TblTradeAgreementHeader>();
            var details = SelectedMainRow.DetailsList.Where(d => d.TblVendorPurchaseGroup != null &&
                                                            d.ItemCode != null && d.CurrencyCode != null);

            foreach (var item in details.GroupBy(d => new { d.Vendor }))
            {
                var firstDetail          = item.FirstOrDefault();
                var TradeAgreementHeader = new TblTradeAgreementHeader()
                {
                    FromDate = SelectedMainRow.FromDate,
                    ToDate   = SelectedMainRow.ToDate,
                    Vendor   = item.Key.Vendor,
                    TblTradeAgreementTransaction = saveTemp.Iserial,
                };
                if (firstDetail != null)
                {
                    TradeAgreementHeader.Iserial = firstDetail.HeaderIserial;
                }

                TradeAgreementHeader.TblTradeAgreementDetails =
                    new ObservableCollection <TblTradeAgreementDetail>();
                GenericMapper.InjectFromObCollection(TradeAgreementHeader.TblTradeAgreementDetails,
                                                     details.Where(d => d.Vendor == item.Key.Vendor));

                saveTemp.TblTradeAgreementHeaders.Add(TradeAgreementHeader);
            }
            productionServiceClient.SaveTradeAgreementAsync(saveTemp);
        }
Exemple #2
0
        public List <TblTradeAgreementDetail> SaveTradeAgreement(TblTradeAgreementHeader header)
        {
            using (var entities = new WorkFlowManagerDBEntities())
            {
                if (entities.TblTradeAgreementHeaders.Any(x => x.Vendor == header.Vendor && x.FromDate == header.FromDate && x.ToDate == header.ToDate))
                {
                    var oldHeader = (from s in entities.TblTradeAgreementHeaders
                                     where s.Iserial == header.Iserial
                                     select s).SingleOrDefault();
                    GenericUpdate(oldHeader, header, entities);
                    foreach (var detail in header.TblTradeAgreementDetails)
                    {
                        detail.TblTradeAgreementHeader = oldHeader.Iserial;
                        if (detail.Iserial != 0)
                        {
                            var oldRow = (from s in entities.TblTradeAgreementDetails
                                          where s.Iserial == detail.Iserial
                                          select s).SingleOrDefault();
                            GenericUpdate(oldRow, detail, entities);
                        }
                        else
                        {
                            entities.TblTradeAgreementDetails.AddObject(detail);
                        }
                    }
                }
                else
                {
                    entities.TblTradeAgreementHeaders.AddObject(header);
                }

                entities.SaveChanges();
                return(header.TblTradeAgreementDetails.ToList());
            }
        }
Exemple #3
0
        public List <TblTradeAgreementDetail> SaveTradeAgreement(TblTradeAgreementTransaction header,
                                                                 out TblTradeAgreementTransaction savedHeader)
        {
            header.TblLkpSeason1 = null;
            savedHeader          = header;
            using (var entities = new WorkFlowManagerDBEntities())
            {
                var oldTransaction = entities.TblTradeAgreementTransactions.FirstOrDefault(s =>
                                                                                           s.Iserial == header.Iserial);
                if (oldTransaction != null)
                {
                    SharedOperation.GenericUpdate(oldTransaction, header, entities);

                    foreach (var headerItem in header.TblTradeAgreementHeaders)
                    {
                        headerItem.TblTradeAgreementTransaction = oldTransaction.Iserial;
                        var oldRow = entities.TblTradeAgreementHeaders.FirstOrDefault(
                            x => x.Vendor == headerItem.Vendor && x.FromDate == headerItem.FromDate && x.ToDate == headerItem.ToDate);
                        if (oldRow != null)
                        {
                            headerItem.Iserial = oldRow.Iserial;
                            SharedOperation.GenericUpdate(oldRow, headerItem, entities);
                            foreach (var detailItem in headerItem.TblTradeAgreementDetails)
                            {
                                detailItem.TblTradeAgreementHeader = headerItem.Iserial;
                                if (detailItem.Iserial != 0)
                                {
                                    var olddetailRow = entities.TblTradeAgreementDetails.SingleOrDefault(
                                        s => s.Iserial == detailItem.Iserial);
                                    SharedOperation.GenericUpdate(olddetailRow, detailItem, entities);
                                }
                                else
                                {
                                    var tempDetail = new TblTradeAgreementDetail();
                                    tempDetail = detailItem.Clone();
                                    tempDetail.TblTradeAgreementHeader1 = null;
                                    entities.TblTradeAgreementDetails.AddObject(tempDetail);
                                }
                            }
                        }
                        else
                        {
                            var tempHeader = new TblTradeAgreementHeader();
                            tempHeader = headerItem.Clone();
                            tempHeader.TblTradeAgreementTransaction1 = null;
                            entities.TblTradeAgreementHeaders.AddObject(tempHeader);
                        }
                    }
                }
                else
                {
                    header.Serial = entities.TblTradeAgreementTransactions.Where(t =>
                                                                                 t.TblLkpSeason == header.TblLkpSeason
                                                                                 ).Select(t => t.Serial).DefaultIfEmpty(0).Max() + 1;
                    entities.TblTradeAgreementTransactions.AddObject(header);
                }

                entities.SaveChanges();

                List <TblTradeAgreementDetail> result = new List <TblTradeAgreementDetail>();
                header.TblTradeAgreementHeaders.ForEach(h => h.TblTradeAgreementDetails.ForEach(d => result.Add(d)));
                return(result);
            }
        }