示例#1
0
        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");
        }
示例#2
0
        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.");
        }
示例#3
0
        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());
        }
示例#4
0
                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();
                }