Exemple #1
0
        public ActionResult Editar(ViewAsiento item)
        {
            ServicioSoapClient client = new ServicioSoapClient();

            Asientos model = new Asientos();

            model.ID_Asientos   = item.ID_Asientos;
            model.Desc_Asientos = item.Desc_Asientos;
            model.Precio        = item.Precio;
            try
            {
                if (ModelState.IsValid)
                {
                    client.ActualizarAsiento(model);

                    return(Redirect("~/Asientos/Index/"));
                }

                return(View(model));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Exemple #2
0
        public ModelValidationSource <Asientos> CreateFromEntrada(Entradas entrada, App app)
        {
            //Encabezado
            var asiento = new Asientos
            {
                Fecha             = entrada.Fecha,
                Concepto          = "Registro de factura",
                TipoComprobanteId = (int)TipoComprobante.Egreso,
                EstadoId          = (int)Estados.Elaborado,
                //TODO poner compra segun ti po de salida
                Referencia = $"Compra#{entrada.Numero}",
                MonedaId   = entrada.MonedaId,
                TipoCambio = TasaCambio(entrada.Fecha)
            };

            var costo = Convert.ToDouble(entrada.EntradasDetalle.Sum(x => Convert.ToDouble(x.Costo) * x.Cantidad));
            //Inventario
            var asientoDetalleInv = CreateDetalle(app.VtaInventarioCuentaId, "Inventario", costo, 0);
            //Iva acreditable
            var iva = Convert.ToDouble(entrada.EntradasDetalle.Sum(x => x.IvaMonto));
            var asientoDetalleIVAAcred = CreateDetalle(app.CompIvaAcreditableCuentaId, "IVA Acreditable", iva, 0);

            var cuentaPorPagar = CreateDetalle(app.CompCtaxPagarCuentaId, "Cta por pagar", 0, costo + iva);

            asiento.AsientosDetalle.Add(asientoDetalleInv);
            asiento.AsientosDetalle.Add(asientoDetalleIVAAcred);
            asiento.AsientosDetalle.Add(cuentaPorPagar);

            var result = Save(asiento);

            return(result);
        }
Exemple #3
0
        public ActionResult Nuevo(ViewAsiento model)
        {
            ServicioSoapClient client = new ServicioSoapClient();

            Asientos asiento = new Asientos();

            asiento.ID_Asientos   = model.ID_Asientos;
            asiento.Desc_Asientos = model.Desc_Asientos;
            asiento.Precio        = model.Precio;
            try
            {
                if (ModelState.IsValid)
                {
                    client.AgregaAsiento(asiento);

                    return(Redirect("~/Asientos/Index"));
                }

                return(View(model));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        public IActionResult Post([FromBody] Asientos asiento)
        {
            var asientosFactory = new AsientosFactory(db);

            asientosFactory.Save(asiento);

            return(Json(asiento));
        }
Exemple #5
0
        public ModelValidationSource <Asientos> CreateFromSalida(Salidas salida, App app)
        {
            //Encabezado
            var asiento = new Asientos
            {
                Fecha             = salida.Fecha,
                Concepto          = "Registro de factura",
                TipoComprobanteId = (int)TipoComprobante.Ingreso,
                EstadoId          = (int)Estados.Elaborado,
                //TODO poner factura segun ti po de salida
                Referencia = $"Factura#{salida.Numero}",
                MonedaId   = salida.MonedaId,
                TipoCambio = TasaCambio(salida.Fecha)
            };

            var costo = Convert.ToDouble(salida.SalidasDetalle.Sum(x => Convert.ToDouble(x.CostoPromedio) * x.Cantidad));

            //Inventario
            var asientoDetalleInv = CreateDetalle(app.VtaInventarioCuentaId, "Inventario", 0, costo);

            //Costo de venta
            var asientoDetalleCV = CreateDetalle(app.VtaCostoVentaCuentaId, "Costo de venta", costo, 0);

            var precio = Convert.ToDouble(salida.SalidasDetalle.Sum(x => x.Importe));

            //Venta
            var asientoDetalleV = CreateDetalle(app.VtaVentaCuentaId, "Venta", 0, precio);

            //Iva por pagar
            var iva = Convert.ToDouble(salida.SalidasDetalle.Sum(x => x.IvaMonto));
            var asientoDetalleIPP = CreateDetalle(app.VtaIvaPorPagarCuentaId, "IVA por pagar", 0, iva);

            //ContraCuenta
            var asientoDetalle = CreateDetalle(null, "", precio + iva, 0);

            if (salida.FormaPagoId == (int)FormaPagos.Contado)
            {
                asientoDetalle.CuentaId   = app.VtaCajaGeneralCuentaId ?? 0;
                asientoDetalle.Referencia = "Caja general";
            }

            if (salida.FormaPagoId == (int)FormaPagos.Credito)
            {
                asientoDetalle.CuentaId   = app.VtaClienteCuentaId ?? 0;
                asientoDetalle.Referencia = "Cta Cliente";
            }

            asiento.AsientosDetalle.Add(asientoDetalleInv);
            asiento.AsientosDetalle.Add(asientoDetalleCV);
            asiento.AsientosDetalle.Add(asientoDetalleV);
            asiento.AsientosDetalle.Add(asientoDetalleIPP);
            asiento.AsientosDetalle.Add(asientoDetalle);

            var result = Save(asiento);

            return(result);
        }
Exemple #6
0
 private void Evaluar(Asientos asiento, Button a)
 {
     if (asiento.descripcion == "")
     {
         a.IsEnabled = false;
         a.Image     = "";
     }
     else
     {
         a.IsEnabled = true;
         a.Image     = "AsieLibre.png";
     }
 }
Exemple #7
0
        public ModelValidationSource <Asientos> Save(Asientos asiento)
        {
            var cortes = db.Cortes.Where(x => x.Activo);

            var model = asiento.validateForCortes(cortes);

            if (!model.IsValid)
            {
                return(model);
            }

            model = asiento.validate();
            if (!model.IsValid)
            {
                return(model);
            }

            if (asiento.Id > 0)
            {
                //Actializar encabezado
                var asientoModificado = factory.FirstOrDefault(x => x.Id == asiento.Id);
                asientoModificado.CopyFrom(asiento, x => new
                {
                    x.CorteId,
                    x.Fecha,
                    x.MonedaId,
                    x.Referencia,
                    x.TipoComprobanteId,
                    x.Concepto,
                    x.EstadoId,
                    x.Observacion,
                    x.TipoCambio
                });

                factory.Save();

                //eliminar registros anteriores
                var oldAsientoDetalle = factoryDetalle.GetAll(x => x.AsientoId == asiento.Id);
                foreach (var item in oldAsientoDetalle)
                {
                    factoryDetalle.Delete(item);
                }
                factoryDetalle.Save();

                //agregar nuevos registros
                var detalle = asiento.AsientosDetalle;
                foreach (var item in detalle)
                {
                    var asientosDetalle = new AsientosDetalle();
                    asientosDetalle.CopyAllFromExcept(item, x => new { x.Id });
                    factoryDetalle.Insert(asientosDetalle);
                }

                factoryDetalle.Save();
            }
            else
            {
                asiento.Numero = getMax(asiento.CorteId);
                factory.Insert(asiento);
                factory.Save();
            }

            model.model = asiento;
            return(model);
        }
Exemple #8
0
        public void ActualizarAsiento(Asientos item)
        {
            Asientos_CRUD per = new Asientos_CRUD();

            per.Update(item);
        }
Exemple #9
0
        public void AgregaAsiento(Asientos item)
        {
            Asientos_CRUD per = new Asientos_CRUD();

            per.Insert(item);
        }