Esempio n. 1
0
        private void dgvProductos_KeyDown(object sender, KeyEventArgs e)
        {
            if (this.dgvProductos.CurrentRow == null)
            {
                return;
            }

            var Fila = this.dgvProductos.CurrentRow;

            switch (e.KeyCode)
            {
            case Keys.Add:
                this.AgregarQuitarCantidad(Fila, 1);
                break;

            case Keys.Subtract:
                this.AgregarQuitarCantidad(Fila, -1);
                break;

            case Keys.Enter:
                var ProdCantidad = (Fila.DataBoundItem as ProductoVenta);
                var frmCantidad  = new MensajeObtenerValor("Indica la cantidad que deseas aplicar.", (ProdCantidad.Cantidad + 1).ToString(), MensajeObtenerValor.Tipo.Entero);
                if (frmCantidad.ShowDialog(Principal.Instance) == DialogResult.OK)
                {
                    this.ModificarCantidad(this.dgvProductos.SelectedRows[0], Util.Entero(frmCantidad.Valor));
                }
                frmCantidad.Dispose();
                e.Handled = true;
                break;
            }
        }
Esempio n. 2
0
        private void PolizasCambiarFecha()
        {
            if (this.dgvDetalle.SelectedRows.Count <= 0)
            {
                UtilLocal.MensajeAdvertencia("No hay ninguna póliza seleccionada.");
                return;
            }

            if (UtilLocal.MensajePregunta(string.Format("Se han seleccionado {0} pólizas. ¿Estás seguro que deseas cambiar la fecha de todas esas pólizas?"
                                                        , this.dgvDetalle.SelectedRows.Count)) != DialogResult.Yes)
            {
                return;
            }

            // Se pide la nueva sucursal
            var frmValor = new MensajeObtenerValor("Selecciona la nueva fecha:", DateTime.Now, MensajeObtenerValor.Tipo.Fecha);

            if (frmValor.ShowDialog(Principal.Instance) == DialogResult.OK)
            {
                DateTime dNueva = Util.FechaHora(frmValor.Valor).Date;
                foreach (DataGridViewRow oFila in this.dgvDetalle.SelectedRows)
                {
                    int iPolizaID = Util.Entero(oFila.Cells["ContaPolizaID"].Value);
                    var oPoliza   = Datos.GetEntity <ContaPoliza>(c => c.ContaPolizaID == iPolizaID);
                    oPoliza.Fecha = (dNueva.Add(oPoliza.Fecha - oPoliza.Fecha.Date));
                    Datos.Guardar <ContaPoliza>(oPoliza);
                }
                this.LlenarArbol();
            }
            frmValor.Dispose();
        }
Esempio n. 3
0
        private void Asignar()
        {
            // Se obtiene la cuenta correspondiente
            var frmCuenta = new MensajeObtenerValor("Selecciona la cuenta a la cual se le van a asignar los movimientos seleccionados:", Cat.CuentasBancarias.Scotiabank, MensajeObtenerValor.Tipo.Combo);

            frmCuenta.CargarCombo("BancoCuentaID", "NombreDeCuenta", Datos.GetListOf <BancoCuenta>(c => c.UsoClientes));
            int iBancoCuentaID = 0;

            if (frmCuenta.ShowDialog(Principal.Instance) == DialogResult.OK)
            {
                iBancoCuentaID = Util.Entero(frmCuenta.Valor);
            }
            else
            {
                return;
            }

            Cargando.Mostrar();

            foreach (DataGridViewRow oFila in this.dgvAsignacion.Rows)
            {
                if (Util.Logico(oFila.Cells["asi_Sel"].Value))
                {
                    int iMovID = Util.Entero(oFila.Cells["asi_BancoCuentaMovimientoID"].Value);
                    ContaProc.AsignarMovimientoBancario(iMovID, iBancoCuentaID);
                }
            }

            Cargando.Cerrar();

            this.LlenarAsignaciones();
        }
