private TblSalaryApprovalHeader UpdateOrInsertSalaryApprovalHeader(TblSalaryApprovalHeader newRow, int index, int userIserial, out int outindex, string company) { outindex = index; using (var context = new ccnewEntities(SharedOperation.GetSqlConnectionString(company))) { try { var oldRow = context.TblSalaryApprovalHeaders.FirstOrDefault(th => th.Iserial == newRow.Iserial); if (oldRow != null)// الهيدر موجود قبل كده { oldRow.StoreApproved = newRow.StoreApproved; //foreach (var item in newRow.TblSalaryApprovalDetails.ToArray()) //{ // // هشوف بقى الى اتعدل والجديد // int temp; // //headeriserial = item.TblSalaryApprovalHeader; // item.TblSalaryApprovalHeader1 = null; // item.TblSalaryApprovalHeader = newRow.Iserial; // UpdateOrInsertSalaryApprovalDetail(item, userIserial, 1, out temp,company); // item.TblSalaryApprovalHeader1Reference = null; //} //context.Entry(oldRow).CurrentValues.SetValues(newRow); } else// الهيدر ده جديد { context.TblSalaryApprovalHeaders.AddObject(newRow); } context.SaveChanges(); } catch (Exception ex) { throw ex; } return(newRow); } }
private void ImportSalaryApproval(List <TblSalaryApprovalHeader> List, int userIserial, string company) { using (var context = new ccnewEntities(SharedOperation.GetSqlConnectionString(company))) { foreach (var item in List) { var store = 0; var salarytype = 0; try { store = context.TblStores.FirstOrDefault(w => w.code == item.TblStore1.code).iserial; salarytype = context.TblSalaryTypes.FirstOrDefault(w => w.EName == item.TblSalaryType1.EName).Iserial; } catch (Exception) { continue; } item.TblStore1 = null; item.TblSalaryType1 = null; var headerRow = context.TblSalaryApprovalHeaders.FirstOrDefault(w => w.Code == item.Code && w.TblStore == store && w.Month == item.Month && w.Year == item.Year && w.TblSalaryType == salarytype); if (headerRow == null) { var newHeader = new TblSalaryApprovalHeader() { Month = item.Month, TblSalaryType = salarytype, TblStore = store, Year = item.Year, TblUser = 0, VotDate = DateTime.Now, CreationDate = DateTime.Now, HQApproved = true, StoreApproved = false, Code = item.Code, DueDate = item.DueDate }; newHeader.TblSalaryApprovalDetails = new System.Data.Objects.DataClasses.EntityCollection <TblSalaryApprovalDetail>(); headerRow = newHeader; } foreach (var SalaryDetail in item.TblSalaryApprovalDetails) { var empcode = SalaryDetail.TblEmployee.ToString(); try { var Employee = context.TblEmployees.FirstOrDefault(e => e.code == empcode).iserial; var newDetail = new TblSalaryApprovalDetail() { Approved = false, CreationDate = DateTime.Now, Salary = SalaryDetail.Salary, TblEmployee = Employee, }; headerRow.TblSalaryApprovalDetails.Add(newDetail); } catch (Exception) { continue; } } if (headerRow.Iserial == 0) { context.TblSalaryApprovalHeaders.AddObject(headerRow); } } context.SaveChanges(); } }