Example #1
0
    public void handleRBillingOnAccount(CCJOB job)
    {
        string CustNum = "";
        string CCAccountID = "";
        try
        {

            SAPCust sapcust = job_getCustomer(job);
            if (sapcust != null)
            {
                string amt = job.Amount;

                if (job_runCustomerTrans(sapcust, null, job, amt))
                {
                    if (job_AddPayment(job, null, sapcust, amt, job.CustomerID))
                    {
                        job_setNextRunDate(job.jobID, GetNextRunDate(job));
                    }
                }
            }

        }catch(Exception ex)
        {
            errorLog("Job failed on handleRBillingOnAccount. \r\n" +
               "JobID:" + job.jobID + "\r\n" +
                "CustNum:" + CustNum + "\r\n" +
                "CCAcountID:" + CCAccountID + "\r\n" +
               ex.Message);
        }
    }
Example #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;
    }
Example #3
0
    public void handleRBillingInvoice(CCJOB job)
    {
        string CustNum = "";
        string CCAccountID = "";
        try
        {
            int invID = getDocEntry("13", job.InvoiceID.ToString(), job.CustomerID);
            SAPbobsCOM.Documents oDoc = (SAPbobsCOM.Documents)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices);
            if (!oDoc.GetByKey(invID))
            {
                string err = string.Format("Job {0} failed. Invoice ID: {1} not found", job.jobID, job.InvoiceID);
                job.Result = err;
                job.LastRunDate = DateTime.Today;
                update(job);
                errorLog(err);
                return;
            }
            SAPCust sapcust = job_getCustomer(job);
            if (sapcust != null)
            {
                string amt = job.Amount;
                double balance = getBalance(invID.ToString());
                if (balance == 0)
                {
                    job.EndDate = DateTime.Today;
                    job.LastRunDate = DateTime.Today;
                    job.Result = "Invoice closed";
                    update(job);
                    amt = "";
                }
                else if (balance < getDoubleValue(amt))
                    amt = balance.ToString();
                if (amt != "")
                {
                    if (job_runCustomerTrans(sapcust, oDoc, job, amt))
                    {
                        if (job_AddPayment(job, oDoc, sapcust, amt))
                        {
                            job_setNextRunDate(job.jobID, GetNextRunDate(job));
                        }
                    }
                }
            }

        }catch(Exception ex)
        {
            errorLog("Job failed on handleRBillingInvoice. \r\n" +
                "JobID:" + job.jobID + "\r\n" +
                "InvoiceID:" + job.InvoiceID + "\r\n" +
                 "CustNum:" + CustNum + "\r\n" +
                "CCAcountID:" + CCAccountID + "\r\n" +
               ex.Message);
            job.Result = "Failed. " + ex.Message;
            job.EndDate = DateTime.Today;
            update(job);
        }
    }
Example #4
0
    public bool job_AddPayment( CCJOB job , SAPbobsCOM.Documents oDoc, SAPCust cust, string amt = "", string customerID = "")
    {
        try
        {
            double dtotal = 0;
            if(oDoc != null)
                dtotal = oDoc.DocTotal;
            if (amt != "")
                dtotal = getDoubleValue(amt);
            SAPbobsCOM.Payments oPmt = (SAPbobsCOM.Payments)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oIncomingPayments);
            int bplid = getBranchIdFromINV(oDoc.DocEntry.ToString());
            if (bplid != 0)
                oPmt.BPLID = bplid;
            if (oDoc != null)
            {
                oPmt.Invoices.DocEntry = oDoc.DocEntry;
                oPmt.Invoices.InvoiceType = SAPbobsCOM.BoRcptInvTypes.it_Invoice;
                oPmt.CardCode = oDoc.CardCode;
                oPmt.Invoices.SumApplied = dtotal;
            }
            else
                oPmt.CardCode = customerID;
            oPmt.DocDate = DateTime.Now;
            oPmt.Remarks = "eBizCharge Payment On Account Recurring Billing " + confirmNum;
            //oPmt.TransferDate = DateTime.Now;
            oPmt.DocTypte = SAPbobsCOM.BoRcptTypes.rCustomer;
            AddCreditCardPayment(oPmt, cust, dtotal, true);
            int r = oPmt.Add();
            if (r != 0)
            {
                errorLog("Job Failed on Add Payment. ID:" + job.jobID + "\r\n" +
                    "OrderID:" + job.OrderID + "\r\n" +
                    "CCAcountID:" + cust.cccust.CCAccountID + "\r\n" +
                    getErrorString());
                voidCustomer(confirmNum);
                job.Result = "Failed. " + getErrorString();
                job.LastRunDate = DateTime.Today;
                update(job);
                return false;
            }
            CCTRANUpdateIncomingPaymentID(confirmNum);
        }
        catch (Exception ex)
        {
            errorLog(ex);
            job.Result = "Failed. " +ex.Message;
            job.LastRunDate = DateTime.Today;
            update(job);
            voidCustomer(confirmNum);
            return false;

        }
        return true;
    }
Example #5
0
    public void handleRBillingOrder(CCJOB job)
    {
        string refNum = "";
        int CCAccountID = 0;
        try {
            SAPbobsCOM.Documents oRefDoc = (SAPbobsCOM.Documents)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oOrders);
            if (!oRefDoc.GetByKey((int)job.OrderID))
            {
                string err = string.Format("Job {0} failed. Order ID: {1} not found", job.jobID, job.OrderID);
                job.Result = err;
                job.LastRunDate = DateTime.Today;
                update(job);
                errorLog(err);
                return;
            }
            int invID = job_createInvoice(oRefDoc, job);
            if (invID != 0)
            {
                SAPbobsCOM.Documents oDoc = (SAPbobsCOM.Documents)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices);
                oDoc.GetByKey(invID);

                job_getInfoformTrans(job, ref refNum);
                SAPCust sapcust = job_getCustomer(job);

                if (sapcust != null)
                {
                    if (job_runCustomerTrans(sapcust, oDoc, job))
                    {
                        if (job_AddPayment(job, oDoc, sapcust))
                        {

                            job_setNextRunDate(job.jobID, GetNextRunDate(job));
                        }
                    }
                }
            }

        }catch(Exception ex)
        {
            errorLog("Job failed on handleRBillingOrder. \r\n" +
                "JobID:" + job.jobID + "\r\n" +
                 "OrderID:" + job.OrderID + "\r\n" +
                  "CustNum:" + CustNum + "\r\n" +
                 "CCAcountID:" + CCAccountID + "\r\n" +
                ex.Message);
            job.Result = "Failed. " + ex.Message;
            job.LastRunDate = DateTime.Today;
            update(job);
        }
    }
Example #6
0
    private void populateData()
    {
        try
        {

            SAPbouiCOM.Button oButton = (SAPbouiCOM.Button)oJobForm.Items.Item(btnUpdate).Specific;

            if (JobID != "")
                oButton.Caption = "Update";
            else
                oButton.Caption = "Add";

            if (JobID != "")
            {

                List<CCJOB> q = findCCJOB(string.Format(" where \"DocEntry\"='{0}'", JobID));
                foreach (CCJOB job in q)
                    ccjob = job;
                JobCustID = ccjob.CustomerID;
                setFormEditVal(oJobForm, editDescription, ccjob.Description);
                setFormEditVal(oJobForm, editCAmount, ccjob.Amount);
                setFormEditVal(oJobForm, editCustomerID, ccjob.CustomerID);
                setFormEditVal(oJobForm, editStartDate, ((DateTime)ccjob.StartDate).ToString("MM/dd/yyyy"));
                if (ccjob.EndDate != null)
                    setFormEditVal(oJobForm, editEndDate, ((DateTime)ccjob.EndDate).ToString("MM/dd/yyyy"));
                else
                    setFormEditVal(oJobForm, editEndDate, "");

                if (ccjob.CancelledDate != null)
                {
                    setLabelCaption(oJobForm, stCancel, LB_CANCELLED);
                    setButtonCaption(oJobForm, btnUpdate, "Activate");
                }
                setFormEditVal(oJobForm, editDescription, ccjob.Description);
                setComboValue(oJobForm, cbFrequency, ccjob.Frequency);

            }
            setFormEditVal(oJobForm, editCustomerID, JobCustID);
            populatePaymentList(oJobForm);

        }catch(Exception)
        {

        }
        finally
        {
            tProcess = new Thread(selectPayment);
            tProcess.Start();
        }
    }
Example #7
0
    public SAPCust job_getCustomer(CCJOB job)
    {
        SAPCust sapcust = new SAPCust();
        try
        {
                 CCCUST c = null;
                List<CCCUST> q = findCCCust(string.Format(" where \"U_CustomerID\"='{0}' AND \"U_methodDescription\"='{1}'",job.CustomerID, job.PaymentID ));
                if(q.Count() == 0)
                {
                    List<CCCUST> q2 = findCCCust(string.Format(" where \"U_CustomerID\"='{0}'", job.CustomerID));
                    foreach (CCCUST c1 in q2)
                        c = c1;

                }
                else
                {
                    foreach (CCCUST c1 in q)
                        c = c1;
                }
                if(c == null)
                {
                    string err = "No payment method found";
                    job.Result = err;
                    job.LastRunDate = DateTime.Today;
                    update(job);
                    return null;
                }
                sapcust.cccust = c;
            string id = "";
                string cardcode = getCardAcctByCustNum(c.CustNum, ref id);
                SecurityToken token = getToken(cardcode);
                sapcust.custObj = ebiz.GetCustomer(token, c.CustomerID, null);
                return sapcust;

        }
        catch (Exception ex)
        {
            errorLog("Failed to Create Customer Obj." +
                "\r\nJobID:" + job.jobID +
                "\r\n" + ex.Message);
            job.Result = "Failed on get payment method";
            job.LastRunDate = DateTime.Today;
            update(job);

        }
        return null;
    }
Example #8
0
    public DateTime GetNextRunDate(CCJOB job)
    {
        try
        {
            if (job.LastRunDate == null)
                job.NextRunDate = job.StartDate;
            else
                job.NextRunDate = job.LastRunDate;
            if (job.NextRunDate == null)
                job.NextRunDate = DateTime.Today;
            switch (job.Frequency)
            {
                case F_Daily:
                    return ((DateTime)(job.NextRunDate)).AddDays(1);

                case F_Weekly:
                    return ((DateTime)(job.NextRunDate)).AddDays(7);

                case F_Biweekly:
                    return ((DateTime)(job.NextRunDate)).AddDays(14);

                case F_Monthly:
                    return ((DateTime)(job.NextRunDate)).AddMonths(1);

                case F_Bimonthly:
                    return ((DateTime)(job.NextRunDate)).AddMonths(2);

                case F_Quarterly:
                    return ((DateTime)(job.NextRunDate)).AddMonths(3);

                case F_Semiannually:
                    return ((DateTime)(job.NextRunDate)).AddMonths(6);

                case F_Annually:
                    return ((DateTime)(job.NextRunDate)).AddYears(1);

            }
        }catch(Exception ex)
        {
            errorLog(ex);
        }
        return DateTime.Today;
    }
Example #9
0
    public void job_getInfoformTrans(CCJOB job, ref string refNum)
    {
        string sql = string.Format("select \"U_refNum\" from \"@CCTRANS\" where \"U_jobID\"='{0}' and \"U_OrderID\"='{1}'", job.jobID, job.OrderID);
        try
        {

            SAPbobsCOM.Recordset oRS = (SAPbobsCOM.Recordset)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset);
            oRS.DoQuery(sql);
            if (!oRS.EoF)
            {
                refNum = (string)oRS.Fields.Item(0).Value;

            }
        }
        catch (Exception ex)
        {
            errorLog(ex);
            errorLog(sql);
        }
    }
Example #10
0
    private void job_logCustomTransaction(CustomerTransactionRequest req, TransactionResponse resp, SAPCust sapcust, CCJOB job, string InvoiceID = "")
    {
        CCTRAN cctran = new CCTRAN();

        try
        {
            if (job.OrderID == null)
                job.OrderID = 0;
            if (job.InvoiceID == null)
                job.InvoiceID = 0;

            cctran.customerID = sapcust.cccust.CustomerID;
            cctran.CCAccountID = 0;
            cctran.jobID = (int)job.jobID;
            cctran.OrderID = job.OrderID.ToString();
            cctran.InvoiceID = InvoiceID;
            cctran.CreditMemoID = "";
            cctran.DownPaymentInvoiceID = "";
            if (sapcust != null)
            {
                try
                {
                    cctran.CCAccountID = int.Parse(sapcust.cccust.CCAccountID);
                    cctran.customerID = sapcust.cccust.CustomerID;
                    cctran.MethodID = sapcust.custObj.PaymentMethodProfiles[0].MethodID;
                    cctran.custNum = sapcust.cccust.CustNum;
                    cctran.crCardNum = sapcust.custObj.PaymentMethodProfiles[0].CardNumber;
                    cctran.CardHolder = sapcust.custObj.BillingAddress.FirstName + " " + sapcust.custObj.BillingAddress.LastName;
                }catch(Exception ex)
                {
                    errorLog(ex);
                }
            }
            cctran.Description = req.Details.Description;
            cctran.recID = req.Details.Invoice;
            cctran.acsUrl = resp.AcsUrl;
            cctran.authAmount = resp.AuthAmount.ToString();
            cctran.authCode = resp.AuthCode;
            cctran.avsResult = resp.AvsResult;
            cctran.avsResultCode = resp.AvsResultCode;
            cctran.batchNum = resp.BatchNum;
            cctran.batchRef = resp.BatchRefNum;
            cctran.cardCodeResult = resp.CardCodeResult;
            cctran.cardCodeResultCode = resp.CardCodeResultCode;
            cctran.cardLevelResult = resp.CardLevelResult;
            cctran.cardLevelResultCode = resp.CardLevelResultCode;
            cctran.conversionRate = resp.ConversionRate.ToString();
            cctran.convertedAmount = resp.ConvertedAmount.ToString();
            cctran.convertedAmountCurrency = resp.ConvertedAmountCurrency.ToString();
            cctran.custNum = resp.CustNum;
            cctran.error = resp.Error;
            cctran.errorCode = resp.ErrorCode;
            cctran.isDuplicate = resp.isDuplicate.ToString();
            cctran.payload = resp.Payload;
            cctran.profilerScore = resp.ProfilerScore;
            cctran.profilerResponse = resp.ProfilerResponse;
            cctran.profilerReason = resp.ProfilerReason;
            cctran.refNum = resp.RefNum;
            cctran.remainingBalance = resp.RemainingBalance.ToString();
            cctran.result = resp.Result;
            cctran.resultCode = resp.ResultCode;
            cctran.status = resp.Status;
            cctran.statusCode = resp.StatusCode;
            cctran.vpasResultCode = resp.VpasResultCode;
            cctran.recDate = DateTime.Now;//Use local time not server time
            cctran.command = req.Command;
            cctran.amount = req.Details.Amount.ToString();
            insert(cctran);
        }
        catch (Exception ex)
        {

            errorLog(ex);
        }
    }
Example #11
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;
    }
Example #12
0
    private void HandleUpdate(SAPbouiCOM.Form form)
    {
        try
        {
            string msg = "Add eBizCharge recurring billing for this order?";
            string invoiceNum = "";
            string custid = "";
            string amt = "";
            string paymentID = "";
            string oid = getFormItemVal(form, stOrderID);
            custid = getFormItemVal(form, editCustomerID);
            invoiceNum = getFormItemVal(form, editInvNo);
            amt = getFormItemVal(form, editCAmount);
            paymentID = getFormItemVal(form, cbPaymentMethod);

            if (JobID == "")  //This is a Add
            {
                if (invoiceNum != "")
                    msg = string.Format("Add term payment on Invoice:{0}?", invoiceNum);
                else
                    msg = string.Format("Add recurring payment on customer account?");
                if (SBO_Application.MessageBox(msg, 1, "Yes", "No") == 1)
                {
                    CCJOB job = new CCJOB();
                    job.CustomerID = custid;
                    if (oid != "")
                    {
                        job.OrderID = int.Parse(oid);

                    }

                    if (invoiceNum == "")
                        job.InvoiceID = null;
                    else
                        job.InvoiceID = int.Parse(invoiceNum);

                    job.PaymentID = paymentID;
                    job.Amount = amt;
                    job.StartDate = DateTime.Parse(getFormItemVal(form, editStartDate));
                    if (getFormItemVal(form, editEndDate) != "")
                    {
                        job.EndDate = DateTime.Parse(getFormItemVal(form, editEndDate));
                    }
                    job.Frequency = getFormItemVal(form, cbFrequency);

                    job.Description = getFormItemVal(form, editDescription);
                    job.NextRunDate = GetNextRunDate(job);

                    insert(job);

                    if (confirmNum != "")
                        CCTRANAdjustJobId(confirmNum, job.jobID.ToString());

                    SBO_Application.MessageBox("eBizCharge job added.");
                    form.Close();

                }
            }
            else
            {
                if (SBO_Application.MessageBox("Update job?", 1, "Yes", "No") == 1)
                {
                    ccjob.StartDate = DateTime.Parse(getFormItemVal(form, editStartDate));
                    if (getFormItemVal(form, editEndDate) != "")
                    {
                        ccjob.EndDate = DateTime.Parse(getFormItemVal(form, editEndDate));
                    }
                    else
                        ccjob.EndDate = null;
                    ccjob.Frequency = getFormItemVal(form, cbFrequency);
                    ccjob.Description = getFormItemVal(form, editDescription);

                    if (invoiceNum == "")
                        ccjob.InvoiceID = null;
                    else
                        ccjob.InvoiceID = int.Parse(invoiceNum);
                    ccjob.Cancelled = 'N';
                    ccjob.CancelledDate = null;
                    ccjob.PaymentID = paymentID;
                    ccjob.Amount = amt;
                    ccjob.NextRunDate = GetNextRunDate(ccjob);
                    update(ccjob);
                    SBO_Application.MessageBox("Recurring billing job updated.");
                    form.Close();

                }
            }
            populateRBillingMatrix();
        }
        catch (Exception ex)
        {
            errorLog(ex);
        }
    }
