/// <summary> /// save new receivable transaction /// </summary> /// <param name="receivable"></param> /// <returns></returns> public OperationResult SaveReceivableTransaction(RM20101 receivable) { var operationResult = new OperationResult(); logger.Debug("Receivable is being created..."); using (eConnectMethods e = new eConnectMethods()) { try { // Instantiate a taPMTransactionInsert XML node object taRMTransaction transaction = new taRMTransaction(); //Populate elements of the taUpdateCreateItemRcd XML node object transaction.RMDTYPAL = receivable.RMDTYPAL; transaction.DOCNUMBR = receivable.DOCNUMBR; transaction.DOCDATE = receivable.DOCDATE.ToShortDateString(); transaction.BACHNUMB = receivable.BACHNUMB; transaction.CUSTNMBR = receivable.CUSTNMBR; transaction.DOCAMNT = receivable.DOCAMNT; transaction.SLSAMNT = receivable.SLSAMNT; // Instantiate a PMTransactionType schema object RMTransactionType transactiontype = new RMTransactionType(); // Populate the PMTransactionType schema with the taPMTransactionInsert XML node transactiontype.taRMTransaction = transaction; RMTransactionType[] receivableTransaction = { transactiontype }; // Instantiate an eConnectType schema object eConnectType eConnect = new eConnectType(); // Instantiate a Memory Stream object MemoryStream memoryStream = new MemoryStream(); // Create an XML serializer object XmlSerializer serializer = new XmlSerializer(eConnect.GetType()); // Populate the eConnectType object with the PMTransactionType schema object eConnect.RMTransactionType = receivableTransaction; // Serialize the eConnectType. serializer.Serialize(memoryStream, eConnect); // Reset the position of the memory stream to the start. memoryStream.Position = 0; // Create an XmlDocument from the serialized eConnectType in memory. XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(memoryStream); memoryStream.Close(); // Call eConnect to process the XmlDocument. e.CreateEntity(_dynamicsConnection, xmlDocument.OuterXml); operationResult.Success = true; operationResult.Message = "Success"; } // The eConnectException class will catch eConnect business logic errors. // display the error message on the console catch (eConnectException exc) { Console.Write(exc.ToString()); operationResult.Success = false; operationResult.Message = "Error"; logger.ErrorFormat("Error saving new payables transaction: {0} ", exc.ToString()); } // Catch any system error that might occurr. // display the error message on the console catch (System.Exception ex) { Console.Write(ex.ToString()); operationResult.Success = false; operationResult.Message = "Error"; logger.ErrorFormat("Error saving new payables transaction: {0} ", ex.ToString()); } finally { // Call the Dispose method to release the resources // of the eConnectMethds object e.Dispose(); } } // end of using statement return(operationResult); }
/// <summary> /// Set Header Values /// <param name="transaction"></param> /// <param name="DOCNUMBR"></param> /// </summary> private taRMTransaction SetTransactionValues(RMTransactionHeader transaction, string DOCNUMBR) { try { var rmTransaction = new taRMTransaction { RMDTYPAL = transaction.RMDTYPAL, DOCNUMBR = transaction.DOCNUMBR, //DOCDATE = transaction.DOCDATE.ToString("dd/MM/yyyy"), DOCDATE = transaction.DOCDATE.ToString("yyyy-MM-dd"), BACHNUMB = transaction.BACHNUMB, CUSTNMBR = transaction.CUSTNMBR, DOCAMNT = transaction.DOCAMNT, SLSAMNT = transaction.SLSAMNT, DOCDESCR = transaction.DOCDESCR, ADRSCODE = transaction.ADRSCODE, SLPRSNID = transaction.SLPRSNID, SALSTERR = transaction.SALSTERR, SHIPMTHD = transaction.SHIPMTHD, TAXSCHID = transaction.TAXSCHID, CSTPONBR = transaction.CSTPONBR, COSTAMNT = transaction.COSTAMNT.GetValueOrDefault(), TRDISAMT = transaction.TRDISAMT.GetValueOrDefault(), TRDDISCT = transaction.TRDDISCT.GetValueOrDefault(), FRTAMNT = transaction.FRTAMNT.GetValueOrDefault(), MISCAMNT = transaction.MISCAMNT.GetValueOrDefault(), TAXAMNT = transaction.TAXAMNT.GetValueOrDefault(), BKTSLSAM = transaction.BKTSLSAM.GetValueOrDefault(), BKTFRTAM = transaction.BKTFRTAM.GetValueOrDefault(), BKTMSCAM = transaction.BKTMSCAM.GetValueOrDefault(), CASHAMNT = transaction.CASHAMNT.GetValueOrDefault(), CBKIDCSH = transaction.CBKIDCSH, //CASHDATE = transaction.CASHDATE.ToShortDateString(), DCNUMCSH = transaction.DCNUMCSH, CHEKAMNT = transaction.CHEKAMNT.GetValueOrDefault(), CBKIDCHK = transaction.CBKIDCHK, CBKIDCRD = transaction.CBKIDCRD, CHEKNMBR = transaction.CHEKNMBR, //CHEKDATE = transaction.CHEKDATE.ToShortDateString(), DCNUMCHK = transaction.DCNUMCHK, CRCRDAMT = transaction.CRCRDAMT.GetValueOrDefault(), CRCRDNAM = transaction.CRCRDNAM, RCTNCCRD = transaction.RCTNCCRD, //CRCARDDT = transaction.CRCARDDT.ToShortDateString(), DCNUMCRD = transaction.DCNUMCRD, DISCRTND = transaction.DISCRTND.GetValueOrDefault(), DISTKNAM = transaction.DISTKNAM.GetValueOrDefault(), WROFAMNT = transaction.WROFAMNT.GetValueOrDefault(), PPSAMDED = transaction.PPSAMDED.GetValueOrDefault(), GSTDSAMT = transaction.GSTDSAMT.GetValueOrDefault(), PYMTRMID = transaction.PYMTRMID, DISAVAMT = transaction.DISAVAMT.GetValueOrDefault(), DSCDLRAM = transaction.DSCDLRAM.GetValueOrDefault(), DSCPCTAM = transaction.DSCPCTAM.GetValueOrDefault(), LSTUSRED = transaction.LSTUSRED, PTDUSRID = transaction.PTDUSRID, DistRef = transaction.DistRef, BatchCHEKBKID = transaction.BatchCHEKBKID, //DUEDATE = transaction.DUEDATE.ToShortDateString(), //DISCDATE = transaction.DISCDATE.ToShortDateString(), CURNCYID = transaction.CURNCYID, XCHGRATE = transaction.XCHGRATE.GetValueOrDefault(), RATETPID = transaction.RATETPID, //EXPNDATE = transaction.EXPNDATE.ToShortDateString(), //EXCHDATE = transaction.EXCHDATE.ToShortDateString(), EXGTBDSC = transaction.EXGTBDSC, EXTBLSRC = transaction.EXTBLSRC, RATEEXPR = transaction.RATEEXPR.GetValueOrDefault(), DYSTINCR = transaction.DYSTINCR.GetValueOrDefault(), RATEVARC = transaction.RATEVARC.GetValueOrDefault(), TRXDTDEF = transaction.TRXDTDEF.GetValueOrDefault(), RTCLCMTD = transaction.RTCLCMTD.GetValueOrDefault(), PRVDSLMT = transaction.PRVDSLMT.GetValueOrDefault(), DATELMTS = transaction.DATELMTS.GetValueOrDefault(), //TIME1 = transaction.TIME1.ToShortDateString(), COMDLRAM = transaction.COMDLRAM.GetValueOrDefault(), COMAPPTO = transaction.COMAPPTO.GetValueOrDefault(), RequesterTrx = transaction.RequesterTrx.GetValueOrDefault(), CREATEDIST = transaction.CREATEDIST.GetValueOrDefault(), }; //if (transaction.DOCDATE != null) //{ // rmTransaction.DOCDATE = transaction.DOCDATE.ToShortDateString(); //} if (transaction.CASHDATE != null) { rmTransaction.CASHDATE = transaction.CASHDATE.GetValueOrDefault().ToString("yyyy-MM-dd");; } if (transaction.CHEKDATE != null) { rmTransaction.CHEKDATE = transaction.CHEKDATE.GetValueOrDefault().ToString("yyyy-MM-dd");; } if (transaction.CRCARDDT != null) { rmTransaction.CRCARDDT = transaction.CRCARDDT.GetValueOrDefault().ToString("yyyy-MM-dd");; } if (transaction.DUEDATE != null) { rmTransaction.DUEDATE = transaction.DUEDATE.GetValueOrDefault().ToString("yyyy-MM-dd");; } if (transaction.DISCDATE != null) { rmTransaction.DISCDATE = transaction.DISCDATE.GetValueOrDefault().ToString("yyyy-MM-dd");; } if (transaction.EXPNDATE != null) { rmTransaction.EXPNDATE = transaction.EXPNDATE.GetValueOrDefault().ToString("yyyy-MM-dd");; } if (transaction.EXCHDATE != null) { rmTransaction.EXCHDATE = transaction.EXCHDATE.GetValueOrDefault().ToString("yyyy-MM-dd");; } if (transaction.TIME1 != null) { rmTransaction.TIME1 = transaction.TIME1.GetValueOrDefault().ToString("yyyy-MM-dd"); } return(rmTransaction); } catch (Exception) { //logW.LogExeption("Econnect", 2, ex); throw; } }
/// <summary> /// Integra nc de AR y aplica facturas /// </summary> /// <param name="worker"></param> /// <param name="e"></param> private void IntegraRMNotaCreditoYAplicaciones(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[] { "Credit memo batch " + nroLote, "Credit memo 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 <RMTransactionType> masterRMTransactionType = new List <RMTransactionType>(); List <RMApplyType> masterRMApplyType = new List <RMApplyType>(); try { bool error = false; decimal valorBoleto = decimal.Round(dato.ValorBoleto, 2); decimal valorPago = decimal.Round(dato.ValorPago, 2); decimal juros = decimal.Round(dato.Juros, 2); //RMCashReceiptsType RMCashReceiptsTypeEntry = new RMCashReceiptsType(); RMTransactionType RMTransactionTypeEntry = new RMTransactionType(); taRMTransaction rmTransactionItem = new taRMTransaction(); //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); rmTransactionItem.CUSTNMBR = docGP.Custnmbr; // custData["custnmbr"].ToString(); //_custnmbr; rmTransactionItem.DOCNUMBR = "CC" + dato.NumeroCobro; rmTransactionItem.DOCDATE = fechaCobro.ToString(parametrosCobrosXL.FormatoFecha); //System.Configuration.ConfigurationManager.AppSettings[_pre + "_FormatoFecha"]); rmTransactionItem.RMDTYPAL = 7; rmTransactionItem.DOCAMNT = juros; rmTransactionItem.SLSAMNT = juros; rmTransactionItem.BACHNUMB = nroLote; rmTransactionItem.DOCDESCR = dato.NumeroFacturaYCuota; rmTransactionItem.CSTPONBR = dato.NombrePagador; RMApplyType RMApplyTypeEntry = new RMApplyType(); taRMApply ApplyItem = new taRMApply(); ApplyItem.APTODCNM = docGP.Docnmbr; // custData["docnumbr"].ToString(); // _docnmbr.Trim(); ApplyItem.APFRDCNM = "CC" + dato.NumeroCobro; ApplyItem.APPTOAMT = juros - Convert.ToDecimal(docGP.Amount) > 0 ? Convert.ToDecimal(docGP.Amount) : juros; ApplyItem.APFRDCTY = 7; 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(); RMTransactionTypeEntry.taRMTransaction = rmTransactionItem; masterRMTransactionType.Add(RMTransactionTypeEntry); eConnDoc.RMTransactionType = masterRMTransactionType.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 + ": Credit Memo 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[] { "Credit memo uploading finished.", "Credit memo uploading finished." }); }