Ejemplo n.º 1
0
        private void Cancelar9500(int i9500ID)
        {
            var o9500 = Datos.GetEntity <Cotizacion9500>(q => q.Cotizacion9500ID == i9500ID && q.Estatus);

            // Se valida que ya se haya cobrado la venta del anticipo
            var oVenta = Datos.GetEntity <Venta>(q => q.VentaID == o9500.AnticipoVentaID && q.Estatus);

            if (oVenta.VentaEstatusID == Cat.VentasEstatus.Realizada)
            {
                UtilLocal.MensajeAdvertencia("El 9500 seleccionado no ha sido cobrado. Para cancelarlo, cancela la Venta del anticipo desde Ventas por Cobrar.");
                return;
            }

            if (UtilLocal.MensajePregunta("¿Estás seguro que deseas cancelar el 9500 seleccionado?") == DialogResult.Yes)
            {
                var oMotivo = UtilLocal.ObtenerValor("¿Cuál es el motivo de la baja?", "", MensajeObtenerValor.Tipo.TextoLargo);
                if (oMotivo == null)
                {
                    return;
                }
                var oResU = UtilLocal.ValidarObtenerUsuario();
                if (oResU.Error)
                {
                    return;
                }

                Cargando.Mostrar();
                // Se cancela el 9500
                VentasProc.Cancelar9500(i9500ID, Util.Cadena(oMotivo), oResU.Respuesta.UsuarioID);
                Cargando.Cerrar();
                this.CargarLista9500();
            }
        }
Ejemplo n.º 2
0
        private void btnNcAgregar_Click(object sender, EventArgs e)
        {
            // Se solicita el concepto e importe de la nota de crédito
            string sConcepto = Util.Cadena(UtilLocal.ObtenerValor("Concepto de la Nota de Crédito:", "", MensajeObtenerValor.Tipo.TextoLargo));

            if (sConcepto == "")
            {
                return;
            }
            decimal mImporte = Util.Decimal(UtilLocal.ObtenerValor("Importe de la Nota de Crédito:", "0.00", MensajeObtenerValor.Tipo.Decimal));

            if (mImporte == 0)
            {
                return;
            }
            // Se solicita la autorización
            var ResAut = UtilLocal.ValidarObtenerUsuario("Autorizaciones.Ventas.NotasDeCredito.Agregar", "Autorización");

            // Se genera la nota, si todo fue bien
            if (ResAut.Exito)
            {
                var ResNC = VentasProc.GenerarNotaDeCredito(this.Cliente.ClienteID, mImporte, sConcepto, Cat.OrigenesNotaDeCredito.Directo, ResAut.Respuesta.UsuarioID);
                // Se manda a crear la póliza contable correspondiente (AfeConta)
                var oVale = Datos.GetEntity <NotaDeCredito>(c => c.NotaDeCreditoID == ResNC.Respuesta && c.Estatus);
                ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.ValeDirecto, oVale.NotaDeCreditoID, this.Cliente.Nombre, oVale.Observacion);
                // Se guarda la autorización
                VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.NotaDeCreditoCrear, Cat.Tablas.NotaDeCredito, ResNC.Respuesta, ResAut.Respuesta.UsuarioID);
                // Se manda imprimir el ticket correspondiente
                VentasLoc.GenerarTicketNotaDeCredito(ResNC.Respuesta);
                //
                UtilLocal.MostrarNotificacion("Nota de Crédito generada correctamente.");
                this.NcAplicarFiltro();
            }
        }
Ejemplo n.º 3
0
        private void VerCambioCaracteristica()
        {
            int iCaracteristicaID = Util.Entero(this.dgvCaracteristicas.CurrentRow.Cells["colCaracteristicaID"].Value);

            if (iCaracteristicaID == -1)
            {
                // Se pregunta por la nueva característica
                var oCaracteristica = UtilLocal.ObtenerValor("Indica el nombre de la Característica:", "", MensajeObtenerValor.Tipo.Texto);
                if (oCaracteristica != null)
                {
                    // Se obtiene el valor correspondiente
                    var oListaCaracteristicas = (this.colCaracteristicaID.DataSource as List <LineasCaracteristicasView>);
                    int iValorSig             = oListaCaracteristicas.Min(c => c.CaracteristicaID);
                    iValorSig--;
                    //
                    oListaCaracteristicas.Add(new LineasCaracteristicasView()
                    {
                        CaracteristicaID = iValorSig, Caracteristica = Util.Cadena(oCaracteristica)
                    });
                    this.dgvCaracteristicas.CurrentRow.Cells["colCaracteristicaID"].Value = iValorSig;
                }
            }
            else
            {
                var oCaracteristica = Datos.GetEntity <Caracteristica>(c => c.CaracteristicaID == iCaracteristicaID);
                if (oCaracteristica != null)
                {
                    this.dgvCaracteristicas.CurrentRow.Cells["colMultipleOpciones"].Value = oCaracteristica.MultipleOpciones;
                }
            }
        }
