# Eledger Properties

```csharp
    public class ELedgerPropertiesDto
    {
        public string Nace { get; set; }
        public string Creator { get; set; }
        public string CurrencyCode  { get; set; }
        public TaxType TaxType { get; set; }
        public int LineCount { get; set; } = 15000;
        public bool IsBranch { get; set; } = false;
        public string BranchName { get; set; }
        public string BranchNumber { get; set; } = "0000";
        public bool LedgerPeriod { get; set; }
        public DateTime FiscalYearStart { get; set; }
        public DateTime FiscalYearEnd { get; set; }
        public AccountingPeriod AccountingPeriod { get; set; }
        public bool IsLiquidate { get; set; }
        public bool BalanceControl { get; set; } = true;
        public bool PaymentMethodControl { get; set; } = true;
        public DateTime? LiquidateYearStart { get; set; }
        public SignMethod SignMethod { get; set; }
        public bool SplitBillControl { get; set; }
        public bool DocumentNumberControl { get; set; }
        public bool AutoNumberControl { get; set; }
        public bool DateDifferenceValidControl { get; set; }
        public bool OpeningVoucherControl { get; set; }
        public bool AutoPaymentMethodControl { get; set; }
    }
       
    public enum TaxType
    {
        IncludeTax = 1,
        ExcludeTax = 2
    }
    
    public enum AccountingPeriod
    {
        AccountingPeriod = 0,
        InterimAccountingPeriod = 1,
        SpecialAccountingPeriod =2
    }
    
    public enum SignMethod
    {
        SmartCard = 1,
        Hsm = 2
    }
    
```

### ELedgerPropertiesDto Class Descriptions

The ELedger Properties Dto class is a data transfer object used to represent ledger settings.

#### Properties:

1. **Nace**
   * *Type:* String
   * *Description:* A system used in the European Union to code economic activities. Defines the field of activity of the business.
   * *Example:* Code 620201 represents software programming activities.
2. **Creator**
   * *Type:* String
   * *Description:* Indicates the name of the person who created the ledger.
   * *Example:* Batuhan Öner
3. **CurrencyCode**
   * *Type:* String
   * *Description:* Indicates the currency type.
   * *Example:* TRY
4. **LineCount**
   * *Type:* Integer
   * *Description:* Indicates the total number of rows in the accounting e-ledger CSV model.
   * *Example:* 12000
5. **TaxType**
   * *Type:* TaxType (Enum)
   * *Description:* Indicates the type of tax.
   * *Example:* IncludeTax – enables creation of the ledger with tax details.
   * *Example:* ExcludeTax – enables creation of the ledger without tax details.
6. **IsBranch**
   * *Type:* Boolean
   * *Description:* Indicates whether the business is a branch.
   * *Example:* false (if not a branch)
7. **BranchName**
   * *Type:* String
   * *Description:* Indicates the name of the branch.
   * *Example:* null (if not a branch)
8. **BranchNumber**
   * *Type:* String
   * *Description:* Indicates the number of the branch.
   * *Example:* null (if not a branch)
9. **LedgerPeriod**
   * *Type:* Boolean
   * *Description:* Indicates whether the ledger is submitted monthly or quarterly.
   * *Example:* true (ledger is submitted monthly)
   * *Example:* false (ledger is submitted quarterly)
10. **FiscalYearStart**
    * *Type:* DateTime
    * *Description:* Indicates the start date of the fiscal year.
    * *Example:* 2023-01-01T00:00:00 (start of the year 2023)
11. **FiscalYearEnd**
    * *Type:* DateTime
    * *Description:* Indicates the end date of the fiscal year.
    * *Example:* 2023-12-31T00:00:00 (end of the year 2023)
12. **AccountingPeriod**
    * *Type:* AccountingPeriod (Enum)
    * *Description:* Indicates the accounting period.
    * *Example:* AccountingPeriod (normal period)
    * *Example:* InterimAccountingPeriod (liquidation period)
    * *Example:* SpecialAccountingPeriod (special period)
13. **IsLiquidate**
    * *Type:* Boolean
    * *Description:* Indicates whether the company is in liquidation.
    * *Example:* false (if not bankrupt)
14. **BalanceControl**
    * *Type:* Boolean
    * *Description:* Used to detect and display errors in the ledger trial balance.
    * *Example:* true (Trial Balance Control Enabled)
    * *Example:* false (Trial Balance Control Disabled)
15. **PaymentMethodControl**
    * *Type:* Boolean
    * *Description:* Checks whether the payment method is specified when one of the accounts 100, 101, 102, 103, 108, 121, 321 is used.
    * *Example:* true (Payment Method Control Enabled)
    * *Example:* false (Payment Method Control Disabled)
16. **LiquidateYearStart**
    * *Type:* Nullable
    * *Description:* Indicates the start date of the liquidation year.
    * *Example:* 0001-01-01T00:00:00 (if not bankrupt)
17. **SignMethod**
    * *Type:* Enum
    * *Description:* Indicates the signing tool.
    * *Example:* SmartCard (E-Signature/Financial Seal)
    * *Example:* Hsm (Company Signature)
18. **SplitBillControl**
    * *Type:* Boolean
    * *Description:* Automatically splits entries if different document numbers are found in a single voucher.
    * *Example:* true (Auto Split Entry Enabled)
    * *Example:* false (Auto Split Entry Disabled)
19. **DocumentNumberControl**
    * *Type:* Boolean
    * *Description:* Checks if each document has a complete document number, type, and date.
    * *Example:* true (Document Number Control Enabled)
    * *Example:* false (Document Number Control Disabled)
20. **AutoNumberControl**
    * *Type:* Boolean
    * *Description:* Voucher numbers are assigned by the system regardless of the ERP you use, and numbering continues automatically.
    * *Example:* true (Auto Voucher Numbering Enabled)
    * *Example:* false (Auto Voucher Numbering Disabled)
21. **DateDifferenceValidControl**
    * *Type:* Boolean
    * *Description:* Throws an error if the difference between the voucher date and the document date exceeds 10 days.
    * *Example:* true (Document Date Control Enabled)
    * *Example:* false (Document Date Control Disabled)
22. **OpeningVoucherControl**
    * *Type:* Boolean
    * *Description:* Checks whether the first voucher of the first month of the fiscal period is an opening voucher.
    * *Example:* true (Opening Voucher Control Enabled)
    * *Example:* false (Opening Voucher Control Disabled)
23. **AutoPaymentMethodControl**
    * *Type:* Boolean
    * *Description:* Automatically determines the payment method based on account plan codes.
    * *Example:* true (Auto Payment Method Enabled)
    * *Example:* false (Auto Payment Method Disabled)
