public void MakeList(KlonsADataSet.TIMESHEET_LISTSRow dr_sar) { ClearList(); if (dr_sar == null) { return; } var table_sar = MyData.DataSetKlons.TIMESHEET_LISTS; var table_sar_r = MyData.DataSetKlons.TIMESHEET_LISTS_R; var table_darba_laiks = MyData.DataSetKlons.TIMESHEET; var table_plans = MyData.DataSetKlons.TIMEPLAN_LIST; var table_persons = MyData.DataSetKlons.PERSONS; var table_amati = MyData.DataSetKlons.POSITIONS; var dv_darba_laiks = table_darba_laiks.AsDataView(); dv_darba_laiks.Sort = "ID"; var drs_sar_r = dr_sar.GetTIMESHEET_LISTS_RRows(); var jr_list = new List <TimeSheetJoinViewRow>(); foreach (var dr_sar_r in drs_sar_r) { var drs_darba_laiks = dr_sar_r.GetTIMESHEETRows(); var dr_pers = table_persons.FindByID(dr_sar_r.IDP); var dr_amats = table_amati.FindByID(dr_sar_r.IDAM); var s_name = string.Format("{0} {1}", dr_pers.FNAME, dr_pers.LNAME); var s_position = dr_amats.TITLE; var s_title = string.Format("{0} {1}, {2}", dr_pers.FNAME, dr_pers.LNAME, s_position); var jadd = new AddToDLJoinViewRow() { DRV = dr_sar_r, Name = s_name, Position = s_position, Title = s_title }; var jrset = new TimeSheetJoinViewRowSet(); var act_add_row = new Action <KlonsADataSet.TIMESHEETRow>(dr => { var drv_darba_laiks = dv_darba_laiks.FindRows(dr.ID)[0]; var jr_darba_laiks = new TimeSheetJoinViewRow(this, drv_darba_laiks, jadd); jr_darba_laiks.RowSet = jrset; jrset.SetRow(jr_darba_laiks); jr_list.Add(jr_darba_laiks); }); foreach (var dr_darba_laiks in drs_darba_laiks) { act_add_row(dr_darba_laiks); } if (dr_sar_r.XPlanType == EPlanType.Fixed) { var drs_darba_laiks_plans = table_darba_laiks.WhereX(dr => !dr.IsIDPNull() && dr.IsIDLNull() && dr.IDP == dr_sar_r.IDPL && dr.YR == dr_sar.YR && dr.MT == dr_sar.MT).ToArray(); foreach (var dr_darba_laiks in drs_darba_laiks_plans) { act_add_row(dr_darba_laiks); } } } AddFrom(jr_list); }
public string AddNew(KlonsADataSet.TIMESHEET_LISTSRow dr_sar, out int id, int snr, int idp, int idam, int idpl, bool plind, bool night, bool overtime) { string er = "OK"; id = int.MinValue; var table_sar_r = MyData.DataSetKlons.TIMESHEET_LISTS_R; var table_sar = MyData.DataSetKlons.TIMESHEET_LISTS; var table_darba_laiks = MyData.DataSetKlons.TIMESHEET; var table_plans = MyData.DataSetKlons.TIMEPLAN_LIST; var table_persons = MyData.DataSetKlons.PERSONS; var table_amati = MyData.DataSetKlons.POSITIONS; var dv_darba_laiks = table_darba_laiks.AsDataView(); dv_darba_laiks.Sort = "ID"; int yr = dr_sar.YR; int mt = dr_sar.MT; var has_it = table_sar_r.WhereX(d => d.TIMESHEET_LISTSRow.YR == yr && d.TIMESHEET_LISTSRow.MT == mt && d.IDP == idp && d.IDAM == idam ).Count() > 0; if (has_it) { er = "Nevar izveidot ierakstu darbiniekam un amatam,\n" + "jo tāds ieraksts šajā mēnesî jau ir izveidots."; return(er); } var dr_pers = table_persons.FindByID(idp); var dr_amats = table_amati.FindByID(idam); var s_name = string.Format("{0} {1}", dr_pers.FNAME, dr_pers.LNAME); var s_position = dr_amats.TITLE; var s_title = string.Format("{0} {1}, {2}", dr_pers.FNAME, dr_pers.LNAME, s_position); var new_dr_sar_r = table_sar_r.NewTIMESHEET_LISTS_RRow(); var dr_pl = table_plans.FindByID(idpl); new_dr_sar_r.TIMESHEET_LISTSRow = dr_sar; new_dr_sar_r.IDP = idp; new_dr_sar_r.IDAM = idam; new_dr_sar_r.IDPL = idpl; new_dr_sar_r.SNR = (short)snr; new_dr_sar_r.XPlanType = plind ? EPlanType.Individual : EPlanType.Fixed; new_dr_sar_r.NIGHT = dr_pl.NIGHT; new_dr_sar_r.OVERTIME = (short)(overtime ? 1 : 0); table_sar_r.Rows.Add(new_dr_sar_r); var jadd = new AddToDLJoinViewRow() { DRV = new_dr_sar_r, Name = s_name, Position = s_position, Title = s_title }; var jrset = new TimeSheetJoinViewRowSet(); var jr_add_list = new List <JoinViewRow>(); var act_add_row = new Action <KlonsADataSet.TIMESHEETRow>(dr => { var drv_darba_laiks = dv_darba_laiks.FindRows(dr.ID)[0]; var jr_darba_laiks = new TimeSheetJoinViewRow(this, drv_darba_laiks, jadd); jrset.SetRow(jr_darba_laiks); jr_darba_laiks.RowSet = jrset; jr_add_list.Add(jr_darba_laiks); }); int colnr_v1 = table_darba_laiks.Columns["V1"].Ordinal; int colnr_d1 = table_darba_laiks.Columns["D1"].Ordinal; var act_copy_darba_laiks_row_data = new Action <KlonsADataSet.TIMESHEETRow, KlonsADataSet.TIMESHEETRow>((dfrom, dto) => { for (int i = 0; i < 31; i++) { dto[colnr_v1 + i] = dfrom[colnr_v1 + i]; dto[colnr_d1 + i] = dfrom[colnr_d1 + i]; } }); var drs_darba_laiks_plans = table_darba_laiks.WhereX(dr => !dr.IsIDPNull() && dr.IsIDLNull() && dr.IDP == idpl && dr.YR == yr && dr.MT == mt).ToArray(); //add plan if (plind) { foreach (var dr_darba_laiks in drs_darba_laiks_plans) { var new_dr_dl_pl = table_darba_laiks.NewTIMESHEETRow(); new_dr_dl_pl.TIMESHEET_LISTS_RRow = new_dr_sar_r; new_dr_dl_pl.IDL = new_dr_sar_r.ID; new_dr_dl_pl.YR = yr; new_dr_dl_pl.MT = mt; new_dr_dl_pl.SNR = (short)snr; table_darba_laiks.Rows.Add(new_dr_dl_pl); switch (dr_darba_laiks.XKind1) { case EKind1.PlanGroupDay: new_dr_dl_pl.XKind1 = EKind1.PlanIndividualDay; break; case EKind1.PlanGroupaNight: new_dr_dl_pl.XKind1 = EKind1.PlanIndividualNight; break; } act_copy_darba_laiks_row_data(dr_darba_laiks, new_dr_dl_pl); act_add_row(new_dr_dl_pl); } } else { foreach (var dr_darba_laiks in drs_darba_laiks_plans) { act_add_row(dr_darba_laiks); } } //add day var new_dr_darba_laiks = table_darba_laiks.NewTIMESHEETRow(); new_dr_darba_laiks.IDL = new_dr_sar_r.ID; new_dr_darba_laiks.SNR = (short)snr; new_dr_darba_laiks.XKind1 = EKind1.Fact; new_dr_darba_laiks.YR = yr; new_dr_darba_laiks.MT = mt; new_dr_darba_laiks.PERID = idp; new_dr_darba_laiks.AMID = idam; table_darba_laiks.Rows.Add(new_dr_darba_laiks); act_add_row(new_dr_darba_laiks); //add night if (night) { new_dr_darba_laiks = table_darba_laiks.NewTIMESHEETRow(); new_dr_darba_laiks.SNR = (short)snr; new_dr_darba_laiks.IDL = new_dr_sar_r.ID; new_dr_darba_laiks.XKind1 = EKind1.FactNight; new_dr_darba_laiks.YR = yr; new_dr_darba_laiks.MT = mt; new_dr_darba_laiks.PERID = idp; new_dr_darba_laiks.AMID = idam; table_darba_laiks.Rows.Add(new_dr_darba_laiks); act_add_row(new_dr_darba_laiks); } //add overtime if (overtime) { new_dr_darba_laiks = table_darba_laiks.NewTIMESHEETRow(); new_dr_darba_laiks.SNR = (short)snr; new_dr_darba_laiks.IDL = new_dr_sar_r.ID; new_dr_darba_laiks.XKind1 = EKind1.FactOvertime; new_dr_darba_laiks.YR = yr; new_dr_darba_laiks.MT = mt; new_dr_darba_laiks.PERID = idp; new_dr_darba_laiks.AMID = idam; table_darba_laiks.Rows.Add(new_dr_darba_laiks); act_add_row(new_dr_darba_laiks); } AddFrom(jr_add_list); DoSort(); id = new_dr_sar_r.ID; return(er); }