public virtual int?GetLaborClass(PMTimeActivity activity, EPEmployee employee, CRCase refCase) { if (employee == null) { throw new ArgumentNullException("employee", Messages.EmptyEmployeeID); } int?laborClassID = null; if (refCase != null) { CRCaseClass caseClass = (CRCaseClass)PXSelectorAttribute.Select <CRCase.caseClassID>(graph.Caches[typeof(CRCase)], refCase); if (caseClass.PerItemBilling == BillingTypeListAttribute.PerActivity) { laborClassID = CRCaseClassLaborMatrix.GetLaborClassID(graph, caseClass.CaseClassID, activity.EarningTypeID); } } if (laborClassID == null && activity.ProjectID != null && employee.BAccountID != null) { laborClassID = EPContractRate.GetProjectLaborClassID(graph, (int)activity.ProjectID, (int)employee.BAccountID, activity.EarningTypeID); } if (laborClassID == null) { laborClassID = EPEmployeeClassLaborMatrix.GetLaborClassID(graph, employee.BAccountID, activity.EarningTypeID); } if (laborClassID == null) { laborClassID = employee.LabourItemID; } return(laborClassID); }
protected void EPEarningType_RowDeleting(PXCache sender, PXRowDeletingEventArgs e) { EPEarningType row = (EPEarningType)e.Row; if (row == null) { return; } EPSetup setup = PXSelect < EPSetup , Where <EPSetup.regularHoursType, Equal <Required <EPEarningType.typeCD> > , Or <EPSetup.holidaysType, Equal <Required <EPEarningType.typeCD> > , Or <EPSetup.vacationsType, Equal <Required <EPEarningType.typeCD> > > > > > .Select(this, row.TypeCD, row.TypeCD, row.TypeCD); if (setup != null) { throw new PXException(Messages.CannotDeleteInUse); } CRCaseClassLaborMatrix caseClassLabor = PXSelect <CRCaseClassLaborMatrix, Where <CRCaseClassLaborMatrix.earningType, Equal <Required <EPEarningType.typeCD> > > > .Select(this, row.TypeCD); if (caseClassLabor != null) { throw new PXException(Messages.CannotDeleteInUse); } EPContractRate contractRate = PXSelect <EPContractRate, Where <EPContractRate.earningType, Equal <Required <EPEarningType.typeCD> > > > .Select(this, row.TypeCD); if (contractRate != null) { throw new PXException(Messages.CannotDeleteInUse); } EPEmployeeClassLaborMatrix employeeLabor = PXSelect <EPEmployeeClassLaborMatrix, Where <EPEmployeeClassLaborMatrix.earningType, Equal <Required <EPEarningType.typeCD> > > > .Select(this, row.TypeCD); if (employeeLabor != null) { throw new PXException(Messages.CannotDeleteInUse); } PMTimeActivity activity = PXSelect <PMTimeActivity, Where <PMTimeActivity.earningTypeID, Equal <Required <EPEarningType.typeCD> > > > .Select(this, row.TypeCD); if (activity != null) { throw new PXException(Messages.CannotDeleteInUse); } PMTran pmTran = PXSelect <PMTran, Where <PMTran.earningType, Equal <Required <EPEarningType.typeCD> > > > .Select(this, row.TypeCD); if (pmTran != null) { throw new PXException(Messages.CannotDeleteInUse); } }