예제 #1
0
 public cConcepto BuscarPorID(Int16 ID)
 {
     try
     {
         return(ConcCxCDA.BuscarPorID(ID));
     }
     catch (Exception Ex)
     {
         throw Ex;
     }
 }
예제 #2
0
        private Boolean ValidacionReferencia(cCuentasCobrar Cuenta)
        {
            //Validamos si la referencia existe en caso de que el concepto asi lo requiera
            Byte Concepto = Convert.ToByte(Cuenta.CodigoConcepto);

            if (ConcCxCDA.BuscarPorID(Concepto).Referencia == "S")
            {
                if (Cuenta.CodigoReferencia.ToString() != String.Empty)
                {
                    return(true);
                }
                else
                {
                    throw new Exception("Error al guardar movimiento, Debe especificar la referencia del movimiento");
                }
            }
            else
            {
                return(true);
            }
        }
예제 #3
0
        public void GuardarCambios(cCuentasCobrar Cuenta)
        {
            try
            {
                if (ValidacionDocumentos(Cuenta))
                {
                    //Si el almacen existe entonces actualizamos
                    if (CuentaCobrarDA.Existe(Cuenta.Codigo))
                    {
                        CuentaCobrarDA.Actualizar(Cuenta);
                    }
                    else
                    //Si el almacen es nuevo entonces creamos
                    {
                        if ((CuentaCobrarDA.Existe(Cuenta.CodigoDocumento.ToString(), (Int32)Cuenta.CodigoCliente)) == false || (ConcCxCDA.BuscarPorID((Int16)Cuenta.CodigoConcepto).Referencia == "S"))

                        {
                            if (ValidacionReferencia(Cuenta))
                            {
                                CuentaCobrarDA.Crear(Cuenta);
                            }
                        }
                        else
                        {
                            throw new Exception("El documento ya existe para el cliente seleccionado, favor revise nuevamente");
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                throw Ex;
            }
        }
예제 #4
0
        public void CancelarDocumento(cCuentasCobrar Cuenta)
        {
            //Cancelacion de un abono
            //Localizamos el concepto para verificar el tipo
            cConcepto Concepto = ConcCxCDA.BuscarPorID((Int16)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
                    cFactura stNotaCredito = FacturaDA.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() == "Factura")
                {
                    cFactura stFactura = FacturaDA.BuscarPorID(Cuenta.CodigoFactura, "F");

                    //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 <cCuentasCobrar> ListaPagos = (from c in ListaPagoCargos(Cuenta.CodigoFactura.ToString(), (Int32)Cuenta.CodigoCliente)
                                                        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");
                    }
                }
            }
        }