Example #13
0
    public bool job_runCustomerTrans(SAPCust sapcust, SAPbobsCOM.Documents oDoc, CCJOB job, string amt ="")
    {
        try
        {
            string cmd = "cc:sale";
            if (sapcust.custObj.PaymentMethodProfiles[0].MethodType == "check")
                cmd = "check";
            confirmNum = "";

            CustomerTransactionRequest req = job_createCustomRequest(job, oDoc, amt);
            req.Command = cmd;
            trace("Job_runCustomRequest: amount = " + req.Details.Amount + ", tax=" + req.Details.Tax + ",Subtotal=" + req.Details.Subtotal + ",shipping=" + req.Details.Shipping + ",Discount=" + req.Details.Discount +
             string.Format("runCustomerTrans, token={0}, method={1}:{2}", sapcust.custObj.CustomerToken, sapcust.custObj.PaymentMethodProfiles[0].MethodID, sapcust.custObj.PaymentMethodProfiles[0].CardNumber));
            req.CustReceipt = cfgsendCustomerEmail == "Y" ? true : false;
            req.CustReceiptName = "vterm_customer";
            req.CustReceiptEmail = sapcust.custObj.Email;
            if (req.Command == "cc:authonly" && cfgPreAuthEmail != "Y")
                req.CustReceipt = false;
            if (req.CustReceiptEmail == "")
                req.CustReceipt = false;
            SecurityToken token = getToken(sapcust.cccust.CCAccountID);
            TransactionResponse resp = new TransactionResponse();
            resp = ebiz.runCustomerTransaction(token, sapcust.custObj.CustomerToken, sapcust.custObj.PaymentMethodProfiles[0].MethodID, req);
            confirmNum = resp.RefNum;
            sendReceipt(token, sapcust, resp);
            int invoiceID = 0;
            if (oDoc != null)
                invoiceID = oDoc.DocEntry;
            job_logCustomTransaction(req, resp, sapcust, job, invoiceID.ToString());
            if (resp.Error.ToLower() == "approved")
            {
                job.Result = "Success";
                job.LastRunDate = DateTime.Today;
                update(job);
                return true;
            }
            else
            {
                if (resp.ResultCode == "D")
                {
                    if (req.CustReceiptEmail != "" && req.CustReceiptEmail != null && cfgCustomerReceipt != "")
                    {

                        try
                        {
                            EmailReceiptResponse emresp = ebiz.EmailReceipt(token, resp.RefNum, resp.RefNum, cfgCustomerReceipt, req.CustReceiptEmail);

                            if (emresp.ErrorCode == 0)
                            {
                                showStatus("Declined receipt sent.", SAPbouiCOM.BoMessageTime.bmt_Medium,false);
                            }
                            else
                                showStatus("Failed to send declined receipt.\r\n" + resp.Error, SAPbouiCOM.BoMessageTime.bmt_Medium,true);

                        }
                        catch (Exception ex2)
                        {
                            showStatus("Failed to send receipt.\r\n" + ex2.Message, SAPbouiCOM.BoMessageTime.bmt_Medium, false);
                        }

                    }
                }
                string err = "Job Failed. ID:" + job.jobID + "\r\n" + resp.Error;
                job.Result = err;
                job.LastRunDate = DateTime.Today;
                update(job);
                errorLog(err);
                return false;
            }

        }
        catch (Exception ex)
        {
            string err = "Job Failed. ID:" + job.jobID + "\r\n" + ex.Message;
            job.Result = err;
            job.LastRunDate = DateTime.Today;
            update(job);
            errorLog(ex);

            return false;
        }
    }