Leaderboard
Popular Content
Showing content with the highest reputation on 03/21/2014 in all areas
-
We have plans to better automate the upgrade process. No ETA yet on when the feature will be available, though.2 points
-
I have noticed that the service expiry date renews for another term when it is invoiced. I expect this should actually occur when the invoice is paid. We invoice 14 days before the renewal of the term and some customers will elect to notify us of their intention to cancel at the end of the term. This then leads to a secondary bug -- if I try to reduce the term back to its original expiry date, I get an error message indicating I need to select a date greater then the last renew date. If you look at the attached snapshot you will see I am trying to enter 27 March 2014 but it is giving me an error despite it wanting a value greater than 26 March. Perhaps there is a timezone calculation that is awry here as we are in UTC+11 (Sydney, AU). In the end I just scheduled a cancellation date for 27 March 2014 instead.1 point
-
I'm not sure if this is in the pipeline, but it'd be great not to have to jump in to FTP every time there's an update. Many of us work directly on tablets, and this feature would make it possible to update on the go without booting up a PC. Think Wordpress.1 point
-
Fair enough, each to their own I guess, I just personally find them to be quite an ugly way to create a sense of integration. But as you said, some big players will still use them to make it easy for those with less technical ability.1 point
-
I'll assume you want it below the client name and address. There are a few things you should note first: If you plan to print invoices and mail them to your customers, certain envelopes with windows to show the recipient name/address will likely also show these custom fields. There is not a lot of space below the client address and above the invoice listing "Description", so you may only be able to show 1 to 3 custom fields before overlaps occur. The width of the custom field name and values is expected to be rather small. If the values are too long, they'll wrap and you'll have less space, as in #2. Update /components/invoice_templates/default_invoice/default_invoice.pdf (line 481 in v3.1 of Blesta) from: private function drawAddress() { $address = $this->invoice->billing->first_name . " " . $this->invoice->billing->last_name . "\n"; if (strlen($this->invoice->billing->company) > 0) $address .= $this->invoice->billing->company . "\n"; $address .= $this->invoice->billing->address1 . "\n"; if (strlen($this->invoice->billing->address2) > 0) $address .= $this->invoice->billing->address2 . "\n"; $address .= $this->invoice->billing->city . ", " . $this->invoice->billing->state . " " . $this->invoice->billing->zip . " " . $this->invoice->billing->country->alpha3; $data = array( array($address) ); $options = array( 'font_size'=>self::$font_size, 'x_pos'=>44, 'y_pos'=>157, 'col'=> array( array('width'=>210) ) ); $this->drawTable($data, $options); } to: private function drawAddress() { $address = $this->invoice->billing->first_name . " " . $this->invoice->billing->last_name . "\n"; if (strlen($this->invoice->billing->company) > 0) $address .= $this->invoice->billing->company . "\n"; $address .= $this->invoice->billing->address1 . "\n"; if (strlen($this->invoice->billing->address2) > 0) $address .= $this->invoice->billing->address2 . "\n"; $address .= $this->invoice->billing->city . ", " . $this->invoice->billing->state . " " . $this->invoice->billing->zip . " " . $this->invoice->billing->country->alpha3; // Set my custom fields $cf_data = array(); if (property_exists($this->invoice->client, "id")) { Loader::loadModels($this, array("Clients")); $field_ids = array(6, 10, 15); $values = $this->Clients->getCustomFieldValues($this->invoice->client->id); foreach ($values as $value) { if (in_array($value->id, $field_ids)) { $cf_data[] = "\n" . $value->name . ": " . $value->value; } } unset($values, $value); } $data = array( array($address) ); // Include my custom field data below the address if (!empty($cf_data)) { foreach ($cf_data as $cf_value) $data[] = $cf_value; } $options = array( 'font_size'=>self::$font_size, 'x_pos'=>44, 'y_pos'=>157, 'col'=> array( array('width'=>210) ) ); $this->drawTable($data, $options); } Remember to update the comma-separated list of field IDs.1 point
-
Bear's got a grudge over Blesta that's all it is on that note, we've been infracted / warned more times than anything. What I was talking about is this.. If people who are your customers can't understand between a invoice needs paying and the renew date is when the next invoice is due, well your not aiming at a market who can understand bills / payments / and webhosting.1 point
-
Yes, the accented characters are being encoded in the value field, which causes this issue. The task I linked will fix it, but I don't have an ETA on that. The only work-around to using those payment type names is to set them as language definitions instead. To do this, update the custom language file at /language/en_us/_custom.php, and add the following lines: $lang['_PaymentTypes.keszpenz'] = "Készpénz"; $lang['_PaymentTypes.atutalas'] = "Átutalás"; Then go into Blesta and update those two payment types under [settings] -> [system] -> [General] -> [Payment Types]. Change the Name value of "Készpénz" to "keszpenz", and check the box "Use Language Definition". Similarly, update "Átutalás" to "atutalas", and check the language box as well. The payment types should work correctly after you've saved those changes. Note also that the custom language file is a core file, so when you upgrade Blesta, that file will be overwritten, and you will need to merge these changes back into that file.1 point
-
If there is no value, then the client doesn't have a value set for the custom field. Assuming you are more-or-less using the same code from my example, the value is set in the example below (line 414). My example above could be updated to show multiple fields by setting them like below Note that you would create a comma-separated list of field IDs like the "6, 10, 15" I have in the example. private function drawInvoiceInfo() { $cf_data = array(); if (property_exists($this->invoice->client, "id")) { Loader::loadModels($this, array("Clients")); $field_ids = array(6, 10, 15); $values = $this->Clients->getCustomFieldValues($this->invoice->client->id); foreach ($values as $value) { if (in_array($value->id, $field_ids)) { $cf_data[] = array( 'name' => $value->name . ":", 'space' => null, 'value' => $value->value ); } } unset($values, $value); } $data = array( array( 'name'=>Language::_("DefaultInvoice.invoice_id_code", true), 'space'=>null, 'value'=>$this->invoice->id_code ), array( 'name'=>Language::_("DefaultInvoice.client_id_code", true), 'space'=>null, 'value'=>$this->invoice->client->id_code ), array( 'name'=>Language::_("DefaultInvoice.date_billed", true), 'space'=>null, 'value'=>date($this->invoice->client->settings['date_format'], strtotime($this->invoice->date_billed)) ), array( 'name'=>Language::_("DefaultInvoice.date_due", true), 'space'=>null, 'value'=>date($this->invoice->client->settings['date_format'], strtotime($this->invoice->date_due)) ) ); if (!empty($cf_data)) { foreach ($cf_data as $cf_value) $data[] = $cf_value; } Where on the left? Invoice PDFs are generated very specifically, so you need to know exactly where you want to put additional fields and how much space they will take up in order to avoid breaking the display of other elements in the PDF.1 point
-
Core-1049: Doesn't Display Tos On Registration Forms When Enabled
PauloV reacted to ExelionLLC for a topic
Any updates on this bug? Anyone accepting certain classes of orders (not limited to just subscriptions) from California (and soon to be almost all the states if they continue passing consumer rights laws) requires this to be functioning, and its currently holding up the launch of my company.1 point -
Thanks. Added CORE-1076.1 point
-
CORE-1049, not completed yet. You can track progress through that link though.1 point