Пример #1
0
        private void Consultarbutton_Click(object sender, EventArgs e)
        {
            CobrosRepositorio repositorio = new CobrosRepositorio();

            if (CriteriotextBox.Text.Trim().Length > 0)
            {
                switch (FiltrocomboBox.SelectedIndex)
                {
                case 0:    //Todos
                    listado = repositorio.GetList(c => true);
                    break;

                case 1:    //Id
                    int id = Convert.ToInt32(CriteriotextBox.Text);
                    listado = repositorio.GetList(c => c.CobroId == id);
                    break;

                case 2:    //Prestamo Id
                    int prestamoId = Convert.ToInt32(CriteriotextBox.Text);
                    listado = repositorio.GetList(c => c.PrestamoId == prestamoId);
                    break;

                case 3:    //Cliente
                    List <Clientes>     clientes            = new List <Clientes>();
                    ClientesRepositorio repositorioClientes = new ClientesRepositorio();

                    clientes = repositorioClientes.GetList(c => true);

                    foreach (var item in clientes)
                    {
                        if (item.Nombres.Contains(CriteriotextBox.Text))
                        {
                            listado = repositorio.GetList(c => c.ClienteId == item.ClienteId);
                            break;
                        }
                    }
                    break;

                case 4:    //Número de cuota
                    int numeroCuota = Convert.ToInt32(CriteriotextBox.Text);
                    listado = repositorio.GetList(c => c.NumeroCuota == numeroCuota);
                    break;

                case 5:    //Monto cobrado
                    decimal monto = Convert.ToDecimal(CriteriotextBox.Text);
                    listado = repositorio.GetList(c => c.Monto == monto);
                    break;
                }

                listado = listado.Where(c => c.Fecha.Date >= DesdedateTimePicker.Value.Date && c.Fecha.Date <= HastadateTimePicker.Value.Date).ToList();
            }
            else
            {
                listado = repositorio.GetList(c => true);
            }

            ConsultadataGridView.DataSource = null;
            ConsultadataGridView.DataSource = listado;
        }
Пример #2
0
        public void EliminarTest()
        {
            bool paso = false;
            CobrosRepositorio repositorio = new CobrosRepositorio();

            paso = repositorio.Eliminar(1);
            Assert.AreEqual(paso, true);
        }
Пример #3
0
        public void BuscarTest()
        {
            Cobros            cobro       = new Cobros();
            CobrosRepositorio repositorio = new CobrosRepositorio();

            cobro = repositorio.Buscar(1);
            Assert.IsTrue(cobro != null);
        }
Пример #4
0
        public void CobrarCuotaTest()
        {
            bool              paso        = false;
            Cobros            cobro       = new Cobros();
            CobrosRepositorio repositorio = new CobrosRepositorio();

            cobro.CobroId     = 1;
            cobro.Fecha       = DateTime.Now;
            cobro.ClienteId   = 1;
            cobro.PrestamoId  = 1;
            cobro.NumeroCuota = 1;
            cobro.Monto       = 1;

            paso = repositorio.CobrarCuota(cobro);

            Assert.AreEqual(paso, true);
        }
Пример #5
0
        private void Imprimirbutton_Click(object sender, EventArgs e)
        {
            if (CobroIdnumericUpDown.Value != 0)
            {
                CobrosRepositorio repositorio = new CobrosRepositorio();
                List <Cobros>     cobros      = new List <Cobros>();

                cobros = repositorio.GetList(c => true).Where(c => c.CobroId == CobroIdnumericUpDown.Value).ToList();

                ReciboCobrosReportViewer reciboReportViewer = new ReciboCobrosReportViewer(cobros);
                reciboReportViewer.ShowDialog();
            }
            else
            {
                MessageBox.Show("Para poder imprimir un recibo, primero debe buscar un registro");
                return;
            }
        }
