public override SAPResponse ExecuteQuery()
        {
            var cred = ParseCredential(Username);
            var resp = new BillingNumberItemsDTO();
            var dest = SAPConnectionFactory.Instance.GetRfcDestination(cred);

            if (dest == null)
            {
                return(null);
            }
            var repo = dest.Repository;
            var func = repo.CreateFunction(FUNCTIONAL_BAPI);

            func.SetValue("SOLD_TO", _soldToParty);
            func.SetValue("BILLING_START_DATE", _startDate.ToString("yyyyMMdd"));
            func.SetValue("BILLING_END_DATE", _endDate.ToString("yyyyMMdd"));
            func.SetValue("BILLING_TYPE", "ZF9");
            func.Invoke(dest);

            var billNumsTbl = func.GetTable("BILLING_DOC");
            var rawList     = new List <InvoiceProformaBillingNumberDTO>();

            for (var a = 0; a < billNumsTbl.RowCount; a++)
            {
                billNumsTbl.CurrentIndex = a;
                var it = new InvoiceProformaBillingNumberDTO();
                SAPDataCopier.Instance.CopyFromStruct(billNumsTbl.CurrentRow, it);
                rawList.Add(it);

                var li = new BillingNumberItemDTO
                {
                    BillingDocNumber = it.VBELN,
                    CreateTime       = DateTime.ParseExact(it.ERZET, "HH:mm:ss", CultureInfo.InvariantCulture),
                    CreatedBy        = it.ERNAM,
                    CreatedDate      = DateTime.ParseExact(it.ERDAT, "yyyy-MM-dd", CultureInfo.InvariantCulture)
                };
                resp.Numbers.Add(li);
            }

            InMemoryCache.Instance.ClearCached(Username + Suffix.REQUEST_HEADER);
            InMemoryCache.Instance.ClearCached(Username + Suffix.QUERIED_BILLING_NUMBERS);

            var head = new RunInvoiceHeaderDTO
            {
                BillingDateFrom = _startDate,
                BillingDateTo   = _endDate,
                SoldToParty     = _soldToParty
            };

            InMemoryCache.Instance.Cache(Username + Suffix.REQUEST_HEADER, head);
            InMemoryCache.Instance.Cache(Username + Suffix.QUERIED_BILLING_NUMBERS, rawList.ToArray());

            return(resp);
        }
        protected int CountZeroVersion(RunInvoiceHeaderDTO head, BillingDbContext dao)
        {
            var sql = from o in dao.InvoiceProformaHeaders.Where(o => o.BillingBlock == head.BillingDocsCriteria &&
                                                                 o.ReasonForRejection ==
                                                                 head.ReasonForRejection &&
                                                                 o.ProformaFlag == head.ProformaFlag &&
                                                                 o.BillingNo == head.BillingNo &&
                                                                 o.SoldToParty == head.SoldToParty &&
                                                                 o.Version == 0)
                      select o;

            return(sql.Count());
        }
Exemplo n.º 3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="runInvoiceHeaderDto"></param>
 /// <returns></returns>
 public static RunProformaInvoiceHeaderViewModel GenerateRunProformaInvoiceViewModel(
     RunInvoiceHeaderDTO runInvoiceHeaderDto)
 {
     return(new RunProformaInvoiceHeaderViewModel
     {
         CreatedBy = runInvoiceHeaderDto.CreatedBy,
         BillingRun = string.IsNullOrEmpty(runInvoiceHeaderDto.BillingRun)
             ? SharedResource.NotReady
             : runInvoiceHeaderDto.BillingRun,
         BillingType = ProformaInvoiceResource.BillingTypeMSTProformaInvoice,
         BillingDateFrom = runInvoiceHeaderDto.BillingDateFrom.ToString(ConfigResource.FormatDate),
         BillingDateTo = runInvoiceHeaderDto.BillingDateTo.ToString(ConfigResource.FormatDate),
         SoldToParty = runInvoiceHeaderDto.SoldToParty,
         CreatedOn = Convert.ToString(Convert.ToDateTime(runInvoiceHeaderDto.CreateOn).ToString("dd MMM yyyy")),
         Time = runInvoiceHeaderDto.Time
     });
 }
