public ProcessResult<String> GrabarNotaCreditoDetalle(PagoDomain obj)
        {
            ProcessResult<String> result = new ProcessResult<String>();

            var documentoId = "";

            try
            {
                PagoLogic svd = new PagoLogic();

                svd.documentoId = obj.documentoId;
                svd.productoId = obj.productoId;
                svd.cantidadProducto = obj.cantidadProducto;
                svd.monto = obj.monto;
                svd.referenciaPagoTarjeta = obj.referenciaPagoTarjeta;

                documentoId = EmpleadoLogicRepository.GrabarNotaCreditoDetalle(svd);
                result.Result = documentoId;
            }
            catch (Exception e)
            {
                result.IsSuccess = true;
                result.Exception = new ApplicationLayerException<SolicitudPermisoService>("Ocurrio un problema en el sistema", e);
            }

            return result;
        }
        public ProcessResult<List<PagoDomain>> BuscarComprobante(int numerosolicitud)
        {
            ProcessResult<List<PagoDomain>> list = new ProcessResult<List<PagoDomain>>();
            List<PagoDomain> listResult = new List<PagoDomain>();
            try
            {
                List<PagoLogic> documento = EmpleadoLogicRepository.BuscarComprobante(numerosolicitud);

                foreach (var item in documento)
                {
                    PagoDomain svd = new PagoDomain();

                    svd.numeroDocumento = item.numeroDocumento;
                    svd.razonSocial = item.razonSocial;
                    svd.ruc = item.ruc;
                    svd.telefono = item.telefono;
                    svd.fechaRegistroPago = item.fechaRegistroPago;
                    svd.tipoPago = item.tipoPago;
                    svd.totalVenta = item.totalVenta;
                    svd.moneda = item.moneda;
                    svd.Vuelto = item.Vuelto;
                    svd.monto = item.monto;
                    svd.Cajero = item.Cajero;
                    svd.nombreSucursal = item.nombreSucursal;
                    svd.nombreProducto = item.nombreProducto;
                    svd.unidadMedidaProducto = item.unidadMedidaProducto;
                    svd.precioProducto = item.precioProducto;
                    svd.cantidadProducto = item.cantidadProducto;
                    svd.subtotalProducto = item.subtotalProducto;
                    svd.montoRecibido = item.montoRecibido;
                    svd.documentoId = item.documentoId;

                    listResult.Add(svd);
                }

                list.Result = listResult;

            }
            catch (Exception e)
            {
                list.IsSuccess = true;
                list.Exception = new ApplicationLayerException<SolicitudPermisoService>("Ocurrio un problema en el sistema", e);
            }
            return list;
        }
        public ProcessResult<String> GrabarPago(PagoDomain obj)
        {
            ProcessResult<String> result = new ProcessResult<String>();

            var documentoId = "";

            try
            {
                PagoLogic svd = new PagoLogic();

                svd.numeroSolicitudVenta = obj.numeroSolicitudVenta;
                svd.tipoDocumentoId = obj.tipoDocumentoId;
                svd.tipoCambioId = obj.tipoCambioId;
                svd.tipoAtencion = obj.tipoAtencion;
                svd.observaciones = obj.observaciones;
                svd.montoTotal = obj.montoTotal;
                svd.montoRecibido = obj.montoRecibido;
                svd.Vuelto = obj.Vuelto;   
                svd.ruc = obj.ruc;
                svd.razonSocial = obj.razonSocial;
                svd.listaTipoPago = obj.listaTipoPago;

                documentoId = EmpleadoLogicRepository.GrabarPago(svd);

            }
            catch (Exception e)
            {
                result.IsSuccess = true;
                result.Exception = new ApplicationLayerException<SolicitudPermisoService>("Ocurrio un problema en el sistema", e);
            }

            return result;
        }
        public virtual JsonResult Grabar(PagoRequest request)
        {
            if (request.referenciaPagoTarjeta == null) request.referenciaPagoTarjeta = "";
            if (request.ruc == null) request.ruc = "";
            if (request.razonSocial == null) request.razonSocial = "";

            PagoDomain svd = new PagoDomain();
            svd.numeroSolicitudVenta = request.numeroSolicitudVenta;
            svd.tipoDocumentoId = request.tipoDocumentoId;
            svd.tipoCambioId = request.tipoCambioId;
            svd.tipoAtencion = request.tipoAtencion;
            svd.observaciones = request.observaciones;
            svd.montoTotal = request.montoTotal;
            svd.montoRecibido = request.montoRecibido;
            svd.Vuelto = request.Vuelto;
            svd.ruc = request.ruc;
            svd.razonSocial = request.razonSocial;
            svd.listaTipoPago = request.tipoPago;

            var solicitudes = solicitudVentaService.GrabarPago(svd);

            var comprobante = solicitudVentaService.BuscarComprobante(request.numeroSolicitudVenta);

            return Json(comprobante);
        }
        public virtual JsonResult GrabarNotaCreditoDetalle(PagoRequest request)
        {

            PagoDomain svd = new PagoDomain();
            svd.documentoId = request.documentoId;
            svd.productoId = request.productoId;
            svd.cantidadProducto = request.cantidadProducto;
            
            var solicitudes = solicitudVentaService.GrabarNotaCreditoDetalle(svd);

            return Json(solicitudes);
        }
        public virtual JsonResult GrabarPagoDetalle(PagoRequest request)
        {
            if (request.referenciaPagoTarjeta == null) request.referenciaPagoTarjeta = "";
            PagoDomain svd = new PagoDomain();
            svd.documentoId = request.documentoId;
            svd.tipoPagoId = request.tipoPagoId;
            svd.monedaId = request.monedaId;
            svd.monto = request.monto;
            svd.referenciaPagoTarjeta = request.referenciaPagoTarjeta;
           
            var solicitudes = solicitudVentaService.GrabarPagoDetalle(svd);

            return Json(solicitudes);
        }