Jump to content

Hix

Members
  • Posts

    24
  • Joined

  • Last visited

Posts posted by Hix

  1. Bad news guys. I got a serious bug.

    With VAT... the Blesta shows CORRECT values under "services" tab... BUT... it puts DIFFERENT numbers to the recurring invoices. I suspect, that it worked before updating to 4.x.

    Example:

    service: 100 USD per month + VAT 20%, minus discount coupon 50% minus 20% VAT from that  = 100+20-50-10 = 60 USD TOTAL. This is correctly shown under client / services.

    BUT.. here comes that problem:

    IT INVOICES: 100USD + 20% TAX = 120 USD MINUS 50 USD discount = 70 USD.

    70 is not 60 USD expected by the customer.

    Please.. this is pretty urgent.

    Capture.PNG

  2. Hi,

    I've just upgraded to 4.0.0 -- everything went smoothly, BUT... that annoying invoice downloading reappeared :)

    So here is the patch. I really think there should be a "view" (= stream to browser) AND "download" links on the invoice row.

    I've simply created a streamInvoices function and thats it.

    *** ../_extract/blesta/app/controllers/admin_billing.php	2017-03-14 10:23:18.000000000 +0100
    --- ./blesta/app/controllers/admin_billing.php	2017-03-18 12:22:23.230248000 +0100
    ***************
    *** 282,288 ****
                  // Print invoices
                  if (!array_key_exists('mark_printed', $this->post)) {
                      $this->components(['InvoiceDelivery']);
    !                 $this->InvoiceDelivery->downloadInvoices($invoice_ids);
                      exit;
                  } else {
                      // Mark invoices printed
    --- 282,288 ----
                  // Print invoices
                  if (!array_key_exists('mark_printed', $this->post)) {
                      $this->components(['InvoiceDelivery']);
    !                 $this->InvoiceDelivery->streamInvoices($invoice_ids);
                      exit;
                  } else {
                      // Mark invoices printed
    diff -cr ../_extract/blesta/app/controllers/admin_clients.php ./blesta/app/controllers/admin_clients.php
    *** ../_extract/blesta/app/controllers/admin_clients.php	2017-03-14 10:23:18.000000000 +0100
    --- ./blesta/app/controllers/admin_clients.php	2017-03-18 12:21:51.650062000 +0100
    ***************
    *** 4292,4298 ****
      
              // Download the invoice in the admin's language
              $this->components(['InvoiceDelivery']);
    !         $this->InvoiceDelivery->downloadInvoices([$invoice->id], ['language' => Configure::get('Blesta.language')]);
              exit;
          }
      
    --- 4292,4298 ----
      
              // Download the invoice in the admin's language
              $this->components(['InvoiceDelivery']);
    !         $this->InvoiceDelivery->streamInvoices([$invoice->id], ['language' => Configure::get('Blesta.language')]);
              exit;
          }
      
    diff -cr ../_extract/blesta/app/controllers/client_invoices.php ./blesta/app/controllers/client_invoices.php
    *** ../_extract/blesta/app/controllers/client_invoices.php	2017-03-14 10:23:18.000000000 +0100
    --- ./blesta/app/controllers/client_invoices.php	2017-03-18 12:22:45.823894000 +0100
    ***************
    *** 114,120 ****
              }
      
              $this->components(['InvoiceDelivery']);
    !         $this->InvoiceDelivery->downloadInvoices([$invoice->id]);
              exit;
          }
      }
    --- 114,120 ----
              }
      
              $this->components(['InvoiceDelivery']);
    !         $this->InvoiceDelivery->streamInvoices([$invoice->id]);
              exit;
          }
      }
    diff -cr ../_extract/blesta/components/invoice_delivery/invoice_delivery.php ./blesta/components/invoice_delivery/invoice_delivery.php
    *** ../_extract/blesta/components/invoice_delivery/invoice_delivery.php	2017-03-14 10:23:20.000000000 +0100
    --- ./blesta/components/invoice_delivery/invoice_delivery.php	2017-03-18 12:20:53.422226000 +0100
    ***************
    *** 310,315 ****
    --- 310,320 ----
              $invoices = $this->getInvoices($invoice_ids, true);
              $this->buildInvoices($invoices, true, $options)->download();
          }
    +     public function streamInvoices(array $invoice_ids, array $options = null) {
    +         $invoices = $this->getInvoices($invoice_ids, true);
    +         $this->buildInvoices($invoices, true, $options)->stream();
    +     }
    + 
      
          /**
           * Returns an errors raised
    
    

     

  3. 14 minutes ago, Paul said:

    I can't say for sure it's resolved in 4.0, but I would strongly suggest giving it a try in 4.0 beta 5 (soon to be released) and report back if it is still an issue. We refactored a lot in terms of how pricing is handled with the new pricing presenter. If it's still an issue, it'll be easier to resolve moving forward.

    OK, gonna test it.

    Paul I'm either INSANE or I've just seen Blesta calculating Coupons + Tax with two different results.

    Now it's OK, but it was not in the morning. Looks like I've edited SOMETHING which fixed the issue. Dont know what though...

  4. On 29/07/2016 at 7:28 PM, Paul said:

    CORE-2230, thanks!

    @Paul hey look.. here is the patch. It was quite an annoying bug, so I patched it. Me not being a true developer though, so I'm not sure if this is a proper way how to compare a date :wacko:

    --- /root/billing_overview_statistics.php    2016-10-13 17:16:04.000000000 +0200
    +++ ./plugins/billing_overview/models/billing_overview_statistics.php    2016-10-13 17:35:21.000000000 +0200
    @@ -148,6 +148,7 @@
                 innerJoin("client_groups", "client_groups.id", "=", "clients.client_group_id", false)->
                 where("client_groups.company_id", "=", $company_id)->
                 where("invoices.status", "in", array("active", "proforma"))->
    +            where("invoices.date_billed", "<", date( 'Y-m-d H:i:s', strtotime("now") ) )->
                 where("invoices.currency", "=", $currency)->
                 where("invoices.date_closed", "=", null)->
                 fetch();
    @@ -262,4 +263,4 @@
                 numResults();
         }
     }
    -?>
    \ No newline at end of file
    +?>

    billing_overview_statistics.patch

  5. 9 minutes ago, evolvewh said:

    There is a 'recurring invoice' feature where you can setup the number of times to charge again and the frequency. You can alter them after the invoice has been generated by editing the invoice but you would need to set it up so that the invoice isn't automatically emailed (you would manually do this after you've edited it).

    Thx -- I understand, but I'd still fund that development :) Because I need this feature often DURING the month.. PLUS... I'd like to ease the migration from WHMCS.

    Blesta must be truly user-friendly to compete with WHMCS and others.

  6. Guys,

    I've found a missing killer feature, required by a lot of users I'm pretty sure. Epecially useful for those, who invoice their customers in a POST-PAID mode. Eg. you charge clients on 1th november for OCTOBER services/work.

    I truly need to CLONE a open/closed/whatever invoice and assign it a new number.

    So the invoice items, price, customer atd are cloned to the new invoice... which I can alter a bit afterwards (for example change an item date).

    In the future, it would be useful to be able to do such cloning to the OTHER customers too... 

    Tell me the price, I'll fund a development if it will be reasonable. It will save me and my employees a lot of time and energy.

    It can be a plugin, or a core feature.. doesnt matter.

    Thx.

    Jakub.

  7. it would be cool... I think this is quite an important stuff, especially under this stupid EU/CZ jurisdisction (we're from Prague, CZ).

    A lot of companies over here use also a CUSTOMER ID in their invoicing schemas.. so.. a lot of macros would be useful.

    The good thing imho is that it is soo easy to implement i Blesta.. 

    Also -- this can be a game-changes for NEW customers moving over to Blesta -- they can CONTINUE with their numbering.

    And thats important especially under restrictive jurisdictions, such as atmost of EU countries.

    You got weird numbering scheme? Or you changed anything? Well... you could be tampering with somehing -> deep check of your accounting stuff :) 

     

  8. Guys,

    easy to implement, but would help a lot of people:

    TWO digit year in invoice numbering -- eg. 16100986 -- {shortyear}{month}{day}{num} -- Settings > Company > Invoice Customization

    here is the patch (but use rather that attached one):

    --- ./invoices-old.php  2016-10-09 11:45:43.000000000 +0200
    +++ ./app/models/invoices.php   2016-10-09 12:10:29.000000000 +0200
    @@ -2383,8 +2383,8 @@
                    // Set the id format accordingly, also replace the {year} tag with the appropriate year,
                    // the {month} tag with the appropriate month, and the {day} tag with the appropriate day
                    // to ensure the id_value is calculated appropriately on a year-by-year basis
    -               $tags = array("{year}", "{month}", "{day}");
    -               $replacements = array($this->Date->format("Y"), $this->Date->format("m"), $this->Date->format("d"));
    +               $tags = array("{year}", "{shortyear}", "{month}", "{day}");
    +               $replacements = array($this->Date->format("Y"), $this->Date->format("y"), $this->Date->format("m"), $this->Date->format("d"));
                    $vars['id_format'] = str_ireplace($tags, $replacements, $inv_format);

                    // Creates subquery to calculate the next invoice ID value on the fly


     

     

    patch

×
×
  • Create New...