Exemplo n.º 4
0
        public override SAPResponse ExecuteQuery()
        {
            System.Diagnostics.Debug.WriteLine("<HEADER_QUERY FROM = 'DATABASE'>");
            using (var dao = new BillingDbContext())
            {
                var sql       = from o in dao.InvoiceProformaHeaders.Where(o => o.No == _no) select o;
                var dbRawHead = sql.FirstOrDefault();
                if (dbRawHead != null)
                {
                    var ver = "Final";
                    if (dbRawHead.Draft)
                    {
                        ver = "Draft";
                    }
                    var head = new RunInvoiceHeaderDTO
                    {
                        BillingDateFrom     = dbRawHead.StartDate,
                        BillingDateTo       = dbRawHead.EndDate,
                        BillingDocsCriteria = dbRawHead.BillingBlock,
                        BillingNo           = dbRawHead.BillingNo,
                        ReasonForRejection  = dbRawHead.ReasonForRejection,
                        SoldToParty         = dbRawHead.SoldToParty,
                        Version             = dbRawHead.Version.ToString(CultureInfo.InvariantCulture),
                        CreatedBy           = dbRawHead.ERNAM,
                        CreateOn            = dbRawHead.ERDAT,
                        Time            = dbRawHead.ERZET,
                        ProformaFlag    = dbRawHead.ProformaFlag,
                        BillingType     = Properties.Settings.Default.BillingType,
                        SoldToPartyName = dbRawHead.SoldToParty,
                        Draft           = dbRawHead.Draft,
                        BillingRun      =
                            dbRawHead.SoldToParty + " | " + dbRawHead.Version + " | " +
                            dbRawHead.Created.ToString("dd MMM yyyy") + " | " + ver
                    };

                    InMemoryCache.Instance.ClearCached(Username + Suffix.REQUEST_HEADER);
                    InMemoryCache.Instance.Cache(Username + Suffix.REQUEST_HEADER, head);

                    var rawHead = new InvoiceProformaHeaderDto
                    {
                        CITY1      = dbRawHead.CITY1,
                        ERDAT      = dbRawHead.ERDAT,
                        ERNAM      = dbRawHead.ERNAM,
                        ERZET      = dbRawHead.ERZET,
                        FKDAT      = dbRawHead.FKDAT,
                        FPAJAK_NO  = dbRawHead.FPAJAK_NO,
                        HTOTAL1    = dbRawHead.HTOTAL1,
                        HTOTAL2    = dbRawHead.HTOTAL2,
                        HTOTAL3    = dbRawHead.HTOTAL3,
                        HTOTAL4    = dbRawHead.HTOTAL4,
                        HTOTAL5    = dbRawHead.HTOTAL5,
                        KUNRG      = dbRawHead.KUNRG,
                        KURRF      = dbRawHead.KURRF,
                        NAME1      = dbRawHead.NAME1,
                        NAME2      = dbRawHead.NAME2,
                        NAME3      = dbRawHead.NAME3,
                        NAME4      = dbRawHead.NAME4,
                        No         = dbRawHead.No,
                        POST_CODE1 = dbRawHead.POST_CODE1,
                        STCEG      = dbRawHead.STCEG,
                        STREET     = dbRawHead.STREET,
                        TDLINE     = dbRawHead.TDLINE,
                        TEXT1      = dbRawHead.TEXT1,
                        VBELN      = dbRawHead.VBELN,
                        VTEXT      = dbRawHead.VTEXT,
                        WAERK      = dbRawHead.WAERK,
                        ZTERM      = dbRawHead.ZTERM
                    };

                    InMemoryCache.Instance.ClearCached(Username + Suffix.QUERIED_PROFORMA_HEADER);
                    InMemoryCache.Instance.Cache(Username + Suffix.QUERIED_PROFORMA_HEADER, rawHead);

                    InMemoryCache.Instance.ClearCached(Username + Suffix.QUERIED_VERSION_FROM_DB);
                    InMemoryCache.Instance.Cache(Username + Suffix.QUERIED_VERSION_FROM_DB, dbRawHead.Version);
                    System.Diagnostics.Debug.WriteLine("<HEADER_QUERY VERSION = '" + head.Version + "'/>");

                    InMemoryCache.Instance.ClearCached(Username + Suffix.QUERIED_FROM_DB);
                    InMemoryCache.Instance.Cache(Username + Suffix.QUERIED_FROM_DB, true);

                    System.Diagnostics.Debug.WriteLine("</HEADER_QUERY>");

                    return(head);
                }
                throw new FaultException("Selected header is null!");
            }
        }