예제 #1
0
        public EinvoiceDetalisResultModel GetEinvoiceDetalisByOrderNo([FromUri] string orderNo)
        {
            EinvoiceDetalisResultModel result = new EinvoiceDetalisResultModel();

            try
            {
                string invNo = this.Repository.GetEinvoiceNoByOrderNo(orderNo);

                #region 測試資料請給真實發票號碼做測試

                //string invNo = "XC47895844";

                #endregion 測試資料請給真實發票號碼做測試

                result = this.Repository.GetEinvoiceDetalisByNo(invNo);
            }
            catch (Exception ex)
            {
                var    now    = DateTime.UtcNow.AddHours(8);
                string dd     = now.Year + now.Month.ToString().PadLeft(2, '0') + now.Day.ToString().PadLeft(2, '0');
                string exInfo = PublicRepository.ExceptionDetalisMessages(ex);
                PublicRepository.SaveMesagesToTextFile(@"D:\OrderEinvSearchLog\", orderNo + "_" + dd + ".txt", exInfo);
                result.msg  = ex.Message;
                result.code = "1";
            }
            return(result);
        }
        public EinvoiceDetalisResultModel GetEinvoiceDetalisByNo(string invNo)
        {
            invNo = string.Concat(invNo[0], invNo[1]).ToUpper() + invNo.Substring(2, invNo.Length - 2);
            EinvoiceDetalisSendModel send = new EinvoiceDetalisSendModel();

            #region 取發票原始檔明細 測試時請註解 正式請取消註解

            send = GetEinvoiceProtoDetalisByNo(invNo);

            #endregion 取發票原始檔明細 測試時請註解 正式請取消註解

            send.version    = 0.3;
            send.type       = "Barcode";
            send.invNum     = invNo;
            send.action     = "qryInvDetail";
            send.generation = "V2";

            #region 測試時請取消註解並給時寄發票的資訊 正式請註解

            //send.invTerm =  "10610";
            //send.invDate = "2017/09/26";
            //send.randomNumber = "6157";

            #endregion 測試時請取消註解並給時寄發票的資訊 正式請註解

            string     resultStr  = string.Empty;
            WebRequest webRequest = null;
            string     sendData   = this.Repository.ConvertObjectToQueryString(send);

            byte[] bytes = Encoding.UTF8.GetBytes(sendData);
            //Request
            try
            {
                webRequest = this.Repository.CreateWebRequest(ConnectionStringModel.EinvoiceSearchApiConnectionStr);
                webRequest.ContentLength = bytes.Length;
                this.Repository.SendWebRequest(webRequest, bytes);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            //Get Response
            try
            {
                resultStr = this.Repository.GetResponse(webRequest);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            EinvoiceDetalisResultModel result = JsonConvert.DeserializeObject <EinvoiceDetalisResultModel>(resultStr);
            return(result);
        }
예제 #3
0
        public EinvoiceDetalisResultModel GetEinvoiceDetalis([FromUri] string invNo)
        {
            EinvoiceDetalisResultModel result = this.Repository.GetEinvoiceDetalisByNo(invNo);

            return(result);
        }