public ProductoListRpt GetListReport(ProductList list)
        {
            if (list.Count == 0)
            {
                return(null);
            }

            ProductoListRpt doc = new ProductoListRpt();

            List <ProductoPrint> pList = new List <ProductoPrint>();

            foreach (ProductInfo item in list)
            {
                pList.Add(ProductoPrint.New(item));
            }

            doc.SetDataSource(pList);

            FormatHeader(doc);

            return(doc);
        }
        public static void IsPosibleDelete(long oid)
        {
            QueryConditions conditions = new QueryConditions
            {
                Familia = Familia.New().GetInfo(false),
                Estado  = EEstado.NoAnulado,
            };

            conditions.Familia.Oid = oid;

            ProductList productos = ProductList.GetList(conditions, false);

            if (productos.Count > 0)
            {
                throw new iQException(Resources.Messages.PRODUCTOS_ASOCIADOS);
            }

            SerieFamiliaList series = SerieFamiliaList.GetList(conditions, false);

            if (series.Count > 0)
            {
                throw new iQException(Resources.Messages.SERIES_ASOCIADAS);
            }
        }
        public List <CuentaResumen> GetCuentasAndImpuestos(bool get_indirectos)
        {
            try
            {
                List <CuentaResumen> list      = new List <CuentaResumen>();
                ProductList          productos = ProductList.GetList(false, true);
                FamiliaList          familias  = FamiliaList.GetList(false, true);
                ImpuestoList         impuestos = ImpuestoList.GetList(false);
                bool        nuevo;
                ProductInfo producto;
                FamiliaInfo familia;
                string      cuenta;
                string      nombre;

                foreach (InputInvoiceLineInfo item in _conceptos)
                {
                    ImpuestoResumen impuesto = new ImpuestoResumen();

                    nuevo    = true;
                    producto = productos.GetItem(item.OidProducto);
                    familia  = familias.GetItem(producto.OidFamilia);


                    cuenta = (producto.CuentaContableCompra == string.Empty) ? familia.CuentaContableCompra : producto.CuentaContableCompra;
                    nombre = (producto.CuentaContableCompra == string.Empty)
                        ? familia.Codigo + " " + familia.Nombre
                        : producto.Codigo + " " + producto.Nombre;

                    //Agrupamos los conceptos por cuentas contables
                    for (int i = 0; i < list.Count; i++)
                    {
                        CuentaResumen cr = list[i];

                        //Tiene prioridad la cuenta contable del producto
                        if (producto.CuentaContableCompra != string.Empty)
                        {
                            if ((cr.CuentaContable == producto.CuentaContableCompra) && (cr.Impuesto != null && cr.Impuesto.OidImpuesto == item.OidImpuesto))
                            {
                                cr.Importe                += item.BaseImponible;
                                cr.Impuesto.Importe       += item.Impuestos;
                                cr.Impuesto.BaseImponible += item.BaseImponible;
                                list[i] = cr;
                                nuevo   = false;
                                break;
                            }
                        }
                        //Luego la de la familia
                        else if ((cr.CuentaContable == familia.CuentaContableCompra) && (cr.Impuesto != null && cr.Impuesto.OidImpuesto == item.OidImpuesto))
                        {
                            cr.Importe                += item.BaseImponible;
                            cr.Impuesto.Importe       += item.Impuestos;
                            cr.Impuesto.BaseImponible += item.BaseImponible;
                            list[i] = cr;
                            nuevo   = false;
                            break;
                        }
                    }

                    if (nuevo)
                    {
                        CuentaResumen new_cr = new CuentaResumen
                        {
                            OidFamilia     = producto.OidFamilia,
                            Importe        = item.BaseImponible,
                            CuentaContable = cuenta,
                            Nombre         = nombre,
                        };

                        if (item.Impuestos != 0)
                        {
                            ImpuestoInfo imp = null;

                            if (item.OidImpuesto != 0)
                            {
                                imp = impuestos.GetItem(item.OidImpuesto);
                            }
                            else
                            {
                                imp = impuestos.GetItemByProperty("Porcentaje", item.PImpuestos);
                            }

                            new_cr.Impuesto = new ImpuestoResumen
                            {
                                OidImpuesto            = item.OidImpuesto,
                                BaseImponible          = item.BaseImponible,
                                Importe                = item.Impuestos,
                                SubtipoFacturaRecibida = imp.CodigoImpuestoA3Recibida,
                                Porcentaje             = imp.Porcentaje,
                            };
                        }
                        else if ((get_indirectos) && (item.CuentaContable == "4727000001"))
                        {
                            new_cr.Impuesto = new ImpuestoResumen
                            {
                                OidImpuesto            = 4,
                                BaseImponible          = 0,
                                Importe                = item.Total,
                                SubtipoFacturaRecibida = impuestos.GetItem(4).CodigoImpuestoA3Recibida,
                            };
                        }

                        list.Add(new_cr);
                    }
                }

                return(list);
            }
            catch
            {
                throw new iQException(String.Format(Resources.Messages.ERROR_FACTURA_CUENTA, NFactura, Acreedor));
            }
        }
        public List <CuentaResumen> GetCuentas()
        {
            try
            {
                List <CuentaResumen> list      = new List <CuentaResumen>();
                ProductList          productos = ProductList.GetList(false, true);
                FamiliaList          familias  = FamiliaList.GetList(false, true);
                bool        nuevo;
                ProductInfo producto;
                FamiliaInfo familia;
                string      cuenta;

                foreach (InputInvoiceLineInfo item in _conceptos)
                {
                    nuevo    = true;
                    producto = productos.GetItem(item.OidProducto);
                    if (producto == null)
                    {
                        producto = productos.GetItem(InputDeliveryLineInfo.Get(item.OidConceptoAlbaran, false).OidProducto);
                    }
                    familia = familias.GetItem(producto.OidFamilia);

                    cuenta = (producto.CuentaContableCompra == string.Empty) ? familia.CuentaContableCompra : producto.CuentaContableCompra;

                    //Agrupamos los conceptos por cuentas contables
                    for (int i = 0; i < list.Count; i++)
                    {
                        CuentaResumen cr = list[i];

                        //Tiene prioridad la cuenta contable del producto
                        if (producto.CuentaContableCompra != string.Empty)
                        {
                            if (cr.CuentaContable == producto.CuentaContableCompra)
                            {
                                cr.Importe += item.BaseImponible;
                                list[i]     = cr;
                                nuevo       = false;
                                break;
                            }
                        }
                        //Luego la de la familia
                        else if (cr.CuentaContable == familia.CuentaContableCompra)
                        {
                            cr.Importe += item.BaseImponible;
                            list[i]     = cr;
                            nuevo       = false;
                            break;
                        }
                    }

                    if (nuevo)
                    {
                        list.Add(new CuentaResumen {
                            OidFamilia     = producto.OidFamilia,
                            Importe        = item.BaseImponible,
                            CuentaContable = cuenta
                        });
                    }
                }

                return(list);
            }
            catch
            {
                throw new iQException(String.Format(Resources.Messages.ERROR_FACTURA_CUENTA, NFactura, Acreedor));
            }
        }
