Exemple #1
0
        private async Task DecrementDate(int id)
        {
            RegisterEntry entry = await _registerEntriesDataService.Get(id, includeRelated : false);

            if (entry == null)
            {
                return;
            }

            // save the date
            var date = entry.TransactionDate;

            // change date and save
            entry.TransactionDate = entry.TransactionDate.AddDays(-1);
            bool success = await UpdateEntry(id, entry);

            if (success)
            {
                entry.TransactionDate = date;
                UndoStack.Push(new UndoArgs()
                {
                    Action = RegisterEntryAction.Modify, Entry = entry
                });
            }
        }
Exemple #2
0
        protected override async Task OnInitializedAsync()
        {
            _id = 0;
            if (Int32.TryParse(Id, out _id) && (_id > 0))
            {
                IsCreateMode = false;
            }

            var result1 = await _registersDataService.Get(includeRelated : false);

            Registers = result1.ToList();

            var result2 = await _budgetCyclesDataService.Get(includeRelated : false);

            BudgetCycles = result2.ToList();

            var result3 = await _budgetItemsDataService.Get(includeRelated : false);

            BudgetItems = result3.ToList();

            if (IsCreateMode)
            {
                Model = new RegisterEntry();
            }
            else
            {
                Model = await _dataService.Get(id : _id, includeRelated : true);
            }

            Model.SelectedRegisterId    = Model.RegisterId.ToString();
            Model.SelectedBudgetCycleId = Model.BudgetCycleId.ToString();
            Model.SelectedBudgetItemId  = Model.BudgetItemId.ToString();
        }
        public static void ReverseAllocatedTran(PMTran tran)
        {
            RegisterEntry pmEntry = PXGraph.CreateInstance <RegisterEntry>();

            pmEntry.FieldVerifying.AddHandler <PMTran.projectID>((PXCache sender, PXFieldVerifyingEventArgs e) => { e.Cancel = true; });
            pmEntry.FieldVerifying.AddHandler <PMTran.taskID>((PXCache sender, PXFieldVerifyingEventArgs e) => { e.Cancel = true; });
            pmEntry.FieldVerifying.AddHandler <PMTran.inventoryID>((PXCache sender, PXFieldVerifyingEventArgs e) => { e.Cancel = true; });

            PMRegister reversalDoc = (PMRegister)pmEntry.Document.Cache.Insert();

            reversalDoc.OrigDocType  = PMOrigDocType.AllocationReversal;
            reversalDoc.OrigDocNbr   = tran.RefNbr;
            reversalDoc.Description  = "Allocation Reversal to Non-Billable";
            pmEntry.Document.Current = reversalDoc;

            PMBillEngine engine = PXGraph.CreateInstance <PMBillEngine>();

            foreach (PMTran reverse in engine.ReverseTran(tran))
            {
                reverse.Reversed = true;
                pmEntry.Transactions.Insert(reverse);
            }

            tran.Reversed = true;
            pmEntry.Transactions.Update(tran);

            pmEntry.Save.Press();

            PMSetup setup = PXSelect <PMSetup> .Select(pmEntry);

            if (setup.AutoReleaseAllocation == true)
            {
                RegisterRelease.Release(reversalDoc);
            }
        }
        protected static void ReleaseActivities(List <EPActivityApprove> activities)
        {
            RegisterEntry registerEntry = (RegisterEntry)PXGraph.CreateInstance(typeof(RegisterEntry));
            bool          activityAdded = false;

            using (PXTransactionScope ts = new PXTransactionScope())
            {
                if (!RecordContractUsage(activities, "Contract-Usage"))
                {
                    throw new PXException(Messages.FailedCreateContractUsageTransactions);
                }

                if (!RecordCostTrans(registerEntry, activities, out activityAdded))
                {
                    throw new PXException(Messages.FailedCreateCostTransactions);
                }

                ts.Complete();
            }

            EPSetup setup = PXSelect <EPSetup> .Select(registerEntry);

            if (activityAdded && setup != null && setup.AutomaticReleasePM == true)
            {
                PX.Objects.PM.RegisterRelease.Release(registerEntry.Document.Current);
            }
        }
        public static bool RecordCostTrans(RegisterEntry registerEntry, List <EPActivityApprove> activities)
        {
            registerEntry.FieldVerifying.AddHandler <PMTran.inventoryID>((PXCache sender, PXFieldVerifyingEventArgs e) => { e.Cancel = true; });//restriction should be applicable only for budgeting.
            EmployeeCostEngine costEngine = new EmployeeCostEngine(registerEntry);

            registerEntry.Views.Caches.Add(typeof(EPActivity));
            PXCache activityCache = registerEntry.Caches <EPActivity>();

            registerEntry.Document.Cache.Insert();
            bool success       = true;
            bool activityAdded = false;

            for (int i = 0; i < activities.Count; i++)
            {
                EPActivity activity = PXSelect <EPActivity> .Search <EPActivity.taskID>(registerEntry, activities[i].TaskID);

                if (activity.Released == true) //activity can be released to PM via Timecard prior to releasing the case.
                {
                    continue;
                }

                try
                {
                    if (activity.ProjectTaskID != null)                    //cost transactions are created only if project is set.
                    {
                        EPEmployee employee = PXSelect <EPEmployee> .Search <EPEmployee.userID>(registerEntry, activity.Owner);

                        activity.LabourItemID = costEngine.GetLaborClass(activity);
                        activityCache.Update(activity);

                        decimal?cost = costEngine.CalculateEmployeeCost(activity, employee.BAccountID, activity.StartDate.Value);
                        registerEntry.CreateTransaction(activity, employee.BAccountID, activity.StartDate.Value, activity.TimeSpent, activity.TimeBillable, cost);
                        activity.EmployeeRate = cost;
                        activityAdded         = true;
                    }

                    activity.Released = true;
                    activityCache.Update(activity);
                }
                catch (Exception e)
                {
                    PXProcessing <EPActivityApprove> .SetError(i, e is PXOuterException?e.Message + "\r\n" + String.Join("\r\n", ((PXOuterException)e).InnerMessages) : e.Message);

                    success = false;
                }
            }
            if (success)
            {
                if (activityAdded)
                {
                    registerEntry.Save.Press();
                }
                else
                {
                    activityCache.Persist(PXDBOperation.Update);
                }
            }

            return(success);
        }
