AccountId | Account | Calculated (calculated) | | A denormalised copy of the parent invoice's customer, calculated as the invoice's AccountId converted to text. Note it is stored as a string rather than a key, so it is not a usable foreign key or lookup — join through the parent invoice instead. |
AllocatedQuantity | Allocated Quantity | Decimal | | |
Amount | Amount | Calculated (calculated) | | The net line value before tax, metadata-calculated. When post-tax discounting applies it is simply BaseAmount, because the discount is instead removed later in GrossAmount; otherwise it is BaseAmount less NetDiscount and NetSchemeDiscount. This is the amount rolled into the header TotalLineAmount and the value that becomes the line's ledger leg. |
ApplyPostTaxDiscount | Apply Post Tax Discount | Boolean | | Switches where discount is taken. It is copied from the owning company's Account setting when the line's taxes are computed, not chosen per line. When on, discounts are excluded from Amount and instead subtracted in GrossAmount, and the discount rates are applied to BaseAmount plus tax rather than to BaseAmount alone. |
AssessableAmount | Assessable Amount | Calculated (calculated) | | |
AssetId | Asset | Lookup → Asset | | |
Barcode | Barcode | Text | | |
BaseAmount | Base Amount | Calculated (calculated) | | Metadata-calculated as Quantity times UnitPrice2 when that override is non-zero, otherwise Quantity times UnitPrice. It is the gross-of-discount, pre-tax starting point for every discount and tax formula on the line. |
BenefitIndex | Benefit Index | Number | | |
BillingFrequency | Billing Frequency | Text | | |
BillingType | Billing Type | Text | | |
BranchId | Branch | Text | | |
CancelledQuantity | Cancelled Quantity | Decimal | | |
ChargeType | Charge Type | Text | | Values: One Time. |
ClaimLineId | Claim Line | Lookup → ClaimLine | | |
ContractDiscount | Contract Discount | Percent | | |
ContractDiscountAmount | Contract Discount Amount | Currency | | |
ConversionRatio | Conversion Ratio | Decimal | | |
ConversionRatio1 | Conversion Ratio 1 | Decimal | | |
CostPrice | Cost Price | Currency | | Dead: no code path anywhere populates it. An earlier invoice-time cost-of-goods-sold block summed this field and therefore always computed zero; it was removed deliberately, and cost of goods sold is now recognised at goods issue from engine cost instead. Do not use this field for margin. |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
DeliveredQuantity | Delivered Quantity | Decimal | | |
DeliveryOrderLineId | Delivery Order Line | Lookup → DeliveryOrderLine | | |
DeliveryQuantity | Delivery Quantity | Decimal | | A rolling total of the quantity delivered against this line, maintained as the sum of the related DeliveryOrderLine quantities rather than entered by hand. It is the subtrahend behind PendingDeliveryQuantity. It is distinct from DeliveredQuantity, which is derived from inventory fulfilment allocation instead. |
Discount | Discount | Percent | | A discount rate expressed as a multiplier, not a percentage out of a hundred: the formulas compute BaseAmount times this value, so 0.10 is ten percent. It is ignored whenever DiscountAmount is positive, since an explicit amount always wins over the rate. |
Discount2 | Cash Discount | Percent | | |
DiscountAmount | Discount Amount | Currency | | It is one of three pairs (with Discount2/DiscountAmount2 and ContractDiscount/ContractDiscountAmount) that add up into NetDiscount. |
DiscountAmount2 | Cash Discount Amount | Currency | | |
DiscountGroupRuleId | Discount Group Rule | Lookup → DiscountGroupRule | | |
EligibleReturnQuantity | Eligible Return Quantity | Calculated (calculated) | | Metadata-calculated as Quantity minus ReturnedQuantity — how much of the line can still be taken back on a credit note. Cancellation is accounted for separately in the metadata formulas rather than being netted here in code. |
ExternalId | External ID | Text | | |
FieldSalesId | Field Sales | Lookup → FieldSales | | |
FreeQuantity | FreeQuantity | Decimal | | Not an independently entered figure: it is the line's own Quantity when the line was generated by the promotional-scheme engine, and zero otherwise. It exists so free-goods lines can be reported without inspecting the scheme linkage, and it is both a stored column and a calculated fallback. |
GeneralLedgerId | General Ledger | Lookup → GeneralLedger | | |
GLAccountId | GL Account | Lookup → GLAccount | | |
GLAmount | GL Amount | Calculated (calculated) | | Metadata-calculated as a copy of Amount, and it is the field posting actually reads for the line's ledger leg. A line whose amount is zero contributes no leg at all, while its tax slots are still posted independently. |
GLPostingType | GL Posting Type | Text | | |
GrossAmount | Gross Amount | Calculated (calculated) | | Metadata-calculated as Amount plus TaxAmount, less the discounts again when the line is flagged for post-tax discounting (which is where those discounts are actually taken, since Amount left them in). It is the tax-inclusive line value and is what the header TotalAmount and TotalLineGrossAmount both roll up. |
HsnSacCode | HSN/SAC Code | Text | | |
Id | Id | Guid | Yes | |
InventoryFulfilmentAllocationLineId | Inventory Fulfillment Allocation Line | Lookup → InventoryFulfilmentAllocationLine | | |
InventoryLedgerId | Inventory Ledger | Lookup → InventoryLedger | | |
InvLineName | InvLineName (For E-invoice) | Text | | A system-generated line document name in the form INVL-ddMMyyyy followed by the last three digits of the sequence, reformatted from the name the document-naming service produced. It is stamped on insert and not maintained afterwards. |
InvoiceDiscount | Invoice Discount | Calculated (calculated) | | A read-through of the header invoice's Discount rate, held as a calculated field so line-level reporting can see the header discount that was pushed down. It is informational and is not itself one of the discount pairs that feed NetDiscount. |
InvoiceId | Sale Invoice | Lookup → Invoice | | |
IsClaimed | Claimed | Boolean | | |
IsGLPosted | GL Posted | Boolean | | |
IsGLPostingApproved | GL Posting Approved | Boolean | | |
IsILPosted | IL Posted | Boolean | | |
IsILPostingApproved | IL Posting Approved | Boolean | | |
IsPriceBundled | Price Bundled | Boolean | | |
IsSchemeGenerated | Scheme Generated | Boolean | | |
ItemAliasId | Item Alias | Lookup → ItemAlias | | |
ItemAlternateId | Alternate Item | Lookup → ItemAlternate | | |
ItemComponentId | Item Component | Lookup → ItemComponent | | |
ItemId | Item | Lookup → Item | | |
ItemLotId | Item Lot | Lookup → ItemLot | | |
ItemLotTypeId | Item Lot Type | Lookup → ItemLotType | | |
ItemName | Item Name | Text | | |
ItemServiceContractId | Service Contract | Lookup → ItemServiceContract | | |
LimitExpiryDays | Limit Expiry Days | Number | | |
LineNumber | Line Number | Text | | |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Document Number | Text | | |
NetDiscount | Net Discount | Calculated (calculated) | | The collapsed ordinary discount on the line: for each of the three pairs — Discount/DiscountAmount, Discount2/DiscountAmount2 and ContractDiscount/ContractDiscountAmount — an explicit positive amount wins, otherwise the rate is applied to BaseAmount, or to BaseAmount plus tax when post-tax discounting is on. Scheme discount is excluded and handled by NetSchemeDiscount. |
NetSchemeDiscount | Net Scheme Discount | Calculated (calculated) | | The promotional-scheme discount, resolved the same way as NetDiscount: SchemeDiscountAmount wins when positive, otherwise the SchemeDiscount rate is applied to BaseAmount, or to BaseAmount plus tax under post-tax discounting. It is kept separate from ordinary discount so scheme cost can be reported on its own. |
OrderLineId | Order Line | Lookup → OrderLine | | |
OriginalAssetId | Original Asset | Lookup → Asset | | |
OriginalItemId | Original Item | Lookup → Item | | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PackageInvoiceLineId | Package Invoice Line | Lookup → InvoiceLine | | |
PackageOrderLineId | Package Order Line | Lookup → OrderLine | | |
PartnerAccountId | Partner Account | Calculated (calculated) | | A denormalised copy of the parent invoice's owning company, calculated as the invoice's PartnerAccountId converted to text. Like AccountId on this entity it is a string, not a key, so it cannot be used as a relation and exists only to make line-level queries filterable by company. |
PendingDeliveryQuantity | Pending Delivery Quantity | Calculated (calculated) | | Metadata-calculated as Quantity minus DeliveryQuantity — what is still undelivered on this line. The delivery action only picks up lines where this is above zero, and validation refuses the action when no line has anything pending. |
PendingShipmentQuantity | Pending Shipment Quantity | Calculated (calculated) | | |
PickedQuantity | Picked Quantity | Decimal | | |
PriceAsOnDate | Price As On Date | Date | | |
PriceListId | Price List | Lookup → PriceList | | |
PriceListRuleId | Price List Rule | Lookup → PriceListRule | | |
Quantity | Quantity | Decimal | | |
RecordTypeId | Record Type | Guid, hidden | | |
RequestedQuantity | Requested Quantity | Decimal | | |
ReturnedQuantity | Returned Quantity | Decimal | | |
RNAExternalId | RNA External ID | Text | | |
RNASaleInvoiceExternalId | RNA Sale Invoice External ID | Text | | |
SchemeBenefitId | Scheme Benefit | Lookup → SchemeBenefit | | |
SchemeDiscount | Scheme Discount | Percent | | |
SchemeDiscountAmount | Scheme Discount Amount | Currency | | |
SchemeLineId | Scheme Slab | Lookup → SchemeLine | | |
SchemeRewardPoints | Scheme Reward Points | LargeNumber | | |
ServiceOrderLineId | Service Order Line | Lookup → ServiceOrderLine | | |
ShipmentQuantity | Shipment Quantity | Decimal | | |
SkipScheme | Skip Scheme | Boolean | | |
SKUId | SKU | Lookup → SKU | | |
SoftCommittedQuantity | Soft Committed Quantity | Calculated (calculated) | | Metadata-calculated: it equals the line quantity when the originating order line or service order line has already reached the inventory ledger, and zero otherwise. It flags stock notionally committed by this line rather than holding an independently maintained reservation. |
StorageLocationId | Storage Location | Lookup → StorageLocation | | |
SubscriptionId | Subscription | Lookup → Subscription | | |
SubscriptionUsageId | Subscription Usage | Lookup → SubscriptionUsage | | |
SubscriptionUsageSummaryId | Subscription Usage Summary | Lookup → SubscriptionUsageSummary | | |
Tax1 | Tax 1 | Currency | | The first of six generic tax-component slots, not a fixed tax type. Which component lands here is decided by the posting-field name configured on the Tax master in the line's tax group, so slot 1 might be CGST on one tenant and IGST on another. Every slot is cleared and recomputed whenever the line's taxes are recalculated. |
Tax1Name | Tax Name 1 | Text | | |
Tax1Rate | Tax Rate 1 | Currency | | |
Tax1Type | Tax Type 1 | Text | | A copy of the tax type from the Tax master that filled slot 1, stamped when the line's taxes were computed. Posting uses it to pick the tax account for the leg (an account whose subtype names this component wins over the generic tax account), and a slot with an empty type is skipped entirely at posting time even if its amount is non-zero. |
Tax2 | Tax 2 | Currency | | |
Tax2Name | Tax Name 2 | Text | | |
Tax2Rate | Tax Rate 2 | Currency | | |
Tax2Type | Tax Type 2 | Text | | |
Tax3 | Tax 3 | Currency | | |
Tax3Name | Tax Name 3 | Text | | |
Tax3Rate | Tax Rate 3 | Currency | | |
Tax3Type | Tax Type 3 | Text | | |
Tax4 | Tax 4 | Currency | | |
Tax4Name | Tax Name 4 | Text | | |
Tax4Rate | Tax Rate 4 | Currency | | |
Tax4Type | Tax Type 4 | Text | | |
Tax5 | Tax 5 | Currency | | |
Tax5Name | Tax Name 5 | Text | | |
Tax5Rate | Tax Rate 5 | Currency | | |
Tax5Type | Tax Type 5 | Text | | |
Tax6 | Tax 6 | Currency | | |
Tax6Name | Tax Name 6 | Text | | |
Tax6Rate | Tax Rate 6 | Currency | | |
Tax6Type | Tax Type 6 | Text | | |
TaxAmount | Tax Amount | Currency | | The total of every tax component that landed in the six tax slots on this line, written by the tax service as the sum of the line's tax-group components. Each component is computed on the discounted line value, not on BaseAmount, so changing a discount changes tax. It is the value the header TotalLineTaxAmount rolls up. |
TaxGroupId | Tax Group | Lookup → TaxGroup | | |
TdsSectionId | TDS Section | Lookup → TdsSection | | Tags the line with a withholding section for tax collected at source. When present, posting the invoice raises a collection entry (debiting the receivable and crediting the collection liability) that grows the customer's balance; unlike the GST analytics capture this is a ledger entry, so a failure here rolls the whole invoice posting back. |
UIProps | UI Props | Text | | |
UnitCost | Unit Cost | Currency | | The cost side of the line, copied from the inventory fulfilment allocation line when the invoice is built from allocated stock, so it reflects the lot or layer cost actually drawn. It does not participate in any price, discount or tax formula and is not what the cost-of-goods-sold journal uses. |
UnitPrice | Unit Price | Currency | | |
UnitPrice2 | Unit Price (Alt) | Currency | | An alternate price copied from the price-list rule's second price, and it takes precedence: BaseAmount uses it whenever it is non-zero and only falls back to UnitPrice otherwise. |
UOM | UOM | Text | | |
UOM1 | UOM1 | Text | | |
UOMQuantity | UOM Quantity | Decimal | | |
UOMQuantity1 | UOM Quantity 1 | Decimal | | |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |