コード例 #1
0
    private CustomerTransactionRequest Batch_createCustomRequest(SAPbobsCOM.Documents doc)
    {
        CustomerTransactionRequest req = new CustomerTransactionRequest();

        try
        {
            req.ClientIP    = getIP();
            req.CustReceipt = cfgsendCustomerEmail == "Y" ? true : false;
            //true;
            req.MerchReceipt = true;
            //true;
            req.MerchReceiptEmail        = cfgmerchantEmail;
            req.Details                  = new TransactionDetail();
            req.Details.Clerk            = oCompany.UserName;
            req.Details.AllowPartialAuth = true;

            req.Details.Amount = Math.Round(doc.DocTotal, 2);

            req.Details.Discount = Math.Round(doc.TotalDiscount, 2);

            req.Details.Shipping = getShipping(doc);

            req.Details.Tax = doc.VatSum;

            req.Details.Invoice = doc.DocNum.ToString();
            req.Details.OrderID = GetSalesOrderDocNum(req.Details.Invoice);
            req.Details.PONum   = doc.NumAtCard;
            if (req.Details.PONum == "" || req.Details.PONum == null)
            {
                req.Details.PONum = doc.DocNum.ToString();
            }
            req.Details.ShipFromZip = getZipFromAddr(doc.Address2);
            req.Details.Description = doc.Comments;
            req.Details.Subtotal    = 0; // req.Details.Subtotal = Math.Round(req.Details.Amount - (req.Details.Shipping + req.Details.Tax - req.Details.Discount), 2);

            SAPbobsCOM.Document_Lines olines = doc.Lines;
            req.LineItems = new LineItem[olines.Count];

            for (int i = 0; i < olines.Count; i++)
            {
                olines.SetCurrentLine(i);
                req.LineItems[i] = new LineItem();
                req.LineItems[i].CommodityCode = merchantData.ItemCommodityCode == null ? olines.ItemCode : merchantData.ItemCommodityCode;
                req.LineItems[i].Qty           = olines.Quantity.ToString();
                req.LineItems[i].UnitPrice     = olines.Price.ToString();
                req.LineItems[i].ProductName   = olines.ItemDescription;
                req.LineItems[i].UnitOfMeasure = "EACH";
                req.LineItems[i].SKU           = olines.ItemCode;
                req.LineItems[i].CommodityCode = olines.ItemCode;
                req.LineItems[i].Taxable       = true;
                //req.LineItems[i].TaxableSpecified = true;
                req.LineItems[i].TaxRate = olines.TaxPercentagePerRow.ToString();
            }
        }
        catch (Exception ex)
        {
            errorLog(ex);
        }
        return(req);
    }
コード例 #2
0
    public int job_createInvoice(SAPbobsCOM.Documents oRefDoc, CCJOB job)
    {
        try
        {

            SAPbobsCOM.Documents oDoc = (SAPbobsCOM.Documents)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices);
            oDoc.DocNum = getNextTableNum("OINV");
            oDoc.CardCode = oRefDoc.CardCode;
            oDoc.CardName = oRefDoc.CardName;
            oDoc.DocDueDate = DateTime.Now.AddDays(5);
            oDoc.DocDate = DateTime.Now;
            oDoc.Comments = "Created by eBizCharge Job base on order entry: " + oRefDoc.DocEntry;
            SAPbobsCOM.Document_Lines olines = oRefDoc.Lines;
            double total = 0;
            oDoc.DocType = oRefDoc.DocType;
            for (int i = 0; i < olines.Count; i++)
            {

                olines.SetCurrentLine(i);
                if (oRefDoc.DocType == SAPbobsCOM.BoDocumentTypes.dDocument_Items)
                {
                    oDoc.Lines.ItemCode = olines.ItemCode;
                    oDoc.Lines.SerialNum = olines.SerialNum;
                    oDoc.Lines.Quantity = olines.Quantity;
                    oDoc.Lines.Price = olines.Price;
                    oDoc.Lines.DiscountPercent = olines.DiscountPercent;

                }
                else
                {
                    oDoc.Lines.AccountCode = olines.AccountCode;

                }
                oDoc.Lines.ItemDescription = olines.ItemDescription;
                oDoc.Lines.TaxCode = olines.TaxCode;
                oDoc.Lines.LineTotal = olines.LineTotal;
                oDoc.Lines.Add();
                total += olines.LineTotal;
            }
            int r = oDoc.Add();
            if (r != 0)
            {
                string err = string.Format("Job create invoice failed. JobID:{0};OrderID:{1}\r\n", job.jobID, job.OrderID) + getErrorString();
                errorLog(err);
                job.Result = err;
                job.LastRunDate = DateTime.Today;
                update(job);
                return 0;
            }

            return getNextTableID("OINV") - 1;
        }
        catch (Exception ex)
        {
            errorLog(ex);

        }
        return 0;
    }