Beispiel #5
0
        public new static IAgenteHipatiaList GetAgentes(EntidadInfo entidad)
        {
            IAgenteHipatiaList lista = new IAgenteHipatiaList(new List <IAgenteHipatia>());

            if (entidad.Tipo == typeof(Almacen).Name)
            {
                StoreList list = StoreList.GetList(false);

                foreach (StoreInfo obj in list)
                {
                    if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null)
                    {
                        lista.Add(obj);
                    }
                }
            }
            else if (entidad.Tipo == typeof(Despachante).Name)
            {
                DespachanteList list = DespachanteList.GetList(false);

                foreach (DespachanteInfo obj in list)
                {
                    if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null)
                    {
                        lista.Add(obj);
                    }
                }
            }
            else if (entidad.Tipo == typeof(Employee).Name)
            {
                EmployeeList list = EmployeeList.GetList(false);

                foreach (EmployeeInfo obj in list)
                {
                    if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null)
                    {
                        lista.Add(obj);
                    }
                }
            }
            else if (entidad.Tipo == typeof(Expedient).Name)
            {
                ExpedienteList list = ExpedienteList.GetList(false);

                foreach (ExpedientInfo obj in list)
                {
                    if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null)
                    {
                        lista.Add(obj);
                    }
                }
            }
            else if (entidad.Tipo == typeof(InputInvoice).Name)
            {
                InputInvoiceList list = InputInvoiceList.GetList(false);

                foreach (InputInvoiceInfo obj in list)
                {
                    if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null)
                    {
                        lista.Add(obj);
                    }
                }
            }
            else if (entidad.Tipo == typeof(LineaFomento).Name)
            {
                LineaFomentoList list = LineaFomentoList.GetList(false);

                foreach (LineaFomentoInfo obj in list)
                {
                    if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null)
                    {
                        lista.Add(obj);
                    }
                }
            }
            else if (entidad.Tipo == typeof(Naviera).Name)
            {
                NavieraList list = NavieraList.GetList(false);

                foreach (NavieraInfo obj in list)
                {
                    if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null)
                    {
                        lista.Add(obj);
                    }
                }
            }
            else if (entidad.Tipo == typeof(Payment).Name)
            {
                PaymentList list = PaymentList.GetList(false);

                foreach (PaymentInfo obj in list)
                {
                    if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null)
                    {
                        lista.Add(obj);
                    }
                }
            }
            else if (entidad.Tipo == typeof(Product).Name)
            {
                ProductList list = ProductList.GetList(false);

                foreach (ProductInfo obj in list)
                {
                    if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null)
                    {
                        lista.Add(obj);
                    }
                }
            }
            else if (entidad.Tipo == typeof(Proveedor).Name)
            {
                ProveedorList list = ProveedorList.GetList(false);

                foreach (ProveedorInfo obj in list)
                {
                    if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null)
                    {
                        lista.Add(obj);
                    }
                }
            }
            else if (entidad.Tipo == typeof(Transporter).Name)
            {
                TransporterList list = TransporterList.GetList(false);

                foreach (TransporterInfo obj in list)
                {
                    if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null)
                    {
                        lista.Add(obj);
                    }
                }
            }
            else
            {
                throw new iQException("No se ha encontrado el tipo de entidad " + entidad.Tipo);
            }

            return(lista);
        }
