public override void ActualizarControl() { Lbl.Comprobantes.PuntoDeVenta Pv = this.Elemento as Lbl.Comprobantes.PuntoDeVenta; EntradaPrefijo.ValueInt = Pv.Prefijo; EntradaNumero.ValueInt = Pv.Numero; if (string.IsNullOrEmpty(Pv.TipoFac)) { EntradaTipoFac.TextKey = "*"; } else { EntradaTipoFac.TextKey = Pv.TipoFac; } EntradaSucursal.Elemento = Pv.Sucursal; EntradaImpresora.Elemento = Pv.Impresora; EntradaTipo.ValueInt = (int)(Pv.Tipo); EntradaDeTalonario.Value = Pv.UsaTalonario; EntradaEstacion.Text = Pv.Estacion; EntradaCarga.ValueInt = Pv.CargaManual ? 1 : 0; EntradaModelo.ValueInt = ((int)(Pv.ModeloImpresoraFiscal)); EntradaPuerto.ValueInt = Pv.Puerto; EntradaBps.ValueInt = Pv.Bps; base.ActualizarControl(); }
public override void ActualizarElemento() { Lbl.Comprobantes.PuntoDeVenta Pv = this.Elemento as Lbl.Comprobantes.PuntoDeVenta; Pv.Prefijo = EntradaPrefijo.ValueInt; Pv.Numero = EntradaNumero.ValueInt; if (EntradaTipoFac.TextKey == "*") { Pv.TipoFac = ""; } else { Pv.TipoFac = EntradaTipoFac.TextKey; } Pv.Sucursal = EntradaSucursal.Elemento as Lbl.Entidades.Sucursal; Pv.Impresora = EntradaImpresora.Elemento as Lbl.Impresion.Impresora; Pv.Tipo = (Lbl.Comprobantes.TipoPv)(EntradaTipo.ValueInt); Pv.UsaTalonario = EntradaDeTalonario.Value; Pv.Estacion = EntradaEstacion.Text; Pv.CargaManual = EntradaCarga.ValueInt == 1; Pv.ModeloImpresoraFiscal = (Lbl.Impresion.ModelosFiscales)(EntradaModelo.ValueInt); Pv.Puerto = EntradaPuerto.ValueInt; Pv.Bps = EntradaBps.ValueInt; base.ActualizarElemento(); }
public override void OnLoad() { if (this.GetFieldValue <int>("id_tipo") == 0) { this.Tipo = null; } else { this.Tipo = new Lbl.Comprobantes.Tipo(this.Connection, this.GetFieldValue <int>("id_tipo")); } if (this.GetFieldValue <int>("id_impresora") == 0) { this.Impresora = null; } else { this.Impresora = new Impresion.Impresora(this.Connection, this.GetFieldValue <int>("id_impresora")); } if (this.GetFieldValue <int>("id_pv") == 0) { this.PuntoDeVenta = null; } else { this.PuntoDeVenta = new Comprobantes.PuntoDeVenta(this.Connection, this.GetFieldValue <int>("id_pv")); } if (this.GetFieldValue <int>("id_sucursal") == 0) { this.Sucursal = null; } else { this.Sucursal = new Entidades.Sucursal(this.Connection, this.GetFieldValue <int>("id_sucursal")); } base.OnLoad(); }
public override Lfx.Types.OperationResult BeforePrint() { Lbl.Comprobantes.ComprobanteConArticulos Comprob = this.Elemento as Lbl.Comprobantes.ComprobanteConArticulos; if (Comprob.Articulos.Count >= 1 && (Comprob.Articulos[0].Cantidad < 0 || Comprob.Articulos[0].ImporteUnitario < 0)) { return(new Lfx.Types.FailureOperationResult("El primer ítem de la factura no puede ser negativo. Utilice los ítem negativos en último lugar.")); } Comprob.Cliente.Cargar(); if (Comprob.FormaDePago == null) { return(new Lfx.Types.FailureOperationResult("Por favor seleccione la forma de pago.")); } if (Comprob.Cliente == null) { return(new Lfx.Types.FailureOperationResult("Por favor seleccione un cliente.")); } if (Comprob.Tipo == null) { return(new Lfx.Types.FailureOperationResult("Por favor seleccione el tipo de comprobante.")); } if (Lbl.Sys.Config.Pais.Id == 1) { // Verificaciones especiales para Argentina if (Comprob.Tipo.EsFacturaNCoND && Comprob.Cliente.SituacionTributaria != null && Comprob.Tipo.Letra != Comprob.Cliente.LetraPredeterminada()) { Lui.Forms.YesNoDialog Pregunta = new Lui.Forms.YesNoDialog(@"La situación tributaria del cliente y el tipo de comprobante no se corresponden. Un cliente " + Comprob.Cliente.SituacionTributaria.ToString() + @" debería llevar un comprobante tipo " + Comprob.Cliente.LetraPredeterminada() + @". No debería continuar con la impresión. ¿Desea continuar de todos modos?", "Tipo de comprobante incorrecto"); Pregunta.DialogButtons = Lui.Forms.DialogButtons.YesNo; if (Pregunta.ShowDialog() == DialogResult.Cancel) { return(new Lfx.Types.FailureOperationResult("Corrija la situación tributaria del cliente o el tipo de comprobante.")); } } if (Comprob.Tipo.Letra.ToUpperInvariant() == "A") { if (Comprob.Cliente.ClaveTributaria == null || Comprob.Cliente.ClaveTributaria.EsValido() == false) { return(new Lfx.Types.FailureOperationResult("El cliente no tiene una CUIT válida. Por favor edite el cliente y escriba una CUIT válida.")); } } else if (Comprob.Tipo.Letra == "B") { //Si es factura B de más de $ 1000, debe llevar el Nº de DNI if (Comprob.Total >= 1000 && Comprob.Cliente.NumeroDocumento.Length < 5 && (Comprob.Cliente.ClaveTributaria == null || Comprob.Cliente.ClaveTributaria.EsValido() == false)) { return(new Lfx.Types.FailureOperationResult("Para Facturas B de $ 1.000 o más debe proporcionar el número de DNI/CUIT del cliente.")); } //Si es factura B de más de $ 1000, debe llevar domicilio if (Comprob.Total >= 1000 && Comprob.Cliente.Domicilio.Length < 1) { return(new Lfx.Types.FailureOperationResult("Para Facturas B de $ 1.000 o más debe proporcionar el domicilio del cliente.")); } } } if (EntradaProductos.MostrarExistencias && this.Tipo.MueveExistencias < 0 && Comprob.HayExistencias() == false) { Lui.Forms.YesNoDialog OPregunta = new Lui.Forms.YesNoDialog("Las existencias actuales no son suficientes para cubrir la operación que intenta realizar.\n¿Desea continuar de todos modos?", "No hay existencias suficientes"); OPregunta.DialogButtons = Lui.Forms.DialogButtons.YesNo; if (OPregunta.ShowDialog() == DialogResult.Cancel) { return(new Lfx.Types.FailureOperationResult("No se imprimir el comprobante por falta de existencias.")); } } if (Comprob.Cliente.Id != 999 && (Comprob.Tipo.EsFactura || Comprob.Tipo.EsNotaDebito)) { decimal SaldoCtaCte = Comprob.Cliente.CuentaCorriente.ObtenerSaldo(false); if (Comprob.FormaDePago != null && Comprob.FormaDePago.Tipo == Lbl.Pagos.TiposFormasDePago.CuentaCorriente) { decimal LimiteCredito = Comprob.Cliente.LimiteCredito; if (LimiteCredito == 0) { LimiteCredito = Lfx.Types.Parsing.ParseCurrency(Lfx.Workspace.Master.CurrentConfig.ReadGlobalSetting <string>("Sistema.Cuentas.LimiteCreditoPredet", "0")); } if (LimiteCredito != 0 && (Comprob.Total + SaldoCtaCte) > LimiteCredito) { return(new Lfx.Types.FailureOperationResult("El valor de la factura y/o el saldo en cuenta corriente supera el límite de crédito de este cliente.")); } } else { if (SaldoCtaCte < 0) { using (SaldoEnCuentaCorriente FormularioError = new SaldoEnCuentaCorriente()) { switch (FormularioError.ShowDialog()) { case DialogResult.Yes: //Corregir el problema this.EntradaFormaPago.ValueInt = 3; this.Save(); Comprob.FormaDePago.Tipo = Lbl.Pagos.TiposFormasDePago.CuentaCorriente; break; case DialogResult.No: //Continuar. No corregir el problema. break; default: //Cancelar y volver a la edición. return(new Lfx.Types.CancelOperationResult()); } } } } } if (Comprob.PV < 1) { return(new Lfx.Types.FailureOperationResult("Por favor escriba un punto de venta válido.")); } if (Lbl.Comprobantes.PuntoDeVenta.TodosPorNumero.ContainsKey(Comprob.PV) == false) { // No existe el PV... vacío la caché antes intentar de nuevo y dar un error Lbl.Comprobantes.PuntoDeVenta.TodosPorNumero.Clear(); if (Lbl.Comprobantes.PuntoDeVenta.TodosPorNumero.ContainsKey(Comprob.PV) == false) { return(new Lfx.Types.FailureOperationResult("El punto de venta no existe. Si desea definir un nuevo punto de venta, utilice el menú Comprobantes -> Tablas -> Puntos de venta.")); } } Lbl.Comprobantes.PuntoDeVenta Pv = Lbl.Comprobantes.PuntoDeVenta.TodosPorNumero[Comprob.PV]; if (Pv.Tipo == Lbl.Comprobantes.TipoPv.Talonario) { Lbl.Impresion.Impresora Impresora = Comprob.ObtenerImpresora(); if (Pv.CargaManual && (Impresora == null || Impresora.CargaPapel == Lbl.Impresion.CargasPapel.Automatica)) { Lui.Printing.ManualFeedDialog FormularioCargaManual = new Lui.Printing.ManualFeedDialog(); FormularioCargaManual.DocumentName = Comprob.Tipo.ToString() + " " + Comprob.PV.ToString("0000") + "-" + Lbl.Comprobantes.Numerador.ProximoNumero(Comprob).ToString("00000000"); // Muestro el nombre de la impresora if (Impresora != null) { FormularioCargaManual.PrinterName = Impresora.Nombre; } else { System.Drawing.Printing.PrinterSettings objPrint = new System.Drawing.Printing.PrinterSettings(); FormularioCargaManual.PrinterName = objPrint.PrinterName; } if (FormularioCargaManual.ShowDialog() == DialogResult.Cancel) { return(new Lfx.Types.CancelOperationResult()); } } } if (Comprob.Tipo.MueveExistencias != 0) { Lfx.Types.OperationResult Res = Comprob.VerificarSeries(); if (Res.Success == false) { return(Res); } } return(base.BeforePrint()); }
public override void OnLoad() { if (this.GetFieldValue<int>("id_tipo") == 0) this.Tipo = null; else this.Tipo = new Lbl.Comprobantes.Tipo(this.Connection, this.GetFieldValue<int>("id_tipo")); if (this.GetFieldValue<int>("id_impresora") == 0) this.Impresora = null; else this.Impresora = new Impresion.Impresora(this.Connection, this.GetFieldValue<int>("id_impresora")); if (this.GetFieldValue<int>("id_pv") == 0) this.PuntoDeVenta = null; else this.PuntoDeVenta = new Comprobantes.PuntoDeVenta(this.Connection, this.GetFieldValue<int>("id_pv")); if (this.GetFieldValue<int>("id_sucursal") == 0) this.Sucursal = null; else this.Sucursal = new Entidades.Sucursal(this.Connection, this.GetFieldValue<int>("id_sucursal")); base.OnLoad(); }