예제 #1
0
        private void Insertar(OOB.Contable.Asiento.Asiento.Guardar ficha)
        {
            var result = Globals.MyData.Asiento_Guardar(ficha);

            if (result.Result == OOB.Resultado.EnumResult.isError)
            {
                Helpers.Msg.Error(result.Mensaje);
                return;
            }

            Helpers.Msg.AgregarOk();
        }
예제 #2
0
        private void fCont_ExportarDetalleOk(object sender, Contabilizar.DatosEncabezado e)
        {
            fCont.Close();

            var list   = AsientosDet.ToList();
            var mdebe  = AsientosDet.Sum(d => d.MontoDebe);
            var mhaber = AsientosDet.Sum(d => d.MontoHaber);
            var ficha  = new OOB.Contable.Asiento.Asiento.Guardar()
            {
                IsPreview     = true,
                Periodo       = this.Periodo,
                TipoAsiento   = e.TipoAsiento,
                TipoDocumento = e.TipoDoc,
                Descripcion   = e.Descripcion,
                DocumentoRef  = "",
                Fecha         = DateTime.Now,
                Importe       = mdebe > mhaber ? mdebe : mhaber,
                Asiento       = null,
            };

            var ldet = list.Select(cta =>
            {
                var det = new OOB.Contable.Asiento.Asiento.Detalle();
                det.Cta = new OOB.Contable.PlanCta.Ficha()
                {
                    Id         = cta.IdCta,
                    Codigo     = cta.CodigoCta,
                    Nombre     = cta.DescripcionCta,
                    Naturaleza = cta.Naturaleza,
                };
                det.Debe        = cta.MontoDebe;
                det.Haber       = cta.MontoHaber;
                det.Codigo      = cta.CodigoCta;
                det.Descripcion = cta.DescripcionCta;

                return(det);
            }).ToList();

            ficha.Detalles = ldet;
            Insertar(ficha);
        }
        private void Editar(OOB.Contable.Asiento.Asiento.Guardar ficha)
        {
            var result = Globals.MyData.Asiento_Guardar(ficha);

            if (result.Result == OOB.Resultado.EnumResult.isError)
            {
                Helpers.Msg.Error(result.Mensaje);
                return;
            }

            EventHandler <int> handler = EditarOk;

            if (handler != null)
            {
                handler(this, result.Id);
            }

            Helpers.Msg.EditarOk();
            salirOk = true;
            Close();
        }
