Exemplo n.º 1
0
        //ConfiguracionPuntoVenta
        public void EstablecerConfiguracionPuntoVentaDeVenta(ConfiguracionPuntoVenta pConfiguracionPuntoVenta)
        {
            if (pConfiguracionPuntoVenta == null)
            {
                throw new ArgumentException(Mensajes.excepcion_ConfiguracionPuntoVentaDeVentaEnEstadoNuloOTransitorio);
            }

            this.CodigoPuntoDeVenta      = pConfiguracionPuntoVenta.CodigoPuntoDeVenta;
            this.ConfiguracionPuntoVenta = pConfiguracionPuntoVenta;
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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;
            }
        }