Sven Schöling [Thu, 29 Nov 2007 18:00:43 +0000 (18:00 +0000)]
...locales
Sven Schöling [Thu, 29 Nov 2007 18:00:01 +0000 (18:00 +0000)]
choice umgebaut, und nebenbei den sqlfehler in top100 gefixt
Sven Schöling [Thu, 29 Nov 2007 14:39:11 +0000 (14:39 +0000)]
Confirm Priceupdate auf Templates umgestellt
Sven Schöling [Tue, 27 Nov 2007 17:17:52 +0000 (17:17 +0000)]
Und die dazugehoerigen Templates
Sven Schöling [Tue, 27 Nov 2007 17:17:18 +0000 (17:17 +0000)]
Presiaktualisierung Schritt 1 auf Templates umgestellt
Sven Schöling [Tue, 27 Nov 2007 15:59:35 +0000 (15:59 +0000)]
Perltidy mangle rueckgaengig gemacht fuer spaeteres Templating
Moritz Bunkus [Tue, 27 Nov 2007 14:44:17 +0000 (14:44 +0000)]
Wenn in get_vendor() die id des Vendors abgeholt wird, dann wird dadurch die ID des aktuellen Vorgangs im Einkauf (Preisanfrage, Lieferantenauftrag etc) überschrieben.
Sven Schöling [Fri, 23 Nov 2007 17:25:00 +0000 (17:25 +0000)]
Waren/Dienstleistungen/Erzeugnisse Suche auf Template umgestellt
Sven Schöling [Fri, 23 Nov 2007 15:49:22 +0000 (15:49 +0000)]
Bugfix:
Bei einer Standardanfrage wurden die Mengen nicht mitangezeigt, weil die Datenbankanfrage gestartet wurde, bevor alle l_switches geparst wurden.
Moritz Bunkus [Wed, 21 Nov 2007 14:07:55 +0000 (14:07 +0000)]
Kompatibilitätsfix für ältere Template-Versionen: Das Whitespace-Removal ~ gibt es in älteren Versionen nicht.
Moritz Bunkus [Wed, 21 Nov 2007 08:58:58 +0000 (08:58 +0000)]
%options ist inzwischen ein Hash, also es auch so benutzen (siehe Revision 2842).
Moritz Bunkus [Mon, 19 Nov 2007 08:28:57 +0000 (08:28 +0000)]
Den Test, ob ein Artikel noch nicht benutzt wurde und deshalb gelöscht werden kann, auf weitere Tabellen ausgedehnt.
Moritz Bunkus [Fri, 16 Nov 2007 09:14:42 +0000 (09:14 +0000)]
Das Bearbeiten der Einstellungen, die in der Tabelle "defaults" gespeichert werden, wurde in eine eigene Maske ausgelagert, die unter "System -> Nummernkreise und Standardkonten" aufrufbar ist. Bei "Programm -> Benutzereinstellungen" hingegen befinden sich nur noch Einstellungen, die pro Benutzer einstellbar sind (also die Sachen aus %myconfig).
Moritz Bunkus [Thu, 15 Nov 2007 15:40:03 +0000 (15:40 +0000)]
1. Schreibfehler in Variablenname. 2. Hashreferenzen in Hashes speichern, nicht Hashes selber.
Moritz Bunkus [Thu, 15 Nov 2007 15:34:02 +0000 (15:34 +0000)]
Falsche Funktion aufgerufen.
Moritz Bunkus [Thu, 15 Nov 2007 13:32:48 +0000 (13:32 +0000)]
Report-Generator: Spaltenüberschriften in HTML- und PDF-Ausgaben nicht erneut HTML-Escapen, weil die Übersetzungen meist bereits HTML-encodet sind. Dafür aber die HTML-encodierten Zeichen zurückkonvertieren.
Moritz Bunkus [Wed, 14 Nov 2007 10:08:32 +0000 (10:08 +0000)]
SQL-Injection vermeiden. Fix für Revisionen 2936, 2937.
Moritz Bunkus [Wed, 14 Nov 2007 09:11:01 +0000 (09:11 +0000)]
Automatischen Zeilenumbruch in bestimmten Tabellenzellen in Einkaufs- und Verkaufsmasken verhindern.
Moritz Bunkus [Wed, 14 Nov 2007 08:43:09 +0000 (08:43 +0000)]
Der Ertrag ist kein Prozentwert. Zahlen rechtsbündig anordnen.
Moritz Bunkus [Wed, 14 Nov 2007 08:37:40 +0000 (08:37 +0000)]
Kosmetik
Moritz Bunkus [Wed, 14 Nov 2007 08:36:15 +0000 (08:36 +0000)]
Feature "Preisfaktoren" wieder implementiert, das teilweise in Revision 2889 rausgeflogen ist.
Moritz Bunkus [Wed, 14 Nov 2007 08:27:39 +0000 (08:27 +0000)]
Wenn eine Tabellenzelle gar keinen Inhalt hat, dann zumindest ein erzwingen, damit der Browser die Zelle auch formatiert (Tabellenränder etc).
Moritz Bunkus [Wed, 14 Nov 2007 07:41:58 +0000 (07:41 +0000)]
Vergessener Lauf von locales.pl
Holger Will [Mon, 12 Nov 2007 18:18:08 +0000 (18:18 +0000)]
xulmenu fixes fuer Geko 1.9
Philip Reetz [Sat, 10 Nov 2007 15:05:30 +0000 (15:05 +0000)]
Fehler bei neuen Rechnungen ohne Umwandlung
Philip Reetz [Sat, 10 Nov 2007 14:45:51 +0000 (14:45 +0000)]
Beim Umwandeln von Auftrag in Rechnung wurden die Zahlungsbedingungen des Kunden und nicht die
des Auftrags verwendet
Moritz Bunkus [Thu, 8 Nov 2007 14:56:06 +0000 (14:56 +0000)]
Trennstriche in Berichten als Rahmen der Tabellenzellen zeichnen, nicht als <hr>.
Moritz Bunkus [Wed, 7 Nov 2007 09:18:10 +0000 (09:18 +0000)]
Verhindern, dass zwei von Lx-Office erzeugte Mails identische message IDs haben können.
Moritz Bunkus [Wed, 7 Nov 2007 09:12:30 +0000 (09:12 +0000)]
Beim Verschicken von Emails wird das Kommando $sendmail durch Lx-Offices Template-System geschleust. Vordefiniert ist, dass Sendmail der Parameter "-f emailadresse" mitgegeben wird, sodass die Envelope-From-Adresse die des aktuellen Lx-Office-Benutzers und nicht die des Webservers ist. Das vermeidet, dass Emails wegen Spam/nicht existierender Domänennamen von Providern abgelehnt wedren.
Moritz Bunkus [Wed, 7 Nov 2007 09:00:29 +0000 (09:00 +0000)]
Die globale Variable $sendmail wird nur in SL/Mailer.pm benötigt und sollte deswegen auch nur dort benutzt werden.
Holger Will [Wed, 7 Nov 2007 08:17:59 +0000 (08:17 +0000)]
kleine styleaenderung fuer die toolbar
Holger Will [Wed, 7 Nov 2007 08:14:48 +0000 (08:14 +0000)]
fallback fuer browser die kein XUL koennen
Sven Schöling [Thu, 1 Nov 2007 21:05:28 +0000 (21:05 +0000)]
Um die Benutzung des Template Systems mal ein wenig zu foerdern.
Die bin/mozilla/oe.pl noch einmal umgeschrieben, so dass jetzt noch mehr Funktionen ins Frontend ausgelagert sind.
Ein neues Highlight ist die template/generic/multibox.html, die es erlaubt aus wenigen Steuerkommandos ein HTML-Eingabefeld zu erstellen, was bei kleinen Datenmengen als Dropdownbox erscheint, udn bei grossen asl Textfeld, mit dazugehörigem Popup-Button, um eine Auswahlliste aufzumachen. Saemtliche Funktionen lassen sich ueber Perlfunktionsreferenzen wieder zurück ins Backend leiten, und dort wieder mit komplexer Logik füllen. Dokumentation ist im Template direkt enthalten.
Die Customer/Vendor Eingabe macht auch gleich Gebrauch davon und erzeugt bei zu grosser Anzahl ein Textfeld, und daneben einen Suchbutton, der die passenden Kunden in einer Liste anzeigt.
Der "Kundendetails"-Button wurde von "?" umbenannt in "D" (immernoch gruselig)
Auf Wunsch von Moritz habe ich die display_row von bin/mozilla/oe.pl wieder verlagert in die bin/mozilla/io.pl, und dafuer die Version in bin/mozilla/invoice_io.pl deaktiviert.
Moritz Bunkus [Thu, 1 Nov 2007 16:58:51 +0000 (16:58 +0000)]
Auslagern des HTML-Codes aus login.pl in HTML-Vorlagen.
Moritz Bunkus [Thu, 1 Nov 2007 16:52:00 +0000 (16:52 +0000)]
Neue Modulpfade.
Moritz Bunkus [Thu, 1 Nov 2007 13:01:40 +0000 (13:01 +0000)]
Vergessener Lauf von locales.pl von Holger Will.
Moritz Bunkus [Thu, 1 Nov 2007 12:56:47 +0000 (12:56 +0000)]
Die Funktion Form::parse_html_template2() in Form::parse_html_template() umbenannt (letztere wurde in Revision 2923 entfernt).
Moritz Bunkus [Thu, 1 Nov 2007 12:52:54 +0000 (12:52 +0000)]
Diese beiden Dateien werden nicht benötigt.
Moritz Bunkus [Thu, 1 Nov 2007 12:40:36 +0000 (12:40 +0000)]
Das Modul HTML::Template wird nicht mehr benötigt.
Moritz Bunkus [Thu, 1 Nov 2007 12:34:29 +0000 (12:34 +0000)]
Umstellung der HTML-Vorlagen aus templates/webpages/ustva von HTML::Template auf Template.
Holger Will [Thu, 1 Nov 2007 10:42:05 +0000 (10:42 +0000)]
XUL Menue, Uebersetzung der Benutzereinstellung
Moritz Bunkus [Thu, 1 Nov 2007 10:38:19 +0000 (10:38 +0000)]
Umstellung der HTML-Vorlagen aus templates/webpages/rp von HTML::Template auf Template.
Moritz Bunkus [Thu, 1 Nov 2007 10:36:08 +0000 (10:36 +0000)]
Umstellung der HTML-Vorlagen aus templates/webpages/report_generator von HTML::Template auf Template.
Moritz Bunkus [Thu, 1 Nov 2007 10:25:18 +0000 (10:25 +0000)]
Umstellung der HTML-Vorlagen aus templates/webpages/menu von HTML::Template auf Template.
Moritz Bunkus [Thu, 1 Nov 2007 10:25:04 +0000 (10:25 +0000)]
Kosmetik.
Moritz Bunkus [Thu, 1 Nov 2007 10:23:05 +0000 (10:23 +0000)]
Teil des Bugfixes, dass Spracheinstellungen nicht erneut im Popup angezeigt wurden.
Moritz Bunkus [Thu, 1 Nov 2007 10:21:18 +0000 (10:21 +0000)]
Bugfix bei Artikelstammdaten: Beim erneuten Aufrufen des Sprachenfensters wurden die vorher getätigten Eingaben nicht angezeigt.
Moritz Bunkus [Thu, 1 Nov 2007 10:20:41 +0000 (10:20 +0000)]
Sprachen alphabetisch sortieren.
Moritz Bunkus [Thu, 1 Nov 2007 10:12:06 +0000 (10:12 +0000)]
Umstellung der HTML-Vorlagen aus templates/webpages/ic von HTML::Template auf Template.
Holger Will [Thu, 1 Nov 2007 09:29:44 +0000 (09:29 +0000)]
XML basiertes Menue, Versuch 2, siehe Bug #771
Moritz Bunkus [Thu, 1 Nov 2007 09:07:37 +0000 (09:07 +0000)]
Umstellung der HTML-Vorlagen aus templates/webpages/gl von HTML::Template auf Template.
Moritz Bunkus [Thu, 1 Nov 2007 09:03:32 +0000 (09:03 +0000)]
Umstellung weiterer HTML-Vorlagen aus templates/webpages/generic von HTML::Template auf Template.
Moritz Bunkus [Thu, 1 Nov 2007 09:00:37 +0000 (09:00 +0000)]
Fehler bei Umstellung des Vorlagensystems.
Moritz Bunkus [Wed, 31 Oct 2007 17:18:14 +0000 (17:18 +0000)]
Umstellung einiger Vorlagen aus templates/webpages/generic von HTML::Template auf Template. Die Vorlagen calculate_alu* werden gar nicht benutzt und deswegen entfernt.
Holger Will [Wed, 31 Oct 2007 17:02:57 +0000 (17:02 +0000)]
XML basiertes Menue, siehe Bug #771
Moritz Bunkus [Wed, 31 Oct 2007 16:06:54 +0000 (16:06 +0000)]
Umstellung der Vorlagen aus templates/webpages/dunning von HTML::Template auf Template.
Moritz Bunkus [Wed, 31 Oct 2007 15:32:19 +0000 (15:32 +0000)]
Umstellung der Vorlagen aus templates/webpages/drafts von HTML::Template auf Template.
Holger Will [Wed, 31 Oct 2007 15:29:54 +0000 (15:29 +0000)]
Icon Set, siehe Bug #774
Moritz Bunkus [Wed, 31 Oct 2007 15:28:16 +0000 (15:28 +0000)]
Umstellung der Vorlagen aus templates/webpages/dbupgrade von HTML::Template auf Template.
Moritz Bunkus [Wed, 31 Oct 2007 14:50:52 +0000 (14:50 +0000)]
Umstellung der Vorlagen in templates/webpages/common von HTML::Template auf Template.
Moritz Bunkus [Wed, 31 Oct 2007 14:30:43 +0000 (14:30 +0000)]
Umstellung der Vorlagen in templates/webpages/am von HTML::Template auf Template.
Moritz Bunkus [Wed, 31 Oct 2007 13:36:09 +0000 (13:36 +0000)]
Umstellung weiterer Vorlagen von HTML::Template auf Template. Zusätzlich Bugfix: Sobald die Checkbox "Details anzeigen" einmal aktiviert war, konnte sie nicht mehr deaktiviert werden.
Moritz Bunkus [Wed, 31 Oct 2007 13:17:31 +0000 (13:17 +0000)]
Umstellung einiger Vorlagen von HTML::Template auf Template.
Udo Spallek [Sat, 27 Oct 2007 09:45:08 +0000 (09:45 +0000)]
Das DBUpdate für Oesterreich lief nicht auf Postgres > 8.1. Fixed.
Sven Schöling [Fri, 26 Oct 2007 15:50:27 +0000 (15:50 +0000)]
Query Aufrufe loggen nun auch woher sie kommen
Moritz Bunkus [Fri, 26 Oct 2007 07:31:44 +0000 (07:31 +0000)]
Keine Debugmeldungen. Danke.
Moritz Bunkus [Fri, 26 Oct 2007 07:23:30 +0000 (07:23 +0000)]
Den DOCTYPE nur dann setzen, wenn der Internet Explorer verwendet wird. Andere Browser haben ansonsten Probleme, u.a. mit dem JavaScript-Menü.
Sven Schöling [Thu, 25 Oct 2007 17:23:16 +0000 (17:23 +0000)]
Weiterer Fix zu den kaputten masken, diesmal Rechnung.
Die MAsken werden wiedereinmal zu voll, die doppelten Eintraege in der Einheiten Spalte liessen sich auf Firefox nicht auf normalem Wege überreden in einer Zeile zu stehen. Der naechste der da etwas einfuegt darf sich mal Gedanken machen wie man das noch unterbringen kann.
Sven Schöling [Thu, 25 Oct 2007 16:19:49 +0000 (16:19 +0000)]
Debugcode entfernt (Fix zu Bug 768)
Sven Schöling [Thu, 25 Oct 2007 16:18:15 +0000 (16:18 +0000)]
Fix zu Bug 769
Sven Schöling [Mon, 22 Oct 2007 15:35:14 +0000 (15:35 +0000)]
...und das gemoddete Templating
Sven Schöling [Mon, 22 Oct 2007 15:34:32 +0000 (15:34 +0000)]
...und die neuen Dateien
Sven Schöling [Mon, 22 Oct 2007 15:33:48 +0000 (15:33 +0000)]
* Auslagerung der OE-Masken in Templates *
Diese Patch ist ein Merge der Revisionen
2866, 5349, 5365, 5370, 5408, 5413, 5470, 5473, 5475, 5519, 5520, 5521, 5524, 5526, 5591, 5618, 5622, 5814, 5881, 5882 und 5961
in das Unstable.
Hintergrund ist die Auslagerung der OE-Masken, das heisst aller Masken, die fuer Auftraege, Angebote und teilweise Rechnungen zustaendig sind.
Dadurch vereinfacht sich der Code an vielen Stellen deutlich, ausserdem konnten viele Berechnungen verkleinert werden, weil der Code fuer Angebote/Auftraege jetzt getrennt von Rechnungen liegt.
Ein Grossteil der bin/mozilla/io.pl wurde dafuer dubliziert, die Methoden die fuer Auftraege noetig sind liegen jetzt in der bin/mozilla/oe.pl (vor allem display_form und display_row, aber auch ein paar andere), ihr jeweiliges Pendant fuer Rechnungen wurde unveraendert in eine Datei invoice_io.pl ausgelagert die von den Skripten die sie benoetigen zusaetzlich zur io.pl eingelesen wird.
Wie der Name der Templates andeutet ist der Patch im Verkaufsbaum entstanden, im Verlauf der Programmierung habe cih aber nicht genug Unterschiede gefunden um separate Templates fuer Verkauf und Einkauf zu rechtfertigen. Eventuell werden die Templates noch umbenannt.
Komplexe Maskenaenderungen wie der Austausch von Drop-Down Menues bei zu grosser Anzahl durch Eingabefelder werden ebenfalls noch manuell gemacht.
Auch das wird in der naechsten Version ausgelagert um den Backend Code schlanker zu machen.
Die Berechnung fuer Units und Steuern wurde vereinfacht, und dabei einige unschoene Bugs gefixt, die aus der unvollstaendigen Abdeckung von Verzweigungen resultierten.
Zuletzt wurden noch fast alle serverseitigen Datenformatierungen ausgelagert in ein Templateplugin, welches Zahlen waehrend des Templatings formatiert (mehr dazu in der Dakumentation zu Template.pm).
Der Patch beinhaltet ausserdem die ueblichen Codekosmetika.
Philip Reetz [Thu, 18 Oct 2007 10:53:40 +0000 (10:53 +0000)]
Kreditlimit wurde doppelt geparsed, wenn Kundenauswahl nicht eindeutig
Philip Reetz [Wed, 17 Oct 2007 11:23:05 +0000 (11:23 +0000)]
Anzeige von LP und EK in Lieferantenbestellungen
Sven Schöling [Fri, 12 Oct 2007 15:24:44 +0000 (15:24 +0000)]
Verbesserungen am Tag Script.
Ausserdem Merge der Revisionen 5239 5259 5340 5341 5342 und 5343.
Moritz Bunkus [Fri, 12 Oct 2007 11:13:14 +0000 (11:13 +0000)]
Dokumentation der Perl-Module von Drittanbietern in eigenes Verzeichnis verschoben.
Moritz Bunkus [Fri, 12 Oct 2007 11:10:21 +0000 (11:10 +0000)]
Umstrukturierung des Verzeichnisses "modules": Das Unterverzeichnis "override" enthält Modle, die Lx-Office vor den im System installierten Modulen lädt (z.B. YAML). Module in "fallback" werden hingegen nur geladen, wenn im System kein passendes Modul gefunden wurde.
Moritz Bunkus [Fri, 12 Oct 2007 11:04:41 +0000 (11:04 +0000)]
Ein Verzeichnis für die Dokumentation der Perlmodule, die mitgeliefert werden und von Dritten stammen.
Moritz Bunkus [Fri, 12 Oct 2007 08:24:02 +0000 (08:24 +0000)]
<td> muss in <tr> stecken.
Moritz Bunkus [Fri, 12 Oct 2007 08:23:13 +0000 (08:23 +0000)]
Überflüssige leere Tabellenzeile entfernt.
Moritz Bunkus [Thu, 11 Oct 2007 11:37:16 +0000 (11:37 +0000)]
Kosmetik.
Moritz Bunkus [Thu, 11 Oct 2007 11:35:49 +0000 (11:35 +0000)]
Eine Funtion zur Überprüfung der Existenz von hash-basierten Funktionsparameter.
Moritz Bunkus [Thu, 11 Oct 2007 11:00:40 +0000 (11:00 +0000)]
Durch das Setzen eines entsprechendenden DOCTYPEs für alle Seiten schaltet der Internet Explorer 7 in den "standards mode", in dem er auch das CSS-Menü richtig darstellt.
Moritz Bunkus [Thu, 11 Oct 2007 08:32:31 +0000 (08:32 +0000)]
Kosmetik: Einrückung mit zwei Leerzeichen.
Moritz Bunkus [Wed, 10 Oct 2007 13:32:40 +0000 (13:32 +0000)]
Deutliche Beschleunigung der USTVA-Berechnung durch Einschränkung der betrachteten Datensätze aus acc_trans.
Sven Schöling [Mon, 8 Oct 2007 12:19:13 +0000 (12:19 +0000)]
...und auch den ausgang
Sven Schöling [Mon, 8 Oct 2007 12:17:50 +0000 (12:17 +0000)]
build_std_url auf log level 2 gesetzt damit es bei grossen rechnungslisten nicht das log verunreinigt.
Moritz Bunkus [Mon, 8 Oct 2007 09:07:00 +0000 (09:07 +0000)]
Die versteckte Variable "customer_klass", die die beim Kunden hinterlegte Preisgruppe enthält, muss bei oe.pl immer übergeben werden, wenn es sich um Verkauf handelt.
Moritz Bunkus [Mon, 8 Oct 2007 08:42:44 +0000 (08:42 +0000)]
Die Variable "ranking" für Zahlungsbedinungen konnte nirgends konfiguriert werden. Zusätzlich werden beim Wechsel des Kunden in einer Verkaufsmaske die beim Kunden hinterlegten Zahlungsbedingungen immer ausgewählt, nicht nur dann, wenn vorher keine ausgewählt waren.
Philip Reetz [Fri, 5 Oct 2007 06:20:19 +0000 (06:20 +0000)]
Fehler beim Laden von Buchungen, wenn Konto nicht mit einer Steuer verknüpft ist
Udo Spallek [Thu, 4 Oct 2007 10:14:08 +0000 (10:14 +0000)]
1. Fieser Bug der in format_amount auftritt, wenn eine sehr kleine Zahl in Exponentialschreibweise uebergeben
wird wie bspw. 1.
13686837721616e-13. BITTE UNBEDINGT PRUEFEN, TESTEN UND VERBESSERN.
Siehe auch Forenbeitrag: http://lx-office.org/forum/forum_entry.php?id=5315
2. co_ustid in allen Dokumenten zur Verfuegung gestellt.
Udo Spallek [Wed, 3 Oct 2007 13:47:36 +0000 (13:47 +0000)]
Bug 760: Mahnungen drucken: Kunden Kontakt eingefügt. Betr. Tabelle: contacts, Templatevariablen cp_*
Holger Lindemann [Wed, 26 Sep 2007 07:22:32 +0000 (07:22 +0000)]
Freigabe der Shopschnittstelle zu olCommerce
Holger Lindemann [Wed, 26 Sep 2007 07:12:17 +0000 (07:12 +0000)]
Freigabe der Shopschnittstelle zu osCommerce
Moritz Bunkus [Fri, 21 Sep 2007 10:43:31 +0000 (10:43 +0000)]
Quoten von allen in regulären Ausdrücken verwendeten Variablen, die direkt oder indirekt von Benutzereingaben stammen können. Fix für Bug 302.
Holger Lindemann [Fri, 21 Sep 2007 07:47:24 +0000 (07:47 +0000)]
Probleme mit Slashes
Udo Spallek [Thu, 20 Sep 2007 17:17:41 +0000 (17:17 +0000)]
Verkauf->Berichte: Auftrag und Angebot Suche nach Salesman implementiert.
Moritz Bunkus [Thu, 20 Sep 2007 09:17:18 +0000 (09:17 +0000)]
Eine Funktion zur Überprüfung der Existens von Funktionsparametern hinzugefügt, wenn diese als Hash übergeben werden.
Moritz Bunkus [Wed, 19 Sep 2007 14:20:37 +0000 (14:20 +0000)]
Das Modul "Data::Dumper" hat die Eigenheit, dass es den Iterator von gedumpten Hashes nicht zurücksetzt bzw. ihn nicht bis zum Ende ausliest, wenn "Sortkeys" wahr ist. Das hat zur Folge, dass der folgende Aufrufe von "each" für dieses Hash sofort beendet wird. Also muss der Iterator manuell zurückgesetzt werden. Siehe auch die Diskussion in "perldoc -f each".