Exemple #6
0
        private async Task NextStatus(int id)
        {
            RegisterEntry entry = await _registerEntriesDataService.Get(id, includeRelated : false);

            if (entry == null)
            {
                return;
            }

            // save the status
            var status = entry.Status;

            // change status and save
            entry.Status = (int)entry.NextStatus();
            bool success = await UpdateEntry(id, entry);

            if (success)
            {
                entry.Status = status;
                UndoStack.Push(new UndoArgs()
                {
                    Action = RegisterEntryAction.Modify, Entry = entry
                });
            }
        }
Exemple #7
0
        private async Task <bool> ImportRegisterEntry(IDbConnection connection, RegisterEntry registerEntry)
        {
            Guid     organisationId = Guid.NewGuid();
            DateTime createdAt      = DateTime.Now;
            string   createdBy      = "Register Import";

            var organisationDataImport = new OrganisationData();

            organisationDataImport.StartDate              = registerEntry.StartDate;
            organisationDataImport.FinancialTrackRecord   = registerEntry.FinancialTrackRecord;
            organisationDataImport.ParentCompanyGuarantee = registerEntry.ParentCompanyGuarantee;

            if (registerEntry.EndReasonId.HasValue)
            {
                organisationDataImport.RemovedReason = RemovedReasons.FirstOrDefault(x => x.Id == registerEntry.EndReasonId.Value);
            }

            string sql = $"INSERT INTO [dbo].[Organisations] " +
                         " ([Id] " +
                         ",[CreatedAt] " +
                         ",[CreatedBy] " +
                         ",[StatusId] " +
                         ",[ProviderTypeId] " +
                         ",[OrganisationTypeId] " +
                         ",[UKPRN] " +
                         ",[LegalName] " +
                         ",[TradingName] " +
                         ",[StatusDate] " +
                         ",[OrganisationData]) " +
                         "VALUES " +
                         "(@organisationId, @createdAt, @createdBy, @statusId, @providerTypeId, @organisationTypeId," +
                         " @ukprn, @legalName, @tradingName, @statusDate, @organisationData)";

            var statusId         = registerEntry.Status;
            var organisationData = JsonConvert.SerializeObject(organisationDataImport, new IsoDateTimeConverter {
                DateTimeFormat = RoatpDateTimeFormat
            });

            var organisationsCreated = await connection.ExecuteAsync(sql,
                                                                     new
            {
                organisationId,
                createdAt,
                createdBy,
                statusId,
                registerEntry.ProviderTypeId,
                registerEntry.OrganisationTypeId,
                registerEntry.UKPRN,
                registerEntry.LegalName,
                registerEntry.TradingName,
                registerEntry.StatusDate,
                organisationData
            });

            RegisterImportLogger.Instance.LogInsertStatement(sql, registerEntry, organisationId, createdAt,
                                                             createdBy, statusId, organisationData);

            return(await Task.FromResult(organisationsCreated > 0));
        }
        protected virtual PMTran InsertPMTran(RegisterEntry pmGraph, PXResult <EPExpenseClaimDetails, Contract, Account> res)
        {
            EPExpenseClaimDetails detail = res;
            Contract contract            = res;
            Account  account             = res;

            if (account.AccountGroupID == null && contract.BaseType == CTPRType.Project)
            {
                throw new PXException(Messages.AccountGroupIsNotAssignedForAccount, account.AccountCD);
            }

            bool released = contract.BaseType == CTPRType.Contract;             //contract trans are created as released

            PMTran tran = (PMTran)pmGraph.Transactions.Cache.Insert();

            tran.AccountGroupID   = account.AccountGroupID;
            tran.BAccountID       = detail.CustomerID;
            tran.LocationID       = detail.CustomerLocationID;
            tran.ProjectID        = detail.ContractID;
            tran.TaskID           = detail.TaskID;
            tran.CostCodeID       = detail.CostCodeID;
            tran.InventoryID      = detail.InventoryID;
            tran.Qty              = detail.Qty;
            tran.Billable         = true;
            tran.BillableQty      = detail.Qty;
            tran.UOM              = detail.UOM;
            tran.TranCuryID       = detail.CuryID;
            tran.BaseCuryInfoID   = detail.CuryInfoID;
            tran.TranCuryAmount   = detail.ClaimCuryTranAmt;
            tran.Amount           = detail.ClaimTranAmt;
            tran.TranCuryUnitRate = detail.CuryUnitCost;
            tran.UnitRate         = detail.UnitCost;

            //TODO: Review the following code (exists only to support MA302 case when UnitCost is not entered):
            if (detail.CuryUnitCost == 0m && detail.Qty != 0)
            {
                tran.TranCuryUnitRate = detail.ClaimCuryTranAmt / detail.Qty;
                tran.UnitRate         = detail.ClaimTranAmt / detail.Qty;
            }
            tran.AccountID  = detail.ExpenseAccountID;
            tran.SubID      = detail.ExpenseSubID;
            tran.StartDate  = detail.ExpenseDate;
            tran.EndDate    = detail.ExpenseDate;
            tran.Date       = detail.ExpenseDate;
            tran.ResourceID = detail.EmployeeID;
            tran.Released   = released;

            tran = pmGraph.Transactions.Update(tran);

            pmGraph.Document.Current.Released = released;
            if (released)
            {
                pmGraph.Document.Current.Status = PMRegister.status.Released;
            }

            PXNoteAttribute.CopyNoteAndFiles(Caches[typeof(EPExpenseClaimDetails)], detail, pmGraph.Transactions.Cache, tran, Setup.Current.GetCopyNoteSettings <PXModule.pm>());

            return(tran);
        }
 private RegisterEntry CopyValuesToRegisterModel(RegisterEntry registerEntry)
 {
     registerEntry.Email     = Email.Value;
     registerEntry.BirthDate = BirthDate.Value;
     registerEntry.FullName  = FullName.Value;
     registerEntry.Password  = Password.Value;
     return(registerEntry);
 }
