private void buttonBuscar_Click(object sender, EventArgs e) { this.listaPasajes.Clear(); this.textBoxCodigo.Text = ""; this.textBoxKgs.Text = ""; this.textBoxPrecio.Text = ""; if (validarCampos()) { CompraDTO compra = new CompraDTO(); compra.PNR = this.textBoxPnr.Text; this.dataGridView1.DataSource = CompraDAO.GetPasajesByPnr(compra); dataGridView1.Columns[1].Visible = false; dataGridView1.Columns[4].Visible = false; dataGridView1.Columns[5].Visible = false; dataGridView1.Columns[6].Visible = false; EncomiendaDTO unaEncomienda = new EncomiendaDTO(); this.compra = compra; unaEncomienda = CompraDAO.GetEncomiendaByPnr(this.compra); if (unaEncomienda != null) { this.textBoxCodigo.Text = unaEncomienda.Codigo.ToString(); this.textBoxKgs.Text = unaEncomienda.Kg.ToString(); this.textBoxPrecio.Text = unaEncomienda.Precio.ToString(); } } }
public ActionResult <CompraDTO> Post([FromBody] CompraDTO compra) { var comp = new CompraEntity() { APROVADO = null, DATA_SOLICITACAO = compra.DATA_SOLICITACAO, DESCRICAO = compra.DESCRICAO, FINALIZADO = false, TITULO = compra.TITULO, COD_USUARIO = compra.USUARIO.COD_USUARIO, COD_STATUS = 1, COD_CATEGORIA = compra.CATEGORIA.COD_CATEGORIA }; comp.TITULO = comp.TITULO.Trim(' '); if (string.IsNullOrEmpty(comp.TITULO)) { return(BadRequest("Por Favor preencha um título válido")); } var newComp = _compraRepository.Add(comp); compra.COD_COMPRA = newComp.COD_COMPRA; for (int i = 0; i < compra.ORCAMENTO.Count; i++) { compra.ORCAMENTO.ToArray()[i].COD_COMPRA = compra.COD_COMPRA; _orcamentoRepository.Add(compra.ORCAMENTO.ToArray()[i]); } return(Ok(comp)); }
public IActionResult Atualizar(EventoDTO eventoTemporario, CompraDTO compratemporaria) { if (ModelState.IsValid) { var evento = database.Eventos.First(eve => eve.Id == eventoTemporario.Id); Compra compra = new Compra(); evento.Nome = eventoTemporario.Nome; evento.Casa = database.Casas.First(casa => casa.Id == eventoTemporario.CasaID); evento.Genero = database.Generos.First(gene => gene.Id == eventoTemporario.GeneroID); evento.imagem = eventoTemporario.Imagem; evento.ValorIngresso = eventoTemporario.ValorIngresso; evento.Data = eventoTemporario.Data; evento.capacidade = eventoTemporario.capacidade; compra.Quantidade = compratemporaria.Quantidade; if (compra.Quantidade > 0) { evento.capacidade -= compratemporaria.Quantidade; } database.SaveChanges(); return(RedirectToAction("Eventos", "Gestao")); } else { return(RedirectToAction("Produtos", "Gestao")); } }
/// <summary> /// Registra una compra /// </summary> /// <param name="compra"></param> /// <returns></returns> public static CompraDTO Save(CompraDTO compra) { using (SqlConnection conn = Conexion.Conexion.obtenerConexion()) { SqlCommand com = new SqlCommand("[NORMALIZADOS].[SaveCompra]", conn); com.CommandType = CommandType.StoredProcedure; SqlParameter outPutPNR = new SqlParameter("@paramPNR", SqlDbType.NVarChar, 255) { Direction = ParameterDirection.Output }; com.Parameters.Add(outPutPNR); SqlParameter outPutIdCompra = new SqlParameter("@paramIdCompra", SqlDbType.Int) { Direction = ParameterDirection.Output }; com.Parameters.Add(outPutIdCompra); com.Parameters.AddWithValue("@paramComprador", compra.Comprador.IdCliente); com.Parameters.AddWithValue("@paramMedioPago", compra.MedioPago.IdTipoPago); com.Parameters.AddWithValue("@paramTarjeta", compra.TarjetaCredito.Numero); com.Parameters.AddWithValue("@paramViaje", compra.Viaje.Id); com.ExecuteNonQuery(); CompraDTO retValue = new CompraDTO(); retValue.PNR = (string)outPutPNR.Value; retValue.IdCompra = (int)outPutIdCompra.Value; return(retValue); } }
static void ProcesarCompra() { Console.WriteLine("Capture el concepto de compra"); var cConcepto = Console.ReadLine(); double nMonto = -1; bool lSalir = false; do { Console.WriteLine("Capture el monto de compra"); var cMonto = Console.ReadLine(); if (double.TryParse(cMonto, out nMonto)) { lSalir = true; } else { Console.WriteLine("Valor Incorrecto."); } }while (!lSalir); IConfiguradorAutorizador ConfiguradorAutorizador = new ConfiguradorAutorizador(); ProcesadorCompras ProcesadorCompras = new ProcesadorCompras(ConfiguradorAutorizador); ICompraDTO compraDTO = new CompraDTO { cConcepto = cConcepto, dMonto = nMonto }; ProcesadorCompras.ProcesarCompra(compraDTO); Console.WriteLine("\r\nPresione cualquier tecla para continuar o Presione S para salir."); }
public IActionResult SalvarEstoque(CompraDTO compratemporaria, EventoDTO eventoTemporario) { if (ModelState.IsValid) { Compra compra = new Compra(); var evento = database.Eventos.First(eve => eve.Id == eventoTemporario.Id); compra.Nome = compratemporaria.Nome; compra.ValorIngresso = compratemporaria.ValorIngresso; compra.capacidade = compratemporaria.capacidade; compra.Quantidade = compratemporaria.Quantidade; compra.usuario = compratemporaria.usuario; compra.total = compratemporaria.total; compra.imagem = compratemporaria.imagem; evento.capacidade = eventoTemporario.capacidade; compra.usuario = User.Identity.Name; database.Compra.Add(compra); database.SaveChanges(); if (compra.Quantidade > 0 && compra.Quantidade <= compra.capacidade) { compra.total = (compra.Quantidade * compra.ValorIngresso); evento.capacidade = compra.capacidade -= compra.Quantidade; database.SaveChanges(); } database.Update(evento); return(RedirectToAction("Index", "Home")); } else { return(RedirectToAction("Index", "Home")); } }
public static void SaveCompra(ref CompraDTO compra) { SqlCommand command = null; decimal montoCompra = 0; foreach (CompraDetalleDTO rd in compra.Detalles) { montoCompra += rd.Monto; } compra.montoDTO = montoCompra; command = GetDbSprocCommand("usp_Compra_Insert"); command.Parameters.Add(CreateOutputParameter("@IDCompra", SqlDbType.Int)); command.Parameters.Add(CreateParameter("@idOperadorTuristico", compra.idOperadorTuristicoDTO)); command.Parameters.Add(CreateParameter("@fechaCompra", compra.fechaCompraDTO)); command.Parameters.Add(CreateParameter("@fechaPago", compra.fechaPagoDTO)); command.Parameters.Add(CreateParameter("@monto", (float)compra.montoDTO)); command.Parameters.Add(CreateParameter("@saldo", compra.saldoDTO)); command.Parameters.Add(CreateParameter("@numeroFactura", compra.NumeroFactura)); command.Parameters.Add(CreateParameter("@idReserva", compra.IdReserva)); // Run the command. command.Connection.Open(); command.ExecuteNonQuery(); if (compra.IsNew) { compra.idCompraDTO = (int)command.Parameters["@IDCompra"].Value; } foreach (CompraDetalleDTO rd in compra.Detalles) { command.Parameters.Clear(); command.CommandText = "usp_CompraDetalle_Insert"; command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(CreateOutputParameter("@idDetalleCompra", SqlDbType.Int)); command.Parameters.Add(CreateParameter("@idDetalleReserva", rd.idDetalleReservaDTO)); command.Parameters.Add(CreateParameter("@Monto", (float)rd.Monto)); command.Parameters.Add(CreateParameter("@Descripcion", rd.descripcionDTO, 50)); command.ExecuteNonQuery(); command.Parameters.Clear(); command.CommandText = "usp_ReservaDetalle_Buy"; command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(CreateParameter("@idDetalleReserva", rd.idDetalleReservaDTO)); command.ExecuteNonQuery(); } command.Connection.Close(); }
/// <summary> /// Cancela todos los pasajes y encomienda asociados a la compra /// </summary> /// <param name="unaCompra"></param> /// <returns></returns> public static bool Cancelar(CompraDTO unaCompra, string motivo) { using (SqlConnection conn = Conexion.Conexion.obtenerConexion()) { SqlCommand com = new SqlCommand("[NORMALIZADOS].[Cancelar_Compra]", conn); com.CommandType = CommandType.StoredProcedure; com.Parameters.AddWithValue("@pnr", unaCompra.PNR); com.Parameters.AddWithValue("@motivo", motivo); return(com.ExecuteNonQuery() > 0); } }
protected void btnGuardar_Click(object sender, EventArgs e) { try{ decimal montoCompra = 0; OcultarMensajes(); List <CompraDetalleDTO> detalles = new List <CompraDetalleDTO>(); ReservaDTO reserva = (ReservaDTO)Session["Reserva"]; List <ReservaDetalleDTO> detallesReserva = (List <ReservaDetalleDTO>)Session["detalles"]; foreach (ReservaDetalleDTO dr in detallesReserva) { if (dr.Comprada) { DangerMessage.Visible = true; LblDanger.Text = "No se puede realizar la compra porque uno o mas items ya han sido comprados."; return; } CompraDetalleDTO cd = new CompraDetalleDTO(); dr.IsNew = true; cd.idDetalleReservaDTO = dr.IdDetallaReserva; cd.Monto = Math.Round(dr.Monto / (decimal)1.10, 2); cd.descripcionDTO = "Pasajero: " + dr.NombrePasajero + " - Translado: " + dr.NombreTraslado + " - Alojamiento: " + dr.NombreAlojamiento + " - Seguro: " + dr.NombreSeguro; detalles.Add(cd); montoCompra += cd.Monto; } CompraDTO compra = new CompraDTO(); compra.IsNew = true; compra.idOperadorTuristicoDTO = Convert.ToInt32(ddlOperadorTuristico.SelectedValue); compra.fechaCompraDTO = DateTime.Now; compra.montoDTO = montoCompra; compra.saldoDTO = montoCompra; compra.Detalles = detalles; compra.IdReserva = reserva.IdReserva; compra.NumeroFactura = Convert.ToInt32(txtNroFactura.Text); CompraManager.SaveCompra(compra); SuccessMessage.Visible = true; LblSuccess.Text = "La compra se ha guardado correctamente"; CompraSection.Visible = false; SectionDetalleReserva.Visible = false; } catch (Exception) { DangerMessage.Visible = true; LblDanger.Text = "No se pudo guardar la compra, verifique que los datos ingresados sean válidos."; } }
/// <summary> /// Devuelve una lista de pasajes a partir de un PNR /// </summary> /// <param name="compra"></param> /// <returns></returns> public static List <PasajeDTO> GetPasajesByPnr(CompraDTO compra) { using (SqlConnection conn = Conexion.Conexion.obtenerConexion()) { SqlCommand com = new SqlCommand("[NORMALIZADOS].[GetPasajesByPnr]", conn); com.CommandType = CommandType.StoredProcedure; com.Parameters.AddWithValue("@paramPnr", compra.PNR); SqlDataReader dataReader = com.ExecuteReader(); return(getPasajes(dataReader)); } }
public ActionResult <CompraDTO> Post([FromBody] CompraDTO value) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // mapear Dto para Model var compra = _mapper.Map <Compra>(value); //Salvar var retorno = _comprasService.Salvar(compra); //mapear Model para Dto return(Ok(_mapper.Map <CompraDTO>(retorno))); }
public async Task <ActionResult> Adicionar(CompraDTO compraDTO) { try { if (!ModelState.IsValid) { return(StatusCode(StatusCodes.Status412PreconditionFailed)); } var produto = await _produtoService.ObterPorId(compraDTO.ProdutoId); if (produto.QtdEstoque < compraDTO.QtdComprada) { return(StatusCode(StatusCodes.Status412PreconditionFailed)); } PagamentoDTO pagamentoDTO = new PagamentoDTO(); pagamentoDTO.Cartao = compraDTO.Cartao; pagamentoDTO.Valor = (produto.ValorUnitario * compraDTO.QtdComprada); produto.QtdEstoque = (produto.QtdEstoque - compraDTO.QtdComprada); var result = await _cartaoService.TransacaoCartaoCredito(pagamentoDTO); if (result == null) { return(StatusCode(StatusCodes.Status412PreconditionFailed)); } if (result.Estado.Contains("APROVADO")) { await _produtoService.Atualizar(produto); await _compraService.Adicionar(_mapper.Map <Compra>(compraDTO)); return(Ok()); } else { return(StatusCode(StatusCodes.Status412PreconditionFailed)); } } catch { return(BadRequest()); } }
public IActionResult AtualizarEstoque(CompraDTO compratemporaria) { if (ModelState.IsValid) { Compra compra = new Compra(); compra.Nome = compratemporaria.Nome; compra.ValorIngresso = compratemporaria.ValorIngresso; compra.capacidade = compratemporaria.capacidade; compra.Quantidade = compratemporaria.Quantidade; compra.usuario = compratemporaria.usuario; compra.total = compratemporaria.total; return(RedirectToAction("Index", "Home")); } else { return(RedirectToAction("Index", "Home")); } }
public static List <CompraDTO> GetCompras(DateTime fechaCompra, DateTime fechaReserva, int nroFactura, int idOperadorTuristico) { SqlCommand command = GetDbSprocCommand("usp_Compra_GetByFiltros"); command.Parameters.Add(CreateParameter("@fechaCompra", fechaCompra)); command.Parameters.Add(CreateParameter("@fechaReserva", fechaReserva)); command.Parameters.Add(CreateParameter("@nroFactura", nroFactura)); command.Parameters.Add(CreateParameter("@idOperadorTuristico", idOperadorTuristico)); List <CompraDTO> comprasAux = GetDTOList <CompraDTO>(ref command); List <CompraDTO> compras = new List <CompraDTO>(); foreach (CompraDTO compraAux in comprasAux) { CompraDTO compra = compraAux; compra.OperadorTuristico = OperadorTuristicoDB.GetById(compra.idOperadorTuristicoDTO); compras.Add(compra); } return(compras); }
private void button2_Click(object sender, EventArgs e) { try { CompraDTO dto = new CompraDTO(); dto.UsuarioId = UserSession.UsuarioLogado.Id; dto.Data = mkbData.Text; dto.FormaPagto = Convert.ToString(cboTipoPag.SelectedItem); CompraBusiness buss = new CompraBusiness(); buss.Salvar(dto, carrinhoAdd.ToList()); frmMessage tela = new frmMessage(); tela.LoadScreen("Compra registrada com sucesso!"); tela.ShowDialog(); } catch (Exception) { frmException tela = new frmException(); tela.LoadScreen("Ocorreu um erro.\nConsulte o administrador do sistema."); tela.ShowDialog(); } }
private void buttonCancTodo_Click(object sender, EventArgs e) { if (validarCampos()) { if (!String.IsNullOrEmpty(textBoxMot.Text)) { CompraDTO compra = new CompraDTO(); compra.PNR = textBoxPnr.Text; if (CompraDAO.Cancelar(compra, this.textBoxMot.Text)) { MessageBox.Show("Se produjo la cancelacion total de la compra con exito"); } else { MessageBox.Show("No se pudo cancelar la compra de forma total"); } this.Close(); } else { errorProvider1.SetError(textBoxMot, "Ingrese un motivo"); } } }
private bool FinalizarTransaccion() { bool retValue = true; ClienteDTO cliente = new ClienteDTO(); cliente.Dni = Convert.ToInt32(textBoxDNI.Text); CompraDTO compra = new CompraDTO(); compra.Comprador = ClienteDAO.GetByDNI(cliente); compra.MedioPago = (TipoPagoDTO)comboBoxMedioPago.SelectedItem; TarjetaCreditoDTO tarjeta = new TarjetaCreditoDTO(); tarjeta.Numero = Convert.ToInt64(textBoxNro.Text); tarjeta.Codigo = Convert.ToInt32(textBoxCodSeg.Text); tarjeta.FechaVencimiento = Convert.ToInt32(textBoxFechVenc.Text); tarjeta.TipoTarjeta = (TipoTarjetaDTO)comboBoxTipoTarj.SelectedItem; compra.TarjetaCredito = tarjeta; ViajeDTO viaje = new ViajeDTO(); viaje.Id = this.idViaje; compra.Viaje = viaje; compra.IdCompra = 0; compra.PNR = "0"; try { TarjetaDAO.Save(tarjeta); this.compra = CompraDAO.Save(compra); if (string.IsNullOrEmpty(this.compra.PNR)) { MessageBox.Show("No se pudo realizar la compra"); retValue = false; } this.monto = 0; if (this.listaPasajeroButacas != null) { foreach (Tuple <ClienteDTO, ButacaDTO> tupla in this.listaPasajeroButacas) { PasajeDTO pasaje = new PasajeDTO(); pasaje.Pasajero = tupla.Item1; pasaje.Compra = this.compra; pasaje.Butaca = tupla.Item2; pasaje.Precio = 0; this.monto = PasajeDAO.Save(pasaje).Precio + this.monto; } } if (this.clienteAcargoDeEncomienda != null) { EncomiendaDTO encomienda = new EncomiendaDTO(); encomienda.Cliente = this.clienteAcargoDeEncomienda; encomienda.Compra = this.compra; encomienda.Precio = 0; encomienda.Kg = this.KgsDeEncomienda; this.monto = EncomiendaDAO.Save(encomienda).Precio + this.monto; } } catch (Exception ex) { MessageBox.Show(string.Format("Error al finalizar la transaccion: {0}", ex), "Error Compra", MessageBoxButtons.OK, MessageBoxIcon.Error); } this.DialogResult = DialogResult.OK; return(retValue); }
internal override DTOBase PopulateDTO(SqlDataReader reader) { CompraDTO compraDTO = new CompraDTO(); //idCompra if (!reader.IsDBNull(Ord_idCompra)) { compraDTO.idCompraDTO = reader.GetInt32(Ord_idCompra); } //idOperadorturistico if (!reader.IsDBNull(Ord_idOperadorTuristico)) { compraDTO.idOperadorTuristicoDTO = reader.GetInt32(Ord_idOperadorTuristico); } //idDetalleCompra if (!reader.IsDBNull(Ord_idDetalleCompra)) { compraDTO.idDetalleCompraDTO = reader.GetInt32(Ord_idDetalleCompra); } //fechaCompra if (!reader.IsDBNull(Ord_fechaCompra)) { compraDTO.fechaCompraDTO = reader.GetDateTime(Ord_fechaCompra); } //fechaPago if (!reader.IsDBNull(Ord_fechaPago)) { compraDTO.fechaPagoDTO = reader.GetDateTime(Ord_fechaPago); } //monto if (!reader.IsDBNull(Ord_monto)) { compraDTO.montoDTO = reader.GetDecimal(Ord_monto); } //saldo if (!reader.IsDBNull(Ord_saldo)) { compraDTO.saldoDTO = reader.GetDecimal(Ord_saldo); } //numeroFactura if (!reader.IsDBNull(Ord_NumeroFactura)) { compraDTO.NumeroFactura = reader.GetInt32(Ord_NumeroFactura); } //IdReserva if (!reader.IsDBNull(Ord_IdReserva)) { compraDTO.IdReserva = reader.GetInt32(Ord_IdReserva); } //IdOperadorTuristico if (!reader.IsDBNull(Ord_idOperadorTuristico)) { compraDTO.idOperadorTuristicoDTO = reader.GetInt32(Ord_idOperadorTuristico); } return(compraDTO); }
public IHttpActionResult UpdateCompra(CompraDTO compraDTO) { if (!ModelState.IsValid) { log.Error("Formulario con datos incorrectos o insuficientes."); return(BadRequest()); } //var compraInDB = compraBL.GetCompraById(compraDTO.ID); var compraInDB = _UOWCompra.CompraRepository.GetByID(compraDTO.ID); if (compraInDB == null) { log.Error("No se encontró compra existente con el ID: " + compraDTO.ID); return(NotFound()); } //Proveedor proveedor = proveedorBL.GetProveedorById(compraDTO.ProveedorID); Proveedor proveedor = _UOWCompra.ProveedorRepository.GetByID(compraDTO.ProveedorID); log.Info("Compra. Viejo Saldo Proveedor: " + compraDTO.Debe); //Actualizamos el Saldo en base a la Entrega de Efectivo proveedor.Debe = compraDTO.Debe; proveedor.SaldoAfavor = compraDTO.SaldoAfavor; //proveedorBL.UpdateProveedor(proveedor); _UOWCompra.ProveedorRepository.Update(proveedor); log.Info("Compra. Nuevo Saldo Proveedor: " + proveedor.Debe); ////actualizo stock //if (compraDTO.ProductosXCompra != null) //{ // foreach (var item in compraDTO.ProductosXCompra) // { // var prdXcompra = productoXCompraBL.GetProductoXCompraById(item.ID); // Stock stock = stockBL.ValidarStockProducto(item.ProductoID, item.TipoDeUnidadID); // if (prdXcompra.Cantidad > item.Cantidad) // { // var cantidad = prdXcompra.Cantidad - item.Cantidad; // stock.Cantidad = stock.Cantidad - cantidad; // //stockBL.UpdateStock(stock); // _UOWCompra.StockRepository.Update(stock); // } // if (item.Cantidad > prdXcompra.Cantidad) // { // var cantidad = item.Cantidad - prdXcompra.Cantidad; // stock.Cantidad = stock.Cantidad + cantidad; // //stockBL.UpdateStock(stock); // _UOWCompra.StockRepository.Update(stock); // } // log.Info("Stock actualizado para producto con ID: " + item.ProductoID + ". Nueva Cantidad: " + stock.Cantidad); // } // foreach (var item in compraDTO.ProductosXCompra) // { // foreach (var item2 in compraInDB.ProductosXCompra) // { // if (item.ID == item2.ID) // { // ProductoXCompra prodAActualizar = _UOWCompra.ProductosXCompraRepository.GetByID(item.ID); // prodAActualizar.Cantidad = item.Cantidad; // prodAActualizar.Importe = item.Importe; // prodAActualizar.Descuento = item.Descuento; // prodAActualizar.ImporteDescuento = item.ImporteDescuento; // prodAActualizar.Iibbbsas = item.Iibbbsas; // prodAActualizar.Iibbcaba = item.Iibbcaba; // prodAActualizar.Iva = item.Iva; // prodAActualizar.PrecioUnitario = item.PrecioUnitario; // prodAActualizar.Total = item.Total; // prodAActualizar.ProductoID = item.ProductoID; // prodAActualizar.CompraID = item.CompraID; // prodAActualizar.TipoDeUnidadID = item.TipoDeUnidadID; // _UOWCompra.ProductosXCompraRepository.Update(prodAActualizar); // log.Info("Datos actualizados para producto con ID: " + item2.ProductoID); // //item2.Cantidad = item.Cantidad; // //item2.Importe = item.Importe; // //item2.Descuento = item.Descuento; // //item2.ImporteDescuento = item.ImporteDescuento; // //item2.Iibbbsas = item.Iibbbsas; // //item2.Iibbcaba = item.Iibbcaba; // //item2.Iva = item.Iva; // //item2.PrecioUnitario = item.PrecioUnitario; // //item2.Total = item.Total; // //item2.ProductoID = item.ProductoID; // //item2.CompraID = item.CompraID; // //item2.TipoDeUnidadID = item.TipoDeUnidadID; // } // } // } //} Compra compraAActualizar = _UOWCompra.CompraRepository.GetByID(compraInDB.ID); compraAActualizar.Factura = compraDTO.Factura; compraAActualizar.NoConcretado = compraDTO.NoConcretado; compraAActualizar.TipoFactura = compraDTO.TipoFactura; compraAActualizar.Local = compraDTO.Local; compraAActualizar.SumaTotal = compraDTO.SumaTotal; compraAActualizar.EntregaEfectivo = compraDTO.EntregaEfectivo; compraAActualizar.DescuentoPorc = compraDTO.DescuentoPorc; compraAActualizar.Descuento = compraDTO.Descuento; compraAActualizar.Subtotal = compraDTO.Subtotal; compraAActualizar.ImporteNoGravado = compraDTO.ImporteNoGravado; compraAActualizar.Iva = compraDTO.Iva; compraAActualizar.ImporteIva = compraDTO.ImporteIva; compraAActualizar.Iibbbsas = compraDTO.Iibbbsas; compraAActualizar.ImporteIibbbsas = compraDTO.ImporteIibbbsas; compraAActualizar.Iibbcaba = compraDTO.Iibbcaba; compraAActualizar.ImporteIibbcaba = compraDTO.ImporteIibbcaba; compraAActualizar.PercIva = compraDTO.PercIva; compraAActualizar.ImportePercIva = compraDTO.ImportePercIva; compraAActualizar.Total = compraDTO.Total; compraAActualizar.TotalGastos = compraDTO.TotalGastos; compraAActualizar.Fecha = DateTime.Parse(compraDTO.Fecha); _UOWCompra.CompraRepository.Update(compraAActualizar); //Borramos todos los productos de la compra, para luego agregarlos nuevamente junto con sus actualizados bool borrado = false; borrado = DeleteProductosParaUpdate(compraInDB); if (!borrado) { log.Error("Se ha producido un error intentando borrar los productos de la venta al momento de actualizar. Venta ID: " + compraInDB.ID); return(BadRequest()); } //Agregamos nuevamente los productos a la compra, actualizados if (compraDTO.ProductosXCompra != null) { foreach (var prodCompra in compraDTO.ProductosXCompra) { //UPDATE PRODUCTOS DE VENTA MAYORISTA _UOWCompra.ProductosXCompraRepository.Add(prodCompra); } //Una vez cargada la venta, actualizamos Stock foreach (var item in compraDTO.ProductosXCompra) { //Producto producto = productoBL.GetProductoById(item.ProductoID); //Stock stock = stockBL.ValidarStockProducto(item.ProductoID, item.TipoDeUnidadID); Stock stock = _UOWCompra.StockRepository .GetAll() .Where(s => s.ProductoID == item.ProductoID && s.TipoDeUnidadID == item.TipoDeUnidadID) .SingleOrDefault(); if (stock != null) { stock.Cantidad = stock.Cantidad + item.Cantidad; //stockBL.UpdateStock(stock); _UOWCompra.StockRepository.Update(stock); log.Info("Stock actualizado o creado para producto con ID: " + item.ProductoID + ". Nueva Cantidad: " + stock.Cantidad); } else { Stock stockNuevo = new Stock(); Producto prod = productoBL.GetProductoById(item.ProductoID); TipoDeUnidad tunidad = clasificacionBL.GetTipoDeUnidadById(item.TipoDeUnidadID); stockNuevo.ProductoID = item.ProductoID; stockNuevo.TipoDeUnidadID = item.TipoDeUnidadID; stockNuevo.Cantidad = item.Cantidad; stockNuevo.ProductoAuxiliar = prod.NombreAuxiliar; stockNuevo.TipoDeUnidadAuxiliar = tunidad.Nombre; //stockBL.AddStock(stockNuevo); _UOWCompra.StockRepository.Add(stockNuevo); log.Info("Stock actualizado o creado para producto con ID: " + item.ProductoID + ". Nueva Cantidad: " + stockNuevo.Cantidad); } } } //compraInDB.Factura = compraDTO.Factura; //compraInDB.NoConcretado = compraDTO.NoConcretado; //compraInDB.TipoFactura = compraDTO.TipoFactura; //compraInDB.SumaTotal = compraDTO.SumaTotal; //compraInDB.DescuentoPorc = compraDTO.DescuentoPorc; //compraInDB.Descuento = compraDTO.Descuento; //compraInDB.Subtotal = compraDTO.Subtotal; //compraInDB.ImporteNoGravado = compraDTO.ImporteNoGravado; //compraInDB.Iva = compraDTO.Iva; //compraInDB.ImporteIva = compraDTO.ImporteIva; //compraInDB.Iibbbsas = compraDTO.Iibbbsas; //compraInDB.ImporteIibbbsas = compraDTO.ImporteIibbbsas; //compraInDB.Iibbcaba = compraDTO.Iibbcaba; //compraInDB.ImporteIibbcaba = compraDTO.ImporteIibbcaba; //compraInDB.PercIva = compraDTO.PercIva; //compraInDB.ImportePercIva = compraDTO.ImportePercIva; //compraInDB.Total = compraDTO.Total; //compraInDB.TotalGastos = compraDTO.TotalGastos; //compraBL.UpdateCompra(compraInDB); //Actualizamos la operación _UOWCompra.Save(); log.Info("Compra actualizada satisfactoriamente. ID: " + compraAActualizar.ID); return(Ok()); }
public static void SaveCompra(CompraDTO compra) { CompraDB.SaveCompra(ref compra); }
public IHttpActionResult Compra(CompraDTO compraDTO) { if (!ModelState.IsValid) { log.Error("Formulario con datos incorrectos o insuficientes."); return(BadRequest()); } //Proveedor proveedor = proveedorBL.GetProveedorById(compraDTO.ProveedorID); Proveedor proveedor = _UOWCompra.ProveedorRepository.GetByID(compraDTO.ProveedorID); if (proveedor == null) { log.Error("No se ha encontrado Proveedor con el ID: " + compraDTO.ProveedorID); return(BadRequest()); } var compra = Mapper.Map <CompraDTO, Compra>(compraDTO); //Verificamos si ya se cargó una compra con el mismo NumeroCompra var ultimaCompra = _UOWCompra.CompraRepository .GetAll() .Max(p => p.NumeroCompra); if (compra.NumeroCompra <= ultimaCompra) { compra.NumeroCompra = ultimaCompra + 1; } //compraBL.AddCompra(compra); _UOWCompra.CompraRepository.Add(compra); //log.Info("Compra. Viejo Saldo Proveedor: " + compraDTO.Debe); //Actualizamos el Saldo en base a la Entrega de Efectivo // proveedor.Debe = compraDTO.Debe; //proveedorBL.UpdateProveedor(proveedor); proveedor.Debe = compraDTO.Debe; proveedor.SaldoAfavor = compraDTO.SaldoAfavor; _UOWCompra.ProveedorRepository.Update(proveedor); log.Info("Compra. Nuevo Saldo Proveedor: " + proveedor.Debe); if (compra.ProductosXCompra.Count != 0) { //Una vez cargada la venta, actualizamos Stock foreach (var item in compra.ProductosXCompra) { // Producto producto = productoBL.GetProductoById(item.ProductoID); //Stock stock = stockBL.ValidarStockProducto(item.ProductoID, item.TipoDeUnidadID); Stock stock = _UOWCompra.StockRepository.GetAll().Where(s => s.ProductoID == item.ProductoID && s.TipoDeUnidadID == item.TipoDeUnidadID).SingleOrDefault(); if (stock != null) { stock.Cantidad = stock.Cantidad + item.Cantidad; //stockBL.UpdateStock(stock); _UOWCompra.StockRepository.Update(stock); log.Info("Stock actualizado o creado para producto con ID: " + item.ProductoID + ". Nueva Cantidad: " + stock.Cantidad); } else { Stock stockNuevo = new Stock(); Producto prod = productoBL.GetProductoById(item.ProductoID); TipoDeUnidad tunidad = clasificacionBL.GetTipoDeUnidadById(item.TipoDeUnidadID); stockNuevo.ProductoID = item.ProductoID; stockNuevo.TipoDeUnidadID = item.TipoDeUnidadID; stockNuevo.Cantidad = item.Cantidad; stockNuevo.ProductoAuxiliar = prod.NombreAuxiliar; stockNuevo.TipoDeUnidadAuxiliar = tunidad.Nombre; //stockBL.AddStock(stockNuevo); _UOWCompra.StockRepository.Add(stockNuevo); log.Info("Stock actualizado o creado para producto con ID: " + item.ProductoID + ". Nueva Cantidad: " + stockNuevo.Cantidad); } } } //Actualizamos valores _UOWCompra.Save(); log.Info("Compra generada satisfactoriamente."); return(Ok()); }