public void ProbarFacturaBSinIvaEnEfectivo() { var Fac = new Lbl.Comprobantes.Factura(TestSetup.Connection); Fac.Crear(); Fac.Vendedor = Administrador; Fac.Cliente = SocioConsFinalFueguino; Fac.FormaDePago = Efectivo; Fac.Tipo = TipoB; var Det = Test.Entity.Comprobantes.DetalleArticuloTest.ObtenerDetalleEjemplo(false, Fac.Cliente.ObtenerSituacionIva() != Impuestos.SituacionIva.Exento); Fac.Articulos.Add(Det); Fac.Descuento = 5; Assert.AreEqual(437m, Fac.Total, "Total debe ser 437"); Fac.Guardar(); var Ctrl = new Lazaro.Base.Controller.ComprobanteController(); Ctrl.Imprimir(Fac, this.ObtenerImpresoraNula()); // Verificar importes de la factura var FacGuardada = new Lbl.Comprobantes.Factura(TestSetup.Connection, Fac.Id); Assert.AreEqual(5m, FacGuardada.Descuento, "Descuento debe ser 5"); Assert.AreEqual(437m, FacGuardada.Total, "Total debe ser 437"); Assert.AreEqual(23m, FacGuardada.ImporteDescuentos, "ImporteDescuentos debe ser 23"); Assert.AreEqual(437m, FacGuardada.ImporteCancelado, "ImporteCancelado debe ser 437"); Assert.AreEqual(0m, FacGuardada.ImporteIvaDiscriminado, "ImporteIvaDiscriminado debe ser 0"); Assert.AreEqual(0m, FacGuardada.ImporteIvaDiscriminadoFinal, "ImporteIvaDiscriminadoFinal debe ser 0"); Assert.AreEqual(0m, FacGuardada.ImporteIva, "ImporteIva debe ser 0"); Assert.AreEqual(0m, FacGuardada.ImporteIvaFinal, "ImporteIvaFinal debe ser 0"); var CajaEfectivo = new Lbl.Cajas.Caja(TestSetup.Connection, 999); var UltMovim = CajaEfectivo.ObtenerUltimoMovimiento(); Assert.AreEqual(437m, UltMovim.Importe, "El último movimiento en efectivo debe ser 437"); }
public void ProbarFacturaBConIvaEnCtaCte() { var Fac = new Lbl.Comprobantes.Factura(TestSetup.Connection); Fac.Crear(); Fac.Vendedor = Administrador; Fac.Cliente = SocioConsFinalPortenio; Fac.FormaDePago = CtaCte; Fac.Tipo = TipoB; var Det = Test.Entity.Comprobantes.DetalleArticuloTest.ObtenerDetalleEjemplo(false, Fac.Cliente.ObtenerSituacionIva() != Impuestos.SituacionIva.Exento); Fac.Articulos.Add(Det); Fac.Descuento = 5; Assert.AreEqual(528.77m, Fac.Total, "Total debe ser 528.77"); Fac.Guardar(); var Ctrl = new Lazaro.Base.Controller.ComprobanteController(); Ctrl.Imprimir(Fac, this.ObtenerImpresoraNula()); // Verificar importes de la factura var FacGuardada = new Lbl.Comprobantes.Factura(TestSetup.Connection, Fac.Id); Assert.AreEqual(5m, FacGuardada.Descuento, "Descuento debe ser 5"); Assert.AreEqual(528.77m, FacGuardada.Total, "Total debe ser 528.77"); Assert.AreEqual(27.83m, FacGuardada.ImporteDescuentos, "ImporteDescuentos debe ser 27.83"); Assert.AreEqual(0m, FacGuardada.ImporteCancelado, "ImporteCancelado debe ser 0"); Assert.AreEqual(0m, FacGuardada.ImporteIvaDiscriminado, "ImporteIvaDiscriminado debe ser 0"); Assert.AreEqual(0m, FacGuardada.ImporteIvaDiscriminadoFinal, "ImporteIvaDiscriminadoFinal debe ser 0"); Assert.AreEqual(96.6m, FacGuardada.ImporteIva, "ImporteIva debe ser 96.60"); Assert.AreEqual(91.77m, FacGuardada.ImporteIvaFinal, "ImporteIvaFinal debe ser 91.77"); var UltMovim = Fac.Cliente.CuentaCorriente.ObtenerUltimoMovimiento(); Assert.AreEqual(528.77m, UltMovim.Importe, "El movimiento en la cuenta corriente debe ser por el total de la factura."); }
private Lfx.Types.OperationResult Facturar() { Lui.Forms.YesNoDialog Pregunta = new Lui.Forms.YesNoDialog("¿Desea guardar los cambios realizados y generar una factura a partir de esta tarea?", "Facturar"); if (Pregunta.ShowDialog() != DialogResult.OK) { return(new Lfx.Types.CancelOperationResult()); } if (EntradaEstado.ValueInt < 50) { EntradaEstado.ValueInt = 50; } Lfx.Types.OperationResult Res = this.Save(); if (Res.Success == false) { return(Res); } Lbl.Tareas.Tarea Tarea = this.Elemento as Lbl.Tareas.Tarea; Lbl.Comprobantes.ComprobanteFacturable Factura; Lfx.Data.Connection ConnFacturaNueva = Lfx.Workspace.Master.GetNewConnection("Convertir tarea en factura"); if (Tarea.Factura != null && Tarea.Factura.Anulado == false) { // Ya fue facturada... lo muestro Factura = Tarea.Factura; } else { // No tiene comprobante, lo creo Factura = new Lbl.Comprobantes.Factura(ConnFacturaNueva); Factura.Crear(); Factura.Cliente = EntradaCliente.Elemento as Lbl.Personas.Persona; Factura.Cliente.Connection = ConnFacturaNueva; Factura.Tipo = Factura.Cliente.ObtenerTipoComprobante(); Factura.Tipo.Connection = ConnFacturaNueva; Factura.Vendedor = EntradaEncargado.Elemento as Lbl.Personas.Persona; Factura.Vendedor.Connection = ConnFacturaNueva; Factura.Obs = EntradaTarea.TextDetail + " s/" + this.Elemento.ToString(); if (Tarea.Articulos.Count > 0) { Factura.Articulos.AddRange(Tarea.Articulos); } else if (Tarea.Presupuesto != null && Tarea.Presupuesto.Articulos.Count > 0) { Factura.Articulos.AddRange(Tarea.Presupuesto.Articulos); Factura.Descuento = Tarea.Presupuesto.Descuento; } if (EntradaImportePresupuesto.ValueDecimal > 0) { Lbl.Comprobantes.DetalleArticulo Art = new Lbl.Comprobantes.DetalleArticulo(Factura); Art.Nombre = this.Elemento.ToString(); Art.Unitario = EntradaImportePresupuesto.ValueDecimal; Art.Cantidad = 1; Factura.Articulos.Add(Art); } } Lfc.FormularioEdicion FormularioFactura = Lfc.Instanciador.InstanciarFormularioEdicion(Factura); FormularioFactura.MdiParent = this.ParentForm.MdiParent; FormularioFactura.ControlDestino = EntradaComprobanteId; FormularioFactura.Show(); return(new Lfx.Types.SuccessOperationResult()); }
private Lfx.Types.OperationResult Facturar() { Lui.Forms.YesNoDialog Pregunta = new Lui.Forms.YesNoDialog("¿Desea guardar los cambios realizados y generar una factura a partir de esta tarea?", "Facturar"); if (Pregunta.ShowDialog() != DialogResult.OK) return new Lfx.Types.CancelOperationResult(); if (EntradaEstado.ValueInt < 50) EntradaEstado.ValueInt = 50; Lfx.Types.OperationResult Res = this.Save(); if (Res.Success == false) return Res; Lbl.Tareas.Tarea Tarea = this.Elemento as Lbl.Tareas.Tarea; Lbl.Comprobantes.ComprobanteFacturable Factura; Lfx.Data.Connection ConnFacturaNueva = Lfx.Workspace.Master.GetNewConnection("Convertir tarea en factura"); if (Tarea.Factura != null && Tarea.Factura.Anulado == false) { // Ya fue facturada... lo muestro Factura = Tarea.Factura; } else { // No tiene comprobante, lo creo Factura = new Lbl.Comprobantes.Factura(ConnFacturaNueva); Factura.Crear(); Factura.Cliente = EntradaCliente.Elemento as Lbl.Personas.Persona; Factura.Cliente.Connection = ConnFacturaNueva; Factura.Tipo = Factura.Cliente.ObtenerTipoComprobante(); Factura.Tipo.Connection = ConnFacturaNueva; Factura.Vendedor = EntradaEncargado.Elemento as Lbl.Personas.Persona; Factura.Vendedor.Connection = ConnFacturaNueva; Factura.Obs = EntradaTarea.TextDetail + " s/" + this.Elemento.ToString(); if (Tarea.Articulos.Count > 0) { Factura.Articulos.AddRange(Tarea.Articulos); } else if (Tarea.Presupuesto != null && Tarea.Presupuesto.Articulos.Count > 0) { Factura.Articulos.AddRange(Tarea.Presupuesto.Articulos); Factura.Descuento = Tarea.Presupuesto.Descuento; } if (EntradaImportePresupuesto.ValueDecimal > 0) { Lbl.Comprobantes.DetalleArticulo Art = new Lbl.Comprobantes.DetalleArticulo(Factura); Art.Nombre = this.Elemento.ToString(); Art.Unitario = EntradaImportePresupuesto.ValueDecimal; Art.Cantidad = 1; Factura.Articulos.Add(Art); } } Lfc.FormularioEdicion FormularioFactura = Lfc.Instanciador.InstanciarFormularioEdicion(Factura); FormularioFactura.MdiParent = this.ParentForm.MdiParent; FormularioFactura.ControlDestino = EntradaComprobanteId; FormularioFactura.Show(); return new Lfx.Types.SuccessOperationResult(); }