Exemple #10
0
        private void TryToUpdateRegister(ArmRegister aObjectToUpdate, RegisterCollection aSource)
        {
            RegisterEntry entry = aSource[aObjectToUpdate.RegType];

            if (entry != null)
            {
                aObjectToUpdate.Value = entry.Value;
            }
        }
Exemple #11
0
        public void TC_13_01_SubjectTest_POST_LOGIN_SUC()
        {
            //arrange+act
            IRestResponse response     = GetResponse(client, "/api/login", Method.POST, HttpStatusCode.Created, "{\n \"email\": \"peter @klaven\",\n\"password\": \"cityslicka\" \n}");
            RegisterEntry userResponse =
                JsonConvert.DeserializeObject <RegisterEntry>(response.Content);

            // assert
            Assert.That(userResponse.Token, Is.EqualTo("QpwL5tke4Pnpja7X"));
        }
Exemple #12
0
        public void TC_14_01_SubjectTest_POST_LOGIN_UNSUC()
        {
            //arrange+act
            IRestResponse response     = GetResponse(client, "/api/register", Method.POST, HttpStatusCode.BadRequest, "{\n\"email\": \"sydney @fife\"\n}");
            RegisterEntry userResponse =
                JsonConvert.DeserializeObject <RegisterEntry>(response.Content);

            // assert
            Assert.That(userResponse.Error, Is.EqualTo("Missing password"));
        }
        public virtual IEnumerable ViewDocument(PXAdapter adapter)
        {
            RegisterEntry graph = CreateInstance <RegisterEntry>();

            graph.Document.Current = graph.Document.Search <PMRegister.refNbr>(Transactions.Current.RefNbr, Transactions.Current.TranType);
            throw new PXRedirectRequiredException(graph, "PMTransactiosn")
                  {
                      Mode = PXBaseRedirectException.WindowMode.NewWindow
                  };
        }