Ejemplo n.º 4
0
 private void EditarDescripcion(DataGridViewRow oFila)
 {
     if (UtilLocal.ValidarPermiso("Ventas.Ticket.EditarDescripcionPartes"))
     {
         var oProd  = (oFila.DataBoundItem as ProductoVenta);
         var oValor = UtilLocal.ObtenerValor("Indica la Descripción a utilizar:", oProd.NombreDeParte, MensajeObtenerValor.Tipo.TextoLargo);
         if (oValor != null)
         {
             oProd.NombreDeParte = Util.Cadena(oValor);
             oFila.Cells["Descripcion"].Value = oValor;
         }
     }
 }
Ejemplo n.º 5
0
        // Se cargan los datos por el método "ActualizarDatos", que es llamado desde el "Load" de la base.

        protected override void btnNuevo_Click(object sender, EventArgs e)
        {
            object oNombre = UtilLocal.ObtenerValor("Indica el nombre del Consumible:", "", MensajeObtenerValor.Tipo.Texto);

            if (Util.Cadena(oNombre) != "")
            {
                var oRegistro = new ContaConsumible()
                {
                    Consumible = Util.Cadena(oNombre)
                };
                Datos.Guardar <ContaConsumible>(oRegistro);
                this.ActualizarDatos();
            }
        }
Ejemplo n.º 6
0
        protected override void btnNuevo_Click(object sender, EventArgs e)
        {
            object Banco = UtilLocal.ObtenerValor("Indica el nombre del banco:", "", MensajeObtenerValor.Tipo.Texto);

            if (Util.Cadena(Banco) != "")
            {
                var oBanco = new Banco()
                {
                    NombreBanco = Util.Cadena(Banco)
                };
                Datos.Guardar <Banco>(oBanco);
                this.ActualizarDatos();
            }
        }
Ejemplo n.º 7
0
        // Se cargan los datos por el método "ActualizarDatos", que es llamado desde el "Load" de la base.

        protected override void btnNuevo_Click(object sender, EventArgs e)
        {
            object oValor = UtilLocal.ObtenerValor("Indica el nombre del Gasto:", "", MensajeObtenerValor.Tipo.Texto);
            string sValor = Util.Cadena(oValor);

            if (sValor != "")
            {
                var oEgreso = new CajaTipoEgreso()
                {
                    NombreTipoEgreso = sValor, Seleccionable = true
                };
                Datos.Guardar <CajaTipoEgreso>(oEgreso);
                this.ActualizarDatos();
            }
        }