Esempio n. 4
0
        private void AplicarCombo(string sColumna, string sCampoValor, string sCampoTexto, object oDatos)
        {
            var frmValor = new MensajeObtenerValor("Selecciona la opción deseada:", -1, MensajeObtenerValor.Tipo.Combo);

            frmValor.CargarCombo(sCampoValor, sCampoTexto, oDatos);
            if (frmValor.ShowDialog(Principal.Instance) == DialogResult.OK)
            {
                this.AplicarCambio(sColumna, frmValor.Valor);
            }
            frmValor.Dispose();
        }
Esempio n. 5
0
        public static object ObtenerValor(string sMensaje, string sValorPredefinido, MensajeObtenerValor.Tipo Tipo)
        {
            object Res      = null;
            var    frmValor = new MensajeObtenerValor(sMensaje, sValorPredefinido, Tipo);

            frmValor.CapitalizacionDeTexto = CharacterCasing.Upper;
            frmValor.ShowDialog(Principal.Instance);
            if (frmValor.DialogResult == DialogResult.OK)
            {
                Res = frmValor.Valor;
            }
            frmValor.Dispose();
            return(Res);
        }
Esempio n. 6
0
        private void btnCuentaMover_Click(object sender, EventArgs e)
        {
            var oCuentas = Datos.GetListOf <ContaCuentasAuxiliaresView>().Select(c =>
                                                                                 new { c.ContaCuentaDeMayorID, Nombre = (c.Cuenta + " - " + c.Subcuenta + " - " + c.CuentaDeMayor) }).Distinct().OrderBy(o => o.Nombre).ToList();
            var frmValor = new MensajeObtenerValor("Indica la Cuenta de Mayor a donde quieres mover la Cuenta seleccionada:", 0, MensajeObtenerValor.Tipo.Combo);

            frmValor.CargarCombo("ContaCuentaDeMayorID", "Nombre", oCuentas);
            frmValor.Width += 100;
            if (frmValor.ShowDialog(Principal.Instance) == DialogResult.OK)
            {
                int iCuentaID  = Util.Entero(this.tgvCuentas.CurrentNode.Cells["Cuentas_Id"].Value);
                var oCuentaAux = Datos.GetEntity <ContaCuentaAuxiliar>(c => c.ContaCuentaAuxiliarID == iCuentaID);
                oCuentaAux.ContaCuentaDeMayorID = Util.Entero(frmValor.Valor);
                Datos.Guardar <ContaCuentaAuxiliar>(oCuentaAux);
                this.LlenarCuentasTotales();
            }
            frmValor.Dispose();
        }
Esempio n. 7
0
        private void btnPolizaCambiarSucursal_Click(object sender, EventArgs e)
        {
            if (this.dgvDetalle.CurrentRow == null)
            {
                return;
            }

            // Se pide la nueva sucursal
            var frmValor = new MensajeObtenerValor("Selecciona la nueva sucursal:", "", MensajeObtenerValor.Tipo.Combo);

            frmValor.CargarCombo("SucursalID", "NombreSucursal", Datos.GetListOf <Sucursal>(c => c.Estatus));
            if (frmValor.ShowDialog(Principal.Instance) == DialogResult.OK)
            {
                int iPolizaID = Util.Entero(this.dgvDetalle.CurrentRow.Cells["ContaPolizaID"].Value);
                var oPoliza   = Datos.GetEntity <ContaPoliza>(c => c.ContaPolizaID == iPolizaID);
                oPoliza.SucursalID = Util.Entero(frmValor.Valor);
                Datos.Guardar <ContaPoliza>(oPoliza);
                this.LlenarArbol();
            }
            frmValor.Dispose();
        }
