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 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 ActualizarCaja() { //ActualizarCaja y CajaMovimiento Caja caja = this.Context.CajaActual; if (caja.Egresos == null) { caja.Egresos = 0; } caja.Egresos += (float?)Total; caja.Saldo -= (float?)Total; 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.NotaCredito; cajaMovimiento.TipoComprobante = TipoComprobanteEnum.NotaCrédito; cajaMovimiento.ComprobanteId = _venta.Id; cajaMovimiento.Importe = Total; cajaMovimiento.ImpFac = Total; cajaMovimiento.Efectivo = Total; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; Uow.CajaMovimientos.Agregar(cajaMovimiento); }
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); }
public CajaMovimiento_ convert(CajaMovimiento c) { JsonSerializer serializer = new JsonSerializer(); JObject json = JObject.Parse(JsonConvert.SerializeObject(c)); CajaMovimiento_ p = (CajaMovimiento_)serializer.Deserialize(new JTokenReader(json), typeof(CajaMovimiento_)); return(p); }
private void AgregarMovimientos(OrdenesPagoDetalle pago, DetalleFormaPago vPago) { var movimiento = new CajaMovimiento(); movimiento.Id = Guid.NewGuid(); movimiento.Importe = pago.ImportePagado; movimiento.ComprobanteId = _ordenPago.Id; movimiento.TipoComprobante = TipoComprobanteEnum.OrdenPago; movimiento.TipoMovimientoCajaId = vPago.IsDeleted ? TipoMovimientoCajaEnum.AnulaciónOrdenPago : TipoMovimientoCajaEnum.PagoGastos; movimiento.PcAlta = Environment.MachineName; movimiento.CajaId = _cajaActual.Id; if (pago.Efectivo.HasValue && pago.Efectivo != 0) { //Si ImportePagado <> 0 => Pago Normal en Efectivo //Si ImportePagado = 0 => Pago Programado if (pago.ImportePagado.HasValue && pago.ImportePagado != 0) { movimiento.Efectivo = pago.Efectivo; var pagoEfec = vPago as PagoEfectivo; if (pagoEfec.CajaAnterior) { ActualizarCajaAnterior(pagoEfec, _cajaActual, movimiento); } else { ActualizarCajaActual(pago, _cajaActual); } Uow.Cajas.Modificar(_cajaActual); } } if (pago.Cheques.HasValue && pago.Cheques != 0) { movimiento.Cheque = pago.ImportePagado; } if (pago.DepositoEfectivo.HasValue && pago.DepositoEfectivo != 0) { movimiento.Deposito = pago.ImportePagado; } if (pago.Transferencia.HasValue && pago.Transferencia != 0) { movimiento.Transferencia = pago.ImportePagado; } movimiento.FechaAlta = pago.Id == default(Guid) ? _clock.Now : pago.FechaAlta; movimiento.SucursalAltaId = Context.SucursalActual.Id; movimiento.OperadorAltaId = Context.OperadorActual.Id; Uow.CajaMovimientos.Agregar(movimiento); }
private void AgregarMovimientos() { var movimiento = new CajaMovimiento(); movimiento.Id = Guid.NewGuid(); movimiento.Importe = _ordenPagoDetalle.ImportePagado; movimiento.ComprobanteId = _ordenPagoId; movimiento.TipoComprobante = TipoComprobanteEnum.OrdenPago; movimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.PagoGastos; Caja caja = this.Context.CajaActual; movimiento.CajaId = caja.Id; if (_esEfectivo) { movimiento.Efectivo = _ordenPagoDetalle.ImportePagado; caja.Egresos += (float)(_ordenPagoDetalle.ImportePagado ?? 0); caja.Saldo -= (float)(_ordenPagoDetalle.ImportePagado ?? 0); caja.FechaModificacion = _pagoId == default(Guid) ? (DateTime?)null : _clock.Now; caja.SucursalModificacionId = _pagoId == default(Guid) ? null : caja.SucursalModificacionId; caja.OperadorModificacionId = _pagoId == default(Guid) ? null : caja.OperadorModificacionId; Uow.Cajas.Modificar(caja); } else { movimiento.Cheque = _ordenPagoDetalle.ImportePagado; } movimiento.FechaAlta = _pagoId == default(Guid) ? _clock.Now : _ordenPagoDetalle.FechaAlta; movimiento.FechaModificacion = _pagoId == default(Guid) ? (DateTime?)null : _clock.Now; movimiento.SucursalAltaId = _pagoId == default(Guid) ? Context.SucursalActual.Id : movimiento.SucursalAltaId; movimiento.SucursalModificacionId = _pagoId == default(Guid) ? null : movimiento.SucursalModificacionId; movimiento.OperadorAltaId = _pagoId == default(Guid) ? Context.OperadorActual.Id : movimiento.OperadorAltaId; movimiento.OperadorModificacionId = _pagoId == default(Guid) ? null : movimiento.OperadorModificacionId; Uow.CajaMovimientos.Agregar(movimiento); }
public ActionResult DeleteConfirmed(int id) { try { CajaMovimiento cajaMovimiento = db.CajaMovimiento.Find(id); db.CajaMovimiento.Remove(cajaMovimiento); db.SaveChanges(); return(RedirectToAction("Index")); } catch (Exception ex) { return(View("Error", new HandleErrorInfo(ex, "CajaMovimiento", "Create"))); } }
private void ActualizarCajaActual(OrdenesPagoDetalle pago, CajaMovimiento movimiento, Caja caja) { movimiento.Efectivo = pago.Efectivo; caja.Egresos += (float)(pago.Efectivo ?? 0); caja.Saldo -= (float)(pago.Efectivo ?? 0); caja.FechaModificacion = pago.Id == default(Guid) ? (DateTime?)null : _clock.Now; caja.SucursalModificacionId = pago.Id == default(Guid) ? (int?)null : _context.SucursalActual.Id; caja.OperadorModificacionId = pago.Id == default(Guid) ? (Guid?)null : _context.OperadorActual.Id; _uow.Cajas.Modificar(caja); }
public ActionResult Edit([Bind(Include = "idCaja,secuencia,idTipoMoviento,idTipoMedioPago,monto")] CajaMovimiento cajaMovimiento) { try { if (ModelState.IsValid) { db.Entry(cajaMovimiento).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.idCaja = new SelectList(db.Caja, "idCaja", "usuario", cajaMovimiento.idCaja); ViewBag.idTipoMoviento = new SelectList(db.CajaTipoMoviento, "idCajaMovimiento", "descripcion", cajaMovimiento.idTipoMoviento); return(View(convert(cajaMovimiento))); } catch (Exception ex) { return(View("Error", new HandleErrorInfo(ex, "CajaMovimiento", "Create"))); } }
// GET: CajaMovimiento/Details/5 public ActionResult Details(int?id) { try { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CajaMovimiento cajaMovimiento = db.CajaMovimiento.Find(id); if (cajaMovimiento == null) { return(HttpNotFound()); } return(View(convert(cajaMovimiento))); } catch (Exception ex) { return(View("Error", new HandleErrorInfo(ex, "CajaMovimiento", "Create"))); } }
public CajaMovimiento Create(TipoComprobanteEnum tipoComprobante, TipoMovimientoCajaEnum tipoMovimiento, Guid comprobanteId, decimal importe) { CajaMovimiento cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = _context.CajaActual.Id; cajaMovimiento.TipoComprobante = tipoComprobante; cajaMovimiento.TipoMovimientoCajaId = tipoMovimiento; cajaMovimiento.ComprobanteId = comprobanteId; cajaMovimiento.Importe = importe; cajaMovimiento.ImpFac = importe; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.FechaModificacion = _clock.Now; cajaMovimiento.PcAlta = System.Environment.MachineName; cajaMovimiento.OperadorAltaId = _context.OperadorActual.Id; cajaMovimiento.SucursalAltaId = _context.SucursalActual.Id; cajaMovimiento.OperadorModificacionId = _context.OperadorActual.Id; cajaMovimiento.SucursalModificacionId = _context.SucursalActual.Id; return(cajaMovimiento); }
// GET: CajaMovimiento/Edit/5 public ActionResult Edit(int?id) { try { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CajaMovimiento cajaMovimiento = db.CajaMovimiento.Find(id); if (cajaMovimiento == null) { return(HttpNotFound()); } ViewBag.idCaja = new SelectList(db.Caja, "idCaja", "usuario", cajaMovimiento.idCaja); ViewBag.idTipoMoviento = new SelectList(db.CajaTipoMoviento, "idCajaMovimiento", "descripcion", cajaMovimiento.idTipoMoviento); return(View(cajaMovimiento)); } catch (Exception ex) { return(View("Error", new HandleErrorInfo(ex, "CajaMovimiento", "Create"))); } }
private void RegistrarCajaYCajaMovimiento() { var caja = Uow.Cajas.Listado().Where(c => c.OperadorId == Context.OperadorActual.Id && c.FCierre == null).OrderByDescending(c => c.FechaAlta).FirstOrDefault(); caja.Ingresos = (caja.Ingresos ?? 0) + (_pagoCelular.Vales ?? 0) + (_pagoCelular.Efectivo ?? 0); caja.Saldo = (caja.Saldo ?? 0) + (_pagoCelular.Vales ?? 0) + (_pagoCelular.Efectivo ?? 0); if (_pagoCelular.Efectivo != null) { caja.Efectivo += _pagoCelular.Efectivo; } if (_pagoCelular.Vales != null) { caja.Vales += _pagoCelular.Vales; } caja.FechaModificacion = _clock.Now; caja.OperadorModificacionId = Context.OperadorActual.Id; caja.SucursalModificacionId = Context.SucursalActual.Id; Uow.Cajas.Modificar(caja); var cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoMovimientoCajaId = 1; //Pago de sistema cajaMovimiento.TipoComprobante = 2; //Pago de sistema cajaMovimiento.ComprobanteId = _pagoCelular.Id; //id del pago Celular cajaMovimiento.Senia = _pagoCelular.Senia; cajaMovimiento.Importe = _pagoCelular.Monto; cajaMovimiento.ImpFac = (_pagoCelular.Efectivo ?? 0) + (_pagoCelular.Vales ?? 0);// ucPagos1.Total; //_pagoCelular.Monto; cajaMovimiento.Efectivo = _pagoCelular.Efectivo; cajaMovimiento.Vales = _pagoCelular.Vales; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; Uow.CajaMovimientos.Agregar(cajaMovimiento); }
private void ActualizarCajaAnterior(PagoEfectivo pagoEfec, Caja caja, CajaMovimiento cajaMovimiento) { cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoComprobante = TipoComprobanteEnum.OrdenPago; cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.DepositoConCajaAnterior; cajaMovimiento.ComprobanteId = _ordenPago.Id; cajaMovimiento.Importe = pagoEfec.Importe; if (cajaMovimiento.Efectivo == null) { cajaMovimiento.Efectivo = 0; } cajaMovimiento.Efectivo = pagoEfec.Importe; if (caja.Saldo == null) { caja.Saldo = 0; } //Pago Efectivo para Caja Anterior solo se Modifica el Saldo Acumulado caja.Saldo -= (float?)pagoEfec.Importe; }
private void SavePagoBase() { if (ucListadoPago1.PagosBases.Count == 0) { MessageBox.Show("Debe ingresar al menos un pago para poder guardar"); return; } decimal?Efectivo = 0; decimal?Vales = 0; decimal?Taller = 0; decimal?Descuento = 0; decimal?Senia = 0; foreach (var item in ucPagos.Pagos) { if (item.TipoPago == "Efectivo") { Efectivo += item.Importe; } else if (item.TipoPago == "Vales") { Vales += item.Importe; } else if (item.TipoPago == "Taller") { Taller += item.Importe; } else if (item.TipoPago == "Descuento") { Descuento += item.Importe; } else if (item.TipoPago == "A Favor") { Senia += item.Importe; } } //actualizo la caja var caja = Uow.Cajas.Listado().Where(c => c.OperadorId == Context.OperadorActual.Id && c.FCierre == null).OrderByDescending(c => c.FechaAlta).FirstOrDefault(); if (caja == null) { return; } caja.Ingresos = (caja.Ingresos ?? 0) + (ucPagos.TotalPagos() ?? 0); caja.Saldo = (caja.Saldo ?? 0) + (ucPagos.TotalPagos() ?? 0); caja.Efectivo += Efectivo; caja.Vales += Vales; caja.OperadorModificacionId = Context.OperadorActual.Id; caja.SucursalModificacionId = Context.SucursalActual.Id; Uow.Cajas.Modificar(caja); //pagos bases var pagosBases = new PagosBas(); pagosBases.Id = Guid.NewGuid(); pagosBases.PagoMovil = null; //aca tienen que venir el movil que hace el pago pagosBases.FechaAlta = _clock.Now; pagosBases.OperadorAltaId = Context.OperadorActual.Id; pagosBases.SucursalAltaId = Context.SucursalActual.Id; Uow.PagosBases.Agregar(pagosBases); //Creo la caja movimiento var cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoMovimientoCajaId = 4; cajaMovimiento.TipoComprobante = 6; cajaMovimiento.ComprobanteId = pagosBases.Id; cajaMovimiento.Importe = ucPagos.Importe; cajaMovimiento.Efectivo = Efectivo; cajaMovimiento.Vales = Vales; //cajaMovimiento.Taller //cajaMovimiento.PcAlta=Syst cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; Uow.CajaMovimientos.Agregar(cajaMovimiento); for (int i = 0; i < ucListadoPago1.PagosBases.Count; i++) { //MessageBox.Show(ucListadoPago1.PagosBases[i].Movil.Numero.ToString()); //PAGO MOVIL var pagoMovil = new PagosMovile(); pagoMovil.Id = Guid.NewGuid(); pagoMovil.PagoBaseId = pagosBases.Id; pagoMovil.Desde = ucListadoPago1.PagosBases[i].Desde; pagoMovil.Hasta = ucListadoPago1.PagosBases[i].Hasta; pagoMovil.Efectivo = ucListadoPago1.PagosBases[i].SubTotal; pagoMovil.Monto = ucListadoPago1.PagosBases[i].Total; pagoMovil.MovilId = ucListadoPago1.PagosBases[i].Movil.Id; pagoMovil.FechaAlta = _clock.Now; pagoMovil.OperadorAltaId = Context.OperadorActual.Id; pagoMovil.SucursalAltaId = Context.SucursalActual.Id; pagoMovil.Anulada = false; Uow.PagosMoviles.Agregar(pagoMovil); if (ucListadoPago1.PagosBases[i].Taller > 0) { var movil = ucListadoPago1.PagosBases[i].Movil.Id; var talleres = Uow.TalleresMoviles.Listado().Where(t => t.MovilId == movil && t.Acreditado == false).FirstOrDefault(); talleres.Acreditado = true; Uow.TalleresMoviles.Modificar(talleres); } } //Monto a Favor al primer movil var montoAfavor = ucPagos.Pagos.Sum(p => p.Importe) - ucListadoPago1._pagosBases.Sum(t => t.Total); if (montoAfavor != 0) { var movilesMontoFavor = new MovilesMontoFavor(); movilesMontoFavor.Id = Guid.NewGuid(); movilesMontoFavor.MovilId = ucListadoPago1.PagosBases[0].Movil.Id; movilesMontoFavor.TipoComprobanteId = 7; //Montno a Favor BASE; movilesMontoFavor.Concepto = "Monto a favor por pago de base"; movilesMontoFavor.FechaAlta = _clock.Now; movilesMontoFavor.FechaComprobante = _clock.Now; movilesMontoFavor.ImpOcupado = 0; movilesMontoFavor.Importe = montoAfavor; movilesMontoFavor.SucursalAltaId = Context.SucursalActual.Id; movilesMontoFavor.OperadorAltaId = Context.OperadorActual.Id; Uow.MovilesMontosFavor.Agregar(movilesMontoFavor); } Uow.Commit(); MessageBox.Show("Pago de base guardado correctamente"); //this.Close(); }
private void BtnEliminarPago_Click(object sender, EventArgs e) { var selectedRow = this.dgvhistorial.Rows[0]; var pago = selectedRow.DataBoundItem as HistorialPagosChofer_Result; if (pago == null) { return; } var _pago = Uow.PagosCelulares.Obtener(p => p.Id == pago.Id); //ANULO EL PAGO _pago.Anulada = true; _pago.FechaAnulacion = _clock.Now; //_pago.OperadorAutoriza= Operador autorizacion Uow.PagosCelulares.Modificar(_pago); //MODIFICAR CAJA Y CAJA MOVIMIENTO var caja = Uow.Cajas.Listado().Where(c => c.OperadorId == Context.OperadorActual.Id && c.FCierre == null).OrderByDescending(c => c.FechaAlta).FirstOrDefault(); caja.Ingresos = (caja.Ingresos ?? 0) - (pago.Efectivo ?? 0) - (pago.Vales ?? 0); caja.Saldo = (caja.Saldo ?? 0) - (pago.Efectivo ?? 0) - (pago.Vales ?? 0); if (pago.Efectivo != null) { caja.Efectivo -= pago.Efectivo; } if (pago.Vales != null) { caja.Vales -= pago.Vales; } caja.FechaModificacion = _clock.Now; caja.OperadorModificacionId = Context.OperadorActual.Id; caja.SucursalModificacionId = Context.SucursalActual.Id; Uow.Cajas.Modificar(caja); var cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoMovimientoCajaId = 1; //Pago de sistema cajaMovimiento.TipoComprobante = 3; //Anulacion Pago de sistema cajaMovimiento.ComprobanteId = pago.Id; //id del pago Celular cajaMovimiento.Senia = pago.Senia; if (pago.Senia > 0) { var choferMontoFavor = new ChoferMontoFavor(); choferMontoFavor.Id = Guid.NewGuid(); choferMontoFavor.ChoferId = pago.Chofer; choferMontoFavor.FechaAlta = DateTime.Now; choferMontoFavor.FechaComprobante = DateTime.Now; choferMontoFavor.TipoComprobanteId = 1; choferMontoFavor.Concepto = "Monto a favor"; choferMontoFavor.ImpOcupado = 0; choferMontoFavor.SucursalAltaId = Context.SucursalActual.Id; choferMontoFavor.OperadorAltaId = Context.OperadorActual.Id; choferMontoFavor.Importe = pago.Senia; Uow.ChoferesMontosFavor.Agregar(choferMontoFavor); } cajaMovimiento.Importe = pago.Monto; cajaMovimiento.ImpFac = (pago.Efectivo ?? 0) + (pago.Vales ?? 0); cajaMovimiento.Efectivo = pago.Efectivo; cajaMovimiento.Vales = pago.Vales; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; Uow.CajaMovimientos.Agregar(cajaMovimiento); Uow.Commit(); var _pagonuevo = Uow.PagosCelulares.Listado().Where(p => p.CelularId == _pago.CelularId && p.Anulada != true).OrderByDescending(g => g.FechaAlta).FirstOrDefault(); var celular = Uow.Celulares.Obtener(c => c.Id == _pago.CelularId); if (_pagonuevo != null) { //modifico fecha de proximo pago en el celular celular.FechaVencimientoPago = _pagonuevo.Hasta; celular.FechaProximoPago = (_pagonuevo.Hasta ?? DateTime.Now).AddDays(-2); } else { celular.FechaVencimientoPago = null; celular.FechaProximoPago = null; celular.FechaUltimoPago = null; } Uow.Celulares.Modificar(celular); Uow.Commit(); MessageBox.Show("Pago eliminado correctamente"); HistorialPagosChofer(_pago.ChoferId ?? Guid.Empty); //guardar comentario //ucComentarios.GenerarComentario(chofer.Id, "Pago del " + DesdeComent.ToString("dd/MM/yyyy") + " al " + HastaComent.ToString("dd/MM/yyyy") + ". Monto: $" + _pagoCelular.Monto); OnComentarioAdd("Pago anulado del " + _pago.Desde.ToString().Remove(10) + " hasta el " + _pago.Hasta.ToString().Remove(10)); }
private void BtnGuardar_Click(object sender, EventArgs e) { if (_venta.EstadoVentaId == EstadoVentaEnum.Anulada) { _messageBoxDisplayService.ShowWarning("Factura ya anulada"); return; } var operador = this.ObtenerOperadorAdministrador(); if (operador == null) { return; } if (!this.EsOperadorAdmin) { //Guardamos el operador que autorizo la operacion. _venta.OperadorAutoriza = operador.Id; } //Anular la Venta _venta.EstadoVentaId = EstadoVentaEnum.Anulada; _venta.FechaModificacion = _clock.Now; _venta.OperadorModificacionId = Context.OperadorActual.Id; _venta.SucursalModificacionId = Context.SucursalActual.Id; Uow.Ventas.Modificar(_venta); //devolver el stock foreach (VentaDetalleDto ventaDetalleDto in _ventaDetalleDto) { var tituloStock = Uow.TitulosStock.Obtener( ts => ts.TituloId == ventaDetalleDto.TituloId && ts.SucursalId == Context.SucursalActual.Id); tituloStock.StkPr += ventaDetalleDto.CantidadPropia; tituloStock.StkCn += ventaDetalleDto.CantidadConsig; tituloStock.FechaModificacion = _clock.Now; tituloStock.OperadorModificacionId = Context.OperadorActual.Id; tituloStock.SucursalModificacionId = Context.SucursalActual.Id; Uow.TitulosStock.Modificar(tituloStock); } //Devovler caja Caja caja = this.Context.CajaActual; 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 = Context.SucursalActual.Id; //Sucursal del operador caja.OperadorModificacionId = (Context.OperadorActual.Id); //Id el operador Uow.Cajas.Modificar(caja); //CajaMovimiento var cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(c => c.ComprobanteId == _venta.Id); CajaMovimiento cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; if (_venta.CondicionVentaId == CondicionVentaEnum.CuentaCorriente) { cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulaciónFacCtaCte; } else { cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulaciónFacContado; } cajaMovimiento.TipoComprobante = TipoComprobanteEnum.FacturaAnulada; cajaMovimiento.ComprobanteId = _venta.Id; cajaMovimiento.Senia = cajaMovimientoAnterior.Senia; cajaMovimiento.Importe = cajaMovimientoAnterior.Importe; cajaMovimiento.ImpFac = cajaMovimientoAnterior.ImpFac; cajaMovimiento.Recargo = cajaMovimientoAnterior.Recargo; cajaMovimiento.Efectivo = cajaMovimientoAnterior.Efectivo; cajaMovimiento.Tarjeta = cajaMovimientoAnterior.Tarjeta; cajaMovimiento.Cheque = cajaMovimientoAnterior.Cheque; cajaMovimiento.Deposito = cajaMovimientoAnterior.Deposito; cajaMovimiento.PcAlta = Environment.MachineName; cajaMovimiento.SucursalAltaId = _venta.SucursalAltaId; cajaMovimiento.OperadorAltaId = _venta.OperadorAltaId; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.SucursalModificacionId = Context.SucursalActual.Id; //Sucursal del operador cajaMovimiento.OperadorModificacionId = (Context.OperadorActual.Id); //Id el operador cajaMovimiento.FechaModificacion = _clock.Now; Uow.CajaMovimientos.Agregar(cajaMovimiento); //MovimientoCliente ClientesMovimiento clientesMovimiento = new ClientesMovimiento(); clientesMovimiento.IdCliente = _venta.ClienteId; clientesMovimiento.IdTipoComprobante = (int)TipoComprobanteEnum.FacturaAnulada; clientesMovimiento.IdComprobante = _venta.Id; clientesMovimiento.Concepto = TipoComprobanteEnum.FacturaAnulada.ToString(); clientesMovimiento.Debe = _venta.TotalPagado; clientesMovimiento.FechaGeneracion = _clock.Now; clientesMovimiento.FechaAlta = _clock.Now; clientesMovimiento.SucursalAltaId = Context.SucursalActual.Id; //Sucursal del operador clientesMovimiento.OperadorAltaId = (Context.OperadorActual.Id); //Id el operador Uow.ClientesMovimientos.Agregar(clientesMovimiento); //Actulizar señas de cliente var monto = cajaMovimientoAnterior.Senia; if (monto > 0 && monto != null) { int sucursal = 1; ClienteMontoFavor clienteMontoFavor = new ClienteMontoFavor(); clienteMontoFavor.Id = Guid.NewGuid(); clienteMontoFavor.ClienteId = _venta.ClienteId; clienteMontoFavor.FechaComprobante = _clock.Now; clienteMontoFavor.TipoComprobanteId = TipoComprobanteEnum.SeñaCliente; clienteMontoFavor.LCN = "R" + sucursal.ToString().PadLeft(4, '0') + CalcularLCN().PadLeft(8, '0'); clienteMontoFavor.Concepto = "Seña " + clienteMontoFavor.LCN; clienteMontoFavor.Importe = monto; clienteMontoFavor.ImpOcupado = 0; clienteMontoFavor.Observaciones = TipoComprobanteEnum.SeñaCliente.ToString() + "Por anulación de factura"; clienteMontoFavor.FechaAlta = _clock.Now; clienteMontoFavor.OperadorAltaId = Context.OperadorActual.Id; clienteMontoFavor.SucursalAltaId = Context.SucursalActual.Id; Uow.ClientesMontosFavor.Agregar(clienteMontoFavor); } //si la venta fue en CuentaCorriente, Anular las cuotas if (_venta.CondicionVentaId == CondicionVentaEnum.CuentaCorriente) { var cuotas = Uow.ClientesCuentasCorrientes.Listado().Where(cc => cc.VentaId == _venta.Id); foreach (ClienteCuentaCorriente cuota in cuotas) { cuota.Pagado = cuota.Importe; cuota.Observaciones = "Venta Anulada"; cuota.FechaModificacion = _clock.Now; cuota.OperadorModificacionId = Context.OperadorActual.Id; cuota.SucursalModificacionId = Context.SucursalActual.Id; Uow.ClientesCuentasCorrientes.Modificar(cuota); } } //Si la venta fue con tarjeta, setear en 0 el estado del movimiento if (cajaMovimientoAnterior.Tarjeta != null) { var tarjetamovimiento = Uow.TarjetasMovimientos.Obtener(t => t.CajaMovimientoId == cajaMovimientoAnterior.Id); if (tarjetamovimiento != null) { tarjetamovimiento.Estado = 0; tarjetamovimiento.FechaModificacion = _clock.Now; tarjetamovimiento.OperadorModificacionId = Context.OperadorActual.Id; tarjetamovimiento.SucursalModificacionId = Context.SucursalActual.Id; Uow.TarjetasMovimientos.Modificar(tarjetamovimiento); } } //si la venta fue con deposito, setear la columna debito=credito para que se anule if (cajaMovimientoAnterior.Deposito != null) { var cuentaMovimiento = Uow.CuentasMovimientos.Obtener(t => t.ComprobanteId == _venta.Id); if (cuentaMovimiento != null) { cuentaMovimiento.Debito = cuentaMovimiento.Credito; cuentaMovimiento.FechaModificacion = _clock.Now; cuentaMovimiento.OperadorModificacionId = Context.OperadorActual.Id; cuentaMovimiento.SucursalModificacionId = Context.SucursalActual.Id; Uow.CuentasMovimientos.Modificar(cuentaMovimiento); } } //si la venta fue con Cheque, setear estadocheque=1 if (cajaMovimientoAnterior.Cheque != null) { var chequeTercero = Uow.ChequesTercero.Obtener(t => t.CajaMovimientoId == cajaMovimientoAnterior.Id); if (chequeTercero != null) { chequeTercero.EstadoChequeId = 1; chequeTercero.FechaModificacion = _clock.Now; chequeTercero.OperadorModificacionId = Context.OperadorActual.Id; chequeTercero.SucursalModificacionId = Context.SucursalActual.Id; Uow.ChequesTercero.Modificar(chequeTercero); } } Uow.Commit(); _messageBoxDisplayService.ShowSuccess("Factura anulada correctamente"); //this.Close(); OnAccionTerminada(); }
public void AgregarMovimientos(OrdenesPago ordenPago, OrdenesPagoDetalle pago, DetalleFormaPago vPago) { var movimiento = new CajaMovimiento(); var movimientoAnterior = new CajaMovimiento(); if (vPago.IsDeleted) { movimientoAnterior = _uow.CajaMovimientos.Obtener(c => c.ComprobanteId == ordenPago.Id); } movimiento.Id = Guid.NewGuid(); movimiento.Importe = pago.ImportePagado; movimiento.ComprobanteId = ordenPago.Id; movimiento.TipoComprobante = TipoComprobanteEnum.OrdenPago; movimiento.TipoMovimientoCajaId = vPago.IsDeleted ? movimientoAnterior.TipoMovimientoCajaId : TipoMovimientoCajaEnum.PagoGastos; //movimiento.TipoMovimientoCajaId = vPago.IsDeleted ? TipoMovimientoCajaEnum.AnulaciónOrdenPago : TipoMovimientoCajaEnum.PagoGastos; movimiento.PcAlta = Environment.MachineName; movimiento.CajaId = _cajaActual.Id; if (pago.Efectivo.HasValue && pago.Efectivo != 0) { //Si ImportePagado <> 0 => Pago Normal en Efectivo //Si ImportePagado = 0 => Pago Programado if (pago.ImportePagado.HasValue && pago.ImportePagado != 0) { var pagoEfec = vPago as PagoEfectivo; if (pagoEfec.CajaAnterior) { ActualizarCajaAnterior(ordenPago, pagoEfec, _cajaActual, movimiento); } else { ActualizarCajaActual(pago, movimiento, _cajaActual); } } movimiento.Efectivo = pago.Efectivo; } if (pago.Cheques.HasValue && (pago.Cheques > 0 || pago.Cheques < 0)) { movimiento.Cheque = pago.Cheques; } if (pago.DepositoEfectivo.HasValue && (pago.DepositoEfectivo > 0 || pago.DepositoEfectivo < 0)) { movimiento.Deposito = pago.DepositoEfectivo; } if (pago.Transferencia.HasValue && (pago.Transferencia > 0 || pago.Transferencia < 0)) { movimiento.Transferencia = pago.Transferencia; } // movimiento.FechaAlta = pago.Id == default(Guid) ? _clock.Now : pago.FechaAlta; movimiento.FechaAlta = DateTime.Now;// pago.Id == default(Guid) ? _clock.Now : pago.FechaAlta; movimiento.SucursalAltaId = _context.SucursalActual.Id; movimiento.OperadorAltaId = _context.OperadorActual.Id; _uow.CajaMovimientos.Agregar(movimiento); }
public void AnularSeniaProveedor(ProveedorSenia senia, Caja caja, Guid operadorId, int sucursalId) { using (var uow = UowFactory.Create <ILaPazUow>()) { var diferencia = senia.Importe - senia.ImporteUsado; if (diferencia == 0) { return; } senia.ImporteUsado = senia.Importe; senia.FechaAnulacion = _clock.Now; senia.FechaModificacion = _clock.Now; senia.OperadorModificacionId = operadorId; senia.SucursalModificacionId = sucursalId; uow.ProveedoresSenias.Modificar(senia); if (caja.Ingresos == null) { caja.Ingresos = 0; } caja.Egresos += (float?)diferencia; if (caja.Saldo == null) { caja.Saldo = 0; } caja.Saldo -= (float?)diferencia; caja.FechaModificacion = _clock.Now; caja.SucursalModificacionId = sucursalId; caja.OperadorModificacionId = operadorId; uow.Cajas.Modificar(caja); //Se deben buscar todas las cajasMovimientos var cajaMovimientoAnterior = uow.CajaMovimientos.Listado().Where(cm => cm.ComprobanteId == senia.Id); foreach (CajaMovimiento movimiento in cajaMovimientoAnterior) { CajaMovimiento cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulacionSeniaProveedor; cajaMovimiento.TipoComprobante = TipoComprobanteEnum.SeñaCliente; cajaMovimiento.ComprobanteId = senia.Id; cajaMovimiento.Senia = 0; //analizar para Anulaciones Parciales cajaMovimiento.Importe = movimiento.Importe; cajaMovimiento.Efectivo = movimiento.Efectivo; cajaMovimiento.Tarjeta = movimiento.Tarjeta; cajaMovimiento.Cheque = movimiento.Cheque; cajaMovimiento.Deposito = movimiento.Deposito; cajaMovimiento.ImpFac = 0; cajaMovimiento.PcAlta = Environment.MachineName; cajaMovimiento.SucursalAltaId = sucursalId; cajaMovimiento.OperadorAltaId = operadorId; cajaMovimiento.FechaAlta = _clock.Now; uow.CajaMovimientos.Agregar(cajaMovimiento); } uow.Commit(); } }
private void BtnEliminarPago_Click(object sender, EventArgs e) { var selectedRow = this.dgvhistorial.Rows[0]; var pago = selectedRow.DataBoundItem as HistorialPagosChofer_Result; if (pago == null) return; var _pago = Uow.PagosCelulares.Obtener(p => p.Id ==pago.Id); //ANULO EL PAGO _pago.Anulada = true; _pago.FechaAnulacion = _clock.Now; //_pago.OperadorAutoriza= Operador autorizacion Uow.PagosCelulares.Modificar(_pago); //MODIFICAR CAJA Y CAJA MOVIMIENTO var caja = Uow.Cajas.Listado().Where(c => c.OperadorId == Context.OperadorActual.Id && c.FCierre == null).OrderByDescending(c => c.FechaAlta).FirstOrDefault(); caja.Ingresos = (caja.Ingresos ?? 0) - (pago.Efectivo ?? 0) - (pago.Vales ?? 0); caja.Saldo = (caja.Saldo ?? 0) - (pago.Efectivo ?? 0) - (pago.Vales ?? 0); if (pago.Efectivo !=null) { caja.Efectivo -= pago.Efectivo; } if (pago.Vales != null) { caja.Vales -= pago.Vales; } caja.FechaModificacion = _clock.Now; caja.OperadorModificacionId = Context.OperadorActual.Id; caja.SucursalModificacionId = Context.SucursalActual.Id; Uow.Cajas.Modificar(caja); var cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoMovimientoCajaId = 1; //Pago de sistema cajaMovimiento.TipoComprobante = 3; //Anulacion Pago de sistema cajaMovimiento.ComprobanteId = pago.Id; //id del pago Celular cajaMovimiento.Senia = pago.Senia; if (pago.Senia > 0) { var choferMontoFavor =new ChoferMontoFavor(); choferMontoFavor.Id = Guid.NewGuid(); choferMontoFavor.ChoferId = pago.Chofer; choferMontoFavor.FechaAlta = DateTime.Now ; choferMontoFavor.FechaComprobante=DateTime.Now; choferMontoFavor.TipoComprobanteId = 1; choferMontoFavor.Concepto = "Monto a favor"; choferMontoFavor.ImpOcupado = 0; choferMontoFavor.SucursalAltaId = Context.SucursalActual.Id; choferMontoFavor.OperadorAltaId = Context.OperadorActual.Id; choferMontoFavor.Importe = pago.Senia; Uow.ChoferesMontosFavor.Agregar(choferMontoFavor); } cajaMovimiento.Importe = pago.Monto; cajaMovimiento.ImpFac = (pago.Efectivo ?? 0) + (pago.Vales ?? 0); cajaMovimiento.Efectivo = pago.Efectivo; cajaMovimiento.Vales = pago.Vales; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; Uow.CajaMovimientos.Agregar(cajaMovimiento); Uow.Commit(); var _pagonuevo = Uow.PagosCelulares.Listado().Where(p => p.CelularId == _pago.CelularId && p.Anulada != true).OrderByDescending(g=>g.FechaAlta).FirstOrDefault(); var celular = Uow.Celulares.Obtener(c => c.Id == _pago.CelularId); if (_pagonuevo != null) { //modifico fecha de proximo pago en el celular celular.FechaVencimientoPago = _pagonuevo.Hasta; celular.FechaProximoPago = (_pagonuevo.Hasta ?? DateTime.Now).AddDays(-2); } else { celular.FechaVencimientoPago = null; celular.FechaProximoPago = null; celular.FechaUltimoPago = null; } Uow.Celulares.Modificar(celular); Uow.Commit(); MessageBox.Show("Pago eliminado correctamente"); HistorialPagosChofer(_pago.ChoferId ?? Guid.Empty); //guardar comentario //ucComentarios.GenerarComentario(chofer.Id, "Pago del " + DesdeComent.ToString("dd/MM/yyyy") + " al " + HastaComent.ToString("dd/MM/yyyy") + ". Monto: $" + _pagoCelular.Monto); OnComentarioAdd("Pago anulado del " + _pago.Desde.ToString().Remove(10) + " hasta el " + _pago.Hasta.ToString().Remove(10)); }
private void CrearEditar() { var esValido = this.ValidarForm() && ValidarMontos(); if (!esValido) this.DialogResult = DialogResult.None; else { var entity = ObtenerEntityDesdeForm(); if (_formMode == ActionFormMode.Create) { var cajaActual = Uow.Cajas.Obtener(c => c.OperadorAltaId == Context.OperadorActual.Id && c.FCierre == null); var ordenPago = new OrdenPago(); ordenPago.Id = Guid.NewGuid(); ordenPago.Fecha = entity.Fecha; ordenPago.ProveedorId = entity.ProveedorId; ordenPago.NumeroComprobante = entity.NumeroComprobante; if (CajaAnterior == true) { //CAJA ANTERIOR ordenPago.TipoComprobanteId = 5; } else { //CAJA ACTUAL ordenPago.TipoComprobanteId = 4; cajaActual.Egresos += Importe; cajaActual.Efectivo -= Importe; cajaActual.Saldo -= Importe; } ordenPago.FechaImputacion = _clock.Now; ordenPago.SubTotal = Importe; ordenPago.ImportePagado = Importe; ordenPago.Concepto = entity.Concepto; ordenPago.Importe = entity.Importe; ordenPago.FechaAlta = _clock.Now; ordenPago.OperadorAltaId = Context.OperadorActual.Id; ordenPago.SucursalAltaId = Context.SucursalActual.Id; ordenPago.SucursalId = Context.SucursalActual.Id; ordenPago.SucursalGastoId = Context.SucursalActual.Id; Uow.OrdenesPagos.Agregar(ordenPago); //ORDEN DE PAGO DETALLE var ordenPagoDetalle = new OrdenPagoDetalle(); ordenPagoDetalle.Id = Guid.NewGuid(); ordenPagoDetalle.OrdenPagoId = ordenPago.Id; ordenPagoDetalle.FechaPago = _clock.Now; ordenPagoDetalle.ImportePagado = Importe; ordenPagoDetalle.Efectivo = Importe; ordenPagoDetalle.SucursalAltaId = Context.SucursalActual.Id; ordenPagoDetalle.FechaAlta = _clock.Now; ordenPagoDetalle.OperadorAltaId = Context.OperadorActual.Id; ordenPagoDetalle.CajaId = cajaActual.Id; Uow.OrdenesPagosDetalles.Agregar(ordenPagoDetalle); //CAJA MOVIMIENTO var cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = cajaActual.Id; cajaMovimiento.ComprobanteId = ordenPago.Id; if (CajaAnterior == true) { cajaMovimiento.TipoMovimientoCajaId = 3; cajaMovimiento.TipoComprobante = 5; //Descuento en caja balance var cajaBalance = Uow.CajaBalances.Obtener(c => c.SucursalAltaId == Context.SucursalActual.Id); cajaBalance.Ingresos -= Importe; Uow.CajaBalances.Modificar(cajaBalance); } else { cajaMovimiento.TipoMovimientoCajaId = 2; cajaMovimiento.TipoComprobante = 4; } cajaMovimiento.Importe = Importe; cajaMovimiento.ImpFac = Importe; cajaMovimiento.Efectivo = Importe; cajaMovimiento.PcAlta = System.Environment.MachineName; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; Uow.CajaMovimientos.Agregar(cajaMovimiento); } Uow.Commit(); if (_formMode == ActionFormMode.Create) { OnEntityAgregada(entity); } this.Close(); } }
private void RegistrarCajaYCajaMovimiento() { var caja = Uow.Cajas.Listado().Where(c => c.OperadorId == Context.OperadorActual.Id && c.FCierre == null).OrderByDescending(c=>c.FechaAlta ).FirstOrDefault(); caja.Ingresos = (caja.Ingresos ?? 0) + (_pagoCelular.Vales ?? 0) + (_pagoCelular.Efectivo ?? 0); caja.Saldo = (caja.Saldo ?? 0) + (_pagoCelular.Vales ?? 0) + (_pagoCelular.Efectivo ?? 0); if (_pagoCelular.Efectivo != null) caja.Efectivo += _pagoCelular.Efectivo; if (_pagoCelular.Vales !=null) caja.Vales += _pagoCelular.Vales; caja.FechaModificacion = _clock.Now; caja.OperadorModificacionId = Context.OperadorActual.Id; caja.SucursalModificacionId = Context.SucursalActual.Id; Uow.Cajas.Modificar(caja); var cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoMovimientoCajaId = 1; //Pago de sistema cajaMovimiento.TipoComprobante = 2; //Pago de sistema cajaMovimiento.ComprobanteId = _pagoCelular.Id; //id del pago Celular cajaMovimiento.Senia = _pagoCelular.Senia; cajaMovimiento.Importe = _pagoCelular.Monto; cajaMovimiento.ImpFac = (_pagoCelular.Efectivo ?? 0) + (_pagoCelular.Vales ?? 0);// ucPagos1.Total; //_pagoCelular.Monto; cajaMovimiento.Efectivo = _pagoCelular.Efectivo; cajaMovimiento.Vales = _pagoCelular.Vales; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; Uow.CajaMovimientos.Agregar(cajaMovimiento); }
private void CrearEditar() { var esValido = this.ValidarForm() && ValidarMontos(); if (!esValido) { this.DialogResult = DialogResult.None; } else { var entity = ObtenerEntityDesdeForm(); if (_formMode == ActionFormMode.Create) { var cajaActual = Uow.Cajas.Obtener(c => c.OperadorAltaId == Context.OperadorActual.Id && c.FCierre == null); var ordenPago = new OrdenPago(); ordenPago.Id = Guid.NewGuid(); ordenPago.Fecha = entity.Fecha; ordenPago.ProveedorId = entity.ProveedorId; ordenPago.NumeroComprobante = entity.NumeroComprobante; if (CajaAnterior == true) { //CAJA ANTERIOR ordenPago.TipoComprobanteId = 5; } else { //CAJA ACTUAL ordenPago.TipoComprobanteId = 4; cajaActual.Egresos += Importe; cajaActual.Efectivo -= Importe; cajaActual.Saldo -= Importe; } ordenPago.FechaImputacion = _clock.Now; ordenPago.SubTotal = Importe; ordenPago.ImportePagado = Importe; ordenPago.Concepto = entity.Concepto; ordenPago.Importe = entity.Importe; ordenPago.FechaAlta = _clock.Now; ordenPago.OperadorAltaId = Context.OperadorActual.Id; ordenPago.SucursalAltaId = Context.SucursalActual.Id; ordenPago.SucursalId = Context.SucursalActual.Id; ordenPago.SucursalGastoId = Context.SucursalActual.Id; Uow.OrdenesPagos.Agregar(ordenPago); //ORDEN DE PAGO DETALLE var ordenPagoDetalle = new OrdenPagoDetalle(); ordenPagoDetalle.Id = Guid.NewGuid(); ordenPagoDetalle.OrdenPagoId = ordenPago.Id; ordenPagoDetalle.FechaPago = _clock.Now; ordenPagoDetalle.ImportePagado = Importe; ordenPagoDetalle.Efectivo = Importe; ordenPagoDetalle.SucursalAltaId = Context.SucursalActual.Id; ordenPagoDetalle.FechaAlta = _clock.Now; ordenPagoDetalle.OperadorAltaId = Context.OperadorActual.Id; ordenPagoDetalle.CajaId = cajaActual.Id; Uow.OrdenesPagosDetalles.Agregar(ordenPagoDetalle); //CAJA MOVIMIENTO var cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = cajaActual.Id; cajaMovimiento.ComprobanteId = ordenPago.Id; if (CajaAnterior == true) { cajaMovimiento.TipoMovimientoCajaId = 3; cajaMovimiento.TipoComprobante = 5; //Descuento en caja balance var cajaBalance = Uow.CajaBalances.Obtener(c => c.SucursalAltaId == Context.SucursalActual.Id); cajaBalance.Ingresos -= Importe; Uow.CajaBalances.Modificar(cajaBalance); } else { cajaMovimiento.TipoMovimientoCajaId = 2; cajaMovimiento.TipoComprobante = 4; } cajaMovimiento.Importe = Importe; cajaMovimiento.ImpFac = Importe; cajaMovimiento.Efectivo = Importe; cajaMovimiento.PcAlta = System.Environment.MachineName; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; Uow.CajaMovimientos.Agregar(cajaMovimiento); } Uow.Commit(); if (_formMode == ActionFormMode.Create) { OnEntityAgregada(entity); } this.Close(); } }
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(); }
private void Anular(ClienteMontoFavor senia) { //Utiliar toda la seña //if (senia.TipoComprobanteId == TipoComprobanteEnum.SeñaCliente) //{ var operador = this.ObtenerOperadorAdministrador(); if (operador == null) { return; } if (!this.EsOperadorAdmin) { //Guardamos el operador que autorizo la operacion. senia.OperadorAutoriza = operador.Id; } var diferencia = senia.Importe - senia.ImpOcupado; if (diferencia == 0) { return; } Uow.ClientesMontosFavor.Modificar(senia); var cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(cm => cm.ComprobanteId == senia.Id); if (cajaMovimientoAnterior == null) { //notas de credito no generan caja movimiento? } if ((cajaMovimientoAnterior.Tarjeta != null || cajaMovimientoAnterior.Tarjeta == 0) || (cajaMovimientoAnterior.Cheque != null || cajaMovimientoAnterior.Cheque == 0) || (cajaMovimientoAnterior.Deposito != null || cajaMovimientoAnterior.Deposito == 0)) { decimal?devolucion = 0; if (diferencia > ((cajaMovimientoAnterior.Tarjeta ?? 0) + (cajaMovimientoAnterior.Cheque ?? 0) + (cajaMovimientoAnterior.Deposito ?? 0) + (cajaMovimientoAnterior.Transferencia ?? 0))) { devolucion = diferencia - ((cajaMovimientoAnterior.Tarjeta ?? 0) + (cajaMovimientoAnterior.Cheque ?? 0) + (cajaMovimientoAnterior.Deposito ?? 0) + (cajaMovimientoAnterior.Transferencia ?? 0)); //Actualizacion seña using (var crearComprobante = FormFactory.Create <FrmComprobante>()) { _messageBoxDisplayService.ShowWarning("Solo se puede devolver un monto en efectivo de: $" + devolucion.Value.ToString("N2")); crearComprobante._concepto = "Actualizacion de seña"; crearComprobante._LCN = senia.LCN; var conv = new Conversion(); crearComprobante._montoTexto = conv.enletras((diferencia - devolucion).ToString()); crearComprobante._montoActualizado = (diferencia - devolucion); var formapago = ""; if (cajaMovimientoAnterior.Tarjeta > 0) { formapago += "Tarjeta "; } if (cajaMovimientoAnterior.Cheque > 0) { formapago += "Cheque "; } if (cajaMovimientoAnterior.Deposito > 0) { formapago += "Deposito "; } if (cajaMovimientoAnterior.Transferencia > 0) { formapago += "Transferencia "; } crearComprobante._formaPago = formapago + (diferencia - devolucion).ToString(); crearComprobante.ShowDialog(); } diferencia = devolucion; } else { _messageBoxDisplayService.ShowError("No se puede anular una seña que no fue generada en efectivo"); return; //devolucion = diferencia; //anular seña } } senia.ImpOcupado += diferencia; //senia.Importe; if (senia.ImpOcupado == senia.Importe) { senia.FechaAnulacion = _clock.Now; } senia.FechaModificacion = _clock.Now; senia.OperadorModificacionId = Context.OperadorActual.Id; senia.SucursalModificacionId = Context.SucursalActual.Id; //generar cajamovimientno Caja caja = this.Context.CajaActual; if (caja.Ingresos == null) { caja.Ingresos = 0; } caja.Egresos += (float?)diferencia; if (caja.Saldo == null) { caja.Saldo = 0; } caja.Saldo -= (float?)diferencia; caja.FechaModificacion = _clock.Now; caja.SucursalModificacionId = Context.SucursalActual.Id; caja.OperadorModificacionId = (Context.OperadorActual.Id); Uow.Cajas.Modificar(caja); if (senia.TipoComprobanteId == TipoComprobanteEnum.SeñaCliente) { //var cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(cm => cm.ComprobanteId == senia.Id); //cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(cm => cm.ComprobanteId == senia.Id); CajaMovimiento cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulaciónSeña; cajaMovimiento.TipoComprobante = TipoComprobanteEnum.SeñaCliente; cajaMovimiento.ComprobanteId = senia.Id; cajaMovimiento.Senia = 0; cajaMovimiento.Importe = diferencia; // cajaMovimiento.Efectivo = cajaMovimientoAnterior.Efectivo; cajaMovimiento.Efectivo = diferencia; //cajaMovimiento.Tarjeta = cajaMovimientoAnterior.Tarjeta; //cajaMovimiento.Cheque = cajaMovimientoAnterior.Cheque; //cajaMovimiento.Deposito = cajaMovimientoAnterior.Deposito; cajaMovimiento.ImpFac = 0; cajaMovimiento.PcAlta = Environment.MachineName; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; //cajaMovimientoAnterior.SucursalAltaId; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; //cajaMovimientoAnterior.OperadorAltaId; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.SucursalModificacionId = Context.SucursalActual.Id; cajaMovimiento.OperadorModificacionId = (Context.OperadorActual.Id); cajaMovimiento.FechaModificacion = _clock.Now; Uow.CajaMovimientos.Agregar(cajaMovimiento); } else if (senia.TipoComprobanteId == TipoComprobanteEnum.NotaCrédito) { CajaMovimiento cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulaciónSeña; cajaMovimiento.TipoComprobante = TipoComprobanteEnum.NotaCrédito; cajaMovimiento.ComprobanteId = senia.Id; cajaMovimiento.Senia = 0; cajaMovimiento.Importe = diferencia; cajaMovimiento.Efectivo = diferencia; //cajaMovimiento.Tarjeta = cajaMovimientoAnterior.Tarjeta; //cajaMovimiento.Cheque = cajaMovimientoAnterior.Cheque; //cajaMovimiento.Deposito = cajaMovimientoAnterior.Deposito; cajaMovimiento.ImpFac = 0; cajaMovimiento.PcAlta = Environment.MachineName; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; //cajaMovimientoAnterior.SucursalAltaId; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; //cajaMovimientoAnterior.OperadorAltaId; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.SucursalModificacionId = Context.SucursalActual.Id; cajaMovimiento.OperadorModificacionId = (Context.OperadorActual.Id); cajaMovimiento.FechaModificacion = _clock.Now; Uow.CajaMovimientos.Agregar(cajaMovimiento); } //Generaregreso?? Uow.Commit(); _messageBoxDisplayService.ShowSuccess("Anulación de seña exitosa"); RefrescarUow(); RefrescarHistorial(); }
private void SavePagoBase() { if (ucListadoPago1.PagosBases.Count == 0) { MessageBox.Show("Debe ingresar al menos un pago para poder guardar"); return; } decimal? Efectivo = 0; decimal? Vales = 0; decimal? Taller = 0; decimal? Descuento = 0; decimal? Senia = 0; foreach (var item in ucPagos.Pagos) { if (item.TipoPago == "Efectivo") Efectivo += item.Importe; else if (item.TipoPago == "Vales") Vales += item.Importe; else if (item.TipoPago == "Taller") Taller += item.Importe; else if (item.TipoPago == "Descuento") Descuento += item.Importe; else if (item.TipoPago == "A Favor") Senia += item.Importe; } //actualizo la caja var caja = Uow.Cajas.Listado().Where(c => c.OperadorId == Context.OperadorActual.Id && c.FCierre == null).OrderByDescending(c => c.FechaAlta).FirstOrDefault(); if (caja == null) return; caja.Ingresos = (caja.Ingresos ?? 0) + (ucPagos.TotalPagos() ?? 0); caja.Saldo = (caja.Saldo ?? 0) + (ucPagos.TotalPagos() ?? 0); caja.Efectivo += Efectivo; caja.Vales += Vales; caja.OperadorModificacionId = Context.OperadorActual.Id; caja.SucursalModificacionId = Context.SucursalActual.Id; Uow.Cajas.Modificar(caja); //pagos bases var pagosBases = new PagosBas(); pagosBases.Id = Guid.NewGuid(); pagosBases.PagoMovil = null; //aca tienen que venir el movil que hace el pago pagosBases.FechaAlta = _clock.Now; pagosBases.OperadorAltaId = Context.OperadorActual.Id; pagosBases.SucursalAltaId = Context.SucursalActual.Id; Uow.PagosBases.Agregar(pagosBases); //Creo la caja movimiento var cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoMovimientoCajaId = 4; cajaMovimiento.TipoComprobante = 6; cajaMovimiento.ComprobanteId = pagosBases.Id; cajaMovimiento.Importe = ucPagos.Importe; cajaMovimiento.Efectivo = Efectivo; cajaMovimiento.Vales = Vales; //cajaMovimiento.Taller //cajaMovimiento.PcAlta=Syst cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; Uow.CajaMovimientos.Agregar(cajaMovimiento); for (int i = 0; i < ucListadoPago1.PagosBases.Count; i++) { //MessageBox.Show(ucListadoPago1.PagosBases[i].Movil.Numero.ToString()); //PAGO MOVIL var pagoMovil = new PagosMovile(); pagoMovil.Id = Guid.NewGuid(); pagoMovil.PagoBaseId = pagosBases.Id; pagoMovil.Desde = ucListadoPago1.PagosBases[i].Desde; pagoMovil.Hasta = ucListadoPago1.PagosBases[i].Hasta; pagoMovil.Efectivo = ucListadoPago1.PagosBases[i].SubTotal; pagoMovil.Monto = ucListadoPago1.PagosBases[i].Total; pagoMovil.MovilId = ucListadoPago1.PagosBases[i].Movil.Id; pagoMovil.FechaAlta = _clock.Now; pagoMovil.OperadorAltaId = Context.OperadorActual.Id; pagoMovil.SucursalAltaId = Context.SucursalActual.Id; pagoMovil.Anulada = false; Uow.PagosMoviles.Agregar(pagoMovil); if (ucListadoPago1.PagosBases[i].Taller > 0) { var movil = ucListadoPago1.PagosBases[i].Movil.Id; var talleres = Uow.TalleresMoviles.Listado().Where(t => t.MovilId == movil && t.Acreditado == false).FirstOrDefault(); talleres.Acreditado = true; Uow.TalleresMoviles.Modificar(talleres); } } //Monto a Favor al primer movil var montoAfavor = ucPagos.Pagos.Sum(p => p.Importe) - ucListadoPago1._pagosBases.Sum(t => t.Total); if (montoAfavor != 0) { var movilesMontoFavor = new MovilesMontoFavor(); movilesMontoFavor.Id = Guid.NewGuid(); movilesMontoFavor.MovilId = ucListadoPago1.PagosBases[0].Movil.Id; movilesMontoFavor.TipoComprobanteId = 7; //Montno a Favor BASE; movilesMontoFavor.Concepto = "Monto a favor por pago de base"; movilesMontoFavor.FechaAlta = _clock.Now; movilesMontoFavor.FechaComprobante = _clock.Now; movilesMontoFavor.ImpOcupado = 0; movilesMontoFavor.Importe = montoAfavor; movilesMontoFavor.SucursalAltaId = Context.SucursalActual.Id; movilesMontoFavor.OperadorAltaId = Context.OperadorActual.Id; Uow.MovilesMontosFavor.Agregar(movilesMontoFavor); } Uow.Commit(); MessageBox.Show("Pago de base guardado correctamente"); //this.Close(); }
private void RealizarSenia() { try { Caja caja = this.Context.CajaActual; ProveedorSenia seña = new ProveedorSenia(); seña.Id = Guid.NewGuid(); seña.ProveedorId = _proveedor.Id; seña.FechaAlta = _clock.Now; seña.FechaModificacion = _clock.Now; seña.Importe = UcTotalesSeña.TotalPagar; seña.ImporteUsado = 0; seña.OperadorAltaId = Context.OperadorActual.Id; seña.SucursalAltaId = Context.SucursalActual.Id; seña.OperadorModificacionId = Context.OperadorActual.Id; seña.SucursalModificacionId = Context.SucursalActual.Id; decimal?efectivo = 0; decimal?tarjeta = 0; decimal?cheque = 0; decimal?deposito = 0; foreach (var pago in UcTotalesSeña.Pagos) { switch (pago.TipoPago) { case FormaPago.Efectivo: efectivo += pago.Importe; break; case FormaPago.Tarjeta: tarjeta += pago.Importe; break; case FormaPago.Cheque: cheque += pago.Importe; break; case FormaPago.Deposito: deposito += pago.Importe; break; } } if (efectivo > 0 && ChkCajaAnterior.Checked == false) { //creo la caja movimiento para los pagos en efectivo que tocan la caja actual CajaMovimiento cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoComprobante = TipoComprobanteEnum.SeñaProveedor; cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.SeñaProveedor; cajaMovimiento.ComprobanteId = seña.Id; cajaMovimiento.Importe = efectivo; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.FechaModificacion = _clock.Now; cajaMovimiento.PcAlta = System.Environment.MachineName; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; cajaMovimiento.OperadorModificacionId = Context.OperadorActual.Id; cajaMovimiento.SucursalModificacionId = Context.SucursalActual.Id; //descontar de la caja if (caja.Egresos == null) { caja.Egresos = 0; } if (ChkCajaAnterior.Checked == false) { caja.Egresos += (float?)efectivo; } if (caja.Saldo == null) { caja.Saldo = 0; } caja.Saldo -= (float?)efectivo; caja.FechaModificacion = _clock.Now; caja.SucursalModificacionId = Context.SucursalActual.Id; //Sucursal del operador caja.OperadorModificacionId = (Context.OperadorActual.Id); //Id el operador //traer la caja if (cajaMovimiento.Efectivo == null) { cajaMovimiento.Efectivo = 0; } cajaMovimiento.Cheque = cheque; cajaMovimiento.Tarjeta = tarjeta; cajaMovimiento.Deposito = deposito; cajaMovimiento.Efectivo = efectivo; efectivo = 0; Uow.CajaMovimientos.Agregar(cajaMovimiento); } if (tarjeta > 0 || deposito > 0 || cheque > 0 || efectivo > 0) { //creo la caja movimiento para los pagos en efectivo que tocan la caja actual CajaMovimiento cajaMovimientoAnterior = new CajaMovimiento(); cajaMovimientoAnterior.Id = Guid.NewGuid(); cajaMovimientoAnterior.CajaId = caja.Id; cajaMovimientoAnterior.TipoComprobante = TipoComprobanteEnum.SeñaProveedor; cajaMovimientoAnterior.TipoMovimientoCajaId = TipoMovimientoCajaEnum.SeñaProveedorCajaAnterior; cajaMovimientoAnterior.ComprobanteId = seña.Id; cajaMovimientoAnterior.Importe = tarjeta + deposito + cheque + efectivo; cajaMovimientoAnterior.FechaAlta = _clock.Now; cajaMovimientoAnterior.FechaModificacion = _clock.Now; cajaMovimientoAnterior.PcAlta = System.Environment.MachineName; cajaMovimientoAnterior.OperadorAltaId = Context.OperadorActual.Id; cajaMovimientoAnterior.SucursalAltaId = Context.SucursalActual.Id; cajaMovimientoAnterior.OperadorModificacionId = Context.OperadorActual.Id; cajaMovimientoAnterior.SucursalModificacionId = Context.SucursalActual.Id; if (efectivo > 0) { if (cajaMovimientoAnterior.Efectivo == null) { cajaMovimientoAnterior.Efectivo = 0; } cajaMovimientoAnterior.Efectivo += efectivo; cajaMovimientoAnterior.Cheque += cheque; cajaMovimientoAnterior.Tarjeta += tarjeta; cajaMovimientoAnterior.Deposito += deposito; if (caja.Saldo == null) { caja.Saldo = 0; } caja.Saldo -= (float?)efectivo; } if (tarjeta > 0) { if (cajaMovimientoAnterior.Tarjeta == null) { cajaMovimientoAnterior.Tarjeta = 0; } cajaMovimientoAnterior.Tarjeta += tarjeta; } if (cheque > 0) { if (cajaMovimientoAnterior.Cheque == null) { cajaMovimientoAnterior.Cheque = 0; } cajaMovimientoAnterior.Cheque += cheque; } if (deposito > 0) { if (cajaMovimientoAnterior.Deposito == null) { cajaMovimientoAnterior.Deposito = 0; } cajaMovimientoAnterior.Deposito += deposito; } Uow.CajaMovimientos.Agregar(cajaMovimientoAnterior); } Uow.Cajas.Modificar(caja); Uow.ProveedoresSenias.Agregar(seña); Uow.Commit(); _messageBoxDisplayService.ShowSuccess(Resources.MessageSuccessSeniaExitosa); } catch (Exception) { throw; } }
public void CrearSeniaProveedor(ProveedorSenia senia, IList <VentaPago> pagos, Caja caja, Guid operadorId, int sucursalId) { using (var uow = UowFactory.Create <ILaPazUow>()) { decimal?efectivo = 0; decimal?efectivoCajaAnterior = 0; decimal?tarjeta = 0; decimal?cheque = 0; decimal?deposito = 0; decimal?transferencia = 0; foreach (var pago in pagos) { switch (pago.TipoPago) { case FormaPago.Efectivo: efectivo += pago.Importe; break; case FormaPago.EfectivoCajaAnterior: efectivoCajaAnterior += pago.Importe; break; case FormaPago.Tarjeta: tarjeta += pago.Importe; break; case FormaPago.Cheque: cheque += pago.Importe; break; case FormaPago.Deposito: deposito += pago.Importe; break; case FormaPago.Transferencia: transferencia += pago.Importe; break; } } if (efectivo > 0) { //creo la caja movimiento para los pagos en efectivo que tocan la caja actual CajaMovimiento cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoComprobante = TipoComprobanteEnum.SeñaProveedor; cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.SeñaProveedor; cajaMovimiento.ComprobanteId = senia.Id; cajaMovimiento.Importe = efectivo; cajaMovimiento.ImpFac = efectivo; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.FechaModificacion = _clock.Now; cajaMovimiento.PcAlta = System.Environment.MachineName; cajaMovimiento.OperadorAltaId = operadorId; cajaMovimiento.SucursalAltaId = sucursalId; cajaMovimiento.OperadorModificacionId = operadorId; cajaMovimiento.SucursalModificacionId = sucursalId; //descontar de la caja if (caja.Egresos == null) { caja.Egresos = 0; } caja.Egresos += (float?)efectivo; if (caja.Saldo == null) { caja.Saldo = 0; } caja.Saldo -= (float?)efectivo; caja.FechaModificacion = _clock.Now; caja.SucursalModificacionId = sucursalId; //Sucursal del operador caja.OperadorModificacionId = (operadorId); //Id el operador //traer la caja if (cajaMovimiento.Efectivo == null) { cajaMovimiento.Efectivo = 0; } cajaMovimiento.Efectivo = efectivo; uow.CajaMovimientos.Agregar(cajaMovimiento); } if (tarjeta > 0 || deposito > 0 || cheque > 0 || efectivoCajaAnterior > 0 || transferencia > 0) { //creo la caja movimiento para los pagos en efectivo que tocan la caja actual CajaMovimiento cajaMovimientoAnterior = new CajaMovimiento(); cajaMovimientoAnterior.Id = Guid.NewGuid(); cajaMovimientoAnterior.CajaId = caja.Id; cajaMovimientoAnterior.TipoComprobante = TipoComprobanteEnum.SeñaProveedor; cajaMovimientoAnterior.TipoMovimientoCajaId = TipoMovimientoCajaEnum.SeñaProveedorCajaAnterior; cajaMovimientoAnterior.ComprobanteId = senia.Id; cajaMovimientoAnterior.Importe = tarjeta + deposito + cheque + efectivoCajaAnterior + transferencia; cajaMovimientoAnterior.ImpFac = tarjeta + deposito + cheque + efectivoCajaAnterior + transferencia; cajaMovimientoAnterior.FechaAlta = _clock.Now; cajaMovimientoAnterior.FechaModificacion = _clock.Now; cajaMovimientoAnterior.PcAlta = System.Environment.MachineName; cajaMovimientoAnterior.OperadorAltaId = operadorId; cajaMovimientoAnterior.SucursalAltaId = sucursalId; cajaMovimientoAnterior.OperadorModificacionId = operadorId; cajaMovimientoAnterior.SucursalModificacionId = sucursalId; if (efectivoCajaAnterior > 0) { if (cajaMovimientoAnterior.Efectivo == null) { cajaMovimientoAnterior.Efectivo = 0; } cajaMovimientoAnterior.Efectivo += efectivoCajaAnterior; if (caja.Saldo == null) { caja.Saldo = 0; } caja.Saldo -= (float?)efectivo; } if (tarjeta > 0) { if (cajaMovimientoAnterior.Tarjeta == null) { cajaMovimientoAnterior.Tarjeta = 0; } cajaMovimientoAnterior.Tarjeta += tarjeta; } if (cheque > 0) { if (cajaMovimientoAnterior.Cheque == null) { cajaMovimientoAnterior.Cheque = 0; } cajaMovimientoAnterior.Cheque += cheque; } if (deposito > 0) { if (cajaMovimientoAnterior.Deposito == null) { cajaMovimientoAnterior.Deposito = 0; } cajaMovimientoAnterior.Deposito += deposito; } if (transferencia > 0) { if (cajaMovimientoAnterior.Transferencia == null) { cajaMovimientoAnterior.Transferencia = 0; } cajaMovimientoAnterior.Transferencia += transferencia; } uow.CajaMovimientos.Agregar(cajaMovimientoAnterior); } //Guardamos el movimiento del depósito foreach (var pago in pagos) { switch (pago.TipoPago) { case FormaPago.Cheque: // HACER ALGO break; case FormaPago.Deposito: var pagoDeposito = pago as VentaPagoDeposito; CuentasMovimiento cuentasMovimiento = new CuentasMovimiento(); cuentasMovimiento.CuentaId = pagoDeposito.CuentaId ?? 0; cuentasMovimiento.TipoMovimientoId = 1;//Deposito a proveedor cuentasMovimiento.FechaMovimiento = pagoDeposito.Fecha; cuentasMovimiento.EstadoMovimientoCuentaId = 0; cuentasMovimiento.TipoComprobanteId = TipoComprobanteEnum.SeñaProveedor; cuentasMovimiento.ComprobanteId = senia.Id; cuentasMovimiento.MonedaId = 0; cuentasMovimiento.NroMovimiento = pagoDeposito.Numero; cuentasMovimiento.Descripcion = "DEPOSITO SEÑA NRO " + pagoDeposito.Numero.ToString(); cuentasMovimiento.FechaCobro = _clock.Now; cuentasMovimiento.Debito = pago.Importe; cuentasMovimiento.Credito = 0; cuentasMovimiento.TipoCarga = 1; cuentasMovimiento.CajaId = caja.Id; cuentasMovimiento.FechaAlta = _clock.Now; cuentasMovimiento.OperadorAltaId = operadorId; cuentasMovimiento.SucursalAltaId = sucursalId; uow.CuentasMovimientos.Agregar(cuentasMovimiento); break; case FormaPago.Transferencia: var pagoTransferencia = pago as VentaPagoTransferencia; CuentasMovimiento cuentasMovimientoTransferecia = new CuentasMovimiento(); cuentasMovimientoTransferecia.CuentaId = pagoTransferencia.CuentaId ?? 0; cuentasMovimientoTransferecia.TipoMovimientoId = 1;//Deposito a proveedor cuentasMovimientoTransferecia.FechaMovimiento = pagoTransferencia.Fecha; cuentasMovimientoTransferecia.EstadoMovimientoCuentaId = 0; cuentasMovimientoTransferecia.TipoComprobanteId = TipoComprobanteEnum.SeñaProveedor; cuentasMovimientoTransferecia.ComprobanteId = senia.Id; cuentasMovimientoTransferecia.MonedaId = 0; cuentasMovimientoTransferecia.NroMovimiento = pagoTransferencia.Numero; cuentasMovimientoTransferecia.Descripcion = "TRANSFERENCIA SEÑA NRO " + pagoTransferencia.Numero.ToString(); cuentasMovimientoTransferecia.FechaCobro = _clock.Now; cuentasMovimientoTransferecia.Debito = pago.Importe; cuentasMovimientoTransferecia.Credito = 0; cuentasMovimientoTransferecia.TipoCarga = 1; cuentasMovimientoTransferecia.CajaId = caja.Id; cuentasMovimientoTransferecia.FechaAlta = _clock.Now; cuentasMovimientoTransferecia.OperadorAltaId = operadorId; cuentasMovimientoTransferecia.SucursalAltaId = sucursalId; uow.CuentasMovimientos.Agregar(cuentasMovimientoTransferecia); break; } } uow.Cajas.Modificar(caja); uow.ProveedoresSenias.Agregar(senia); uow.Commit(); } }
private void GenerarClienteMontoFavor() { //TODO:Agregar el numero de sucursal a la tabla el mismo no coincide con el id. int numeroDeSucursal = Context.SucursalActual.SucursalNumero ?? 1;// 1; ClienteMontoFavor clienteMontoFavor = new ClienteMontoFavor(); clienteMontoFavor.Id = Guid.NewGuid(); _notaCreditoId = clienteMontoFavor.Id; clienteMontoFavor.OperadorAutoriza = _operadorIdAutoriza; clienteMontoFavor.ClienteId = _venta.ClienteId; clienteMontoFavor.FechaComprobante = _clock.Now; clienteMontoFavor.TipoComprobanteId = TipoComprobanteEnum.NotaCrédito; clienteMontoFavor.LCN = "R" + numeroDeSucursal.ToString().PadLeft(4, '0') + CalcularLCN().PadLeft(8, '0'); _lcn = clienteMontoFavor.LCN; clienteMontoFavor.Concepto = "Nota de crédito " + clienteMontoFavor.LCN; clienteMontoFavor.Importe = Total; clienteMontoFavor.ImpOcupado = 0; clienteMontoFavor.Observaciones = TipoComprobanteEnum.NotaCrédito.ToString(); clienteMontoFavor.FechaAlta = _clock.Now; clienteMontoFavor.OperadorAltaId = Context.OperadorActual.Id; clienteMontoFavor.SucursalAltaId = Context.SucursalActual.Id; Uow.ClientesMontosFavor.Agregar(clienteMontoFavor); foreach (VentaDetalleDevolucion devuleto in Devuletos) { ClientesMontosFavorDetalle clientesMontosAfavorDetalle = new ClientesMontosFavorDetalle(); clientesMontosAfavorDetalle.Id = Guid.NewGuid(); clientesMontosAfavorDetalle.ClientesMontosFavorId = clienteMontoFavor.Id; clientesMontosAfavorDetalle.TitulosId = devuleto.TituloId; clientesMontosAfavorDetalle.CantidadPropia = devuleto.CantidadPropia; clientesMontosAfavorDetalle.CantidadConsig = devuleto.CantidadConsignada; clientesMontosAfavorDetalle.FechaAlta = _clock.Now; clientesMontosAfavorDetalle.SucursalAltaId = Context.SucursalActual.Id; clientesMontosAfavorDetalle.OperadorAltaId = Context.OperadorActual.Id; Uow.ClientesMontosFavorDetalles.Agregar(clientesMontosAfavorDetalle); } var cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(cm => cm.ComprobanteId == _venta.Id); var montoDevolucion = Total; CajaMovimiento cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = this.Context.CajaActual.Id; cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.CreditoFavorPorNc; cajaMovimiento.TipoComprobante = TipoComprobanteEnum.NotaCrédito; cajaMovimiento.ComprobanteId = clienteMontoFavor.Id; cajaMovimiento.Importe = Total; cajaMovimiento.ImpFac = Total; cajaMovimiento.Efectivo = cajaMovimientoAnterior.Efectivo >= montoDevolucion ? montoDevolucion : cajaMovimientoAnterior.Efectivo; montoDevolucion -= cajaMovimiento.Efectivo; if (montoDevolucion > 0) { cajaMovimiento.Tarjeta = (cajaMovimientoAnterior.Tarjeta >= montoDevolucion) ? montoDevolucion : cajaMovimientoAnterior.Tarjeta; montoDevolucion -= cajaMovimiento.Tarjeta; } if (montoDevolucion > 0) { cajaMovimiento.Cheque = (cajaMovimientoAnterior.Cheque >= montoDevolucion ? montoDevolucion : cajaMovimientoAnterior.Cheque); montoDevolucion -= cajaMovimiento.Cheque; } if (montoDevolucion > 0) { cajaMovimiento.Deposito = (cajaMovimientoAnterior.Deposito >= montoDevolucion ? montoDevolucion : cajaMovimientoAnterior.Deposito); montoDevolucion -= cajaMovimiento.Deposito; } if (montoDevolucion > 0) { cajaMovimiento.Transferencia = (cajaMovimientoAnterior.Transferencia >= montoDevolucion ? montoDevolucion : cajaMovimientoAnterior.Transferencia); montoDevolucion -= cajaMovimiento.Transferencia; } cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; Uow.CajaMovimientos.Agregar(cajaMovimiento); }
private void Anular(ClienteMontoFavor senia) { //Utiliar toda la seña if (senia.TipoComprobanteId == TipoComprobanteEnum.SeñaCliente) { var diferencia = senia.Importe - senia.ImpOcupado; if (diferencia == 0) { return; } senia.ImpOcupado = senia.Importe; senia.FechaAnulacion = _clock.Now; senia.FechaModificacion = _clock.Now; senia.OperadorModificacionId = Context.OperadorActual.Id; senia.SucursalModificacionId = Context.SucursalActual.Id; Uow.ClientesMontosFavor.Modificar(senia); //generar cajamovimientno Caja caja = this.Context.CajaActual; if (caja.Ingresos == null) { caja.Ingresos = 0; } caja.Egresos += (float?)diferencia; if (caja.Saldo == null) { caja.Saldo = 0; } caja.Saldo -= (float?)diferencia; 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.AnulaciónSeña; cajaMovimiento.TipoComprobante = TipoComprobanteEnum.SeñaCliente; cajaMovimiento.ComprobanteId = senia.Id; cajaMovimiento.Senia = 0; cajaMovimiento.Importe = diferencia; cajaMovimiento.ImpFac = 0; cajaMovimiento.PcAlta = Environment.MachineName; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; //Sucursal del operador cajaMovimiento.OperadorAltaId = (Context.OperadorActual.Id); //Id el operador cajaMovimiento.FechaAlta = _clock.Now; Uow.CajaMovimientos.Agregar(cajaMovimiento); //Generaregreso?? Uow.Commit(); _messageBoxDisplayService.ShowSuccess("Anulación de seña exitosa"); BuscarHistorial(); } else { _messageBoxDisplayService.ShowError("No puede anular una nota de crédito"); } }