Exemple #14
0
        public void TC_11_01_SubjectTest_POST_RIGESTER_SUC_TokenLength()
        {
            //arrange+act
            IRestResponse response     = GetResponse(client, "/api/register", Method.POST, HttpStatusCode.Created, "{\n\"email\": \"sydney @fife\",\n\"password\": \"pistol\"\n}");
            RegisterEntry userResponse =
                JsonConvert.DeserializeObject <RegisterEntry>(response.Content);

            // assert
            Assert.That(userResponse.Token.Length, Is.EqualTo(16));
        }
Exemple #15
0
        public int ProgramCounter => 32; // x0 ....x31, x32 = PC

        public Register64()
        {
            register   = new RegisterEntry[33]; // Register 0,1,2...32
            pcRegister = 32;

            for (int index = 0; index <= 32; index++)
            {
                register[index] = new RegisterEntry(Architecture.Rv64I);
            }
        }
Exemple #16
0
        protected virtual void InsertPMTran(RegisterEntry pmGraph, EPExpenseClaimDetails row, EPExpenseClaim doc, bool copyNotes, bool copyFiles)
        {
            PMProject project = PXSelect <PMProject, Where <PMProject.contractID, Equal <Required <PMProject.contractID> > > > .Select(pmGraph, row.ContractID);

            Account account = PXSelect <Account, Where <Account.accountID, Equal <Required <Account.accountID> > > > .Select(this, row.ExpenseAccountID);

            if (account.AccountGroupID == null && project.BaseType == PMProject.ProjectBaseType.Project)
            {
                throw new PXException(Messages.AccountGroupIsNotAssignedForAccount, account.AccountCD);
            }

            PMTran tran = (PMTran)pmGraph.Transactions.Cache.Insert();

            tran.AccountGroupID = account.AccountGroupID;
            tran.BAccountID     = row.CustomerID;
            tran.LocationID     = row.CustomerLocationID;
            tran.ProjectID      = row.ContractID;
            tran.TaskID         = row.TaskID;
            tran.InventoryID    = row.InventoryID;
            tran.Qty            = row.Qty;
            tran.Billable       = true;
            tran.BillableQty    = row.Qty;
            tran.UOM            = row.UOM;
            tran.UnitRate       = row.UnitCost;
            tran.Amount         = row.TranAmt;
            tran.AccountID      = row.ExpenseAccountID;
            tran.SubID          = row.ExpenseSubID;
            tran.StartDate      = row.ExpenseDate;
            tran.EndDate        = row.ExpenseDate;
            tran.Date           = row.ExpenseDate;
            tran.ResourceID     = doc.EmployeeID;
            tran.Released       = project.BaseType == PMProject.ContractBaseType.Contract;      //contract trans are created as released

            pmGraph.Transactions.Update(tran);

            pmGraph.Document.Current.Released = project.BaseType == PMProject.ContractBaseType.Contract;

            if (copyNotes)
            {
                string note = PXNoteAttribute.GetNote(Caches[typeof(EPExpenseClaimDetails)], row);
                if (note != null)
                {
                    PXNoteAttribute.SetNote(pmGraph.Transactions.Cache, tran, note);
                }
            }
            if (copyFiles)
            {
                Guid[] files = PXNoteAttribute.GetFileNotes(Caches[typeof(EPExpenseClaimDetails)], row);
                if (files != null && files.Length > 0)
                {
                    PXNoteAttribute.SetFileNotes(pmGraph.Transactions.Cache, tran, files);
                }
            }
        }