Beispiel #6
0
        public ReportClass GetDetailReport(InputInvoiceInfo item, FormatConfFacturaAlbaranReport conf)
        {
            if (item == null)
            {
                return(null);
            }

            List <InputInvoiceLinePrint> conceptos = new List <InputInvoiceLinePrint>();
            List <InputInvoicePrint>     pList     = new List <InputInvoicePrint>();

            foreach (InputInvoiceLineInfo cfi in item.Conceptos)
            {
                conceptos.Add(cfi.GetPrintObject());
            }

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

            pList.Add(item.GetPrintObject());

            ProductList productos = ProductList.GetList(false);

            foreach (InputInvoiceLinePrint cfp in conceptos)
            {
                if (cfp.OidProducto == 0)
                {
                    continue;
                }
                ProductInfo prod = productos.GetItem(cfp.OidProducto);
                if (prod != null)
                {
                    if (prod.AyudaKilo > 0)
                    {
                        cfp.Concepto += " *";
                    }
                }
            }

            List <ImpuestoResumen> irpf_list = new List <ImpuestoResumen>();

            foreach (DictionaryEntry irpf in item.GetIRPF())
            {
                irpf_list.Add((ImpuestoResumen)irpf.Value);
            }

            ReportClass doc = null;

            try
            {
                doc = GetReportFromName("Invoice", "InputInvoiceRpt");
            }
            catch
            {
                doc = new InputInvoiceRpt();
            }

            doc.Subreports["LinesSubRpt"].SetDataSource(conceptos);
            if (doc.Subreports["IRPFSubListRpt"] != null)
            {
                doc.Subreports["IRPFSubListRpt"].SetDataSource(irpf_list);
            }

            doc.SetDataSource(pList);
            CompanyInfo company = CompanyInfo.Get(Schema.Oid, false);

            doc.SetParameterValue("nombreEmpresa", company.Name);
            doc.SetParameterValue("dirEmpresa", company.Direccion);
            doc.SetParameterValue("dir2Empresa", company.CodPostal + ". " + company.Municipio + ". " + company.Provincia);
            doc.SetParameterValue("CIFEmpresa", company.VatNumber);
            doc.SetParameterValue("nota", conf.nota);
            doc.SetParameterValue("copia", (conf.copia != null) ? conf.copia : string.Empty);
            doc.SetParameterValue("cuentaBancaria", (conf.cuenta_bancaria != string.Empty) ? conf.cuenta_bancaria : company.CuentaBancaria);

            return(doc);
        }