diff --git a/Back/Controllers/CODController.cs b/Back/Controllers/CODController.cs index 604d15d..87ec698 100644 --- a/Back/Controllers/CODController.cs +++ b/Back/Controllers/CODController.cs @@ -52,6 +52,17 @@ namespace Back.Controllers }); } + [HttpGet("GetVra/{ID}")] + public async Task> GetVra(int ID) + { + var claim = HttpContext.User.Claims.First(c => c.Type == "UserID"); + var UserID = claim.Value; + var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID)); + var cod = await _servCOD.GetCodByCodID(ID, user.RolUsers.First().CompanyID); + if(cod!=null) + return Ok(cod.TaxRate); + return NotFound(); + } [HttpGet("GetAllForidName")] public async Task>>> GetAllForidName() { diff --git a/Back/Controllers/InvoiceController.cs b/Back/Controllers/InvoiceController.cs index 05bd756..07a8318 100644 --- a/Back/Controllers/InvoiceController.cs +++ b/Back/Controllers/InvoiceController.cs @@ -234,40 +234,31 @@ namespace Back.Controllers //{ // return BadRequest(new List { $"صورتحساب در حالت {invoice.invoiceType.GetEnumDisplayName()} نمی تواند ویرایش شود" }); //} - if (invoice.invoiceType!=InvoiceType.Cancellation) - { - bool InvoiceHasaRemittanceBillReference = invoice.BillReference.HasValue && await _remittanceService.HasaRemittance(invoice.BillReference.Value); - foreach (var item in invoice.invoiceDetails) - { - if (await _remittanceService.HasaRemittance(invoice.ID, item.CODID)) - { - await _receiptService.ADD(new Shared.DTOs.Warehouse.ReceiptDto() - { - CODID = item.CODID, - Count = item.am.GetValueOrDefault(), - Date = DateTime.Now.ConvertMiladiToShamsi(), - ForSale = true, - InvoiceID = item.InvoiceID, - Type = TypeReceipt.Shopping, - info = $"حذف صورتحساب {item.InvoiceID}", + //if (invoice.invoiceType!=InvoiceType.Cancellation) + //{ + //bool InvoiceHasaRemittanceBillReference = invoice.BillReference.HasValue && await _remittanceService.HasaRemittance(invoice.BillReference.Value); + await _receiptService.DeleteByInvoiceID(invoice.ID, user.RolUsers.First().CompanyID); + await _remittanceService.DeleteByInvoiceID(invoice.ID,user.RolUsers.First().CompanyID); + //foreach (var item in invoice.invoiceDetails) + //{ + // if (await _remittanceService.HasaRemittance(invoice.ID, item.CODID)) + // { + // await _receiptService.ADD(new Shared.DTOs.Warehouse.ReceiptDto() + // { + // CODID = item.CODID, + // Count = item.am.GetValueOrDefault(), + // Date = DateTime.Now.ConvertMiladiToShamsi(), + // ForSale = true, + // InvoiceID = item.InvoiceID, + // Type = TypeReceipt.Shopping, + // info = $"حذف صورتحساب {item.InvoiceID}", - }, user.RolUsers.First().CompanyID, true); + // }, user.RolUsers.First().CompanyID, true); - //if (invoice.BillReference.HasValue && InvoiceHasaRemittanceBillReference) - //{ - // await _remittanceService.ADD(new Shared.DTOs.Warehouse.RemittanceDto() - // { - // CODID = item.CODID, - // Count = item.am.GetValueOrDefault(), - // Date = DateTime.Now.ConvertMiladiToShamsi(), - // InvoiceID = invoice.BillReference.Value, - // Type = TypeRemittance.Sale, - // info = $"حواله خودکار از صورتحساب {invoice.BillReference.Value}", - // }); - //} - } - } - } + + // } + //} + // } invoice.LastChangeUserID = Convert.ToInt32(UserID); //----Update and sendResult diff --git a/Back/Controllers/InvoiceItemController.cs b/Back/Controllers/InvoiceItemController.cs index b759a1f..e1d953e 100644 --- a/Back/Controllers/InvoiceItemController.cs +++ b/Back/Controllers/InvoiceItemController.cs @@ -100,6 +100,7 @@ namespace Back.Controllers return Ok(await _servInvoiceItem.Add(new InvoiceItem { + vra=model.item.vra, am = model.item.am, fee = model.item.fee, dis = model.item.dis, @@ -196,6 +197,7 @@ namespace Back.Controllers invoiceitem.fee = model.item.fee; invoiceitem.dis = model.item.dis; invoiceitem.CODID = model.item.CODID; + invoiceitem.vra = model.item.vra; } if (await _servInvoice.UpdateInvoice(invoice)) diff --git a/Back/Data/Models/InvoiceItem.cs b/Back/Data/Models/InvoiceItem.cs index d24ea49..8178f49 100644 --- a/Back/Data/Models/InvoiceItem.cs +++ b/Back/Data/Models/InvoiceItem.cs @@ -64,18 +64,16 @@ namespace Back.Data.Models //مبلغ قبل از تخفیف [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(5)] + public decimal? vra { get; set; } //تعداد/مقدار [MaxLength(36)] public decimal? am { get; set; } diff --git a/Back/Migrations/20250125085346_invoicetb.Designer.cs b/Back/Migrations/20250125085346_invoicetb.Designer.cs new file mode 100644 index 0000000..d50a89a --- /dev/null +++ b/Back/Migrations/20250125085346_invoicetb.Designer.cs @@ -0,0 +1,2090 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using TaxPayer.Infrastructure.Persistence; + +#nullable disable + +namespace Back.Migrations +{ + [DbContext(typeof(SqlDbContext))] + [Migration("20250125085346_invoicetb")] + partial class invoicetb + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.15") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Back.Data.Models.BillType", b => + { + b.Property("ID") + .HasColumnType("int"); + + b.Property("Dec") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("inty") + .HasColumnType("int"); + + b.HasKey("ID"); + + b.ToTable("BillTypes"); + }); + + modelBuilder.Entity("Back.Data.Models.Blog", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Date") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DescriptionTag") + .HasColumnType("nvarchar(max)"); + + b.Property("PageTitle") + .HasColumnType("nvarchar(max)"); + + b.Property("Photo") + .HasColumnType("nvarchar(max)"); + + b.Property("Status") + .HasColumnType("bit"); + + b.Property("Tags") + .HasColumnType("nvarchar(max)"); + + b.Property("Text") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Time") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("keywordsTag") + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("Blogs"); + }); + + modelBuilder.Entity("Back.Data.Models.CODItem", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("CompanyID") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("ItemTaxID") + .HasMaxLength(13) + .HasColumnType("nvarchar(13)"); + + b.Property("TaxRate") + .HasColumnType("int"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UnitID") + .HasColumnType("int"); + + b.HasKey("ID"); + + b.HasIndex("CompanyID"); + + b.HasIndex("UnitID"); + + b.ToTable("CODItems"); + }); + + modelBuilder.Entity("Back.Data.Models.CODUnit", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UnitTaxID") + .HasMaxLength(8) + .HasColumnType("nvarchar(8)"); + + b.HasKey("ID"); + + b.ToTable("CODUnits"); + }); + + modelBuilder.Entity("Back.Data.Models.CalculationType", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("CalculationTypes"); + }); + + modelBuilder.Entity("Back.Data.Models.Coding", b => + { + b.Property("FildID") + .HasColumnType("int"); + + b.Property("Code") + .HasColumnType("varchar(10)"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("FildID", "Code"); + + b.ToTable("Codings"); + }); + + modelBuilder.Entity("Back.Data.Models.Company", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("BranchID") + .HasColumnType("nvarchar(max)"); + + b.Property("Credit") + .HasColumnType("decimal(18,2)"); + + b.Property("EconomicCode") + .HasColumnType("nvarchar(max)"); + + b.Property("Email") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("Logo") + .HasColumnType("varbinary(max)"); + + b.Property("Mobile") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Phone") + .HasColumnType("nvarchar(max)"); + + b.Property("PrivateKey") + .HasColumnType("nvarchar(max)"); + + b.Property("RegisterDate") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UniqeMemory") + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("Companies"); + }); + + modelBuilder.Entity("Back.Data.Models.CreditDocuments", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("CompanyID") + .HasColumnType("int"); + + b.Property("Date") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Value") + .HasColumnType("decimal(18,2)"); + + b.Property("type") + .HasColumnType("int"); + + b.HasKey("ID"); + + b.HasIndex("CompanyID"); + + b.ToTable("CreditDocuments"); + }); + + modelBuilder.Entity("Back.Data.Models.Customer", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Address") + .HasColumnType("nvarchar(max)"); + + b.Property("BranchID") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("CompanyID") + .HasColumnType("int"); + + b.Property("CustomerType") + .HasColumnType("int"); + + b.Property("EconomicCode") + .HasColumnType("nvarchar(max)"); + + b.Property("Email") + .HasColumnType("nvarchar(max)"); + + b.Property("FullName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Info") + .HasColumnType("nvarchar(max)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("MeliCode") + .HasMaxLength(14) + .HasColumnType("nvarchar(14)"); + + b.Property("PassportNumber") + .HasMaxLength(9) + .HasColumnType("nvarchar(9)"); + + b.Property("Phone") + .HasColumnType("nvarchar(max)"); + + b.Property("ZipCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("ID"); + + b.HasIndex("CompanyID"); + + b.ToTable("Customers"); + }); + + modelBuilder.Entity("Back.Data.Models.Fild", b => + { + b.Property("ID") + .HasColumnType("int"); + + b.Property("InputBox") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("Filds"); + }); + + modelBuilder.Entity("Back.Data.Models.FildMode", b => + { + b.Property("ID") + .HasColumnType("int"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("FildModes"); + }); + + modelBuilder.Entity("Back.Data.Models.FildModeInPattern", b => + { + b.Property("FildID") + .HasColumnType("int"); + + b.Property("PatternID") + .HasColumnType("int"); + + b.Property("FildModeID") + .HasColumnType("int"); + + b.HasKey("FildID", "PatternID", "FildModeID"); + + b.HasIndex("FildModeID"); + + b.HasIndex("PatternID"); + + b.ToTable("FildModeInPattern"); + }); + + modelBuilder.Entity("Back.Data.Models.Invoice", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("BillReference") + .HasColumnType("int"); + + b.Property("Cdate") + .HasColumnType("nvarchar(max)"); + + b.Property("CompanyID") + .HasColumnType("int"); + + b.Property("CottageDateOfCustomsDeclaration") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CustomerID") + .HasColumnType("int"); + + b.Property("DateSaleAnnouncement") + .HasColumnType("nvarchar(max)"); + + b.Property("Des") + .HasColumnType("nvarchar(max)"); + + b.Property("InvoicIssueDate") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("InvoiceDate") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("LastChangeUserID") + .HasColumnType("int"); + + b.Property("PatternID") + .HasColumnType("int"); + + b.Property("PreparedtoSendtoTax") + .HasColumnType("bit"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Udate") + .HasColumnType("nvarchar(max)"); + + b.Property("asn") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("billid") + .HasMaxLength(19) + .HasColumnType("nvarchar(19)"); + + b.Property("cdcn") + .HasMaxLength(14) + .HasColumnType("nvarchar(14)"); + + b.Property("cno") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("crn") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("dci") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("dco") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("did") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("ft") + .HasMaxLength(9) + .HasColumnType("int"); + + b.Property("inno") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ino") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b.Property("insp") + .HasMaxLength(18) + .HasColumnType("decimal(18,2)"); + + b.Property("invoiceType") + .HasColumnType("int"); + + b.Property("irno") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b.Property("irtaxid") + .HasMaxLength(22) + .HasColumnType("nvarchar(22)"); + + b.Property("lt") + .HasColumnType("int"); + + b.Property("oci") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("ocu") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("rid") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("scc") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("scln") + .HasMaxLength(14) + .HasColumnType("nvarchar(14)"); + + b.Property("setm") + .HasMaxLength(1) + .HasColumnType("int"); + + b.Property("seventeentax") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b.Property("taxid") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("tid") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("tinc") + .HasMaxLength(14) + .HasColumnType("nvarchar(14)"); + + b.HasKey("ID"); + + b.HasIndex("BillReference"); + + b.HasIndex("CompanyID"); + + b.HasIndex("CustomerID"); + + b.HasIndex("LastChangeUserID"); + + b.HasIndex("PatternID"); + + b.ToTable("Invoices"); + }); + + modelBuilder.Entity("Back.Data.Models.InvoiceItem", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("CODID") + .HasColumnType("int"); + + b.Property("InvoiceID") + .HasColumnType("int"); + + b.Property("_cfee") + .HasColumnType("decimal(18,2)"); + + b.Property("am") + .HasMaxLength(36) + .HasColumnType("decimal(18,2)"); + + b.Property("bros") + .HasMaxLength(18) + .HasColumnType("decimal(18,2)"); + + b.Property("bsrn") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("consfee") + .HasMaxLength(18) + .HasColumnType("decimal(18,2)"); + + b.Property("cpr") + .HasColumnType("decimal(18,2)"); + + b.Property("cui") + .HasColumnType("decimal(18,2)"); + + b.Property("cut") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("dis") + .HasMaxLength(18) + .HasColumnType("decimal(18,2)"); + + b.Property("exr") + .HasMaxLength(18) + .HasColumnType("decimal(18,2)"); + + b.Property("fee") + .HasMaxLength(36) + .HasColumnType("decimal(18,2)"); + + b.Property("nw") + .HasMaxLength(23) + .HasColumnType("decimal(18,2)"); + + b.Property("odam") + .HasMaxLength(18) + .HasColumnType("decimal(18,2)"); + + b.Property("odr") + .HasMaxLength(5) + .HasColumnType("decimal(18,2)"); + + b.Property("odt") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("olam") + .HasMaxLength(18) + .HasColumnType("decimal(18,2)"); + + b.Property("olr") + .HasMaxLength(5) + .HasColumnType("decimal(18,2)"); + + b.Property("olt") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("pspd") + .HasColumnType("decimal(18,2)"); + + b.Property("sovat") + .HasColumnType("bigint"); + + b.Property("spro") + .HasMaxLength(18) + .HasColumnType("decimal(18,2)"); + + b.Property("sscv") + .HasMaxLength(18) + .HasColumnType("decimal(18,2)"); + + b.Property("ssrv") + .HasMaxLength(18) + .HasColumnType("decimal(18,2)"); + + b.Property("vra") + .HasMaxLength(5) + .HasColumnType("decimal(18,2)"); + + b.HasKey("ID"); + + b.HasIndex("CODID"); + + b.HasIndex("InvoiceID"); + + b.ToTable("InvoiceItems"); + }); + + modelBuilder.Entity("Back.Data.Models.InvoicePayment", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("InvoiceID") + .HasColumnType("int"); + + b.Property("PaymentDateTime") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("acn") + .HasMaxLength(14) + .HasColumnType("nvarchar(14)"); + + b.Property("iinn") + .HasMaxLength(9) + .HasColumnType("nvarchar(9)"); + + b.Property("pcn") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + + b.Property("pid") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("pmt") + .HasMaxLength(2) + .HasColumnType("int"); + + b.Property("pv") + .HasMaxLength(18) + .HasColumnType("bigint"); + + b.Property("trmn") + .HasMaxLength(8) + .HasColumnType("nvarchar(8)"); + + b.Property("trn") + .HasMaxLength(14) + .HasColumnType("nvarchar(14)"); + + b.HasKey("ID"); + + b.HasIndex("InvoiceID"); + + b.ToTable("InvoicePayments"); + }); + + modelBuilder.Entity("Back.Data.Models.InvoiceStatusChang", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Date") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FromStatus") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("InvoiceID") + .HasColumnType("int"); + + b.Property("ToStatus") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UserID") + .HasColumnType("int"); + + b.HasKey("ID"); + + b.HasIndex("InvoiceID"); + + b.HasIndex("UserID"); + + b.ToTable("InvoiceStatusChangs"); + }); + + modelBuilder.Entity("Back.Data.Models.Notification", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Date") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ForUser") + .HasColumnType("nvarchar(max)"); + + b.Property("Message") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .HasColumnType("int"); + + b.HasKey("ID"); + + b.ToTable("Notifications"); + }); + + modelBuilder.Entity("Back.Data.Models.Order", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("ApprovalDate") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CompanyID") + .HasColumnType("int"); + + b.Property("DateCreate") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TDiscount") + .HasColumnType("decimal(18,2)"); + + b.Property("UserID") + .HasColumnType("int"); + + b.HasKey("ID"); + + b.HasIndex("CompanyID"); + + b.HasIndex("UserID"); + + b.ToTable("Orders"); + }); + + modelBuilder.Entity("Back.Data.Models.OrderDiscountCode", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("bit"); + + b.Property("Val") + .HasColumnType("int"); + + b.HasKey("ID"); + + b.ToTable("OrderDiscountCodes"); + }); + + modelBuilder.Entity("Back.Data.Models.OrderItem", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("APrice") + .HasColumnType("decimal(18,2)"); + + b.Property("CreditAmount") + .HasColumnType("int"); + + b.Property("Discount") + .HasColumnType("decimal(18,2)"); + + b.Property("OrderID") + .HasColumnType("int"); + + b.Property("PermissionID") + .HasColumnType("int"); + + b.Property("PromotionID") + .HasColumnType("int"); + + b.Property("Tax") + .HasColumnType("decimal(18,2)"); + + b.HasKey("ID"); + + b.HasIndex("OrderID"); + + b.HasIndex("PermissionID"); + + b.HasIndex("PromotionID"); + + b.ToTable("OrderItems"); + }); + + modelBuilder.Entity("Back.Data.Models.Pattern", b => + { + b.Property("ID") + .HasColumnType("int"); + + b.Property("BillTypeID") + .HasColumnType("int"); + + b.Property("Dec") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Status") + .HasColumnType("bit"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("inp") + .HasColumnType("int"); + + b.HasKey("ID"); + + b.HasIndex("BillTypeID"); + + b.ToTable("Patterns"); + }); + + modelBuilder.Entity("Back.Data.Models.Permission", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("ParentID") + .HasColumnType("int"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("Permissions"); + }); + + modelBuilder.Entity("Back.Data.Models.PermissionPeriod", b => + { + b.Property("CompanyID") + .HasColumnType("int"); + + b.Property("PermissionID") + .HasColumnType("int"); + + b.Property("CalculationTypeID") + .HasColumnType("int"); + + b.Property("IsLocked") + .HasColumnType("bit"); + + b.Property("RemainingAmount") + .HasColumnType("int"); + + b.Property("TotalAmount") + .HasColumnType("int"); + + b.HasKey("CompanyID", "PermissionID", "CalculationTypeID"); + + b.HasIndex("CalculationTypeID"); + + b.HasIndex("PermissionID"); + + b.ToTable("PermissionPeriods"); + }); + + modelBuilder.Entity("Back.Data.Models.PermissionUser", b => + { + b.Property("PermissionID") + .HasColumnType("int"); + + b.Property("RolUserID") + .HasColumnType("int"); + + b.HasKey("PermissionID", "RolUserID"); + + b.HasIndex("RolUserID"); + + b.ToTable("PermissionUsers"); + }); + + modelBuilder.Entity("Back.Data.Models.Pricing", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("CalculationTypeID") + .HasColumnType("int"); + + b.Property("PermissionID") + .HasColumnType("int"); + + b.Property("Price") + .HasColumnType("decimal(18,2)"); + + b.HasKey("ID"); + + b.HasIndex("CalculationTypeID"); + + b.HasIndex("PermissionID"); + + b.ToTable("Pricing"); + }); + + modelBuilder.Entity("Back.Data.Models.Promotion", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Status") + .HasColumnType("bit"); + + b.HasKey("ID"); + + b.ToTable("Promotions"); + }); + + modelBuilder.Entity("Back.Data.Models.PromotionDetails", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("APrice") + .HasColumnType("decimal(18,2)"); + + b.Property("CreditAmount") + .HasColumnType("int"); + + b.Property("PermissionID") + .HasColumnType("int"); + + b.Property("PromotionID") + .HasColumnType("int"); + + b.HasKey("ID"); + + b.HasIndex("PermissionID"); + + b.HasIndex("PromotionID"); + + b.ToTable("PromotionDetails"); + }); + + modelBuilder.Entity("Back.Data.Models.Question", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Answer") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("QuestionCategoryID") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("bit"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.HasIndex("QuestionCategoryID"); + + b.ToTable("Questions"); + }); + + modelBuilder.Entity("Back.Data.Models.QuestionCategory", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("QuestionCategories"); + }); + + modelBuilder.Entity("Back.Data.Models.RolUser", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("CompanyID") + .HasColumnType("int"); + + b.Property("IsAdmin") + .HasColumnType("bit"); + + b.Property("UserID") + .HasColumnType("int"); + + b.HasKey("ID"); + + b.HasIndex("CompanyID"); + + b.HasIndex("UserID"); + + b.ToTable("RolUsers"); + }); + + modelBuilder.Entity("Back.Data.Models.SaleLead", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Key") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Mobile") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("cn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("company") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("csr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("sn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("SaleLeads"); + }); + + modelBuilder.Entity("Back.Data.Models.SentTax", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Date") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ErrorsModel") + .HasColumnType("nvarchar(MAX)"); + + b.Property("InquiryResultModel") + .HasColumnType("nvarchar(MAX)"); + + b.Property("InvoiceID") + .HasColumnType("int"); + + b.Property("InvoiceModel") + .IsRequired() + .HasColumnType("nvarchar(MAX)"); + + b.Property("InvoiceType") + .HasColumnType("int"); + + b.Property("ReferenceNumber") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ResponseModel") + .HasColumnType("nvarchar(MAX)"); + + b.Property("SentStatus") + .HasColumnType("int"); + + b.Property("Time") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("uId") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.HasIndex("InvoiceID"); + + b.ToTable("SentTax"); + }); + + modelBuilder.Entity("Back.Data.Models.SpecialCondition", b => + { + b.Property("FildID") + .HasColumnType("int"); + + b.Property("condition") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasIndex("FildID"); + + b.ToTable("SpecialConditions"); + }); + + modelBuilder.Entity("Back.Data.Models.SubTicket", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Date") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Text") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TicketID") + .HasColumnType("int"); + + b.Property("Time") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .HasColumnType("int"); + + b.HasKey("ID"); + + b.HasIndex("TicketID"); + + b.ToTable("SubTickets"); + }); + + modelBuilder.Entity("Back.Data.Models.TiceketUnknownPeople", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("FullName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Mobile") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("TiceketUnknownPeoples"); + }); + + modelBuilder.Entity("Back.Data.Models.Ticket", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("CompanyIDOrMobile") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateDate") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EndDate") + .HasColumnType("nvarchar(max)"); + + b.Property("EndTime") + .HasColumnType("nvarchar(max)"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("Tickets"); + }); + + modelBuilder.Entity("Back.Data.Models.Ulr", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Date") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Ip") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Time") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("Ulrs"); + }); + + modelBuilder.Entity("Back.Data.Models.User", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("DateLastLogin") + .HasColumnType("nvarchar(max)"); + + b.Property("Email") + .HasColumnType("nvarchar(max)"); + + b.Property("Fullname") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("Mobile") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Photo") + .HasColumnType("varbinary(max)"); + + b.Property("Token") + .HasColumnType("varchar(max)"); + + b.Property("Username") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("Users"); + }); + + modelBuilder.Entity("Back.Data.Models.UserNotfi", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("NotificationID") + .HasColumnType("int"); + + b.Property("UserID") + .HasColumnType("int"); + + b.HasKey("ID"); + + b.ToTable("UserNotifis"); + }); + + modelBuilder.Entity("Back.Data.Models.VerificationCode", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("prm") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("val") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("VerificationCodes"); + }); + + modelBuilder.Entity("Back.Data.Models.Warehouse.Receipt", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("CODID") + .HasColumnType("int"); + + b.Property("Count") + .HasColumnType("decimal(18,2)"); + + b.Property("Date") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Deleted") + .HasColumnType("bit"); + + b.Property("ForSale") + .HasColumnType("bit"); + + b.Property("InvoiceID") + .HasColumnType("int"); + + b.Property("Type") + .HasColumnType("int"); + + b.Property("info") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.HasIndex("CODID"); + + b.ToTable("Receipts"); + }); + + modelBuilder.Entity("Back.Data.Models.Warehouse.Remittance", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("CODID") + .HasColumnType("int"); + + b.Property("Count") + .HasColumnType("decimal(18,2)"); + + b.Property("Date") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Deleted") + .HasColumnType("bit"); + + b.Property("InvoiceID") + .HasColumnType("int"); + + b.Property("Type") + .HasColumnType("int"); + + b.Property("info") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.HasIndex("CODID"); + + b.ToTable("Remittances"); + }); + + modelBuilder.Entity("Back.Data.Models.rptQueue", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("CompanyID") + .HasColumnType("int"); + + b.Property("InvoicID") + .HasColumnType("int"); + + b.HasKey("ID"); + + b.ToTable("rptQueue"); + }); + + modelBuilder.Entity("Back.Data.Models.stuff", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("CID") + .HasColumnType("nvarchar(max)"); + + b.Property("DescriptionOfID") + .HasColumnType("nvarchar(max)"); + + b.Property("ExpirationDate") + .HasColumnType("nvarchar(max)"); + + b.Property("RunDate") + .HasColumnType("nvarchar(max)"); + + b.Property("SpecialOrGeneral") + .HasColumnType("nvarchar(max)"); + + b.Property("TaxableOrFree") + .HasColumnType("nvarchar(max)"); + + b.Property("Vat") + .HasColumnType("nvarchar(max)"); + + b.Property("VatCustomPurposes") + .HasColumnType("nvarchar(max)"); + + b.Property("sDate") + .HasColumnType("nvarchar(max)"); + + b.Property("sType") + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("Stuffs"); + }); + + modelBuilder.Entity("Back.Data.Models.CODItem", b => + { + b.HasOne("Back.Data.Models.Company", "Company") + .WithMany("CODItemS") + .HasForeignKey("CompanyID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Back.Data.Models.CODUnit", "CODUnit") + .WithMany("CODItemS") + .HasForeignKey("UnitID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CODUnit"); + + b.Navigation("Company"); + }); + + modelBuilder.Entity("Back.Data.Models.Coding", b => + { + b.HasOne("Back.Data.Models.Fild", "Fild") + .WithMany("Codings") + .HasForeignKey("FildID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Fild"); + }); + + modelBuilder.Entity("Back.Data.Models.CreditDocuments", b => + { + b.HasOne("Back.Data.Models.Company", "company") + .WithMany("CreditDocuments") + .HasForeignKey("CompanyID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("company"); + }); + + modelBuilder.Entity("Back.Data.Models.Customer", b => + { + b.HasOne("Back.Data.Models.Company", "Company") + .WithMany("Customers") + .HasForeignKey("CompanyID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Company"); + }); + + modelBuilder.Entity("Back.Data.Models.FildModeInPattern", b => + { + b.HasOne("Back.Data.Models.Fild", "Fild") + .WithMany("FildModeInPatterns") + .HasForeignKey("FildID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Back.Data.Models.FildMode", "FildMode") + .WithMany("FildModeInPatterns") + .HasForeignKey("FildModeID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Back.Data.Models.Pattern", "pattern") + .WithMany("FildModeInPatterns") + .HasForeignKey("PatternID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Fild"); + + b.Navigation("FildMode"); + + b.Navigation("pattern"); + }); + + modelBuilder.Entity("Back.Data.Models.Invoice", b => + { + b.HasOne("Back.Data.Models.Invoice", "invoice") + .WithMany("Childinvoice") + .HasForeignKey("BillReference"); + + b.HasOne("Back.Data.Models.Company", "company") + .WithMany("invoices") + .HasForeignKey("CompanyID"); + + b.HasOne("Back.Data.Models.Customer", "Customer") + .WithMany() + .HasForeignKey("CustomerID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Back.Data.Models.User", "user") + .WithMany() + .HasForeignKey("LastChangeUserID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Back.Data.Models.Pattern", "pattern") + .WithMany() + .HasForeignKey("PatternID"); + + b.Navigation("Customer"); + + b.Navigation("company"); + + b.Navigation("invoice"); + + b.Navigation("pattern"); + + b.Navigation("user"); + }); + + modelBuilder.Entity("Back.Data.Models.InvoiceItem", b => + { + b.HasOne("Back.Data.Models.CODItem", "cODItem") + .WithMany("invoiceDetails") + .HasForeignKey("CODID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Back.Data.Models.Invoice", "invoice") + .WithMany("invoiceDetails") + .HasForeignKey("InvoiceID"); + + b.Navigation("cODItem"); + + b.Navigation("invoice"); + }); + + modelBuilder.Entity("Back.Data.Models.InvoicePayment", b => + { + b.HasOne("Back.Data.Models.Invoice", "invoice") + .WithMany("payments") + .HasForeignKey("InvoiceID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("invoice"); + }); + + modelBuilder.Entity("Back.Data.Models.InvoiceStatusChang", b => + { + b.HasOne("Back.Data.Models.Invoice", "invoice") + .WithMany("invoiceStatusChangs") + .HasForeignKey("InvoiceID"); + + b.HasOne("Back.Data.Models.User", "user") + .WithMany() + .HasForeignKey("UserID"); + + b.Navigation("invoice"); + + b.Navigation("user"); + }); + + modelBuilder.Entity("Back.Data.Models.Order", b => + { + b.HasOne("Back.Data.Models.Company", "Company") + .WithMany() + .HasForeignKey("CompanyID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Back.Data.Models.User", "User") + .WithMany() + .HasForeignKey("UserID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Company"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("Back.Data.Models.OrderItem", b => + { + b.HasOne("Back.Data.Models.Order", "Order") + .WithMany("OrderItems") + .HasForeignKey("OrderID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Back.Data.Models.Permission", "Permission") + .WithMany() + .HasForeignKey("PermissionID"); + + b.HasOne("Back.Data.Models.Promotion", "Promotion") + .WithMany() + .HasForeignKey("PromotionID"); + + b.Navigation("Order"); + + b.Navigation("Permission"); + + b.Navigation("Promotion"); + }); + + modelBuilder.Entity("Back.Data.Models.Pattern", b => + { + b.HasOne("Back.Data.Models.BillType", "BillType") + .WithMany("Patterns") + .HasForeignKey("BillTypeID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BillType"); + }); + + modelBuilder.Entity("Back.Data.Models.PermissionPeriod", b => + { + b.HasOne("Back.Data.Models.CalculationType", "CalculationType") + .WithMany("permissionPeriods") + .HasForeignKey("CalculationTypeID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Back.Data.Models.Company", "Company") + .WithMany("PermissionPeriods") + .HasForeignKey("CompanyID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Back.Data.Models.Permission", "Permission") + .WithMany() + .HasForeignKey("PermissionID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CalculationType"); + + b.Navigation("Company"); + + b.Navigation("Permission"); + }); + + modelBuilder.Entity("Back.Data.Models.PermissionUser", b => + { + b.HasOne("Back.Data.Models.Permission", "Permission") + .WithMany("RolUsers") + .HasForeignKey("PermissionID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Back.Data.Models.RolUser", "RolUser") + .WithMany("rolePermissions") + .HasForeignKey("RolUserID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Permission"); + + b.Navigation("RolUser"); + }); + + modelBuilder.Entity("Back.Data.Models.Pricing", b => + { + b.HasOne("Back.Data.Models.CalculationType", "CalculationType") + .WithMany() + .HasForeignKey("CalculationTypeID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Back.Data.Models.Permission", "Permission") + .WithMany() + .HasForeignKey("PermissionID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CalculationType"); + + b.Navigation("Permission"); + }); + + modelBuilder.Entity("Back.Data.Models.PromotionDetails", b => + { + b.HasOne("Back.Data.Models.Permission", "Permission") + .WithMany() + .HasForeignKey("PermissionID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Back.Data.Models.Promotion", "Promotion") + .WithMany("PromotionDetails") + .HasForeignKey("PromotionID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Permission"); + + b.Navigation("Promotion"); + }); + + modelBuilder.Entity("Back.Data.Models.Question", b => + { + b.HasOne("Back.Data.Models.QuestionCategory", "questionCategory") + .WithMany("questions") + .HasForeignKey("QuestionCategoryID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("questionCategory"); + }); + + modelBuilder.Entity("Back.Data.Models.RolUser", b => + { + b.HasOne("Back.Data.Models.Company", "Company") + .WithMany("RolUsers") + .HasForeignKey("CompanyID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Back.Data.Models.User", "User") + .WithMany("RolUsers") + .HasForeignKey("UserID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Company"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("Back.Data.Models.SentTax", b => + { + b.HasOne("Back.Data.Models.Invoice", "invoice") + .WithMany("sentTax") + .HasForeignKey("InvoiceID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("invoice"); + }); + + modelBuilder.Entity("Back.Data.Models.SpecialCondition", b => + { + b.HasOne("Back.Data.Models.Fild", "Fild") + .WithMany() + .HasForeignKey("FildID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Fild"); + }); + + modelBuilder.Entity("Back.Data.Models.SubTicket", b => + { + b.HasOne("Back.Data.Models.Ticket", "Ticket") + .WithMany("SubTickets") + .HasForeignKey("TicketID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Ticket"); + }); + + modelBuilder.Entity("Back.Data.Models.Warehouse.Receipt", b => + { + b.HasOne("Back.Data.Models.CODItem", "cODItem") + .WithMany("Receipts") + .HasForeignKey("CODID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("cODItem"); + }); + + modelBuilder.Entity("Back.Data.Models.Warehouse.Remittance", b => + { + b.HasOne("Back.Data.Models.CODItem", "cODItem") + .WithMany("Remittances") + .HasForeignKey("CODID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("cODItem"); + }); + + modelBuilder.Entity("Back.Data.Models.BillType", b => + { + b.Navigation("Patterns"); + }); + + modelBuilder.Entity("Back.Data.Models.CODItem", b => + { + b.Navigation("Receipts"); + + b.Navigation("Remittances"); + + b.Navigation("invoiceDetails"); + }); + + modelBuilder.Entity("Back.Data.Models.CODUnit", b => + { + b.Navigation("CODItemS"); + }); + + modelBuilder.Entity("Back.Data.Models.CalculationType", b => + { + b.Navigation("permissionPeriods"); + }); + + modelBuilder.Entity("Back.Data.Models.Company", b => + { + b.Navigation("CODItemS"); + + b.Navigation("CreditDocuments"); + + b.Navigation("Customers"); + + b.Navigation("PermissionPeriods"); + + b.Navigation("RolUsers"); + + b.Navigation("invoices"); + }); + + modelBuilder.Entity("Back.Data.Models.Fild", b => + { + b.Navigation("Codings"); + + b.Navigation("FildModeInPatterns"); + }); + + modelBuilder.Entity("Back.Data.Models.FildMode", b => + { + b.Navigation("FildModeInPatterns"); + }); + + modelBuilder.Entity("Back.Data.Models.Invoice", b => + { + b.Navigation("Childinvoice"); + + b.Navigation("invoiceDetails"); + + b.Navigation("invoiceStatusChangs"); + + b.Navigation("payments"); + + b.Navigation("sentTax"); + }); + + modelBuilder.Entity("Back.Data.Models.Order", b => + { + b.Navigation("OrderItems"); + }); + + modelBuilder.Entity("Back.Data.Models.Pattern", b => + { + b.Navigation("FildModeInPatterns"); + }); + + modelBuilder.Entity("Back.Data.Models.Permission", b => + { + b.Navigation("RolUsers"); + }); + + modelBuilder.Entity("Back.Data.Models.Promotion", b => + { + b.Navigation("PromotionDetails"); + }); + + modelBuilder.Entity("Back.Data.Models.QuestionCategory", b => + { + b.Navigation("questions"); + }); + + modelBuilder.Entity("Back.Data.Models.RolUser", b => + { + b.Navigation("rolePermissions"); + }); + + modelBuilder.Entity("Back.Data.Models.Ticket", b => + { + b.Navigation("SubTickets"); + }); + + modelBuilder.Entity("Back.Data.Models.User", b => + { + b.Navigation("RolUsers"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Back/Migrations/20250125085346_invoicetb.cs b/Back/Migrations/20250125085346_invoicetb.cs new file mode 100644 index 0000000..d903022 --- /dev/null +++ b/Back/Migrations/20250125085346_invoicetb.cs @@ -0,0 +1,32 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Back.Migrations +{ + /// + public partial class invoicetb : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + + migrationBuilder.AddColumn( + name: "vra", + table: "InvoiceItems", + type: "decimal(18,2)", + maxLength: 5, + nullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + + + migrationBuilder.DropColumn( + name: "vra", + table: "InvoiceItems"); + } + } +} diff --git a/Back/Migrations/SqlDbContextModelSnapshot.cs b/Back/Migrations/SqlDbContextModelSnapshot.cs index e0ada70..b578805 100644 --- a/Back/Migrations/SqlDbContextModelSnapshot.cs +++ b/Back/Migrations/SqlDbContextModelSnapshot.cs @@ -584,6 +584,7 @@ namespace Back.Migrations b.Property("_cfee") .HasColumnType("decimal(18,2)"); + b.Property("am") .HasMaxLength(36) .HasColumnType("decimal(18,2)"); @@ -668,6 +669,10 @@ namespace Back.Migrations .HasMaxLength(18) .HasColumnType("decimal(18,2)"); + b.Property("vra") + .HasMaxLength(5) + .HasColumnType("decimal(18,2)"); + b.HasKey("ID"); b.HasIndex("CODID"); diff --git a/Back/Services/PreparationTaxInvoice.cs b/Back/Services/PreparationTaxInvoice.cs index 5848d0b..c42554b 100644 --- a/Back/Services/PreparationTaxInvoice.cs +++ b/Back/Services/PreparationTaxInvoice.cs @@ -33,7 +33,7 @@ namespace Back.Services public int? Inp { get { return _invoice.inp ?? 1; } } public int? Ins { get { return _invoice.ins ?? 1; } } public string? Tins { get { return string.IsNullOrEmpty(_invoice.tins) ? null : _invoice.tins; } } - public int? Tob { get { return level == 10 || _invoice.tob==0 ? null : _invoice.tob == 5 ? 1 : _invoice.tob == 6 ? 4 : _invoice.tob; } } + public int? Tob { get { return level == 10 || _invoice.tob == 0 ? null : _invoice.tob == 5 ? 1 : _invoice.tob == 6 ? 4 : _invoice.tob; } } public string? Bid { get @@ -96,14 +96,22 @@ namespace Back.Services public decimal? Nw { get { return level == 10 ? bitem.nw : null; } } public decimal? Fee { get { return level == 4 ? null : bitem.fee; } } public decimal? Cfee { get { return bitem.cfee == 0 || level == 8 || level == 10 ? null : bitem.cfee; } } - public string? Cut { get{ return level == 8 || string.IsNullOrEmpty(bitem.cut) ? null : bitem.cut; } } + public string? Cut { get { return level == 8 || string.IsNullOrEmpty(bitem.cut) ? null : bitem.cut; } } public decimal? Exr { get { return level == 8 ? null : bitem.exr; } } public decimal? Ssrv { get { return level == 10 ? bitem.ssrv : null; } } public decimal? Sscv { get { return level == 10 ? bitem.sscv : null; } } public decimal? Prdis { get { return level == 10 ? null : bitem.prdis; } } public decimal? Dis { get { return level == 10 ? null : bitem.dis; } } public decimal? Adis { get { return level == 10 ? null : bitem.adis; } } - public decimal? Vra { get { return bitem.vra; } } + public decimal? Vra + { + get + { + return level == 14 ? 0 + : + bitem.vra; + } + } public decimal? Vam { get { return bitem.vam; } } public string? Odt { get { return string.IsNullOrEmpty(bitem.odt) ? null : bitem.odt; } } public decimal? Odr { get { return bitem.odr; } } diff --git a/Back/Services/Warehouse/ReceiptService.cs b/Back/Services/Warehouse/ReceiptService.cs index ebe05c1..f96907f 100644 --- a/Back/Services/Warehouse/ReceiptService.cs +++ b/Back/Services/Warehouse/ReceiptService.cs @@ -33,6 +33,7 @@ namespace Back.Services.Warehouse ForSale = item.ForSale, info = item.info, Type = item.Type, + InvoiceID=item.InvoiceID, Deleted = false }; var returnmodel = await _ReceiptRepo.AddAsync(model); @@ -88,7 +89,9 @@ namespace Back.Services.Warehouse var models = await _ReceiptRepo.Get(w => w.InvoiceID == InvoiceID && w.cODItem.CompanyID == CompanyID && !w.Deleted).ToListAsync(); foreach (var model in models) model.Deleted = true; - return await _ReceiptRepo.UpdateRangeAsync(models); + if (models.Any()) + return await _ReceiptRepo.UpdateRangeAsync(models); + return true; } diff --git a/Back/Services/Warehouse/RemittanceService.cs b/Back/Services/Warehouse/RemittanceService.cs index 5518e37..149d594 100644 --- a/Back/Services/Warehouse/RemittanceService.cs +++ b/Back/Services/Warehouse/RemittanceService.cs @@ -73,8 +73,9 @@ namespace Back.Services.Warehouse var models = await _ReceiptRepo.Get(w => w.InvoiceID == InvoiceID && w.cODItem.CompanyID == CompanyID && !w.Deleted).ToListAsync(); foreach (var model in models) model.Deleted = true; + if(models.Any()) return await _ReceiptRepo.UpdateRangeAsync(models); - + return true; } public async Task DeleteByCODIDAndInvoiceID(int InvoiceID, int CODID, int CompanyID) { diff --git a/Back/Validations/AUInvoiceItemValidation.cs b/Back/Validations/AUInvoiceItemValidation.cs index b23c1d4..d50ce2d 100644 --- a/Back/Validations/AUInvoiceItemValidation.cs +++ b/Back/Validations/AUInvoiceItemValidation.cs @@ -37,9 +37,13 @@ namespace Back.Validations if (!servCOD.ExistCodByCompanyID(model.Item3.CODID, model.Item1).Result) context.AddFailure("کالا یافت نشد"); } - else context.AddFailure("کالا صحیح نمی باشد"); + if (!model.Item3.vra.HasValue) + context.AddFailure("نرخ مالیات را وارد کنید"); + + + }); RuleFor(r => r.Item3.am) .NotEmpty().WithMessage("تعداد مشخص نشده") diff --git a/Shared/DTOs/InvoiceDtos.cs b/Shared/DTOs/InvoiceDtos.cs index 71b40b5..6e75d6a 100644 --- a/Shared/DTOs/InvoiceDtos.cs +++ b/Shared/DTOs/InvoiceDtos.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Security.Principal; using System.Text; using System.Threading.Tasks; @@ -113,7 +114,6 @@ namespace Shared.DTOs //مبلغ قبل از تخفیف public decimal? prdis { get; set; } //مبلغ بعد از تخفیف - public decimal? adis { get; set; } } diff --git a/TaxPayerFull/CUSComponent/InvoiceItem.razor b/TaxPayerFull/CUSComponent/InvoiceItem.razor index b3b8ffb..29a83c6 100644 --- a/TaxPayerFull/CUSComponent/InvoiceItem.razor +++ b/TaxPayerFull/CUSComponent/InvoiceItem.razor @@ -21,8 +21,7 @@