private void ProcesarPagoTarjeta(VentaDataBase ventaData, VentaPago pago, CajaMovimiento cajaMovimiento) { var pagoTarjeta = pago as VentaPagoTarjeta; if (cajaMovimiento.Tarjeta == null) { cajaMovimiento.Tarjeta = 0; } cajaMovimiento.Tarjeta += pago.Importe; //GUARDAR TARJETA MOVIMIENTO TarjetasMovimiento tarjetasMovimiento = new TarjetasMovimiento(); tarjetasMovimiento.CajaMovimientoId = cajaMovimiento.Id; tarjetasMovimiento.TarjetaId = pagoTarjeta.TarjetaId ?? 0; tarjetasMovimiento.LoteCupon = pagoTarjeta.CuponNumero; tarjetasMovimiento.Fecha = _clock.Now; tarjetasMovimiento.Importe = (float)pago.Importe; tarjetasMovimiento.Estado = 1; // No se tarjetasMovimiento.FechaAlta = _clock.Now; tarjetasMovimiento.SucursalAltaId = ventaData.SucursalId; tarjetasMovimiento.OperadorAltaId = ventaData.OperadorId; Uow.TarjetasMovimientos.Agregar(tarjetasMovimiento); }
private void ActualizarTitulosConsignaciones(VentaDataBase ventaData, Guid tituloId, Guid?proveedorId, int?cantconsiganda) { //Busco las consignaciones de titulos y actualizo la columna CnVn var titulosConsignaciones = Uow.TitulosConsignaciones.Listado().Where( tc => tc.TituloId == tituloId && tc.ProveedorId == proveedorId && (tc.CntVn + tc.CntDev) < tc.CntCn && tc.SucursalAltaId == ventaData.SucursalId). OrderBy(tc => tc.FechaAlta); foreach (TitulosConsignacion tituloConsignacion in titulosConsignaciones) { if (cantconsiganda > 0) { if (tituloConsignacion.CntCn - tituloConsignacion.CntVn - tituloConsignacion.CntDev >= cantconsiganda) { tituloConsignacion.CntVn += cantconsiganda ?? 0; cantconsiganda = 0; } else { var disponible = tituloConsignacion.CntCn - tituloConsignacion.CntVn - tituloConsignacion.CntDev; cantconsiganda -= disponible; tituloConsignacion.CntVn = tituloConsignacion.CntCn; } tituloConsignacion.FechaModificacion = _clock.Now; tituloConsignacion.OperadorModificacionId = ventaData.OperadorId; tituloConsignacion.SucursalModificacionId = ventaData.SucursalId; Uow.TitulosConsignaciones.Modificar(tituloConsignacion); } } }
private CajaMovimiento CrearCajaMovimiento(VentaDataBase ventaData, Caja caja, Venta venta) { CajaMovimiento cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoMovimientoCajaId = ventaData.TipoCajaMovimientoSeleccionado; cajaMovimiento.TipoComprobante = ventaData.TipoComprobanteSeleccionado; cajaMovimiento.ComprobanteId = venta.Id; cajaMovimiento.Senia = ventaData.Senas + ventaData.CreditosDevolucion; if (ventaData.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente) { cajaMovimiento.Importe = ventaData.Anticipo; } else { cajaMovimiento.Importe = ventaData.TotalPagar; } cajaMovimiento.ImpFac = ventaData.SubTotal; //if (ventaData.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente) // cajaMovimiento.ImpFac = ventaData.SubTotal; //else // cajaMovimiento.ImpFac = ventaData.TotalPagar; cajaMovimiento.PcAlta = ventaData.PcAlta; cajaMovimiento.SucursalAltaId = ventaData.SucursalId; cajaMovimiento.OperadorAltaId = ventaData.OperadorId; cajaMovimiento.FechaAlta = _clock.Now; return(cajaMovimiento); }
private void ProcesarPagoDeposito(VentaDataBase ventaData, VentaPago pago, CajaMovimiento cajaMovimiento, Venta venta, Caja caja) { var pagoDeposito = pago as VentaPagoDeposito; if (cajaMovimiento.Deposito == null) { cajaMovimiento.Deposito = 0; } //Guardar Cuentas Movimientos cajaMovimiento.Deposito += pago.Importe; CuentasMovimiento cuentasMovimiento = new CuentasMovimiento(); cuentasMovimiento.CuentaId = pagoDeposito.CuentaId ?? 0; cuentasMovimiento.TipoMovimientoId = 2; //Deposito cuentasMovimiento.FechaMovimiento = pagoDeposito.Fecha; cuentasMovimiento.EstadoMovimientoCuentaId = 0; cuentasMovimiento.TipoComprobanteId = ventaData.TipoComprobanteSeleccionado; cuentasMovimiento.ComprobanteId = venta.Id; cuentasMovimiento.MonedaId = 0; cuentasMovimiento.CondicionVentaId = ventaData.CondicionVentaSeleccionada; cuentasMovimiento.NroMovimiento = pagoDeposito.Numero; cuentasMovimiento.Descripcion = "DEPOSITO NRO " + pagoDeposito.Numero.ToString(); cuentasMovimiento.FechaCobro = _clock.Now; cuentasMovimiento.Debito = 0; cuentasMovimiento.Credito = pago.Importe; cuentasMovimiento.TipoCarga = 2; cuentasMovimiento.CajaId = caja.Id; cuentasMovimiento.FechaAlta = _clock.Now; cuentasMovimiento.OperadorAltaId = ventaData.OperadorId; cuentasMovimiento.SucursalAltaId = ventaData.SucursalId; Uow.CuentasMovimientos.Agregar(cuentasMovimiento); }
private void ProcesarPagoCheque(VentaDataBase ventaData, VentaPago pago, CajaMovimiento cajaMovimiento) { var pagoCheque = pago as VentaPagoCheque; if (cajaMovimiento.Cheque == null) { cajaMovimiento.Cheque = 0; } cajaMovimiento.Cheque += pago.Importe; ChequesTercero chequesTercero = new ChequesTercero(); chequesTercero.Id = Guid.NewGuid(); chequesTercero.CajaMovimientoId = cajaMovimiento.Id; chequesTercero.BancoId = pagoCheque.BancoId ?? 0; chequesTercero.NroCheque = pagoCheque.Numero; chequesTercero.Fecha = _clock.Now; chequesTercero.FechaCobro = _clock.Now; chequesTercero.Importe = (float)pago.Importe; chequesTercero.FechaAlta = _clock.Now; chequesTercero.EstadoChequeId = 0; chequesTercero.SucursalAltaId = ventaData.SucursalId; chequesTercero.OperadorAltaId = ventaData.OperadorId; Uow.ChequesTerceros.Agregar(chequesTercero); }
private void ActualizarSeniasCliente(VentaDataBase ventaData, CrearVentaResponse reponse) { //Actulizar señas de cliente var monto = ventaData.Senas; var clientesMontosFavor = Uow.ClientesMontosFavor.Listado().Where((cm => cm.ClienteId == ventaData.ClienteId && cm.TipoComprobanteId == TipoComprobanteEnum.SeñaCliente && cm.SucursalAltaId == ventaData.SucursalId && !cm.FechaAnulacion.HasValue && cm.ImpOcupado < cm.Importe)) .OrderBy(cmf => cmf.FechaAlta) .ToList(); foreach (ClienteMontoFavor clienteMontoFavor in clientesMontosFavor) { if (monto != null) { if (monto > 0) { if ((clienteMontoFavor.Importe - clienteMontoFavor.ImpOcupado) >= monto) { clienteMontoFavor.ImpOcupado += monto; monto = 0; } else { monto -= (clienteMontoFavor.Importe - clienteMontoFavor.ImpOcupado); clienteMontoFavor.ImpOcupado = clienteMontoFavor.Importe; } clienteMontoFavor.FechaModificacion = _clock.Now; clienteMontoFavor.OperadorModificacionId = ventaData.OperadorId; clienteMontoFavor.SucursalAltaId = ventaData.SucursalId; Uow.ClientesMontosFavor.Modificar(clienteMontoFavor); if (clienteMontoFavor.Importe != clienteMontoFavor.ImpOcupado) { reponse.Comprobantes.Add(new ComprobanteVenta() { Concepto = "Actualización de seña", LCN = clienteMontoFavor.LCN, Importe = clienteMontoFavor.Importe, ImpOcupado = clienteMontoFavor.ImpOcupado }); } } } } }
private void ActualizarVentaReservada(VentaDataBase ventaData) { var lcn = LcnHelper.ObtenerLcn(ventaData.NumeroComprobante.GetValueOrDefault(), ventaData.PuntoVenta); //var ventaReservada = Uow.VentasReservadas.Obtener(v => v.LCN == lcn); var ventaReservada = Uow.VentasReservadas.Listado().OrderByDescending(v => v.FechaAlta).FirstOrDefault(v => v.LCN == lcn); if (ventaReservada != null) { ventaReservada.FechaModificacion = _clock.Now; ventaReservada.OperadorModificacionId = ventaData.OperadorId; ventaReservada.SucursalModificacionId = ventaData.SucursalId; Uow.VentasReservadas.Modificar(ventaReservada); } }
private void AgregarClienteMovimiento(VentaDataBase ventaData, Venta venta) { //ClienteMovimiento ClientesMovimiento clientesMovimiento = new ClientesMovimiento(); clientesMovimiento.IdCliente = ventaData.ClienteId; clientesMovimiento.IdTipoComprobante = (int?)ventaData.TipoComprobanteSeleccionado; clientesMovimiento.IdComprobante = venta.Id; clientesMovimiento.Concepto = ventaData.TipoComprobanteSeleccionado.ToString(); clientesMovimiento.Haber = ventaData.TotalPagar; clientesMovimiento.FechaGeneracion = _clock.Now; clientesMovimiento.FechaAlta = _clock.Now; clientesMovimiento.SucursalAltaId = ventaData.SucursalId; clientesMovimiento.OperadorAltaId = ventaData.OperadorId; Uow.ClientesMovimientos.Agregar(clientesMovimiento); }
private Venta AgregarVenta(VentaDataBase ventaData) { var venta = new Venta(); venta.Id = Guid.NewGuid(); if (!ventaData.EsVentaReservada) { venta.NumeroComprobante = this.SiguienteNumeroFactura(ventaData.OperadorId, ventaData.SucursalId); } else { venta.NumeroComprobante = ventaData.NumeroComprobante.GetValueOrDefault(); ActualizarVentaReservada(ventaData); } venta.LetraComprobante = LcnHelper.LetraConsumidorFinal; venta.LCN = LcnHelper.ObtenerLcn(venta.NumeroComprobante, ventaData.PuntoVenta); venta.ComprobanteId = ventaData.TipoComprobanteSeleccionado; venta.ClienteId = ventaData.ClienteId; venta.PuntoVenta = ventaData.PuntoVenta; venta.FechaComprobante = _clock.Now; venta.FechaVencimiento = _clock.Now; venta.CondicionVentaId = ventaData.CondicionVentaSeleccionada; venta.Concepto = ventaData.TipoComprobanteSeleccionado.ToString(); venta.ImporteNeto = ventaData.TotalPagar.GetValueOrDefault(); venta.ImporteIva = ImporteIva; venta.ImporteSena = ventaData.Senas + ventaData.CreditosDevolucion; venta.FechaUltimoPago = _clock.Now; venta.TotalPagado = ventaData.TotalPagar; venta.EstadoVentaId = EstadoVentaEnum.Entregada; venta.FechaAlta = _clock.Now; venta.SucursalAltaId = ventaData.SucursalId; venta.OperadorAltaId = ventaData.OperadorId; Uow.Ventas.Agregar(venta); return(venta); }
private void AgregarTitulosConsignacionVendida(VentaDataBase ventaData, Guid tituloId, Guid?proveedorId, Venta venta, int?cantconsiganda) { TitulosConsignacionesVendida titulosConsignacionesVendida = new TitulosConsignacionesVendida(); titulosConsignacionesVendida.Id = Guid.NewGuid(); titulosConsignacionesVendida.nTipo = 1; titulosConsignacionesVendida.ClienteId = Guid.Empty; titulosConsignacionesVendida.ProveedorId = proveedorId; titulosConsignacionesVendida.TituloId = tituloId; titulosConsignacionesVendida.ComprobanteId = venta.Id; titulosConsignacionesVendida.Fecha = _clock.Now; titulosConsignacionesVendida.CntCn = cantconsiganda; // titulo.CantidadConsignada; titulosConsignacionesVendida.CntPag = 0; titulosConsignacionesVendida.FechaAlta = _clock.Now; titulosConsignacionesVendida.OperadorAltaId = ventaData.OperadorId; titulosConsignacionesVendida.SucursalAltaId = ventaData.SucursalId; Uow.TitulosConsignacionesVendidas.Agregar(titulosConsignacionesVendida); }
private Caja ActualizarCajaActual(VentaDataBase ventaData, Venta venta) { Caja caja = Uow.Cajas.Obtener(c => c.Id == ventaData.CajaActualId); if (caja.Ingresos == null) { caja.Ingresos = 0; } caja.Ingresos += (float?)venta.TotalPagado; if (caja.Saldo == null) { caja.Saldo = 0; } caja.Saldo += (float?)venta.TotalPagado; caja.FechaModificacion = _clock.Now; caja.SucursalModificacionId = ventaData.SucursalId; caja.OperadorModificacionId = ventaData.OperadorId; Uow.Cajas.Modificar(caja); return(caja); }
private void ProcesarPagoCuentaCorriente(VentaDataBase ventaData, CrearVentaResponse reponse, Venta venta) { var cuotas = ventaData.Cuotas; reponse.FacturaInfo.Descripcion += "Cuotas: " + cuotas + " de: $" + ventaData.Montocuota.ToString(); for (int i = 1; i <= cuotas; i++) { ClienteCuentaCorriente clienteCuentaCorriente = new ClienteCuentaCorriente(); clienteCuentaCorriente.Id = Guid.NewGuid(); clienteCuentaCorriente.VentaId = venta.Id; clienteCuentaCorriente.ClienteId = ventaData.ClienteId; clienteCuentaCorriente.Cuota = (byte)i; clienteCuentaCorriente.Fecha = _clock.Now; DateTime venc = ventaData.VencimientoCuota; clienteCuentaCorriente.FechaVencimiento = venc.AddMonths(i - 1); clienteCuentaCorriente.Importe = ventaData.Montocuota; clienteCuentaCorriente.Pagado = 0; clienteCuentaCorriente.FechaGeneracion = _clock.Now; clienteCuentaCorriente.FechaAlta = _clock.Now; clienteCuentaCorriente.SucursalAltaId = ventaData.SucursalId; clienteCuentaCorriente.OperadorAltaId = ventaData.OperadorId; Uow.ClientesCuentasCorrientes.Agregar(clienteCuentaCorriente); } }