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; } }
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; } }
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"); } } } }