/// <summary> /// /// </summary> /// <param name="cashreceipt"></param> /// <param name="DOCNUMBR"></param> /// <returns></returns> private taRMCashReceiptInsert SetReceiptValues(RMCashReceipt cashreceipt, string DOCNUMBR) { try { var rmcashreceipt = new taRMCashReceiptInsert { CUSTNMBR = cashreceipt.CUSTNMBR, DOCNUMBR = DOCNUMBR, DOCDATE = cashreceipt.DOCDATE.ToString("yyyy-MM-dd"), ORTRXAMT = cashreceipt.ORTRXAMT, GLPOSTDT = cashreceipt.GLPOSTDT.ToString("yyyy-MM-dd"), BACHNUMB = cashreceipt.BACHNUMB, CSHRCTYP = cashreceipt.CSHRCTYP, CHEKBKID = cashreceipt.CHEKBKID, CHEKNMBR = cashreceipt.CHEKNMBR, CRCARDID = cashreceipt.CRCARDID, TRXDSCRN = cashreceipt.TRXDSCRN, LSTUSRED = cashreceipt.LSTUSRED, BatchCHEKBKID = cashreceipt.BatchCHEKBKID, CURNCYID = cashreceipt.CURNCYID, XCHGRATE = cashreceipt.XCHGRATE.GetValueOrDefault(), RATETPID = cashreceipt.RATETPID, //EXPNDATE = cashreceipt.EXPNDATE //EXCHDATE = cashreceipt.EXCHDATE EXGTBDSC = cashreceipt.EXGTBDSC, EXTBLSRC = cashreceipt.EXTBLSRC, RATEEXPR = cashreceipt.RATEEXPR.GetValueOrDefault(), DYSTINCR = cashreceipt.DYSTINCR.GetValueOrDefault(), RATEVARC = cashreceipt.RATEVARC.GetValueOrDefault(), TRXDTDEF = cashreceipt.TRXDTDEF.GetValueOrDefault(), RTCLCMTD = cashreceipt.RTCLCMTD.GetValueOrDefault(), PRVDSLMT = cashreceipt.PRVDSLMT.GetValueOrDefault(), DATELMTS = cashreceipt.DATELMTS.GetValueOrDefault(), CREATEDIST = cashreceipt.CREATEDIST.GetValueOrDefault(), RequesterTrx = cashreceipt.RequesterTrx.GetValueOrDefault() }; if (cashreceipt.EXPNDATE != null) { rmcashreceipt.EXPNDATE = cashreceipt.EXPNDATE.GetValueOrDefault().ToString("yyyy-MM-dd"); } if (cashreceipt.EXCHDATE != null) { rmcashreceipt.EXCHDATE = cashreceipt.EXCHDATE.GetValueOrDefault().ToString("yyyy-MM-dd"); } if (cashreceipt.TIME1 != null) { rmcashreceipt.TIME1 = cashreceipt.TIME1.GetValueOrDefault().ToString("yyyy-MM-dd"); } return(rmcashreceipt); } catch (Exception) { throw; } }
/// <summary> /// Integra recibos de cobro y aplica a facturas /// </summary> /// <param name="worker"></param> /// <param name="e"></param> private void IntegraRMCobrosYAplicaciones(BackgroundWorker worker, DoWorkEventArgs e) { string mensajeOk = ""; string mensajeError = ""; Model.RMFactura docGP = null; Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); string nroLote = DateTime.Now.ToString("yyyyMMdd.HHmmss"); worker.ReportProgress(0, new string[] { "Collection receipt batch " + nroLote, "Collection receipt batch " + nroLote }); cantidad = 0; foreach (var dato in _cobros.LBoletosBrasil) { mensajeOk = ""; mensajeError = ""; DateTime fechaCobro = dato.FechaTotalLiquidado.AddDays(parametrosCobrosXL.FechaTotalLiquidadoAddDays); using (eConnectMethods eConnectMethods = new eConnectMethods()) { eConnectMethods.RequireProxyService = true; List <RMCashReceiptsType> masterRMCashReceiptsType = new List <RMCashReceiptsType>(); List <RMApplyType> masterRMApplyType = new List <RMApplyType>(); try { bool error = false; RMCashReceiptsType RMCashReceiptsTypeEntry = new RMCashReceiptsType(); taRMCashReceiptInsert CashReceiptItem = new taRMCashReceiptInsert(); //el número de la planilla puede venir así: B-10201, B-10201., B-10201 01, B-10201. 01 //string numFactura = dato.NumeroFactura.Trim().Length > 7 ? Model.Utiles.Izquierda(dato.NumeroFactura, 8) : Model.Utiles.Izquierda(dato.NumeroFactura, 7); docGP = this.getCustnmbrDocnumbr(dato.NumeroFactura.Trim(), dato.FechaVencimientoPago); decimal valorBoleto = decimal.Round(dato.ValorBoleto, 2); decimal valorPago = decimal.Round(dato.ValorPago, 2); CashReceiptItem.CUSTNMBR = docGP.Custnmbr; // custData["custnmbr"].ToString(); //_custnmbr; CashReceiptItem.DOCNUMBR = "RB" + dato.NumeroCobro; CashReceiptItem.DOCDATE = fechaCobro.ToString(parametrosCobrosXL.FormatoFecha); //System.Configuration.ConfigurationManager.AppSettings[_pre + "_FormatoFecha"]); CashReceiptItem.ORTRXAMT = valorPago; CashReceiptItem.GLPOSTDT = CashReceiptItem.DOCDATE; CashReceiptItem.BACHNUMB = nroLote; CashReceiptItem.CSHRCTYP = 0; CashReceiptItem.CHEKBKID = parametrosCobrosXL.ChekbkidDefault; //System.Configuration.ConfigurationManager.AppSettings[_pre + "_CHEKBKID"]; CashReceiptItem.CHEKNMBR = dato.NumeroCobro.ToString(); CashReceiptItem.TRXDSCRN = dato.NumeroFacturaYCuota; RMApplyType RMApplyTypeEntry = new RMApplyType(); taRMApply ApplyItem = new taRMApply(); ApplyItem.APTODCNM = docGP.Docnmbr; // custData["docnumbr"].ToString(); // _docnmbr.Trim(); ApplyItem.APFRDCNM = "RB" + dato.NumeroCobro; ApplyItem.APPTOAMT = valorPago - Convert.ToDecimal(docGP.Amount) > 0 ? Convert.ToDecimal(docGP.Amount) : valorPago; ApplyItem.APFRDCTY = 9; ApplyItem.APTODCTY = 1; ApplyItem.APPLYDATE = fechaCobro.ToString(parametrosCobrosXL.FormatoFecha); // System.Configuration.ConfigurationManager.AppSettings[_pre + "_FormatoFecha"]); ApplyItem.GLPOSTDT = fechaCobro.ToString(parametrosCobrosXL.FormatoFecha); // System.Configuration.ConfigurationManager.AppSettings[_pre + "_FormatoFecha"]); cantidad++; if (!error) { eConnectType eConnDoc = new eConnectType(); RMCashReceiptsTypeEntry.taRMCashReceiptInsert = CashReceiptItem; masterRMCashReceiptsType.Add(RMCashReceiptsTypeEntry); eConnDoc.RMCashReceiptsType = masterRMCashReceiptsType.ToArray(); RMApplyTypeEntry.taRMApply = ApplyItem; masterRMApplyType.Add(RMApplyTypeEntry); eConnDoc.RMApplyType = masterRMApplyType.ToArray(); XmlDocument xmlDoc = Serializa(eConnDoc); eConnectMethods.CreateEntity(parametrosCobrosXL.ConnStringTarget, xmlDoc.OuterXml); mensajeOk = dato.NumeroFactura + " - " + dato.NumeroCobro + ": Collection receipt OK" + Environment.NewLine; } else { mensajeError = dato.NumeroFactura + " - " + dato.NumeroCobro + ": Error" + Environment.NewLine; } System.Threading.Thread.Sleep(100); } catch (eConnectException ec) { mensajeError = dato.NumeroFactura + " - " + dato.NumeroCobro + " eConn: " + ec.Message + Environment.NewLine + ec.StackTrace; } catch (Exception ex) { mensajeError = dato.NumeroFactura + " - " + dato.NumeroCobro + ": " + ex.Message + Environment.NewLine + ex.StackTrace; } finally { eConnectMethods.Dispose(); worker.ReportProgress(0, new string[] { mensajeError, mensajeOk }); } } } worker.ReportProgress(0, new string[] { "Collection receipt uploading finished.", "Collection receipt uploading finished." }); }