Exemple #17
0
        private RegisterCollection GetUserContextRegisters()
        {
            bool isCurrent         = IsCurrent;
            RegisterCollection ret = new RegisterCollection(Registers, RegisterCollection.TType.ETypeUser, iParentThread.OwningProcess);

            // User-land CPSR is stored in SPSR_SVC
            RegisterEntry spsr = Registers[TArmRegisterType.EArmReg_SPSR];

            ret[TArmRegisterType.EArmReg_CPSR].Value = spsr.Value;

            // Get the context table that we'll need to work out the reg positions
            UserContextTable.UserContextTable table = CrashDebugger.UserContextTableManager[UserContextType];

            // Get SP and stack data for supervisor thread
            uint            sp     = SavedSP;
            ThreadStackData spData = iParentThread.StackInfoSupervisor.Data;

            if (spData.Info.Data.Size > 0)
            {
                // This is the user side address that will be branched back to once we exit SVC mode...
                uint retAddr = UserReturnAddress;
                ret[TArmRegisterType.EArmReg_PC].Value = retAddr;

                // Now try to get the register values off of the supervisor stack
                DataBuffer superStackData = spData.Data;
                foreach (ArmRegister reg in ret)
                {
                    if (UserContextTable.UserContextTable.IsSupported(reg.RegType))
                    {
                        UserContextTableEntry uctEntry = table[reg.RegType];
                        if (uctEntry.IsAvailable(isCurrent))
                        {
                            ArmRegister savedSp  = new ArmRegister(TArmRegisterType.EArmReg_SP, sp);
                            uint        newValue = uctEntry.Process(savedSp, superStackData);
                            reg.Value = newValue;
                        }
                    }
                }
            }

            // Getting context of current thread? Some values can be fetched directly
            // from the registers if they are not available from the stack.
            if (isCurrent && table[TArmRegisterType.EArmReg_SP].Type == UserContextTableEntry.TType.EOffsetFromSp)
            {
                RegisterCollection userRegs = CrashDebugger.InfoCpu[RegisterCollection.TType.ETypeUser];
                //
                ret[TArmRegisterType.EArmReg_SP].Value = userRegs[TArmRegisterType.EArmReg_SP];
                ret[TArmRegisterType.EArmReg_LR].Value = userRegs[TArmRegisterType.EArmReg_LR];
            }

            return(ret);
        }
Exemple #18
0
        public ActionResult CreateRegisterEntry(int localhelpId)
        {
            var localhelp = db.LocalHelps.Find(localhelpId);

            localhelp.Description = Server.HtmlDecode(localhelp.Description);
            ViewBag.localhelp     = localhelp;
            var reg = new RegisterEntry
            {
                LocalHelpId = localhelpId,
            };

            return(View(reg));
        }
 /// <summary>
 /// Allocates a specific register kind for the given node.
 /// </summary>
 /// <param name="node">The node to allocate the register for.</param>
 /// <returns>The allocated register.</returns>
 public Register Allocate(Value node)
 {
     Debug.Assert(node != null, "Invalid node");
     if (aliases.TryGetValue(node, out Value alias))
         node = alias;
     if (!registerLookup.TryGetValue(node, out RegisterEntry entry))
     {
         var targetRegister = AllocateType(node.Type);
         entry = new RegisterEntry(targetRegister, node);
         registerLookup.Add(node, entry);
     }
     return entry.Register;
 }
