Пример #1
0
 public void Cancelar(Int64 CompraID)
 {
     try
     {
         cCompras Factura = ComprasDA.BuscarPorID(CompraID);
         //Si el documento no ha sido cambiado el estatus de Original no puede ser cancelado
         if (Factura.EstatusID.ToString() == "O")
         {
             //Verificamos si la factura contiene movimientos en Cuentas por Cobrar
             List <cCuentasPagar> Cuenta = (from c in CuentaPagarDA.ListaCargosPagos(Factura.DocumentoID.ToString(), (Int64)Factura.ProveedorID)
                                            where c.CodigoConcepto.ToString() != "Compras"
                                            select c).ToList();
             if (Cuenta.Count == 0)
             {
                 ComprasDA.Cancelar(CompraID);
             }
             else
             {
                 throw new Exception("El documento posee movimientos contabilizados, no puede ser cancelada");
             }
         }
         else
         {
             throw new Exception("El documento posee movimientos contabilizados, no puede ser cancelada");
         }
     }
     catch (Exception Ex)
     {
         throw Ex;
     }
 }
Пример #2
0
 public cCompras BuscarPorID(Int64 DocumentoID, String TipoDocumento)
 {
     //Busqueda de documento por numero de documento y por tipo
     try
     {
         return(ComprasDA.BuscarPorID(DocumentoID, TipoDocumento));
     }
     catch (Exception Ex)
     {
         throw Ex;
     }
 }
Пример #3
0
        public void CancelarDocumento(cCuentasPagar Cuenta)
        {
            //Cancelacion de un abono
            //Localizamos el concepto para verificar el tipo
            cConcepto Concepto = ConcCxPDA.BuscarPorID((Byte)Cuenta.CodigoConcepto);

            //Tipo Abono
            if (Concepto.Tipo.ToString() == "A")
            {
                //Verificamos si el documento es tipo Nota de Credito y si esta cancelado
                if (Concepto.Descripcion.ToString() == "Nota de Credito")
                {
                    //Documento Nota de Credito
                    cCompras stNotaCredito = ComprasDA.BuscarPorID(Cuenta.CodigoFactura, "D");
                    //Verificamos Si esta Cancelado
                    if (stNotaCredito.EstatusID.ToString() == "C")
                    {
                        //Cancelamos la transaccion
                        Cuenta.Estatus = false;
                        GuardarCambios(Cuenta);
                    }
                    else
                    {
                        throw new Exception("El documento no puede ser cancelado, la nota de credito se encuentra vigente en el sistema");
                    }
                }
                else
                {
                    //Si es un Abono cancelamos la transaccion
                    Cuenta.Estatus = false;
                    GuardarCambios(Cuenta);
                }
            }
            else
            {
                //Verificamos el estatus de la factura en caso de que sea
                if (Concepto.Descripcion.ToString() == "Compras")
                {
                    cCompras stFactura = ComprasDA.BuscarPorID(Cuenta.CodigoFactura, "R");

                    //Si la factura esta cancelada cancelamos la transaccion
                    if (stFactura.EstatusID.ToString() == "C")
                    {
                        Cuenta.Estatus = false;
                        GuardarCambios(Cuenta);
                    }
                    else
                    {
                        throw new Exception("El documento no puede ser cancelado, la factura se encuentra vigente en el sistema");
                    }
                }
                else
                {
                    //Si es un cargo aplicado verificamos que no tenga pagos vigentes
                    List <cCuentasPagar> ListaPagos = (from c in ListaPagoCargos(Cuenta.CodigoFactura.ToString(), (Int64)Cuenta.ProveedorID)
                                                       select c).ToList();

                    //Si tiene Cargos o pagos relacionados
                    if (ListaPagos.Count == 0)
                    {
                        Cuenta.Estatus = false;
                        GuardarCambios(Cuenta);
                    }
                    else
                    {
                        throw new Exception("El documento no puede ser cancelado, el documento contiene pagos o cargos aplicados");
                    }
                }
            }
        }