/// <summary> /// Perrform Process. /// </summary> /// <returns>Message</returns> protected override String DoIt() { log.Info("Record_ID=" + GetRecord_ID()); // get Payment MPayment pp = new MPayment(GetCtx(), GetRecord_ID(), Get_TrxName()); // Validate Number String msg = MPaymentValidate.ValidateCreditCardNumber(pp.GetCreditCardNumber(), pp.GetCreditCardType()); if (msg != null && msg.Length > 0) { throw new ArgumentException(Msg.GetMsg(GetCtx(), msg)); } msg = MPaymentValidate.ValidateCreditCardExp(pp.GetCreditCardExpMM(), pp.GetCreditCardExpYY()); if (msg != null && msg.Length > 0) { throw new ArgumentException(Msg.GetMsg(GetCtx(), msg)); } if (pp.GetCreditCardVV().Length > 0) { msg = MPaymentValidate.ValidateCreditCardVV(pp.GetCreditCardVV(), pp.GetCreditCardType()); if (msg != null && msg.Length > 0) { throw new ArgumentException(Msg.GetMsg(GetCtx(), msg)); } } // Process it bool ok = pp.ProcessOnline(); pp.Save(); if (!ok) { throw new Exception(pp.GetErrorMessage()); } return("OK"); }
/// <summary> /// Check Mandatory /// </summary> /// <returns>true if all mandatory items are OK</returns> private bool CheckMandatory(PaymentInputValues inputs) { if (details == null) { details = new TabDetails(); } bool dataOK = true; StringBuilder msg = new StringBuilder(); try { // log.config( "VPayment.checkMandatory"); String PaymentRule = inputs.cmbPayment; if (PaymentRule == null) { return(false); } // only Payment Rule if (inputs.OnlyRule) { return(true); } DateTime?DateAcct = inputs._DateAcct; int C_PaymentTerm_ID = inputs._C_PaymentTerm_ID; int C_CashBook_ID = inputs._C_CashBook_ID; String CCType = inputs.CCType; // int C_BankAccount_ID = 0; /*********************** * Mandatory Data Check */ // B (Cash) (Currency) if (PaymentRule.Equals(MOrder.PAYMENTRULE_Cash)) { C_CashBook_ID = inputs.cmbBCashBook; DateAcct = Convert.ToDateTime(inputs.bDateField); } // K (CreditCard) Type, Number, Exp, Approval else if (PaymentRule.Equals(MOrder.PAYMENTRULE_CreditCard)) { CCType = inputs.cmbKType; // String error = MPaymentValidate.ValidateCreditCardNumber(inputs.txtKNumber, CCType); if (error.Length != 0) { //txtKNumber.Background = new SolidColorBrush(GlobalVariable.MANDATORY_TEXT_BACK_COLOR); if (error.IndexOf("?") == -1) { msg.Append(Msg.GetMsg(ctx, error) + Environment.NewLine); // ShowMessage.Error("", true, Msg.GetMsg(Envs.GetContext(), error, true).ToString()); dataOK = false; } else // warning { //if (!ShowMessage.Ask("", true, error)) //{ dataOK = false; //} } } error = MPaymentValidate.ValidateCreditCardExp(inputs.txtKExp); if (error.Length != 0) { //txtKExp.Background = new SolidColorBrush(GlobalVariable.MANDATORY_TEXT_BACK_COLOR); msg.Append(Msg.GetMsg(ctx, error) + Environment.NewLine); //ShowMessage.Error("", true, Msg.GetMsg(Envs.GetContext(), error, true).ToString()); dataOK = false; } } // T (Transfer) BPartner_Bank else if (PaymentRule.Equals(X_C_Order.PAYMENTRULE_DirectDeposit) || PaymentRule.Equals(X_C_Order.PAYMENTRULE_DirectDebit)) { string bpba = inputs.cmbTAccount; if (bpba == null || bpba == "") { msg.Append(Msg.GetMsg(ctx, "PaymentBPBankNotFound") + Environment.NewLine); // details.ErrorMsg = Msg.GetMsg(ctx, "PaymentBPBankNotFound"); //cmbTAccount.Background = new SolidColorBrush(GlobalVariable.MANDATORY_TEXT_BACK_COLOR); //ShowMessage.Error("", true, Msg.GetMsg(Envs.GetContext(), "PaymentBPBankNotFound", true).ToString()); dataOK = false; } } // Direct // P (PaymentTerm) PaymentTerm else if (PaymentRule.Equals(X_C_Order.PAYMENTRULE_OnCredit)) { C_PaymentTerm_ID = inputs.cmbPTerm; } // S (Check) (Currency) CheckNo, Routing else if (PaymentRule.Equals(MOrder.PAYMENTRULE_Check)) { // cmbSCurrency.SelectedItem; C_BankAccount_ID = inputs.cmbSBankAccount; String error = MPaymentValidate.ValidateRoutingNo(inputs.txtSRouting); if (error.Length != 0) { msg.Append(Msg.GetMsg(ctx, error) + Environment.NewLine); // txtSRouting.Background = new SolidColorBrush(GlobalVariable.MANDATORY_TEXT_BACK_COLOR); // ShowMessage.Error("", true, Msg.GetMsg(Envs.GetContext(), error, true).ToString()); dataOK = false; } error = MPaymentValidate.ValidateAccountNo(inputs.txtSNumber); if (error.Length != 0) { msg.Append(Msg.GetMsg(ctx, error) + Environment.NewLine); // txtSNumber.Background = new SolidColorBrush(GlobalVariable.MANDATORY_TEXT_BACK_COLOR); // ShowMessage.Error("", true, Msg.GetMsg(Envs.GetContext(), error, true).ToString()); dataOK = false; } error = MPaymentValidate.ValidateCheckNo(inputs.txtSCheck); if (error.Length != 0) { msg.Append(Msg.GetMsg(ctx, error) + Environment.NewLine); // txtSCheck.Background = new SolidColorBrush(GlobalVariable.MANDATORY_TEXT_BACK_COLOR); // ShowMessage.Error("", true, Msg.GetMsg(Envs.GetContext(), error, true).ToString()); dataOK = false; } } else { //log.Log(Level.SEVERE, "Unknown PaymentRule " + PaymentRule); return(false); } // find Bank Account if not qualified yet if ("KTSD".IndexOf(PaymentRule) != -1 && C_BankAccount_ID == 0) { String tender = MPayment.TENDERTYPE_CreditCard; if (PaymentRule.Equals(MOrder.PAYMENTRULE_DirectDeposit)) { tender = MPayment.TENDERTYPE_DirectDeposit; } else if (PaymentRule.Equals(MOrder.PAYMENTRULE_DirectDebit)) { tender = MPayment.TENDERTYPE_DirectDebit; } else if (PaymentRule.Equals(MOrder.PAYMENTRULE_Check)) { tender = MPayment.TENDERTYPE_Check; } // Check must have a bank account if (C_BankAccount_ID == 0 && "S".Equals(PaymentRule)) { msg.Append(Msg.GetMsg(ctx, "PaymentNoProcessor") + Environment.NewLine); // ShowMessage.Error("", true, Msg.GetMsg(Envs.GetContext(), "PaymentNoProcessor", true).ToString()); dataOK = false; } } } catch (Exception ex) { msg.Append(Msg.GetMsg(ctx, ex.Message) + Environment.NewLine); // log.Severe(ex.ToString()); } //log.Config("OK=" + dataOK); details.ErrorMsg = msg.ToString(); return(dataOK); }