Exemple #20
0
        private async Task AddEntry(RegisterEntry entry)
        {
            bool success = await _registerEntriesDataService.Create(entry);

            if (success)
            {
                _toastService.ShowSuccess("Add Entry Successful", "");
                var result = await _registerEntriesDataService.Get(includeRelated : true);

                Register.RegisterEntries = result.ToList();
                Register.Balance();
            }
        }
Exemple #21
0
        private async Task <bool> UpdateEntry(int id, RegisterEntry entry)
        {
            bool success = await _registerEntriesDataService.Update(id, entry);

            if (success)
            {
                var result = await _registerEntriesDataService.Get(includeRelated : true);

                Register.RegisterEntries = result.ToList();
                Register.Balance();
            }
            return(success);
        }
Exemple #22
0
        public void Before_each_test()
        {
            _registerEntry = new RegisterEntry
            {
                UKPRN              = 10002222,
                ProviderTypeId     = 1,
                OrganisationTypeId = 0,
                LegalName          = "Training Company",
                Status             = "1"
            };

            _validator = new RegisterEntryValidator();
        }
Exemple #23
0
        public ActionResult CreateRegisterEntry(RegisterEntry reg)
        {
            if (ModelState.IsValid)
            {
                db.RegisterEntries.Add(reg);
                db.SaveChanges();
                return(RedirectToAction("CreateRegisterEntry", new { localhelpId = reg.LocalHelpId }));
            }
            var localhelp = db.LocalHelps.Find(reg.LocalHelpId);

            localhelp.Description = Server.HtmlDecode(localhelp.Description);
            ViewBag.localhelp     = localhelp;
            return(View(reg));
        }
