Esempio n. 1
0
        public ActionResult Form941Return(bool?id)
        {
            Form941Data form941      = new Form941Data();
            bool        _prePopulate = id ?? false;

            if (_prePopulate)
            {
                PrePopulate(form941);
            }
            return(View(form941));
        }
Esempio n. 2
0
        /// <summary>
        /// Pre Populate date
        /// </summary>
        /// <param name="form941"></param>
        private static void PrePopulate(Form941Data form941)
        {
            //Mapping Form 941
            form941.Sequence = "Record1";
            form941.RecordId = null;
            //Mapping Return Header
            form941.ReturnHeader = new Form941ReturnHeader
            {
                ReturnType = null,
                Qtr        = "Q1",
                TaxYr      = "2018",
                Business   = new Business
                {
                    BusinessId           = null,
                    BusinessNm           = "Test Business",
                    EINorSSN             = "003333330",
                    IsEIN                = true,
                    BusinessType         = "ESTE",
                    ContactNm            = "John Doe",
                    Email                = "*****@*****.**",
                    Fax                  = "1234567890",
                    TradeNm              = "Kodak",
                    IsBusinessTerminated = false,
                    Phone                = "1234566890",
                    PhoneExtn            = "12345",
                    IsForeign            = false,
                    USAddress            = new USAddress
                    {
                        Address1 = "Address Line 1",
                        City     = "Rockhill",
                        State    = "SC",
                        ZipCd    = "29730"
                    },
                    SigningAuthority = new DotNetCoreSDK.Models.Base.SigningAuthority
                    {
                        BusinessMemberType = "ADMINISTRATOR",
                        Phone = "1234564390",
                        Name  = "John"
                    },
                    KindOfEmployer = null,
                    KindOfPayer    = null,
                    ForeignAddress = null,
                },
                BusinessStatusDetails = new BusinessStatusDetails
                {
                    IsBusinessClosed           = false,
                    IsBusinessTransferred      = false,
                    IsSeasonalEmployer         = false,
                    BusinessClosedDetails      = null,
                    BusinessTransferredDetails = null
                },
                IsThirdPartyDesignee = true,
                ThirdPartyDesignee   = new ThirdPartyDesignee
                {
                    Name  = "John Doe",
                    Phone = "1234567890",
                    PIN   = "12345"
                },
                SignatureDetails = new SignatureDetails
                {
                    SignatureType     = "REPORTING_AGENT",
                    ReportingAgentPIN = new ReportingAgentPIN {
                        PIN = "12345"
                    }
                }
            };

            //Mapping Return Data
            form941.ReturnData = new Form941ReturnData
            {
                DepositScheduleType = new DepositScheduleType
                {
                    DepositorType        = DepositorType.MINTAXLIABILITY.ToString(),
                    TaxLiabilityTotalAmt = 200M
                },
                Form941 = new Form941Details
                {
                    EmployeeCnt                 = 3,
                    WagesAmt                    = 5750M,
                    FedIncomeTaxWHAmt           = 130M,
                    WagesNotSubjToSSMedcrTaxInd = true,
                    Line5aInitialAmt            = 564.51M,
                    Line5bInitialAmt            = 0M,
                    Line5cInitialAmt            = 0M,
                    Line5dInitialAmt            = 0M,
                    Line5a = 70M,
                    Line5b = 0M,
                    Line5c = 0M,
                    Line5d = 0M,
                    Line5e = 70M,
                    TaxOnUnreportedTips3121qAmt    = 0M,
                    CurrentQtrFractionsCentsAmt    = 0M,
                    CurrentQuarterSickPaymentAmt   = 0M,
                    CurrQtrTipGrpTermLifeInsAdjAmt = 0M,
                    Line12           = 200M,
                    Line11a          = 0M,
                    Line14           = 0M,
                    Line15           = 0M,
                    Line6            = 200M,
                    Line10           = 200M,
                    TotTaxDepositAmt = 200M
                }
            };
        }
