예제 #1
0
        public static bool validarPago(string url, PagoBean pago, string tipoDoc, out string docEntry)
        {
            var exists = false;

            docEntry = string.Empty;

            try
            {
                IRestResponse response = makeRequest(url, Method.GET);
                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    if (response.Content.Contains(Constant.STATUS_SUCCESS))
                    {
                        JObject objResponse = JObject.Parse(response.Content.ToString());
                        int     objCount    = (int)objResponse["ResponseCount"];
                        if (objCount == 1)
                        {
                            exists   = true;
                            docEntry = objResponse["Response"]["message"]["value"].ToString();
                            actualizarPropiedades(pago.ClaveMovil,
                                                  MainProcess.mConn.urlPatchSocioNegocio +
                                                  "?empId=" + pago.EMPRESA +
                                                  "&icId=" + pago.ClaveMovil,
                                                  "{\"Migrado\":\"Y\", \"DocEntry\": " + docEntry + ", \"Mensaje\":\"" +
                                                  (tipoDoc.Equals(Constant.DOCUMENTO_BORRADOR)
                                                    ? "Borrador creado" : "Documento creado") + "\"}");
                        }
                        else if (objCount > 1)
                        {
                            exists = true;
                            MainProcess.log.Error("PagoDAO > validarPago() > Document " + pago.ClaveMovil + " > El documento ya fue creado en SAP");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                exists = true;
                MainProcess.log.Error("PagoDAO > validarPago() > " + ex.Message);
            }

            return(exists);
        }
예제 #2
0
        public static int registrarPago(string sessionId, string routeId, string urlSL, PagoBean pago, string tipoPago = null)
        {
            int res = -1;

            try
            {
                var document = transformIncomingPayment(pago, tipoPago);
                if (document != null)
                {
                    File.WriteAllText(Util.castURL(MainProcess.mConn.pathJSONLog, "\\") + "PAGO_" + pago.ClaveMovil
                                      + ".json",
                                      SimpleJson.SerializeObject(document));
                    IRestResponse response = makeRequest(Util.castURL(urlSL, "/") + (tipoPago.Equals(Constant.DOCUMENTO_BORRADOR) ?
                                                                                     Constant.PAYMENT_DRAFTS : Constant.INCOMING_PAYMENTS), Method.POST, sessionId, routeId, document);
                    if (response.StatusCode == System.Net.HttpStatusCode.Created)
                    {
                        JObject jObject = JObject.Parse(response.Content.ToString());
                        res = int.Parse(jObject["DocEntry"].ToString().Trim());
                    }
                    else
                    {
                        res = -1;
                        MainProcess.log.Error("PagoDAO > registrarPago() > Document IncomingPayment " +
                                              pago.ClaveMovil + " > " + response.Content);
                        actualizarPropiedades(pago.ClaveMovil,
                                              MainProcess.mConn.urlPatchPagoRecibido +
                                              "?empId=" + pago.EMPRESA +
                                              "&icId=" + pago.ClaveMovil,
                                              "{\"Migrado\":\"N\", \"Mensaje\": \"" + Util.replaceEscChar(response.Content) + "\"}");
                    }
                }
            }
            catch (Exception ex)
            {
                res = -1;
                MainProcess.log.Error("PagoDAO > registrarPago() > " + ex.Message);
            }

            return(res);
        }
예제 #3
0
        public static IncomingPaymentBean transformIncomingPayment(PagoBean orct, string tipoPago)
        {
            try
            {
                var incomingPayment = new IncomingPaymentBean();

                incomingPayment.CardCode         = orct.SocioNegocio;
                incomingPayment.CounterReference = orct.EmpleadoVenta;
                incomingPayment.Remarks          = orct.Comentario;
                incomingPayment.JournalRemarks   = orct.Glosa;
                incomingPayment.DocDate          = DateTime.ParseExact(orct.FechaContable, "yyyyMMdd", CultureInfo.InvariantCulture);
                incomingPayment.TaxDate          = incomingPayment.DocDate;
                incomingPayment.DueDate          = incomingPayment.DocDate;
                incomingPayment.DocCurrency      = orct.Moneda;
                incomingPayment.U_MSSM_CLM       = orct.ClaveMovil;
                incomingPayment.U_MSSM_TRM       = tipoPago.Equals(Constant.DOCUMENTO_BORRADOR) ? "02": "05";

                switch (orct.TipoPago)
                {
                case "C":
                    incomingPayment.PaymentChecks.Add(new PaymentCheckBean()
                    {
                        CheckAccount = orct.ChequeCuenta,
                        BankCode     = orct.ChequeBanco,
                        DueDate      = !orct.ChequeVencimiento.Equals("") ?
                                       DateTime.ParseExact(orct.ChequeVencimiento, "yyyyMMdd", CultureInfo.InvariantCulture) :
                                       incomingPayment.DocDate,
                        CheckSum    = orct.ChequeImporte != null ? (double)orct.ChequeImporte : 0,
                        CheckNumber = orct.ChequeNumero != null ? (int)orct.ChequeNumero : 0
                    });
                    break;

                case "T":
                    incomingPayment.TransferAccount   = orct.TransferenciaCuenta;
                    incomingPayment.TransferDate      = incomingPayment.DocDate;
                    incomingPayment.TransferReference = orct.TransferenciaReferencia;
                    incomingPayment.TransferSum       = orct.TransferenciaImporte != null ? (double)orct.TransferenciaImporte : 0;
                    break;

                case "F":
                    incomingPayment.CashAccount = orct.EfectivoCuenta;
                    incomingPayment.CashSum     = orct.EfectivoImporte != null ? (double)orct.EfectivoImporte : 0;
                    break;

                default:
                    break;
                }


                if (orct.Lineas.Count > 0)
                {
                    var Lines = new List <PaymentInvoiceBean>();
                    foreach (var c in orct.Lineas)
                    {
                        Lines.Add(new PaymentInvoiceBean()
                        {
                            DocEntry   = c.FacturaCliente,
                            SumApplied = c.Importe
                        });
                    }

                    incomingPayment.PaymentInvoices = Lines;
                }

                return(incomingPayment);
            }
            catch (Exception ex)
            {
                MainProcess.log.Error("PagoDAO > transformIncomingPayment() > " + ex.Message);
                return(null);
            }
        }