public static string SELECT(ChargeInfo source)
 {
     return(SELECT(new QueryConditions()
     {
         Cobro = source
     }));
 }
예제 #2
0
        protected void CopyValues(ChargeInfo source, bool get_QRCode)
        {
            if (source == null)
            {
                return;
            }

            _base.CopyValues(source);

            /*
             * _base.Pendiente = (source.PendienteAsignacion > 0) ? source.PendienteAsignacion : source.PendienteAsignacionREA;
             */

            _total_cobrado       = _base.Record.Importe - _base.Pendiente;
            _base.CuentaBancaria = source.Entidad != string.Empty || source.CuentaBancaria != string.Empty
                                                                                ? source.Entidad + Environment.NewLine + source.CuentaBancaria
                                                                                : string.Empty;
            _pendiente_vencimiento = source.EfectoPendienteVto;
            _base.GastosDemora     = source.GastosDemora;

            if (get_QRCode)
            {
                _cobro_facturas = source.CobroFacturas;
                _qr_code_print.LoadQRCode(_qr_code_print.Encode(QREncodeVersion.v1, ETipoEntidad.Cobro, this), QRCodeVersion.v15);
            }
        }
예제 #3
0
        public void UpdateCobroValues(ChargeInfo cobro)
        {
            FacREAInfo   item;
            decimal      acumulado;
            CobroREAInfo cobroFactura;

            for (int i = 0; i < Items.Count; i++)
            {
                item = Items[i];

                cobroFactura = cobro.CobroREAs.GetItemByExpediente(item.OidExpediente, item.OidExpedienteREA);

                if (cobroFactura != null)
                {
                    item.FechaAsignacion = cobroFactura.FechaAsignacion.ToShortDateString();
                    item.Asignado        = cobroFactura.Cantidad;
                }
                else
                {
                    item.FechaAsignacion = (item.Asignado != 0) ? DateTime.Now.ToShortDateString() : DateTime.MinValue.ToShortDateString();
                }

                if (i == 0)
                {
                    acumulado = 0;
                }
                else
                {
                    acumulado = Items[i - 1].Acumulado;
                }

                item.Acumulado = acumulado + item.Pendiente;
                item.Vinculado = (item.Asignado == 0) ? Resources.Labels.SET_COBRO : Resources.Labels.RESET_COBRO;
            }
        }