コード例 #3
0
    public void addePayInvoice(SAPbouiCOM.Matrix oMatrix, int i)
    {
        try
        {
            string invnum = getMatrixItem(oMatrix, "DocNum", i);

            string custid  = getMatrixItem(oMatrix, "CustID", i);
            string invid   = getMatrixItem(oMatrix, "InvID", i);
            string balance = getMatrixItem(oMatrix, "Balance", i);
            string name    = getMatrixItem(oMatrix, "CName", i);
            string email   = getMatrixItem(oMatrix, "E_Mail", i);
            SBO_Application.SetStatusBarMessage(string.Format("Sending invoice: {0} to customer: {1}. Balance:{2}. Please wait...", invid, name, balance), SAPbouiCOM.BoMessageTime.bmt_Medium, false);

            SAPbobsCOM.Documents oDoc = (SAPbobsCOM.Documents)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices);
            if (!oDoc.GetByKey(int.Parse(invid)))
            {
                errorLog("Inv not found: " + invid);
                return;
            }


            SecurityToken securityToken = getToken();

            string detail = "<table>";
            SAPbobsCOM.Document_Lines olines = oDoc.Lines;
            for (int n = 0; n < olines.Count; n++)
            {
                olines.SetCurrentLine(n);
                detail += string.Format("<tr><td nowrap>{0}<td><td>&nbsp;&nbsp;{1}&nbsp;X&nbsp;{2}</td></tr>", olines.ItemDescription, olines.Quantity, olines.Price);
            }
            detail += "</table>";
            EbizWebForm pf = new EbizWebForm();
            pf.Clerk        = oCompany.UserName;
            pf.AmountDue    = Decimal.Parse(balance);
            pf.TotalAmount  = Decimal.Parse(balance);
            pf.CustFullName = name;
            pf.EmailAddress = email;

            pf.EmailNotes          = "SAP email payment form";
            pf.EmailSubject        = cfgEmailSubject.Replace("[CUSTOMER]", name).Replace("[INVOICE]", invnum);
            pf.FromEmail           = cfgmerchantEmail;
            pf.CustomerId          = custid;
            pf.InvoiceNumber       = invnum;
            pf.Description         = detail;
            pf.EmailTemplateName   = getFormItemVal(oePaymentFormForm, cbEMTemplate);
            pf.SendEmailToCustomer = true;
            string url = ebiz.GetEbizWebFormURL(securityToken, pf);
            List <CCPayFormInvoice> q = findCCPayFormInvoice(string.Format(" where \"U_InvoiceGUID\" = '{0}' and \"U_CustomerID\" = '{1}' ", invid, custid));
            if (q.Count() == 0)
            {
                CCPayFormInvoice ccinv = new CCPayFormInvoice();
                ccinv.CustomerID      = custid;
                ccinv.InvoiceID       = invnum;
                ccinv.InvoiceGUID     = invid;
                ccinv.UploadedBalance = balance;
                ccinv.Status          = EPAY_STATUS_SENT;
                ccinv.UploadDate      = DateTime.Today;
                insert(ccinv);
            }
            SBO_Application.SetStatusBarMessage(string.Format("Invoice: {0} sent to customer: {1}. Balance:{2}.", invid, custid, balance), SAPbouiCOM.BoMessageTime.bmt_Medium, false);
        }
        catch (Exception ex)
        {
            errorLog(ex);
        }
    }
コード例 #4
0
    private CustomerTransactionRequest job_createCustomRequest(CCJOB job, SAPbobsCOM.Documents oDoc, string amt ="")
    {
        CustomerTransactionRequest req = new CustomerTransactionRequest();
        try
        {
            req.CustReceipt = cfgsendCustomerEmail == "Y" ? true : false;
            // req.CustReceiptSpecified = false;  //true;
            req.MerchReceipt = true;
            //  req.MerchReceiptSpecified = false; //true;
            req.MerchReceiptEmail = cfgmerchantEmail;
            req.CustReceiptName = "vterm_customer";
            req.MerchReceiptName = cfgMerchantReceipt;
            req.ClientIP = getIP();

            req.Details = new TransactionDetail();
            req.Details.AllowPartialAuth = true;

            if(amt == "" && oDoc != null)
                req.Details.Amount = oDoc.DocTotal;
            else
                req.Details.Amount = getDoubleValue(amt);

            req.Details.Discount = 0;

            req.Details.Shipping = 0;

            req.Details.Tax = 0;

            string invID = "RB000";
            if(oDoc!= null)
                invID = oDoc.DocNum.ToString();
            req.Details.Invoice = invID;
            req.Details.OrderID = invID;
            req.Details.PONum = invID;
            req.Details.Description =job.Description;
            req.Details.Subtotal = 0; // req.Details.Amount;

            if (oDoc != null)
            {
                SAPbobsCOM.Document_Lines olines = oDoc.Lines;
                req.LineItems = new LineItem[olines.Count];
                for (int i = 0; i < olines.Count; i++)
                {
                    olines.SetCurrentLine(i);
                    req.LineItems[i] = new LineItem();
                    req.LineItems[i].CommodityCode = olines.ItemCode;
                    req.LineItems[i].SKU = olines.ItemCode;
                    req.LineItems[i].Qty = olines.Quantity.ToString();
                    req.LineItems[i].UnitPrice = olines.UnitPrice.ToString();
                    req.LineItems[i].TaxRate = olines.TaxCode;
                    req.LineItems[i].ProductName = olines.ItemDescription;
                    req.LineItems[i].DiscountRate = "";
                    req.LineItems[i].UnitOfMeasure = "EACH";
                }
            }else
            {
                req.LineItems = new LineItem[1];
                req.LineItems[0] = new LineItem();
                req.LineItems[0].CommodityCode = "000";
                req.LineItems[0].Qty = "1";
                req.LineItems[0].UnitPrice = amt;
                req.LineItems[0].TaxRate = "";
                req.LineItems[0].ProductName = "eBizCharge SAP Recurring Billing On Account";
                req.LineItems[0].DiscountRate = "";
                req.LineItems[0].UnitOfMeasure = "EACH";
                req.LineItems[0].SKU = "SKU1";

            }
        }
        catch (Exception ex)
        {
            errorLog(ex);
        }
        return req;
    }