Skip to content

Instantly share code, notes, and snippets.

View smarenich's full-sized avatar

Sergey Marenich smarenich

View GitHub Profile
@smarenich
smarenich / UDFEventsHandling.cs
Created December 2, 2024 21:03
Handling of UDF Events
public class MyGraph : PXGraph<MyGraph>
{
public MyGraph()
{
InitializeUDFs(this.Caches[typeof(Document)]);
}
#region InitializeUDFs
private class UDFEventsConroller<TEventsCollection, TEventArgs, TEventDelegate>
where TEventArgs : EventArgs
public class FeatureEnabledBoolAttribute : PXDBBoolAttribute
{
protected Type RecordType;
public BCFeatureEnabledBoolAttribute(Type recordType)
{
RecordType = recordType;
}
public override void CommandPreparing(PXCache sender, PXCommandPreparingEventArgs e)
{
@smarenich
smarenich / CashDiscountAP.cs
Last active April 9, 2019 15:39
Correcting Cash Discount calculation for non-inclusive taxes in AR and SO invoices and in purchase orders and AP bills.
using PX.Data;
using PX.Objects;
using PX.Common;
using PX.Objects.GL;
using PX.Objects.CM;
using PX.Objects.CS;
using PX.Objects.TX;
using PX.Objects.CR;
using PX.Objects.CA;
using System;
using PX.Data;
using PX.Objects.CM;
using PX.Objects.CS;
using PX.Objects.IN;
using PX.Objects.TX;
namespace PX.Objects.AR
{
public class ARTaxExtensionAttribute : ARTaxAttribute
IF OBJECT_ID ('dbo.[px_Rates]', 'V') IS NOT NULL
DROP VIEW [dbo].[px_Rates]
GO
CREATE VIEW [dbo].[px_Rates] AS
select FromCury.CompanyID as CompanyID, FromCury.CuryID as FromCuryID, ToCury.CuryID as ToCuryID, Date as CuryEffDate,
Coalesce((Select top 1 CuryRateID
from CurrencyRate r
where r.CuryEffDate <= Date and r.CompanyID = FromCury.CompanyID and r.FromCuryID = FromCury.CuryID and r.ToCuryID = ToCury.CuryID
order by CuryEffDate), 0) as RateID
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<data-set>
<relations format-version="3" relations-version="20180809" main-table="GIDesign" stable-sharing="True" file-name="(Name)">
<link from="GIFilter (DesignID)" to="GIDesign (DesignID)" />
<link from="GIGroupBy (DesignID)" to="GIDesign (DesignID)" />
<link from="GIMassAction (DesignID)" to="GIDesign (DesignID)" />
<link from="GIMassUpdateField (DesignID)" to="GIDesign (DesignID)" />
<link from="GINavigationScreen (DesignID)" to="GIDesign (DesignID)" />
<link from="GINavigationParameter (DesignID, ScreenID)" to="GINavigationScreen (DesignID, ScreenID)" />
<link from="GIOn (DesignID, RelationNbr)" to="GIRelation (DesignID, LineNbr)" />
public class SOARDocTypesListAttribute : PXStringListAttribute, IPXRowSelectedSubscriber
{
public Type _Module;
public class OrderTypesDefinition : IPrefetchable
{
public Dictionary<String, String> list = new Dictionary<String, String>();
public void Prefetch()
{
list.Clear();
#region Processing
public static void ProcessRecords(List<ARRegister> records)
{
PXGraph graph = new PXGraph();
Boolean anyFailed = false;
foreach (ARRegister rec in records)
{
PXProcessing.SetCurrentItem(rec);
try
using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using PX.Data;
using PX.Objects.AR;
using PX.Objects.GL;
using PX.Objects.CS;
using PX.Objects.CR;
using PX.Objects.SO;
<px:PXSplitContainer runat="server" SplitterPosition="250" ID="splitConditions" Orientation="Horizontal">
<AutoSize Enabled="true" Container="Window" />
<Template1>
<px:PXGrid runat="server" ID="grid11" Height="150px" SkinID="DetailsInTab" Width="100%" SyncPosition="True">
<AutoSize Enabled="True" MinHeight="150" />
<Levels>
<px:PXGridLevel DataMember="DataMember1">
<Columns></Columns>
</px:PXGridLevel>
</Levels>