Esempio n. 8
0
        public override bool Ejecutar()
        {
            // Se verifica si ya se hizo el cierre de caja
            if (UtilDatos.VerCierreDeDaja())
            {
                UtilLocal.MensajeAdvertencia("Ya se hizo el Corte de Caja. No se puede continuar.");
                return(false);
            }

            // Se valida la parte de detalle
            if (!this.ctlDetalle.Validar())
            {
                return(false);
            }
            // Se valida la parte de búsqueda
            if (!this.ctlBusqueda.Validar())
            {
                return(false);
            }

            int iVentaID = this.ctlBusqueda.VentaID;

            // Se valida que no sea una venta usada para cobro de Control de Cascos
            if (Datos.Exists <CascosRegistrosView>(c => c.CobroVentaID == iVentaID &&
                                                   (c.VentaEstatusID != Cat.VentasEstatus.Cancelada && c.VentaEstatusID != Cat.VentasEstatus.CanceladaSinPago)))
            {
                UtilLocal.MensajeAdvertencia("La venta seleccionado fue utilizada para un cobro de Control de Cascos. No se puede cancelar.");
                return(false);
            }

            //
            bool bCancelacion = this.ctlDetalle.TodosMarcados();
            var  oVentaV      = Datos.GetEntity <VentasView>(q => q.VentaID == iVentaID);

            // Se verifica si es una cancelación de otra sucursal
            if (oVentaV.SucursalID != GlobalClass.SucursalID)
            {
                if (UtilLocal.MensajePregunta("La Venta seleccionada es de otra Sucursal. ¿Deseas continuar?") != DialogResult.Yes)
                {
                    return(false);
                }
            }

            // Se verifica si es una cancelación de factura de varios tickets
            int  iVentaFacturaID        = 0;
            bool bFacturaMultiple       = false;
            bool bCancelarTodaLaFactura = this.ctlBusqueda.CancelarTodaLaFactura;
            List <VentaFacturaDetalle> oVentasFactura = null;

            if (oVentaV.Facturada)
            {
                iVentaFacturaID  = Datos.GetEntity <VentaFacturaDetalle>(q => q.VentaID == oVentaV.VentaID && q.Estatus).VentaFacturaID;
                oVentasFactura   = Datos.GetListOf <VentaFacturaDetalle>(q => q.VentaFacturaID == iVentaFacturaID && q.Estatus);
                bFacturaMultiple = (oVentasFactura.Count > 1);

                // Se muestran los datos de detalle de todas las ventas de la factura
                if (bCancelarTodaLaFactura && bFacturaMultiple)
                {
                    if (!this.MostrarDetalleVentasFactura(oVentasFactura))
                    {
                        return(false);
                    }
                }
            }

            // Se verifica si se creará vale, para pedir el cliente en caso de que no haya
            int iValeClienteID = oVentaV.ClienteID;

            if (this.ctlBusqueda.FormaDeDevolucion == Cat.FormasDePago.Vale && iValeClienteID == Cat.Clientes.Mostrador)
            {
                var frmValor = new MensajeObtenerValor("Selecciona el cliente para crear el Vale:", "", MensajeObtenerValor.Tipo.Combo);
                frmValor.CargarCombo("ClienteID", "Nombre", Datos.GetListOf <Cliente>(q => q.ClienteID != Cat.Clientes.Mostrador && q.Estatus));
                if (frmValor.ShowDialog(Principal.Instance) == DialogResult.OK)
                {
                    iValeClienteID = Util.Entero(frmValor.Valor);
                }
                frmValor.Dispose();
                if (iValeClienteID == 0)
                {
                    return(false);
                }
            }

            // Se pregunta el usuario que realiza la devolución
            int iUsuarioID = 0;
            var ResU       = UtilLocal.ValidarObtenerUsuario("Ventas.Devolucion.Agregar");

            if (ResU.Error)
            {
                return(false);
            }
            iUsuarioID = ResU.Respuesta.UsuarioID;

            // Se solicita la autorización
            int iAutorizoID = 0;

            ResU = UtilLocal.ValidarObtenerUsuario("Autorizaciones.Ventas.Devoluciones.Agregar", "Autorización");
            if (ResU.Exito)
            {
                iAutorizoID = ResU.Respuesta.UsuarioID;
            }

            // Se procede a guardar los cambios
            DateTime dAhora = DateTime.Now;

            // Si es factura múltiple, se cancelan todas las ventas de la factura, si no, sólo la venta seleccionada
            var oIdsDev    = new List <int>();
            var oIdsCascos = new List <int>();

            if (bFacturaMultiple && bCancelarTodaLaFactura)
            {
                var oDevGeneral = this.ctlBusqueda.GenerarDevolucion();
                foreach (var oVentaFac in oVentasFactura)
                {
                    // Se genera la devolución
                    var oDev = new VentaDevolucion()
                    {
                        VentaID          = oVentaFac.VentaID,
                        Fecha            = dAhora,
                        RealizoUsuarioID = iUsuarioID,
                        EsCancelacion    = true,
                        MotivoID         = oDevGeneral.MotivoID,
                        Observacion      = oDevGeneral.Observacion,
                        TipoFormaPagoID  = oDevGeneral.TipoFormaPagoID
                    };
                    // Se genera el detalle de la devolución
                    var oDevDet       = new List <VentaDevolucionDetalle>();
                    var oVentaDetalle = Datos.GetListOf <VentaDetalle>(c => c.VentaID == oVentaFac.VentaID && c.Estatus);
                    foreach (var oParte in oVentaDetalle)
                    {
                        oDevDet.Add(new VentaDevolucionDetalle()
                        {
                            ParteID           = oParte.ParteID,
                            Costo             = oParte.Costo,
                            CostoConDescuento = oParte.CostoConDescuento,
                            Cantidad          = oParte.Cantidad,
                            PrecioUnitario    = oParte.PrecioUnitario,
                            Iva = oParte.Iva
                        });
                    }
                    // Se manda guardar la devolución
                    this.GuardarDevolucion(oDev, oDevDet, iValeClienteID);
                    // Se agrega a la lisa de devoluciones
                    oIdsDev.Add(oDev.VentaDevolucionID);

                    // Se verifica si requiere un casco
                    foreach (var oReg in oDevDet)
                    {
                        if (Datos.Exists <Parte>(c => c.ParteID == oReg.ParteID && c.RequiereCascoDe > 0 && c.Estatus))
                        {
                            oIdsCascos.Add(oReg.VentaDevolucionDetalleID);
                        }
                    }
                }
            }
            else
            {
                // Se genera la devolución
                var oDevolucion = this.ctlBusqueda.GenerarDevolucion();
                oDevolucion.Fecha            = dAhora;
                oDevolucion.EsCancelacion    = bCancelacion;
                oDevolucion.RealizoUsuarioID = iUsuarioID;
                // Se genera el detalle de la devolución
                var oDevDetalle = new List <VentaDevolucionDetalle>();
                var oProductos  = this.ctlDetalle.ProductosSel();
                foreach (var oProducto in oProductos)
                {
                    oDevDetalle.Add(new VentaDevolucionDetalle()
                    {
                        ParteID           = oProducto.ParteID,
                        Costo             = oProducto.Costo,
                        CostoConDescuento = oProducto.CostoConDescuento,
                        Cantidad          = oProducto.Cantidad,
                        PrecioUnitario    = oProducto.PrecioUnitario,
                        Iva = oProducto.Iva
                    });
                }
                // Se guarda la devolución
                this.GuardarDevolucion(oDevolucion, oDevDetalle, iValeClienteID);
                //
                oIdsDev.Add(oDevolucion.VentaDevolucionID);

                // Se verifica si requiere un casco
                foreach (var oReg in oDevDetalle)
                {
                    if (Datos.Exists <Parte>(c => c.ParteID == oReg.ParteID && c.RequiereCascoDe > 0 && c.Estatus))
                    {
                        oIdsCascos.Add(oReg.VentaDevolucionDetalleID);
                    }
                }
            }

            // Se verifica si es factura, en cuyo caso, se cancela la factura o se genera nota de crédito, según aplique
            if (oVentaV.Facturada)
            {
                if (bCancelacion && (!bFacturaMultiple || (bFacturaMultiple && bCancelarTodaLaFactura)))
                {
                    var ResFactura = VentasLoc.GenerarFacturaCancelacion(iVentaFacturaID, oIdsDev);
                    if (ResFactura.Error)
                    {
                        UtilLocal.MensajeAdvertencia("Hubo un error al cancelar la factura.\n\n" + ResFactura.Mensaje);
                    }
                }
                else
                {
                    var ResFactura = VentasLoc.GenerarFacturaDevolucionPorDevolucion(oIdsDev[0]);
                    if (ResFactura.Error)
                    {
                        UtilLocal.MensajeAdvertencia("Hubo un error al generar la factura de la devolución.\n\n" + ResFactura.Mensaje);
                    }
                }
            }

            // Se verifica si hay una cancelación de control de cascos
            foreach (int iDevDetID in oIdsCascos)
            {
                this.DevolverControlCasco(iDevDetID, iUsuarioID);
            }

            // Se manda a afectar contabilidad (AfeConta)
            foreach (int iDevID in oIdsDev)
            {
                var oDevV = Datos.GetEntity <VentasDevolucionesView>(c => c.VentaDevolucionID == iDevID);
                if (oDevV.Facturada)
                {
                    if (oDevV.VentaACredito)
                    {
                        if (oDevV.FormaDePagoID == Cat.FormasDePago.Vale)
                        {
                            ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.DevolucionVentaCreditoFacturadaVale, iDevID, oDevV.FolioDeVenta, oDevV.Observacion);
                        }
                        else
                        {
                            ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.DevolucionVentaCreditoFacturadaPago, iDevID, oDevV.FolioDeVenta, oDevV.Observacion);
                        }
                    }
                    else
                    {
                        if (oDevV.FormaDePagoID == Cat.FormasDePago.Vale)
                        {
                            ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.DevolucionVentaValeFactura, iDevID, oDevV.FolioDeVenta, oDevV.Observacion);
                        }
                        else
                        {
                            ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.DevolucionVentaPago, iDevID, oDevV.FolioDeVenta, oDevV.Observacion);
                        }
                    }
                }
                else
                {
                    if (oDevV.FormaDePagoID == Cat.FormasDePago.Vale)
                    {
                        ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.DevolucionVentaValeTicket, iDevID, oDevV.FolioDeVenta, oDevV.Observacion);
                    }

                    // Si es tiecket a crédito, se hace ajuste temporal de pólizas
                    if (oDevV.VentaACredito)
                    {
                        ContaProc.BorrarPolizaTemporalTicketCredito(oDevV.VentaID);
                        if (!bCancelacion)
                        {
                            var oVentaVi = Datos.GetEntity <VentasView>(c => c.VentaID == oDevV.VentaID);
                            ContaProc.CrearPolizaTemporalTicketCredito(oDevV.VentaID, (oVentaVi.Total - oVentaVi.Pagado));
                        }
                    }
                }
            }

            //
            foreach (int iDevID in oIdsDev)
            {
                // Se guarda la autorización, si aplica
                VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.DevolucionCancelacion, Cat.Tablas.VentaDevolucion, iDevID, iAutorizoID);
                // Se genera el ticket correspondiente
                VentasLoc.GenerarTicketDevolucion(iDevID);

                // Se agrega al Kardex

                /* Ahora se hace desde que se guarda la devolución - Guardar.VentaDevolucion()
                 * var oDevV = General.GetEntity<VentasDevolucionesView>(c => c.VentaDevolucionID == iDevID);
                 * var oDet = General.GetListOf<VentaDevolucionDetalle>(c => c.VentaDevolucionID == iDevID && c.Estatus);
                 * foreach (var oReg in oDet)
                 * {
                 *  AdmonProc.RegistrarKardex(new ParteKardex()
                 *  {
                 *      ParteID = oReg.ParteID,
                 *      OperacionID = Cat.OperacionesKardex.VentaCancelada,
                 *      SucursalID = oDevV.SucursalID,
                 *      Folio = oDevV.FolioDeVenta,
                 *      Fecha = DateTime.Now,
                 *      RealizoUsuarioID = oDevV.RealizoUsuarioID,
                 *      Entidad = oVentaV.Cliente,
                 *      Origen = oVentaV.ClienteID.ToString(),
                 *      Destino = oDevV.Sucursal,
                 *      Cantidad = oReg.Cantidad,
                 *      Importe = (oReg.PrecioUnitario + oReg.Iva),
                 *      RelacionTabla = Cat.Tablas.VentaDevolucion,
                 *      RelacionID = oDevV.VentaDevolucionID
                 *  });
                 * }
                 */
            }

            // Se manda aviso de cancelación de factura a crédito de días anteriores, si aplica
            if (oVentaV.Facturada && oVentaV.ACredito && oVentaV.Fecha < DateTime.Now.Date)
            {
                var oUsuarios = Datos.GetListOf <Usuario>(c => c.AlertaDevFacturaCreditoAnt == true && c.Estatus);
                foreach (var oReg in oUsuarios)
                {
                    Proc.EnviarMensajeTcp(oReg.Ip, Proc.MensajesTcp.DevolucionFacturaCreditoAnt, oIdsDev[0].ToString());
                }
            }

            // Se muestra una notifiación con el resultado
            UtilLocal.MostrarNotificacion((bCancelacion ? "Cancelación" : "Devolución") + " guardada correctamente.");

            // Se limpia después de haberse guardado
            this.Limpiar();

            return(true);
        }
