Exemple #1
0
        public async Task <OOB.Resultado.ResultadoLista <OOB.Contable.Asiento.Generar.Ficha> > Asiento_Generar(OOB.Contable.Asiento.Generar.Filtro ficha)
        {
            return(await Task.Run <OOB.Resultado.ResultadoLista <OOB.Contable.Asiento.Generar.Ficha> >(() =>
            {
                OOB.Resultado.ResultadoLista <OOB.Contable.Asiento.Generar.Ficha> rt = new OOB.Resultado.ResultadoLista <OOB.Contable.Asiento.Generar.Ficha>();
                try
                {
                    var filtDTO = new DTO.Contable.Asiento.Generar.Filtros()
                    {
                        Desde = ficha.Desde,
                        Hasta = ficha.Hasta,
                        Modulo = (DTO.Contable.Asiento.Generar.Enumerados.ModuloGenerar)ficha.Modulo,
                    };
                    if (ficha.Venta != null)
                    {
                        var Venta = new DTO.Contable.Asiento.Generar.FiltroVenta();
                        Venta.IdSucursal = ficha.Venta.CodSucursal;
                        if (ficha.Venta.TipoDocumento != null)
                        {
                            Venta.TipoDocumento = ficha.Venta.TipoDocumento;
                        }
                        if (ficha.Venta.CondicionPago != null)
                        {
                            Venta.CondicionPago = ficha.Venta.CondicionPago;
                        }
                        if (ficha.Venta.DenominacionFiscal != null)
                        {
                            Venta.DenominacionFiscal = ficha.Venta.DenominacionFiscal;
                        }
                        if (ficha.Venta.SerialFiscal != null)
                        {
                            Venta.SerialFiscal = ficha.Venta.SerialFiscal.Descripcion;
                        }
                        filtDTO.Venta = Venta;
                    }
                    if (ficha.Compra != null)
                    {
                        var Compra = new DTO.Contable.Asiento.Generar.FiltroCompra();
                        Compra.MesRelacion = ficha.Compra.MesRelacion;
                        Compra.AnoRelacion = ficha.Compra.AnoRelacion;
                        Compra.IdSucursal = ficha.Compra.CodigoSucursal;

                        if (ficha.Compra.TipoDocumento != null)
                        {
                            Compra.TipoDocumento = ficha.Compra.TipoDocumento;
                        }
                        if (ficha.Compra.Proveedor != null)
                        {
                            Compra.IdProveedor = ficha.Compra.Proveedor.Id;
                        }
                        if (ficha.Compra.Concepto != null)
                        {
                            Compra.IdConcepto = ficha.Compra.Concepto.Id;
                        }
                        filtDTO.Compra = Compra;
                    }
                    if (ficha.CxP != null)
                    {
                        var CxP = new DTO.Contable.Asiento.Generar.FiltroCxP();
                        if (ficha.CxP.TipoDocumento != null)
                        {
                            switch (ficha.CxP.TipoDocumento)
                            {
                            case "PAGO":
                                CxP.TipoDocumento = DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento.Pago;
                                break;

                            case "RETENCION IVA":
                                CxP.TipoDocumento = DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento.RetencionIva;
                                break;

                            case "RETENCION ISLR":
                                CxP.TipoDocumento = DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento.RetencionIslr;
                                break;
                            }
                        }
                        if (ficha.CxP.Proveedor != null)
                        {
                            CxP.IdProveedor = ficha.CxP.Proveedor.Id;
                        }
                        if (ficha.CxP.Concepto != null)
                        {
                            CxP.IdConcepto = ficha.CxP.Concepto.Id;
                        }
                        filtDTO.CxP = CxP;
                    }
                    if (ficha.Inventario != null)
                    {
                        var Inventario = new DTO.Contable.Asiento.Generar.FiltroInventario();
                        if (ficha.Inventario.TipoDocumento.HasValue)
                        {
                            Inventario.TipoDocumento = (DTO.Contable.Asiento.Generar.FiltroInventario.EnumTipoDocumento)ficha.Inventario.TipoDocumento.Value;
                        }
                        filtDTO.Inventario = Inventario;
                    }
                    if (ficha.Banco != null)
                    {
                        var Banco = new DTO.Contable.Asiento.Generar.FiltroBanco();
                        if (ficha.Banco.TipoMovimiento.HasValue)
                        {
                            Banco.TipoMovimiento = (DTO.Bancos.Enumerados.TipMovimiento)ficha.Banco.TipoMovimiento.Value;
                        }
                        filtDTO.Banco = Banco;
                    }


                    var resultDTO = _servicio.Contable_Asiento_Generar(filtDTO);
                    if (resultDTO.Result == DTO.EnumResult.isError)
                    {
                        throw new Exception(resultDTO.Mensaje);
                    }

                    rt.cntRegistro = resultDTO.cntRegistro;
                    rt.Lista = resultDTO.Lista.Select(item =>
                    {
                        return new OOB.Contable.Asiento.Generar.Ficha()
                        {
                            Id = item.Id,
                            TipoDoc = (OOB.Contable.Asiento.Generar.Enumerados.TipoDocumento)item.TipoDoc,
                            DocumentoRef = item.DocumentoRef,
                            FechaDoc = item.FechaDoc,
                            DescripcionDoc = item.DescripcionDoc,
                            IsOk = item.IsOk,
                            Incluir = true,
                            Signo = item.Signo,
                            Detalles = item.Detalles.Select((d) =>
                            {
                                return new OOB.Contable.Asiento.Generar.FichaDetalle()
                                {
                                    IdCta = d.IdCta,
                                    CodigoCta = d.CodigoCta,
                                    DescripcionCta = d.DescripcionCta,
                                    Naturaleza = (OOB.Contable.PlanCta.Enumerados.Naturaleza)d.Naturaleza,
                                    MontoDebe = d.MontoDebe,
                                    MontoHaber = d.MontoHaber,
                                    Renglon = d.Renglon,
                                    Signo = item.Signo
                                };
                            }).ToList()
                        };
                    }).ToList();
                }
                catch (Exception e)
                {
                    rt.Mensaje = e.Message;
                    rt.Result = OOB.Resultado.EnumResult.isError;
                }
                return rt;
            }));
        }
