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 } }