Esempio n. 9
0
        public override bool Ejecutar()
        {
            // Se valida la opción
            if (!this.ctlFacturar.Validar())
            {
                return(false);
            }

            // Se pregunta si se debe facturar al mismo cliente de las ventas o a otro
            int iAFClienteID = this.Cliente.ClienteID;

            if (UtilLocal.MensajePregunta("¿Deseas hacer la factura a nombre del cliente seleccionado?") == DialogResult.No)
            {
                iAFClienteID = 0;
                var frmValor = new MensajeObtenerValor("Selecciona el cliente para facturar:", "", MensajeObtenerValor.Tipo.Combo);
                frmValor.CargarCombo("ClienteID", "Nombre", Datos.GetListOf <Cliente>(q => q.ClienteID != Cat.Clientes.Mostrador && q.Estatus));
                if (frmValor.ShowDialog(Principal.Instance) == DialogResult.OK)
                {
                    iAFClienteID = Util.Entero(frmValor.Valor);
                }
                frmValor.Dispose();
            }
            if (iAFClienteID == 0)
            {
                return(false);
            }

            // Se solicita el usuario que realiza el proceso
            int iUsuarioID = 0;
            var Res        = UtilLocal.ValidarObtenerUsuario("Ventas.FacturarTickets.Agregar");

            if (Res.Error)
            {
                return(false);
            }
            iUsuarioID = Res.Respuesta.UsuarioID;

            // Se muestra la ventana de "Cargando.."
            Cargando.Mostrar();

            //
            DateTime dAhora = DateTime.Now;

            // Se obtienen los datos de los productos, por si se cambió la descripción
            List <ProductoVenta> oPartes = null;

            if (this.ctlFacturar.MostrarTodasLasPartes)
            {
                oPartes = this.ctlDetalle.ObtenerListaVenta();
            }

            // Se procede a generar la factura
            var oVentasAF     = this.ctlFacturar.GenerarListaDeVentas();
            var oFormasDePago = this.ctlFacturar.FormasDePagoLibre;
            var ResFe         = VentasLoc.GenerarFacturaElectronica(oVentasAF, iAFClienteID, oPartes, oFormasDePago, this.ctlFacturar.Observacion, null);

            if (ResFe.Error)
            {
                UtilLocal.MensajeAdvertencia(ResFe.Mensaje);
                return(false);
            }

            // Se guarda el dato de que fue una factura de ventas

            var oFactura = Datos.GetEntity <VentaFactura>(q => q.VentaFacturaID == ResFe.Respuesta && q.Estatus);

            oFactura.Convertida       = true;
            oFactura.RealizoUsuarioID = iUsuarioID;
            Datos.Guardar <VentaFactura>(oFactura);

            // Se manda a afectar contabilidad (AfeConta)
            foreach (int iVentaID in oVentasAF)
            {
                var oVentaV = Datos.GetEntity <VentasView>(c => c.VentaID == iVentaID);
                if (oVentaV.ACredito)
                {
                    ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.VentaCredito, iVentaID, (oFactura.Serie + oFactura.Folio), oVentaV.Cliente);
                    // Se verifica si el ticket ya está pagado, para hacer la póliza correspondiente a dicho pago
                    if (oVentaV.Pagado > 0)
                    {
                        var oPagos = Datos.GetListOf <VentaPago>(c => c.VentaID == iVentaID && c.Estatus);
                        foreach (var oReg in oPagos)
                        {
                            ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.PagoVentaCredito, oReg.VentaPagoID
                                                            , ((oFactura.Serie + oFactura.Folio) + " / " + UtilDatos.VentaPagoFormasDePago(oReg.VentaPagoID))
                                                            , oVentaV.Cliente, oReg.SucursalID);
                        }
                    }

                    // Se borra la póliza temporal creada por ser ticket a crédito
                    ContaProc.BorrarPolizaTemporalTicketCredito(iVentaID);
                }
                else
                {
                    ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.VentaContadoFacturaConvertida, iVentaID
                                                    , (oFactura.Serie + oFactura.Folio), oVentaV.Cliente, oVentaV.SucursalID);
                }
            }

            // Se guarda el dato de pendiente por descontar en la factura global, si aplica
            // Se guardan datos cuando se están facturando tickets abonados en otras sucursales
            foreach (int iVentaID in oVentasAF)
            {
                // Se obtienen los abonos de otras sucursales
                var oAbonos = Datos.GetListOf <VentasPagosView>(c => c.VentaID == iVentaID && c.SucursalID != GlobalClass.SucursalID)
                              .GroupBy(c => new { c.VentaID, c.SucursalID }).Select(c => new { c.Key.VentaID, c.Key.SucursalID, Abonado = c.Sum(s => s.Importe) });
                if (oAbonos != null && oAbonos.Count() > 0)
                {
                    foreach (var oReg in oAbonos)
                    {
                        var oPendiente = new FacturaGlobalPendientePorDescontar()
                        {
                            VentaID    = oReg.VentaID,
                            Fecha      = dAhora,
                            SucursalID = oReg.SucursalID,
                            Importe    = oReg.Abonado
                        };
                        Datos.Guardar <FacturaGlobalPendientePorDescontar>(oPendiente);
                    }
                }
            }

            // Se cierra la ventana de "Cargando.."
            Cargando.Cerrar();

            // Se muestra una notifiación con el resultado
            UtilLocal.MostrarNotificacion("Procedimiento ejecutado correctamente.");

            // Se limpia después de haberse guardado
            this.Limpiar();

            return(true);
        }
