Пример #1
0
        private void btnCargar_Click(object sender, EventArgs e)
        {
            if (AsignarControles())
            {
                if (ckbNormal.Checked == false && ckbCtaCte.Checked == false && ckbTarjeta.Checked == false)
                {
                    MessageBox.Show("Seleccione el Tipo de Pago: Contado, CtaCte, Tarjeta.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    return;
                }

                if (MessageBox.Show("Esta Seguro de Continuar? Puede ser un Cobro para Despues", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    var pedido = new PedidoDto
                    {
                        Adelanto        = nudAdelanto.Value,
                        Apellido        = txtApellido.Text,
                        FechaPedido     = DateTime.Now,
                        Nombre          = txtNombre.Text,
                        Proceso         = AccesoDatos.Proceso.InicioPedido,
                        FechaEntrega    = dtpFechaEntrega.Value.Date,
                        Total           = _total,
                        ClienteId       = ClienteId,
                        Descripcion     = txtDescripcion.Text,
                        Horario         = cmbHorario.Text,
                        DiasHastaRetiro = null
                    };

                    var pedidoId = pedidoServicio.NuevoPedido(pedido);

                    ProductoDto producto = new ProductoDto();

                    string segunda = string.Empty;

                    foreach (var item in ListaVentas)
                    {
                        producto = productoServicio.ObtenerPorId(item.Id);

                        segunda += " " + producto.Descripcion + " ";

                        //stock
                        productoServicio.BajarStock(producto.Id, item.Cantidad);
                    }

                    foreach (var item in ListaVentas)
                    {
                        var aux = new Producto_Pedido_Dto
                        {
                            Cantidad    = item.Cantidad,
                            ProductoId  = productoServicio.ObtenerPorId(item.Id).Id,
                            Estado      = AccesoDatos.EstadoPedido.Esperando,
                            Talle       = item.Talle,
                            PedidoId    = pedidoId,
                            Descripcion = segunda,
                            TalleId     = talleServicio.BuscarNombreDevuelveId(item.Talle),
                            Precio      = item.Precio
                        };

                        var _Id_Pedido = producto_Pedido_Servicio.NuevoProductoPedido(aux);

                        //datos
                        if (productoServicio.ObtenerPorId(item.Id).Creacion)
                        {
                            for (int i = 0; i < item.Cantidad; i++)
                            {
                                var dato = new Producto_Dato_Dto
                                {
                                    EstadoPorPedido   = AccesoDatos.EstadoPorPedido.EnEspera,
                                    Producto_PedidoId = _Id_Pedido
                                };

                                producto_Dato_Servicio.Insertar(dato);
                            }
                        }
                    }

                    var cuenta = new CtaCteDto
                    {
                        ClienteId   = ClienteId,
                        Estado      = AccesoDatos.CtaCteEstado.EnEspera,
                        Fecha       = dtpFechaEntrega.Value,
                        Total       = _total,
                        Debe        = _total - nudAdelanto.Value,
                        Descripcion = $"{segunda}",
                        PedidoId    = pedidoId
                    };

                    ctaCteServicio.Agregar(cuenta);


                    var detalle = new DetalleCajaDto
                    {
                        Descripcion = txtApellido.Text + " " + txtNombre.Text + " - " + segunda,
                        Fecha       = DateTime.Now.ToLongDateString(),
                        Total       = nudAdelanto.Value,
                        CajaId      = detallCajaServicio.BuscarCajaAbierta()
                    };

                    TipoPago(detalle);

                    detallCajaServicio.AgregarDetalleCaja(detalle);

                    //dinero a caja
                    cajaServicio.SumarDineroACaja(nudAdelanto.Value); //

#pragma warning disable CS0436                                        // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'.
                    var mensaje = new Afirmacion("Agregado a la Cuenta!", $"Dinero Cobrado Por Adelanto $ {nudAdelanto.Value}\nTipo de Pago: {detalle.TipoPago}");
#pragma warning restore CS0436                                        // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'.
                    mensaje.ShowDialog();

                    if (ckbNormal.Checked || ckbTarjeta.Checked)
                    {
                        if (nudAdelanto.Value == _total)
                        {
                            foreach (var item in ListaVentas)
                            {
                                item.Precio = item.Cantidad * item.Precio;
                            }

                            //ticket

                            var fecha = new FechaDto
                            {
                                Fecha = DateTime.Now.ToShortDateString(),
                                Hora  = DateTime.Now.ToShortTimeString()
                            };

                            var factura = new Comprobante(ListaVentas.ToList(), fecha);
                            factura.ShowDialog();
                        }
                    }

                    semaforo = true;

                    this.Close();

                    return;
                }
            }
            else
            {
#pragma warning disable CS0436 // El tipo 'Negativo' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Negativo.cs' está en conflicto con el tipo importado 'Negativo' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Negativo.cs'.
                var mens = new Negativo("Error", "Apellido y Nombre \nno puede estar vacio");
#pragma warning restore CS0436 // El tipo 'Negativo' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Negativo.cs' está en conflicto con el tipo importado 'Negativo' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Negativo.cs'.
                mens.ShowDialog();
                //MessageBox.Show("El Campo Apellido y Nombre no puede estar vacio", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if (txtApellido.Text == string.Empty)
            {
                MessageBox.Show("Coloque El Nombre o el Apellido", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }

            if (!ckbTarjeta.Checked && !ckbNormal.Checked)
            {
                MessageBox.Show("Seleccione Contado o Tarjeta", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }

            if (MessageBox.Show("Seguro de Continuar?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                ventaDto.ClienteId = _Cliente.Id;
                ventaDto.Fecha     = DateTime.Now;
                ventaDto.Total     = nudAdelanto.Value;

                var ventaId = ventaServicio.NuevaVenta(ventaDto);

                string descripcion = string.Empty;

                foreach (var item in ListaVenta)
                {
                    var producto = productoServicio.ObtenerPorId(item.ProductoId);

                    item.VentaId = ventaId;

                    descripcion += " " + item.Descripcion + " ";

                    // descontar stock
                    productoServicio.BajarStock(producto.Id, item.Cantidad);

                    producto_vent.NuevoProductoVenta(item);
                }

                AccesoDatos.Proceso _Proceso;

                if (_Cliente.Id == 1)
                {
                    _Proceso = AccesoDatos.Proceso.Guardado;
                }
                else
                {
                    _Proceso = AccesoDatos.Proceso.CtaCte;
                }

                var pedido = new PedidoDto
                {
                    Adelanto     = nudAdelanto.Value,
                    Apellido     = txtApellido.Text,
                    FechaPedido  = DateTime.Now,
                    Nombre       = txtNombre.Text,
                    Proceso      = _Proceso,
                    FechaEntrega = dtpFechaEntrega.Value,
                    Total        = _Total,
                    ClienteId    = _Cliente.Id,
                    Descripcion  = $"Espera de Pago - {txtApellido.Text} {txtNombre.Text}",
                    Horario      = $"Sera Retirado a la {cmbHorario.Text}"
                };

                var pedidoId = pedidoServicio.NuevoPedido(pedido);

                foreach (var item in ListaVentasDto2)
                {
                    var aux = new Producto_Pedido_Dto
                    {
                        Cantidad    = item.Cantidad,
                        ProductoId  = productoServicio.ObtenerPorId(item.Id).Id,
                        Estado      = AccesoDatos.EstadoPedido.Esperando,
                        Talle       = item.Talle,
                        PedidoId    = pedidoId,
                        Descripcion = descripcion,
                        TalleId     = talleServicio.BuscarNombreDevuelveId(item.Talle),
                        Precio      = item.Precio
                    };

                    producto_Pedido_Servicio.NuevoProductoPedido(aux);
                }

                var cuenta = new CtaCteDto
                {
                    ClienteId   = _Cliente.Id,
                    Estado      = AccesoDatos.CtaCteEstado.EnEspera,
                    Fecha       = DateTime.Now,
                    Total       = _Total,
                    Debe        = _Total - nudAdelanto.Value,
                    Descripcion = $"Prenda Guardada",
                    PedidoId    = pedidoId
                };

                ctaCteServicio.Agregar(cuenta);


                var detalle = new DetalleCajaDto
                {
                    Descripcion = txtApellido.Text + " " + txtNombre.Text,
                    Fecha       = DateTime.Now.ToLongDateString(),
                    Total       = nudAdelanto.Value,
                    CajaId      = detallCajaServicio.BuscarCajaAbierta()
                };

                TipoPago(detalle);

                detallCajaServicio.AgregarDetalleCaja(detalle);

                //dinero a caja
                cajaServicio.SumarDineroACaja(nudAdelanto.Value); //

#pragma warning disable CS0436                                    // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'.
                var NewPrenda = new Afirmacion("Prenda Guardada", $"A Esperar...\nAdelanto de Cobro: $ {nudAdelanto.Value}\n\nTipo de Pago: {detalle.TipoPago}");
#pragma warning restore CS0436                                    // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'.
                NewPrenda.ShowDialog();

                semaforo = true;

                this.Close();
            }
        }