public OOB.Resultado.ResultadoEntidad <string> CtaxCobrar_Pago_Procesar(OOB.CtxCobrar.Pago.Ficha pago) { var rt = new OOB.Resultado.ResultadoEntidad <string>(); try { var pagoDTO = new DTO.CtaxCobrar.Pago.Ficha() { ClienteId = pago.ClienteId, ClienteCodigo = pago.ClienteCodigo, ClienteRif = pago.ClienteCiRif, ClienteNombre = pago.ClienteRazonSocial, ClienteDireccion = pago.ClienteDirFiscal, ClienteTelefono = pago.ClienteTelefono, VendedorId = pago.Vendedor.IdAuto, VendedorCodigo = pago.Vendedor.Codigo, VendedorNombre = pago.Vendedor.Nombre, VendedorCiRif = pago.Vendedor.CiRif, CobradorId = pago.Cobrador.IdAuto, CobradorCodigo = pago.Cobrador.Codigo, CobradorNombre = pago.Cobrador.Nombre, UsuarioId = pago.Usuario.IdAuto, UsuarioNombre = pago.Usuario.Nombre, FechaRecibo = pago.FechaRecibo, TotalMontoRecibo = pago.MontoRecibo, TotalMontoRecibido = pago.MontoRecibido, TotalMontoAnticipos = pago.MontoAnticipos, TotalMontoDescuentos = pago.MontoDescuentos, TotalMontoRetenciones = pago.MontoRetenciones, Notas = pago.Notas, MontoFavorCliente = pago.MontoFavorCliente, GenerarNotaCreditoMontoFavorCliente = pago.GenerarNotaCreditoMontoFavorCliente, }; var Comisiones = new List <DTO.CtaxCobrar.Pago.Comision>(); if (pago.Comisiones != null) { foreach (var com in pago.Comisiones) { var it = new DTO.CtaxCobrar.Pago.Comision() { IdClaveRelMedioPago = com.ClaveIdRelMedioPago, DocCxc_Id = com.IdDocCxc, DocCxc_Fecha = com.FechaDocCxc, DocCxc_FechaRecepcion = com.FechaRecepcionMercDocCxc, ComisionPorc = com.ComisionPorc, CastigoPorc = com.CastigoPorc, BaseCalculo = com.BaseCalculo, MontoRecibido = com.MontoRecibido, ToleranciaDias = com.ToleranciaDias, TotalComision = com.TotalComision, IsCastigado = com.IsCastigado, DiasTranscurridos = com.DiasTranscurridos, }; Comisiones.Add(it); } } pagoDTO.Comisiones = Comisiones; var retenciones = new List <DTO.CtaxCobrar.Pago.RetencionIva>(); if (pago.Retenciones != null) { foreach (var _rt in pago.Retenciones) { var it = new DTO.CtaxCobrar.Pago.RetencionIva() { DocumentoId = _rt.DocumentoId, DocumentoNro = _rt.DocumentoNro, DocumentoFecha = _rt.DocumentoFecha, DocumentoControl = _rt.DocumentoControl, DocumentoTasaIva = _rt.DocumentoTasaIva, DocumentoTipo = (DTO.CtaxCobrar.Pago.Enumerados.TipoDoc)_rt.DocumentoTipo, ComprobanteNro = _rt.ComprobanteNro, DeFecha = _rt.DeFecha, MontoExcento = _rt.MontoExcento, MontoBase = _rt.MontoBase, MontoImpuesto = _rt.MontoImpuesto, MontoTotal = _rt.MontoTotal, TasaRetencion = _rt.TasaRetencion, MontoRetencion = _rt.MontoRetencion, }; retenciones.Add(it); } } pagoDTO.RetencionesIva = retenciones; var mediosPago = new List <DTO.CtaxCobrar.Pago.MedioPago>(); if (pago.MediosPago != null) { foreach (var _mp in pago.MediosPago) { var it = new DTO.CtaxCobrar.Pago.MedioPago() { IdClave = _mp.IdClave, autoMedioId = _mp.MedioId, autoBancoId = _mp.BancoId, CodigoMedio = _mp.MedioCodigo, DescripcionMedio = _mp.MedioDescripcion, MontoRecibido = _mp.MontoRecibido, FechaMovimiento = _mp.FechaMovimiento, Referencia = _mp.NroReferencia, BancoCodigo = _mp.BancoCodigo, BancoDescripcion = _mp.BancoDescripcion, BancoNroCta = _mp.BancoNroCta, }; mediosPago.Add(it); } } pagoDTO.MediosPago = mediosPago; var doc = new List <DTO.CtaxCobrar.Pago.DocumentoCxC>(); if (pago.DocLiquidar != null) { foreach (var _doc in pago.DocLiquidar) { var it = new DTO.CtaxCobrar.Pago.DocumentoCxC() { autoId = _doc.IdDoc, DocumentoNumero = _doc.NumeroDoc, DocumentoFecha = _doc.FechaDoc, DocumentoTipo = (DTO.CtaxCobrar.Pago.Enumerados.TipoDoc)_doc.TipoDoc, DocumentoTotal = _doc.MontoDoc, fechaRecepcion = _doc.fechaRecepcion, ComisionPorc = _doc.ComisionPorc, CastigoPorc = _doc.CastigoPorc, TipoOeracion = (DTO.CtaxCobrar.Pago.Enumerados.Operacion)_doc.TipoOeracion, MontoAbonado = _doc.MontoAbonado, ToleranciaDias = _doc.ToleranciaDias, }; doc.Add(it); } } pagoDTO.DocumentosCxcPagar = doc; var resultDTO = _servicio.CtaxCobrar_Pago_Procesar(pagoDTO); if (resultDTO.Result == DTO.EnumResult.isError) { rt.Mensaje = resultDTO.Mensaje; rt.Result = OOB.Resultado.EnumResult.isError; return(rt); } rt.Entidad = resultDTO.Entidad; } catch (Exception e) { rt.Mensaje = e.Message; rt.Result = OOB.Resultado.EnumResult.isError; } return(rt); }
private void ProcesarPago() { var ficha = new OOB.CtxCobrar.Pago.Ficha(); ficha.Vendedor = FichaVendedor; ficha.Cobrador = (OOB.Empresa.Cobradores.Ficha)CB_COBRADORES.SelectedItem; ficha.Usuario = FichaUsuario; ficha.ClienteId = DocumentoCxC.IdAutCliente; ficha.ClienteCiRif = DocumentoCxC.ClienteCiRif; ficha.ClienteCodigo = DocumentoCxC.ClienteCodigo; ficha.ClienteRazonSocial = DocumentoCxC.ClienteNombre; ficha.ClienteDirFiscal = FichaCliente.DirFiscal; ficha.ClienteTelefono = FichaCliente.Telefonos; ficha.FechaRecibo = DTP_FECHA_RELACION.Value.Date; ficha.MontoRecibo = _montoRecibo; ficha.MontoRecibido = _montoPagado; ficha.MontoAnticipos = _montoAnticipos; ficha.MontoDescuentos = _montoDsctos; ficha.MontoRetenciones = _montoRetenciones; ficha.Notas = TB_NOTAS.Text; ficha.MontoFavorCliente = _montoFavorCliente; ficha.GenerarNotaCreditoMontoFavorCliente = true; ficha.DocLiquidar = new List <OOB.CtxCobrar.Pago.DocLiquida>(); foreach (var doc in Doc.Where(d => d.IsSelected)) { var it = new OOB.CtxCobrar.Pago.DocLiquida() { IdDoc = doc.Ficha.IdAuto, NumeroDoc = doc.Ficha.DocumentoNro, FechaDoc = doc.Ficha.FechaEmision, MontoDoc = (doc.Ficha.Total * doc.Ficha.Signo), TipoDoc = doc.Ficha.DocumentoTipo, fechaRecepcion = doc.FechaRecepcionMercancia, ToleranciaDias = doc.Ficha.DiasTolerancia, ComisionPorc = doc.Ficha.ComisionCobranzaP, CastigoPorc = doc.Ficha.CastigoP, TipoOeracion = doc.MontoAbonado == doc.Ficha.Saldo ? OOB.CtxCobrar.Enumerados.PorTipoOpreacion.Pago: OOB.CtxCobrar.Enumerados.PorTipoOpreacion.Abono, MontoAbonado = (doc.MontoAbonado * doc.Ficha.Signo), }; ficha.DocLiquidar.Add(it); } ficha.MediosPago = new List <OOB.CtxCobrar.Pago.MedioPago>(); foreach (var mp in ListaMedios) { var it = new OOB.CtxCobrar.Pago.MedioPago() { IdClave = mp.ClaveId, MedioId = mp.Medio.IdAuto, MedioCodigo = mp.Medio.Codigo, MedioDescripcion = mp.Medio.Nombre, BancoId = mp.Banco.Id, BancoCodigo = mp.Banco.Codigo, BancoDescripcion = mp.Banco.Nombre, BancoNroCta = mp.Banco.Numero, MontoRecibido = mp.Importe, FechaMovimiento = mp.Fecha, NroReferencia = mp.Referencia, }; ficha.MediosPago.Add(it); } ficha.Retenciones = new List <OOB.CtxCobrar.Pago.RetencionIva>(); foreach (var doc in Doc.Where(d => d.IsSelected && d.MontoPorRetencionIva > 0)) { var VentaId = ""; var VentaControl = ""; var VentaNumero = ""; var VentaFechaEmision = new DateTime(); var VentaTipo = OOB.Venta.Enumerados.TipoDocumento.SinDefinir; var VentaTasaIva_1 = 0.0m; VentaId = doc.Ficha.IdAutoDocumentoVenta; VentaControl = doc.RetencionPorIva.NroControl; VentaNumero = doc.RetencionPorIva.DocumentoNro; VentaFechaEmision = doc.RetencionPorIva.FechaEmision; VentaTasaIva_1 = doc.RetencionPorIva.TasaIva; switch (doc.Ficha.DocumentoTipo) { case OOB.CtxCobrar.Enumerados.PorTipoDocumento.Factura: VentaTipo = OOB.Venta.Enumerados.TipoDocumento.Factura; break; case OOB.CtxCobrar.Enumerados.PorTipoDocumento.NtDebito: VentaTipo = OOB.Venta.Enumerados.TipoDocumento.NDebito; break; case OOB.CtxCobrar.Enumerados.PorTipoDocumento.NtCredito: VentaTipo = OOB.Venta.Enumerados.TipoDocumento.NCredito; break; } var it = new OOB.CtxCobrar.Pago.RetencionIva() { DocumentoId = VentaId, DocumentoControl = VentaControl, DocumentoNro = VentaNumero, DocumentoFecha = VentaFechaEmision, DocumentoTasaIva = VentaTasaIva_1, DocumentoTipo = VentaTipo, ComprobanteNro = doc.RetencionPorIva.ComprobanteNro, DeFecha = doc.RetencionPorIva.FechaRetencion, MontoBase = doc.RetencionPorIva.MontoBase, MontoExcento = doc.RetencionPorIva.MontoExcento, MontoImpuesto = doc.RetencionPorIva.MontoImpuesto, MontoRetencion = doc.RetencionPorIva.MontoRetencion, MontoTotal = doc.RetencionPorIva.MontoTotal, TasaRetencion = doc.RetencionPorIva.TasaRetencion, }; ficha.Retenciones.Add(it); } ficha.Comisiones = new List <OOB.CtxCobrar.Pago.Comision>(); foreach (var doc in ComisionesVend.Comision) { var it = new OOB.CtxCobrar.Pago.Comision() { ClaveIdRelMedioPago = doc.Pago.ClaveId, IdDocCxc = doc.DocLiquidar.Ficha.IdAuto, FechaDocCxc = doc.DocLiquidar.FechaEmi, FechaRecepcionMercDocCxc = doc.FechaRecepcionMercancia, MontoDocCxc = doc.DocLiquidar.Ficha.Total, ComisionPorc = doc.DocLiquidar.Ficha.ComisionCobranzaP, CastigoPorc = doc.DocLiquidar.Ficha.CastigoP, BaseCalculo = doc.BaseCalculo, MontoRecibido = doc.SobreEsteMontoRecibido, ToleranciaDias = doc.DocLiquidar.Ficha.DiasTolerancia, TotalComision = doc.ComisionMonto, IsCastigado = doc.AplicaCastigo, DiasTranscurridos = doc.DiasTranscurridos, }; ficha.Comisiones.Add(it); } var r01 = Globals.MyData.CtaxCobrar_Pago_Procesar(ficha); if (r01.Result == OOB.Resultado.EnumResult.isError) { Helpers.Msg.Error(r01.Mensaje); return; } Helpers.Msg.AgregarOk(); this.Close(); }