private void DisplayReporteDevolucion()
        {
            try
            {
                var movimiento = Datos.GetListOf <MovimientoInventarioView>(m => m.MovimientoInventarioID.Equals(oID));
                var detalle    = Datos.GetListOf <MovimientoInventarioDetalleView>(d => d.MovimientoInventarioID.Equals(oID));

                IEnumerable <MovimientoInventarioView>        movimientoE = movimiento;
                IEnumerable <MovimientoInventarioDetalleView> detalleE    = detalle;

                using (FastReport.Report report = new FastReport.Report())
                {
                    report.Load(string.Format("{0}{1}", GlobalClass.ConfiguracionGlobal.pathReportes, "ReporteSalidaDevolucion.frx"));
                    report.RegisterData(movimientoE, "movimiento", 3);
                    report.RegisterData(detalleE, "detalle", 3);
                    report.GetDataSource("movimiento").Enabled = true;
                    report.GetDataSource("detalle").Enabled    = true;
                    //report.Show(true);
                    UtilLocal.EnviarReporteASalida("Reportes.DevolucionAProveedor.Salida", report);
                }
            }
            catch (Exception ex)
            {
                Util.MensajeError(ex.Message, GlobalClass.NombreApp);
            }
        }
Example #2
0
        private void btnReporte_Click(object sender, EventArgs e)
        {
            Cargando.Mostrar();

            var oDatos = new List <CobroCliente>();

            foreach (Control oControl in this.flpEventos.Controls)
            {
                oDatos.Add(new CobroCliente()
                {
                    Fecha    = (oControl.Controls["dtpFecha"] as DateTimePicker).Value,
                    Cliente  = oControl.Controls["lblCliente"].Text,
                    Adeudo   = Util.Decimal(oControl.Controls["lblAdeudo"].Text.SoloNumeric()),
                    Vencido  = Util.Decimal(oControl.Controls["lblVencido"].Text.SoloNumeric()),
                    Contacto = oControl.Controls["lblContacto"].Text
                });
            }

            var oRep = new Report();

            oRep.Load(UtilLocal.RutaReportes("ClientesAvisos.frx"));
            oRep.RegisterData(oDatos, "Avisos");
            Cargando.Cerrar();
            UtilLocal.EnviarReporteASalida("Reportes.Clientes.Avisos", oRep);
        }
