예제 #1
0
        private void CrearPoliza(DataGridViewRow oFilaGasto)
        {
            decimal mImporte = Util.Decimal(oFilaGasto.Cells["Importe"].Value);
            var frmGastoPol = new GastoCajaAPoliza(mImporte);
            if (frmGastoPol.ShowDialog(Principal.Instance) == DialogResult.OK)
            {
                // Se llenan los datos del gasto
                int iEgresoID = Util.Entero(oFilaGasto.Cells["CajaEgresoID"].Value);
                var oGasto = Datos.GetEntity<CajaEgreso>(c => c.CajaEgresoID == iEgresoID && c.Estatus);
                oGasto.Facturado = frmGastoPol.Facturado;
                oGasto.FolioFactura = frmGastoPol.Folio;
                oGasto.FechaFactura = frmGastoPol.Fecha;
                oGasto.Subtotal = frmGastoPol.Subtotal;
                oGasto.Iva = frmGastoPol.Iva;
                Datos.Guardar<CajaEgreso>(oGasto);

                // Se manda crear la Póliza, si no es de Proveedores
                var oContaEgreso = Datos.GetEntity<ContaEgreso>(c => c.ContaEgresoID == oGasto.ContaEgresoID);
                if (oContaEgreso == null || !Datos.Exists<ContaCuentaAuxiliar>(c => c.ContaCuentaAuxiliarID == oContaEgreso.ContaCuentaAuxiliarID
                    && c.ContaCuentaDeMayorID == Cat.ContaCuentasDeMayor.Proveedores))
                {
                    var oUsuario = Datos.GetEntity<Usuario>(c => c.UsuarioID == oGasto.RealizoUsuarioID && c.Estatus);

                    // Caso especial para reparto de utilidades
                    if (Datos.Exists<ContaCuentaAuxiliar>(c => c.ContaCuentaAuxiliarID == oContaEgreso.ContaCuentaAuxiliarID
                        && c.ContaCuentaDeMayorID == Cat.ContaCuentasDeMayor.ReparteDeUtilidades))
                    {
                        ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.GastoReparteUtilidades, oGasto.CajaEgresoID, oUsuario.NombreUsuario, oGasto.Concepto
                            , oGasto.SucursalID, oGasto.Fecha);
                    }
                    else
                    {
                        if (oGasto.Facturado.Valor())
                        {
                            // Se manda a afectar contabilidad (AfeConta)
                            ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.GastoCajaFacturado, iEgresoID, oGasto.FolioFactura, oGasto.Concepto
                                , oGasto.SucursalID, oGasto.Fecha);
                        }
                        else
                        {
                            // Se crea una póliza simple
                            var oPoliza = new ContaPoliza()
                            {
                                Fecha = oGasto.Fecha,
                                ContaTipoPolizaID = Cat.ContaTiposDePoliza.Egreso,
                                Concepto = oGasto.Concepto,
                                SucursalID = oGasto.SucursalID,
                                RelacionTabla = Cat.Tablas.CajaEgreso,
                                RelacionID = iEgresoID
                            };
                            ContaProc.CrearPoliza(oPoliza, Cat.ContaCuentasAuxiliares.GastosNoDeducibles, Cat.ContaCuentasAuxiliares.Caja, oGasto.Importe
                                , oUsuario.NombreUsuario);
                        }
                    }
                }

                // Se marca el gasto como afectado, y se guardan los datos
                oGasto.AfectadoEnPolizas = true;
                Datos.Guardar<CajaEgreso>(oGasto);

                this.LlenarGastos();
            }
            frmGastoPol.Dispose();
        }
예제 #2
0
        private void CrearPoliza(DataGridViewRow oFilaGasto)
        {
            decimal mImporte    = Util.Decimal(oFilaGasto.Cells["Importe"].Value);
            var     frmGastoPol = new GastoCajaAPoliza(mImporte);

            if (frmGastoPol.ShowDialog(Principal.Instance) == DialogResult.OK)
            {
                // Se llenan los datos del gasto
                int iEgresoID = Util.Entero(oFilaGasto.Cells["CajaEgresoID"].Value);
                var oGasto    = Datos.GetEntity <CajaEgreso>(c => c.CajaEgresoID == iEgresoID && c.Estatus);
                oGasto.Facturado    = frmGastoPol.Facturado;
                oGasto.FolioFactura = frmGastoPol.Folio;
                oGasto.FechaFactura = frmGastoPol.Fecha;
                oGasto.Subtotal     = frmGastoPol.Subtotal;
                oGasto.Iva          = frmGastoPol.Iva;
                Datos.Guardar <CajaEgreso>(oGasto);

                // Se manda crear la Póliza, si no es de Proveedores
                var oContaEgreso = Datos.GetEntity <ContaEgreso>(c => c.ContaEgresoID == oGasto.ContaEgresoID);
                if (oContaEgreso == null || !Datos.Exists <ContaCuentaAuxiliar>(c => c.ContaCuentaAuxiliarID == oContaEgreso.ContaCuentaAuxiliarID &&
                                                                                c.ContaCuentaDeMayorID == Cat.ContaCuentasDeMayor.Proveedores))
                {
                    var oUsuario = Datos.GetEntity <Usuario>(c => c.UsuarioID == oGasto.RealizoUsuarioID && c.Estatus);

                    // Caso especial para reparto de utilidades
                    if (Datos.Exists <ContaCuentaAuxiliar>(c => c.ContaCuentaAuxiliarID == oContaEgreso.ContaCuentaAuxiliarID &&
                                                           c.ContaCuentaDeMayorID == Cat.ContaCuentasDeMayor.ReparteDeUtilidades))
                    {
                        ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.GastoReparteUtilidades, oGasto.CajaEgresoID, oUsuario.NombreUsuario, oGasto.Concepto
                                                        , oGasto.SucursalID, oGasto.Fecha);
                    }
                    else
                    {
                        if (oGasto.Facturado.Valor())
                        {
                            // Se manda a afectar contabilidad (AfeConta)
                            ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.GastoCajaFacturado, iEgresoID, oGasto.FolioFactura, oGasto.Concepto
                                                            , oGasto.SucursalID, oGasto.Fecha);
                        }
                        else
                        {
                            // Se crea una póliza simple
                            var oPoliza = new ContaPoliza()
                            {
                                Fecha             = oGasto.Fecha,
                                ContaTipoPolizaID = Cat.ContaTiposDePoliza.Egreso,
                                Concepto          = oGasto.Concepto,
                                SucursalID        = oGasto.SucursalID,
                                RelacionTabla     = Cat.Tablas.CajaEgreso,
                                RelacionID        = iEgresoID
                            };
                            ContaProc.CrearPoliza(oPoliza, Cat.ContaCuentasAuxiliares.GastosNoDeducibles, Cat.ContaCuentasAuxiliares.Caja, oGasto.Importe
                                                  , oUsuario.NombreUsuario);
                        }
                    }
                }

                // Se marca el gasto como afectado, y se guardan los datos
                oGasto.AfectadoEnPolizas = true;
                Datos.Guardar <CajaEgreso>(oGasto);

                this.LlenarGastos();
            }
            frmGastoPol.Dispose();
        }