예제 #4
0
        public static OutputInvoiceList GetByCobroList(ChargeInfo cobro, bool childs)
        {
            QueryConditions conditions = new QueryConditions();

            conditions.Cobro = cobro;

            return(GetList(OutputInvoice.SELECT_BY_COBRO(conditions, false), childs));
        }
        public CobroREADetailRpt GetDetallesCobroREAIndividualReport(ChargeInfo item, FacREAList expedientes)
        {
            if (item == null)
            {
                return(null);
            }

            CobroREADetailRpt doc = new CobroREADetailRpt();

            List <FacREAInfo> cobros = new List <FacREAInfo>();
            List <CobroPrint> pList  = new List <CobroPrint>();

            ChargeInfo cob;

            if (item.CobroFacturas == null)
            {
                cob = ChargeInfo.Get(item.Oid, true);
            }
            else
            {
                cob = item;
            }

            foreach (FacREAInfo frea in expedientes)
            {
                cobros.Add(frea);
            }

            //Si no existen conceptos, no tiene sentido un informe detallado. Además, falla en Crystal Reports
            if (cobros.Count <= 0)
            {
                return(null);
            }

            pList.Add(CobroPrint.New(item, ShowQRCode));
            doc.Subreports["Cuerpo"].SetDataSource(cobros);

            doc.SetDataSource(pList);
            doc.SetParameterValue("Empresa", Schema.Name);

            return(doc);
        }
        protected string GetBankExpensesAccount(ChargeInfo charge)
        {
            string cuenta = string.Empty;
            string info   = string.Empty;

            try
            {
                BankAccountInfo cb = _bank_accounts.GetItem(charge.OidCuentaBancaria);
                cuenta = cb.CuentaContableGastos;
                info   = String.Format(Resources.Messages.BANK_ACCOUNT_BOOK_ACCOUNT_NOT_FOUND, cb.Valor, cb.Entidad) + " (gastos bancarios)";
            }
            catch (Exception ex)
            {
                throw new iQException(Resources.Messages.BOOK_ACCOUNT_ERROR, iQExceptionHandler.GetAllMessages(ex));
            }

            if (cuenta == string.Empty)
            {
                throw new iQException(info);
            }

            return(cuenta);
        }
 protected virtual void BuildFinalcialCashBookChargeAccountingEntry(ChargeInfo cobro)
 {
     throw new iQImplementationException("ContabilidadExporterBase::BuildFinalcialCashBookChargeAccountingEntry");
 }
 protected virtual void BuildAsientoCobroAyudaFomento(ChargeInfo cobro, LineaRegistro lr)
 {
     throw new iQImplementationException("ContabilidadExporterBase::BuildAsientoCobroAyudaFomento");
 }
 protected virtual void BuildREAChargeAccountingEntry(ChargeInfo cobro, LineaRegistro lr)
 {
     throw new iQImplementationException("ContabilidadExporterBase::BuildREAChargeAccountingEntry");
 }
        protected string GetChargeAccount(ChargeInfo charge)
        {
            string cuenta = string.Empty;
            string info   = string.Empty;

            try
            {
                switch (charge.EMedioPago)
                {
                case EMedioPago.Efectivo:
                    CashInfo caja = CashInfo.Get(1);
                    cuenta = caja.CuentaContable;
                    info   = String.Format(Resources.Messages.CASH_BOOK_ACCOUNT_NOT_FOUND, caja.Codigo, caja.Nombre);
                    break;

                case EMedioPago.Tarjeta:
                    if (Invoice.ModulePrincipal.GetUseTPVCountSetting())
                    {
                        TPVInfo tpv = TPVInfo.Get(charge.OidTPV);
                        cuenta = tpv.CuentaContable;
                        info   = tpv.Nombre;
                        info   = String.Format(Resources.Messages.TPV_BOOK_ACCOUNT_NOT_FOUND, tpv.Nombre);
                    }
                    else
                    {
                        BankAccountInfo cb = _bank_accounts.GetItem(charge.OidCuentaBancaria);
                        cuenta = cb.CuentaContable;
                        info   = String.Format(Resources.Messages.BANK_ACCOUNT_BOOK_ACCOUNT_NOT_FOUND, cb.Valor, cb.Entidad);
                    }
                    break;

                case EMedioPago.CompensacionFactura:

                    ClienteInfo client = _clients.GetItem(charge.OidCliente);
                    cuenta = client.CuentaContable;
                    info   = String.Format(Resources.Messages.CLIENT_BOOK_ACCOUNT_NOT_FOUND, client.Codigo, client.Nombre);
                    break;

                case EMedioPago.Pagare:
                case EMedioPago.Cheque:
                {
                    FinancialCashInfo efecto = FinancialCashInfo.GetByCobro(charge, false);
                    if (efecto.EEstadoCobro == EEstado.Charged)
                    {
                        BankAccountInfo cb = _bank_accounts.GetItem(efecto.OidCuentaBancaria);
                        cuenta = cb.CuentaContable;
                        info   = String.Format(Resources.Messages.BANK_ACCOUNT_BOOK_ACCOUNT_NOT_FOUND, cb.Valor, cb.Entidad);
                    }
                    else
                    {
                        cuenta = GetFinancialCashChargesAccount(efecto.Vencimiento);
                    }
                }
                break;

                default:
                {
                    BankAccountInfo cb = _bank_accounts.GetItem(charge.OidCuentaBancaria);
                    cuenta = cb.CuentaContable;
                    info   = String.Format(Resources.Messages.BANK_ACCOUNT_BOOK_ACCOUNT_NOT_FOUND, cb.Valor, cb.Entidad);
                }
                break;
                }
            }
            catch (Exception ex)
            {
                if (ex is iQException)
                {
                    throw ex;
                }
                else
                {
                    throw new iQException("El cobro nº " + charge.Codigo + " no tiene cuenta bancaria asociada");
                }
            }

            if (cuenta == string.Empty)
            {
                throw new iQException(info);
            }

            return(cuenta);
        }
 /// <summary>
 /// FORMATO:
 /// </summary>
 /// <param name="cobro"></param>
 protected override void BuildFinalcialCashBookChargeAccountingEntry(ChargeInfo cobro)
 {
 }
        /// <summary>
        /// FORMATO: 9999999|G|01/10/2009||VENTAS DIA|4300000001|||||||||VENTAS P.S. DEL DIA|D| |37800| |7050000001|00000|00000|00000|4|001| |36000|500| |1800| |0|4777000000|0| | |0|0| |0| |0| | | | |0|0| |0| |0| | | | |0|0| |0| |0| | | | |0|0| |0| |0| | | | |0|0| |0| |0| | | | | | | | | | |1234| | | |0
        /// </summary>
        /// <param name="factura"></param>
        protected override void BuildChargeAccountingEntry(ChargeInfo cobro, LineaRegistro lr)
        {
            if (cobro.EEstadoCobro != EEstado.Charged)
            {
                return;
            }

            ClienteInfo       titular = _clients.GetItem(cobro.OidCliente);
            OutputInvoiceInfo factura;

            string apunte      = string.Empty;
            string descripcion = string.Empty;
            string tipo        = "H";
            string signo       = "-";
            string importe     = string.Empty;

            if (titular.CuentaContable == string.Empty)
            {
                throw new iQException("El cliente nº " + titular.NumeroClienteLabel + " (" + titular.Nombre + ") no tiene cuenta contable asociada");
            }

            foreach (CobroFacturaInfo cf in cobro.CobroFacturas)
            {
                factura     = _invoices.GetItem(cf.OidFactura);
                tipo        = "H";
                signo       = "-";
                descripcion = "Cobro Fra. " + factura.NFactura + " (" + factura.Cliente + ")";
                importe     = cf.Cantidad.ToString().Replace(".", string.Empty);

                //apunte en la cuenta del cliente
                apunte += AddValue(_config.Empresa);                                    /*CODIGO DE EMPRESA*/
                apunte += AddValue("S");                                                /*TIPO DE REGISTRO*/
                apunte += AddValue(cobro.Fecha.ToShortDateString());                    /*FECHA*/
                apunte += AddEmptyValue(1);                                             /*Nº SERIE DOCUMENTO*/
                apunte += AddValue(cobro.Codigo);                                       /*DOCUMENTO*/
                apunte += AddValue(titular.CuentaContable);                             /*CUENTA*/
                apunte += AddEmptyValue(8);                                             /*SIN USO*/
                apunte += AddValue(descripcion);                                        /*DESCRIPCION*/
                apunte += AddValue(tipo.ToString());                                    /*TIPO: DEBE=1, HABER=2*/
                apunte += AddValue(signo);                                              /*SIGNO*/
                apunte += AddValue(importe);                                            /*IMPORTE*/
                apunte += AddValue(_accounting_entry.ToString());                       /*ASIENTO*/
                apunte += AddEmptyValue(73);                                            /*SIN USO*/
                apunte += AddValue(_config.CentroTrabajo);                              /*CENTRO TRABAJO*/
                apunte += AddEmptyValue(2);                                             /*SIN USO*/
                apunte += AddValue(lr.IDExportacion);                                   /*OPC. 1*/

                _export_file.WriteLine(apunte);

                apunte  = string.Empty;
                tipo    = "D";
                signo   = "+";
                importe = cf.Cantidad.ToString().Replace(".", string.Empty);

                //apunte en la cuenta del pago
                apunte += AddValue(_config.Empresa);                                    /*CODIGO DE EMPRESA*/
                apunte += AddValue("G");                                                /*TIPO DE REGISTRO*/
                apunte += AddValue(cobro.Fecha.ToShortDateString());                    /*FECHA*/
                apunte += AddEmptyValue(1);                                             /*Nº SERIE DOCUMENTO*/
                apunte += AddValue(cobro.Codigo);                                       /*DOCUMENTO*/
                apunte += AddValue(GetChargeAccount(cobro));                            /*CUENTA*/
                apunte += AddEmptyValue(8);                                             /*SIN USO*/
                apunte += AddValue(descripcion);                                        /*DESCRIPCION*/
                apunte += AddValue(tipo.ToString());                                    /*TIPO: DEBE=1, HABER=2*/
                apunte += AddValue(signo);                                              /*SIGNO*/
                apunte += AddValue(importe);                                            /*IMPORTE*/
                apunte += AddValue(_accounting_entry.ToString());                       /*ASIENTO*/
                apunte += AddEmptyValue(73);                                            /*SIN USO*/
                apunte += AddValue(_config.CentroTrabajo);                              /*CENTRO TRABAJO*/
                apunte += AddEmptyValue(2);                                             /*SIN USO*/
                apunte += AddValue(lr.IDExportacion);                                   /*OPC. 1*/

                _export_file.WriteLine(apunte);

                apunte = string.Empty;
            }
        }