Exemple #24
0
        protected virtual PMTran InsertPMTran(RegisterEntry pmGraph, PXResult <EPExpenseClaimDetails, Contract, Account> res)
        {
            EPExpenseClaimDetails detail = res;
            Contract contract            = res;
            Account  account             = res;

            if (account.AccountGroupID == null && contract.BaseType == PMProject.ProjectBaseType.Project)
            {
                throw new PXException(Messages.AccountGroupIsNotAssignedForAccount, account.AccountCD);
            }

            bool released = contract.BaseType == Contract.ContractBaseType.Contract;             //contract trans are created as released

            PMTran tran = (PMTran)pmGraph.Transactions.Cache.Insert();

            tran.AccountGroupID = account.AccountGroupID;
            tran.BAccountID     = detail.CustomerID;
            tran.LocationID     = detail.CustomerLocationID;
            tran.ProjectID      = detail.ContractID;
            tran.TaskID         = detail.TaskID;
            tran.InventoryID    = detail.InventoryID;
            tran.Qty            = detail.Qty;
            tran.Billable       = true;
            tran.BillableQty    = detail.Qty;
            tran.UOM            = detail.UOM;
            if (detail.CuryInfoID == detail.ClaimCuryInfoID && detail.EmployeePart == 0m)
            {
                tran.UnitRate = detail.UnitCost;
            }
            else
            {
                tran.UnitRate = detail.ClaimTranAmt / detail.Qty;
            }
            tran.Amount     = detail.ClaimTranAmt;
            tran.AccountID  = detail.ExpenseAccountID;
            tran.SubID      = detail.ExpenseSubID;
            tran.StartDate  = detail.ExpenseDate;
            tran.EndDate    = detail.ExpenseDate;
            tran.Date       = detail.ExpenseDate;
            tran.ResourceID = detail.EmployeeID;
            tran.Released   = released;

            tran = pmGraph.Transactions.Update(tran);

            pmGraph.Document.Current.Released = released;

            PXNoteAttribute.CopyNoteAndFiles(Caches[typeof(EPExpenseClaimDetails)], detail, pmGraph.Transactions.Cache, tran, Setup.Current.GetCopyNoteSettings <PXModule.pm>());

            return(tran);
        }
        public static bool RecordContractUsage(List <EPActivityApprove> activities, string description)
        {
            RegisterEntry registerEntry = PXGraph.CreateInstance <RegisterEntry>();

            registerEntry.FieldVerifying.AddHandler <PMTran.projectID>((PXCache sender, PXFieldVerifyingEventArgs e) => { e.Cancel = true; });
            registerEntry.FieldVerifying.AddHandler <PMTran.inventoryID>((PXCache sender, PXFieldVerifyingEventArgs e) => { e.Cancel = true; });//restriction should be applicable only for budgeting.
            registerEntry.Document.Cache.Insert();
            registerEntry.Document.Current.Description = description;
            registerEntry.Document.Current.Released    = true;
            registerEntry.Views.Caches.Add(typeof(EPActivity));
            PXCache activityCache = registerEntry.Caches <EPActivity>();

            bool success       = true;
            bool activityAdded = false;

            for (int i = 0; i < activities.Count; i++)
            {
                EPActivity activity = activities[i];
                try
                {
                    if (activity.RefNoteID != null && PXSelect <CRCase, Where <CRCase.noteID, Equal <Required <CRCase.noteID> > > > .Select(registerEntry, activity.RefNoteID).Count == 1)
                    {
                        //Add Contract-Usage
                        activityAdded   = registerEntry.CreateContractUsage(activity) != null || activityAdded;
                        activity.Billed = true;
                        activityCache.Update(activity);
                    }
                }
                catch (Exception e)
                {
                    PXProcessing <EPActivityApprove> .SetError(i, e is PXOuterException?e.Message + "\r\n" + String.Join("\r\n", ((PXOuterException)e).InnerMessages) : e.Message);

                    success = false;
                }
            }

            if (success)
            {
                if (activityAdded)
                {
                    registerEntry.Save.Press();
                }
                else
                {
                    activityCache.Persist(PXDBOperation.Update);
                }
            }

            return(success);
        }
        public void LogInsertStatement(string sql, RegisterEntry registerEntry, Guid organisationId, DateTime createdAt, string createdBy, string statusId, string organisationData)
        {
            if (!LogEnabled)
            {
                return;
            }

            registerEntry.LegalName   = registerEntry.LegalName.Replace("'", "''");
            registerEntry.TradingName = registerEntry.TradingName.Replace("'", "''");

            string formattedSql = $"exec sp_executesql N'{sql}',N'@organisationId uniqueidentifier,@createdAt datetime,@createdBy nvarchar(4000),@statusId nvarchar(4000),@providerTypeId int,@OrganisationTypeId int,@UKPRN bigint,@LegalName nvarchar(4000),@TradingName nvarchar(4000),@statusDate datetime,@organisationData nvarchar(4000)',@organisationId='{organisationId}',@createdAt='{createdAt.ToString("yyyyMMdd HH:mm:ss")}',@createdBy=N'{createdBy}',@statusId=N'{statusId}',@ProviderTypeId={registerEntry.ProviderTypeId},@OrganisationTypeId={registerEntry.OrganisationTypeId},@UKPRN={registerEntry.UKPRN},@LegalName=N'{registerEntry.LegalName}',@TradingName=N'{registerEntry.TradingName}',@statusDate='{registerEntry.StatusDate.Value.ToString("yyyyMMdd HH:mm:ss")}',@organisationData=N'{organisationData}'";

            _logWriter.WriteLine($"{formattedSql}\n");
        }
