コード例 #1
0
ファイル: UsageMaint.cs プロジェクト: PavelMPD/SimpleProjects
        protected void AddUsage(PXCache sender, int?contractID, int?inventoryID, decimal?used, string UOM)
        {
            if (contractID != null && inventoryID != null)
            {
                Contract contract = PXSelect <Contract, Where <Contract.contractID, Equal <Required <Contract.contractID> > > > .Select(this, contractID);

                //update all revisions starting from last active
                foreach (ContractDetailExt targetItem in PXSelectJoin <ContractDetailExt,
                                                                       InnerJoin <ContractItem, On <ContractItem.contractItemID, Equal <ContractDetailExt.contractItemID> >,
                                                                                  InnerJoin <InventoryItem, On <InventoryItem.inventoryID, Equal <ContractItem.recurringItemID> > > >,
                                                                       Where <ContractDetailExt.contractID, Equal <Required <ContractDetailExt.contractID> >, And <ContractDetailExt.revID, GreaterEqual <Required <ContractDetailExt.revID> >,
                                                                                                                                                                   And <ContractItem.recurringItemID, Equal <Required <ContractItem.recurringItemID> > > > > > .Select(this, contractID, contract.LastActiveRevID, inventoryID))
                {
                    decimal inTargetUnit = used ?? 0;
                    if (!string.IsNullOrEmpty(UOM))
                    {
                        inTargetUnit = INUnitAttribute.ConvertToBase(sender, inventoryID, UOM, used ?? 0, INPrecision.QUANTITY);
                    }

                    ContractDetailAcum item = new ContractDetailAcum();
                    item.ContractDetailID = targetItem.ContractDetailID;

                    item            = ContractDetails.Insert(item);
                    item.Used      += inTargetUnit;
                    item.UsedTotal += inTargetUnit;
                }
            }
        }
コード例 #2
0
        protected override bool PrepareInsert(PXCache sender, object row, PXAccumulatorCollection columns)
        {
            if (!base.PrepareInsert(sender, row, columns))
            {
                return(false);
            }

            columns.UpdateOnly = true;

            ContractDetailAcum item = (ContractDetailAcum)row;

            columns.Update <ContractDetailAcum.used>(item.Used, PXDataFieldAssign.AssignBehavior.Summarize);
            columns.Update <ContractDetailAcum.usedTotal>(item.UsedTotal, PXDataFieldAssign.AssignBehavior.Summarize);

            //columns.Update<ContractDetailAcum.contractID>(item.ContractID, PXDataFieldAssign.AssignBehavior.Initialize);
            //columns.Update<ContractDetailAcum.inventoryID>(item.InventoryID, PXDataFieldAssign.AssignBehavior.Initialize);

            return(true);
        }