Files
moadiran/Back/Services/PreparationTaxInvoice.cs
mmrbnjd b57839a212 ...
2025-01-25 12:57:07 +03:30

136 lines
8.3 KiB
C#

using Back.Data.Models;
using Shared.DTOs;
namespace Back.Services
{
public class PreparationHeaderTaxInvoice
{
private readonly Invoice _invoice;
private readonly ActionTaxPayer _actionTaxPayer;
private readonly int level;
public PreparationHeaderTaxInvoice(Invoice invoice, ActionTaxPayer actionTaxPayer)
{
_invoice = invoice;
_actionTaxPayer = actionTaxPayer;
level = _invoice.pattern.ID;
}
#region Header
public string Taxid { get { return _actionTaxPayer.GenerateTaxid(_invoice.inno, _invoice.InvoiceDate.Replace("/", "").Trim()); } }
public long? Indatim { get { return _invoice.indatim ?? null; } }
public long? Indati2m { get { return _invoice.Indati2m ?? null; } }
public int? Inty { get { return _invoice.inty ?? 1; } }
public string? Inno { get { return string.IsNullOrEmpty(_invoice.inno) ? null : _invoice.inno; } }
public string? Irtaxid
{
get
{
return _invoice.invoiceType == InvoiceType.BackFrmSale || _invoice.invoiceType == InvoiceType.Repair ? _invoice.invoice.taxid
: _invoice.invoiceType == InvoiceType.Cancellation ? _invoice.taxid : null;
}
}
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 string? Bid
{
get
{
return level == 10 || string.IsNullOrEmpty(_invoice.bid) || !string.IsNullOrEmpty(_invoice.tinb)
|| _invoice.tob == 1 || _invoice.tob == 2 || _invoice.tob == 3 || _invoice.tob == 4 ? null : _invoice.bid;
}
}
public string? Tinb { get { return level == 10 || string.IsNullOrEmpty(_invoice.tinb) || _invoice.tob == 5 || _invoice.tob == 6 ? null : _invoice.tinb; } }
public string? Sbc { get { return string.IsNullOrEmpty(_invoice.sbc) ? null : _invoice.sbc; } }
public string? Bpc
{
get
{
return level == 10 || string.IsNullOrEmpty(_invoice.bpc) || !string.IsNullOrEmpty(_invoice.tinb)
|| _invoice.tob == 1 || _invoice.tob == 2 || _invoice.tob == 3 || _invoice.tob == 4 ? null : _invoice.bpc;
}
}
public string? Bbc { get { return level == 10 || string.IsNullOrEmpty(_invoice.bbc) ? null : _invoice.bbc; } }
public int? Ft { get { return level == 9 ? _invoice.ft : null; } }
public string? Bpn { get { return (level == 9 || level == 4) && !string.IsNullOrEmpty(_invoice.bpn) ? _invoice.bpn : null; } }
public string? Scln { get { return (level == 3 || level == 4) && !string.IsNullOrEmpty(_invoice.scln) ? _invoice.scln : null; } }
public string? Scc { get { return (level == 3 || level == 4 || level == 10) && !string.IsNullOrEmpty(_invoice.scc) ? _invoice.scc : null; } }
public string? Cdcn { get { return level == 10 ? _invoice.cdcn : null; } }
public int? Cdcd { get { return level == 10 ? _invoice.cdcd : null; } }
public string? Crn { get { return (level == 3 || level == 4 || level == 5 || level == 6) && !string.IsNullOrEmpty(_invoice.crn) ? _invoice.crn : null; } }
public string? Billid { get { return level == 8 ? _invoice.billid : null; } }
public decimal? Tprdis { get { return level == 10 ? null : _invoice.tprdis ?? null; } }
public decimal? Tdis { get { return level == 10 ? null : _invoice.tdis ?? null; } }
public decimal? Tadis { get { return level == 10 ? null : _invoice.tadis ?? null; } }
public decimal? Tvam { get { return _invoice.tvam ?? null; } }
public decimal? Todam { get { return _invoice.todam ?? null; } }
public decimal? Tbill { get { return -10 /* result.tbill ?? null*/; } }
public decimal? Tonw { get { return level == 10 ? _invoice.tonw : null; } }
public decimal? Torv { get { return level == 10 ? _invoice.torv : null; } }
public decimal? Tocv { get { return level == 10 ? _invoice.tocv : null; } }
public int? Setm { get { return level == 8 || level == 10 || level == 11 || level == 13 || _invoice.setm == 0 ? null : _invoice.setm ?? null; } }
public decimal? Cap { get { return level == 8 || level == 10 || level == 11 || level == 13 ? null : _invoice.cap ?? null; } }
public decimal? Insp { get { return level == 8 || level == 10 || level == 11 || level == 13 ? null : _invoice.insp ?? null; } }
public decimal? Tvop { get { return level == 8 || level == 10 || level == 11 || level == 13 ? null : _invoice.tvop ?? null; } }
public decimal? Tax17 { get { return level == 10 || string.IsNullOrEmpty(_invoice.seventeentax) ? null : Convert.ToDecimal(_invoice.seventeentax); } }
public string? Tinc { get { return level == 9 && !string.IsNullOrEmpty(_invoice.tinc) ? _invoice.tinc : null; } }
#endregion
}
public class PreparationBodyTaxInvoice
{
private readonly InvoiceItem bitem;
private readonly int level;
public PreparationBodyTaxInvoice(InvoiceItem bitem, int level)
{
this.bitem = bitem;
this.level = level;
}
public string? Sstid { get { return bitem.sstid; } }
public string? Sstt { get { return bitem.sstt; } }
public decimal? Am { get { return level == 4 ? null : bitem.am; } }
public string? Mu { get { return level == 4 || string.IsNullOrEmpty(bitem.mu) ? null : bitem.mu; } }
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 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 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; } }
public decimal? Odam { get { return bitem.odam; } }
public string? Olt { get { return string.IsNullOrEmpty(bitem.olt) ? null : bitem.olt; } }
public decimal? Olr { get { return bitem.olr; } }
public decimal? Olam { get { return bitem.olam; } }
public decimal? Consfee { get { return level == 5 || level == 13 ? bitem.consfee : null; } }
public decimal? Spro { get { return level == 5 || level == 13 ? bitem.spro : null; } }
public decimal? Bros { get { return level == 5 || level == 13 ? bitem.bros : null; } }
public decimal? Tcpbs { get { return level == 5 || level == 13 ? bitem.tcpbs : null; } }
public decimal? Cop { get { return level == 8 || level == 10 || level == 11 || level == 13 ? null : bitem.cop; } }
public decimal? Vop { get { return level == 8 || level == 10 || level == 11 || level == 13 ? null : bitem.vop; } }
public string? Bsrn { get { return string.IsNullOrEmpty(bitem.bsrn) ? null : bitem.bsrn; } }
public decimal? Tsstam { get { return bitem.tsstam; } }
public decimal? Cui { get { return level == 5 || level == 13 ? bitem.cui : null; } }
public decimal? Cpr { get { return level == 4 && bitem.cpr.HasValue ? bitem.cpr : null; } }
public long? Sovat { get { return level == 4 && bitem.sovat.HasValue ? bitem.sovat : null; } }
}
}