Exemple #2
0
        async private void GenerarDoc()
        {
            P_PROCESAR.Enabled = false;

            OOB.Contable.Asiento.Generar.Enumerados.ModuloGenerar modulo = OOB.Contable.Asiento.Generar.Enumerados.ModuloGenerar.SinDefinir;
            switch (CB_MODULO_GENERAR.SelectedIndex)
            {
            case 0:
                modulo = OOB.Contable.Asiento.Generar.Enumerados.ModuloGenerar.Inventario;
                break;

            case 1:
                modulo = OOB.Contable.Asiento.Generar.Enumerados.ModuloGenerar.Ventas;
                break;

            case 2:
                modulo = OOB.Contable.Asiento.Generar.Enumerados.ModuloGenerar.Compras;
                break;

            case 4:
                modulo = OOB.Contable.Asiento.Generar.Enumerados.ModuloGenerar.PorPagar;
                break;

            case 3:
                modulo = OOB.Contable.Asiento.Generar.Enumerados.ModuloGenerar.PorCobrar;
                break;

            case 5:
                modulo = OOB.Contable.Asiento.Generar.Enumerados.ModuloGenerar.Bancos;
                break;
            }
            ;

            var filt = new OOB.Contable.Asiento.Generar.Filtro()
            {
                Desde  = DTP_DESDE.Value.Date,
                Hasta  = DTP_HASTA.Value.Date,
                Modulo = modulo,
            };

            if (filtBanco != null)
            {
                var Banco = new OOB.Contable.Asiento.Generar.FiltroBanco();
                if (filtBanco.TipoMovimiento != OOB.Bancos.Enumerados.TipMovimiento.SinDefinir)
                {
                    Banco.TipoMovimiento = filtBanco.TipoMovimiento;
                }
                filt.Banco = Banco;
            }

            if (filtVenta != null)
            {
                var codSucursal = "";
                if (filtVenta.Sucursal != null)
                {
                    codSucursal = filtVenta.Sucursal.Id;
                }
                var Venta = new OOB.Contable.Asiento.Generar.FiltroVenta()
                {
                    CodSucursal        = codSucursal,
                    TipoDocumento      = filtVenta.TipoDocumento,
                    CondicionPago      = filtVenta.CondicionPago,
                    DenominacionFiscal = filtVenta.DenominacionFiscal,
                    SerialFiscal       = filtVenta.SerialFiscal,
                };
                filt.Venta = Venta;
            }

            if (filtCompra != null)
            {
                var mesR        = -1;
                var anoR        = -1;
                var codSucursal = "";
                if (filtCompra.MesRelacion != -1)
                {
                    mesR = filtCompra.MesRelacion + 1;
                }
                if (filtCompra.AnoRelacion != -1)
                {
                    anoR = (2015 + filtCompra.AnoRelacion);
                }
                if (filtCompra.Sucursal != null)
                {
                    codSucursal = filtCompra.Sucursal.Id;
                }

                var Compra = new OOB.Contable.Asiento.Generar.FiltroCompra()
                {
                    TipoDocumento  = filtCompra.TipoDocumento,
                    Concepto       = filtCompra.Concepto,
                    Proveedor      = filtCompra.Proveedor,
                    MesRelacion    = mesR,
                    AnoRelacion    = anoR,
                    CodigoSucursal = codSucursal,
                };
                filt.Compra = Compra;
            }
            else
            {
                filt.Compra = new OOB.Contable.Asiento.Generar.FiltroCompra();
            }

            if (filtCxP != null)
            {
                var CxP = new OOB.Contable.Asiento.Generar.FiltroCxP()
                {
                    TipoDocumento = filtCxP.TipoDocumento,
                    Concepto      = filtCxP.Concepto,
                    Proveedor     = filtCxP.Proveedor
                };
                filt.CxP = CxP;
            }
            else
            {
                filt.CxP = new OOB.Contable.Asiento.Generar.FiltroCxP();
            }

            if (filtInv != null)
            {
                filt.Inventario = new OOB.Contable.Asiento.Generar.FiltroInventario();
                if (filtInv.TipoDocumento != null)
                {
                    switch (filtInv.TipoDocumento.Trim().ToUpper())
                    {
                    case "DESCARGOS":
                        filt.Inventario.TipoDocumento = OOB.Contable.Asiento.Generar.FiltroInventario.EnumTipoDocumento.Descargo;
                        break;

                    case "AJUSTE POR CARGOS":
                        filt.Inventario.TipoDocumento = OOB.Contable.Asiento.Generar.FiltroInventario.EnumTipoDocumento.AjustePorCargo;
                        break;

                    case "AJUSTE POR DESCARGOS":
                        filt.Inventario.TipoDocumento = OOB.Contable.Asiento.Generar.FiltroInventario.EnumTipoDocumento.AjustePorDescargo;
                        break;

                    case "AJUSTE":
                        filt.Inventario.TipoDocumento = OOB.Contable.Asiento.Generar.FiltroInventario.EnumTipoDocumento.Ajuste;
                        break;

                    case "CARGOS":
                        filt.Inventario.TipoDocumento = OOB.Contable.Asiento.Generar.FiltroInventario.EnumTipoDocumento.Cargo;
                        break;
                    }
                }
            }
            else
            {
                filt.Inventario = new OOB.Contable.Asiento.Generar.FiltroInventario();
            }

            progressBar1.Style = ProgressBarStyle.Marquee;
            var r01 = await Globals.MyData.Asiento_Generar(filt);

            if (r01.Result == OOB.Resultado.EnumResult.isError)
            {
                P_PROCESAR.Enabled = true;
                progressBar1.Style = ProgressBarStyle.Blocks;
                Helpers.Msg.Error(r01.Mensaje);
                return;
            }
            progressBar1.Style = ProgressBarStyle.Blocks;

            if (CB_MODULO_GENERAR.SelectedIndex == 0)
            {
                Asientos = new BindingList <OOB.Contable.Asiento.Generar.Ficha>(r01.Lista.OrderBy(d => d.DocumentoRef).ToList());
            }
            if (CB_MODULO_GENERAR.SelectedIndex == 1)
            {
                Asientos = new BindingList <OOB.Contable.Asiento.Generar.Ficha>(r01.Lista.OrderBy(d => d.DocumentoRef).ToList());
            }
            if (CB_MODULO_GENERAR.SelectedIndex == 2)
            {
                Asientos = new BindingList <OOB.Contable.Asiento.Generar.Ficha>(r01.Lista.OrderBy(d => d.FechaDoc).ToList());
            }
            if (CB_MODULO_GENERAR.SelectedIndex == 3)
            {
                Asientos = new BindingList <OOB.Contable.Asiento.Generar.Ficha>(r01.Lista.OrderBy(d => d.FechaDoc).ToList());
            }
            if (CB_MODULO_GENERAR.SelectedIndex == 4)
            {
                Asientos = new BindingList <OOB.Contable.Asiento.Generar.Ficha>(r01.Lista.OrderBy(d => d.FechaDoc).ToList());
            }
            if (CB_MODULO_GENERAR.SelectedIndex == 5)
            {
                Asientos = new BindingList <OOB.Contable.Asiento.Generar.Ficha>(r01.Lista.OrderBy(d => d.FechaDoc).ToList());
            }

            bs.DataSource  = Asientos;
            DGV.DataSource = bs;

            AsientosDet            = new BindingList <OOB.Contable.Asiento.Generar.FichaDetalle>();
            bsDet.DataSource       = AsientosDet;
            DGV_DETALLE.DataSource = bsDet;

            ActualizarTotales();
            tabControl1.SelectedIndex = 1;
            P_PROCESAR.Enabled        = true;
        }