Пример #6
0
        private void Eliminarbutton_Click(object sender, EventArgs e)
        {
            int id;
            CobrosRepositorio repositorio = new CobrosRepositorio();

            int.TryParse(Convert.ToString(CobroIdnumericUpDown.Value), out id);

            Limpiar();

            if (repositorio.Eliminar(id))
            {
                MessageBox.Show("¡Eliminado!", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MyerrorProvider.SetError(CobroIdnumericUpDown, "No se puede eliminar un cobro que no existe");
            }
        }
Пример #7
0
        private void Guardarbutton_Click(object sender, EventArgs e)
        {
            bool paso = false;
            CobrosRepositorio repositorio = new CobrosRepositorio();
            Cobros            cobro       = new Cobros();

            if (!Validar())
            {
                return;
            }

            cobro = LlenaClase();

            if (CobroIdnumericUpDown.Value == 0)
            {
                paso = repositorio.Guardar(cobro);

                if (!repositorio.CobrarCuota(cobro))
                {
                    MessageBox.Show("¡A ocurrido un error!");
                }
            }
            else
            {
                if (!ExisteEnLaBaseDeDatos())
                {
                    MessageBox.Show("No se puede modificar un cobro que no existe", "Fallo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                paso = repositorio.Modificar(cobro);
            }

            if (paso)
            {
                Limpiar();
                MessageBox.Show("¡Guardado!", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("¡No fue posible guardar!", "Fallo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #8
0
        private void Buscarbutton_Click(object sender, EventArgs e)
        {
            int               id;
            Cobros            cobro       = new Cobros();
            CobrosRepositorio repositorio = new CobrosRepositorio();

            int.TryParse(Convert.ToString(CobroIdnumericUpDown.Value), out id);

            Limpiar();

            cobro = repositorio.Buscar(id);

            if (cobro != null)
            {
                LlenaCampos(cobro);
            }
            else
            {
                MessageBox.Show("Cobro no encontrado", "Fallo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        public Response Save(EncabDevolucionVenta item, string empresaDB)
        {
            try
            {
                using var db = new ProfitAdmin2K8(conn.GetDbContextOptions(empresaDB));
                Utilitarios utilitarios = new Utilitarios();

                #region Validar devolucion
                ValidarDevolucion(item, empresaDB);
                #endregion

                #region Buscar consecutivos
                int numeroDevo    = utilitarios.BuscarConsecutivo("DEVO", item.CoSucu, empresaDB);
                int numeroNCR     = utilitarios.BuscarConsecutivo("N/CR", item.CoSucu, empresaDB);
                var numeroControl = utilitarios.BuscarNroControl(item.CoSucu, empresaDB);
                #endregion

                if (numeroDevo > 0)
                {
                    #region Nota de credito

                    #region Calcular exento para el DisCen
                    decimal TotalExento = (from exento in item.DetaDevolucionVenta where exento.TipoImp == "6" select exento).Sum(t => t.RengNeto);
                    #endregion

                    #region Construcción de DisCen
                    string DisCen = utilitarios.ArmarDisCen(item.FecEmis, (decimal)item.TotBruto, item.Iva, TotalExento, empresaDB);
                    #endregion

                    #region Creando N/CR
                    Response ncr = new DocumentosVentasRepositorio()
                                   .Save(new DocumCc
                    {
                        #region Campos
                        Numcon   = numeroControl,
                        CoCli    = item.CoCli,
                        Contrib  = cliente.Contribu,
                        NroDoc   = 0,
                        TipoDoc  = "N/CR",
                        Moneda   = item.Moneda,
                        CoVen    = item.CoVen,
                        FeUsIn   = item.FeUsIn,
                        FeUsMo   = item.FeUsMo,
                        FeUsEl   = item.FeUsEl,
                        CoSucu   = item.CoSucu,
                        Tipo     = "1",
                        FecEmis  = DateTime.Now,
                        FecVenc  = DateTime.Now,
                        MontoImp = item.Iva,
                        Observa  = $"Devol. Asoc:Fact No.{factura.FactNum}.",
                        MontoBru = (decimal)item.TotBruto,
                        Recargo  = string.Empty,
                        MontoNet = (decimal)item.TotNeto,
                        DocOrig  = "DEVO",
                        NroOrig  = numeroDevo,
                        Tasa     = item.Tasa,
                        Saldo    = (decimal)item.TotNeto,
                        Salestax = string.Empty,
                        Aut      = true,
                        CoUsIn   = item.CoUsIn,
                        CoUsMo   = item.CoUsMo,
                        CoUsEl   = item.CoUsEl,
                        Feccom   = DateTime.Now
                                   #endregion
                    }, empresaDB);
                    #endregion

                    #endregion

                    #region Cancelacion automatica de la devolución
                    if (ncr.Status == "OK")
                    {
                        #region Guardar cobro
                        Response cobroresult = new CobrosRepositorio()
                                               .Save(new EncabCobro
                        {
                            #region Campos cobro
                            CobNum    = 0,
                            Recibo    = string.Empty,
                            CoCli     = item.CoCli,
                            CoVen     = item.CoVen,
                            FecCob    = DateTime.Now,
                            Feccom    = DateTime.Now,
                            Tasa      = item.Tasa,
                            Moneda    = item.Moneda,
                            CoUsIn    = item.CoUsIn,
                            FeUsIn    = item.FeUsIn,
                            CoUsMo    = item.CoUsMo,
                            FeUsMo    = item.FeUsMo,
                            CoUsEl    = item.CoUsEl,
                            FeUsEl    = item.FeUsEl,
                            CoSucu    = item.CoSucu,
                            Descrip   = $"Cobro generado por la Devolución Nro. {numeroDevo}",
                            NumDev    = numeroDevo,
                            DetaCobro = new List <DetaCobro>
                            {
                                new DetaCobro
                                {
                                    #region Renglon factura
                                    CobNum   = 0,
                                    RengNum  = 1,
                                    TpDocCob = "FACT",
                                    DocNum   = factura.FactNum,
                                    Neto     = (decimal)factura.TotNeto,
                                    MontCob  = (decimal)factura.TotNeto,
                                    Isv      = (decimal)factura.Iva,
                                    Moneda   = item.Moneda,
                                    Tasa     = item.Tasa,
                                    FecEmis  = DateTime.Now,
                                    FecVenc  = DateTime.Now
                                               #endregion
                                },
                                new DetaCobro
                                {
                                    #region Renglon nota de crédito
                                    CobNum   = 0,
                                    RengNum  = 2,
                                    TpDocCob = "N/CR",
                                    DocNum   = numeroNCR,
                                    Neto     = (decimal)item.TotNeto,
                                    MontCob  = (decimal)item.TotNeto,
                                    Isv      = (decimal)item.Iva,
                                    Moneda   = item.Moneda,
                                    Tasa     = item.Tasa,
                                    FecEmis  = DateTime.Now,
                                    FecVenc  = DateTime.Now
                                               #endregion
                                }
                            },
                            FormaPagoCobro = new List <FormaPagoCobro>
                            {
                                new FormaPagoCobro
                                {
                                    #region Campos
                                    CobNum  = 0,
                                    RengNum = 1,
                                    TipCob  = "EFEC",
                                    Movi    = 0,
                                    Moneda  = item.Moneda,
                                    CodCaja = caja.CodCaja,
                                    DesCaja = caja.Descrip,
                                    FecCheq = DateTime.Now,
                                    Banco   = "DEVO" // F**k you...
                                              #endregion
                                }
                            }
                            #endregion
                        }, empresaDB);
                        #endregion

                        #region Actualizar saldo factura y documento (FACT)
                        if (cobroresult.Status == "OK")
                        {
                            item.NumCob = Convert.ToInt32(cobroresult.FacturaID); //;-)

                            factura.CoUsMo = item.CoUsMo;
                            factura.FeUsMo = item.FeUsMo;
                            factura.Saldo -= (decimal)item.TotNeto;

                            #region Detalle de factura y stock
                            foreach (var iRengDev in item.DetaDevolucionVenta)
                            {
                                #region Monto devuelto en rengfac
                                factura.DetaFacturaVenta.FirstOrDefault(d => d.FactNum == iRengDev.NumDoc && d.RengNum == iRengDev.RengDoc).TotalDev += iRengDev.TotalArt;
                                #endregion

                                #region actualización de stock
                                utilitarios.ActualizarStockArticuloAlmacen(iRengDev.CoArt, iRengDev.CoAlma, iRengDev.TotalArt, true, empresaDB);
                                #endregion
                            }
                            #endregion

                            Response factresult = new FacturasVentasRepositorio().Update(factura, empresaDB);
                        }
                        else
                        {
                            throw new ArgumentException(cobroresult.Message);
                        }
                        #endregion
                    }
                    else
                    {
                        throw new ArgumentException(ncr.Message);
                    }
                    #endregion

                    #region Devolucion
                    List <RengDvc> RengDvcs = new List <RengDvc>();

                    db.Entry(new DevCli
                    {
                        #region Campos
                        FactNum    = numeroDevo,
                        Contrib    = item.Contrib,
                        Nombre     = item.Nombre,
                        Rif        = item.Rif,
                        Nit        = item.Nit,
                        NumControl = item.NumControl,
                        Status     = item.Status,
                        Comentario = "<Forma Pago: Efectivo>",
                        Descrip    = item.Descrip,
                        Saldo      = item.Saldo,
                        FecEmis    = item.FecEmis,
                        FecVenc    = item.FecVenc,
                        CoCli      = item.CoCli,
                        CoVen      = item.CoVen,
                        CoTran     = item.CoTran,
                        DirEnt     = item.DirEnt,
                        FormaPag   = item.FormaPag,
                        TotBruto   = item.TotBruto,
                        TotNeto    = item.TotNeto,
                        GlobDesc   = item.GlobDesc,
                        TotReca    = item.TotReca,
                        PorcGdesc  = item.PorcGdesc,
                        PorcReca   = item.PorcReca,
                        TotalUc    = item.TotalUc,
                        TotalCp    = item.TotalCp,
                        TotFlete   = item.TotFlete,
                        MontoDev   = item.MontoDev,
                        Totklu     = item.Totklu,
                        Anulada    = item.Anulada,
                        Impresa    = item.Impresa,
                        Iva        = item.Iva,
                        IvaDev     = item.IvaDev,
                        Feccom     = item.Feccom,
                        Numcom     = item.Numcom,
                        Tasa       = item.Tasa,
                        Moneda     = item.Moneda,
                        DisCen     = DisCen,
                        NcNum      = numeroNCR, // ;-)
                        Seriales   = item.Seriales,
                        Tasag      = item.Tasag,
                        Tasag10    = item.Tasag10,
                        Tasag20    = item.Tasag20,
                        Campo1     = item.Campo1,
                        Campo2     = item.Campo2,
                        Campo3     = item.Campo3,
                        Campo4     = item.Campo4,
                        Campo5     = item.Campo5,
                        Campo6     = item.Campo6,
                        Campo7     = item.Campo7,
                        Campo8     = item.Campo8,
                        CoUsIn     = item.CoUsIn,
                        FeUsIn     = item.FeUsIn,
                        CoUsMo     = item.CoUsMo,
                        FeUsMo     = item.FeUsMo,
                        CoUsEl     = item.CoUsEl,
                        FeUsEl     = item.FeUsEl,
                        Revisado   = item.Revisado,
                        Trasnfe    = item.Trasnfe,
                        Numcon     = numeroControl,
                        CoSucu     = item.CoSucu,
                        Rowguid    = item.Rowguid,
                        MonIlc     = item.MonIlc,
                        Otros1     = item.Otros1,
                        Otros2     = item.Otros2,
                        Otros3     = item.Otros3,
                        NumCob     = item.NumCob, //;-)
                        MovCaj     = item.MovCaj,
                        MovBan     = item.MovBan,
                        SaldoNcr   = item.SaldoNcr,
                        NumTurno   = item.NumTurno,
                        Aux01      = item.Aux01,
                        Aux02      = item.Aux02,
                        Salestax   = item.Salestax,
                        Origen     = item.Origen,
                        OrigenD    = item.OrigenD,
                        StaProd    = item.StaProd,
                        Telefono   = item.Telefono
                                     #endregion
                    }).State = EntityState.Added;

                    foreach (var i in item.DetaDevolucionVenta)
                    {
                        RengDvc reng = new RengDvc
                        {
                            #region Campos
                            FactNum    = numeroDevo,
                            RengNum    = i.RengNum,
                            TipoDoc    = i.TipoDoc,
                            RengDoc    = i.RengDoc,
                            NumDoc     = i.NumDoc,
                            CoArt      = i.CoArt,
                            CoAlma     = i.CoAlma,
                            TotalArt   = i.TotalArt,
                            StotalArt  = i.StotalArt,
                            Pendiente  = i.Pendiente,
                            UniVenta   = i.UniVenta,
                            PrecVta    = i.PrecVta,
                            PorcDesc   = i.PorcDesc,
                            TipoImp    = i.TipoImp,
                            RengNeto   = i.RengNeto,
                            CosProUn   = i.CosProUn,
                            UltCosUn   = i.UltCosUn,
                            UltCosOm   = i.UltCosOm,
                            CosProOm   = i.CosProOm,
                            PrecVta2   = i.PrecVta2,
                            DesArt     = i.DesArt,
                            Comentario = i.Comentario,
                            TotalUni   = i.TotalUni,
                            MonIlc     = i.MonIlc,
                            Otros      = i.Otros,
                            NroLote    = i.NroLote,
                            FecLote    = i.FecLote,
                            TipoPrec   = i.TipoPrec,
                            CoAlma2    = i.CoAlma2,
                            Aux01      = i.Aux01,
                            Aux02      = i.Aux02
                                         #endregion
                        };
                        db.Entry(reng).State = EntityState.Added;
                    }
                    db.SaveChanges();
                    #endregion

                    #region Actualización de consecutivos
                    utilitarios.ActualizarConsecutivo(numeroDevo, "DEVO", item.CoSucu, empresaDB);
                    utilitarios.ActualizarConsecutivo(numeroNCR, "N/CR", item.CoSucu, empresaDB);
                    #endregion
                }
                else
                {
                    throw new ArgumentException("No se encontró el correlativo configurado para 'DEVO'.");
                }

                return(new Response {
                    Status = "OK", Message = "Transacción realizada con éxito."
                });
            }
            catch (Exception ex)
            {
                return(new Response {
                    Status = "ERROR", Message = (ex.InnerException != null) ? ex.InnerException.Message : ex.Message
                });
            }
        }