//ConfiguracionPuntoVenta public void EstablecerConfiguracionPuntoVentaDeVenta(ConfiguracionPuntoVenta pConfiguracionPuntoVenta) { if (pConfiguracionPuntoVenta == null) { throw new ArgumentException(Mensajes.excepcion_ConfiguracionPuntoVentaDeVentaEnEstadoNuloOTransitorio); } this.CodigoPuntoDeVenta = pConfiguracionPuntoVenta.CodigoPuntoDeVenta; this.ConfiguracionPuntoVenta = pConfiguracionPuntoVenta; }
public static Venta CrearVenta(string pNumeroDocumento, DateTime pFechaDocumento, DateTime pFechaProceso, string pPeriodo, decimal pTotalNacional, decimal pTotalExtranjera, decimal pSubTotalNacional, decimal pSubTotalExtranjera, decimal pImpuestoIgvNacional, decimal pImpuestoIGVExtranjera, decimal pImpuestoIscNacional, decimal pImpuestoIscExtranjera, decimal pTotalNoAfectoNacional, decimal pTotalNoAfectoExtranjera, decimal pTotalAfectoNacional, decimal pValorVenta, decimal pPorcentajeDescuentoPrimero, decimal pPorcentajeDescuentoSegundo, decimal pTotalDescuentoNacional, decimal pTotalDescuentoExtranjera, decimal pTotalVueltoNacional, decimal pTotalVueltoExtranjera, decimal pTotalEfectivoNacional, decimal pTotalEfectivoExtranjera, string pPlaca, decimal pNumeroVale, decimal pTipoCambio, bool pProcesadoCierreZ, bool pProcesadoCierreX, int pKilometraje, bool pAfectaInventario, Moneda pMoneda, ClaseTipoCambio pClaseTipoCambio, Cliente pCliente, TipoDocumento pTipoDocumento, EstadoDocumento pEstadoDocumento, Vendedor pVendedor, CondicionPago pCondicionPago, TipoPago pTipoPago, ConfiguracionPuntoVenta pConfiguracionPuntoVenta, Almacen pAlmacen, TipoNegocio pTipoNegocio, UsuarioSistema pUsuarioSistema) { var venta = new Venta(); venta.GenerarNuevaIdentidad(); venta.NumeroDocumento = pNumeroDocumento; venta.FechaDocumento = pFechaDocumento; venta.FechaProceso = pFechaProceso; venta.Periodo = pPeriodo; venta.TotalNacional = pTotalNacional; venta.TotalExtranjera = pTotalExtranjera; venta.SubTotalNacional = pSubTotalNacional; venta.SubTotalExtranjera = pSubTotalExtranjera; venta.ImpuestoIgvNacional = pImpuestoIgvNacional; venta.ImpuestoIgvExtranjera = pImpuestoIGVExtranjera; venta.ImpuestoIscNacional = pImpuestoIscNacional; venta.ImpuestoIscExtranjera = pImpuestoIscExtranjera; venta.TotalNoAfectoNacional = pTotalNoAfectoNacional; venta.TotalNoAfectoExtranjera = pTotalNoAfectoExtranjera; venta.TotalAfectoNacional = pTotalAfectoNacional; venta.ValorVenta = pValorVenta; //Investigar de donde sale el valor venta ? venta.Subtotalventa venta.PorcentajeDescuentoPrimero = pPorcentajeDescuentoPrimero; venta.PorcentajeDescuentoSegundo = pPorcentajeDescuentoSegundo; venta.TotalDescuentoNacional = pTotalDescuentoNacional; venta.TotalDescuentoExtranjera = pTotalDescuentoExtranjera; venta.TotalVueltoNacional = pTotalVueltoNacional; venta.TotalVueltoExtranjera = pTotalVueltoExtranjera; venta.TotalEfectivoNacional = pTotalEfectivoNacional; venta.TotalEfectivoExtranjera = pTotalEfectivoExtranjera; venta.RucCliente = pCliente.Ruc; //pRucCliente; venta.NombreCompletoCliente = pCliente.NombresORazonSocial; //pNombreCompletoCliente; venta.Placa = pPlaca; venta.NumeroVale = pNumeroVale; venta.TipoCambio = pTipoCambio; venta.ProcesadoCierreZ = pProcesadoCierreZ; venta.ProcesadoCierreX = pProcesadoCierreX; venta.Kilometraje = pKilometraje; venta.AfectaInventario = pAfectaInventario; venta.Habilitar(); venta.EstablecerMonedaDeVenta(pMoneda); venta.EstablecerClaseTipoCambioDeVenta(pClaseTipoCambio); venta.EstablecerClienteDeVenta(pCliente); venta.EstablecerTipoDocumentoDeVenta(pTipoDocumento); venta.EstablecerEstadoDocumentoDeVenta(pEstadoDocumento); venta.EstablecerVendedorDeVenta(pVendedor); venta.EstablecerCondicionPagoDeVenta(pCondicionPago); venta.EstablecerTipoPagoDeVenta(pTipoPago); venta.EstablecerConfiguracionPuntoVentaDeVenta(pConfiguracionPuntoVenta); venta.EstablecerAlmacenDeVenta(pAlmacen); venta.EstablecerTipoNegocioDeVenta(pTipoNegocio); venta.EstablecerUsuarioSistemaDeVenta(pUsuarioSistema); venta.EstablecerImpuestoIgvDeCliente(pCliente.ImpuestoIgv); if (pCliente.ImpuestoIsc != null) { venta.EstablecerImpuestoIscDeCliente(pCliente.ImpuestoIsc); } return(venta); }
public void ObtenerCondicionYTipoPagoDeVenta(string pCodigoTipoDocumentoDeVenta, CondicionPago pCondicionPagoDeVenta, CondicionPago pCondicionPagoDefault, TipoPago pTipoPagoDeVenta, TipoPago pTipoPagoDefault, Cliente pCliente, ConfiguracionPuntoVenta pConfiguracionPuntoVenta, string pCodigoTipoDocumentoNotaCredito, decimal pTotalNacional, bool pEsVentaACuentaPorCobrar, decimal pSaldoDisponibleAdelanto) { switch (pTipoPagoDeVenta.CodigoTipoPago) { //Credito case EnumTipoPago.CodigoTipoPagoValesCredito: //Obtener Condicion de Pago a partir de entidad Cliente if (pCondicionPagoDeVenta == null) { pCondicionPagoDeVenta = pCondicionPagoDefault; //Creado Parametro en Setup CondicionPagoDefault if (pCondicionPagoDeVenta == null) { throw new Exception(Mensajes.advertencia_CondicionPagoPorVentasAsociadoAVentaNoExiste); } } //*** Obtener tipo de documento Nota de Credito if (pCodigoTipoDocumentoDeVenta.Trim() != pCodigoTipoDocumentoNotaCredito) { // *** este tipo de moneda en verdad se trae desde Configuracion General if (pCliente.CodigoMoneda == pConfiguracionPuntoVenta.CodigoMonedaCaja) { //Verificar limite de credito : Excede limite de credito if (pCliente.ValidarLimiteCredito(pTotalNacional) == true) { if (pCliente.DocumentosLibre != null) { //Parte en que se Inicia el Grabado de Consumo de FP6 //Tiene una Opción más de que se le facture al Crédito - ..... //// 'DOCUMENTOS LIBRES' que se consideran como venta consumo pago adelantado if (pCliente.DocumentosLibre.FirstOrDefault().TotalLibre >= pTotalNacional) { //Inserta registro en tabla : OP_DOCUMENTFREEDET //Actualizar Deuda del Cliente pCliente.ActualizarDeuda(pTotalNacional); //Adjuntar Cuentas por Cobrar si pago es al credito //Obtener Estado de Documento pEsVentaACuentaPorCobrar = true; } else { //Setear venta como Efectivo pTipoPagoDeVenta = pTipoPagoDefault; if (pTipoPagoDeVenta == null) { throw new Exception(Mensajes.advertencia_TipoDePagoAsociadoAVentaNoExiste); } throw new ArgumentException(Mensajes.advertencia_ClienteExcedeLimiteCredito); //Comentado } } else { //Setear venta como Efectivo pTipoPagoDeVenta = pTipoPagoDefault; if (pTipoPagoDeVenta == null) { throw new Exception(Mensajes.advertencia_TipoDePagoAsociadoAVentaNoExiste); } throw new ArgumentException(Mensajes.advertencia_ClienteExcedeLimiteCredito); //Comentado } } else { //Actualizar Deuda del Cliente pCliente.ActualizarDeuda(pTotalNacional); //Adjuntar Cuentas por Cobrar si pago es al credito pEsVentaACuentaPorCobrar = true; } } } break; case EnumTipoPago.CodigoTipoPagoContadoAdelantado: //Adelantado if (pCliente.ControlarSaldoDisponible == 1) { if (pTotalNacional > pSaldoDisponibleAdelanto) { //Excede el Saldo //nuevaVenta pTipoPagoDeVenta = pTipoPagoDefault; if (pTipoPagoDeVenta == null) { throw new Exception(Mensajes.advertencia_TipoDePagoAsociadoAVentaNoExiste); } } } break; case EnumTipoPago.CodigoTipoPagoOtros: case EnumTipoPago.CodigoTipoPagoTarjeta: break; } }