Пример #1
0
        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();
                }
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
 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"));
     }
 }
Пример #4
0
        /// <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);
            }
        }
Пример #5
0
        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.");
        }
Пример #6
0
        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"));
            }
        }
Пример #7
0
        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();
        }
Пример #8
0
        /// <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);
            }
        }
Пример #9
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.";
            }
        }
Пример #10
0
        /// <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));
            }
        }
Пример #11
0
        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)));
        }
Пример #12
0
        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());
            }
        }
Пример #13
0
 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"));
     }
 }
Пример #14
0
        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);
        }
Пример #15
0
        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();
            }
        }
Пример #16
0
 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");
         }
     }
 }
Пример #17
0
        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);
        }
Пример #18
0
        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);
        }
Пример #19
0
        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());
        }
Пример #20
0
 public static void SaveCompra(CompraDTO compra)
 {
     CompraDB.SaveCompra(ref compra);
 }
Пример #21
0
        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());
        }