# ProducerLines

> Makbuz kalemlerinin(Mal / Hizmet) tüm detaylarının girileceği alandır.

```csharp
public class EProducerLineDto
{
    public string Name { get; set; }
    public decimal Quantity { get; set; }
    public string UnitType { get; set; }
    public decimal Price { get; set; }
    public List<TaxDto> Taxes { get; set; }
    public decimal GVWithholdingPercent { get; set; }
    public decimal GVWithholdingAmount { get; set; }
}
```

```csharp
    public class TaxDto
    {
        public string TaxCode { get; set; }
        public decimal? Total { get; set; }
        public decimal? Percent { get; set; }
        public string ReasonCode { get; set; }
        public string ReasonDesc { get; set; }
    }
```

### Name

<mark style="color:blue;">`string`</mark>  <mark style="color:red;">`Zorunlu`</mark>

> Ürünün adının girileceği alandır.

### Quantity

<mark style="color:blue;">`decimal`</mark>  <mark style="color:red;">`Zorunlu`</mark>

> Miktarın girileceği alandır.

### UnitType

<mark style="color:blue;">`string`</mark>  <mark style="color:red;">`Zorunlu`</mark>

> Birim tipinin girileceği alandır. Alabileceği değerler kod listeleri bölümünde [<mark style="color:blue;">Birim Kodları</mark>](https://developer.nilvera.com/kod-listeleri#birim-kodlari) altında belirtilmiştir.

### Price

<mark style="color:blue;">`string`</mark>  <mark style="color:red;">`Zorunlu`</mark>

> Ürün fiyatının girileceği alandır.

### Taxes

<mark style="color:blue;">`List`</mark>  <mark style="color:orange;">`Seçimli`</mark>

> Ürüne eklenecek diğer vergilerin girileceği alandır. Alabileceği değerler kod listeleri bölümünde Vergi Kodları altında belirtilmiştir.

```csharp
public class TaxDto
{
     public string TaxCode { get; set; }
     public decimal Total { get; set; }
     public decimal Percent { get; set; }
     public string ReasonCode { get; set; }
     public string ReasonDesc { get; set; }
}
```

> **TaxCode:** Vergi kodunun girileceği alandır.  <mark style="color:blue;">`string`</mark>  <mark style="color:red;">`Zorunlu`</mark>

> **Total:** Vergi toplamının girileceği alandır.  <mark style="color:blue;">`decimal`</mark>  <mark style="color:orange;">`Vergiye göre değişiklik gösterir.`</mark>

> **Percent:** Vergi oranının girileceği alandır.  <mark style="color:blue;">`decimal`</mark>  <mark style="color:orange;">`Vergiye göre değişiklik gösterir.`</mark>

{% hint style="info" %}
Girilen vergi kod listeleri bölümünde Tevkifat Kodları altında yer alıyor ise aşağıda bulunan alanların doldurulması zorunludur.

**ReasonCode:** Kodun girileceği alandır.

**ReasonDesc:** Kodun açıklamasının girileceği alandır.
{% endhint %}

> **Örn:** Eğer girilen vergi <mark style="color:red;">**KDV Tevkifatına**</mark> ait ise;

```javascript
Producer.ProducerLines[0].Taxes = [
    {
        TaxCode: "9015",
        Total: 1.72, //1.72 örnek olarak verilmiştir.
        Percent: 40,
        ReasonCode: "601",
        ReasonDesc: "Yapım İşleri İle Bu İşlerle Birlikte İfa Edilen Mühendislik"
    }
]
```

### GVWithholdingPercent

<mark style="color:blue;">`decimal`</mark><mark style="color:orange;">`Seçimli`</mark>

> Gelir Vergisi Stopajı yüzdesinin girileceği alandır.

### GVWithholdingAmounth

<mark style="color:blue;">`decimal`</mark><mark style="color:orange;">`Seçimli`</mark>

> Gelir Vergisi Stopajı tutarının girileceği alandır.