Exemple #27
0
 /// <summary>
 /// Allocates a specific register kind for the given node.
 /// </summary>
 /// <param name="node">The node to allocate the register for.</param>
 /// <returns>The allocated register.</returns>
 public Register Allocate(Value node)
 {
     node.AssertNotNull(node);
     if (aliases.TryGetValue(node, out Value alias))
     {
         node = alias;
     }
     if (!registerLookup.TryGetValue(node, out RegisterEntry entry))
     {
         var targetRegister = AllocateType(node.Type);
         entry = new RegisterEntry(targetRegister, node);
         registerLookup.Add(node, entry);
     }
     return(entry.Register);
 }
        /// <summary>
        /// Allocates a specific register kind for the given node.
        /// </summary>
        /// <param name="node">The node to allocate the register for.</param>
        /// <param name="description">The register description to allocate.</param>
        /// <returns>The allocated register.</returns>
        public PrimitiveRegister Allocate(Value node, RegisterDescription description)
        {
            Debug.Assert(node != null, "Invalid node");

            if (aliases.TryGetValue(node, out Value alias))
                node = alias;
            if (!registerLookup.TryGetValue(node, out RegisterEntry entry))
            {
                var targetRegister = AllocateRegister(description);
                entry = new RegisterEntry(targetRegister, node);
                registerLookup.Add(node, entry);
            }
            var result = entry.Register as PrimitiveRegister;
            Debug.Assert(result != null, "Invalid primitive register");
            return result;
        }
        public async Task <IActionResult> Register(RegisterEntry entry)
        {
            //if (!entry.Email.Contains("@gmail.com") || !entry.Email.Contains("@outlook.com"))
            //{
            //    ViewData["WrongRegister"] = "Only gmail.com accounts are allowed!";
            //    return View(entry);
            //}

            try
            {
                //User user = await _userManager.GetUserByEmailAsync(entry.Email);
                //if (user != null)
                //{
                //    ViewData["WrongRegister"] = "Email already taken!";
                //    return View(entry);
                //}
                if (null == await _userManager.GetUserByUsernameAsync(entry.DiscordUsername))
                {
                    ViewData["WrongRegister"] = "You haven't signed up with this Discord user yet. Please type !signup in the Discord Server, where you're using the bot.";
                    return(View(entry));
                }
                var tempEmail = (await _userManager.GetUserByUsernameAsync(entry.DiscordUsername)).Email;
                if (!tempEmail[tempEmail.Length - 1].Equals('@'))
                {
                    ViewData["WrongRegister"] = "You've already signed up with this Discord user.";
                    //return View(entry);
                }

                string password       = HashUtils.CreateHashCode(entry.Password);
                string validationCode = HashUtils.CreateReferralCode();
                User   newUser        = new User(entry.DiscordUsername, entry.Email, password, Role.User, validationCode, false);

                _ctx.Users.Remove(_ctx.Users.FirstOrDefault(u => u.Username == entry.DiscordUsername));
                _ctx.SaveChanges();

                await _userManager.RegisterAsync(newUser);

                await _notificationManager.SendConfirmationEmailAsync(newUser);
            }
            catch (Exception)
            {
                //await _logger.LogCustomExceptionAsync(ex, null);
                return(RedirectToAction("Error", "Home"));
            }

            return(View("Welcome"));
        }
Exemple #30
0
        /*
         *
         *  x?      31 ..... 0
         *  x0      0000            Readonly
         *  x1      ????
         *  x2      ????
         *  ...
         *  x31     ????
         *  x32     pc              program counter
         *
         *
         *
         *
         * as a
         * - collection of booleans
         * - two complement signed bytes
         * - two complement unsigned bytes
         */



        public Register32(Architecture architecture)
        {
            register = new RegisterEntry[33];  // Register 0,1,2...32

            if (architecture == Architecture.Rv32I)
            {
                pcRegister = 32;
            }
            else
            {
                pcRegister = 16;
            }

            for (int index = 0; index <= 32; index++)
            {
                register[index] = new RegisterEntry(architecture);
            }
        }
        public static RegisterEntry GetRegister(int _Size)
        {
            bool[] mask = GetRegisterMask();
            for (int i = 16; i < 256; i++)//first 16 registers are for UART communication
            {
                bool ok = true;
                if (i >= 255 - TimerCount * 4) ok = false;
                if (i < 128 && i + _Size >= 128) ok = false;//if the register is hanging over the edge between memory block a and b, dont create it

                for (int j = 0; j < _Size; j++)
                {
                    if (mask[i + j]) ok = false;
                }
                if (ok)
                {
                    RegisterEntry e = new RegisterEntry();
                    e.index = (byte)i;
                    e.size = _Size;
                    UsedRegisters.Add(e);
                    return e;
                }
            }
            throw new Exception("Out of registers!");
        }