示例#1
0
        internal void SaveDetailRows()
        {
            foreach (var variable in SelectedMainRow.DetailsList.Where(d => d.ItemCode != null))
            {
                var valiationCollection = new List <ValidationResult>();

                var isvalid = Validator.TryValidateObject(variable, new ValidationContext(variable, null, null), valiationCollection, true);

                if (isvalid)
                {
                    var rowToSave = new TblTradeAgreementDetail();

                    rowToSave.InjectFrom(SelectedDetailRow);
                    rowToSave.TblTradeAgreementHeader1 = new TblTradeAgreementHeader()
                    {
                        TblTradeAgreementTransaction1 = new TblTradeAgreementTransaction()
                    };
                    rowToSave.TblTradeAgreementHeader1.TblTradeAgreementTransaction1.InjectFrom(SelectedMainRow);
                    productionServiceClient.UpdateOrInsertTblTradeAgreementDetailAsync(rowToSave, SelectedMainRow.DetailsList.IndexOf(SelectedDetailRow), LoggedUserInfo.Iserial);
                }
                else
                {
                    MessageBox.Show("Data IS Not Valid");
                    return;
                }
            }
        }
示例#2
0
        public void SaveDetailRow()
        {
            if (SelectedDetailRow != null)
            {
                var valiationCollection = new List <ValidationResult>();

                var isvalid = Validator.TryValidateObject(SelectedDetailRow, new ValidationContext(SelectedDetailRow, null, null), valiationCollection, true);

                if (isvalid)
                {
                    var rowToSave = new TblTradeAgreementDetail();

                    rowToSave.InjectFrom(SelectedDetailRow);
                    rowToSave.TblTradeAgreementHeader1 = new TblTradeAgreementHeader()
                    {
                        Iserial = SelectedDetailRow.HeaderIserial,
                        TblTradeAgreementTransaction = SelectedMainRow.Iserial,
                        FromDate = SelectedMainRow.FromDate,
                        ToDate   = SelectedMainRow.ToDate,
                        Vendor   = SelectedDetailRow.Vendor
                    };
                    productionServiceClient.UpdateOrInsertTblTradeAgreementDetailAsync(rowToSave,
                                                                                       SelectedMainRow.DetailsList.IndexOf(SelectedDetailRow), LoggedUserInfo.Iserial);
                }
            }
        }
示例#3
0
        private TblTradeAgreementDetail UpdateOrInsertTblTradeAgreementDetail(TblTradeAgreementDetail newRow, int index, out int outindex, int User)
        {
            outindex = index;

            using (var context = new WorkFlowManagerDBEntities())
            {
                var header = newRow.TblTradeAgreementHeader1;
                if (
                    context.TblTradeAgreementHeaders.Any(
                        x => x.Vendor == header.Vendor && x.FromDate == header.FromDate && x.ToDate == header.ToDate))
                {
                    newRow.TblTradeAgreementHeader1 = null;
                    newRow.TblTradeAgreementHeader  = context.TblTradeAgreementHeaders.FirstOrDefault(
                        x => x.Vendor == header.Vendor && x.FromDate == header.FromDate && x.ToDate == header.ToDate)
                                                      .Iserial;
                    var oldRow = (from e in context.TblTradeAgreementDetails
                                  where e.Iserial == newRow.Iserial
                                  select e).SingleOrDefault();
                    if (oldRow != null)
                    {
                        newRow.CreatedBy    = oldRow.CreatedBy;
                        newRow.CreationDate = oldRow.CreationDate;

                        newRow.LastUpdatedBy   = User;
                        newRow.LastUpdatedDate = DateTime.Now;
                        GenericUpdate(oldRow, newRow, context);
                    }
                    else
                    {
                        newRow.CreatedBy       = User;
                        newRow.CreationDate    = DateTime.Now;
                        newRow.LastUpdatedDate = DateTime.Now;
                        context.TblTradeAgreementDetails.AddObject(newRow);
                    }
                }
                else
                {
                    var oldRow = (from e in context.TblTradeAgreementDetails
                                  where e.Iserial == newRow.Iserial
                                  select e).SingleOrDefault();
                    if (oldRow != null)
                    {
                        context.TblTradeAgreementDetails.DeleteObject(oldRow);
                    }
                    newRow.Iserial = 0;
                    newRow.TblTradeAgreementHeader          = 0;
                    newRow.TblTradeAgreementHeader1.Iserial = 0;
                    newRow.CreatedBy       = User;
                    newRow.CreationDate    = DateTime.Now;
                    newRow.LastUpdatedDate = DateTime.Now;
                    context.TblTradeAgreementDetails.AddObject(newRow);
                }

                context.SaveChanges();
                return(newRow);
            }
        }
示例#4
0
        private TblTradeAgreementDetail UpdateOrInsertTblTradeAgreementDetail(TblTradeAgreementDetail newRow,
                                                                              int index, out int outindex, int User)
        {
            outindex = index;
            using (var context = new WorkFlowManagerDBEntities())
            {
                var header = newRow.TblTradeAgreementHeader1;
                header.TblTradeAgreementTransaction1 = null;
                newRow.TblColor1                        = null;
                newRow.TblColor1Reference               = null;
                newRow.TblLkpSeason1                    = null;
                newRow.TblLkpSeason1Reference           = null;
                newRow.TblVendorPurchaseGroup1          = null;
                newRow.TblVendorPurchaseGroup1Reference = null;
                if (context.TblTradeAgreementHeaders.Any(
                        x => x.Vendor == header.Vendor && x.FromDate == header.FromDate && x.ToDate == header.ToDate))
                {
                    newRow.TblTradeAgreementHeader1 = null;
                    newRow.TblTradeAgreementHeader  = context.TblTradeAgreementHeaders.FirstOrDefault(
                        x => x.Vendor == header.Vendor && x.FromDate == header.FromDate && x.ToDate == header.ToDate).Iserial;
                    var oldRow = context.TblTradeAgreementDetails.
                                 SingleOrDefault(e => e.Iserial == newRow.Iserial);
                    if (oldRow != null)
                    {
                        newRow.CreatedBy    = oldRow.CreatedBy;
                        newRow.CreationDate = oldRow.CreationDate;

                        newRow.LastUpdatedBy   = User;
                        newRow.LastUpdatedDate = DateTime.Now;
                        SharedOperation.GenericUpdate(oldRow, newRow, context);
                    }
                    else
                    {
                        newRow.CreatedBy       = User;
                        newRow.LastUpdatedBy   = User;
                        newRow.CreationDate    = DateTime.Now;
                        newRow.LastUpdatedDate = DateTime.Now;
                        context.TblTradeAgreementDetails.AddObject(newRow);
                    }
                }
                else
                {
                    context.TblTradeAgreementHeaders.AddObject(newRow.TblTradeAgreementHeader1);
                    //newRow.TblTradeAgreementHeader1 = null;
                    var oldRow = context.TblTradeAgreementDetails.SingleOrDefault(e => e.Iserial == newRow.Iserial);
                    if (oldRow != null)
                    {
                        context.TblTradeAgreementDetails.DeleteObject(oldRow);
                    }
                    else
                    {
                        newRow.LastUpdatedBy   = User;
                        newRow.LastUpdatedDate = DateTime.Now;
                        newRow.CreatedBy       = User;
                        newRow.CreationDate    = DateTime.Now;
                        context.TblTradeAgreementDetails.AddObject(newRow);
                    }
                    newRow.Iserial = 0;
                }
                context.SaveChanges();
                return(newRow);
            }
        }
示例#5
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);
            }
        }