public async Task<int> ActualizarFacturaAsync(EditorFactura editor) { Factura = await BuscarFacturaAsync(editor.Id); ModificarFactura(editor); _contexto.Entry(Factura).State = EntityState.Modified; return await GuardarCambiosAsync(); }
public async Task<int> CrearFacturaAsync(EditorFactura editor) { Factura = new Factura(); ModificarFactura(editor); _contexto.Facturas.Add(Factura); var cambios = await GuardarCambiosAsync(); editor.InyectarFactura(Factura); return cambios; }
public async Task<EditorFactura> ObtenerEditorFacturaParaCrearNuevaFactura(string serie, int? idCliente) { EditorFactura editor; var ultimaFacturaCreada = await ObtenerUlitmaFacturaDeLaSerie(serie); if (ultimaFacturaCreada == null) { editor = new EditorFactura { SerieFactura = serie, NumeracionFactura = 1, FormatoNumeroFactura = "{0}{1:1000}", FechaEmisionFactura = DateTime.Today, PorcentajeIvaPorDefecto = PorcentajeIvaPorDefecto, FormaPago = FormaPagoEnum.Transferencia, EstadoFactura = EstadoFacturaEnum.Borrador, Lineas = new List<EditorLineaFactura> { new EditorLineaFactura { Cantidad = 1, PorcentajeImpuesto = PorcentajeIvaPorDefecto } } }; } else { editor = new EditorFactura { SerieFactura = ultimaFacturaCreada.SerieFactura, NumeracionFactura = ultimaFacturaCreada.NumeracionFactura + 1, FormatoNumeroFactura = ultimaFacturaCreada.FormatoNumeroFactura, FechaEmisionFactura = DateTime.Today, NombreArchivoPlantillaInforme = ultimaFacturaCreada.NombreArchivoPlantillaInforme, PorcentajeIvaPorDefecto = PorcentajeIvaPorDefecto, FormaPago = ultimaFacturaCreada.FormaPago, FormaPagoDetalles = ultimaFacturaCreada.FormaPagoDetalles, ComentariosPie = ultimaFacturaCreada.ComentariosPie, EstadoFactura = EstadoFacturaEnum.Borrador, IdVendedor = ultimaFacturaCreada.IdVendedor, VendedorCodigoPostal = ultimaFacturaCreada.VendedorCodigoPostal, VendedorDireccion = ultimaFacturaCreada.VendedorDireccion, VendedorEmail = ultimaFacturaCreada.VendedorEmail, VendedorLocalidad = ultimaFacturaCreada.VendedorLocalidad, VendedorNombreOEmpresa = ultimaFacturaCreada.VendedorNombreOEmpresa, VendedorNumeroIdentificacionFiscal = ultimaFacturaCreada.VendedorNumeroIdentificacionFiscal, VendedorProvincia = ultimaFacturaCreada.VendedorProvincia, Lineas = new List<EditorLineaFactura> { new EditorLineaFactura { Cantidad = 1, PorcentajeImpuesto = PorcentajeIvaPorDefecto } } }; } if (idCliente.HasValue) { var cliente = _contexto.Clientes.Find(idCliente.Value); editor.AsignarDatosCliente(cliente); } return editor; }
private List<EditorFactura> ObtenerFacturasDeExcel(Stream stream, SelectorColumnasExcelFactura columnas) { var workbook = new XLWorkbook(stream); var worksheet = workbook.Worksheets.First(); var firstRow = worksheet.FirstRowUsed(); var rowUsed = firstRow.RowUsed(); rowUsed = rowUsed.RowBelow(); var facturas = new List<EditorFactura>(); while (!rowUsed.Cell(columnas.NumeroFactura).IsEmpty()) { var factura = new EditorFactura(); factura.IdUsuario = columnas.IdUsuario; factura.SerieFactura = columnas.SerieFactura.EsLetraMayuscula() ? rowUsed.Cell(columnas.SerieFactura).GetString() : columnas.SerieFactura; factura.NumeracionFactura = Convert.ToInt32(rowUsed.Cell(columnas.NumeroFactura).GetString()); factura.FormatoNumeroFactura = columnas.FormatoNumeroFactura.EsLetraMayuscula() ? rowUsed.Cell(columnas.FormatoNumeroFactura).GetString() : columnas.FormatoNumeroFactura; factura.FechaEmisionFactura = rowUsed.Cell(columnas.FechaEmisionFactura).GetDateTime(); factura.FechaVencimientoFactura = columnas.FechaVencimientoFactura.EsLetraMayuscula() ? rowUsed.Cell(columnas.FechaVencimientoFactura).GetDateTime() : string.IsNullOrEmpty(columnas.FechaVencimientoFactura) ? (DateTime?)null : Convert.ToDateTime(columnas.FechaVencimientoFactura); factura.EstadoFactura = (EstadoFacturaEnum)Enum.Parse(typeof(EstadoFacturaEnum), (columnas.EstadoFactura.EsLetraMayuscula() ? rowUsed.Cell(columnas.EstadoFactura).GetString() : columnas.EstadoFactura), true); factura.FormaPago = (FormaPagoEnum)Enum.Parse(typeof(FormaPagoEnum), (columnas.FormaPago.EsLetraMayuscula() ? rowUsed.Cell(columnas.FormaPago).GetString() : columnas.FormaPago), true); factura.FormaPagoDetalles = columnas.FormaPagoDetalles.EsLetraMayuscula() ? rowUsed.Cell(columnas.FormaPagoDetalles).GetString() : columnas.FormaPagoDetalles; factura.IdVendedor = columnas.IdVendedor.EsLetraMayuscula() ? Convert.ToInt32(rowUsed.Cell(columnas.IdVendedor).GetDouble()) : string.IsNullOrEmpty(columnas.IdVendedor) ? (int?)null : Convert.ToInt32(columnas.IdVendedor); factura.VendedorCodigoPostal = columnas.VendedorCodigoPostal.EsLetraMayuscula() ? rowUsed.Cell(columnas.VendedorCodigoPostal).GetString() : columnas.VendedorCodigoPostal; factura.VendedorDireccion = columnas.VendedorDireccion.EsLetraMayuscula() ? rowUsed.Cell(columnas.VendedorDireccion).GetString() : columnas.VendedorDireccion; factura.VendedorEmail = columnas.VendedorEmail.EsLetraMayuscula() ? rowUsed.Cell(columnas.VendedorEmail).GetString() : columnas.VendedorEmail; factura.VendedorLocalidad = columnas.VendedorLocalidad.EsLetraMayuscula() ? rowUsed.Cell(columnas.VendedorLocalidad).GetString() : columnas.VendedorLocalidad; factura.VendedorNombreOEmpresa = columnas.VendedorNombreOEmpresa.EsLetraMayuscula() ? rowUsed.Cell(columnas.VendedorNombreOEmpresa).GetString() : columnas.VendedorNombreOEmpresa; factura.VendedorNumeroIdentificacionFiscal = columnas.VendedorNumeroIdentificacionFiscal.EsLetraMayuscula() ? rowUsed.Cell(columnas.VendedorNumeroIdentificacionFiscal).GetString() : columnas.VendedorNumeroIdentificacionFiscal; factura.VendedorProvincia = columnas.VendedorProvincia.EsLetraMayuscula() ? rowUsed.Cell(columnas.VendedorProvincia).GetString() : columnas.VendedorProvincia; factura.IdComprador = columnas.IdComprador.EsLetraMayuscula() ? rowUsed.Cell(columnas.IdComprador).GetValue<int>() : string.IsNullOrEmpty(columnas.IdComprador) ? (int?)null : Convert.ToInt32(columnas.IdComprador); factura.CompradorCodigoPostal = columnas.CompradorCodigoPostal.EsLetraMayuscula() ? rowUsed.Cell(columnas.CompradorCodigoPostal).GetString() : columnas.CompradorCodigoPostal; factura.CompradorDireccion1 = columnas.CompradorDireccion.EsLetraMayuscula() ? rowUsed.Cell(columnas.CompradorDireccion).GetString() : columnas.CompradorDireccion; factura.CompradorEmail = columnas.CompradorEmail.EsLetraMayuscula() ? rowUsed.Cell(columnas.CompradorEmail).GetString() : columnas.CompradorEmail; factura.CompradorLocalidad = columnas.CompradorLocalidad.EsLetraMayuscula() ? rowUsed.Cell(columnas.CompradorLocalidad).GetString() : columnas.CompradorLocalidad; factura.CompradorNombreOEmpresa = columnas.CompradorNombreOEmpresa.EsLetraMayuscula() ? rowUsed.Cell(columnas.CompradorNombreOEmpresa).GetString() : columnas.CompradorNombreOEmpresa; factura.CompradorNumeroIdentificacionFiscal = columnas.CompradorNumeroIdentificacionFiscal.EsLetraMayuscula() ? rowUsed.Cell(columnas.CompradorNumeroIdentificacionFiscal).GetString() : columnas.CompradorNumeroIdentificacionFiscal; factura.CompradorProvincia = columnas.CompradorProvincia.EsLetraMayuscula() ? rowUsed.Cell(columnas.CompradorProvincia).GetString() : columnas.CompradorProvincia; factura.PorcentajeIvaPorDefecto = columnas.PorcentajeImpuesto.EsLetraMayuscula() ? Convert.ToInt32(rowUsed.Cell(columnas.PorcentajeImpuesto).GetDouble()) : Convert.ToInt32(columnas.PorcentajeImpuesto); factura.Lineas = new List<EditorLineaFactura> { new EditorLineaFactura { Cantidad = columnas.Cantidad.EsLetraMayuscula() ? Convert.ToInt32(rowUsed.Cell(columnas.Cantidad).GetDouble()) : Convert.ToInt32(columnas.Cantidad), PorcentajeImpuesto = columnas.PorcentajeImpuesto.EsLetraMayuscula() ? Convert.ToInt32(rowUsed.Cell(columnas.PorcentajeImpuesto).GetDouble()) : Convert.ToInt32(columnas.PorcentajeImpuesto), Descripcion = rowUsed.Cell(columnas.Descripcion).GetString(), PrecioUnitario = Convert.ToDecimal(rowUsed.Cell(columnas.PrecioUnitario).GetDouble()) } }; factura.Comentarios = columnas.Comentarios.EsLetraMayuscula() ? rowUsed.Cell(columnas.Comentarios).GetString() : columnas.Comentarios; factura.ComentarioInterno = columnas.ComentarioInterno.EsLetraMayuscula() ? rowUsed.Cell(columnas.ComentarioInterno).GetString() : columnas.ComentarioInterno; factura.ComentariosPie = columnas.ComentariosPie.EsLetraMayuscula() ? rowUsed.Cell(columnas.ComentariosPie).GetString() : columnas.ComentariosPie; facturas.Add(factura); rowUsed = rowUsed.RowBelow(); } return facturas.Distinct().ToList(); }
public async Task<EditorFactura> BuscaEditorFacturaAsync(int? idFactura) { var factura = await BuscarFacturaAsync(idFactura); var editor = new EditorFactura(); editor.InyectarFactura(factura); return editor; }
private void ModificarCabeceraFactura(EditorFactura editor) { Factura.InjectFrom(editor); }
private void ModificarFactura(EditorFactura editor) { ModificarCabeceraFactura(editor); ModificarLineasFactura(editor.Lineas); }