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 string GenerarLcnTitulosDevolucion() { var ultimaDevolucion = Uow.TitulosConsignacionesDevueltas.Listado().Where(p => p.SucursalAltaId == Context.SucursalActual.Id) .OrderByDescending(p => p.FechaAlta).Take(1).FirstOrDefault(); int lcnNuevo = 0; if (ultimaDevolucion != null) { var lcn = ultimaDevolucion.LCN.Substring(5); lcnNuevo = int.TryParse(lcn, out lcnNuevo) ? lcnNuevo : 0; } lcnNuevo += 1; string sucursal = Context.SucursalActual.SucursalNumero.ToString(); return(LcnHelper.ObtenerLcn(lcnNuevo, Context.SucursalActual.Id, "X")); //return "X" + "000" + sucursal + lcnNuevo.ToString().PadLeft(8, '0'); }
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); }
public void ReservarFactura(ReservarFacturaData reservarFacturaData) { LoteFactura loteFactura = Uow.LotesFacturas.Obtener( l => l.OperadorLote == reservarFacturaData.OperadorActualId && l.NroActual < l.NroHasta && l.Estado == EstadoLoteEnum.Activo && l.SucursalAltaId == reservarFacturaData.SucursalActualId); // Guardar Reservar Factura VentaReservada ventaReservada = new VentaReservada(); ventaReservada.SucReserva = reservarFacturaData.SucursalActualId; ventaReservada.NroLote = loteFactura.NroLote; ventaReservada.LCN = LcnHelper.ObtenerLcn(this.SiguienteNumeroFactura(reservarFacturaData.OperadorActualId, reservarFacturaData.SucursalActualId), reservarFacturaData.PuntoVenta); ventaReservada.FechaAlta = _clock.Now; ventaReservada.SucursalAltaId = reservarFacturaData.SucursalActualId; ventaReservada.OperadorAltaId = reservarFacturaData.OperadorActualId; Uow.VentasReservadas.Agregar(ventaReservada); AumentarNumeroFactura(reservarFacturaData.OperadorActualId, reservarFacturaData.SucursalActualId); Uow.Commit(); }
private void RealizarConsignacion() { _consignacion.Id = Guid.NewGuid(); switch (_formMode) { case ActionFormMode.Create: _consignacion.NumeroComprobante = _consignacionNegocio.SiguienteNroConsignacion(Context.SucursalActual.Id).ToString(); break; case ActionFormMode.Edit: TxtNroConsignacion.Text = _consignacion.NumeroComprobante; break; } _consignacion.LCN = ""; _consignacion.ClienteId = _cliente.Id; _consignacion.PuntoVenta = 1;//; "no encuentro, pero no es igual a sucursal" _consignacion.FechaComprobante = _clock.Now; _consignacion.FechaVencimiento = DtpFechaVencimiento.Value; _consignacion.ImporteNeto = ucTitulosVenta.Titulos.Sum(x => x.PrecioVenta); _consignacion.ImporteIVA = IvaHelper.CalcularIva(_consignacion.ImporteNeto.Value); _consignacion.FechaEmision = _clock.Now; BtnRecargarNroFactura_Click(null, null); _consignacion.NumeroComprobante = TxtNroConsignacion.Text; _consignacion.LCN = LcnHelper.ObtenerLcn(_consignacion.NumeroComprobante, Context.SucursalActual.SucursalNumero ?? 1, "X"); _consignacion.Concepto = "CONSIGNACION PARA CLIENTES"; _consignacion.TipoComprobante = (int)Entidades.Enums.TipoComprobanteEnum.RemitosConsignacCliente; _consignacion.Observaciones = TxtObservacion.Text; _consignacion.FechaAlta = _clock.Now; _consignacion.SucursalAltaId = Context.SucursalActual.Id; //Sucursal del operador _consignacion.OperadorAltaId = Context.OperadorActual.Id; //Id el operador Uow.RemitosVentas.Agregar(_consignacion); //CONSIGNACION DETALLE foreach (var titulo in ucTitulosVenta.Titulos) { //Descontar stock var tituloStock = Uow.TitulosStock.Obtener(ts => ts.TituloId == titulo.TituloId && ts.SucursalId == Context.SucursalActual.Id); var cantidadAVender = titulo.Cantidad; int?cantpropia = 0; int?cantconsiganda = 0; if (tituloStock.StkPr > 0) { if (tituloStock.StkPr >= cantidadAVender) { tituloStock.StkPr -= cantidadAVender; cantpropia = cantidadAVender; cantidadAVender = 0; } else { cantpropia = tituloStock.StkPr; cantidadAVender -= tituloStock.StkPr; tituloStock.StkPr = 0; } } if (cantidadAVender > 0 && tituloStock.StkCn > 0) { if (tituloStock.StkCn >= cantidadAVender) { tituloStock.StkCn -= cantidadAVender; cantconsiganda = cantidadAVender; } else { _messageBoxDisplayService.ShowError("No hay suficiente stock para completar la consignaciĆ³n"); return; //Deberia cancelar la venta completa } } Uow.TitulosStock.Modificar(tituloStock); RemitosVentaDetalle remitoDetalle = new RemitosVentaDetalle(); remitoDetalle.Id = Guid.NewGuid(); remitoDetalle.RemitoVentaId = _consignacion.Id; remitoDetalle.TituloId = titulo.TituloId; remitoDetalle.CntPr = cantpropia; remitoDetalle.CntCn = cantconsiganda; remitoDetalle.PrecioVenta = titulo.PrecioVenta; remitoDetalle.PrecioBase = titulo.PrecioBase; remitoDetalle.Descuento = titulo.Descuento; remitoDetalle.FechaAlta = _clock.Now; remitoDetalle.SucursalAltaId = Context.SucursalActual.Id; //Sucursal del operador remitoDetalle.OperadorAltaId = (Context.OperadorActual.Id); //Id el operador Uow.RemitosVentasDetalle.Agregar(remitoDetalle); } Uow.Commit(); _messageBoxDisplayService.ShowSuccess(Resources.MessageSuccessConsignacionExitosa); using (var crearConsignacion = FormFactory.Create <FrmComprobanteConsignacion>(_consignacion.Id)) { crearConsignacion._descripcion = _consignacion.Concepto; crearConsignacion._formaPago = "CONSIGNACION"; crearConsignacion._recargo = ""; crearConsignacion.ShowDialog(); } var pageTab = this.Parent as RadPageViewPage; if (pageTab != null) { pageTab.Dispose(); } ; }