Example #3
0
        private void btnImprimir_Click(object sender, EventArgs e)
        {
            var oVentas = this.ObtenerVentasMarcadas();
            // Se agrupan las facturas de varios tickets
            var oVentasAg = oVentas.GroupBy(c => c.Folio).Select(c => new { Folio   = c.Key, Fecha = c.Min(s => s.Fecha), Vencimiento = c.Min(s => s.Vencimiento)
                                                                            , Total = c.Sum(s => s.Total), Pagado = c.Sum(s => s.Pagado), Restante = c.Sum(s => s.Restante) });

            var oClienteV = Datos.GetEntity <ClientesDatosView>(q => q.ClienteID == this.Cliente.ClienteID);
            var oRep      = new Report();

            oRep.Load(GlobalClass.ConfiguracionGlobal.pathReportes + "Cobranza.frx");
            oRep.RegisterData(new List <ClientesDatosView>()
            {
                oClienteV
            }, "Cliente");
            oRep.RegisterData(oVentasAg, "Ventas");
            UtilLocal.EnviarReporteASalida("Reportes.Cobranza.Salida", oRep);
        }
        private bool AccionAceptar()
        {
            // Cargando.Mostrar();

            decimal mFaltante         = 0;
            int     iClienteID        = 0;
            int     iCobroVentaID     = 0;
            bool    bUsarCascosAFavor = false;
            bool    bCrearVale        = false;
            bool    bCascoAFavor      = false;

            int iCascoRecibido   = Util.Entero(this.cmbCascoRecibido.SelectedValue);
            int iSucursalID      = GlobalClass.SucursalID;
            int iCascoRegistroID = this.oCascoRegistro.CascoRegistroID;
            int iParteID         = this.oCascoRegistro.ParteID;
            var oParte           = Datos.GetEntity <Parte>(c => c.ParteID == iParteID && c.Estatus);
            var oVenta           = Datos.GetEntity <Venta>(c => c.VentaID == this.oCascoRegistro.VentaID && c.Estatus);

            iClienteID = oVenta.ClienteID;
            var oCliente = Datos.GetEntity <Cliente>(c => c.ClienteID == oVenta.ClienteID && c.Estatus);

            if (iCascoRecibido != oParte.RequiereCascoDe)
            {
                // Si se recibió algún casco
                if (iCascoRecibido > 0)
                {
                    // Se obtienen el importe requerido
                    var oPrecioReq = Datos.GetEntity <PartePrecio>(c => c.ParteID == oParte.RequiereCascoDe && c.Estatus);
                    var oPrecioRec = Datos.GetEntity <PartePrecio>(c => c.ParteID == iCascoRecibido && c.Estatus);
                    if (oPrecioReq == null || oPrecioRec == null)
                    {
                        UtilLocal.MensajeAdvertencia("Hubo un error al obtener el Casco requerido.");
                        return(false);
                    }

                    // Se calcula el importe faltante
                    decimal?[] aPreciosReq = new decimal?[5] {
                        oPrecioReq.PrecioUno, oPrecioReq.PrecioDos, oPrecioReq.PrecioTres, oPrecioReq.PrecioCuatro, oPrecioReq.PrecioCinco
                    };
                    decimal?[] aPreciosRec = new decimal?[5] {
                        oPrecioRec.PrecioUno, oPrecioRec.PrecioDos, oPrecioRec.PrecioTres, oPrecioRec.PrecioCuatro, oPrecioRec.PrecioCinco
                    };
                    mFaltante = (aPreciosReq[oCliente.ListaDePrecios - 1] - aPreciosRec[oCliente.ListaDePrecios - 1]).Valor();

                    // Se evalúa el importe faltante, para tomar alguna acción
                    if (mFaltante != 0)
                    {
                        // Si el casco recibido es menor que el casco esperado
                        if (mFaltante > 0)
                        {
                            // Se busca por folio de cobro o por cascos a favor, según sea el caso
                            if (this.txtFolioDeCobro.Text == "")
                            {
                                decimal mTotalAFavor = Util.Decimal(this.lblTotalAFavor.Text);
                                if (mTotalAFavor != mFaltante)
                                {
                                    UtilLocal.MensajeAdvertencia("El importe seleccionado con los Cascos a favor debe ser de " + mFaltante.ToString(GlobalClass.FormatoMoneda));
                                    return(false);
                                }
                                bUsarCascosAFavor = true;
                            }
                            else
                            {
                                // Se obtiene el importe de la venta
                                var oVentaCobroV = Datos.GetEntity <VentasView>(c => c.Folio == this.txtFolioDeCobro.Text && c.SucursalID == GlobalClass.SucursalID &&
                                                                                (c.VentaEstatusID == Cat.VentasEstatus.Cobrada || c.VentaEstatusID == Cat.VentasEstatus.Completada));
                                if (oVentaCobroV == null)
                                {
                                    UtilLocal.MensajeAdvertencia("La venta específicada no existe, no es de esta sucursal o no ha sido cobrada.");
                                    return(false);
                                }
                                iCobroVentaID = oVentaCobroV.VentaID;

                                // Se valida que la parte de la venta sea una "diferencia de casco"
                                if (!Datos.Exists <VentaDetalle>(c => c.VentaID == iCobroVentaID && c.ParteID == Cat.Partes.DiferenciaDeCascos && c.Estatus))
                                {
                                    UtilLocal.MensajeAdvertencia("La venta especificada no corresponde a una Diferencia de Casco.");
                                    return(false);
                                }
                                // Se valida que el importe cobrado sea el correspondiente
                                if (oVentaCobroV.Total != mFaltante)
                                {
                                    UtilLocal.MensajeAdvertencia("El cobro por la diferencia debe de ser de " + mFaltante.ToString(GlobalClass.FormatoMoneda));
                                    return(false);
                                }
                            }
                        }
                        // Si el casco recibido es mayor que el casco esperado
                        else if (mFaltante < 0)
                        {
                            var oRes = UtilLocal.MensajePreguntaCancelar("El importe del casco recibido es mayor al esperado. ¿Deseas crear un Vale a favor del Cliente?");
                            if (oRes == DialogResult.Cancel)
                            {
                                return(false);
                            }
                            bCrearVale   = (oRes == DialogResult.Yes);
                            bCascoAFavor = !bCrearVale;
                        }
                    }
                }
                else  // Si no se recibió ningún casco, se evalúa la venta
                {
                    // Se obtiene la VentaID
                    var oVentaCobro = Datos.GetEntity <Venta>(c => c.Folio == this.txtFolioDeCobro.Text && c.SucursalID == GlobalClass.SucursalID &&
                                                              (c.VentaEstatusID == Cat.VentasEstatus.Cobrada || c.VentaEstatusID == Cat.VentasEstatus.Completada) && c.Estatus);
                    if (oVentaCobro == null)
                    {
                        UtilLocal.MensajeAdvertencia("La venta específicada no existe, no es de esta sucursal o no ha sido cobrada.");
                        return(false);
                    }
                    iCobroVentaID = oVentaCobro.VentaID;

                    // Se valida que la venta tenga la Parte correspondiente al casco
                    if (!Datos.Exists <VentaDetalle>(c => c.VentaID == iCobroVentaID && c.ParteID == oParte.RequiereDepositoDe && c.Estatus))
                    {
                        UtilLocal.MensajeAdvertencia("El cobro del Casco no corresonde al Artículo.");
                        return(false);
                    }
                }
            }

            // Cargando.Cerrar();
            // Se solicita la contraseña
            var oResU = UtilLocal.ValidarObtenerUsuario("Ventas.ControlDeCascos.Completar");

            if (oResU.Error)
            {
                return(false);
            }
            Cargando.Mostrar();

            // Se completa el registro de casco
            DateTime dAhora = DateTime.Now;

            // Se registran y modifican los Cascos a favor usados, si aplica
            if (bUsarCascosAFavor)
            {
                foreach (DataGridViewRow oFila in this.dgvImportesAFavor.Rows)
                {
                    if (Util.Logico(oFila.Cells["Sel"].Value))
                    {
                        // Se registra el importe usado para el CascoImporte
                        int     iCascoImporteID = Util.Entero(oFila.Cells["CascoImporteID"].Value);
                        decimal mAUsar          = Util.Decimal(oFila.Cells["ImporteAUsar"].Value);
                        var     oCascoImporte   = Datos.GetEntity <CascoImporte>(c => c.CascoImporteID == iCascoImporteID);
                        oCascoImporte.ImporteUsado += mAUsar;
                        Datos.Guardar <CascoImporte>(oCascoImporte);
                        // Se registra la relación entre el CascoRegistro y el CascoImporte
                        var oCascoRegImp = new CascoRegistroImporte()
                        {
                            CascoRegistroID = this.oCascoRegistro.CascoRegistroID,
                            CascoImporteID  = oCascoImporte.CascoImporteID,
                            Importe         = mAUsar
                        };
                        Datos.Guardar <CascoRegistroImporte>(oCascoRegImp);
                    }
                }
            }
            // Se crea el vale, si aplica
            if (bCrearVale)
            {
                var oRes = VentasProc.GenerarNotaDeCredito(iClienteID, (mFaltante * -1), "", Cat.OrigenesNotaDeCredito.CascoDeMayorValor
                                                           , this.oCascoRegistro.CascoRegistroID);
                // Se crea la póliza contable (AfeConta)
                ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.ValeDirecto, oRes.Respuesta, oCliente.Nombre, "POR CASCO MAYOR");
                // Se manda a imprimir el ticket
                VentasLoc.GenerarTicketNotaDeCredito(oRes.Respuesta);
            }
            // Se registra el casco a favor, si aplica
            if (bCascoAFavor)
            {
                var oCascoImporte = new CascoImporte()
                {
                    Fecha    = dAhora,
                    OrigenID = this.oCascoRegistro.CascoRegistroID,
                    Importe  = (mFaltante * -1)
                };
                Datos.Guardar <CascoImporte>(oCascoImporte);
            }
            // Se afecta la existencia y el kárdex del casco recibido
            if (iCascoRecibido > 0)
            {
                var oSucursal  = Datos.GetEntity <Sucursal>(c => c.SucursalID == iSucursalID && c.Estatus);
                var oPrecioRec = Datos.GetEntity <PartePrecio>(c => c.ParteID == iCascoRecibido && c.Estatus);
                AdmonProc.AfectarExistenciaYKardex(iCascoRecibido, GlobalClass.SucursalID, Cat.OperacionesKardex.EntradaInventario, iCascoRegistroID.ToString()
                                                   , oResU.Respuesta.UsuarioID, oCliente.Nombre, "CONTROL DE CASCOS", oSucursal.NombreSucursal, 1, oPrecioRec.Costo.Valor()
                                                   , Cat.Tablas.CascoRegistro, iCascoRegistroID);
            }

            // Se guardan los datos del registro de casco
            this.oCascoRegistro.RecibidoCascoID  = (iCascoRecibido > 0 ? (int?)iCascoRecibido : null);
            this.oCascoRegistro.RealizoUsuarioID = oResU.Respuesta.UsuarioID;
            this.oCascoRegistro.CobroVentaID     = (iCobroVentaID > 0 ? (int?)iCobroVentaID : null);
            Datos.Guardar <CascoRegistro>(this.oCascoRegistro);

            // Se manda a imprimir el ticket correspondiente
            var oCascoRegV = Datos.GetEntity <CascosRegistrosView>(c => c.CascoRegistroID == iCascoRegistroID);
            var oRep       = new Report();

            oRep.Load(GlobalClass.ConfiguracionGlobal.pathReportes + "ControlDeCascos.frx");
            VentasLoc.TicketAgregarLeyendas(ref oRep);
            oRep.RegisterData(new List <CascosRegistrosView>()
            {
                oCascoRegV
            }, "ControlDeCasco");
            UtilLocal.EnviarReporteASalida("Reportes.ControlDeCascos.Completar.Salida", oRep);

            Cargando.Cerrar();
            UtilLocal.MostrarNotificacion("Control de casco completado correctamente.");

            return(true);
        }
Example #5
0
 public static void EnviarReporteASalida(string sParametro, Report oReporte)
 {
     UtilLocal.EnviarReporteASalida(sParametro, oReporte, false);
 }