Ejemplo n.º 8
0
        private void dgvNotasDeCredito_KeyDown(object sender, KeyEventArgs e)
        {
            if (this.dgvNotasDeCredito.CurrentRow == null)
            {
                return;
            }

            if (e.KeyCode == Keys.Delete)
            {
                // Se verifica la nota de crédito seleccionada
                int iNotaDeCreditoID = Util.Entero(this.dgvNotasDeCredito.CurrentRow.Cells["ncNotaDeCreditoID"].Value);
                var oNota            = Datos.GetEntity <NotaDeCredito>(q => q.NotaDeCreditoID == iNotaDeCreditoID && q.Estatus);
                if (oNota.Valida == false)
                {
                    UtilLocal.MensajeAdvertencia("La nota de crédito seleccionada ya no es válida. No se puede continuar.");
                    return;
                }

                if (UtilLocal.MensajePregunta("¿Estás seguro que deseas dar de baja la nota de crédito seleccionada?") == DialogResult.Yes)
                {
                    // Se solicita el motivo
                    var oMotivo = UtilLocal.ObtenerValor("Indica el motivo de la baja", "", MensajeObtenerValor.Tipo.TextoLargo);
                    if (oMotivo != null)
                    {
                        // Se solicita la validación de usuario
                        var ResU = UtilLocal.ValidarObtenerUsuario("Ventas.NotasDeCredito.Baja");
                        if (ResU.Exito)
                        {
                            oNota.Valida     = false;
                            oNota.MotivoBaja = Util.Cadena(oMotivo);
                            Datos.Guardar <NotaDeCredito>(oNota);
                            this.NcAplicarFiltro();
                        }
                        else
                        {
                            if (ResU.Respuesta != null)
                            {
                                UtilLocal.MensajeAdvertencia("No tienes permisos para realizar la operación solicitada.");
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 9
0
        protected override void btnModificar_Click(object sender, EventArgs e)
        {
            if (this.dgvDatos.CurrentRow == null)
            {
                return;
            }

            string sValorAnt = Util.Cadena(this.dgvDatos.CurrentRow.Cells["NombreTipoEgreso"].Value);
            object oValor    = UtilLocal.ObtenerValor("Indica el nombre del Gasto:", sValorAnt, MensajeObtenerValor.Tipo.Texto);
            string sValor    = Util.Cadena(oValor);

            if (sValor != "" && sValor != sValorAnt)
            {
                int iEgresoID = Util.Entero(this.dgvDatos.CurrentRow.Cells["CajaTipoEgresoID"].Value);
                var oEgreso   = Datos.GetEntity <CajaTipoEgreso>(q => q.CajaTipoEgresoID == iEgresoID && q.Estatus);
                oEgreso.NombreTipoEgreso = sValor;
                Datos.Guardar <CajaTipoEgreso>(oEgreso);
                this.ActualizarDatos();
            }
        }
Ejemplo n.º 10
0
        protected override void btnModificar_Click(object sender, EventArgs e)
        {
            if (this.dgvDatos.CurrentRow == null)
            {
                return;
            }

            string sNombreAnt = Util.Cadena(this.dgvDatos.CurrentRow.Cells["Consumible"].Value);
            object oNombre    = UtilLocal.ObtenerValor("Indica el nombre del Consumible:", sNombreAnt, MensajeObtenerValor.Tipo.Texto);
            string sNombre    = Util.Cadena(oNombre);

            if (sNombre != "" && sNombre != sNombreAnt)
            {
                int iRegistroID = Util.Entero(this.dgvDatos.CurrentRow.Cells["ContaConsumibleID"].Value);
                var oRegistro   = Datos.GetEntity <ContaConsumible>(c => c.ContaConsumibleID == iRegistroID);
                oRegistro.Consumible = sNombre;
                Datos.Guardar <ContaConsumible>(oRegistro);
                this.ActualizarDatos();
            }
        }
Ejemplo n.º 11
0
        protected override void btnModificar_Click(object sender, EventArgs e)
        {
            if (this.dgvDatos.CurrentRow == null)
            {
                return;
            }

            string sBancoAnt = Util.Cadena(this.dgvDatos.CurrentRow.Cells["NombreBanco"].Value);
            object Banco     = UtilLocal.ObtenerValor("Indica el nombre del banco:", sBancoAnt, MensajeObtenerValor.Tipo.Texto);
            string sBanco    = Util.Cadena(Banco);

            if (sBanco != "" && sBanco != sBancoAnt)
            {
                int iBancoID = Util.Entero(this.dgvDatos.CurrentRow.Cells["BancoID"].Value);
                var oBanco   = Datos.GetEntity <Banco>(q => q.BancoID == iBancoID && q.Estatus);
                oBanco.NombreBanco = sBanco;
                Datos.Guardar <Banco>(oBanco);
                this.ActualizarDatos();
            }
        }
Ejemplo n.º 12
0
        private void Ncf_CrearNotaDeCreditoFiscal()
        {
            // Se verifica si hay ventas seleccionadas
            if (this.dgvNcf_Facturas.ContarIncidencias("Ncf_Aplicar", true) == 0)
            {
                UtilLocal.MensajeAdvertencia("No hay ninguna venta seleccionada.");
                return;
            }

            // Se obtiene el concepto
            var oConcepto = UtilLocal.ObtenerValor("Concepto de Nota de Crédito:", "", MensajeObtenerValor.Tipo.TextoLargo);

            if (oConcepto == null)
            {
                return;
            }

            // Se valida el permiso
            var oResU = UtilLocal.ValidarObtenerUsuario("Ventas.NotasDeCreditoFiscales.Agregar");

            if (oResU.Error)
            {
                return;
            }
            int iUsuarioID = oResU.Respuesta.UsuarioID;
            // Se solicita la validación de autorización
            var oResA       = UtilLocal.ValidarObtenerUsuario("Autorizaciones.Ventas.NotasDeCreditoFiscales.Agregar", "Autorización");
            int?iAutorizoID = (oResA.Respuesta == null ? null : (int?)oResA.Respuesta.UsuarioID);

            // Se genera el detalle de la nota de crédito, para mandar a hacer la factura
            decimal mTotal       = 0;
            var     oNotaDetalle = new List <ProductoVenta>();

            oNotaDetalle.Add(new ProductoVenta()
            {
                NombreDeParte = Util.Cadena(oConcepto), UnidadDeMedida = "."
            });
            // Se meten las facturas afectadas
            foreach (DataGridViewRow oFila in this.dgvNcf_Facturas.Rows)
            {
                if (!Util.Logico(oFila.Cells["Ncf_Aplicar"].Value))
                {
                    continue;
                }

                int     iVentaID = Util.Entero(oFila.Cells["Ncf_VentaID"].Value);
                decimal mImporte = Util.Decimal(oFila.Cells["Ncf_Diferencia"].Value);
                mTotal += mImporte;

                var oVenta = Datos.GetEntity <Venta>(c => c.VentaID == iVentaID && c.Estatus);
                oNotaDetalle.Add(new ProductoVenta()
                {
                    NumeroDeParte  = iVentaID.ToString(),                         // Se usa para mete la VentaID
                    NombreDeParte  = string.Format("FACTURA: {0}", oVenta.Folio), // Se usa para mostrar la factura
                    Cantidad       = 1,
                    PrecioUnitario = UtilTheos.ObtenerPrecioSinIva(mImporte),
                    Iva            = UtilTheos.ObtenerIvaDePrecio(mImporte),
                    UnidadDeMedida = "."
                });
            }
            if (mTotal == 0)
            {
                return;
            }

            Cargando.Mostrar();

            // Se manda hacer la nota de crédito fiscal
            var oRes = VentasLoc.GenerarNotaDeCreditoFiscal(oNotaDetalle, this.Cliente.ClienteID, iUsuarioID);

            if (oRes.Error)
            {
                Cargando.Cerrar();
                UtilLocal.MensajeAdvertencia(string.Format("Ocurrió un error al hacer la Nota de Crédito Fiscal\n\n{0}", oRes.Mensaje));
                return;
            }

            // Se modifica el detalle de la Nota de Crédito Fiscal, con datos adicionales de las ventas afectadas
            var oNcVentas = Datos.GetListOf <NotaDeCreditoFiscalDetalle>(c => c.NotaDeCreditoFiscalID == oRes.Respuesta);

            foreach (DataGridViewRow oFila in this.dgvNcf_Facturas.Rows)
            {
                if (!Util.Logico(oFila.Cells["Ncf_Aplicar"].Value))
                {
                    continue;
                }

                int iVentaID  = Util.Entero(oFila.Cells["Ncf_VentaID"].Value);
                int iListaPre = Util.Entero(oFila.Cells["Ncf_ListaDePrecios"].Value);

                var oVentaV  = Datos.GetEntity <VentasView>(c => c.VentaID == iVentaID);
                var oNcVenta = oNcVentas.FirstOrDefault(c => c.VentaID == iVentaID);
                if (oNcVenta == null)
                {
                    continue;
                }
                oNcVenta.ListaDePreciosUsada = iListaPre;
                oNcVenta.ImporteAntes        = oVentaV.Total;
                Datos.Guardar <NotaDeCreditoFiscalDetalle>(oNcVenta);
            }

            // Se descuenta el importe en cada artículo de las ventas afectadas
            foreach (DataGridViewRow oFila in this.dgvNcf_Facturas.Rows)
            {
                if (!Util.Logico(oFila.Cells["Ncf_Aplicar"].Value))
                {
                    continue;
                }

                int     iVentaID  = Util.Entero(oFila.Cells["Ncf_VentaID"].Value);
                int     iListaPre = Util.Entero(oFila.Cells["Ncf_ListaDePrecios"].Value);
                var     oPartes   = Datos.GetListOf <VentaDetalle>(c => c.VentaID == iVentaID && c.Estatus);
                decimal mPrecio   = 0;
                foreach (var oReg in oPartes)
                {
                    var oPrecio = Datos.GetEntity <PartePrecio>(c => c.ParteID == oReg.ParteID && c.Estatus);
                    switch (iListaPre)
                    {
                    case 1: mPrecio = oPrecio.PrecioUno.Valor(); break;

                    case 2: mPrecio = oPrecio.PrecioDos.Valor(); break;

                    case 3: mPrecio = oPrecio.PrecioTres.Valor(); break;

                    case 4: mPrecio = oPrecio.PrecioCuatro.Valor(); break;

                    case 5: mPrecio = oPrecio.PrecioCinco.Valor(); break;
                    }
                    // Se calcula el Iva
                    oReg.PrecioUnitario = UtilTheos.ObtenerPrecioSinIva(mPrecio);
                    oReg.Iva            = (mPrecio - oReg.PrecioUnitario);
                    Datos.Guardar <VentaDetalle>(oReg);
                }
            }

            // Se crea la póliza contable correspondiente (AfeConta)
            // Una póliza por cada venta afectada
            var oNotaV = Datos.GetEntity <NotasDeCreditoFiscalesView>(c => c.NotaDeCreditoFiscalID == oRes.Respuesta);

            foreach (var oReg in oNcVentas)
            {
                ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.NotaDeCreditoDescuentoVenta, oReg.NotaDeCreditoFiscalDetalleID
                                                , (oNotaV.Serie + oNotaV.Folio), oNotaV.Cliente);
            }

            // Se guarda la autorización
            VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.NotaDeCreditoFiscalCrear, "NotaDeCreditoFiscal", oRes.Respuesta, iAutorizoID);

            Cargando.Cerrar();
            this.NcfLlenarFacturas();
        }
Ejemplo n.º 13
0
        private void dgvDatos_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.Button != MouseButtons.Right)
            {
                return;
            }
            if (this.dgvDatos.CurrentCell == null)
            {
                return;
            }

            // Se desenfoca la celda de "Procesar" (si aplica), para que tome el cambio de esa celda
            if (this.dgvDatos.CurrentCell.OwningColumn.Name == "Procesar" && this.dgvDatos.CurrentCell.IsInEditMode)
            {
                this.dgvDatos.EndEdit();
            }

            // Se procesa una acción, dependiendo de la columna seleccionada
            string sColumna = this.dgvDatos.Columns[e.ColumnIndex].Name;

            switch (sColumna)
            {
            case "Procesar":
            case "Comision":
            case "Servicio":
            case "Etiqueta":
            case "SoloUna":
            case "EsPar":
                this.AplicarCheck(sColumna);
                break;

            case "NumeroDeParte":
            case "Descripcion":
                this.BuscarReemplazar(sColumna);
                break;

            case "ProveedorID":
            case "MarcaID":
            case "LineaID":
            case "UnidadDeMedidaID":
                DataGridViewComboBoxColumn oCol;
                if (sColumna == "ProveedorID")
                {
                    oCol = this.ProveedorID;
                }
                else if (sColumna == "MarcaID")
                {
                    oCol = this.MarcaID;
                }
                else if (sColumna == "LineaID")
                {
                    oCol = this.LineaID;
                }
                else
                {
                    oCol = this.UnidadDeMedidaID;
                }

                this.AplicarCombo(sColumna, oCol.ValueMember, oCol.DisplayMember, oCol.DataSource);
                break;

            case "UnidadDeEmpaque":
            case "TiempoDeReposicion":
                string sMensaje = (sColumna == "UnidadDeEmpaque" ? "Indica la Unidad de Empaque:" : "Indica el tiempo de reposición:");
                var    oValor   = UtilLocal.ObtenerValor(sMensaje, "1", MensajeObtenerValor.Tipo.Decimal);
                if (oValor != null)
                {
                    this.AplicarCambio(sColumna, oValor);
                }
                break;

            case "Costo":
            case "Precio1":
            case "Precio2":
            case "Precio3":
            case "Precio4":
            case "Precio5":
                this.AplicarPrecio(sColumna);
                break;

            case "Por1":
            case "Por2":
            case "Por3":
            case "Por4":
            case "Por5":
                this.AplicarPorcentajes();
                break;
            }
        }