//ClaseTipoCambio public void EstablecerClaseTipoCambioDeCliente(ClaseTipoCambio pClaseTipoCambio) { if (pClaseTipoCambio == null) { throw new ArgumentException(Mensajes.excepcion_ClaseTipoCambioDeClienteEnEstadoNuloOTransitorio); } this.CodigoClaseTipoCambio = pClaseTipoCambio.CodigoClaseTipoCambio; this.ClaseTipoCambio = pClaseTipoCambio; }
public void EstablecerClaseTipoCambioOrigenDeConfiguracionGeneral(ClaseTipoCambio pClaseTipoCambioOrigen) { if (pClaseTipoCambioOrigen == null) { throw new ArgumentException(Mensajes.excepcion_ClaseTipoCambioOrigenDeConfiguracionGeneralEnEstadoNuloOTransitorio); } //relacion this.CodigoClaseTipoCambioOrigen = pClaseTipoCambioOrigen.CodigoClaseTipoCambio; this.ClaseTipoCambioOrigen = pClaseTipoCambioOrigen; }
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); }
//este metodo no va public void CalcularVueltoVentaSegunMoneda(Venta pVenta, ClaseTipoCambio pClaseTipoCambio, bool pFlagCambioMonedaVuelto, int pCantidadDecimalPrecio, decimal pEfectivoVueltoExtranjera, decimal pTotalVueltoSegunMoneda, decimal pTotalFaltanteExtranjera, decimal pTotalFaltanteNacional, string pCodigoMonedaVuelto, string pCodigoMonedaBase, string pCodigoMonedaExtranjera) { decimal totalEfectivoPagoNacional = pVenta.TotalEfectivoNacional; decimal totalEfectivoPagoExtranjera = pVenta.TotalEfectivoExtranjera; decimal montoPagadoNacional = 0; decimal montoPagadoExtranjera = 0; decimal totalVueltoNacional = 0; decimal totalVueltoExtranjera = 0; decimal totalFaltanteNacional = 0; decimal totalFaltanteExtranjera = 0; //Puede se moneda extranjera en cambio de moneda vuelto pCodigoMonedaVuelto = pVenta.CodigoMoneda; //Obtener totales desde tarjeta pVenta.CalcularTotalPagoConTarjeta(totalEfectivoPagoNacional, totalEfectivoPagoExtranjera, pCodigoMonedaBase); //obtener tipo de cambio de venta: VALIDARLO var tipoDeCambioANacionalSeleccionado = (from tipoCambioNacional in pClaseTipoCambio.TiposDeCambio where tipoCambioNacional.CodigoMonedaDestino == pCodigoMonedaBase select tipoCambioNacional).FirstOrDefault(); var tipoDeCambioAExtranjeraSeleccionado = (from tipoCambioExtranjera in pClaseTipoCambio.TiposDeCambio where tipoCambioExtranjera.CodigoMonedaDestino == pCodigoMonedaExtranjera select tipoCambioExtranjera).FirstOrDefault(); //Calcular total Pagos para calcular el vuelto segun moneda if (pVenta.CodigoMoneda == pCodigoMonedaBase) { montoPagadoNacional = totalEfectivoPagoNacional + ObtenerConversionSegunTipoDeCambio(totalEfectivoPagoExtranjera, tipoDeCambioANacionalSeleccionado.MontoTipoDeCambio, tipoDeCambioANacionalSeleccionado.Operador, pCantidadDecimalPrecio); montoPagadoExtranjera = ObtenerConversionSegunTipoDeCambio(montoPagadoNacional, tipoDeCambioAExtranjeraSeleccionado.MontoTipoDeCambio, tipoDeCambioAExtranjeraSeleccionado.Operador, pCantidadDecimalPrecio); } else { montoPagadoExtranjera = totalEfectivoPagoExtranjera + ObtenerConversionSegunTipoDeCambio(totalEfectivoPagoNacional, tipoDeCambioAExtranjeraSeleccionado.MontoTipoDeCambio, tipoDeCambioAExtranjeraSeleccionado.Operador, pCantidadDecimalPrecio); montoPagadoNacional = ObtenerConversionSegunTipoDeCambio(montoPagadoExtranjera, tipoDeCambioANacionalSeleccionado.MontoTipoDeCambio, tipoDeCambioANacionalSeleccionado.Operador, pCantidadDecimalPrecio); } //Calcular vuelto segun moneda ////Verificar Faltantes en doble moneda if (pCodigoMonedaVuelto == pCodigoMonedaBase) { if (montoPagadoNacional >= pVenta.TotalNacional) //Entonces hay vuelto { totalVueltoNacional = Math.Round(montoPagadoNacional - pVenta.TotalNacional, pCantidadDecimalPrecio); totalVueltoExtranjera = ObtenerConversionSegunTipoDeCambio(totalVueltoNacional, tipoDeCambioAExtranjeraSeleccionado.MontoTipoDeCambio, tipoDeCambioAExtranjeraSeleccionado.Operador, pCantidadDecimalPrecio); totalFaltanteNacional = 0; totalFaltanteExtranjera = 0; } else { totalVueltoNacional = 0; totalVueltoExtranjera = 0; totalFaltanteNacional = pVenta.TotalNacional - montoPagadoNacional; totalFaltanteExtranjera = ObtenerConversionSegunTipoDeCambio(pTotalFaltanteNacional, tipoDeCambioAExtranjeraSeleccionado.MontoTipoDeCambio, tipoDeCambioAExtranjeraSeleccionado.Operador, pCantidadDecimalPrecio); } } else { if (montoPagadoExtranjera >= pVenta.TotalExtranjera) { totalVueltoExtranjera = Math.Round(montoPagadoExtranjera - pVenta.TotalExtranjera, pCantidadDecimalPrecio); totalVueltoNacional = ObtenerConversionSegunTipoDeCambio(totalVueltoExtranjera, tipoDeCambioANacionalSeleccionado.MontoTipoDeCambio, tipoDeCambioANacionalSeleccionado.Operador, pCantidadDecimalPrecio); totalFaltanteNacional = 0; totalFaltanteExtranjera = 0; } else { totalVueltoExtranjera = 0; totalVueltoNacional = 0; totalFaltanteExtranjera = pVenta.TotalExtranjera - montoPagadoExtranjera; totalFaltanteNacional = ObtenerConversionSegunTipoDeCambio(pTotalFaltanteExtranjera, tipoDeCambioANacionalSeleccionado.MontoTipoDeCambio, tipoDeCambioANacionalSeleccionado.Operador, pCantidadDecimalPrecio); } } //Resultado en Pantalla pTotalFaltanteNacional = totalFaltanteNacional; pTotalFaltanteExtranjera = totalFaltanteExtranjera; //si se queiere saber sobre el simbolo de moenda tomar propiedad: IdMonedaVenta; idMonedaVuelto es temporal pTotalVueltoSegunMoneda = pCodigoMonedaVuelto == pCodigoMonedaBase ? totalVueltoNacional : totalVueltoExtranjera; //Obteniendo resultados de pago, vuelto, faltante pVenta.ValidarYActualizarPagoEnEfectivo(totalVueltoNacional, totalVueltoExtranjera, pCodigoMonedaVuelto, pCodigoMonedaBase); //solo cuando hay vuelto extranjero o bimoneda if (pFlagCambioMonedaVuelto == true) { CalcularVueltoVentaBimoneda(totalVueltoExtranjera, totalVueltoNacional, pTotalVueltoSegunMoneda, pEfectivoVueltoExtranjera, pCodigoMonedaVuelto, pCodigoMonedaBase, tipoDeCambioANacionalSeleccionado, pCantidadDecimalPrecio); } // //Actualizamos Venta Actual, con datos del pago // pVenta.TotalVueltoNacional = totalVueltoNacional; // pVenta.TotalVueltoExtranjera = totalVueltoExtranjera; }