예제 #4
0
        public OOB.Resultado.ResultadoId Asiento_Guardar(OOB.Contable.Asiento.Asiento.Guardar ficha)
        {
            var result = new OOB.Resultado.ResultadoId();

            int idAsientoEditado = -1;
            int idAsientoPreview = -1;

            if (ficha.Asiento != null)
            {
                if (!ficha.Asiento.EstaProcesado)
                {
                    idAsientoPreview = ficha.Asiento.Id;
                }
                else
                {
                    idAsientoEditado = ficha.Asiento.Id;
                }
            }

            var fichaDTO = new DTO.Contable.Asiento.Insertar()
            {
                IdAsientoPreview        = idAsientoPreview,
                IdAsientoEditado        = idAsientoEditado,
                IdTipoDocumento         = ficha.TipoDocumento.Id,
                DescTipoDocumento       = ficha.TipoDocumento.Descripcion,
                TipoAsiento             = (DTO.Contable.Asiento.Enumerados.Tipo)ficha.TipoAsiento,
                PeriodoMes              = ficha.Periodo.MesActual,
                PeriodoAno              = ficha.Periodo.AnoActual,
                Importe                 = ficha.Importe,
                DocumentoRef            = ficha.DocumentoRef,
                FechaDocumentoRef       = ficha.Fecha,
                DescripcionDocumentoRef = ficha.Descripcion,
                IsPreview               = ficha.IsPreview,
                Ctas = ficha.Detalles.Select((d) =>
                {
                    var signo = 1;
                    //if (d.Cta.Naturaleza == OOB.Contable.PlanCta.Enumerados.Naturaleza.Deudora)
                    //{
                    //    if (d.Haber  != 0)
                    //    {
                    //        signo = 1;
                    //    }
                    //}
                    //else
                    //{
                    //    signo = -1;
                    //    if (d.Debe != 0)
                    //    {
                    //        signo = 1;
                    //    }
                    //}

                    return(new DTO.Contable.Asiento.InsertarCta()
                    {
                        Id = d.Cta.Id,
                        MontoDebe = d.Debe * signo,
                        MontoHaber = d.Haber * signo,
                        codigo = d.Cta.Codigo,
                        Descripcion = d.Cta.Nombre,
                        Naturaleza = (DTO.Contable.PlanCta.Enumerados.Naturaleza)d.Cta.Naturaleza,
                    });
                }).ToList()
            };

            var resultDTO = _servicio.Contable_Asiento_Guardar(fichaDTO);

            if (resultDTO.Result == DTO.EnumResult.isError)
            {
                result.Mensaje = resultDTO.Mensaje;
                result.Result  = OOB.Resultado.EnumResult.isError;
                return(result);
            }

            result.Id = resultDTO.Id;
            return(result);
        }
        private void Procesar(bool Procesado = true)
        {
            var doc = (OOB.Contable.TipoDocumento.Ficha)CB_DOCUMENTO.SelectedItem;

            if (MDebe == 0 && MHaber == 0)
            {
                return;
            }
            if (doc == null)
            {
                return;
            }
            if (TB_DOCUMENTO.Text.Trim() == "")
            {
                return;
            }
            if (TB_DESCRIPCION.Text.Trim() == "")
            {
                return;
            }
            if (Procesado)
            {
                if (MDebe != MHaber)
                {
                    return;
                }
            }

            OOB.Contable.Asiento.Enumerados.Tipo tipoAsiento = OOB.Contable.Asiento.Enumerados.Tipo.Operativo;
            switch (CB_TIPO.SelectedIndex)
            {
            case 0:
                tipoAsiento = OOB.Contable.Asiento.Enumerados.Tipo.Operativo;
                break;

            case 1:
                tipoAsiento = OOB.Contable.Asiento.Enumerados.Tipo.Ajuste;
                break;

            case 2:
                tipoAsiento = OOB.Contable.Asiento.Enumerados.Tipo.Cierre;
                break;
            }

            var importe = 0.0m;

            if (Procesado)
            {
                importe = MDebe;
            }
            else
            {
                importe = MDebe > MHaber ? MDebe : MHaber;
            }

            var msg = MessageBox.Show("Procesar Asiento ?", "*** ALERTA ***", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (msg == System.Windows.Forms.DialogResult.Yes)
            {
                if (ModoFicha == Modo.AgregarFicha || ModoFicha == Modo.ExportarFicha)
                {
                    var ficha = new OOB.Contable.Asiento.Asiento.Guardar()
                    {
                        Periodo       = this.Periodo,
                        TipoAsiento   = tipoAsiento,
                        TipoDocumento = doc,
                        Descripcion   = TB_DESCRIPCION.Text,
                        DocumentoRef  = TB_DOCUMENTO.Text,
                        Fecha         = DTP_FECHA.Value,
                        IsPreview     = !Procesado,
                        Importe       = importe,
                        Detalles      = items.Where(it => it.Cta != null).Select(d =>
                        {
                            return(new OOB.Contable.Asiento.Asiento.Detalle()
                            {
                                Cta = d.Cta,
                                Codigo = d.Codigo,
                                Descripcion = d.Descripcion,
                                Debe = d.Debe,
                                Haber = d.Haber
                            });
                        }).ToList()
                    };

                    Insertar(ficha);
                }
                else
                {
                    var ficha = new OOB.Contable.Asiento.Asiento.Guardar()
                    {
                        Asiento       = this.Asiento,
                        Periodo       = this.Periodo,
                        TipoAsiento   = tipoAsiento,
                        TipoDocumento = doc,
                        Descripcion   = TB_DESCRIPCION.Text,
                        DocumentoRef  = TB_DOCUMENTO.Text,
                        Fecha         = DTP_FECHA.Value,
                        IsPreview     = !Procesado,
                        Importe       = importe,
                        Detalles      = items.Where(it => it.Cta != null).Select(d =>
                        {
                            return(new OOB.Contable.Asiento.Asiento.Detalle()
                            {
                                Cta = d.Cta,
                                Codigo = d.Codigo,
                                Descripcion = d.Descripcion,
                                Debe = d.Debe,
                                Haber = d.Haber
                            });
                        }).ToList()
                    };
                    Editar(ficha);
                }
            }
        }