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 BtnGuardar_Click(object sender, EventArgs e) { if (Monto != UcTotalesSenia.TotalPagar) { _messageBoxDisplayService.ShowError("Los montos no coinciden"); return; } if (this.UcTotalesSenia.Pagos.Count == 0) { _messageBoxDisplayService.ShowError("Debe agregar una seña."); return; } Guid operadorAutoriza = Guid.Empty; if (_formMode == ActionFormMode.Edit) { //////Autorizacion para sin movimiento var operador = this.ObtenerOperadorAdministrador(); if (operador == null) { return; } if (!this.EsOperadorAdmin) { //Guardamos el operador que autorizo la operacion. operadorAutoriza = operador.Id; } } //TODO: Reemplzar el numero cuando se agrege la columna a sucursal. int numeroDeSucursal = Context.SucursalActual.SucursalNumero ?? 1; ClienteMontoFavor clienteMontoFavor = new ClienteMontoFavor(); clienteMontoFavor.Id = Guid.NewGuid(); clienteMontoFavor.ClienteId = _cliente.Id; clienteMontoFavor.FechaComprobante = _clock.Now; clienteMontoFavor.TipoComprobanteId = TipoComprobanteEnum.SeñaCliente; clienteMontoFavor.LCN = "R" + numeroDeSucursal.ToString().PadLeft(4, '0') + CalcularLCN().PadLeft(8, '0'); clienteMontoFavor.Concepto = "Seña " + clienteMontoFavor.LCN; clienteMontoFavor.Importe = UcTotalesSenia.TotalPagar; clienteMontoFavor.ImpOcupado = 0; clienteMontoFavor.Observaciones = TipoComprobanteEnum.SeñaCliente.ToString(); clienteMontoFavor.FechaAlta = _clock.Now; clienteMontoFavor.OperadorAltaId = Context.OperadorActual.Id; clienteMontoFavor.SucursalAltaId = Context.SucursalActual.Id; if (operadorAutoriza != Guid.Empty) { clienteMontoFavor.OperadorAutoriza = operadorAutoriza; } Uow.ClientesMontosFavor.Agregar(clienteMontoFavor); //Si el Form=Editar significa que es SinGuardar los movimientos de caja if (_formMode == ActionFormMode.Create) { //ActualizarCaja y CajaMovimiento Caja caja = this.Context.CajaActual; if (caja.Egresos == null) { caja.Egresos = 0; } caja.Ingresos += (float?)UcTotalesSenia.TotalPagar; caja.Saldo += (float?)UcTotalesSenia.TotalPagar; caja.FechaModificacion = _clock.Now; caja.SucursalModificacionId = Context.SucursalActual.Id; //Sucursal del operador caja.OperadorModificacionId = (Context.OperadorActual.Id); //Id el operador Uow.Cajas.Modificar(caja); CajaMovimiento cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.SeñaCliente; cajaMovimiento.TipoComprobante = TipoComprobanteEnum.SeñaCliente; cajaMovimiento.ComprobanteId = clienteMontoFavor.Id; cajaMovimiento.Importe = UcTotalesSenia.TotalPagar; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; cajaMovimiento.PcAlta = Environment.MachineName; //tipos de pagos foreach (VentaPago pago in UcTotalesSenia.Pagos) { switch (pago.TipoPago) { case FormaPago.Efectivo: cajaMovimiento.Efectivo = pago.Importe; break; case FormaPago.Tarjeta: 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 = Context.SucursalActual.Id; //Sucursal del operador tarjetasMovimiento.OperadorAltaId = (Context.OperadorActual.Id); //Id el operador Uow.TarjetasMovimientos.Agregar(tarjetasMovimiento); break; case FormaPago.Cheque: 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.SucursalAltaId = Context.SucursalActual.Id; chequesTercero.OperadorAltaId = (Context.OperadorActual.Id); Uow.ChequesTerceros.Agregar(chequesTercero); break; case FormaPago.Deposito: 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 = TipoComprobanteEnum.SeñaCliente; cuentasMovimiento.ComprobanteId = clienteMontoFavor.Id; cuentasMovimiento.MonedaId = 0; cuentasMovimiento.CondicionVentaId = CondicionVentaEnum.Contado; 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 = Context.OperadorActual.Id; cuentasMovimiento.SucursalAltaId = Context.SucursalActual.Id; Uow.CuentasMovimientos.Agregar(cuentasMovimiento); break; } } Uow.CajaMovimientos.Agregar(cajaMovimiento); } Uow.Commit(); _messageBoxDisplayService.ShowSuccess("Seña generada con éxito"); //Si el Form=Editar significa que es SinGuardar los movimientos de caja if (_formMode == ActionFormMode.Create) { ImprimirComprobante(clienteMontoFavor, UcTotalesSenia.FormasDePagosParaComprobante); } RefrescarUow(); RefrescarHistorial(); Limpiar(); }