This commit is contained in:
mmrbnjd
2025-10-03 23:30:01 +03:30
parent ef2cf5ff30
commit 4df6c87012
34 changed files with 908 additions and 555 deletions

View File

@@ -6,18 +6,10 @@ using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
using Org.BouncyCastle.Asn1.Cmp;
using Org.BouncyCastle.Ocsp;
using Org.BouncyCastle.Utilities;
using Shared.DTOs;
using Shared.DTOs.Serch;
using System;
using System.Security.Cryptography;
using TaxCollectData.Library.Dto.Content;
using TaxCollectData.Library.Dto.Transfer;
using static Shared.DTOs._TaxPayer;
using static System.Collections.Specialized.BitVector32;
namespace Back.Controllers
{
@@ -152,326 +144,326 @@ namespace Back.Controllers
[HttpGet("SendInvoice/{InvoiceID}")]
public async Task<ActionResult<bool>> SendInvoice(int InvoiceID)
{
//return BadRequest(new List<string> { "در حال حاضر سامانه مودیان در دسترس نمی باشد" });
return BadRequest(new List<string> { "در حال حاضر سامانه مودیان در دسترس نمی باشد" });
var claim = HttpContext.User.Claims.First(c => c.Type == "UserID");
var UserID = claim.Value;
var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
if (!await _actionTaxPayer.login(user.RolUsers.First().CompanyID))
return BadRequest(new List<string> { "خطا در احراز هویت سازمان مالیاتی" });
//var claim = HttpContext.User.Claims.First(c => c.Type == "UserID");
//var UserID = claim.Value;
//var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
//if (!await _actionTaxPayer.login(user.RolUsers.First().CompanyID))
// return BadRequest(new List<string> { "خطا در احراز هویت سازمان مالیاتی" });
var result = await _servTaxPayer.GetInvoice(user.RolUsers.First().CompanyID, InvoiceID);
if (result == null)
return BadRequest(new List<string> { "صورتحساب یافت نشد" });
//var result = await _servTaxPayer.GetInvoice(user.RolUsers.First().CompanyID, InvoiceID);
//if (result == null)
// return BadRequest(new List<string> { "صورتحساب یافت نشد" });
else
{
if (!result.PatternID.HasValue)
return BadRequest(new List<string> { "ابتدا برای این صورتحساب الگو در نظر بگیرید" });
//else
//{
// if (!result.PatternID.HasValue)
// return BadRequest(new List<string> { "ابتدا برای این صورتحساب الگو در نظر بگیرید" });
if (result.invoiceType == InvoiceType.Bidding)
return BadRequest(new List<string> { "صورتحساب در وضعیت پیش نویس نمیتواند ارسال شود" });
// if (result.invoiceType == InvoiceType.Bidding)
// return BadRequest(new List<string> { "صورتحساب در وضعیت پیش نویس نمیتواند ارسال شود" });
if (await _servTaxPayer.ExistSuccessfulorSendorpendingInvoice(result))
return BadRequest(new List<string> { "این صورتحساب قبلا به سازمان ارسال شده" });
// if (await _servTaxPayer.ExistSuccessfulorSendorpendingInvoice(result))
// return BadRequest(new List<string> { "این صورتحساب قبلا به سازمان ارسال شده" });
if ((result.invoiceType == InvoiceType.BackFrmSale || result.invoiceType == InvoiceType.Repair)
&& !result.BillReference.HasValue)
return BadRequest(new List<string> { "در وضعیت برگشت از فروش و اصلاحی باید صورتحساب مرجع وجود داشته باشد" });
// if ((result.invoiceType == InvoiceType.BackFrmSale || result.invoiceType == InvoiceType.Repair)
// && !result.BillReference.HasValue)
// return BadRequest(new List<string> { "در وضعیت برگشت از فروش و اصلاحی باید صورتحساب مرجع وجود داشته باشد" });
if ((result.invoiceType == InvoiceType.BackFrmSale || result.invoiceType == InvoiceType.Repair)
&& !await _servTaxPayer.ExistSuccessfulorSendorpendingInvoice(result.invoice))
return BadRequest(new List<string> { "در وضعیت برگشت از فروش و اصلاحی باید صورتحساب مرجع به سامانه مودیان ارسال شده باشد" });
// if ((result.invoiceType == InvoiceType.BackFrmSale || result.invoiceType == InvoiceType.Repair)
// && !await _servTaxPayer.ExistSuccessfulorSendorpendingInvoice(result.invoice))
// return BadRequest(new List<string> { "در وضعیت برگشت از فروش و اصلاحی باید صورتحساب مرجع به سامانه مودیان ارسال شده باشد" });
if (result.invoiceType == InvoiceType.Cancellation && string.IsNullOrEmpty(result.taxid))
{
return BadRequest(new List<string> { "صورتحساب در وضعیت ابطالی باید صورتحساب مرجع آن به سامانه مودیان ارسال شده باشد" });
// if (result.invoiceType == InvoiceType.Cancellation && string.IsNullOrEmpty(result.taxid))
// {
// return BadRequest(new List<string> { "صورتحساب در وضعیت ابطالی باید صورتحساب مرجع آن به سامانه مودیان ارسال شده باشد" });
}
#region Inital Send
InvoiceHeaderDto header = new InvoiceHeaderDto();
PreparationHeaderTaxInvoice preparation = new PreparationHeaderTaxInvoice(result, _actionTaxPayer);
// }
// #region Inital Send
// InvoiceHeaderDto header = new InvoiceHeaderDto();
// PreparationHeaderTaxInvoice preparation = new PreparationHeaderTaxInvoice(result, _actionTaxPayer);
int level = result.pattern.ID;
// int level = result.pattern.ID;
//header
#region header
header = new InvoiceHeaderDto
{
//شماره منحصر به فرد مالیاتی
Taxid = preparation.Taxid,
//زمان صدور
Indatim = preparation.Indatim,
//زمان ایجاد
Indati2m = preparation.Indati2m,
// صورتحساب نوع *
Inty = preparation.Inty,
//سریال صورت حساب
Inno = preparation.Inno,
//شماره منحصر به فرد مالیاتی صورتحساب مرجع
Irtaxid = preparation.Irtaxid,
//الگوی صورتحساب *
Inp = preparation.Inp,
//موضوع صورتحساب *
Ins = preparation.Ins,
//شماره اقتصادی فروشنده به جاش شناسه ملی داده شد
Tins = preparation.Tins,
//نوع شخص خریدار
Tob = preparation.Tob,
//شماره/شناسه ملی/شناسه مشارکت مدنی / کد فراگیر
Bid = preparation.Bid,
//شماره اقتصادی خریدار
Tinb = preparation.Tinb,
//کد شعبه فروشنده
Sbc = preparation.Sbc,
//کد پستی خریدار
Bpc = preparation.Bpc,
//کد شعبه خریدار
Bbc = preparation.Bbc,
//نوع پرواز
Ft = preparation.Ft,
//شماره گذرنامه خریدار
Bpn = preparation.Bpn,
//شماره پروانه گمرکی
Scln = preparation.Scln,
//کد گمرک محل اظهار فروشنده
Scc = preparation.Scc,
//شماره کدتاژ اظهارنامه گمرکی
Cdcn = preparation.Cdcn,
//تاریخ کوتاژ اظهارنامه گمرکی
Cdcd = preparation.Cdcd,
//شناسه یکتای ثبت قزارداد فروشنده
Crn = preparation.Crn,
//شماره اشتراک/شناسه قبض بهره بردار
Billid = preparation.Billid,
//مجموع مبلغ قبل از کسر تخفیف
Tprdis = preparation.Tprdis,
//مجموع تخفیفات
Tdis = preparation.Tdis,
// مجموع مبلغ پس از کسر تخفیف
Tadis = preparation.Tadis,
//مجموع مالیات بر ارزش افزوده
Tvam = preparation.Tvam,
// مجموع سایر مالیات، عوارض و وجوه قانونی
Todam = preparation.Todam,
//صورتحساب مجموع
Tbill = preparation.Tbill,
//مجموع وزن خالض
Tonw = preparation.Tonw,
//مجموع ارزش ریالی
Torv = preparation.Torv,
//مجموع ارزش ارزی
Tocv = preparation.Tocv,
// تسویه روش
Setm = preparation.Setm,
//نقدی پرداختی مبلغ
Cap = preparation.Cap,
//پرداختی نسیه
Insp = preparation.Insp,
//مجموع سهم مالیات بر ارزش افزوده از پرداخت
Tvop = preparation.Tvop,
//مالیات موضوع 17
Tax17 = preparation.Tax17,
//شماره اقتصادی آژانس
Tinc = preparation.Tinc,
//تاریخ اعلامیه فروش
Asd=null,
//شماره اعلامیه فروش
Asn = null,
//شماره ناوگان
Cno=null,
//شهر مقصد
Dci = null,
//کشور مقصد
Dco = null,
//کد ملی/ کد فراگیر اتباع غیر ایرانی راننده) در حمل و نقل جاده ای(
Did = null,
//شماره بارنامه
Lno = null,
//شماره بارنامه مرجع
Lrno = null,
//نوع بارنامه/ نوع حمل
Lt = null,
//شهر مبدا
Oci = null,
//کشور مبدا
Ocu = null,
//شناسه ملی/ شماره ملی/ شناسه مشارکت مدنی/ کد فراگیر اتباع غیر ایرانی گیرنده
Rid = null,
//کالاهای حمل شده
Sg = new List<ShippingGoodDto>(),
//شناسه ملی/ شماره ملی/ شناسه مشارکت مدنی / کد فراگیر اتباع غیر ایرانی فرستنده
Tid =null
// //header
// #region header
// header = new InvoiceHeaderDto
// {
// //شماره منحصر به فرد مالیاتی
// Taxid = preparation.Taxid,
// //زمان صدور
// Indatim = preparation.Indatim,
// //زمان ایجاد
// Indati2m = preparation.Indati2m,
// // صورتحساب نوع *
// Inty = preparation.Inty,
// //سریال صورت حساب
// Inno = preparation.Inno,
// //شماره منحصر به فرد مالیاتی صورتحساب مرجع
// Irtaxid = preparation.Irtaxid,
// //الگوی صورتحساب *
// Inp = preparation.Inp,
// //موضوع صورتحساب *
// Ins = preparation.Ins,
// //شماره اقتصادی فروشنده به جاش شناسه ملی داده شد
// Tins = preparation.Tins,
// //نوع شخص خریدار
// Tob = preparation.Tob,
// //شماره/شناسه ملی/شناسه مشارکت مدنی / کد فراگیر
// Bid = preparation.Bid,
// //شماره اقتصادی خریدار
// Tinb = preparation.Tinb,
// //کد شعبه فروشنده
// Sbc = preparation.Sbc,
// //کد پستی خریدار
// Bpc = preparation.Bpc,
// //کد شعبه خریدار
// Bbc = preparation.Bbc,
// //نوع پرواز
// Ft = preparation.Ft,
// //شماره گذرنامه خریدار
// Bpn = preparation.Bpn,
// //شماره پروانه گمرکی
// Scln = preparation.Scln,
// //کد گمرک محل اظهار فروشنده
// Scc = preparation.Scc,
// //شماره کدتاژ اظهارنامه گمرکی
// Cdcn = preparation.Cdcn,
// //تاریخ کوتاژ اظهارنامه گمرکی
// Cdcd = preparation.Cdcd,
// //شناسه یکتای ثبت قزارداد فروشنده
// Crn = preparation.Crn,
// //شماره اشتراک/شناسه قبض بهره بردار
// Billid = preparation.Billid,
// //مجموع مبلغ قبل از کسر تخفیف
// Tprdis = preparation.Tprdis,
// //مجموع تخفیفات
// Tdis = preparation.Tdis,
// // مجموع مبلغ پس از کسر تخفیف
// Tadis = preparation.Tadis,
// //مجموع مالیات بر ارزش افزوده
// Tvam = preparation.Tvam,
// // مجموع سایر مالیات، عوارض و وجوه قانونی
// Todam = preparation.Todam,
// //صورتحساب مجموع
// Tbill = preparation.Tbill,
// //مجموع وزن خالض
// Tonw = preparation.Tonw,
// //مجموع ارزش ریالی
// Torv = preparation.Torv,
// //مجموع ارزش ارزی
// Tocv = preparation.Tocv,
// // تسویه روش
// Setm = preparation.Setm,
// //نقدی پرداختی مبلغ
// Cap = preparation.Cap,
// //پرداختی نسیه
// Insp = preparation.Insp,
// //مجموع سهم مالیات بر ارزش افزوده از پرداخت
// Tvop = preparation.Tvop,
// //مالیات موضوع 17
// Tax17 = preparation.Tax17,
// //شماره اقتصادی آژانس
// Tinc = preparation.Tinc,
// //تاریخ اعلامیه فروش
// Asd=null,
// //شماره اعلامیه فروش
// Asn = null,
// //شماره ناوگان
// Cno=null,
// //شهر مقصد
// Dci = null,
// //کشور مقصد
// Dco = null,
// //کد ملی/ کد فراگیر اتباع غیر ایرانی راننده) در حمل و نقل جاده ای(
// Did = null,
// //شماره بارنامه
// Lno = null,
// //شماره بارنامه مرجع
// Lrno = null,
// //نوع بارنامه/ نوع حمل
// Lt = null,
// //شهر مبدا
// Oci = null,
// //کشور مبدا
// Ocu = null,
// //شناسه ملی/ شماره ملی/ شناسه مشارکت مدنی/ کد فراگیر اتباع غیر ایرانی گیرنده
// Rid = null,
// //کالاهای حمل شده
// Sg = new List<ShippingGoodDto>(),
// //شناسه ملی/ شماره ملی/ شناسه مشارکت مدنی / کد فراگیر اتباع غیر ایرانی فرستنده
// Tid =null
};
#endregion header
// };
// #endregion header
//body
List<InvoiceBodyDto> InvoiceBody = new List<InvoiceBodyDto>();
foreach (var bitem in result.invoiceDetails)
{
InvoiceBodyDto item = new InvoiceBodyDto();
PreparationBodyTaxInvoice preparationBody = new PreparationBodyTaxInvoice(bitem, level);
#region body
// //body
// List<InvoiceBodyDto> InvoiceBody = new List<InvoiceBodyDto>();
// foreach (var bitem in result.invoiceDetails)
// {
// InvoiceBodyDto item = new InvoiceBodyDto();
// PreparationBodyTaxInvoice preparationBody = new PreparationBodyTaxInvoice(bitem, level);
// #region body
item = new InvoiceBodyDto
{
//شناسه کالا / خدمت
Sstid = preparationBody.Sstid,
//شرح کاال/خدمت
Sstt = preparationBody.Sstt,
// تعداد
Am = preparationBody.Am,
//واحد اندازه گیری
Mu = preparationBody.Mu,
//وزن خالص
Nw= preparationBody.Nw,
// مبلغ واحد
Fee = preparationBody.Fee,
//میزان ارز
Cfee = preparationBody.Cfee ,
//نوع ارز
Cut = preparationBody.Cut,
//نرخ برابری ارز با ریال
Exr = preparationBody.Exr,
// ارزش ریالی کاا
Ssrv= preparationBody.Ssrv,
// ارزش ارزی کاا
Sscv= preparationBody.Sscv,
//مبلغ قبل از تخفیف
Prdis = preparationBody.Prdis,
//مبلغ تخفیف
Dis = preparationBody.Dis,
//مبلغ بعد از تخفیف
Adis = preparationBody.Adis,
//نرخ مالیات بر ارزش افزوده
Vra = preparationBody.Vra,
//مبلغ مالیات بر ارزش افزوده
Vam = preparationBody.Vam,
//موضوع سایر مالیات و عوارض
Odt = preparationBody.Odt,
//نرخ سایر مالیات و عوارض
Odr = preparationBody.Odr,
//مبلغ سایر مالیات و عوارض
Odam = preparationBody.Odam,
//موضوع سایر وجوه قانونی
Olt = preparationBody.Olt,
//نرخ سایر وجوه قانونی
Olr = preparationBody.Olr,
//مبلغ سایر وجوه قانونی
Olam = preparationBody.Olam,
//اجرت ساخت
Consfee = preparationBody.Consfee,
// سود فروشنده
Spro= preparationBody.Spro,
//حقالعمل
Bros= preparationBody.Bros,
//جمع کل اجرت، حقالعمل و سود
Tcpbs= preparationBody.Tcpbs,
//سهم نقدی از پرداخت
Cop = preparationBody.Cop,
//سهم مالیات بر لرزش افزوده از پرداخت
Vop = preparationBody.Vop,
//شناسه یکتای ثبت قرارداد حق العمل کاری
Bsrn = preparationBody.Bsrn,
// مبلغ کل کالا / خدمت
Tsstam = preparationBody.Tsstam,
//عیار
Cui = preparationBody.Cui,
// نرخ خرید ارز
Cpr = preparationBody.Cpr,
//ماخذ مالیات بر ارزش افزوده در الگوی فروش ارز
Sovat = preparationBody.Sovat
};
#endregion
InvoiceBody.Add(item);
}
// item = new InvoiceBodyDto
// {
// //شناسه کالا / خدمت
// Sstid = preparationBody.Sstid,
// //شرح کاال/خدمت
// Sstt = preparationBody.Sstt,
// // تعداد
// Am = preparationBody.Am,
// //واحد اندازه گیری
// Mu = preparationBody.Mu,
// //وزن خالص
// Nw= preparationBody.Nw,
// // مبلغ واحد
// Fee = preparationBody.Fee,
// //میزان ارز
// Cfee = preparationBody.Cfee ,
// //نوع ارز
// Cut = preparationBody.Cut,
// //نرخ برابری ارز با ریال
// Exr = preparationBody.Exr,
// // ارزش ریالی کاا
// Ssrv= preparationBody.Ssrv,
// // ارزش ارزی کاا
// Sscv= preparationBody.Sscv,
// //مبلغ قبل از تخفیف
// Prdis = preparationBody.Prdis,
// //مبلغ تخفیف
// Dis = preparationBody.Dis,
// //مبلغ بعد از تخفیف
// Adis = preparationBody.Adis,
// //نرخ مالیات بر ارزش افزوده
// Vra = preparationBody.Vra,
// //مبلغ مالیات بر ارزش افزوده
// Vam = preparationBody.Vam,
// //موضوع سایر مالیات و عوارض
// Odt = preparationBody.Odt,
// //نرخ سایر مالیات و عوارض
// Odr = preparationBody.Odr,
// //مبلغ سایر مالیات و عوارض
// Odam = preparationBody.Odam,
// //موضوع سایر وجوه قانونی
// Olt = preparationBody.Olt,
// //نرخ سایر وجوه قانونی
// Olr = preparationBody.Olr,
// //مبلغ سایر وجوه قانونی
// Olam = preparationBody.Olam,
// //اجرت ساخت
// Consfee = preparationBody.Consfee,
// // سود فروشنده
// Spro= preparationBody.Spro,
// //حقالعمل
// Bros= preparationBody.Bros,
// //جمع کل اجرت، حقالعمل و سود
// Tcpbs= preparationBody.Tcpbs,
// //سهم نقدی از پرداخت
// Cop = preparationBody.Cop,
// //سهم مالیات بر لرزش افزوده از پرداخت
// Vop = preparationBody.Vop,
// //شناسه یکتای ثبت قرارداد حق العمل کاری
// Bsrn = preparationBody.Bsrn,
// // مبلغ کل کالا / خدمت
// Tsstam = preparationBody.Tsstam,
// //عیار
// Cui = preparationBody.Cui,
// // نرخ خرید ارز
// Cpr = preparationBody.Cpr,
// //ماخذ مالیات بر ارزش افزوده در الگوی فروش ارز
// Sovat = preparationBody.Sovat
// };
// #endregion
// InvoiceBody.Add(item);
// }
//Pay
List<PaymentDto> InvoicePay = new List<PaymentDto>();
if (result.setm==1 || result.setm == 3)
{
if (level != 10)
foreach (var pitem in result.payments)
{
// //Pay
// List<PaymentDto> InvoicePay = new List<PaymentDto>();
// if (result.setm==1 || result.setm == 3)
// {
// if (level != 10)
// foreach (var pitem in result.payments)
// {
PaymentDto payment = new PaymentDto();
payment = new PaymentDto
{
Iinn = pitem.iinn,
Acn = pitem.acn,
Trmn = pitem.trmn,
Pmt = pitem.pmt,
Trn = pitem.trn,
Pcn = pitem.pcn,
Pid = pitem.pid,
Pdt = pitem.pdt,
Pv = pitem.pv,
// PaymentDto payment = new PaymentDto();
// payment = new PaymentDto
// {
// Iinn = pitem.iinn,
// Acn = pitem.acn,
// Trmn = pitem.trmn,
// Pmt = pitem.pmt,
// Trn = pitem.trn,
// Pcn = pitem.pcn,
// Pid = pitem.pid,
// Pdt = pitem.pdt,
// Pv = pitem.pv,
};
// };
InvoicePay.Add(payment);
}
}
// InvoicePay.Add(payment);
// }
// }
var responseModel = await _actionTaxPayer.SendInvoice(user.RolUsers.First().CompanyID, header, InvoiceBody, InvoicePay);
if (responseModel == null)
{
return BadRequest(new List<string> { "خطا در ورود به سامانه مودیان" });
}
else if (responseModel.Status == 200 && (responseModel.Body.Errors == null || responseModel.Body.Errors.Count == 0))
{
foreach (var item in responseModel.Body.Result)
{
// var responseModel = await _actionTaxPayer.SendInvoice(user.RolUsers.First().CompanyID, header, InvoiceBody, InvoicePay);
// if (responseModel == null)
// {
// return BadRequest(new List<string> { "خطا در ورود به سامانه مودیان" });
// }
// else if (responseModel.Status == 200 && (responseModel.Body.Errors == null || responseModel.Body.Errors.Count == 0))
// {
// foreach (var item in responseModel.Body.Result)
// {
var ressenttax = new SentTax
{
InvoiceID = result.ID,
Date = DateTime.Now.ConvertMiladiToShamsi(),
Time = $"{DateTime.Now.Hour}:{DateTime.Now.Minute}:{DateTime.Now.Second}",
InvoiceType = result.invoiceType,
ReferenceNumber = item.ReferenceNumber,
uId = item.Uid,
SentStatus = SentStatus.Send,
InvoiceModel = JsonConvert.SerializeObject(result, Formatting.Indented, new JsonSerializerSettings
{
PreserveReferencesHandling = PreserveReferencesHandling.Objects
}),
ResponseModel = JsonConvert.SerializeObject(responseModel)
// var ressenttax = new SentTax
// {
// InvoiceID = result.ID,
// Date = DateTime.Now.ConvertMiladiToShamsi(),
// Time = $"{DateTime.Now.Hour}:{DateTime.Now.Minute}:{DateTime.Now.Second}",
// InvoiceType = result.invoiceType,
// ReferenceNumber = item.ReferenceNumber,
// uId = item.Uid,
// SentStatus = SentStatus.Send,
// InvoiceModel = JsonConvert.SerializeObject(result, Formatting.Indented, new JsonSerializerSettings
// {
// PreserveReferencesHandling = PreserveReferencesHandling.Objects
// }),
// ResponseModel = JsonConvert.SerializeObject(responseModel)
};
await _servTaxPayer.AddSentTax(ressenttax);
}
result.taxid = header.Taxid;
result.irtaxid = header.Irtaxid;
return Ok(await _servTaxPayer.UpdateInvoice(result));
}
else
{
string errors = "";
foreach (var item in responseModel.Body.Errors)
errors += '\n' + $"{item.ErrorCode}:{item.Detail}";
// };
// await _servTaxPayer.AddSentTax(ressenttax);
// }
// result.taxid = header.Taxid;
// result.irtaxid = header.Irtaxid;
// return Ok(await _servTaxPayer.UpdateInvoice(result));
// }
// else
// {
// string errors = "";
// foreach (var item in responseModel.Body.Errors)
// errors += '\n' + $"{item.ErrorCode}:{item.Detail}";
return BadRequest(new List<string> { errors });
}
// return BadRequest(new List<string> { errors });
// }
#endregion
// #endregion
}
//}
}
[HttpPost("GetAllSentTax")]
public async Task<ActionResult<PagingDto<SentTaxDto>>> GetSentTax([FromBody] ItemSerchGetSentTax item)
@@ -484,88 +476,90 @@ namespace Back.Controllers
[HttpGet("GetResult/{ID}")]
public async Task<ActionResult<DataInSendTaxDto>> GetResultByUid(int ID)
{
try
{
var claim = HttpContext.User.Claims.First(c => c.Type == "UserID");
var UserID = claim.Value;
var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
var item = await _servTaxPayer.GetSentTax(user.RolUsers.First().CompanyID, ID);
if (item == null)
return BadRequest(new List<string> { "یافت نشد" });
return BadRequest(new List<string> { "در حال حاضر سامانه مودیان در دسترس نمی باشد" });
if (string.IsNullOrEmpty(item.uId))
return BadRequest(new List<string> { "کد پیگیری یافت نشد" });
//try
//{
// var claim = HttpContext.User.Claims.First(c => c.Type == "UserID");
// var UserID = claim.Value;
// var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
// var item = await _servTaxPayer.GetSentTax(user.RolUsers.First().CompanyID, ID);
// if (item == null)
// return BadRequest(new List<string> { "یافت نشد" });
if (!await _actionTaxPayer.login(user.RolUsers.First().CompanyID))
return BadRequest(new List<string> { "خطا در احراز هویت سازمان مالیاتی" });
// if (string.IsNullOrEmpty(item.uId))
// return BadRequest(new List<string> { "کد پیگیری یافت نشد" });
DataInSendTaxDto desData = new DataInSendTaxDto();
// if (!await _actionTaxPayer.login(user.RolUsers.First().CompanyID))
// return BadRequest(new List<string> { "خطا در احراز هویت سازمان مالیاتی" });
// DataInSendTaxDto desData = new DataInSendTaxDto();
if (item.SentStatus == SentStatus.Unsuccessful && !string.IsNullOrEmpty(item.ErrorsModel))
{
List<MessageInSendTaxDto> inquiryerrorResult = JsonConvert.DeserializeObject<List<MessageInSendTaxDto>>(item.ErrorsModel);
// if (item.SentStatus == SentStatus.Unsuccessful && !string.IsNullOrEmpty(item.ErrorsModel))
// {
// List<MessageInSendTaxDto> inquiryerrorResult = JsonConvert.DeserializeObject<List<MessageInSendTaxDto>>(item.ErrorsModel);
InquiryResultModel inquiryResult = JsonConvert.DeserializeObject<InquiryResultModel>(item.InquiryResultModel);
if (inquiryResult.Data != null)
{
// InquiryResultModel inquiryResult = JsonConvert.DeserializeObject<InquiryResultModel>(item.InquiryResultModel);
// if (inquiryResult.Data != null)
// {
desData = new DataInSendTaxDto();
desData.SentStatus = SentStatus.Unsuccessful;
desData.error = inquiryerrorResult;
// desData = new DataInSendTaxDto();
// desData.SentStatus = SentStatus.Unsuccessful;
// desData.error = inquiryerrorResult;
}
return Ok(desData);
}
else if (item.SentStatus == SentStatus.Send
|| item.SentStatus == SentStatus.pending
|| item.SentStatus == SentStatus.IN_PROGRESS
|| item.SentStatus == SentStatus.Unsuccessful)
{
// }
// return Ok(desData);
// }
// else if (item.SentStatus == SentStatus.Send
// || item.SentStatus == SentStatus.pending
// || item.SentStatus == SentStatus.IN_PROGRESS
// || item.SentStatus == SentStatus.Unsuccessful)
// {
//ta imja
var result = await _actionTaxPayer.GetResultByUid(user.RolUsers.First().CompanyID, item.uId);
if (result == null)
return BadRequest(new List<string> { "پاسخی از سازمان دریافت نشد" });
// //ta imja
// var result = await _actionTaxPayer.GetResultByUid(user.RolUsers.First().CompanyID, item.uId);
// if (result == null)
// return BadRequest(new List<string> { "پاسخی از سازمان دریافت نشد" });
else
{
item.InquiryResultModel = JsonConvert.SerializeObject(result);
if (result.Data != null)
{
desData = JsonConvert.DeserializeObject<DataInSendTaxDto>(result.Data.ToString());
if (desData == null)
{
desData = new DataInSendTaxDto();
desData.error = JsonConvert.DeserializeObject<List<MessageInSendTaxDto>>(result.Data.ToString());
}
}
// else
// {
// item.InquiryResultModel = JsonConvert.SerializeObject(result);
// if (result.Data != null)
// {
// desData = JsonConvert.DeserializeObject<DataInSendTaxDto>(result.Data.ToString());
// if (desData == null)
// {
// desData = new DataInSendTaxDto();
// desData.error = JsonConvert.DeserializeObject<List<MessageInSendTaxDto>>(result.Data.ToString());
// }
// }
desData.SentStatus = item.SentStatus =
result.Status == "FAILED" ? SentStatus.Unsuccessful
: result.Status == "PENDING" ? SentStatus.pending
: result.Status == "SUCCESS" ? SentStatus.Successful
: result.Status == "NOT_FOUND" ? SentStatus.NOT_FOUND
: result.Status == "IN_PROGRESS" ? SentStatus.IN_PROGRESS
: SentStatus.Unknown;
// desData.SentStatus = item.SentStatus =
// result.Status == "FAILED" ? SentStatus.Unsuccessful
// : result.Status == "PENDING" ? SentStatus.pending
// : result.Status == "SUCCESS" ? SentStatus.Successful
// : result.Status == "NOT_FOUND" ? SentStatus.NOT_FOUND
// : result.Status == "IN_PROGRESS" ? SentStatus.IN_PROGRESS
// : SentStatus.Unknown;
if (item.SentStatus == SentStatus.Unsuccessful)
item.ErrorsModel = JsonConvert.SerializeObject(desData.error);
}
// if (item.SentStatus == SentStatus.Unsuccessful)
// item.ErrorsModel = JsonConvert.SerializeObject(desData.error);
// }
if (await _servTaxPayer.UpdateSentTax(item)) return Ok(desData);
// if (await _servTaxPayer.UpdateSentTax(item)) return Ok(desData);
else return BadRequest(new List<string> { "خطای در ذخیره سازی" });
}
return BadRequest(new List<string> { "در این وضعیت امکان پذیر نمی باشد" });
}
catch (Exception ex)
{
return BadRequest(new List<string> { "خطای ناشناخته" });
}
// else return BadRequest(new List<string> { "خطای در ذخیره سازی" });
// }
// return BadRequest(new List<string> { "در این وضعیت امکان پذیر نمی باشد" });
//}
//catch (Exception ex)
//{
// return BadRequest(new List<string> { "خطای ناشناخته" });
//}
}
[HttpGet("GetBillTypes")]
public async Task<ActionResult<List<IdName<int>>>> GetBillTypes()
@@ -585,26 +579,30 @@ namespace Back.Controllers
[HttpGet("EconomicCodeInformation")]
public async Task<ActionResult<EconomicCodeModelDto>> GetEconomicCodeInformation(string item)
{
var claim = HttpContext.User.Claims.First(c => c.Type == "UserID");
var UserID = claim.Value;
var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
if (!await _actionTaxPayer.login(user.RolUsers.First().CompanyID))
return BadRequest(new List<string> { "خطا در احراز هویت سازمان مالیاتی" });
var result=await _actionTaxPayer.GetEconomicCodeInformation(item);
if (result == null) return NotFound();
return Ok(result);
return BadRequest(new List<string> { "در حال حاضر سامانه مودیان در دسترس نمی باشد" });
//var claim = HttpContext.User.Claims.First(c => c.Type == "UserID");
//var UserID = claim.Value;
//var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
//if (!await _actionTaxPayer.login(user.RolUsers.First().CompanyID))
// return BadRequest(new List<string> { "خطا در احراز هویت سازمان مالیاتی" });
//var result=await _actionTaxPayer.GetEconomicCodeInformation(item);
//if (result == null) return NotFound();
//return Ok(result);
}
[HttpGet("FiscalInformation")]
public async Task<ActionResult<FiscalInformationModelDto>> GetFiscalInformation(string item)
{
var claim = HttpContext.User.Claims.First(c => c.Type == "UserID");
var UserID = claim.Value;
var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
if (!await _actionTaxPayer.login(user.RolUsers.First().CompanyID))
return BadRequest(new List<string> { "خطا در احراز هویت سازمان مالیاتی" });
var result=await _actionTaxPayer.GetFiscalInformation(item);
if (result == null) return NotFound();
return Ok(result);
return BadRequest(new List<string> { "در حال حاضر سامانه مودیان در دسترس نمی باشد" });
//var claim = HttpContext.User.Claims.First(c => c.Type == "UserID");
//var UserID = claim.Value;
//var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
//if (!await _actionTaxPayer.login(user.RolUsers.First().CompanyID))
// return BadRequest(new List<string> { "خطا در احراز هویت سازمان مالیاتی" });
//var result=await _actionTaxPayer.GetFiscalInformation(item);
//if (result == null) return NotFound();
//return Ok(result);
}
[HttpGet("CodInTaxPayerHaveBeenSentSuccessfully/{CODID}")]
public async Task<ActionResult<bool>> CodInTaxPayerHaveBeenSentSuccessfully(int CODID)