159 lines
6.1 KiB
C#
159 lines
6.1 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using System.Reflection.Metadata.Ecma335;
|
|
|
|
namespace Back.Data.Models
|
|
{
|
|
public class InvoiceItem : ICloneable
|
|
{
|
|
#region Key
|
|
public int ID { get; set; }
|
|
public int CODID { get; set; }
|
|
public int? InvoiceID { get; set; }
|
|
#endregion
|
|
|
|
#region autofild
|
|
//شناسه کاال/خدمت
|
|
[MaxLength(13)]
|
|
// [DatabaseGenerated(DatabaseGeneratedOption.None)]
|
|
public string? sstid { get { return cODItem.ItemTaxID; } }
|
|
// شرح کاال/خدمت
|
|
[MaxLength(13)]
|
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
|
public string? sstt { get { return cODItem != null ? cODItem.Title : null; } }
|
|
//واحد اندازهگیری
|
|
[MaxLength(8)]
|
|
public string? mu { get { return cODItem != null ? cODItem.CODUnit.UnitTaxID : null; } }
|
|
//میزان ارز
|
|
[MaxLength(18)]
|
|
public decimal? cfee { get { return
|
|
invoice?.pattern?.ID == 4 ? _cfee
|
|
: exr.HasValue ? Math.Floor(fee.GetValueOrDefault() / exr.GetValueOrDefault()) : 0; } }
|
|
//مبلغ مالیات بر ارزش افزوده
|
|
[MaxLength(18)]
|
|
public decimal? vam { get
|
|
{
|
|
return Math.Floor((vra ==0 ? 0 : invoice?.pattern?.ID == 9 ? fee*vra/100 :
|
|
invoice?.pattern?.ID == 13 || invoice?.pattern?.ID == 5 ? ((tcpbs+9)/100)+((prdis*vra)/100)
|
|
: vra * adis / 100).GetValueOrDefault());
|
|
} }
|
|
//جمع کل اجرت ،حق العمل و سود
|
|
[MaxLength(18)]
|
|
public decimal? tcpbs { get { return consfee + spro + bros; } }
|
|
//سهم نقدی از پرداخت
|
|
[MaxLength(18)]
|
|
public decimal? cop { get { return Math.Floor(((tsstam * invoice?.cap) / invoice?.tadis).GetValueOrDefault()); } }
|
|
//سهم مالیات بر ارزش افزوده از پرداخت
|
|
[MaxLength(18)]
|
|
public decimal? vop { get { return vra == 0 ? 0 : Math.Floor(((vam * invoice?.cap) / invoice?.tadis).GetValueOrDefault()); } }
|
|
//مبلغ کل کالا/خدمت
|
|
[MaxLength(18)]
|
|
public decimal? tsstam { get
|
|
{
|
|
return /*invoice?.pattern?.ID == 9 ? fee+vam :*/
|
|
invoice?.pattern?.ID == 10 ? ssrv + vam + odam + olam :
|
|
invoice?.pattern?.ID == 4 ? prdis + vam + odam + olam :
|
|
vam + adis + odam + olam;
|
|
} }
|
|
//مبلغ بعد از تخفیف
|
|
[MaxLength(18)]
|
|
public decimal? adis { get
|
|
{
|
|
return invoice?.pattern?.ID == 5 || invoice?.pattern?.ID == 13 ? prdis+ tcpbs - dis: prdis - dis;
|
|
} }
|
|
//مبلغ قبل از تخفیف
|
|
[MaxLength(18)]
|
|
public decimal? prdis { get { return am * fee; } }
|
|
//نرخ مالیات بر ازش افزوده
|
|
[MaxLength(5)]
|
|
public decimal? vra { get { return
|
|
//صادرات مالیات ندارد
|
|
invoice?.pattern?.ID == 10 ? 0
|
|
:cODItem != null ? cODItem.TaxRate
|
|
: null; } }
|
|
//واحد اندازه گیری عنوان
|
|
public string? unitTitle { get { return cODItem!=null ? cODItem.CODUnit.Title : null; } }
|
|
#endregion
|
|
|
|
#region fild
|
|
//تعداد/مقدار
|
|
[MaxLength(36)]
|
|
public decimal? am { get; set; }
|
|
//وزن خالص
|
|
[MaxLength(23)]
|
|
public decimal? nw { get; set; }
|
|
//مبلغ واحد
|
|
[MaxLength(36)]
|
|
public decimal? fee { get; set; }
|
|
//نوع ارز
|
|
[MaxLength(4)]
|
|
public string? cut { get; set; }
|
|
//نرخ برابری ارز با ریال
|
|
[MaxLength(18)]
|
|
public decimal? exr { get; set; }
|
|
//ارزش ریالی کالا
|
|
[MaxLength(18)]
|
|
public decimal? ssrv { get; set; } = 0;
|
|
//ارزش ارزی کالا
|
|
[MaxLength(18)]
|
|
public decimal? sscv { get; set; } = 0;
|
|
//مبلغ تخفیف
|
|
[MaxLength(18)]
|
|
public decimal? dis { get; set; } = 0;
|
|
//موضوع سایر مالیات و عوارض
|
|
[MaxLength(255)]
|
|
public string? odt { get; set; }
|
|
//نرخ سایرمالیات و عوارض
|
|
[MaxLength(5)]
|
|
public decimal? odr { get; set; }
|
|
//مبلغ سایر مالیات و عواض
|
|
[MaxLength(18)]
|
|
public decimal? odam { get; set; } = 0;
|
|
//موضوع سایر وجوه قانونی
|
|
[MaxLength(255)]
|
|
public string? olt { get; set; }
|
|
//نرخ سایروجوه قانونی
|
|
[MaxLength(5)]
|
|
public decimal? olr { get; set; }
|
|
//مبلغ سایر وجوه قانونی
|
|
[MaxLength(18)]
|
|
public decimal? olam { get; set; } = 0;
|
|
//اجرت دساخت
|
|
[MaxLength(18)]
|
|
public decimal? consfee { get; set; } = 0;
|
|
//سود فروشنده
|
|
[MaxLength(18)]
|
|
public decimal? spro { get; set; } = 0;
|
|
//حق العمل
|
|
[MaxLength(18)]
|
|
public decimal? bros { get; set; } = 0;
|
|
//شناسه یکتای ثبت قرارداد حق العمل کاری
|
|
[MaxLength(12)]
|
|
public string? bsrn { get; set; }
|
|
public decimal? _cfee { get; set; }
|
|
//تفاوت نرخ خرید و فروش ارز
|
|
public decimal? pspd { get; set; }
|
|
//عیار
|
|
public decimal? cui { get; set; }
|
|
//نرخ خرید ارز
|
|
public decimal? cpr { get; set; }
|
|
//ماخذ مالیات بر ارزش افزوده در الگوی فروش ارز
|
|
public long? sovat { get; set; }
|
|
#endregion
|
|
|
|
#region Navigation
|
|
[ForeignKey("InvoiceID")]
|
|
public virtual Invoice? invoice { get; set; }
|
|
|
|
[ForeignKey("CODID")]
|
|
public virtual CODItem cODItem { get; set; }
|
|
|
|
public object Clone()
|
|
{
|
|
return this.MemberwiseClone();
|
|
}
|
|
#endregion
|
|
|
|
}
|
|
}
|