private void BtnCobroPago_Click(object sender, EventArgs e) { if (venta.Total > 0) { using (var form = new FrmCobroRapido(venta.Total, cliente)) { if (form.ShowDialog() == DialogResult.OK) { //Cierra venta CierraVenta(form); } } } }
private void AfectaFlujo(FrmCobroRapido form) { if (venta.ConceptoPago1 != null) { Flujo flujo = new Flujo(); flujo.ConceptoId = venta.TipoDocId; flujo.EstacionId = Ambiente.Estacion.EstacionId; flujo.ConceptoPagoId = venta.ConceptoPago1; if (form.formaPago1 == null) { flujo.AfectaCorte = formaPagoController.SelectOneByName(venta.ConceptoPago1).AfectaCorte; } else { flujo.AfectaCorte = form.formaPago1.AfectaCorte; } flujo.Referencia = venta.VentaId; flujo.Referenciap = "NULL"; flujo.Es = "E"; flujo.Importe = venta.Pago1; flujo.CreatedAt = DateTime.Now; flujo.CreatedBy = Ambiente.LoggedUser.UsuarioId; flujo.IsDeleted = false; flujoController.InsertOne(flujo); } if (venta.ConceptoPago2 != null) { Flujo flujo = new Flujo(); flujo.ConceptoId = venta.TipoDocId; flujo.EstacionId = Ambiente.Estacion.EstacionId; flujo.ConceptoPagoId = venta.ConceptoPago2; if (form.formaPago2 == null) { flujo.AfectaCorte = formaPagoController.SelectOneByName(venta.ConceptoPago2).AfectaCorte; } else { flujo.AfectaCorte = form.formaPago2.AfectaCorte; } flujo.Referencia = venta.VentaId; flujo.Referenciap = "NULL"; flujo.Es = "E"; flujo.Importe = venta.Pago2; flujo.CreatedAt = DateTime.Now; flujo.CreatedBy = Ambiente.LoggedUser.UsuarioId; flujo.IsDeleted = false; flujoController.InsertOne(flujo); } if (venta.ConceptoPago3 != null) { Flujo flujo = new Flujo(); flujo.ConceptoId = venta.TipoDocId; flujo.EstacionId = Ambiente.Estacion.EstacionId; flujo.ConceptoPagoId = venta.ConceptoPago3; if (form.formaPago3 == null) { flujo.AfectaCorte = formaPagoController.SelectOneByName(venta.ConceptoPago3).AfectaCorte; } else { flujo.AfectaCorte = form.formaPago3.AfectaCorte; } flujo.Referencia = venta.VentaId; flujo.Referenciap = "NULL"; flujo.Es = "E"; flujo.Importe = venta.Pago3; flujo.CreatedAt = DateTime.Now; flujo.CreatedBy = Ambiente.LoggedUser.UsuarioId; flujo.IsDeleted = false; flujoController.InsertOne(flujo); } if (venta.Cambio != null) { if (venta.Cambio > 0) { Flujo flujo = new Flujo(); flujo.ConceptoId = venta.TipoDocId; flujo.EstacionId = Ambiente.Estacion.EstacionId; flujo.ConceptoPagoId = "CAM"; flujo.AfectaCorte = false; flujo.Referencia = venta.VentaId; flujo.Referenciap = "NULL"; flujo.Es = "S"; flujo.Importe = (decimal)venta.Cambio; flujo.CreatedAt = DateTime.Now; flujo.CreatedBy = Ambiente.LoggedUser.UsuarioId; flujo.IsDeleted = false; flujoController.InsertOne(flujo); } } }
private void AplicaPuntos(FrmCobroRapido form) { if (form.CobroConPuntos) { if (cliente != null && cliente.DineroElectronico > 0 && cliente.TieneMonedero) { if (form.NoTarjeta.Length == 0) { Ambiente.Mensaje("Proceso abortado. Si el cobro es con puntos escanee la tarjeta."); Ambiente.CancelaProceso = true; return; } else { Ambiente.CancelaProceso = false; } var clientem = clienteController.SelectOneByMonedero(form.NoTarjeta); if (clientem == null) { //Cliente no tiene monedero asignado if (Ambiente.Pregunta("El cliente tiene monedero, pero no lo han asignado. Quieres asignar el esta tarjera de puntos al cliente de la venta")) { cliente.NoTarjetaPuntos = form.NoTarjeta; clienteController.Update(cliente); if (cliente.DineroElectronico >= venta.Total) { if (Ambiente.Pregunta("Aplicar el 100 % de descuento a la venta")) { venta.DescXpuntos = venta.Total; venta.Total = 0; venta.PuntosAplicados = true; cliente.DineroElectronico -= venta.Total; clienteController.Update(cliente); } } else { if (Ambiente.Pregunta("Aplicar $" + Math.Round(cliente.DineroElectronico, 1) + " pesos de descuento a la venta")) { venta.DescXpuntos = cliente.DineroElectronico; venta.PuntosAplicados = true; cliente.DineroElectronico = 0; venta.Total -= venta.DescXpuntos; clienteController.Update(cliente); } } } else { Ambiente.Mensaje("No se aplicaron los puntos"); } } else { //validar que sea el mismo cliente de la venta if (clientem.ClienteId.Equals(cliente.ClienteId)) { //Aplicar los puntos if (cliente.DineroElectronico >= venta.Total) { if (Ambiente.Pregunta("Aplicar el 100 % de descuento a la venta")) { venta.DescXpuntos = venta.Total; venta.Total = 0; venta.PuntosAplicados = true; cliente.DineroElectronico -= venta.Total; clienteController.Update(cliente); } } else { if (Ambiente.Pregunta("Aplicar $" + Math.Round(cliente.DineroElectronico, 1) + " pesos de descuento a la venta")) { venta.DescXpuntos = cliente.DineroElectronico; venta.PuntosAplicados = true; cliente.DineroElectronico = 0; venta.Total -= venta.DescXpuntos; clienteController.Update(cliente); } } } else { Ambiente.Mensaje("Esta operacion no está permitida, los puntos no se transfieren entre clientes"); } } } else { Ambiente.Mensaje("Puntos no aplicados. El cliente no tiene monedero, o no tiene puntos o el cliente es público en general. "); return; } } }
private void CierraVenta(FrmCobroRapido form) { venta.TipoDocId = form.tipoDoc; if (venta.TipoDocId.Equals("TIC")) { venta.NoRef = Ambiente.TraeSiguiente("TIC"); } else if (venta.TipoDocId.Equals("FAC")) { venta.NoRef = Ambiente.TraeSiguiente("FAC"); } if (venta.TipoDocId.Equals("FAC") && venta.ClienteId.Equals("SYS")) { Ambiente.Mensaje("Operación denegada, selecciona un cliente valido para facturar"); return; } if (venta.TipoDocId.Equals("TIC") && !Ambiente.Estacion.SolicitarFmpago) { if (cliente == null) { venta.MetodoPago = "PUE"; venta.UsoCfdi = "G01"; } else { venta.MetodoPago = cliente.MetodoPagoId.Trim().Length == 0 ? "PUE" : cliente.MetodoPagoId.Trim(); venta.UsoCfdi = cliente.UsoCfdiid.Trim().Length == 0 ? "G01" : cliente.UsoCfdiid.Trim(); } } //Aplicaion de puntos GuardaPuntos(); AplicaPuntos(form); if (Ambiente.CancelaProceso) { return; } // venta.TotalConLetra = form.totalLetra; venta.TotalConLetra = new Moneda().Convertir(venta.Total.ToString(), true); venta.EsCxc = form.Cxc; venta.FormaPago1 = form.formaPago1 == null ? "01" : form.formaPago1.FormaPagoId; venta.FormaPago2 = form.formaPago2 == null ? null : form.formaPago2.FormaPagoId; venta.FormaPago3 = form.formaPago3 == null ? null : form.formaPago3.FormaPagoId; venta.ConceptoPago1 = form.formaPago1 == null ? "EFECTIVO" : form.formaPago1.Descripcion; venta.ConceptoPago2 = form.formaPago2 == null ? null : form.formaPago2.Descripcion; venta.ConceptoPago3 = form.formaPago3 == null ? null : form.formaPago3.Descripcion; venta.Pago1 = form.pago1; venta.Pago2 = form.pago2; venta.Pago3 = form.pago3; venta.Cambio = form.cambio; venta.EstadoDocId = "CON"; if (ventaController.UpdateOne(venta)) { RestaLotes(); GuardaPartidas(); Ambiente.UpdateSiguiente("TIC"); LblUltDocumento.Text = "TICKET " + venta.NoRef + " " + DateTime.Now.ToShortTimeString(); LblCambio.Text = "SU CAMBIO: " + Ambiente.FDinero(venta.Cambio.ToString()); AfectaFlujo(form); AfectaMovsInv(); AfectaStock(); if (!venta.PuntosAplicados) { if (Ambiente.LoggedUser.Facturar) { if (Ambiente.Pregunta("Requiere factura para este documento")) { new FrmTicketFactura(venta.NoRef).Show(); } } } Ambiente.SaveAndPrintTicket(venta); ResetPDV(); } else { Ambiente.Mensaje("Cierre de la venta salió mal :("); } }