Esempio n. 3
0
        public ActionResult CreateForm941(Form941Data form941)
        {
            var responseJson = string.Empty;

            form941.Sequence = Constants.Sequence;
            form941.RecordId = null;
            form941.ReturnHeader.ReturnType               = Constants.ReturnType;
            form941.ReturnHeader.Business.IsEIN           = true;
            form941.ReturnHeader.Business.IsForeign       = false;
            form941.ReturnData.Form941.IsPayrollTaxCredit = false;
            if (form941?.ReturnHeader?.ThirdPartyDesignee != null && (!string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.Name) || !string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.Phone) || !string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.PIN)))
            {
                form941.ReturnHeader.IsThirdPartyDesignee = true;
            }
            if (form941?.ReturnHeader?.BusinessStatusDetails != null)
            {
                if (form941.ReturnHeader.BusinessStatusDetails.IsBusinessClosed == false)
                {
                    form941.ReturnHeader.BusinessStatusDetails.BusinessClosedDetails = new BusinessClosedDetails();
                }
                if (form941.ReturnHeader.BusinessStatusDetails.IsBusinessTransferred == false)
                {
                    form941.ReturnHeader.BusinessStatusDetails.BusinessTransferredDetails = new BusinessTransferredDetails();
                }
            }

            var form941Response   = new Form941CreateReturnResponse();
            var form941ReturnList = new Form941CreateReturnRequest {
                Form941Records = new List <Form941Data>()
            };

            form941ReturnList.Form941Records.Add(form941);
            string ApiUrl = Utility.GetAppSettings(Constants.PublicAPIUrlWithJWT);
            // Generate JSON for Form 941
            var requestJson = JsonConvert.SerializeObject(form941ReturnList, Formatting.Indented);
            //Get Access token from OAuth API response
            GetAccessToken AccessToken          = new GetAccessToken(HttpContext);
            string         GeneratedAccessToken = AccessToken.GetGeneratedAccessToken();

            if (!string.IsNullOrWhiteSpace(GeneratedAccessToken))
            {
                using (var apiClient = new HttpClient())
                {
                    //API URL to Create Form 941 Return
                    string requestUri = "Form941/Create";
                    apiClient.BaseAddress = new Uri(ApiUrl);
                    //Construct HTTP headers in Generated Token.
                    OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, GeneratedAccessToken);
                    //Post Response
                    var apiResponse = apiClient.PostAsJsonAsync(requestUri, form941ReturnList).Result;
                    if (apiResponse != null && apiResponse.IsSuccessStatusCode)
                    {
                        //Read Response
                        var createResponse = apiResponse.Content.ReadAsAsync <Form941CreateReturnResponse>().Result;
                        if (createResponse != null)
                        {
                            responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                            //Deserializing JSON (Success Response) to Form941CreateReturnResponse object
                            form941Response = new JavaScriptSerializer().Deserialize <Form941CreateReturnResponse>(responseJson);
                        }
                    }
                    else
                    {
                        var createResponse = apiResponse.Content.ReadAsAsync <Object>().Result;
                        responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);

                        //Deserializing JSON (Error Response) to Form941CreateReturnResponse object
                        form941Response = new JavaScriptSerializer().Deserialize <Form941CreateReturnResponse>(responseJson);
                    }
                }
            }
            return(PartialView("APIResponseStatus", form941Response));
        }
        public ActionResult APIResponseStatus(Form941Data form941)
        {
            //Hardcoded values for Sequence
            var responseJson = string.Empty;

            form941.Sequence = "Record1";
            form941.RecordId = null;
            form941.ReturnHeader.ReturnType         = null;
            form941.ReturnHeader.Business.IsEIN     = true;
            form941.ReturnHeader.Business.IsForeign = false;

            if (form941?.ReturnHeader?.ThirdPartyDesignee != null && (!string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.Name) || !string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.Phone) || !string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.PIN)))
            {
                form941.ReturnHeader.IsThirdPartyDesignee = true;
            }

            if (form941?.ReturnHeader?.BusinessStatusDetails != null)
            {
                if (form941.ReturnHeader.BusinessStatusDetails.IsBusinessClosed == false)
                {
                    form941.ReturnHeader.BusinessStatusDetails.BusinessClosedDetails = new BusinessClosedDetails();
                }
                if (form941.ReturnHeader.BusinessStatusDetails.IsBusinessTransferred == false)
                {
                    form941.ReturnHeader.BusinessStatusDetails.BusinessTransferredDetails = new BusinessTransferredDetails();
                }
            }

            var form941Response   = new Form941CreateReturnResponse();
            var form941ReturnList = new Form941CreateReturnRequest {
                Form941Records = new List <Form941Data>()
            };

            form941ReturnList.Form941Records.Add(form941);

            // Generate JSON for Form 941
            var    requestJson = JsonConvert.SerializeObject(form941ReturnList, Formatting.Indented);
            string authType    = Utility.GetAppSettings("AuthenticationType");

            if (!string.IsNullOrWhiteSpace(authType) && authType.ToUpper() == "JWT")
            {
                //Get URLs from App.Config
                string oAuthApiUrl = Utility.GetAppSettings("OAuthApiUrl");
                string apiUrl      = Utility.GetAppSettings("PublicAPIUrlWithJWT");

                //Call OAuth API
                using (var oAuthClient = new HttpClient())
                {
                    string oAuthRequestUri = Utility.GetAppSettings("OAuthApiMethodRoute");
                    oAuthClient.BaseAddress = new Uri(oAuthApiUrl);

                    //Generate JWS and get access token (JWT)
                    OAuthGenerator.GenerateJWSAndGetAccessToken(oAuthClient);

                    //Read OAuth API response
                    var response = oAuthClient.GetAsync(oAuthRequestUri).Result;
                    if (response != null && response.IsSuccessStatusCode)
                    {
                        var oauthApiResponse = response.Content.ReadAsAsync <AccessTokenResponse>().Result;
                        if (oauthApiResponse != null && oauthApiResponse.StatusCode == 200)
                        {
                            //Get Access token from OAuth API response
                            string accessToken = oauthApiResponse.AccessToken;
                            //Access token is valid for one hour. After that call OAuth API again & get new Access token.

                            if (!string.IsNullOrWhiteSpace(accessToken))
                            {
                                //Call TaxBandits API using the Access token
                                //Access token is valid for one hour. After that call OAuth API again & get new Access token.
                                using (var apiClient = new HttpClient())
                                {
                                    //API URL to Create Form 941 Return
                                    string requestUri = "Form941/Create";

                                    apiClient.BaseAddress = new Uri(apiUrl);

                                    //Construct HTTP headers
                                    //If Access token got expired, call OAuth API again & get new Access token.
                                    OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, accessToken);

                                    //Get Response
                                    var apiResponse = apiClient.PostAsJsonAsync(requestUri, form941ReturnList).Result;
                                    if (apiResponse != null && response.IsSuccessStatusCode)
                                    {
                                        //Read Response
                                        var createResponse = apiResponse.Content.ReadAsAsync <Form941CreateReturnResponse>().Result;
                                        if (createResponse != null)
                                        {
                                            responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                                            //Deserializing JSON (Success Response) to Form941CreateReturnResponse object
                                            form941Response = new JavaScriptSerializer().Deserialize <Form941CreateReturnResponse>(responseJson);
                                            if (form941Response.SubmissionId != null && form941Response.SubmissionId != Guid.Empty)
                                            {
                                                //Adding Form941CreateReturnResponse Response to Session
                                                APISession.AddForm941APIResponse(form941Response);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        var createResponse = apiResponse.Content.ReadAsAsync <Object>().Result;
                                        responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);

                                        //Deserializing JSON (Error Response) to Form941CreateReturnResponse object
                                        form941Response = new JavaScriptSerializer().Deserialize <Form941CreateReturnResponse>(responseJson);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                using (var client = new PublicAPIClient())
                {
                    //API URL to Create Form 941 Return
                    string requestUri = "Form941/Create";

                    //POST
                    APIGenerateAuthHeader.GenerateAuthHeader(client, requestUri, HttpMethod.Post.ToString());

                    //Get Response
                    var response = client.PostAsJsonAsync(requestUri, form941ReturnList).Result;
                    if (response != null && response.IsSuccessStatusCode)
                    {
                        //Read Response
                        var createResponse = response.Content.ReadAsAsync <Form941CreateReturnResponse>().Result;
                        if (createResponse != null)
                        {
                            responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                            //Deserializing JSON (Success Response) to Form941CreateReturnResponse object
                            form941Response = new JavaScriptSerializer().Deserialize <Form941CreateReturnResponse>(responseJson);
                            if (form941Response.SubmissionId != null && form941Response.SubmissionId != Guid.Empty)
                            {
                                //Adding Form941CreateReturnResponse Response to Session
                                APISession.AddForm941APIResponse(form941Response);
                            }
                        }
                    }
                    else
                    {
                        var createResponse = response.Content.ReadAsAsync <Object>().Result;
                        responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);

                        //Deserializing JSON (Error Response) to Form941CreateReturnResponse object
                        form941Response = new JavaScriptSerializer().Deserialize <Form941CreateReturnResponse>(responseJson);
                    }
                }
            }

            return(PartialView(form941Response));
        }
        public ActionResult APIResponseStatus(Form941Data form941)
        {
            //Hardcoded values for Sequence
            var responseJson = string.Empty;

            form941.Sequence = "Record1";
            form941.RecordId = null;
            form941.ReturnHeader.ReturnType         = null;
            form941.ReturnHeader.Business.IsEIN     = true;
            form941.ReturnHeader.Business.IsForeign = false;

            if (form941?.ReturnHeader?.ThirdPartyDesignee != null && (!string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.Name) || !string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.Phone) || !string.IsNullOrEmpty(form941.ReturnHeader.ThirdPartyDesignee.PIN)))
            {
                form941.ReturnHeader.IsThirdPartyDesignee = true;
            }

            if (form941?.ReturnHeader?.BusinessStatusDetails != null)
            {
                if (form941.ReturnHeader.BusinessStatusDetails.IsBusinessClosed == false)
                {
                    form941.ReturnHeader.BusinessStatusDetails.BusinessClosedDetails = new BusinessClosedDetails();
                }
                if (form941.ReturnHeader.BusinessStatusDetails.IsBusinessTransferred == false)
                {
                    form941.ReturnHeader.BusinessStatusDetails.BusinessTransferredDetails = new BusinessTransferredDetails();
                }
            }

            var form941Response   = new Form941CreateReturnResponse();
            var form941ReturnList = new Form941CreateReturnRequest {
                Form941Records = new List <Form941Data>()
            };

            form941ReturnList.Form941Records.Add(form941);

            // Generate JSON for Form 941
            var requestJson = JsonConvert.SerializeObject(form941ReturnList, Formatting.Indented);

            using (var client = new PublicAPIClient())
            {
                //API URL to Create Form 941 Return
                string requestUri = "Form941/Create";

                //POST
                APIGenerateAuthHeader.GenerateAuthHeader(client, requestUri, HttpMethod.Post.ToString());

                //Get Response
                var response = client.PostAsJsonAsync(requestUri, form941ReturnList).Result;
                if (response != null && response.IsSuccessStatusCode)
                {
                    //Read Response
                    var createResponse = response.Content.ReadAsAsync <Form941CreateReturnResponse>().Result;
                    if (createResponse != null)
                    {
                        responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                        //Deserializing JSON (Success Response) to Form941CreateReturnResponse object
                        form941Response = new JavaScriptSerializer().Deserialize <Form941CreateReturnResponse>(responseJson);
                        if (form941Response.SubmissionId != null && form941Response.SubmissionId != Guid.Empty)
                        {
                            //Adding Form941CreateReturnResponse Response to Session
                            APISession.AddForm941APIResponse(form941Response);
                        }
                    }
                }
                else
                {
                    var createResponse = response.Content.ReadAsAsync <Object>().Result;
                    responseJson = JsonConvert.SerializeObject(createResponse, Formatting.Indented);

                    //Deserializing JSON (Error Response) to Form941CreateReturnResponse object
                    form941Response = new JavaScriptSerializer().Deserialize <Form941CreateReturnResponse>(responseJson);
                }
            }
            return(PartialView(form941Response));
        }