Esempio n. 10
0
        private void dgvDatos_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            try
            {
                if (this.dgvDatos.Columns[e.ColumnIndex].Name == "Criterio" && e.Button == MouseButtons.Right)
                {
                    var frmCantidad = new MensajeObtenerValor("Criterio", "0", MensajeObtenerValor.Tipo.Entero);
                    if (frmCantidad.ShowDialog(Principal.Instance) == DialogResult.OK)
                    {
                        var valor = Helper.ConvertirEntero(frmCantidad.Valor);
                        if (valor >= 0 && valor <= 3)
                        {
                            foreach (DataGridViewRow row in this.dgvDatos.Rows)
                            {
                                if (Helper.ConvertirBool(row.Cells["Sel"].Value).Equals(true))
                                {
                                    row.Cells[e.ColumnIndex].Value = valor;
                                }
                            }
                        }
                    }
                    frmCantidad.Dispose();
                }

                if (this.dgvDatos.Columns[e.ColumnIndex].Name == "TiempoReposicion" && e.Button == MouseButtons.Right)
                {
                    var frmCantidad = new MensajeObtenerValor("Tiempo de Reposición", "0", MensajeObtenerValor.Tipo.Entero);
                    if (frmCantidad.ShowDialog(Principal.Instance) == DialogResult.OK)
                    {
                        var valor = Helper.ConvertirEntero(frmCantidad.Valor);
                        if (valor >= 0)
                        {
                            foreach (DataGridViewRow row in this.dgvDatos.Rows)
                            {
                                if (Helper.ConvertirBool(row.Cells["Sel"].Value).Equals(true))
                                {
                                    row.Cells[e.ColumnIndex].Value = valor;
                                }
                            }
                        }
                    }
                    frmCantidad.Dispose();
                }

                if (this.dgvDatos.Columns[e.ColumnIndex].Name == "CriteriosGenerales" && e.Button == MouseButtons.Right)
                {
                    var detCriterio = DetalleBusquedaDeCriterios.Instance;
                    detCriterio.ShowDialog();
                    var valor = detCriterio.Sel;
                    if (!string.IsNullOrEmpty(valor))
                    {
                        foreach (DataGridViewRow row in this.dgvDatos.Rows)
                        {
                            if (Helper.ConvertirBool(row.Cells["Sel"].Value).Equals(true))
                            {
                                row.Cells[e.ColumnIndex].Value = valor;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Helper.MensajeError(ex.Message, GlobalClass.NombreApp);
            }
        }
Esempio n. 11
0
        private void dgvDatos_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            try
            {
                if (this.dgvDatos.Columns[e.ColumnIndex].Name == "Criterio" && e.Button == MouseButtons.Right)
                {
                    var frmCantidad = new MensajeObtenerValor("Criterio", "0", MensajeObtenerValor.Tipo.Entero);
                    if (frmCantidad.ShowDialog(Principal.Instance) == DialogResult.OK)
                    {
                        var valor = Helper.ConvertirEntero(frmCantidad.Valor);
                        if (valor >= 0 && valor <= 3)
                            foreach (DataGridViewRow row in this.dgvDatos.Rows)
                                if (Helper.ConvertirBool(row.Cells["Sel"].Value).Equals(true))
                                    row.Cells[e.ColumnIndex].Value = valor;
                    }
                    frmCantidad.Dispose();
                }

                if (this.dgvDatos.Columns[e.ColumnIndex].Name == "TiempoReposicion" && e.Button == MouseButtons.Right)
                {
                    var frmCantidad = new MensajeObtenerValor("Tiempo de Reposición", "0", MensajeObtenerValor.Tipo.Entero);
                    if (frmCantidad.ShowDialog(Principal.Instance) == DialogResult.OK)
                    {
                        var valor = Helper.ConvertirEntero(frmCantidad.Valor);
                        if (valor >= 0)
                            foreach (DataGridViewRow row in this.dgvDatos.Rows)
                                if (Helper.ConvertirBool(row.Cells["Sel"].Value).Equals(true))
                                    row.Cells[e.ColumnIndex].Value = valor;
                    }
                    frmCantidad.Dispose();
                }

                if (this.dgvDatos.Columns[e.ColumnIndex].Name == "CriteriosGenerales" && e.Button == MouseButtons.Right)
                {
                    var detCriterio = DetalleBusquedaDeCriterios.Instance;
                    detCriterio.ShowDialog();
                    var valor = detCriterio.Sel;
                    if (!string.IsNullOrEmpty(valor))
                        foreach (DataGridViewRow row in this.dgvDatos.Rows)
                            if (Helper.ConvertirBool(row.Cells["Sel"].Value).Equals(true))
                                row.Cells[e.ColumnIndex].Value = valor;
                }
            }
            catch (Exception ex)
            {
                Helper.MensajeError(ex.Message, GlobalClass.NombreApp);
            }
        }